/* Shared visual system. Loaded after layout styles to preserve app navigation. */
:root{--bg:#f3f6f5;--surface:#fff;--surface-soft:#f7f9f8;--ink:#172e29;--muted:#647b73;--line:#e1eae6;--green:#08765c;--button:#08765c;--button-hover:#065e49;--selected:#e8f5ef;--shadow:0 8px 32px #173f2e06;--premium-ease:cubic-bezier(.2,.75,.25,1)}
:root[data-theme=dark]{--bg:#0b1419;--surface:#132229;--surface-soft:#172a31;--ink:#edf6f2;--muted:#9bb4ae;--line:#293f45;--green:#7ee0b8;--button:#7ee0b8;--button-hover:#a0ebce;--selected:#1b3b35;--shadow:0 12px 36px #00000020}
body{background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3{text-wrap:balance}h1{letter-spacing:-1.15px}h2{letter-spacing:-.55px}button,input,textarea,select{font:inherit}button,.outline,a.nav{transition:background-color .2s,box-shadow .2s,border-color .2s,transform .2s var(--premium-ease)}
.sidebar{padding:30px 18px;background:var(--surface);border-right:1px solid var(--line)}.brand{gap:13px;padding:4px 7px}.brandmark,.mobile-logo{background:linear-gradient(145deg,#108568,#06513f);color:#fff;box-shadow:0 7px 16px #08765c20}.brandmark{border-radius:17px}.brand b{font-size:19px;letter-spacing:-.5px}.brand>span:last-child{font-size:15px}.navlabel{font-size:10px;letter-spacing:2px;margin:54px 14px 18px}.sidebar .nav{border-radius:13px;margin-bottom:9px;padding:17px 15px;font-size:13px}.sidebar .nav.active{background:var(--selected);box-shadow:inset 3px 0 var(--green)}.sidebarfoot{border-top:1px solid var(--line);padding:24px 4px;gap:12px}.sidebarfoot small{line-height:1.6}.avatar{background:var(--selected);color:var(--green);border:1px solid color-mix(in srgb,var(--green) 10%,transparent);font-weight:600}
.workspace>header,.admin-header{background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.workspace>header{padding-left:34px;padding-right:34px}.desktop{font-size:12px}.headeractions{gap:14px}.theme-switch{padding:4px;border-radius:12px;background:var(--surface-soft)}.theme-switch button{border-radius:9px}.theme-switch button[aria-pressed=true]{box-shadow:0 2px 6px #102c2010}.language-control select{border-radius:10px}.content{max-width:1800px;margin:auto;padding:32px 34px 0}.heading{margin-bottom:26px}.heading h1{font-size:34px;font-weight:650;margin-top:8px}.heading .muted{font-size:13px;line-height:1.7}.eyebrow{letter-spacing:1.7px;font-size:10px;font-weight:600}.primary,.gotbutton{background:var(--button);border-color:var(--button);color:var(--on-button);box-shadow:0 5px 13px #08765c15;border-radius:12px;font-weight:600}.primary:hover,.gotbutton:hover{background:var(--button-hover);box-shadow:0 7px 20px #08765c25;filter:none}.outline{border-radius:11px;background:var(--surface);font-weight:500}.outline:hover{border-color:var(--focus);background:var(--selected)}
.stats{gap:18px;margin-bottom:26px}.stats article{position:relative;border:1px solid var(--line);border-radius:20px;padding:25px 23px;box-shadow:var(--shadow);background:linear-gradient(145deg,var(--surface),var(--surface-soft));gap:17px;overflow:hidden}.stats article:after{display:none}.stats h2{font-size:34px;letter-spacing:-1.3px;line-height:1.15;font-variant-numeric:tabular-nums;margin:13px 0}.stats small{font-size:12px}.stat-icon{border-radius:14px;width:44px;height:44px;font-size:23px}.stat-total{padding-top:13px;margin-top:18px}.stat-total strong{font-weight:600}.stats article:nth-child(1){border-top:2px solid color-mix(in srgb,var(--green) 45%,var(--line))}.stats article:nth-child(2){border-top:2px solid color-mix(in srgb,var(--red) 45%,var(--line))}.stats article:nth-child(3){border-top:2px solid color-mix(in srgb,var(--blue-ink) 45%,var(--line))}
.ledger{border-radius:22px;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;grid-template-columns:minmax(280px,34%) minmax(0,1fr)}.customerpanel{background:var(--surface-soft)}.paneltitle{padding:24px 23px 0}.paneltitle h2{font-size:17px}.badge{border-radius:7px;padding:4px 7px}.searchwrap{padding:0 22px 20px}.searchwrap input{background:var(--surface);border-radius:12px;min-height:47px;font-size:12px}.customer{padding:21px 22px;gap:13px;border-top:1px solid var(--line);position:relative}.customer:hover{background:var(--surface-hover)}.customer.selected{background:var(--selected);border-left-color:var(--green)}.customername b{font-size:14px;font-weight:600}.customer small{font-size:11px;line-height:1.5}.balance b{font-size:14px;font-variant-numeric:tabular-nums}.detailhead{padding:25px 26px}.person h2{font-size:22px}.person small{font-size:12px}.netbalance{border-radius:16px;margin:23px 26px;padding:23px;background:linear-gradient(115deg,var(--positive-bg),var(--selected));border:1px solid color-mix(in srgb,var(--green) 10%,var(--line))}.netbalance strong{font-size:32px;letter-spacing:-1px;font-variant-numeric:tabular-nums}.netbalance span{font-size:12px}.historytitle{padding-left:26px;padding-right:26px}.historytitle h3{font-size:13px}.entry{padding:23px 26px;border-top:1px solid var(--line);transition:background .2s}.entry:hover{background:var(--surface-soft)}.entryicon{border-radius:12px}.entrybody p{line-height:1.7;font-size:13px;color:var(--ink)}.entryamount>b{font-size:17px;letter-spacing:-.4px;font-variant-numeric:tabular-nums}.entry .view-entry{background:var(--surface-soft);border-radius:10px;border-color:var(--line)}.entry .view-entry:hover{background:var(--selected);border-color:var(--green)}.entryactions{padding:19px 26px;border-top:1px solid var(--line);gap:12px}.entryactions button{border-radius:12px;min-height:49px}.gavebutton{border:1px solid color-mix(in srgb,var(--red) 14%,transparent)}.welcome{padding:70px 28px}.welcome .eyebrow{margin-top:40px}.welcome h2{max-width:400px;margin-left:auto;margin-right:auto}.welcome p{font-size:13px;line-height:1.9}.bookillustration{border-radius:15px;transform:rotate(-6deg);box-shadow:12px 14px 0 var(--surface-soft),0 14px 30px #08765c10}footer{opacity:.85;padding-top:25px;padding-bottom:25px}
dialog{border:1px solid var(--line);border-radius:24px;box-shadow:0 32px 100px #03191250;padding:30px;overscroll-behavior:contain}dialog::backdrop{background:#03161285;backdrop-filter:blur(8px)}.modaltitle h2{font-size:22px}.modaltitle .textbutton{border:1px solid var(--line);border-radius:50%;font-size:15px}.modaltitle+p{font-size:12px;line-height:1.7}label{font-size:12px;font-weight:550;line-height:1.6}input,textarea,select{border-radius:12px;min-height:48px;border:1px solid var(--line);transition:border-color .2s,box-shadow .2s,background .2s}input:focus,textarea:focus,select:focus{background:var(--surface)}textarea{resize:vertical}.amountinput{font-size:40px!important;font-weight:600;min-height:90px;letter-spacing:-1.5px}.upload{border:1px dashed color-mix(in srgb,var(--green) 45%,var(--line));padding:20px;border-radius:15px;transition:background .2s}.upload:hover{background:var(--selected)}.upload small{margin-top:7px}.bill-thumbnail{border-radius:14px;box-shadow:var(--shadow)}.detail-amount{font-size:42px;letter-spacing:-1.5px;display:block;padding:18px 0 25px}#detailNoteSection,#detailBillSection{border:1px solid var(--line);border-radius:15px;padding:18px;margin:0 0 16px;background:var(--surface-soft)}#entryDetails section h3{font-size:11px;color:var(--muted);font-weight:500;margin:0 0 12px}#detailNote{font-size:14px;line-height:1.8;margin:0;overflow-wrap:anywhere}#detailBillImage{border-radius:10px}#detailBillLink span{font-size:11px}.detail-actions{margin:22px -30px -30px;padding:18px 30px;bottom:-30px;border-top:1px solid var(--line)}.detail-delete{border-radius:12px}.account-person{background:var(--selected);border-radius:16px;padding:18px}.profile-details{padding:18px;border:1px solid var(--line);border-radius:14px}.profile-details dt{font-size:10px}.profile-details dd{font-size:13px}.profile-options button{border-radius:12px;min-height:49px}.error,.success{border-radius:12px;padding:14px 17px;font-size:12px;line-height:1.7;border:1px solid color-mix(in srgb,currentColor 15%,transparent)}
.login{min-height:100dvh;background:radial-gradient(ellipse at 15% 0%,var(--selected),transparent 50%),radial-gradient(ellipse at 95% 85%,var(--selected),transparent 45%),var(--bg);padding-top:90px}.login>.brandmark{width:60px;height:66px;font-size:32px;border-radius:19px;margin-bottom:18px}.login h1{font-size:32px;letter-spacing:-1px}.login>.muted{font-size:12px;line-height:1.7}.loginbox{max-width:430px;width:100%;padding:30px;border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:0 18px 60px #103e2c09;margin:25px 0}.loginbox h2{font-size:23px}.loginbox>.muted{font-size:12px;line-height:1.7;margin-bottom:25px}.auth-tabs{padding:5px;background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;margin-bottom:25px}.auth-tabs a{border-radius:8px;font-size:12px;padding:10px}.auth-tabs a[aria-current=page]{background:var(--surface);box-shadow:0 2px 7px #112f2010;color:var(--green)}.loginbox .full{min-height:49px}.auth-note{font-size:10px;line-height:1.8}.passwordfield>.password-toggle{border-radius:0 12px 12px 0}.login-theme{top:22px;right:26px}
.admin-content{max-width:1700px;margin:auto;padding:32px}.admin-header{padding-left:32px;padding-right:32px;gap:20px;height:auto;min-height:78px}.admin-brand{letter-spacing:-.5px;font-size:18px}.admin-brand span{font-size:9px;letter-spacing:1.5px;padding:6px 8px;background:var(--selected);border-radius:6px}.admin-content .stats article{min-width:0}.admin-content .stats h2{font-size:30px}.admin-content .volume-card h2{font-size:27px}.admin-users,.admin-detail,.mail-settings{border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);padding:25px}.admin-table-heading h2{font-size:19px}.admin-table-scroll{border:1px solid var(--line);border-radius:13px;max-height:650px;scrollbar-gutter:stable}.users-table th{position:sticky;top:0;z-index:1;background:var(--surface-soft);padding:16px 14px;font-size:10px;letter-spacing:.2px}.users-table td{padding:18px 14px;font-size:12px}.users-table tbody tr:last-child td{border-bottom:0}.users-table tbody tr{transition:background .2s}.user-status{border-radius:20px;padding:6px 10px;font-size:10px}.status-active:before,.status-inactive:before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:middle}.table-actions button,.table-actions .outline{border-radius:8px}.admin-detail-heading{padding-bottom:15px;border-bottom:1px solid var(--line)}.admin-customer-grid article{border-radius:14px;padding:18px;background:var(--surface-soft)}.admin-entry{border-radius:12px;margin-bottom:10px}.admin-entry[open]{background:var(--surface-soft)}.admin-entry summary{min-height:42px}.smtp-summary{border:1px solid var(--line);border-radius:12px}.table-footnote{font-size:11px;line-height:1.8}.detailpanel[aria-busy=true]{opacity:.65;transition:opacity .15s}.customer-status:empty{display:none}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.stats article{transition:transform .25s var(--premium-ease),box-shadow .25s}.stats article:hover{transform:translateY(-3px);box-shadow:0 12px 30px #143a2b0c}.primary:hover,.outline:hover{transform:translateY(-1px)}button:active,.outline:active{transform:translateY(1px)}}
@media(min-width:1025px) and (max-width:1250px){.content{padding:27px 23px 0}.workspace>header{padding:0 23px}.headeractions{gap:8px}.headeractions .language-control>span{display:none}.stats article{padding:20px 17px;gap:12px}.stats h2{font-size:27px}.ledger{grid-template-columns:minmax(260px,37%) minmax(0,1fr)}.customer{padding:19px 16px}.stat-icon{width:36px;height:36px}.headeractions .outline{font-size:11px;padding:10px}}
@media(max-width:1024px){.workspace>header{height:66px;min-height:66px;padding:10px 17px}.mobile-logo{border-radius:12px}.mobilebrand{font-weight:600;font-size:17px}.content{padding:24px 16px 0}.heading{margin-bottom:20px}.heading h1{font-size:28px;letter-spacing:-.9px}.heading .eyebrow{font-size:9px}.heading .muted{font-size:12px}.stats{gap:10px;margin-bottom:20px}.stats article{padding:14px 12px;border-radius:15px;gap:9px}.stats .stat-icon{width:27px;height:27px;border-radius:9px;font-size:16px}.stats h2{font-size:24px;margin:9px 0;letter-spacing:-.9px}.stats small{font-size:10px}.stat-total{margin-top:11px;padding-top:9px;font-size:9px}.stat-total strong{font-size:11px}.stats article:last-child{padding:11px 14px}.stats article:last-child h2{font-size:21px}.ledger{display:block;border-radius:19px}.customerpanel{border-radius:18px}.paneltitle{padding:21px 18px 0}.searchwrap{padding:0 17px 17px}.searchwrap input{font-size:13px}.customer{padding:19px 17px;min-height:84px}.customername b{font-size:14px}.customer .avatar{width:41px;height:41px}.customer small{font-size:10px}.balance b{font-size:13px}.bottom-nav{background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(18px);box-shadow:0 -6px 24px #072d2010;padding-left:12px;padding-right:12px}.bottom-nav .bottom-home{background:var(--selected);border-radius:13px}.bottom-nav a,.bottom-nav button{font-size:9px;gap:4px}.bottom-nav svg{width:21px;height:21px}.customer-open .detailhead{padding:18px 16px}.customer-back{border:1px solid var(--line);border-radius:12px}.person h2{font-size:19px}.netbalance{margin:18px 16px 22px;padding:20px;border-radius:15px}.netbalance strong{font-size:29px}.netbalance span{font-size:11px}.historytitle{padding:0 17px}.entry{padding:20px 16px;gap:10px}.entry-label-row>b{font-size:12px}.entryamount>b{font-size:15px}.entrybody p{font-size:13px}.entryicon{border-radius:10px}.entryactions{padding:12px 16px;background:color-mix(in srgb,var(--surface) 97%,transparent);backdrop-filter:blur(12px);gap:10px}.entryactions button{font-size:13px;min-height:48px;border-radius:12px}.customer-open .ledger{border-radius:0}dialog{padding:23px;width:calc(100% - 24px);max-width:480px;border-radius:23px;max-height:89dvh}.detail-actions{margin:22px -23px -23px;padding:16px 23px;bottom:-23px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.modaltitle h2{font-size:20px}.amountinput{min-height:80px;font-size:35px!important}dialog input,dialog textarea{font-size:16px}.detail-amount{font-size:37px}.login{padding:110px 18px 35px}.loginbox{padding:25px;max-width:430px}.login h1{font-size:29px}.login-theme{left:18px;right:18px;top:20px}.admin-content{padding:25px 15px}.admin-content .stats article{padding:16px 13px}.admin-content .stats h2{font-size:26px}.admin-content .stats article:last-child{padding:16px 13px}.admin-content .stats small{font-size:10px}.admin-content .stats .stat-icon{display:none}.admin-content .volume-card h2{font-size:22px}.admin-header{padding:17px 15px}.admin-header .headeractions{display:flex}.admin-users,.admin-detail,.mail-settings{padding:18px;border-radius:17px}.admin-content .heading h1{font-size:27px}.admin-content .stats article:last-child>div{display:block}.users-table th{padding:14px 12px}.admin-table-scroll{max-height:520px}.admin-detail-heading{flex-wrap:wrap;gap:12px}.admin-detail-heading .muted{overflow-wrap:anywhere}.smtp-summary{flex-wrap:wrap;gap:12px}footer{font-size:9px;padding:23px 0}}
@media(max-width:370px){.content{padding-left:12px;padding-right:12px}.stats article{padding:12px 9px;gap:7px}.stats h2{font-size:21px}.stats small{font-size:9px}.stat-total strong{font-size:10px}.customer{padding-left:13px;padding-right:13px;gap:9px}.entry{padding:18px 11px;gap:7px}.entryamount>b{font-size:13px}.entry-label-row>b{font-size:11px}.loginbox{padding:22px}.login-theme .language-control select{width:98px}.login-theme .theme-switch button{padding:5px 7px}.admin-header .headeractions{gap:8px}.admin-header .outline{font-size:10px;padding:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
