@charset "UTF-8";
/* Shell theme for every workspace and sign-in page (moved out of books_web.py, October 6, 2026). */
:root{
  --tblr-font-sans-serif:'Inter','Segoe UI',-apple-system,system-ui,sans-serif;
  --tblr-primary:#1d8f68;--tblr-primary-rgb:29,143,104;
  --accent:#1d8f68;--accent-2:#315da8;--accent-3:#c3812d;--accent-soft:#e7f6f0;
  --ink:#111827;--muted:#627085;--subtle:#8a96a8;--line:#d7dee8;
  --bg:#eef2f5;--panel:#ffffff;--panel-2:#f8fafc;--nav:#111b2b;--nav-2:#17372f;
  --danger:#b42318;--warning:#b76e00;--good:#17784f;--shadow:0 16px 44px rgba(18,32,52,.12);
}
html,body{background:var(--bg);color:var(--ink);font-size:.875rem}
body{letter-spacing:0;background:
 linear-gradient(135deg,rgba(29,143,104,.08),rgba(49,93,168,.06) 36%,rgba(195,129,45,.05) 72%,rgba(238,242,245,0)),
 var(--bg)}
a{color:#176f56;text-decoration:none}a:hover{text-decoration:none}
.num{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}
.pos{color:var(--good)}.neg{color:var(--danger)}
.page{background:transparent}
.navbar-vertical{background:
 linear-gradient(160deg,rgba(29,143,104,.24),rgba(49,93,168,.10) 42%,rgba(17,27,43,0) 66%),
 linear-gradient(180deg,var(--nav),#0d1522)!important;border-right:1px solid rgba(255,255,255,.08);width:16.6rem;box-shadow:10px 0 34px rgba(15,23,42,.18)}
.navbar-vertical .container-fluid{padding:1rem .9rem}
.navbar-vertical .navbar-brand{width:100%;border-bottom:1px solid rgba(255,255,255,.10);padding-bottom:1rem;margin-bottom:.75rem}
.navbar-vertical .navbar-brand a{color:#f8fafc;text-decoration:none;line-height:1.12;font-weight:800}
.navbar-vertical .navbar-brand small{display:block;color:#9fb0c5!important;font-size:.70rem;font-weight:650;letter-spacing:.02em;margin-top:.12rem}
.brand-mark{width:39px;height:39px;border-radius:8px;background:linear-gradient(135deg,#32b982,#315da8);color:#fff;display:inline-flex;align-items:center;justify-content:center;margin-right:.65rem;box-shadow:0 10px 22px rgba(29,143,104,.32);font-weight:850}
.mobile-menu-link{display:inline-flex;position:absolute;right:1rem;top:1.05rem;z-index:10;align-items:center;gap:.35rem;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:.32rem .55rem;background:rgba(255,255,255,.08);color:#fff;font-weight:700;font-size:.78rem}
.menu-mark{display:inline-flex;width:32px;height:32px;border:1px solid rgba(255,255,255,.16);border-radius:8px;align-items:center;justify-content:center;position:relative;background:rgba(255,255,255,.08)}
.menu-mark:before,.menu-mark:after,.menu-mark span{content:"";display:block;width:14px;height:2px;background:#fff;border-radius:2px;position:absolute}
.menu-mark:before{transform:translateY(-5px)}.menu-mark:after{transform:translateY(5px)}
.navbar-vertical .nav-link{color:#cfdae8;border-radius:8px;margin:3px 0;padding:.55rem .64rem;font-weight:650;transition:background .16s ease,color .16s ease,transform .16s ease}
.navbar-vertical .nav-link:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none;transform:translateX(2px)}
.navbar-vertical .nav-link.active{background:linear-gradient(90deg,rgba(29,143,104,.26),rgba(49,93,168,.14));color:#fff;box-shadow:inset 3px 0 #44c28d,0 8px 20px rgba(0,0,0,.10)}
.navbar-vertical .nav-link-icon{color:#85d6b8}
.side-head{color:#7f91a8;font-size:.66rem;letter-spacing:.09em;font-weight:800;padding:1.05rem .4rem .28rem;text-transform:uppercase}
.signed-in{border-top:1px solid rgba(255,255,255,.10);margin-top:1rem;padding:.85rem .4rem 0;color:#aab7c8}
.signed-in a{color:#d7efe5}.signed-in .badge-soft{background:rgba(255,255,255,.10);color:#ecfdf5}
.topbar{position:sticky;top:0;z-index:1018;background:rgba(255,255,255,.78);backdrop-filter:saturate(170%) blur(14px);border-bottom:1px solid rgba(215,222,232,.78)}
.topbar-inner{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.topbar-title{font-size:.76rem;color:#3f526d;text-transform:uppercase;letter-spacing:.09em;font-weight:850}
.topbar-actions{display:flex;gap:.45rem;align-items:center}
.page-body{padding:1.25rem 0 1.6rem!important;margin-top:0!important}
.container-xl{max-width:1360px}
.card{background:rgba(255,255,255,.94);border:1px solid rgba(203,213,225,.92);border-radius:8px;box-shadow:0 2px 8px rgba(18,32,52,.05),var(--shadow)}
.card:hover{box-shadow:0 10px 28px rgba(18,32,52,.10)}
.card-header{background:linear-gradient(180deg,#fff,#f9fbfd);border-bottom:1px solid var(--line);min-height:auto;padding:.78rem 1rem}
.card-title{font-size:.86rem;font-weight:800;color:#1f2c3d}
.page-header{margin-bottom:1rem;padding:.95rem 1rem;border:1px solid rgba(203,213,225,.86);border-radius:8px;background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(248,250,252,.88));box-shadow:0 8px 28px rgba(18,32,52,.07)}
.page-title{font-size:1.34rem;line-height:1.2;font-weight:820;color:var(--ink)}
.text-secondary{color:var(--muted)!important}
.table{font-size:.83rem;color:#243247}.table>:not(caption)>*>*{padding:.62rem .78rem}
.table thead th{font-size:.67rem;text-transform:uppercase;letter-spacing:.06em;color:#78869a;font-weight:850;background:#f6f8fb;border-bottom:1px solid #dce3ec}
.table tbody tr:hover{background:#f4faf7}
.table-sticky thead th{position:sticky;top:0;background:#f6f8fb;z-index:2}
.kpi{overflow:hidden;position:relative}.kpi:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.kpi .card-body{padding:1rem}.kpi .h1{font-size:1.35rem;font-weight:840;letter-spacing:0}
.kpi small{color:var(--muted);font-weight:650}
.avatar{border-radius:8px}.hstrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.72rem;margin-bottom:1rem}
.hpill{background:rgba(255,255,255,.92);border:1px solid rgba(203,213,225,.92);border-radius:8px;padding:.7rem .8rem;display:flex;gap:.65rem;align-items:center;color:var(--ink);box-shadow:0 8px 24px rgba(18,32,52,.06)}
.hpill:hover{box-shadow:0 12px 28px rgba(18,32,52,.10);text-decoration:none;transform:translateY(-1px)}
.hpill .lbl{font-size:.65rem;color:#5d6c82;text-transform:uppercase;letter-spacing:.065em;font-weight:850}
.hpill .val{font-weight:840;font-size:1rem}.hpill .dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 4px rgba(29,143,104,.10)}
.dot-ok{background:var(--good)}.dot-warn{background:var(--warning)}.dot-bad{background:var(--danger)}
.badge-soft{font-weight:800;font-size:.68rem;padding:.24rem .5rem;border-radius:6px;background:#eef2f6;color:#536170}
.btn{border-radius:7px;font-weight:700}.btn-primary{--tblr-btn-bg:var(--accent);--tblr-btn-border-color:var(--accent);--tblr-btn-hover-bg:#176f51;--tblr-btn-hover-border-color:#176f51;--tblr-btn-active-bg:#176f51;box-shadow:0 8px 18px rgba(29,143,104,.18)}
.btn-outline-secondary{--tblr-btn-color:#334155;--tblr-btn-border-color:#c9d2de;--tblr-btn-hover-bg:#f4f7fa;--tblr-btn-hover-color:#111827}
.form-control,.form-select{border-color:#c8d2df;border-radius:7px}.form-control:focus,.form-select:focus{border-color:#72b69f;box-shadow:0 0 0 .18rem rgba(29,143,104,.14)}
.money-lg{font-size:1.08rem;font-weight:820}.offcanvas{border-left:1px solid var(--line)}
.drawer-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:1rem}
.meta-box{border:1px solid var(--line);border-radius:8px;padding:.62rem .7rem;background:#f8fafc}
.meta-box small{display:block;color:var(--muted);text-transform:uppercase;font-size:.65rem;letter-spacing:.05em;font-weight:800}
.dash-hero{position:relative;overflow:hidden;border-radius:8px;padding:1.2rem 1.25rem;margin-bottom:1rem;color:#f8fafc;background:
 linear-gradient(135deg,rgba(29,143,104,.88),rgba(49,93,168,.84) 58%,rgba(195,129,45,.72)),
 repeating-linear-gradient(90deg,rgba(255,255,255,.10) 0 1px,transparent 1px 42px);
 box-shadow:0 18px 44px rgba(18,32,52,.20)}
.dash-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,27,43,.22),rgba(17,27,43,0));pointer-events:none}
.dash-hero>*{position:relative;z-index:1}.dash-eyebrow{font-size:.70rem;text-transform:uppercase;letter-spacing:.10em;font-weight:850;color:#d9fbe9}.dash-title{font-size:1.65rem;font-weight:850;line-height:1.1;margin:.18rem 0 .25rem}.dash-copy{color:#dbe8f6;margin:0}
.dash-actions{display:flex;gap:.5rem;justify-content:flex-end;align-items:center;flex-wrap:wrap}.dash-actions .btn{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.30);color:#fff}.dash-actions .btn-primary{background:#fff;border-color:#fff;color:#176f51;box-shadow:none}
.dash-overview{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(20rem,.8fr);gap:1rem;margin-bottom:1rem;align-items:start}
.dash-main .card-header,.dash-health .card-header{align-items:flex-start}.dash-main canvas{max-height:260px}
.dash-statline{display:flex;gap:.9rem;flex-wrap:wrap;color:#64748b;font-size:.78rem}.dash-statline strong{color:#1f2937}
.health-list{display:grid;gap:.55rem;padding:1rem}.health-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.62rem .7rem;border:1px solid #dde5ef;border-radius:8px;background:#f8fafc;color:#27364a}
.health-row:hover{text-decoration:none;background:#f2f7f5}.health-row .lbl{font-size:.68rem;color:#75849a;text-transform:uppercase;letter-spacing:.06em;font-weight:850}.health-row .val{font-weight:850}.health-left{display:flex;align-items:center;gap:.55rem;min-width:0}.health-left span:last-child{min-width:0}.dash-section-title{font-size:.74rem;color:#738197;text-transform:uppercase;letter-spacing:.08em;font-weight:850;margin:.35rem 0 .7rem}
.insight-card{border-left:3px solid var(--accent)}.recent-row td{vertical-align:middle}.chart-card .card-body{min-height:250px}
.login-shell{min-height:100vh;background:linear-gradient(135deg,#0f172a,#12352d 52%,#243b67);position:relative;overflow:hidden}
.login-shell:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.055) 0 1px,transparent 1px 44px),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 44px)}
.login-wrap{position:relative;z-index:1}.login-brand{color:#fff;text-align:center}.login-mark{width:54px;height:54px;border-radius:8px;background:linear-gradient(135deg,#36c287,#4777d6);display:inline-flex;align-items:center;justify-content:center;font-weight:900;box-shadow:0 18px 40px rgba(0,0,0,.28);margin-bottom:.8rem}.login-card{border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 60px rgba(0,0,0,.28)}
@media (max-width:991.98px){
 body{overflow-x:hidden}
 .navbar-vertical{width:100%;box-shadow:0 8px 24px rgba(15,23,42,.18)}.navbar-vertical .container-fluid{min-height:64px;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}
 .navbar-vertical .navbar-brand{border-bottom:0;margin:0!important;padding:0!important;width:auto;flex:1}
 .navbar-toggler{display:inline-flex!important;align-items:center;gap:.5rem;min-width:44px;min-height:44px;color:#fff;font-size:.9rem}.mobile-menu-link{display:none!important}
 .navbar-nav.flex-row{display:none}
 .navbar-collapse{flex-basis:100%;border-top:1px solid rgba(255,255,255,.12);margin-top:.7rem;padding-top:.45rem;max-height:70vh;overflow-y:auto}
 .navbar-collapse.collapse:not(.show){display:none!important}.navbar-collapse.show{display:block!important}
 .navbar-collapse .navbar-nav{flex-direction:column!important;gap:.25rem;white-space:normal;padding-bottom:.75rem;max-width:100%}
 .navbar-collapse .nav-item{flex:0 0 auto}.navbar-collapse .nav-link{padding:.38rem .55rem}
 .navbar-collapse .nav-link{min-height:44px}.navbar-collapse .nav-link-icon{display:inline-flex}.side-head,.signed-in{display:block}.signed-in a{display:inline-flex;align-items:center;min-height:44px;padding-right:.65rem}
 .brand-mark{width:31px;height:31px}.topbar{display:none}.page-body{padding-top:1rem!important}.hstrip{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dash-overview{grid-template-columns:1fr}.dash-hero .row{display:block;margin:0}.dash-hero [class*="col-"]{padding:0}.dash-copy{max-width:100%;overflow-wrap:anywhere}.dash-actions{display:grid;grid-template-columns:1fr;gap:.45rem;justify-content:stretch;margin-top:.75rem}.dash-actions .btn{width:100%;min-width:0}
 .dash-main .card-header{display:block!important}.dash-main .card-header .btn{margin-top:.65rem;width:100%}
 .table-responsive{border:0}.card{border-radius:8px}.page-title{font-size:1.18rem}
}
@media (max-width:575.98px){
 .hstrip{grid-template-columns:1fr}.row-deck>.col-6{width:100%}.financial-snapshot>.col-6{width:50%}.financial-snapshot .card-body{padding:.8rem}.financial-snapshot .avatar{display:none}.financial-snapshot .h1{font-size:clamp(1rem,4.6vw,1.4rem)}.financial-snapshot small{display:block;font-size:.75rem;line-height:1.4}
 .table>:not(caption)>*>*{padding:.5rem}.drawer-meta{grid-template-columns:1fr}.dash-title{font-size:1.35rem}.dash-hero{padding:1rem}
}
@media (min-width:992px){.mobile-menu-link{display:none!important}}
@media print{.navbar-vertical,.topbar,.d-print-none,.card-footer{display:none!important}.page-wrapper{margin:0!important}.card{box-shadow:none;border:1px solid #ccc}body{background:#fff}}

/* Design system pass: finance SaaS polish across every page. */
:root{
  --accent:#0b8068;--accent-2:#2f66d0;--accent-3:#b7791f;--accent-soft:#e5f5ef;
  --ink:#182235;--muted:#5d6c82;--subtle:#5d6c82;--line:#d8e1ec;
  --bg:#f3f6fa;--panel:#ffffff;--panel-2:#f8fafc;--nav:#101827;
  --shadow:0 14px 38px rgba(20,35,60,.10);--shadow-sm:0 5px 16px rgba(20,35,60,.06);
}
html,body{background:var(--bg);color:var(--ink)}
body{background:
 radial-gradient(circle at 14% 8%,rgba(11,128,104,.14),transparent 24rem),
 radial-gradient(circle at 90% 4%,rgba(47,102,208,.12),transparent 26rem),
 linear-gradient(180deg,#f7fafc 0,#eef3f7 42%,#f6f8fb 100%)}
a{color:#0b6f5b}a:hover{color:#095d4d}
.page-wrapper{background:transparent}
.navbar-vertical{background:
 linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,0) 18%),
 radial-gradient(circle at 10% 0,rgba(13,148,136,.30),transparent 16rem),
 linear-gradient(180deg,#142033 0,#0d1524 100%)!important;border-right:1px solid rgba(255,255,255,.08)}
.navbar-vertical .navbar-brand{border-bottom:1px solid rgba(255,255,255,.12)}
.brand-mark{background:linear-gradient(135deg,#19a982 0,#2f66d0 100%);box-shadow:0 12px 26px rgba(11,128,104,.34),inset 0 1px rgba(255,255,255,.24)}
.navbar-vertical .nav-link{color:#d5dfeb;font-weight:720}
.navbar-vertical .nav-link-icon{color:#77d9bd}
.navbar-vertical .nav-link.active{background:linear-gradient(90deg,rgba(11,128,104,.34),rgba(47,102,208,.20));box-shadow:inset 3px 0 #38d49d,0 10px 24px rgba(0,0,0,.13)}
.side-head{color:#8fa0b7}
.topbar{background:rgba(247,250,252,.82);border-bottom:1px solid rgba(216,225,236,.78);box-shadow:0 1px 0 rgba(255,255,255,.70)}
.topbar-title{color:#334155}
.page-body{padding-top:1.35rem!important}
.card{border:1px solid rgba(203,213,225,.94);background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.94));box-shadow:var(--shadow-sm);transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}
.card:hover{box-shadow:var(--shadow);border-color:#c6d4e3}
.card-header{background:linear-gradient(180deg,#fff,#f8fafc);padding:.85rem 1rem}
.card-title{color:#1e293b;font-size:.88rem;letter-spacing:0}
.page-header{background:linear-gradient(135deg,#fff 0,#f8fafc 58%,#eef7f3 100%);border-color:#d9e3ee;box-shadow:var(--shadow-sm)}
.page-header:before{content:"";display:block;width:2.8rem;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2));margin-bottom:.7rem}
.page-title{font-weight:850;color:#162033}
.table{color:#253247}.table>:not(caption)>*>*{border-bottom-color:#e5ebf2}
.table thead th{background:#f2f6fa;color:#6f7f94;font-weight:850;border-bottom-color:#d8e1ec}
.table tbody tr:nth-child(even){background:rgba(248,250,252,.55)}
.table tbody tr:hover{background:#edf8f4}
.card-table tbody tr:last-child td{border-bottom:0}
.btn{border-radius:8px;font-weight:760;letter-spacing:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.btn-primary{--tblr-btn-bg:#0b8068;--tblr-btn-border-color:#0b8068;--tblr-btn-hover-bg:#096b58;--tblr-btn-hover-border-color:#096b58;box-shadow:0 9px 20px rgba(11,128,104,.20)}
.btn-outline-secondary{background:#fff;--tblr-btn-color:#344256;--tblr-btn-border-color:#cbd6e3;--tblr-btn-hover-bg:#eef5f3;--tblr-btn-hover-color:#172033}
.form-control,.form-select{background:#fff;border-color:#cbd6e3;border-radius:8px}
.form-control:focus,.form-select:focus{border-color:#5bbba0;box-shadow:0 0 0 .18rem rgba(11,128,104,.13)}
.badge-soft{background:#edf2f7;color:#475569;border:1px solid #d9e2ec}
.kpi{border-color:#d8e4ef}.kpi:before{height:4px;background:linear-gradient(90deg,#0b8068 0,#2f66d0 72%,#b7791f 100%)}
.kpi .h1{color:#283447}.kpi small{color:#5d6c82}
.avatar{box-shadow:inset 0 1px rgba(255,255,255,.72)}
.dash-hero{background:
 linear-gradient(135deg,rgba(11,128,104,.95) 0,rgba(47,102,208,.88) 62%,rgba(183,121,31,.78) 100%),
 linear-gradient(90deg,rgba(255,255,255,.14) 0 1px,transparent 1px 44px);
 box-shadow:0 20px 48px rgba(23,40,72,.22)}
.dash-hero:after{background:linear-gradient(90deg,rgba(5,18,36,.22),rgba(5,18,36,0) 58%)}
.dash-title{font-weight:900}.dash-eyebrow{color:#dffcf0}.dash-copy{color:#eef6ff}
.dash-actions .btn{backdrop-filter:blur(10px);background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.34)}
.dash-actions .btn-primary{background:#fff;color:#0b6f5b}
.health-row{background:#f8fafc;border-color:#d8e3ee}.health-row:hover{background:#edf8f4}
.insight-card{border-left-color:#0b8068}
.chart-card .card-body{background:linear-gradient(180deg,#fff,#fbfcfe)}
.list-group-item{border-color:#e4eaf2}
.alert{border-radius:8px;border-width:1px}
.offcanvas{background:#fbfcfe}
.offcanvas-header{background:#fff}
.login-shell{background:
 radial-gradient(circle at 24% 18%,rgba(21,178,133,.22),transparent 20rem),
 radial-gradient(circle at 80% 34%,rgba(47,102,208,.24),transparent 24rem),
 linear-gradient(135deg,#101827 0,#12362f 48%,#1c3155 100%)}
.login-card{background:rgba(255,255,255,.96);box-shadow:0 28px 70px rgba(0,0,0,.32)}
.login-mark{background:linear-gradient(135deg,#14b88b,#3f72df)}
@media (max-width:991.98px){
 .page-body{padding-top:1rem!important}.navbar-vertical{box-shadow:0 9px 28px rgba(15,23,42,.22)}
 .page-header:before{margin-bottom:.55rem}.dash-hero{border-radius:8px}.card:hover{transform:none}
}

/* Detail QA fixes: prevent table/date wrapping, header crowding, and sidebar hover overflow. */
.navbar-vertical{overflow-x:hidden;scrollbar-gutter:stable}
.navbar-vertical .navbar-collapse{overflow-x:hidden}
.navbar-vertical .nav-link{max-width:100%;overflow:hidden}
.navbar-vertical .nav-link:hover{transform:none}
.nav-link-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-header{margin-bottom:1.25rem!important}
.page-header + .row,.page-header + .card,.page-header + .table-responsive,.page-header + form{margin-top:.55rem!important}
.table{table-layout:auto}
.table th:first-child,.table td:first-child{white-space:nowrap;min-width:7.75rem}
.table td[style*="width:6rem"],.table th[style*="width:6rem"]{width:7.75rem!important;min-width:7.75rem!important;white-space:nowrap}
.table td,.table th{overflow-wrap:normal;word-break:normal}
.table .text-secondary[style*="width:6rem"]{white-space:nowrap}
.chart-card .card-body{overflow:hidden}
@media (max-width:991.98px){
 .table-responsive{overflow-x:auto}
 .table-responsive > .table{min-width:46rem}
 .table th:first-child,.table td:first-child{min-width:7.5rem}
 .dash-main .table{min-width:0}
}
/* Jia Liu Accounting brand system — shared with jialiu.ca. */
:root{
 --brand-navy:#1a2744;--brand-navy-light:#243352;--brand-gold:#c9a84c;--brand-gold-light:#d4b85e;
 --brand-cream:#faf8f4;--brand-ink:#20293a;--accent:#c9a84c;--accent-2:#1a2744;--accent-3:#8c7550;
 --accent-soft:#f7f0dc;--ink:#20293a;--muted:#647082;--line:#e3dfd5;--bg:#faf8f4;--nav:#1a2744;
 --tblr-primary:#c9a84c;--tblr-primary-rgb:201,168,76;--shadow:0 14px 34px rgba(26,39,68,.09);
}
html,body{background:var(--brand-cream);color:var(--brand-ink)}
body{background:linear-gradient(180deg,#fff 0,#faf8f4 28rem,#f7f4ed 100%);font-family:'Inter','Segoe UI',-apple-system,BlinkMacSystemFont,sans-serif}
html[lang="zh-CN"] body{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC','Segoe UI',sans-serif}
a{color:#2c416c}a:hover{color:#9c7b26}
.navbar-vertical{background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0) 22%),linear-gradient(180deg,var(--brand-navy) 0,#121d35 100%)!important;border-right:1px solid rgba(201,168,76,.24)}
.navbar-vertical .navbar-brand{border-bottom-color:rgba(201,168,76,.24)}
.navbar-vertical .navbar-brand a{font-family:Georgia,'Times New Roman',serif;font-weight:700;letter-spacing:.01em}
.navbar-vertical .navbar-brand .brand-accounting{display:block;font-size:.75em;margin-top:.15rem;color:var(--brand-gold);font-style:normal}
.navbar-vertical .navbar-brand small{font-family:'Inter','Segoe UI',sans-serif;color:#c7cfdb!important;font-weight:500;letter-spacing:.035em}
.brand-mark,.login-mark{position:relative;background:transparent!important;color:var(--brand-gold)!important;border:1.5px solid rgba(201,168,76,.72);border-radius:9px;font-family:Georgia,'Times New Roman',serif;box-shadow:none!important}
.brand-mark:after,.login-mark:after{content:"";position:absolute;height:1.5px;background:var(--brand-gold);border-radius:2px;left:7px;right:7px;bottom:6px}
.navbar-vertical .nav-link{color:#dbe0e9;font-weight:600}
.navbar-vertical .nav-link-icon{color:var(--brand-gold)}
.navbar-vertical .nav-link:hover{background:rgba(201,168,76,.10);color:#fff}
.navbar-vertical .nav-link.active{background:linear-gradient(90deg,rgba(201,168,76,.22),rgba(201,168,76,.06));box-shadow:inset 3px 0 var(--brand-gold);color:#fff}
.side-head{color:#adbacb}
.signed-in{border-top-color:rgba(201,168,76,.22);color:#bfc8d5}.signed-in a{color:#f0d98f}.signed-in .badge-soft{background:rgba(201,168,76,.15);border-color:rgba(201,168,76,.28);color:#f8e7ae}
.topbar{background:rgba(250,248,244,.90);border-bottom-color:rgba(201,168,76,.24)}
.topbar-title{color:var(--brand-navy)}
.card{background:#fff;border-color:#e5e0d5;box-shadow:0 6px 22px rgba(26,39,68,.065)}
.card:hover{border-color:#dbd1bb;box-shadow:var(--shadow)}
.card-header{background:linear-gradient(180deg,#fff,#fdfbf7);border-bottom-color:#e8e2d7}
.card-title,.page-title,.offcanvas-title{font-family:Georgia,'Times New Roman',serif;color:var(--brand-navy);font-weight:700}
.page-title{font-size:1.45rem}
.page-header{background:linear-gradient(135deg,#fff 0,#fdfbf7 68%,#f8f0dd 100%);border-color:#e6dfd1;box-shadow:0 7px 24px rgba(26,39,68,.055)}
.page-header:before{background:var(--brand-gold)}
.table thead th{background:#f8f5ee;color:#667084;border-bottom-color:#e4ddd0}
.table tbody tr:nth-child(even){background:rgba(250,248,244,.58)}
.table tbody tr:hover{background:#fbf5e4}
.btn-primary{--tblr-btn-bg:var(--brand-gold);--tblr-btn-border-color:var(--brand-gold);--tblr-btn-color:var(--brand-navy);--tblr-btn-hover-bg:var(--brand-gold-light);--tblr-btn-hover-border-color:var(--brand-gold-light);--tblr-btn-hover-color:var(--brand-navy);--tblr-btn-active-bg:#bc982f;--tblr-btn-active-border-color:#bc982f;box-shadow:0 8px 18px rgba(201,168,76,.22);color:var(--brand-navy)!important}
.btn-outline-secondary{--tblr-btn-color:var(--brand-navy);--tblr-btn-border-color:#d6cdbb;--tblr-btn-hover-bg:#f8f1df;--tblr-btn-hover-color:var(--brand-navy);background:#fff}
.form-control,.form-select{border-color:#d7d0c4}.form-control:focus,.form-select:focus{border-color:var(--brand-gold);box-shadow:0 0 0 .18rem rgba(201,168,76,.17)}
.badge-soft{background:#f7f1e2;color:#695724;border-color:#e4d6aa}
.kpi:before{background:linear-gradient(90deg,var(--brand-gold),var(--brand-navy))}
.dash-hero{background:radial-gradient(circle at 88% 18%,rgba(201,168,76,.22),transparent 13rem),linear-gradient(135deg,var(--brand-navy) 0,var(--brand-navy-light) 62%,#31476a 100%);box-shadow:0 20px 46px rgba(26,39,68,.22)}
.dash-hero:after{background:linear-gradient(90deg,rgba(12,22,42,.26),rgba(12,22,42,0) 58%)}
.dash-eyebrow{color:#e9cf84}.dash-copy{color:#e3e8f0}.dash-actions .btn-primary{background:var(--brand-gold);border-color:var(--brand-gold);color:var(--brand-navy)!important}
.health-row{background:#fdfbf7;border-color:#e4ddd0}.health-row:hover{background:#fbf5e4}.insight-card{border-left-color:var(--brand-gold)}
.login-shell{min-height:100vh;background:radial-gradient(circle at 18% 20%,rgba(201,168,76,.15),transparent 21rem),radial-gradient(circle at 86% 78%,rgba(201,168,76,.10),transparent 24rem),linear-gradient(135deg,var(--brand-navy) 0,var(--brand-navy-light) 58%,#2e4567 100%);position:relative}
.login-shell:before{content:"";position:absolute;inset:0;background:linear-gradient(118deg,transparent 0 68%,rgba(255,255,255,.025) 68% 69%,transparent 69%),linear-gradient(28deg,transparent 0 76%,rgba(201,168,76,.05) 76% 77%,transparent 77%);pointer-events:none}
.login-wrap{padding:1.5rem 0}.login-brand{color:#fff}.login-brand-link{display:inline-flex;align-items:center;gap:.85rem;color:#fff!important;text-decoration:none!important}.login-mark{width:58px;height:58px;display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;font-weight:700;margin:0}
.login-wordmark{font-family:Georgia,'Times New Roman',serif;font-size:1.72rem;font-weight:700;letter-spacing:.01em;text-align:left;line-height:1.05}.login-wordmark span{display:block;font-size:.75em;margin-top:.2rem;color:var(--brand-gold)}
.login-brand-sub{color:#cbd3df;text-transform:uppercase;letter-spacing:.15em;font-size:.68rem;font-weight:600;text-align:left;margin-top:.3rem}
.login-card{background:#fff;border:1px solid rgba(201,168,76,.25);border-radius:12px;box-shadow:0 28px 70px rgba(6,13,29,.34)}
.login-card h1,.login-card h2{font-family:Georgia,'Times New Roman',serif;color:var(--brand-navy);font-weight:700}
.login-card .auth-intro{color:var(--muted);margin-bottom:1.35rem}
.login-card .form-label{font-weight:650;color:#33405a}.login-card .form-control{min-height:44px}
.jl-lang-toggle{position:fixed;right:1.5rem;bottom:1.5rem;z-index:1090;background:var(--brand-navy);color:#fff;border:1.5px solid rgba(201,168,76,.46);border-radius:8px;padding:.55rem 1rem;font:600 .78rem 'Inter','Segoe UI',sans-serif;box-shadow:0 7px 20px rgba(10,20,40,.20);cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.jl-lang-toggle:hover{background:var(--brand-navy-light);border-color:var(--brand-gold);transform:translateY(-1px)}
.login-shell .jl-lang-toggle{background:rgba(26,39,68,.90);border-color:rgba(201,168,76,.60)}
.signed-in-identity{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin:.3rem 0}
.identity-language{display:inline-flex;align-items:center;flex-shrink:0;border:1px solid rgba(201,168,76,.5);border-radius:999px;background:rgba(0,0,0,.18);padding:2px;color:#fff;cursor:pointer;font:600 .68rem/1.5 'Inter','Segoe UI',sans-serif}
.identity-language span{padding:2px 6px;border-radius:999px;transition:background .15s,color .15s}
.identity-language [data-language-option="en"]{background:var(--brand-gold);color:var(--brand-navy)}
html[data-lang="zh"] .identity-language [data-language-option="en"]{background:transparent;color:#fff}
html[data-lang="zh"] .identity-language [data-language-option="zh"]{background:var(--brand-gold);color:var(--brand-navy)}
.identity-language:focus-visible{outline:2px solid #fff;outline-offset:3px}
html[lang="zh-CN"] .page-title,html[lang="zh-CN"] .card-title,html[lang="zh-CN"] .login-card h1,html[lang="zh-CN"] .login-card h2{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',sans-serif}
.skip-link{position:fixed;left:1rem;top:-6rem;z-index:2000;background:#fff;color:#1a2744;padding:.75rem 1rem;border:2px solid #1a2744;border-radius:6px}.skip-link:focus{top:.5rem}
:focus-visible{outline:3px solid #197d95;outline-offset:3px}.navbar-vertical :focus-visible{outline-color:#efd386}
/* Content actions use shared controls in content-actions.css. */
#main-content .page-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin:1rem 0}
#main-content .btn-outline-secondary{color:#263b54;border-color:#718298;background:#fff}
#main-content .btn-outline-secondary:hover{color:#fff;background:#263b54;border-color:#263b54}
/* Client identity and the single account action row. */
::selection{background:#1557b0;color:#fff;text-shadow:none}
.navbar-vertical ::selection{background:#f4cf58;color:#101b30;text-shadow:none}
.client-identity{display:block!important;color:#fff;font-size:1.02rem;font-weight:750;line-height:1.35;overflow-wrap:anywhere;padding-left:.55rem;border-left:3px solid var(--brand-gold);margin-bottom:.45rem}
.signed-in-identity{gap:.55rem;color:#f0f3f8}
.signed-in .identity-logout{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;flex-shrink:0;color:#f3d787;background:rgba(201,168,76,.1);border:1px solid rgba(201,168,76,.5);border-radius:7px;font-size:.72rem;font-weight:600;line-height:1.5;text-decoration:none;padding:.3rem .45rem;min-height:30px;white-space:nowrap;box-shadow:0 1px 2px rgba(0,0,0,.12);transition:background .15s,border-color .15s,color .15s}
.signed-in .identity-logout .ti{font-size:.95rem}
.signed-in .identity-logout:hover{color:#fff1c8;background:rgba(201,168,76,.22);border-color:var(--brand-gold);text-decoration:none}
.signed-in .identity-logout:focus-visible{outline:2px solid #fff;outline-offset:3px;background:rgba(201,168,76,.22)}
.signed-in .identity-logout:active{background:rgba(201,168,76,.3)}
.navbar-vertical .navbar-brand{padding:0!important;min-height:0;border-bottom:0;margin:0 0 .35rem!important;justify-content:flex-start!important;align-items:flex-start;text-align:left}
/* Sidebar: company, user and account links sit under the brand; on wide screens both stay put while the menu scrolls. */
.side-top{display:block;min-width:0;flex:1}.signed-in-top{border-top:0;margin-top:0;padding:.15rem .4rem 0}@media(max-width:991.98px){.navbar-vertical .container-fluid{padding:.4rem .8rem}.side-top .navbar-brand img{width:150px;height:auto}.client-identity{font-size:.95rem}.signed-in-identity{margin:.2rem 0}.signed-in-top{padding:.25rem 0 0}}
@media (min-width:992px){.navbar-vertical.navbar-expand-lg>.container-fluid{padding-top:0;justify-content:flex-start}.navbar-vertical.navbar-expand-lg .navbar-collapse{flex-grow:0;align-items:stretch;width:100%}.side-top{display:block;flex:0 0 auto;position:sticky;top:0;z-index:5;padding-top:.3rem;padding-bottom:.6rem;background:var(--brand-navy);border-bottom:1px solid rgba(201,168,76,.22);box-shadow:0 8px 14px -12px rgba(0,0,0,.55)}.side-top .navbar-brand{margin-bottom:.25rem!important}.signed-in-top{border-top:0;margin-top:0;padding:.15rem .4rem 0}}
.chart-empty{padding:1.5rem .5rem;color:#536174;line-height:1.7}.chart-card .card-body:has(.chart-empty){min-height:0}
.attention-empty{border-top:1px solid var(--line);color:#536174}.financial-snapshot{margin-bottom:1rem}.financial-snapshot .card-body,.financial-snapshot .card-body .d-flex>div{min-width:0}.financial-snapshot .num{overflow-wrap:anywhere}
.dash-hero{background:#fff;box-shadow:none;border:1px solid var(--line);padding:1rem 1.25rem;margin-bottom:1rem}.dash-hero:after{display:none}.dash-title{font-size:1.55rem;color:var(--brand-navy);margin:0}.dash-actions .btn{color:var(--brand-navy);background:#fff;border:1px solid #d6cdbb;min-height:44px}.dash-actions .btn-primary{background:var(--brand-gold)}
.dash-eyebrow{color:#5d6c82}.dash-copy{color:#536174}
.navbar-toggler{flex-shrink:0;min-width:72px;white-space:nowrap}.navbar-toggler .ti{font-size:1.25rem}.dash-section-title{color:#5d6c82}
@media(max-width:991.98px){.dashboard-details .table-responsive>.table{min-width:0}.dashboard-details .table td:first-child{min-width:0}.dashboard-details .table td{white-space:normal;overflow-wrap:anywhere}.dashboard-details .table .num{white-space:nowrap}.dashboard-details .table td[style*="width:6rem"]{min-width:5.5rem!important;width:5.5rem!important}}
.login-shell{overflow-y:auto}.login-wrap{padding-bottom:5rem}
@media(max-width:767.98px){.page-header .col-auto{max-width:100%;flex-wrap:wrap}.page-header form.d-flex{flex-wrap:wrap;max-width:100%}.page-header form .form-control,.page-header form .form-select{max-width:100%;min-width:0}.page-header .btn{flex-shrink:0;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media (max-width:575.98px){.jl-lang-toggle{right:.85rem;bottom:.85rem}.login-wordmark{font-size:1.45rem}.login-mark{width:51px;height:51px}}
/* Authentication pages own their canvas; dashboard layout rules must not offset them. */
html.auth-page{min-height:100%;background:#1a2744;scrollbar-color:#65728a #1a2744}
.auth-page body.login-shell{margin:0;min-width:0;width:100%;min-height:100vh;min-height:100svh;overflow-x:clip;overflow-y:visible}
.auth-page .login-shell:before{position:fixed;inset:0}
.auth-page .login-wrap{box-sizing:border-box;width:100%;min-width:0;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-start;padding:32px 20px 88px;flex:1 0 auto}
.auth-page .login-wrap>.container{width:100%;max-width:480px;min-width:0;margin:auto;padding:0!important;flex:none}
.auth-page .login-wrap>.auth-setup-container{max-width:780px}
.auth-page .login-brand{margin-bottom:24px!important}.auth-page .login-brand-link{max-width:100%}
.auth-page .login-card{width:100%;min-width:0;margin:0;overflow:hidden}
.auth-page .login-card>.card-body{width:100%;min-width:0;padding:28px!important}
.auth-setup-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start;margin-top:24px}
.auth-setup-step{min-width:0}.auth-setup-step h2{font-family:inherit;font-size:1rem;margin-bottom:12px}
.auth-qr{display:block;width:220px;max-width:100%;height:auto;margin:16px auto;background:#fff}
.auth-manual{border:1px solid #e5e0d5;border-radius:8px;padding:12px;background:#faf8f4;font-size:.85rem}
.auth-manual summary{cursor:pointer;font-weight:600}.auth-manual input{font-size:.75rem;min-width:0;width:100%;font-family:monospace}
.auth-code{max-width:260px;letter-spacing:.22em;font-variant-numeric:tabular-nums}
.auth-step-number{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:50%;margin-right:8px;background:#f3ecd6;color:#594511;font-family:inherit;font-size:.85rem}
.auth-page .form-check{margin-top:20px!important;margin-bottom:20px!important}.auth-page .form-text{line-height:1.5}
.auth-recovery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.auth-recovery-grid code{display:block;padding:10px;background:#f6f4ef;border:1px solid #e5e0d5;border-radius:6px;text-align:center;overflow-wrap:anywhere}
@media(max-width:600px){.auth-page .login-wrap{padding:24px 16px 88px}.auth-page .login-card>.card-body{padding:22px!important}.auth-setup-grid{grid-template-columns:1fr;gap:24px}.auth-setup-step+.auth-setup-step{padding-top:24px;border-top:1px solid #e5e0d5}.auth-code{max-width:none}}

.page-wrapper[aria-busy="true"]:before{content:"";position:fixed;top:0;left:240px;right:0;height:3px;background:var(--brand-gold);z-index:2000}.nav-link[data-loading]{outline:1px solid var(--brand-gold)}@media(max-width:991px){.page-wrapper[aria-busy="true"]:before{left:0}}
.side-group{margin:8px 4px}.side-group-title{display:flex;align-items:center;gap:.6rem;cursor:pointer;list-style:none;padding:.75rem .65rem;color:#efdc9c;background:rgba(255,255,255,.045);border:1px solid rgba(201,168,76,.18);border-radius:7px;font-size:.84rem;font-weight:750}.side-group-title::-webkit-details-marker{display:none}.side-group-title:hover,.side-group-title.has-active{background:rgba(201,168,76,.13);color:#fff0bd;border-color:rgba(201,168,76,.38)}.side-group-title:focus-visible{outline:2px solid var(--brand-gold);outline-offset:2px}.side-group-title .nav-link-icon{margin:0;flex:0 0 18px;color:var(--brand-gold)}.side-chevron{margin-left:auto;transition:transform .15s}.side-group[open] .side-chevron{transform:rotate(180deg)}.side-group-links{margin:4px 0 10px 40px;padding:6px 0 6px 12px;border-left:2px solid rgba(201,168,76,.55);background:rgba(0,0,0,.17);border-radius:0 0 6px 0}.side-group-links .nav-link{position:relative;margin:2px 5px 2px 0;padding:.6rem .65rem!important;font-size:.87rem;font-weight:600!important;color:#f2f5fa;min-height:44px}.side-group-links .nav-link::before{content:"";position:absolute;left:-12px;top:50%;width:8px;border-top:1px solid rgba(201,168,76,.55)}.side-group-links .nav-link:hover{color:#fff;background:rgba(255,255,255,.07)}.side-group-links .nav-link.active{color:#fff;font-weight:750!important;background:rgba(201,168,76,.24);box-shadow:inset 3px 0 var(--brand-gold)}.side-group-links .nav-link-icon{display:none}.navbar-vertical .nav-link-title{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.4;min-width:0}.side-group-title>span:not(.nav-link-icon){min-width:0;line-height:1.4}.side-group-title .side-chevron{flex-shrink:0}

.navbar-vertical .navbar-nav .side-top-item{margin:8px 4px}
.navbar-vertical .navbar-nav .side-top-link{display:flex;align-items:center;gap:.6rem;padding:.75rem .65rem!important;margin:0!important;min-height:0;color:#efdc9c;background:rgba(255,255,255,.045);border:1px solid rgba(201,168,76,.18);border-radius:7px;font-size:.84rem;font-weight:750!important;box-shadow:none}
.navbar-vertical .navbar-nav .side-top-link:hover,.navbar-vertical .navbar-nav .side-top-link.active{background:rgba(201,168,76,.13);color:#fff0bd;border-color:rgba(201,168,76,.38)}
.navbar-vertical .navbar-nav .side-top-link .nav-link-icon{margin:0;flex:0 0 18px;color:var(--brand-gold)}
