:root{
  --bg:#f5f8fc;--surface:#fff;--surface-2:#f8fafc;--surface-3:#eef5ff;--text:#14213d;--muted:#6b7890;--line:#e1e8f0;
  --primary:#226b93;--primary-2:#1a5777;--teal:#14b8a6;--green:#22a447;--orange:#f59e0b;--purple:#8b5cf6;--red:#ef4444;
  --shadow:0 8px 26px rgba(24,55,99,.07);--radius:14px;--sidebar:232px;--header:58px;--toolbar:68px;
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(11,115,246,.18);outline-offset:1px}.hidden{display:none!important}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:12px 10px;display:flex;flex-direction:column;z-index:60;transition:transform .18s cubic-bezier(.4,0,.2,1),opacity .12s cubic-bezier(.4,0,.2,1);overflow:hidden}.sidebar.collapsed{width:72px}.brand-row{height:48px;display:flex;align-items:center;gap:8px;padding:0 4px 10px;border-bottom:1px solid var(--line)}.plain-icon{border:0;background:transparent;color:var(--text);width:36px;height:36px;border-radius:9px;display:grid;place-items:center;font-size:18px}.plain-icon:hover{background:var(--surface-3)}.brand-lockup{display:flex;align-items:center;gap:9px;min-width:0}.brand-symbol{width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,#137df6,#0b5ed7);color:#fff;display:grid;place-items:center;font-weight:900;box-shadow:0 7px 18px rgba(11,115,246,.24)}.brand-copy{min-width:0;white-space:nowrap}.brand-copy strong{display:block;color:#226b93;font-size:14px;letter-spacing:.02em}.brand-copy span{display:block;color:#96a1b2;font-size:8px;letter-spacing:.18em;margin-top:2px}.nav{display:grid;gap:3px;padding:11px 0;overflow:auto}.nav-item{border:0;background:transparent;color:#40506b;border-radius:10px;padding:10px 11px;display:flex;align-items:center;gap:12px;text-align:left;white-space:nowrap;transition:.16s ease}.nav-item:hover{background:#f2f7ff;color:var(--primary)}.nav-item.active{background:#eaf3ff;color:var(--primary);font-weight:750}.nav-icon{width:20px;text-align:center;font-size:18px}.sidebar-footer{margin-top:auto;padding:10px 8px;border-top:1px solid var(--line);color:var(--muted)}.online-state{display:flex;align-items:center;gap:8px;font-size:11px}.online-state i{width:8px;height:8px;border-radius:99px;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.1)}.sidebar-footer small{display:block;margin-top:6px;font-size:10px}.sidebar.collapsed .brand-copy,.sidebar.collapsed .nav-label{display:none}.sidebar.collapsed .nav-item{justify-content:center}.sidebar.collapsed+.main{margin-left:calc(72px - var(--sidebar))}
.main{min-width:0;transition:.22s ease}.global-header{height:var(--header);position:sticky;top:0;z-index:45;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 22px}.header-left{display:flex;align-items:center;gap:8px}.mobile-menu,.mobile-brand{display:none}.global-search-wrap{width:min(420px,44vw);height:38px;border:1px solid var(--line);background:#fbfdff;border-radius:10px;display:flex;align-items:center;gap:8px;padding:0 10px;position:relative}.global-search-wrap input{border:0;outline:0;background:transparent;flex:1;min-width:0;color:var(--text)}.global-search-wrap kbd{font-size:10px;color:#8792a6;border:1px solid var(--line);padding:2px 5px;border-radius:5px;background:white}.search-results{position:absolute;left:0;right:0;top:44px;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px rgba(16,34,66,.17);max-height:420px;overflow:auto;padding:8px;z-index:90}.search-result{width:100%;border:0;background:transparent;text-align:left;padding:10px;border-radius:9px;display:flex;justify-content:space-between;gap:10px}.search-result:hover{background:#f1f6ff}.search-result strong{display:block}.search-result small{color:var(--muted)}.header-actions{display:flex;align-items:center;gap:6px}.header-icon{width:38px;height:38px;border:0;background:transparent;border-radius:10px;position:relative;font-size:18px;color:#26354e}.header-icon:hover{background:#f2f6fb}.notification-badge{position:absolute;right:3px;top:2px;background:var(--red);color:white;border-radius:99px;font-size:9px;min-width:16px;height:16px;display:grid;place-items:center;border:2px solid white}.profile-button{border:0;background:transparent;display:flex;align-items:center;gap:8px;padding:4px 7px;border-radius:10px;color:var(--text)}.profile-button:hover{background:#f2f6fb}.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(145deg,#cce2ff,#7fb6ff);color:#0c4d9b;display:grid;place-items:center;font-size:11px;font-weight:800;border:2px solid white;box-shadow:0 2px 8px rgba(0,0,0,.08)}.avatar.large{width:54px;height:54px;font-size:16px}.profile-copy{text-align:left}.profile-copy strong{display:block;font-size:12px}.profile-copy small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.page-toolbar{min-height:var(--toolbar);position:sticky;top:var(--header);z-index:40;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 22px}.page-heading{display:flex;align-items:center;gap:10px;min-width:220px}.page-icon{width:34px;height:34px;border-radius:10px;background:#edf5ff;color:var(--primary);display:grid;place-items:center;font-size:18px}.page-heading h1{font-size:20px;margin:0}.page-heading p{margin:3px 0 0;color:var(--muted);font-size:11px}.toolbar-actions{display:flex;align-items:center;gap:8px}.date-control,.toolbar-select,.toolbar-button{height:38px;border:1px solid var(--line);background:white;border-radius:9px;color:#3d4960}.date-control{display:flex;align-items:center;gap:6px;padding:0 9px}.date-control input{border:0;outline:0;max-width:112px;color:#3d4960;background:transparent;font-size:12px}.toolbar-select{padding:0 10px}.toolbar-button{padding:0 12px}.toolbar-button:hover,.date-control:hover,.toolbar-select:hover{background:#f8fbff}.primary-btn,.secondary-btn,.danger-btn,.ghost-btn{border-radius:9px;border:1px solid transparent;font-weight:700;font-size:12px;padding:9px 13px}.primary-btn{background:var(--primary);color:white;box-shadow:0 5px 14px rgba(11,115,246,.18)}.primary-btn:hover{background:#0964d8}.secondary-btn{background:white;border-color:var(--line);color:var(--text)}.secondary-btn:hover{background:#f7faff}.danger-btn{background:#fff1f2;border-color:#fecdd3;color:#be123c}.ghost-btn{background:transparent;color:var(--primary);padding:7px 8px}
.content{padding:18px 20px 90px}.grid{display:grid;gap:14px}.kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.dashboard-kpi-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.two-col{grid-template-columns:minmax(0,1.55fr) minmax(310px,.85fr)}.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.four-col{grid-template-columns:repeat(4,minmax(0,1fr))}.section{margin-top:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.card-pad{padding:14px}.kpi-card{padding:14px;min-height:116px;display:flex;flex-direction:column;position:relative;overflow:hidden}.kpi-top{display:flex;align-items:center;gap:8px}.kpi-icon{width:34px;height:34px;border-radius:9px;color:#fff;display:grid;place-items:center;font-size:17px;flex:none}.kpi-icon.blue{background:var(--primary)}.kpi-icon.teal{background:var(--teal)}.kpi-icon.green{background:var(--green)}.kpi-icon.orange{background:var(--orange)}.kpi-icon.purple{background:var(--purple)}.kpi-icon.red{background:var(--red)}.kpi-label{font-size:11px;color:#344057;font-weight:700;line-height:1.25}.kpi-value{font-size:21px;font-weight:800;letter-spacing:-.02em;margin-top:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-unit{color:var(--muted);font-size:10px;margin-top:2px}.kpi-foot{margin-top:auto;padding-top:8px;color:var(--muted);font-size:10px;display:flex;gap:5px;align-items:center}.trend-up{color:#16a34a;font-weight:800}.trend-down{color:#ef4444;font-weight:800}.trend-flat{color:#d97706;font-weight:800}.section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.section-header h2,.section-header h3{margin:0;font-size:14px}.section-header p{margin:4px 0 0;color:var(--muted);font-size:10px}.section-link{border:0;background:transparent;color:var(--primary);font-size:11px;font-weight:700}.chart-card{padding:14px;min-height:320px}.chart-card.compact{min-height:270px}.chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin:4px 0 10px;color:#536079;font-size:10px}.legend-item{display:flex;align-items:center;gap:5px}.legend-dot{width:9px;height:9px;border-radius:2px}.legend-line{width:15px;height:2px;border-radius:2px}.combo-chart{height:230px;display:flex;gap:8px;align-items:stretch}.y-axis{width:32px;display:flex;flex-direction:column;justify-content:space-between;color:#8b95a8;font-size:9px;text-align:right;padding:2px 0 21px}.plot{position:relative;flex:1;border-left:1px solid #edf1f6;border-bottom:1px solid #edf1f6;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(25% - 1px),#edf1f6 25%);overflow:hidden}.bar-groups{position:absolute;inset:8px 4px 22px 7px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;align-items:end}.bar-group{height:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px;position:relative}.bar{width:38%;border-radius:3px 3px 0 0;min-height:2px}.bar.blue{background:linear-gradient(#3995c6,#226b93)}.bar.teal{background:linear-gradient(#32c8ba,#14b8a6)}.bar.green{background:linear-gradient(#57c873,#22a447)}.bar.red{background:linear-gradient(#fb7185,#ef4444)}.bar.orange{background:linear-gradient(#fbbf24,#f59e0b)}.bar.purple{background:linear-gradient(#a78bfa,#8b5cf6)}.x-labels{position:absolute;bottom:2px;left:7px;right:4px;display:grid;grid-template-columns:repeat(12,1fr);font-size:9px;color:#68758d;text-align:center}.line-svg{position:absolute;inset:8px 4px 22px 7px;width:calc(100% - 11px);height:calc(100% - 30px);overflow:visible;pointer-events:none}.line-svg polyline{fill:none;stroke-width:2.3;stroke-linejoin:round;stroke-linecap:round}.line-svg circle{stroke:white;stroke-width:1.5}.donut-layout{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,.9fr);gap:16px;align-items:center;min-height:230px}.donut{width:170px;aspect-ratio:1;border-radius:50%;margin:auto;position:relative}.donut::after{content:"";position:absolute;inset:26%;border-radius:50%;background:white}.donut-center{position:absolute;inset:29%;z-index:2;display:grid;place-content:center;text-align:center}.donut-center small{font-size:9px;color:var(--muted)}.donut-center strong{font-size:18px}.donut-list{display:grid;gap:10px}.donut-row{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;font-size:10px}.donut-row i{width:9px;height:9px;border-radius:50%}.donut-row span:last-child{color:#3f4b61;font-weight:700}.stacked-bars{height:200px;display:grid;grid-template-columns:repeat(12,1fr);gap:7px;align-items:end;padding:10px 8px 22px;border-left:1px solid #edf1f6;border-bottom:1px solid #edf1f6;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(25% - 1px),#edf1f6 25%);position:relative}.stacked-col{height:100%;display:flex;flex-direction:column-reverse;justify-content:flex-start}.stack-seg{width:100%;min-height:1px}.stacked-labels{position:absolute;bottom:2px;left:0;right:0;display:grid;grid-template-columns:repeat(12,1fr);font-size:8px;color:#7b879b;text-align:center}.mini-line{height:205px;position:relative;border-left:1px solid #edf1f6;border-bottom:1px solid #edf1f6;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(25% - 1px),#edf1f6 25%)}.mini-line svg{width:100%;height:100%;overflow:visible}.mini-line polyline{fill:none;stroke-width:2.4}.mini-line circle{stroke:#fff;stroke-width:1.5}.heatmap{display:grid;grid-template-columns:1.2fr repeat(4,1fr);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:9px}.heatmap div{padding:9px 6px;border-right:1px solid #fff;border-bottom:1px solid #fff;text-align:center}.heatmap .head{background:#f5f8fc;font-weight:700}.heatmap .label{text-align:left;background:#fbfcfe;font-weight:700}.heat-1{background:#e8f7e9}.heat-2{background:#fff7cf}.heat-3{background:#ffe4b5}.heat-4{background:#ffc4bd}.waterfall{height:215px;display:flex;align-items:flex-end;gap:8px;padding:10px 8px 27px;border-left:1px solid #edf1f6;border-bottom:1px solid #edf1f6;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(25% - 1px),#edf1f6 25%)}.wf-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;position:relative}.wf-bar{width:70%;border-radius:4px 4px 0 0}.wf-col small{position:absolute;bottom:-24px;font-size:8px;color:#69758a;text-align:center;line-height:1.05}.wf-col b{font-size:8px;margin-bottom:3px;color:#4c5668}
.table-card{overflow:hidden}.table-tools{padding:11px 12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-bottom:1px solid var(--line);background:#fbfdff}.search-input,.filter-select{height:36px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--text);padding:0 10px}.search-input{flex:1;min-width:220px}.filter-select{min-width:150px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th{background:#f8fafc;color:#637088;font-size:9px;text-align:left;text-transform:uppercase;letter-spacing:.035em;padding:10px 11px;border-bottom:1px solid var(--line);white-space:nowrap}td{font-size:11px;padding:10px 11px;border-bottom:1px solid #edf1f5;vertical-align:middle}tbody tr:hover td{background:#fbfdff}.numeric{text-align:right;font-variant-numeric:tabular-nums}.strong{font-weight:750}.muted{color:var(--muted)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:750;white-space:nowrap}.badge.success{background:#eaf8ef;color:#16833b}.badge.warning{background:#fff6df;color:#a86500}.badge.danger{background:#fff0f0;color:#c22e35}.badge.info{background:#eaf3ff;color:#176ad4}.badge.neutral{background:#eef2f6;color:#536176}.progress{height:7px;border-radius:99px;background:#e7edf4;overflow:hidden;min-width:75px}.progress span{display:block;height:100%;background:var(--primary);border-radius:inherit}.progress.danger span{background:var(--red)}.note{padding:12px 14px;border:1px solid #cfe0ff;background:#f3f8ff;color:#385070;border-radius:12px;font-size:11px}.danger-note{border-color:#fecaca;background:#fff4f4;color:#7f1d1d}.alert-list{display:grid;gap:8px}.alert-item{display:flex;gap:9px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}.alert-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#edf5ff;color:var(--primary);font-weight:800;flex:none}.alert-item h4{margin:0;font-size:11px}.alert-item p{margin:3px 0 0;color:var(--muted);font-size:9px;line-height:1.35}.activity-list{display:grid}.activity{display:grid;grid-template-columns:30px 1fr auto;gap:9px;padding:10px 0;border-bottom:1px solid #edf1f5}.activity:last-child{border-bottom:0}.activity-icon{width:28px;height:28px;border-radius:8px;background:#ecf7ff;color:var(--primary);display:grid;place-items:center}.activity strong{font-size:10px;display:block}.activity small{color:var(--muted);font-size:9px}.status-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.status-chip{padding:10px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}.status-chip span{display:block;color:var(--muted);font-size:9px}.status-chip strong{font-size:12px;display:block;margin-top:3px}.inline-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mini-stat{padding:10px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}.mini-stat span{display:block;color:var(--muted);font-size:9px}.mini-stat strong{display:block;margin-top:4px;font-size:15px}.accounting-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.accounting-tab{border:1px solid var(--line);background:white;border-radius:9px;padding:8px 11px;color:var(--muted);font-size:10px;font-weight:700}.accounting-tab.active{background:var(--primary);color:white;border-color:var(--primary)}.accounting-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.accounting-toolbar .actions{display:flex;gap:7px;flex-wrap:wrap}.accounting-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.report-title{padding:13px 13px 7px}.report-title h3{font-size:13px;margin:0}.report-title p{font-size:9px;color:var(--muted);margin:3px 0 0}.journal-lines{grid-column:1/-1;border:1px solid var(--line);border-radius:10px;overflow:hidden}.journal-lines-header,.journal-line{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.4fr;gap:7px;padding:8px}.journal-lines-header{background:#f8fafc;color:var(--muted);font-size:9px;font-weight:700}.journal-line{border-top:1px solid var(--line)}.journal-line select,.journal-line input{width:100%;border:1px solid var(--line);border-radius:7px;padding:8px}.journal-total{display:flex;justify-content:flex-end;gap:18px;padding:9px;background:#fbfdff;border-top:1px solid var(--line);font-size:10px;font-weight:800}.tax-bridge{display:grid;gap:7px;margin-top:10px}.tax-bridge>div{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fbfdff}.tax-bridge span{color:var(--muted);font-size:10px}.tax-bridge strong{font-size:10px}.tax-bridge .tax-diff{border-color:#fecaca;background:#fff1f2}.tax-bridge .tax-diff strong{color:#b91c1c}.settings-card{padding:15px}.settings-card h3{margin:0}.settings-card>p{color:var(--muted);font-size:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:10px;color:#59657a;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:white;color:var(--text)}.field textarea{min-height:80px;resize:vertical}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.file-label,.file-link{cursor:pointer}
.drawer-backdrop{position:fixed;inset:0;background:rgba(12,24,45,.22);z-index:80}.right-drawer{position:fixed;right:0;top:0;bottom:0;width:min(390px,92vw);background:white;z-index:90;box-shadow:-16px 0 50px rgba(20,42,78,.18);padding:16px;overflow:auto}.drawer-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:12px;border-bottom:1px solid var(--line)}.drawer-header h2{margin:0;font-size:18px}.drawer-header p{margin:4px 0 0;color:var(--muted);font-size:10px}.drawer-list{display:grid;gap:8px;margin-top:12px}.drawer-form{display:grid;gap:13px;margin-top:14px}.drawer-form label{display:grid;gap:6px;color:#526079;font-size:11px;font-weight:700}.drawer-form select{border:1px solid var(--line);border-radius:8px;padding:9px}.drawer-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.profile-panel{display:grid;gap:7px;margin-top:13px}.profile-card{display:flex;align-items:center;gap:10px;padding:12px;background:#f5f9ff;border-radius:11px}.profile-card strong{display:block}.profile-card p{font-size:10px;color:var(--muted);margin:3px 0 0}.drawer-link{border:0;background:white;border-bottom:1px solid #edf1f5;text-align:left;padding:12px 7px;color:var(--text);font-weight:650;font-size:12px}.drawer-link:hover{background:#f8fbff}
.modal-backdrop{position:fixed;inset:0;background:rgba(10,25,47,.45);z-index:110;display:grid;place-items:center;padding:16px}.modal{width:min(900px,98vw);max-height:92vh;overflow:auto;background:white;border-radius:16px;box-shadow:0 25px 80px rgba(0,0,0,.25)}.modal-header{position:sticky;top:0;background:white;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;padding:15px;border-bottom:1px solid var(--line)}.modal-header h2{margin:0;font-size:18px}.modal-header p{margin:4px 0 0;color:var(--muted);font-size:10px}.modal-form{padding:15px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#12233d;color:white;padding:10px 15px;border-radius:9px;z-index:130;box-shadow:0 12px 36px rgba(0,0,0,.23);font-size:11px}.mobile-bottom-nav{display:none}
.empty-state{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:1350px){.dashboard-kpi-grid{grid-template-columns:repeat(4,1fr)}.kpi-grid{grid-template-columns:repeat(4,1fr)}.three-col{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1100px){:root{--sidebar:210px}.profile-copy{display:none}.date-control{display:none}.two-col{grid-template-columns:1fr}.four-col{grid-template-columns:repeat(2,1fr)}.chart-card{min-height:290px}}
@media(max-width:820px){:root{--header:56px;--toolbar:64px}.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-105%);width:min(284px,86vw);box-shadow:18px 0 50px rgba(13,32,61,.22)}.sidebar.open{transform:translateX(0)}.sidebar.collapsed{width:min(284px,86vw)}.sidebar.collapsed .brand-copy,.sidebar.collapsed .nav-label{display:block}.sidebar.collapsed .nav-item{justify-content:flex-start}.desktop-menu{display:none}.mobile-menu,.mobile-brand{display:grid}.mobile-brand{color:var(--primary);font-weight:800;font-size:13px}.global-header{padding:0 12px}.global-search-wrap{display:none}.header-actions .header-icon:first-child{display:none}.profile-button{padding:3px}.profile-button>span:last-child{display:none}.page-toolbar{padding:8px 12px}.page-heading p{display:none}.page-heading h1{font-size:17px}.toolbar-actions .toolbar-button span{display:none}.toolbar-actions{gap:5px}.toolbar-select{max-width:105px}.primary-btn#primaryAction{width:38px;overflow:hidden;padding:9px 0;font-size:0}.primary-btn#primaryAction::before{content:"+";font-size:18px}.content{padding:12px 10px 86px}.dashboard-kpi-grid,.kpi-grid{grid-template-columns:repeat(2,1fr);gap:9px}.kpi-card{min-height:105px;padding:11px}.kpi-value{font-size:18px}.three-col,.four-col{grid-template-columns:1fr}.donut-layout{grid-template-columns:1fr}.donut-list{grid-template-columns:1fr 1fr}.accounting-summary{grid-template-columns:repeat(2,1fr)}.mobile-bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;z-index:70;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:5px 4px max(5px,env(safe-area-inset-bottom))}.mobile-bottom-nav button{border:0;background:transparent;color:#68758b;display:grid;gap:2px;place-items:center;font-size:9px;padding:4px}.mobile-bottom-nav button span{font-size:18px}.mobile-bottom-nav button.active{color:var(--primary);font-weight:700}.chart-card{padding:11px;min-height:270px}.combo-chart{height:220px}.table-wrap{margin:0 -1px}.status-strip{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.field.full,.form-actions{grid-column:1}.journal-lines-header{display:none}.journal-line{grid-template-columns:1fr 1fr}.journal-line select,.journal-line input:last-child{grid-column:1/-1}}
@media(max-width:520px){.page-icon{display:none}.page-heading{min-width:0}.toolbar-actions .toolbar-button{display:none}.dashboard-kpi-grid,.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-label{font-size:10px}.kpi-value{font-size:16px}.kpi-foot{font-size:9px}.donut-list{grid-template-columns:1fr}.inline-stats{grid-template-columns:1fr}.header-actions{gap:0}.header-icon{width:34px}.profile-button{padding:0}.chart-card{min-height:260px}.x-labels{font-size:8px}.bar-groups{gap:3px}.modal-backdrop{padding:7px}.modal{border-radius:13px}.date-control{display:none}}
:root{
  --brand-navy:#082b4e;
  --brand-navy-2:#071a25;
  --brand-cyan:#66a8cc;
  --brand-cyan-2:#3995c6;
  --primary:#226b93;
  --primary-2:#0a67cd;
  --sidebar:260px;
}
body{background:#f4f7fb}.sidebar{background:linear-gradient(180deg,var(--brand-navy-2),#07345d 72%,#052743);border-right:0;padding:14px 10px;color:white;box-shadow:6px 0 24px rgba(3,31,59,.12)}
.brand-row{border-bottom:1px solid rgba(255,255,255,.13);height:76px;padding:0 5px 12px;min-width:0;overflow:hidden}.desktop-menu{color:white;flex:0 0 36px}.desktop-menu:hover{background:rgba(255,255,255,.1)}.brand-lockup{gap:7px;min-width:0;flex:1;overflow:hidden}.brand-image{width:122px;max-width:122px;height:48px;object-fit:contain;object-position:left center;filter:none;flex:0 1 122px}.brand-copy{min-width:66px;max-width:72px;overflow:hidden;flex:1 0 66px}.brand-copy strong{color:var(--brand-cyan);font-size:9px;letter-spacing:.055em;line-height:1.15;white-space:nowrap}.brand-copy span{color:rgba(255,255,255,.55);font-size:7px;letter-spacing:.08em;white-space:nowrap}.nav{gap:4px;padding:12px 0}.nav-item{color:rgba(255,255,255,.82);padding:10px 12px;gap:12px;border:1px solid transparent}.nav-item:hover{background:rgba(79,198,236,.12);color:white}.nav-item.active{background:linear-gradient(90deg,#0879ed,#0a68d0);color:white;border-color:rgba(79,198,236,.6);box-shadow:0 8px 20px rgba(0,104,223,.28),inset 3px 0 0 var(--brand-cyan)}.nav-svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}.nav-item.active .nav-svg{filter:drop-shadow(0 0 5px rgba(79,198,236,.65))}.sidebar-footer{border-top-color:rgba(255,255,255,.13);color:rgba(255,255,255,.75)}.sidebar-footer small{color:rgba(255,255,255,.44)}.online-state i{background:var(--brand-cyan);box-shadow:0 0 0 4px rgba(79,198,236,.12)}
.global-header{border-bottom-color:#e7edf5}.mobile-brand{color:var(--brand-navy)}.sync-pill{height:36px;border:1px solid #dce6f1;border-radius:10px;background:#fff;color:#38516d;padding:0 10px;display:flex;align-items:center;gap:7px;font-size:11px}.sync-pill svg{width:18px;height:18px;fill:none;stroke:#0c9b63;stroke-width:1.8}.sync-pill.synching svg{animation:spin 1s linear infinite}.sync-pill.sync-pending{border-color:#f1c36c;background:#fffaf0;color:#8a5a00}.sync-pill.sync-pending svg{stroke:#d38a00}.sync-pill.sync-error{border-color:#efb5b5;background:#fff5f5;color:#a92525}.sync-pill.sync-error svg{stroke:#d63838}.sync-pill.sync-offline{border-color:#d5dde7;background:#f7f9fc;color:#66758a}.sync-pill.sync-offline svg{stroke:#7a8798}.page-icon{background:linear-gradient(145deg,#ebf6fc,#edf4ff);color:#226b93}.primary-btn{background:linear-gradient(135deg,var(--brand-navy),#0c4f89);box-shadow:0 7px 18px rgba(3,48,89,.22)}.primary-btn:hover{background:linear-gradient(135deg,#0a3a68,#0c5c9f)}.kpi-card{border-top:3px solid transparent}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(8,43,78,.1)}.card{transition:box-shadow .18s,transform .18s}.section-link{color:#0679eb}.mobile-plus span{width:42px;height:42px;border-radius:50%;background:linear-gradient(145deg,#0b83ff,#075ec4);color:white;display:grid;place-items:center;font-size:25px;box-shadow:0 8px 20px rgba(8,120,237,.28)}
.login-screen{position:fixed;inset:0;z-index:200;background:#f3f7fb;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);padding:32px;gap:30px;align-items:stretch}.login-visual{border-radius:24px;background:radial-gradient(circle at 20% 15%,rgba(79,198,236,.22),transparent 38%),linear-gradient(145deg,#031f3b,#08436f);padding:50px;display:flex;flex-direction:column;justify-content:space-between;color:white;box-shadow:0 28px 70px rgba(3,31,59,.25)}.login-logo{width:min(430px,78%);height:auto;object-fit:contain;object-position:left top}.login-copy{max-width:650px}.login-copy .eyebrow{display:inline-block;color:var(--brand-cyan);font-weight:800;letter-spacing:.14em;font-size:12px;margin-bottom:15px}.login-copy h1{font-size:clamp(34px,4vw,64px);line-height:1.04;margin:0;letter-spacing:-.035em}.login-copy p{font-size:17px;line-height:1.6;color:rgba(255,255,255,.75);max-width:600px}.login-card{align-self:center;justify-self:center;width:min(440px,100%);background:white;border:1px solid #e1e8f0;border-radius:22px;padding:32px;box-shadow:0 24px 70px rgba(20,50,83,.13);display:grid;gap:17px}.login-card-head h2{font-size:26px;margin:0;color:var(--brand-navy)}.login-card-head p{margin:7px 0 0;color:#748196}.login-card label{display:grid;gap:7px;font-size:12px;font-weight:750;color:#42516a}.login-card input{height:46px;border:1px solid #dce4ed;border-radius:11px;padding:0 13px}.login-submit{height:46px;font-size:13px}.demo-accounts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.demo-accounts button{border:1px solid #dce6f0;background:#f8fbff;color:#2e506f;border-radius:9px;padding:9px 5px;font-size:10px}.demo-accounts button:hover{border-color:#7ec0e3;background:#f1f9fd}.login-card>small{color:#8995a7;line-height:1.5}
.cloud-hero{background:radial-gradient(circle at 85% 10%,rgba(79,198,236,.24),transparent 26%),linear-gradient(135deg,#052743,#1a5777);color:white;border-radius:18px;padding:23px;display:flex;justify-content:space-between;gap:20px;align-items:center;box-shadow:0 18px 45px rgba(3,43,78,.18)}.cloud-hero h2{font-size:24px;margin:0}.cloud-hero p{margin:7px 0 0;color:rgba(255,255,255,.7)}.cloud-health{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;min-width:330px}.cloud-health div{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.13);padding:12px;border-radius:12px}.cloud-health strong{display:block;font-size:18px}.cloud-health span{font-size:9px;color:rgba(255,255,255,.63)}.feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.feature-tile{background:white;border:1px solid #e2e9f1;border-radius:14px;padding:15px;display:flex;gap:11px;align-items:flex-start}.feature-tile .tile-icon{width:42px;height:42px;border-radius:12px;background:#edf7ff;color:#226b93;display:grid;place-items:center;flex:none}.feature-tile svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8}.feature-tile h3{font-size:12px;margin:1px 0 3px}.feature-tile p{font-size:9px;color:#7b8799;margin:0;line-height:1.4}.feature-tile .state{margin-left:auto;width:9px;height:9px;border-radius:50%;background:#25b86b;box-shadow:0 0 0 4px rgba(37,184,107,.1)}.feature-tile .state.warn{background:#f59e0b}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.admin-card{padding:16px}.admin-card h3{margin:0;font-size:13px}.admin-card p{font-size:10px;color:#78869a}.admin-card .big-number{font-size:25px;font-weight:850;color:var(--brand-navy)}.role-tag{display:inline-flex;padding:4px 8px;border-radius:99px;background:#eaf4ff;color:#0873d9;font-size:9px;font-weight:800}.cloud-table-actions{display:flex;gap:6px;flex-wrap:wrap}.upload-drop{border:1.5px dashed #a7c8e5;background:#f6fbff;border-radius:14px;padding:22px;text-align:center;color:#50708f}.upload-drop strong{display:block;color:#164d77;margin-bottom:4px}.integration-logo{width:38px;height:38px;border-radius:11px;background:#eef6ff;display:grid;place-items:center;color:#0a72d9;font-weight:900}.integration-row{display:grid;grid-template-columns:46px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #edf1f5}.integration-row:last-child{border-bottom:0}.integration-row h4{margin:0;font-size:11px}.integration-row p{margin:3px 0 0;color:#7a8797;font-size:9px}.switch{width:40px;height:22px;border-radius:99px;background:#cfd8e3;padding:3px;border:0}.switch i{display:block;width:16px;height:16px;border-radius:50%;background:white;transition:.2s;box-shadow:0 2px 5px rgba(0,0,0,.15)}.switch.on{background:#17a968}.switch.on i{transform:translateX(18px)}.audit-dot{width:9px;height:9px;border-radius:50%;background:#226b93;display:inline-block;margin-right:7px}.danger-link{color:#c43131!important}.login-screen:not(.hidden)+#appShell{filter:blur(2px)}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:1250px){.feature-grid{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.brand-image{width:145px}.login-screen{grid-template-columns:1fr;padding:14px}.login-visual{display:none}.login-card{padding:25px}.sync-pill span{display:none}.sync-pill{width:38px;padding:0;justify-content:center}.feature-grid,.admin-grid{grid-template-columns:1fr}.cloud-hero{align-items:flex-start;flex-direction:column}.cloud-health{min-width:0;width:100%}.sidebar{width:min(300px,88vw)}.brand-row{height:78px}.brand-copy{display:block!important}.nav-label{display:block!important}}
@media(max-width:520px){.cloud-health{grid-template-columns:repeat(3,1fr)}.cloud-health strong{font-size:15px}.demo-accounts{grid-template-columns:1fr}.login-card{border-radius:17px}.feature-grid{gap:9px}.feature-tile{padding:12px}}
.permission-hidden{display:none!important}
body.locked{overflow:hidden}
/* Reliability controls */
.integrity-list{display:grid;gap:0;border-top:1px solid var(--line,#e7edf5)}
.integrity-row{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line,#e7edf5)}
.integrity-row p{margin:4px 0 0;color:var(--muted,#65748b);font-size:13px}
.integrity-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-weight:800;background:#eaf7ef;color:#198754}
.integrity-row.fail .integrity-icon{background:#fff1f0;color:#dc3545}
.control-actions{display:flex;gap:8px;flex-wrap:wrap}
.period-list{display:grid;gap:8px;margin-top:12px}.period-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid #e7edf5;border-radius:10px}

/* TT133 statutory reporting */
.statutory-table .report-total td{font-weight:800;background:#f4f8fc;color:#0e354a;border-top:1px solid #c7d7e6;border-bottom:1px solid #c7d7e6}
.statutory-table td,.statutory-table th{font-variant-numeric:tabular-nums}
@media print{
  .sidebar,.global-header,.page-toolbar,.accounting-tabs,.mobile-bottom-nav,.accounting-toolbar .actions,.right-drawer,.toast{display:none!important}
  .main{margin:0!important}.content{padding:0!important}.card{box-shadow:none!important;break-inside:avoid;border:1px solid #cbd5e1!important}
  body{background:#fff!important}.statutory-table{font-size:10px}
}

/* Brand lockup overflow guard */
.sidebar:not(.collapsed) .brand-lockup{width:calc(100% - 44px)}
.sidebar.collapsed .brand-lockup{justify-content:center}.sidebar.collapsed .brand-image{width:42px;max-width:42px;height:42px;object-fit:cover;object-position:left}.sidebar.collapsed .brand-copy{display:none!important}
.sync-conflict-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:99px;background:#dc3545;color:#fff;font-size:9px;font-weight:800;padding:0 5px}
.sync-online-dot{width:8px;height:8px;border-radius:50%;background:#20b26b;box-shadow:0 0 0 4px rgba(32,178,107,.13)}
.sync-offline-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.13)}
.sync-error-dot{width:8px;height:8px;border-radius:50%;background:#dc3545;box-shadow:0 0 0 4px rgba(220,53,69,.13)}
.environment-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em;border:1px solid var(--border,#dbe5ef);background:#fff;color:#52606d}.environment-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.14)}.environment-pill[data-env="production"]::before{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.14)}.environment-pill[data-env="staging"]::before{background:#226b93;box-shadow:0 0 0 3px rgba(11,115,246,.14)}
.control-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(135deg,#0e354a 0%,#0b5da8 58%,#226b93 100%);color:#fff;overflow:hidden;position:relative}.control-hero:after{content:"";position:absolute;width:260px;height:260px;border:45px solid rgba(255,255,255,.07);border-radius:50%;right:-65px;top:-115px}.control-hero h2{font-size:24px;margin:5px 0 8px}.control-hero p{max-width:800px;color:rgba(255,255,255,.82);line-height:1.55}.control-hero .eyebrow{color:#b9ddff}.control-score{position:relative;z-index:1;min-width:150px;text-align:center;padding:18px 20px;border-radius:18px;background:rgba(255,255,255,.13);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2)}.control-score strong{display:block;font-size:34px}.control-score span{font-size:12px;color:rgba(255,255,255,.78)}
.formula-list{display:grid;gap:0}.formula-list>div{display:grid;grid-template-columns:minmax(120px,.35fr) 1fr;gap:18px;padding:13px 0;border-bottom:1px solid #edf2f7}.formula-list>div:last-child{border-bottom:0}.formula-list strong{color:#102a43}.formula-list span{color:#627d98;line-height:1.45}.control-warning{font-size:11px;line-height:1.35;color:#9a3412;margin-top:5px;max-width:260px}.cell-danger{color:#b42318!important;font-weight:800;background:rgba(239,68,68,.045)}
@media(max-width:900px){.control-hero{align-items:flex-start;flex-direction:column}.control-score{width:100%}.formula-list>div{grid-template-columns:1fr;gap:4px}.environment-pill{display:none}}
:root{--v35-navy:#082f49;--v35-blue:#0369a1;--v35-cyan:#1a71a0;--v35-ink:#0f172a;--v35-muted:#64748b;--v35-soft:#f8fafc;--v35-line:#dbe5ef}
.modern-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:28px 30px;border-radius:22px;color:#fff;background:linear-gradient(135deg,#071f35 0%,#0b4f79 52%,#186792 100%);box-shadow:0 18px 45px rgba(3,41,66,.18)}
.modern-hero:before{content:"";position:absolute;inset:auto -80px -150px auto;width:360px;height:360px;border-radius:50%;border:65px solid rgba(255,255,255,.06)}
.modern-hero:after{content:"";position:absolute;top:-80px;right:180px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.05)}
.modern-hero>div{position:relative;z-index:1}.modern-hero h2{margin:5px 0 10px;font-size:27px;line-height:1.2;letter-spacing:-.025em}.modern-hero p{max-width:900px;margin:0;color:rgba(255,255,255,.82);line-height:1.65}.modern-hero .eyebrow{color:#c3e4f5;font-weight:800;letter-spacing:.09em;font-size:11px}
.hero-metric{min-width:190px;padding:18px 22px;border:1px solid rgba(255,255,255,.22);border-radius:18px;background:rgba(255,255,255,.12);backdrop-filter:blur(14px);text-align:right}.hero-metric span{display:block;color:rgba(255,255,255,.75);font-size:12px}.hero-metric strong{display:block;margin-top:5px;font-size:31px;letter-spacing:-.03em}
.commercial-hero{background:linear-gradient(135deg,#172554 0%,#1d4ed8 55%,#1a71a0 100%)}.planning-hero{background:linear-gradient(135deg,#1e293b 0%,#334155 45%,#0f766e 100%)}.control-hero-v35{background:linear-gradient(135deg,#071f35 0%,#0b4f79 48%,#166088 100%)}
.metric-switch{display:inline-flex;padding:5px;border:1px solid var(--v35-line);border-radius:12px;background:#fff;box-shadow:0 5px 15px rgba(15,23,42,.05)}.metric-switch button{padding:8px 13px;border:0;border-radius:9px;background:transparent;color:#64748b;font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;position:relative;z-index:1}.metric-switch button:hover{background:var(--hover-bg)}.metric-switch button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.metric-switch .active{background:#e0f2fe;color:#14455f}
.bridge-card{display:grid;grid-template-columns:1fr auto;gap:8px 14px;padding:20px 22px;border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 8px 22px rgba(15,23,42,.05)}.bridge-card span{color:#64748b;font-size:12px}.bridge-card strong{justify-self:end;color:#0f172a;font-size:15px}.bridge-card i{grid-column:1/-1;height:1px;background:#e2e8f0;font-size:0}.good-text{color:#15803d!important}.bad-text{color:#b91c1c!important}
.control-table-v35{min-width:1480px}.control-table-v35 th{white-space:nowrap}.control-table-v35 td{vertical-align:top}.cell-warning{color:#9a3412!important;font-weight:800;background:rgba(245,158,11,.07)}
.confidence{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.confidence.high{background:#dcfce7;color:#166534}.confidence.medium{background:#fef3c7;color:#92400e}.confidence.low{background:#fee2e2;color:#991b1b}
.aging-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.aging-grid>div{padding:14px 12px;border:1px solid #e2e8f0;border-radius:13px;background:#f8fafc}.aging-grid span{display:block;color:#64748b;font-size:11px}.aging-grid strong{display:block;margin-top:6px;color:#0f172a;font-size:16px}.algorithm-note{margin-top:16px;padding:13px 15px;border-left:3px solid #2396d4;border-radius:0 10px 10px 0;background:#f0f9ff;color:#475569;font-size:12px;line-height:1.55}
.formula-list strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#14455f}.formula-list span{color:#475569}
.card,.kpi-card{transition:transform .18s ease,box-shadow .18s ease}.card:hover,.kpi-card:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(15,23,42,.075)}
@media(max-width:1100px){.modern-hero{align-items:flex-start;flex-direction:column}.hero-metric{width:100%;text-align:left}.aging-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.modern-hero{padding:22px 18px;border-radius:17px}.modern-hero h2{font-size:22px}.aging-grid{grid-template-columns:1fr}.metric-switch{display:flex;overflow:auto;width:100%}.metric-switch button{white-space:nowrap;flex:none}}
.export-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.export-summary{display:flex;gap:14px;align-items:center;padding:18px}.export-summary small,.export-summary p{display:block;color:var(--muted);margin:0}.export-summary strong{display:block;font-size:18px;color:#0e354a;margin:3px 0}.export-icon{width:48px;height:48px;border-radius:14px;background:#e8f2ff;color:#226b93;display:grid;place-items:center;font-size:24px;font-weight:800;flex:0 0 auto}.export-icon.cyan{background:#e8f4fb;color:#1d7db0}.export-icon.green{background:#e8f8ef;color:#16a05d}.export-icon.purple{background:#f1eaff;color:#7c3aed}.export-main-grid{grid-template-columns:minmax(330px,.8fr) minmax(520px,1.4fr)}.export-panel{padding:20px}.export-report-list{display:grid;gap:9px}.export-report{appearance:none;width:100%;border:1px solid #d9e2ec;background:#fff;border-radius:13px;padding:13px;display:grid;grid-template-columns:18px 1fr auto;gap:12px;text-align:left;align-items:center;color:#243b53;cursor:pointer}.export-report:hover{border-color:#7bb5ff;background:#f7fbff}.export-report.active{border-color:#226b93;background:#eef6ff;box-shadow:0 0 0 2px rgba(11,115,246,.08)}.export-report small{display:block;color:#627d98;margin-top:3px;line-height:1.35}.export-report b{font-size:11px;color:#226b93;background:#e7f1ff;border-radius:999px;padding:5px 8px}.report-radio{width:16px;height:16px;border:2px solid #9fb3c8;border-radius:50%;position:relative}.export-report.active .report-radio{border-color:#226b93}.export-report.active .report-radio:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#226b93}.format-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.format-card{appearance:none;border:1px solid #d9e2ec;background:#fff;border-radius:13px;padding:13px;text-align:left;cursor:pointer;min-height:104px}.format-card:hover{border-color:#7bb5ff}.format-card.active{border-color:#226b93;background:#eef6ff;box-shadow:0 0 0 2px rgba(11,115,246,.08)}.format-card>span{display:inline-block;font-size:10px;letter-spacing:.08em;background:#e8f2ff;color:#226b93;border-radius:6px;padding:3px 6px;font-weight:800}.format-card strong{display:block;color:#102a43;margin:8px 0 4px}.format-card small{color:#627d98;line-height:1.35}.export-preview{margin-top:16px;background:#f7fafc;border:1px solid #e2e8f0;border-radius:13px;padding:14px}.export-preview h3{margin:0 0 4px;color:#0e354a}.export-preview p{margin:0;color:#627d98}.preview-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.preview-tags span{font-size:11px;background:#fff;border:1px solid #d9e2ec;border-radius:999px;padding:5px 8px;color:#486581}.export-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.template-btn{border:1px solid #d9e2ec;background:#fff;border-radius:12px;padding:12px;text-align:left;cursor:pointer;display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:7px}.template-btn:hover{border-color:#226b93;background:#f7fbff}.template-btn span{width:25px;height:25px;border-radius:8px;background:#e8f2ff;color:#226b93;display:grid;place-items:center}.template-btn small{color:#627d98}.export-capabilities{display:grid;gap:0;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.export-capabilities>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid #e2e8f0}.export-capabilities>div:last-child{border-bottom:0}.export-capabilities span{color:#334e68}.export-center .note{margin-top:14px}
@media(max-width:1100px){.export-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.export-main-grid{grid-template-columns:1fr}.format-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.export-kpi-grid{grid-template-columns:1fr}.format-grid,.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.export-panel{padding:14px}.export-report{grid-template-columns:18px 1fr}.export-report b{display:none}.export-actions>*{width:100%}}
.import-box{margin-top:16px;border:1px dashed #9fb3c8;background:#f7fafc;border-radius:12px;padding:13px}.import-box h3{margin:0 0 10px;color:#0e354a;font-size:14px}.import-controls{display:grid;grid-template-columns:minmax(160px,.7fr) minmax(220px,1.3fr);gap:9px;align-items:center}.import-controls select{height:40px;border:1px solid #cbd5e1;border-radius:9px;padding:0 10px;background:#fff;color:#243b53}.import-file-label{display:flex!important;justify-content:center;align-items:center;cursor:pointer;margin:0}.import-file-label input{display:none}@media(max-width:700px){.import-controls{grid-template-columns:1fr}}
.production-guard-banner{position:fixed;left:260px;right:0;bottom:0;z-index:1200;display:flex;gap:10px;align-items:center;padding:8px 18px;border-top:1px solid rgba(15,23,42,.12);font-size:12px;background:#eef6ff;color:#12314d}.production-guard-banner strong{letter-spacing:.08em}.production-guard-banner.blocked{background:#fff4e5;color:#7a3e00}.production-guard-banner.production.blocked{background:#fff0f0;color:#8b1e1e}.sidebar.collapsed~.main~.production-guard-banner{left:84px}.production-readonly #primaryAction,.production-readonly #mobileQuickAdd{opacity:.5;cursor:not-allowed}.production-readonly .modal-form button[type=submit]{opacity:.5;pointer-events:none}@media(max-width:900px){.production-guard-banner{left:0;bottom:64px;padding:7px 10px}.production-guard-banner span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* ALPHA DESIGN ERP Cloud — unified design system */
:root{
  --alpha-navy-950:#071a25;--alpha-navy-900:#0e354a;--alpha-navy-800:#1a5777;
  --alpha-cyan-600:#226b93;--alpha-cyan-500:#2b80ad;--alpha-cyan-100:#e1ebf1;
  --primary:var(--alpha-navy-800);--primary-2:var(--alpha-cyan-600);--brand-navy:var(--alpha-navy-900);
  --bg:#f3f7fa;--surface:#fff;--surface-2:#f8fbfd;--surface-3:#eef6fa;--text:#102a43;--muted:#66788a;--line:#dce7ee;
  --shadow:0 9px 26px rgba(4,47,85,.065);--radius:13px;--sidebar:248px;--header:62px;--toolbar:72px;
}
html{scroll-behavior:smooth}body{font-feature-settings:"tnum" 1,"cv02" 1,"cv03" 1;background:radial-gradient(circle at 92% -10%,rgba(19,184,212,.08),transparent 25%),var(--bg)}
::selection{background:rgba(19,184,212,.22);color:var(--alpha-navy-950)}
button,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease}
button:disabled{opacity:.48!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important}
.sidebar{background:linear-gradient(180deg,#fff 0%,#fbfdff 72%,#f4f9fc 100%);border-right-color:#d7e5ed;padding:13px 11px;box-shadow:6px 0 22px rgba(5,47,82,.035)}
.brand-row{height:58px;padding:0 5px 11px}.brand-image{width:132px;max-height:42px;object-fit:contain}.brand-copy strong{color:var(--alpha-navy-900)}.brand-copy span{color:#5c8ba5}
.nav{gap:2px;padding:12px 0 14px;scrollbar-width:thin;scrollbar-color:#c7dae5 transparent}.nav-item{min-height:40px;border-radius:9px;color:#425c70;padding:9px 11px;position:relative}.nav-item:hover{background:#eef6fa;color:var(--alpha-navy-800);transform:translateX(1px)}.nav-item.active{background:linear-gradient(90deg,#e5f2f9,#f3f9fc);color:var(--alpha-navy-900);box-shadow:inset 3px 0 0 var(--alpha-cyan-500);font-weight:780}.nav-item.active .nav-svg{color:var(--alpha-cyan-600)}.nav-svg{width:19px;height:19px;stroke-width:1.8}.cloud-nav:first-of-type{margin-top:8px}
.sidebar-footer{background:rgba(255,255,255,.66);border-radius:10px;padding:11px;margin-bottom:3px}.online-state i{background:var(--alpha-cyan-500);box-shadow:0 0 0 4px rgba(19,184,212,.12)}
.global-header{background:rgba(255,255,255,.88);border-bottom-color:#dbe7ee;box-shadow:0 3px 16px rgba(5,47,82,.035)}.global-search-wrap{height:40px;border-color:#d6e3eb;background:#f8fbfd;border-radius:10px}.global-search-wrap:focus-within{background:#fff;border-color:var(--alpha-cyan-500);box-shadow:0 0 0 3px rgba(19,184,212,.12)}
.sync-pill,.profile-button,.header-icon{border:1px solid transparent}.sync-pill:hover,.profile-button:hover,.header-icon:hover{border-color:#dce7ee;background:#f4f9fc}
.page-toolbar{background:rgba(248,251,253,.93);border-bottom-color:#dce7ee}.page-icon{background:linear-gradient(145deg,#e2f1f9,#f0f7fb);color:var(--alpha-navy-800);border:1px solid #d1e5ef}.page-heading h1{color:var(--alpha-navy-950);letter-spacing:-.018em}.page-heading p{font-size:11.5px}
.date-control,.toolbar-select,.toolbar-button{border-color:#d3e1e9;background:#fff}.date-control:focus-within,.toolbar-select:focus,.toolbar-button:hover{border-color:#96bfd5;box-shadow:0 0 0 3px rgba(19,184,212,.08)}
.primary-btn{background:linear-gradient(135deg,var(--alpha-navy-800),#17648e);box-shadow:0 6px 16px rgba(6,65,109,.19)}.primary-btn:hover{background:linear-gradient(135deg,var(--alpha-navy-900),var(--alpha-cyan-600));transform:translateY(-1px)}.secondary-btn:hover,.ghost-btn:hover{background:#eef6fa;color:var(--alpha-navy-900)}
.content{padding:20px 22px 96px;max-width:1920px;margin:0 auto}.section{margin-top:16px}.grid{gap:15px}
.card,.kpi-card{border-color:#dce7ee;box-shadow:var(--shadow)}.card:hover,.kpi-card:hover{box-shadow:0 13px 34px rgba(4,47,85,.09)}.kpi-card{min-height:122px;padding:15px}.kpi-card:after{content:"";position:absolute;right:-28px;bottom:-40px;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,rgba(19,184,212,.09),transparent 70%)}.kpi-icon.blue{background:linear-gradient(145deg,var(--alpha-navy-800),#186995)}.kpi-icon.teal{background:linear-gradient(145deg,#186a96,var(--alpha-cyan-500))}.kpi-value{color:var(--alpha-navy-950);font-variant-numeric:tabular-nums}.kpi-label{color:#486276}
.section-header h2,.section-header h3{color:var(--alpha-navy-950);letter-spacing:-.01em}.section-link{color:#176690}
.table-card{overflow:hidden}.table-wrap{scrollbar-width:thin;scrollbar-color:#bed3df transparent}table{border-collapse:separate;border-spacing:0}thead th{position:sticky;top:0;z-index:2;background:#f3f8fb!important;color:#486274!important;border-bottom:1px solid #d6e4ec!important;font-size:10px;letter-spacing:.025em;text-transform:uppercase}tbody tr{transition:background .12s ease}tbody tr:hover{background:#f3f9fc!important}td{border-bottom-color:#e8eff3!important;font-variant-numeric:tabular-nums}.numeric{font-variant-numeric:tabular-nums}
.badge{border:1px solid transparent}.badge.success{border-color:#ccebd8}.badge.warning{border-color:#f4dfad}.badge.danger{border-color:#f5caca}.badge.info{background:#e5f2f9;color:#14577b;border-color:#cbe2ef}
.progress{background:#e2ebf0}.progress span{background:linear-gradient(90deg,var(--alpha-navy-800),var(--alpha-cyan-500))}
.accounting-tabs{padding:5px;background:#eaf2f6;border-radius:11px;width:max-content;max-width:100%}.accounting-tab{border:0;background:transparent}.accounting-tab.active{background:#fff;color:var(--alpha-navy-900);box-shadow:0 2px 8px rgba(5,47,82,.09)}
.modern-hero,.control-hero{background:radial-gradient(circle at 88% 15%,rgba(116,224,239,.16),transparent 25%),linear-gradient(135deg,var(--alpha-navy-950),var(--alpha-navy-800) 58%,#17648e);border:1px solid rgba(255,255,255,.09);box-shadow:0 18px 45px rgba(3,38,67,.18)}.commercial-hero,.planning-hero,.control-hero-v35{background:radial-gradient(circle at 88% 15%,rgba(116,224,239,.15),transparent 28%),linear-gradient(135deg,#071a25 0%,#074c72 58%,#196e9c 100%)}
.environment-pill{border-color:#d4e3eb;box-shadow:0 2px 8px rgba(5,47,82,.05)}.environment-pill[data-env="production"]{background:#edf9f2;color:#126b35}.environment-pill[data-env="staging"]{background:#ebf5fa;color:#145578}
.modal{border:1px solid rgba(255,255,255,.6);box-shadow:0 28px 90px rgba(2,24,44,.28)}.modal-header{background:rgba(255,255,255,.95);backdrop-filter:blur(14px)}.field input:focus,.field select:focus,.field textarea:focus,.journal-line input:focus,.journal-line select:focus{border-color:var(--alpha-cyan-500);box-shadow:0 0 0 3px rgba(19,184,212,.1);outline:0}
.toast{background:linear-gradient(135deg,var(--alpha-navy-950),var(--alpha-navy-800));border:1px solid rgba(255,255,255,.12)}
.login-screen{background:radial-gradient(circle at 16% 18%,rgba(19,184,212,.15),transparent 26%),linear-gradient(135deg,#071a25,#0e354a 60%,#17658f)}.login-card{border:1px solid rgba(255,255,255,.65);box-shadow:0 28px 80px rgba(1,23,41,.24)}
.production-guard-banner{background:#ebf4f9;color:#1a4359;border-top-color:#cae0ec}.production-guard-banner.production.blocked{background:#fff1f1;color:#8b1e1e}
@media(max-width:1100px){:root{--sidebar:220px}.content{padding-left:16px;padding-right:16px}}
@media(max-width:820px){.content{padding:12px 10px 88px}.global-header,.page-toolbar{background:rgba(255,255,255,.95)}.sidebar{background:#fff}.mobile-bottom-nav{border-top-color:#d7e5ed}.mobile-bottom-nav button.active{color:var(--alpha-cyan-600)}}

/* Sidebar brand alignment
   Keeps the complete ALPHA DESIGN lockup inside the left navigation boundary. */
.brand-row{
  box-sizing:border-box;
  padding-left:10px;
  padding-right:8px;
  gap:7px;
}
.brand-row .brand-lockup{
  margin-left:2px;
  gap:6px;
  min-width:0;
  flex:1 1 auto;
}
.brand-row .brand-image{
  display:block;
  width:108px;
  max-width:108px;
  height:40px;
  max-height:40px;
  flex:0 1 108px;
  object-fit:contain;
  object-position:left center;
}
.brand-row .brand-copy{
  min-width:42px;
  max-width:45px;
  flex:0 1 45px;
  overflow:hidden;
}
.brand-row .brand-copy strong{
  font-size:8.2px;
  letter-spacing:.025em;
}
.brand-row .brand-copy span{
  font-size:6.4px;
  letter-spacing:.035em;
}
.sidebar.collapsed .brand-row{
  padding-left:7px;
  padding-right:7px;
}
.sidebar.collapsed .brand-lockup{margin-left:0}
.sidebar.collapsed .brand-image{
  width:42px;
  max-width:42px;
  height:42px;
  max-height:42px;
}
@media(max-width:820px){
  .brand-row{padding-left:12px;padding-right:10px}
  .brand-row .brand-lockup{margin-left:3px}
  .brand-row .brand-image{width:126px;max-width:126px;height:42px;max-height:42px;flex-basis:126px}
  .brand-row .brand-copy{min-width:58px;max-width:68px;flex-basis:68px}
}


/* Day / Night / System appearance */
:root{
  --header-bg:rgba(255,255,255,.9);--toolbar-bg:rgba(248,251,253,.94);--input-bg:#fff;
  --hover-bg:#eef6fa;--table-head:#f3f8fb;--chart-grid:#e5edf2;--overlay:rgba(3,29,51,.42);
  --focus-ring:rgba(19,184,212,.18);--danger-surface:#fff1f1;--warning-surface:#fff7df;
}
html{color-scheme:light}html[data-theme="dark"]{color-scheme:dark}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.brand-picture{display:flex;align-items:center;min-width:0;flex:0 1 108px}.brand-image-dark{display:none!important}
.theme-switcher{position:relative;display:flex;align-items:center}.theme-toggle{font-size:19px;line-height:1}.theme-toggle[data-theme-preference="system"]{font-size:17px}
.theme-menu{position:absolute;right:0;top:46px;width:244px;padding:7px;background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:0 18px 48px rgba(3,29,51,.2);z-index:130;transform-origin:top right;animation:themeMenuIn .14s ease-out}
@keyframes themeMenuIn{from{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:none}}
.theme-menu button{width:100%;display:grid;grid-template-columns:30px minmax(0,1fr) 18px;align-items:center;gap:8px;border:0;border-radius:9px;padding:9px 8px;background:transparent;color:var(--text);text-align:left}
.theme-menu button:hover,.theme-menu button:focus-visible{background:var(--surface-3)}.theme-menu button>span:first-child{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--surface-3);color:var(--primary-2);font-size:16px}.theme-menu strong{display:block;font-size:12px}.theme-menu small{display:block;color:var(--muted);font-size:9.5px;margin-top:2px}.theme-menu i{font-style:normal;color:var(--primary-2);opacity:0}.theme-menu button.active i{opacity:1}.theme-menu button.active{background:var(--surface-3)}

html[data-theme="dark"]{
  --alpha-navy-950:#e6eff4;--alpha-navy-900:#c8dce8;--alpha-navy-800:#84bede;
  --alpha-cyan-600:#63aad0;--alpha-cyan-500:#84bede;--alpha-cyan-100:#153347;
  --primary:#63aad0;--primary-2:#84bede;--brand-navy:#c8dce8;
  --bg:#07131f;--surface:#0d1e2c;--surface-2:#102432;--surface-3:#153244;--text:#e7f1f6;--muted:#91a8b8;--line:#223b4c;
  --header-bg:rgba(9,25,37,.9);--toolbar-bg:rgba(11,29,42,.94);--input-bg:#0b1b28;--hover-bg:#143346;
  --table-head:#102938;--chart-grid:#213b4b;--overlay:rgba(0,8,15,.68);--focus-ring:rgba(67,214,237,.2);
  --danger-surface:#3a1d26;--warning-surface:#382f19;--shadow:0 10px 30px rgba(0,0,0,.24);
}
html[data-theme="dark"] body{background:radial-gradient(circle at 92% -10%,rgba(35,178,207,.08),transparent 26%),var(--bg);color:var(--text)}
html[data-theme="dark"] ::selection{background:rgba(67,214,237,.28);color:#fff}
html[data-theme="dark"] .brand-image-light{display:none!important}html[data-theme="dark"] .brand-image-dark{display:block!important}
html[data-theme="dark"] .brand-copy strong{color:#9fcee8}html[data-theme="dark"] .brand-copy span{color:#719db5}
html[data-theme="dark"] .sidebar{background:linear-gradient(180deg,#0b1d2b 0%,#091925 72%,#071520 100%);border-right-color:var(--line);box-shadow:6px 0 24px rgba(0,0,0,.18)}
html[data-theme="dark"] .brand-row,html[data-theme="dark"] .sidebar-footer{border-color:var(--line)}
html[data-theme="dark"] .sidebar-footer{background:rgba(15,37,52,.72)}
html[data-theme="dark"] .nav-item{color:#a9bdc9}html[data-theme="dark"] .nav-item:hover{background:#102f42;color:#bfe1f3}html[data-theme="dark"] .nav-item.active{background:linear-gradient(90deg,#14364a,#102a39);color:#e9f4fa;box-shadow:inset 3px 0 0 var(--alpha-cyan-500)}
html[data-theme="dark"] .global-header{background:var(--header-bg);border-bottom-color:var(--line);box-shadow:0 3px 18px rgba(0,0,0,.16)}
html[data-theme="dark"] .page-toolbar{background:var(--toolbar-bg);border-bottom-color:var(--line)}
html[data-theme="dark"] .global-search-wrap,html[data-theme="dark"] .global-search-wrap:focus-within,html[data-theme="dark"] .date-control,html[data-theme="dark"] .toolbar-select,html[data-theme="dark"] .toolbar-button,html[data-theme="dark"] .sync-pill{background:var(--input-bg);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .global-search-wrap kbd{background:#132b3a;border-color:#2a4657;color:#9eb2bf}
html[data-theme="dark"] .search-results,html[data-theme="dark"] .right-drawer,html[data-theme="dark"] .modal,html[data-theme="dark"] .modal-header,html[data-theme="dark"] .theme-menu{background:var(--surface);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .search-result,html[data-theme="dark"] .profile-button,html[data-theme="dark"] .header-icon,html[data-theme="dark"] .plain-icon{color:var(--text)}
html[data-theme="dark"] .search-result:hover,html[data-theme="dark"] .profile-button:hover,html[data-theme="dark"] .header-icon:hover,html[data-theme="dark"] .plain-icon:hover,html[data-theme="dark"] .sync-pill:hover{background:var(--hover-bg);border-color:var(--line)}
html[data-theme="dark"] .notification-badge{border-color:#0b1b28}
html[data-theme="dark"] .avatar{background:linear-gradient(145deg,#17465e,#2a6e93);color:#e1f1fa;border-color:#153244}
html[data-theme="dark"] .page-icon{background:linear-gradient(145deg,#153647,#1b3c4d);border-color:#285166;color:#78bee4}
html[data-theme="dark"] .page-heading h1,html[data-theme="dark"] .section-header h2,html[data-theme="dark"] .section-header h3,html[data-theme="dark"] .kpi-value{color:var(--text)}
html[data-theme="dark"] .card,html[data-theme="dark"] .kpi-card,html[data-theme="dark"] .feature-tile,html[data-theme="dark"] .export-report,html[data-theme="dark"] .format-card,html[data-theme="dark"] .template-btn{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}
html[data-theme="dark"] .card:hover,html[data-theme="dark"] .kpi-card:hover{box-shadow:0 13px 36px rgba(0,0,0,.3)}
html[data-theme="dark"] .kpi-label,html[data-theme="dark"] .chart-legend{color:#a7bdc9}
html[data-theme="dark"] .kpi-card:after{background:radial-gradient(circle,rgba(67,214,237,.09),transparent 70%)}
html[data-theme="dark"] .date-control input,html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea{color:var(--text)}
html[data-theme="dark"] .secondary-btn,html[data-theme="dark"] .drawer-link,html[data-theme="dark"] .accounting-tab,html[data-theme="dark"] .metric-switch,html[data-theme="dark"] .import-controls select{background:var(--input-bg);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .secondary-btn:hover,html[data-theme="dark"] .drawer-link:hover,html[data-theme="dark"] .ghost-btn:hover{background:var(--hover-bg);color:#e1f1fa}
html[data-theme="dark"] .danger-btn{background:var(--danger-surface);border-color:#74404e;color:#ffb5c2}
html[data-theme="dark"] .table-tools,html[data-theme="dark"] .journal-lines-header,html[data-theme="dark"] .journal-total,html[data-theme="dark"] .tax-bridge>div,html[data-theme="dark"] .mini-stat,html[data-theme="dark"] .status-chip,html[data-theme="dark"] .profile-card,html[data-theme="dark"] .upload-drop,html[data-theme="dark"] .export-preview,html[data-theme="dark"] .import-box{background:var(--surface-2);border-color:var(--line)}
html[data-theme="dark"] .search-input,html[data-theme="dark"] .filter-select,html[data-theme="dark"] .field input,html[data-theme="dark"] .field select,html[data-theme="dark"] .field textarea,html[data-theme="dark"] .journal-line input,html[data-theme="dark"] .journal-line select{background:var(--input-bg);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#6f8999}
html[data-theme="dark"] thead th{background:var(--table-head)!important;color:#a9c1ce!important;border-bottom-color:var(--line)!important}
html[data-theme="dark"] td{border-bottom-color:#1b3343!important}html[data-theme="dark"] tbody tr:hover,html[data-theme="dark"] tbody tr:hover td{background:#102a39!important}
html[data-theme="dark"] .plot{border-color:var(--chart-grid);background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(25% - 1px),var(--chart-grid) 25%)}
html[data-theme="dark"] .y-axis,html[data-theme="dark"] .x-labels,html[data-theme="dark"] .stacked-labels{color:#7892a2}
html[data-theme="dark"] .donut::after,html[data-theme="dark"] .donut-center{background:var(--surface)}
html[data-theme="dark"] .heatmap .head,html[data-theme="dark"] .heatmap .label{background:var(--surface-2);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .heat-1{background:#173b31;color:#9fe5c2}html[data-theme="dark"] .heat-2{background:#3a361e;color:#f5dda0}html[data-theme="dark"] .heat-3{background:#49341e;color:#ffc589}html[data-theme="dark"] .heat-4{background:#47262a;color:#ffb6b9}
html[data-theme="dark"] .badge.success{background:#173b2b;color:#9ee0b5;border-color:#285f40}html[data-theme="dark"] .badge.warning{background:#3b321b;color:#f4d78c;border-color:#67582b}html[data-theme="dark"] .badge.danger{background:#3b2028;color:#ffafb9;border-color:#6b3946}html[data-theme="dark"] .badge.info{background:#173444;color:#90c7e5;border-color:#2b5368}html[data-theme="dark"] .badge.neutral{background:#253542;color:#b7c5ce;border-color:#364b59}
html[data-theme="dark"] .progress{background:#203644}html[data-theme="dark"] .note,html[data-theme="dark"] .algorithm-note{background:#112e3f;border-color:#2b4e61;color:#bbd6e5}html[data-theme="dark"] .danger-note{background:#3b2028;border-color:#6b3946;color:#ffc4cc}
html[data-theme="dark"] .alert-item,html[data-theme="dark"] .activity,html[data-theme="dark"] .export-report:hover,html[data-theme="dark"] .template-btn:hover{background:var(--surface-2);border-color:var(--line)}
html[data-theme="dark"] .alert-icon,html[data-theme="dark"] .activity-icon,html[data-theme="dark"] .feature-tile .tile-icon,html[data-theme="dark"] .integration-logo,html[data-theme="dark"] .export-icon,html[data-theme="dark"] .format-card>span,html[data-theme="dark"] .template-btn span{background:#153447;color:#78bee4}
html[data-theme="dark"] .accounting-tabs{background:#102938}html[data-theme="dark"] .accounting-tab.active,html[data-theme="dark"] .metric-switch .active{background:#17394b;color:#e1f1fa;box-shadow:0 2px 9px rgba(0,0,0,.22)}
html[data-theme="dark"] .statutory-table .report-total td{background:#132b3a}
html[data-theme="dark"] .aging-grid>div{background:var(--surface-2);border-color:var(--line)}
html[data-theme="dark"] .confidence.medium{background:#3a321b;color:#f1d789}html[data-theme="dark"] .confidence.low{background:#3a2027;color:#ffb0bb}
html[data-theme="dark"] .export-report.active,html[data-theme="dark"] .format-card.active{background:#143548;border-color:#2f5970}html[data-theme="dark"] .export-report b,html[data-theme="dark"] .preview-tags span{background:#17384a;color:#c8e4f3;border-color:#2c5267}
html[data-theme="dark"] .production-guard-banner{background:#122d3c;color:#bed9e7;border-top-color:#2b4e61}html[data-theme="dark"] .production-guard-banner.blocked{background:#3c3019;color:#f1d28b}html[data-theme="dark"] .production-guard-banner.production.blocked{background:#3d2026;color:#ffbdc5}
html[data-theme="dark"] .mobile-bottom-nav{background:rgba(8,24,36,.96);border-top-color:var(--line)}
html[data-theme="dark"] .drawer-backdrop,html[data-theme="dark"] .modal-backdrop{background:var(--overlay)}
html[data-theme="dark"] .login-card{background:#0d1e2c;border-color:#284757;color:var(--text)}html[data-theme="dark"] .demo-accounts button{background:#112a3a;border-color:#284757;color:#cee5f1}html[data-theme="dark"] .demo-accounts button:hover{background:#16394c}
html[data-theme="dark"] .environment-pill{background:#102837;border-color:#29485a;color:#bed2dd}html[data-theme="dark"] .environment-pill[data-env="production"]{background:#173529;color:#9ee0b5}html[data-theme="dark"] .environment-pill[data-env="staging"]{background:#163343;color:#96cae6}
@media(max-width:820px){html[data-theme="dark"] .global-header,html[data-theme="dark"] .page-toolbar{background:rgba(8,24,36,.96)}html[data-theme="dark"] .sidebar{background:#0a1a27}.theme-menu{position:fixed;right:10px;top:58px;width:min(280px,calc(100vw - 20px))}.profile-copy{display:none}}
@media(prefers-reduced-motion:reduce){.theme-menu{animation:none}.theme-switcher *{transition:none!important}}


/* Precise top-left brand and menu alignment
   Uses an explicit grid so the menu button and brand lockup share one visual axis. */
.brand-row{
  height:62px;
  min-height:62px;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:center;
  column-gap:8px;
  box-sizing:border-box;
  padding:0 8px 10px;
  overflow:hidden;
}
.brand-row .desktop-menu{
  display:grid;
  place-items:center;
  justify-self:center;
  align-self:center;
  width:36px;
  height:36px;
  margin:0;
  padding:0;
  color:var(--alpha-navy-800);
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  line-height:1;
  flex:none;
}
.brand-row .desktop-menu:hover{
  color:var(--alpha-navy-950);
  background:#eef6fa;
  border-color:#d7e6ee;
}
.brand-row .desktop-menu:focus-visible{
  outline:0;
  color:var(--alpha-navy-950);
  border-color:var(--alpha-cyan-500);
  box-shadow:0 0 0 3px rgba(19,184,212,.16);
}
.menu-toggle-icon{
  width:20px;
  height:20px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
}
.sidebar:not(.collapsed) .brand-row .brand-lockup,
.brand-row .brand-lockup{
  width:100%;
  min-width:0;
  margin:0;
  display:grid;
  grid-template-columns:minmax(0,108px) minmax(43px,1fr);
  align-items:center;
  column-gap:6px;
  overflow:hidden;
}
.brand-row .brand-picture{
  width:108px;
  min-width:0;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  overflow:hidden;
  flex:none;
}
.brand-row .brand-image{
  width:108px;
  max-width:108px;
  height:40px;
  max-height:40px;
  margin:0;
  display:block;
  object-fit:contain;
  object-position:left center;
  flex:none;
}
.brand-row .brand-copy{
  min-width:0;
  max-width:none;
  width:100%;
  overflow:hidden;
  text-align:left;
  line-height:1.1;
  flex:none;
}
.brand-row .brand-copy strong,
.brand-row .brand-copy span{
  overflow:hidden;
  text-overflow:clip;
  white-space:nowrap;
}
.brand-row .brand-copy strong{font-size:8.3px;letter-spacing:.018em}
.brand-row .brand-copy span{font-size:6.3px;letter-spacing:.025em;margin-top:2px}

/* The compact sidebar cannot fit two controls side-by-side; stack them on one centered axis. */
.sidebar.collapsed .brand-row{
  height:88px;
  min-height:88px;
  grid-template-columns:1fr;
  grid-template-rows:36px 34px;
  row-gap:5px;
  padding:4px 7px 9px;
  justify-items:center;
}
.sidebar.collapsed .brand-row .desktop-menu{grid-row:1;justify-self:center}
.sidebar.collapsed .brand-row .brand-lockup{
  grid-row:2;
  width:38px;
  height:34px;
  display:block;
  justify-self:center;
  margin:0;
  overflow:hidden;
}
.sidebar.collapsed .brand-row .brand-picture{
  width:38px;
  height:34px;
  overflow:hidden;
}
.sidebar.collapsed .brand-row .brand-image{
  width:38px;
  max-width:38px;
  height:34px;
  max-height:34px;
  object-fit:cover;
  object-position:left center;
}
.sidebar.collapsed .brand-row .brand-copy{display:none!important}

html[data-theme="dark"] .brand-row .desktop-menu{color:#cbe7f6}
html[data-theme="dark"] .brand-row .desktop-menu:hover{
  color:#fff;
  background:#143446;
  border-color:#2b5064;
}
html[data-theme="dark"] .brand-row .desktop-menu:focus-visible{
  color:#fff;
  border-color:#4eaee2;
  box-shadow:0 0 0 3px rgba(67,214,237,.18);
}

@media(max-width:820px){
  .brand-row{
    height:78px;
    min-height:78px;
    grid-template-columns:1fr;
    padding:0 12px 11px;
  }
  .brand-row .desktop-menu{display:none}
  .brand-row .brand-lockup{
    grid-template-columns:minmax(0,126px) minmax(58px,1fr);
    column-gap:8px;
    width:100%;
  }
  .brand-row .brand-picture{width:126px;height:44px}
  .brand-row .brand-image{width:126px;max-width:126px;height:42px;max-height:42px}
  .sidebar.collapsed .brand-row{
    height:78px;
    min-height:78px;
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:1fr;
    padding:0 12px 11px;
    justify-items:stretch;
  }
  .sidebar.collapsed .brand-row .brand-lockup{
    width:100%;
    height:auto;
    display:grid;
    grid-template-columns:minmax(0,126px) minmax(58px,1fr);
    grid-row:1;
  }
  .sidebar.collapsed .brand-row .brand-picture{width:126px;height:44px}
  .sidebar.collapsed .brand-row .brand-image{width:126px;max-width:126px;height:42px;max-height:42px;object-fit:contain}
  .sidebar.collapsed .brand-row .brand-copy{display:block!important}
}
/* Project input synchronization hotfix: make planning KPIs and source lineage explicit. */
.project-plan-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.dashboard-source-note b{color:var(--text)}
.project-input-note{grid-column:1/-1;padding:11px 12px;border:1px solid #cfe0ff;background:#f3f8ff;color:#385070;border-radius:10px;font-size:10px;line-height:1.5}
html[data-theme="dark"] .project-input-note{background:#112e3f;border-color:#2b4e61;color:#bbd6e5}
@media(max-width:820px){.project-plan-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-input-note{grid-column:1}}

/* Sidebar scrolling — vertical only.
   Prevent long navigation labels or browser zoom from creating a horizontal scrollbar. */
.sidebar{
  min-width:0;
  overflow-x:hidden;
}
.nav{
  width:100%;
  min-width:0;
  max-width:100%;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior-y:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(103,132,158,.42) transparent;
}
.nav::-webkit-scrollbar{width:6px;height:0}
.nav::-webkit-scrollbar-track{background:transparent}
.nav::-webkit-scrollbar-thumb{background:rgba(103,132,158,.42);border-radius:999px}
.nav::-webkit-scrollbar-thumb:hover{background:rgba(79,111,140,.62)}
.nav-item{
  width:100%;
  max-width:100%;
  min-width:0;
  flex:0 0 auto;
}
.nav-label{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.sidebar-footer{
  width:100%;
  min-width:0;
  overflow:hidden;
}
.sidebar-footer .online-state,
.sidebar-footer small{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:820px){
  .nav{overflow-y:auto;overflow-x:hidden}
}
/* Keep the full menu row inside the sidebar; the old 1px hover translation could trigger x-overflow. */
.nav-item:hover{transform:none}
.nav-item{overflow:hidden}
.nav-label{flex:1 1 auto;font-size:13px;white-space:nowrap}

/* Financial Analytics & Forecast */
.forecast-form{margin-top:14px;grid-template-columns:repeat(3,minmax(0,1fr))}
.forecast-form>label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:700}
.forecast-form input,.forecast-form select{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:var(--input-bg,#fff);color:var(--text);font:inherit}
.forecast-form .full{grid-column:1/-1}
.danger-text{color:#b91c1c!important}
html[data-theme="dark"] .forecast-form input,html[data-theme="dark"] .forecast-form select{background:var(--input-bg);border-color:var(--line);color:var(--text)}
@media(max-width:980px){.forecast-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.forecast-form{grid-template-columns:1fr}.forecast-form .full{grid-column:1}}

/* UI, RBAC and linkage audit */
.brand-row .brand-lockup{grid-template-columns:minmax(0,1fr);width:100%;min-width:0}
.brand-row .brand-picture{width:100%;min-width:0}
.sidebar-footer{display:grid;gap:4px;padding:9px 10px 12px}
.sidebar-footer .product-state{display:flex;align-items:center;gap:8px;overflow:visible;white-space:normal}
.sidebar-product{display:flex;align-items:baseline;gap:5px;min-width:0}
.sidebar-product strong{font-size:10px;letter-spacing:.08em;color:var(--text)}
.sidebar-product small{font-size:7px;letter-spacing:.04em;color:var(--muted);margin:0}
.sidebar-sync{min-width:0;font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:16px}
.sidebar.collapsed .sidebar-product,.sidebar.collapsed .sidebar-sync,.sidebar.collapsed .sidebar-footer>small{display:none}
.sidebar.collapsed .sidebar-footer{justify-items:center;padding:8px 0}
.sidebar.collapsed .product-state{justify-content:center}

.storage-upload-card{padding:12px!important}
.upload-drop{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:100%!important;max-width:100%;min-height:92px;box-sizing:border-box;padding:18px 20px;border:1px dashed var(--line-strong,#9db7ca);border-radius:12px;background:var(--surface-2);cursor:pointer;overflow:hidden}
.upload-drop:hover,.upload-drop.drag-active{border-color:var(--accent);background:var(--accent-soft)}
.upload-drop-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:22px;font-weight:700}
.upload-drop-copy{display:grid;gap:5px;min-width:0}
.upload-drop-copy strong{font-size:13px;color:var(--text)}
.upload-drop-copy>span{font-size:10px;line-height:1.45;color:var(--muted);white-space:normal}

.role-access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.role-access-card{min-width:0;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface-1,#fff)}
.role-access-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.role-access-head>div{min-width:0}.role-access-head strong{font-size:13px}.role-access-head p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.4}
.role-permission-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;min-width:0}
.role-permission-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:58vh;overflow-y:auto;overflow-x:hidden;padding:2px}
.role-permission-form .form-check{display:flex;align-items:flex-start;gap:9px;padding:11px;border:1px solid var(--line);border-radius:10px;min-width:0}
.role-permission-form .form-check-label{display:grid;gap:3px;min-width:0}
.role-permission-form .form-check-label strong{font-size:11px;color:var(--text)}
.role-permission-form .form-check-label small{font-size:8px;color:var(--muted);overflow-wrap:anywhere}

.icon-btn.danger{color:#b91c1c;border-color:#fecaca;background:#fff7f7}
.icon-btn.danger:hover{background:#fee2e2}
.row-danger{background:rgba(239,68,68,.045)}
.danger-note{border-color:#fecaca!important;background:#fff7f7!important;color:#991b1b!important}

@media(max-width:1100px){.role-access-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.upload-drop{grid-template-columns:auto minmax(0,1fr)}.upload-drop>.secondary-btn{grid-column:1/-1;width:100%}.role-access-grid,.role-permission-form{grid-template-columns:1fr}}

/* Notification navigation, compact tables and refined action icons. */
.header-action-svg{
  width:19px;
  height:19px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}
.notification-button{
  display:grid;
  place-items:center;
}
.notification-button:hover .header-action-svg{transform:translateY(-1px)}
.notification-badge{
  right:2px;
  top:1px;
  min-width:15px;
  height:15px;
  padding:0 3px;
  font-size:8px;
  font-weight:800;
  line-height:1;
  box-shadow:0 1px 4px rgba(185,28,28,.24);
}
.notification-badge:empty,
.notification-badge[data-count="0"]{display:none}

/* Product footer is one clean status row. In compact mode only the cyan status dot remains. */
.sidebar-footer{
  display:flex;
  align-items:center;
  min-height:38px;
  gap:8px;
  padding:8px 10px;
  border-top:1px solid var(--line);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.sidebar-footer .product-state{
  width:100%;
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  overflow:hidden;
  white-space:nowrap;
}
.sidebar-product{
  display:flex;
  align-items:baseline;
  gap:5px;
  min-width:0;
  overflow:hidden;
}
.sidebar-product strong{
  color:var(--text);
  font-size:10px;
  line-height:1;
  letter-spacing:.08em;
  white-space:nowrap;
}
.sidebar-product small{
  display:inline;
  margin:0;
  color:var(--muted);
  font-size:7px;
  line-height:1;
  letter-spacing:.04em;
  white-space:nowrap;
}
.sidebar.collapsed .sidebar-footer{
  min-height:24px;
  height:24px;
  padding:0;
  border-top:0;
  background:transparent;
  display:grid;
  place-items:center;
  overflow:visible;
}
.sidebar.collapsed .sidebar-footer .product-state{
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  overflow:visible;
}
.sidebar.collapsed .sidebar-footer .product-state i{
  width:8px;
  height:8px;
  margin:0;
}
.sidebar.collapsed .sidebar-product{display:none!important}

/* Render the original ALPHA symbol without stretching/cropping the transparent logo. */
.sidebar.collapsed .brand-row .brand-lockup{
  width:42px;
  height:36px;
  overflow:hidden;
}
.sidebar.collapsed .brand-row .brand-picture{
  width:42px;
  height:36px;
  display:block;
  overflow:hidden;
}
.sidebar.collapsed .brand-row .brand-image{
  width:163px;
  max-width:none;
  height:36px;
  max-height:36px;
  object-fit:contain;
  object-position:left center;
  display:block;
}

/* Every sidebar glyph stays in a stable visual box. */
.nav-svg{
  width:19px;
  height:19px;
  flex:0 0 19px;
}

html[data-theme="dark"] .sidebar-footer{background:transparent;border-color:var(--line)}
html[data-theme="dark"] .sidebar-product strong{color:var(--text)}

@media(max-width:820px){
  .sidebar.collapsed .sidebar-footer{min-height:38px;height:auto;padding:8px 10px;border-top:1px solid var(--line);display:flex}
  .sidebar.collapsed .sidebar-footer .product-state{width:100%;height:auto;display:flex;justify-content:flex-start}
  .sidebar.collapsed .sidebar-product{display:flex!important}
  .sidebar.collapsed .brand-row .brand-lockup{width:100%;height:auto;overflow:hidden}
  .sidebar.collapsed .brand-row .brand-picture{width:126px;height:44px}
  .sidebar.collapsed .brand-row .brand-image{width:126px;max-width:126px;height:42px;max-height:42px;object-fit:contain}
}


/* Interface refinements */
.drawer-header-actions{display:flex;align-items:center;gap:8px;min-width:0}
.drawer-text-btn{border:0;background:transparent;color:var(--brand);font-size:10px;font-weight:700;display:flex;align-items:center;gap:5px;padding:7px 8px;border-radius:8px;white-space:nowrap}
.drawer-text-btn:hover{background:var(--brand-soft)}
.drawer-text-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-item{display:grid!important;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px!important;transition:background .16s ease,border-color .16s ease,opacity .16s ease}
.notification-item.is-read{opacity:.64;background:var(--panel-soft)}
.notification-main{border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;min-width:0;padding:0;color:var(--text)}
.notification-main span{display:grid;gap:3px;min-width:0}.notification-main strong{font-size:11px;line-height:1.35}.notification-main small{font-size:9px;color:var(--muted);overflow-wrap:anywhere}.notification-main b{color:var(--brand);font-size:15px}
.notification-read-btn{border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:8px;font-weight:700;padding:6px 7px;border-radius:8px;white-space:nowrap}
.notification-read-btn:not(:disabled):hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.notification-read-btn:disabled{border-color:transparent;background:transparent;color:var(--muted)}
.notification-empty{display:grid;justify-items:center;text-align:center;gap:6px;padding:36px 18px;color:var(--muted)}.notification-empty svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6}.notification-empty strong{color:var(--text);font-size:12px}.notification-empty span{font-size:10px}
.record-focus{animation:recordFocus 2.6s ease;border-left:3px solid var(--brand)!important}
@keyframes recordFocus{0%,35%{background:var(--brand-soft)}100%{background:transparent}}
.contract-action{width:30px;height:30px;border-radius:9px;display:inline-grid;place-items:center;padding:0}.contract-action svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.contract-action:not(.danger){color:var(--brand);border-color:color-mix(in srgb,var(--brand) 30%,var(--line));background:var(--brand-soft)}.contract-action:not(.danger):hover{background:color-mix(in srgb,var(--brand) 16%,var(--panel))}
.staff-cost-card{min-width:0}.staff-cost-table{overflow-x:hidden}.staff-cost-table table{min-width:0!important;width:100%;table-layout:fixed}.staff-cost-table th:nth-child(1),.staff-cost-table td:nth-child(1){width:48%}.staff-cost-table th:nth-child(2),.staff-cost-table td:nth-child(2){width:30%}.staff-cost-table th:nth-child(3),.staff-cost-table td:nth-child(3){width:22%}.staff-cost-table th,.staff-cost-table td{padding-left:10px;padding-right:10px;white-space:normal;overflow-wrap:anywhere}.staff-cost-table td.numeric,.staff-cost-table th.numeric{white-space:nowrap}
.balance-summary{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.balance-summary>div{display:grid;grid-template-columns:minmax(145px,.85fr) minmax(0,1.15fr);align-items:center;gap:16px;padding:13px 15px;border-bottom:1px solid var(--line)}.balance-summary>div:last-child{border-bottom:0}.balance-summary span{font-size:11px;font-weight:650;color:var(--text);letter-spacing:0}.balance-summary strong{font-size:12px;font-weight:750;text-align:right;font-variant-numeric:tabular-nums;letter-spacing:0}.balance-summary strong small{font-size:9px;font-weight:600}
@media(max-width:620px){.drawer-header-actions .drawer-text-btn{font-size:0}.drawer-header-actions .drawer-text-btn svg{width:18px;height:18px}.notification-item{grid-template-columns:30px minmax(0,1fr)}.notification-read-btn{grid-column:2;justify-self:start}.balance-summary>div{grid-template-columns:1fr}.balance-summary strong{text-align:left}}


/* Responsive Mobile & Tablet certification layer (360–1024 px). */
html,body{max-width:100%;overflow-x:clip}.app-shell,.main,.content,.page-toolbar,.global-header{min-width:0;max-width:100%}
.table-wrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;touch-action:pan-x pan-y}
.table-wrap.is-scrollable{padding-bottom:22px;position:relative;background:var(--surface)}
.table-wrap.is-scrollable::after{content:"Vuốt ngang để xem thêm cột →";position:absolute;left:10px;bottom:4px;color:var(--muted);font-size:9px;font-weight:650;pointer-events:none}
button,.nav-item,.toolbar-button,.primary-btn,.secondary-btn,.danger-btn,.ghost-btn,.accounting-tab{touch-action:manipulation}

@media(max-width:1024px){
  :root{--header:58px;--toolbar:68px;--sidebar:232px}
  .app-shell{display:block}.main{width:100%;margin-left:0!important}
  .sidebar{position:fixed;inset:0 auto 0 0;width:min(320px,88vw)!important;height:100dvh;transform:translateX(-105%);box-shadow:18px 0 55px rgba(3,29,51,.25);transition:transform .22s ease;z-index:100;padding-bottom:max(10px,env(safe-area-inset-bottom))}
  .sidebar.open{transform:translateX(0)}.sidebar.collapsed{width:min(320px,88vw)!important}.sidebar.collapsed .brand-copy,.sidebar.collapsed .nav-label{display:block}.sidebar.collapsed .nav-item{justify-content:flex-start}
  body.sidebar-open::before{content:"";position:fixed;inset:0;background:rgba(3,29,51,.36);backdrop-filter:blur(2px);z-index:95}
  .desktop-menu{display:none!important}.mobile-menu{display:grid!important}.mobile-brand{display:block!important;color:var(--primary);font-weight:850;font-size:13px;letter-spacing:.02em;white-space:nowrap}
  .global-header{padding:0 16px}.header-left{min-width:0}.global-search-wrap{width:min(460px,48vw)}
  .page-toolbar{padding:9px 16px}.page-heading{min-width:0}.toolbar-actions{min-width:0;flex-wrap:wrap;justify-content:flex-end}
  .content{padding:14px 14px 34px}.two-col{grid-template-columns:1fr}.dashboard-kpi-grid,.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.three-col{grid-template-columns:repeat(2,minmax(0,1fr))}
  .right-drawer{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}
  .nav-item{min-height:44px}.plain-icon,.header-icon{min-width:42px;min-height:42px}
}

@media(min-width:821px) and (max-width:1024px){
  .mobile-bottom-nav{display:none!important}.content{padding-bottom:34px}.production-guard-banner{left:0;bottom:0}
  .global-search-wrap{display:flex}.page-heading p{display:block}.toolbar-actions .toolbar-button{display:inline-flex;align-items:center}.toolbar-actions .toolbar-button span{display:inline}
  .dashboard-kpi-grid,.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi-card{min-height:112px}.four-col{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:820px){
  .global-header{padding-left:10px;padding-right:10px}.page-toolbar{padding:8px 10px}.content{padding:11px 9px calc(90px + env(safe-area-inset-bottom))}
  .dashboard-kpi-grid,.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.three-col,.four-col{grid-template-columns:1fr}
  .toolbar-actions{flex-wrap:nowrap}.toolbar-select{height:42px}.toolbar-button{width:42px;height:42px;padding:0;display:grid;place-items:center}.primary-btn#primaryAction{width:42px;height:42px}
  .mobile-bottom-nav{min-height:62px;padding-bottom:max(5px,env(safe-area-inset-bottom))}.mobile-bottom-nav button{min-height:50px}.mobile-bottom-nav .mobile-plus{min-width:48px;min-height:48px}
  .toast{bottom:calc(78px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);text-align:center}
  .production-guard-banner{bottom:calc(62px + env(safe-area-inset-bottom))}
  .accounting-tabs,.metric-switch,.control-tabs,.export-tabs{display:flex;flex-wrap:nowrap;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:thin}
  .accounting-tabs>* ,.metric-switch>* ,.control-tabs>* ,.export-tabs>*{flex:0 0 auto;white-space:nowrap}
  .table-wrap:not(.staff-cost-table) th:first-child,.table-wrap:not(.staff-cost-table) td:first-child{position:sticky;left:0;z-index:2;background:var(--surface)}
  .table-wrap:not(.staff-cost-table) th:first-child{z-index:3;background:var(--table-head,#f8fafc)}
}

@media(max-width:600px){
  .global-header{height:58px}.mobile-brand{font-size:12px}.header-actions{margin-left:auto}.sync-pill{display:none}.header-icon{width:40px;height:40px}.avatar{width:34px;height:34px}
  .page-toolbar{position:sticky;top:58px;min-height:64px;align-items:center}.page-heading h1{font-size:17px;line-height:1.15}.page-heading p{display:none}.page-icon{width:32px;height:32px;flex:none}
  .toolbar-actions{margin-left:auto}.toolbar-select{max-width:112px;font-size:12px}.toolbar-actions .toolbar-button{display:none}
  .kpi-card{min-height:112px;padding:12px}.kpi-top{align-items:flex-start}.kpi-icon{width:36px;height:36px}.kpi-value{font-size:18px;white-space:normal;overflow:visible}.kpi-foot{line-height:1.35}
  .modern-hero,.control-hero,.cloud-hero{padding:18px 15px;border-radius:15px}.modern-hero h2,.control-hero h2,.cloud-hero h2{font-size:20px;line-height:1.18}.modern-hero p,.control-hero p,.cloud-hero p{font-size:10px;line-height:1.55}.hero-metric,.control-score,.cloud-health{width:100%;min-width:0}
  .section-header{align-items:flex-start}.section-header h2,.section-header h3{font-size:13px}.section-link{min-height:36px}
  .table-tools>*{width:100%;min-width:0}.search-input,.filter-select{min-width:0;width:100%;height:44px}.table-wrap table{min-width:700px}.table-wrap th,.table-wrap td{padding:11px 10px}
  .right-drawer{width:100vw;max-width:none;padding:0 12px max(18px,env(safe-area-inset-bottom));border-radius:0}.drawer-header{position:sticky;top:0;z-index:3;background:var(--surface);padding:calc(12px + env(safe-area-inset-top)) 0 12px}.drawer-list{padding-bottom:20px}
  .modal-backdrop{padding:0;place-items:end center}.modal{width:100%;max-width:none;max-height:calc(100dvh - 8px);border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom)}.modal-header{padding:14px 12px}.modal-form{padding:12px 12px 20px}
  .field input,.field select,.field textarea,.journal-line input,.journal-line select,.drawer-form select,.login-card input{font-size:16px;min-height:44px}.form-actions{position:sticky;bottom:0;background:var(--surface);padding:10px 0 max(4px,env(safe-area-inset-bottom));z-index:2}.form-actions>*{min-height:44px}
  .upload-drop{grid-template-columns:44px minmax(0,1fr)!important;gap:10px;padding:15px 13px}.upload-drop>.secondary-btn{grid-column:1/-1;width:100%;min-height:44px}.upload-drop-copy strong{font-size:12px}.upload-drop-copy>span{font-size:9px}
  .notification-item{padding:11px!important}.notification-main{min-height:44px}.notification-read-btn{min-height:36px}.contract-action{width:40px;height:40px}
  .login-screen{padding:max(12px,env(safe-area-inset-top)) 10px max(12px,env(safe-area-inset-bottom))}.login-card{padding:22px 17px;border-radius:18px;max-height:calc(100dvh - 24px);overflow:auto}.login-card-head h2{font-size:22px}.demo-accounts{grid-template-columns:1fr}.demo-accounts button{min-height:42px}
}

@media(max-width:374px){
  .mobile-brand{font-size:11px}.header-icon{width:36px;min-width:36px}.profile-button{display:none}.page-toolbar{gap:7px}.toolbar-select{max-width:102px}.content{padding-left:7px;padding-right:7px}
  .kpi-card{padding:10px;min-height:108px}.kpi-label{font-size:9px}.kpi-value{font-size:17px}.kpi-icon{width:33px;height:33px}.kpi-foot{font-size:8.5px}
}

@media(max-width:932px) and (max-height:520px) and (orientation:landscape){
  .global-header{position:static}.page-toolbar{position:static}.content{padding-bottom:70px}.mobile-bottom-nav{min-height:54px}.mobile-bottom-nav button{min-height:42px}.right-drawer{width:min(480px,76vw)}
}
/* Prevent intrinsic-width tables/charts from expanding responsive grid tracks. */
.grid>*{min-width:0;max-width:100%}

/* Account security, MFA AAL2 and password recovery */
.login-assistance{display:flex;justify-content:flex-end;margin-top:-7px}.text-link{border:0;background:transparent;color:#176690;font:inherit;font-size:11px;font-weight:750;padding:2px 0;cursor:pointer}.text-link:hover{text-decoration:underline}
.auth-security-open{overflow:hidden}.auth-security-screen{position:fixed;inset:0;z-index:2600;display:grid;place-items:center;padding:20px;background:rgba(2,24,44,.72);backdrop-filter:blur(10px)}.auth-security-card{width:min(480px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--surface,#fff);color:var(--text,#102a43);border:1px solid rgba(255,255,255,.65);border-radius:22px;padding:28px;box-shadow:0 30px 100px rgba(1,18,34,.38)}.auth-security-mark{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,var(--alpha-navy-800),var(--alpha-cyan-500));color:#fff;font-size:22px;font-weight:900;box-shadow:0 9px 22px rgba(6,65,109,.2)}.auth-security-card h2{margin:17px 0 7px;color:var(--alpha-navy-950);font-size:25px}.auth-security-card>p{margin:0;color:var(--muted);line-height:1.55}.auth-security-form{display:grid;gap:14px;margin-top:20px}.auth-security-form label{display:grid;gap:7px;font-size:12px;font-weight:780;color:#425c70}.auth-security-form input{width:100%;height:48px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);padding:0 13px;font-size:15px}.auth-security-form input:focus{outline:0;border-color:var(--alpha-cyan-500);box-shadow:0 0 0 3px rgba(19,184,212,.12)}.auth-security-form .primary-btn,.auth-security-form .danger-btn{height:48px}.mfa-setup{display:grid;place-items:center;gap:13px;margin-top:20px;padding:17px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)}.mfa-qr{display:block;width:210px;height:210px;max-width:100%;border-radius:10px;background:#fff;padding:8px;border:1px solid #dce7ee}.mfa-secret-wrap{width:100%;display:grid;gap:5px;text-align:center}.mfa-secret-wrap span{font-size:10px;color:var(--muted);font-weight:760}.mfa-secret-wrap code{display:block;overflow-wrap:anywhere;padding:9px 10px;border-radius:9px;background:var(--surface);border:1px solid var(--line);font-size:12px;user-select:all}.password-policy{font-size:10px;line-height:1.5;color:var(--muted);padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}.auth-security-feedback{min-height:20px!important;margin:15px 0 0!important;font-size:11px!important;color:var(--muted)!important}.auth-security-feedback[data-kind="error"]{color:#b42318!important}.auth-security-feedback[data-kind="success"]{color:#067647!important}.auth-security-feedback[data-kind="info"]{color:#176690!important}.auth-security-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:16px}.auth-security-actions .secondary-btn{min-height:42px}.secondary-btn.danger{color:#b42318;border-color:#f2c6c2;background:#fff7f6}.account-security-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.account-security-summary>div{padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.account-security-summary span{display:block;font-size:9px;color:var(--muted);margin-bottom:5px}.account-security-summary strong{font-size:18px;color:var(--alpha-navy-900)}.account-security-summary button{grid-column:1/-1;min-height:44px}
@media(max-width:620px){.auth-security-screen{padding:10px;align-items:end}.auth-security-card{width:100%;max-height:calc(100vh - 20px);border-radius:20px 20px 13px 13px;padding:22px}.mfa-qr{width:190px;height:190px}.auth-security-actions{flex-direction:column-reverse}.auth-security-actions button{width:100%}.account-security-summary{grid-template-columns:1fr}}
[data-theme="dark"] .auth-security-card h2{color:#e9f4fa}[data-theme="dark"] .auth-security-form label{color:#c6d8e2}[data-theme="dark"] .mfa-qr{border-color:#355363}[data-theme="dark"] .secondary-btn.danger{background:#321f22;border-color:#6d3b40;color:#ffb4ab}

/* Security center, clean-session protection and hidden-tab privacy */
.security-hero{display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:24px;padding:26px;border-radius:20px;color:#fff;background:radial-gradient(circle at 82% 5%,rgba(52,211,235,.28),transparent 27%),linear-gradient(135deg,#041f36,#073f63 58%,#176690);box-shadow:0 20px 52px rgba(3,43,78,.2)}.security-hero h2{margin:5px 0 8px;font-size:27px;letter-spacing:-.025em}.security-hero p{max-width:760px;margin:0;color:rgba(255,255,255,.76);line-height:1.6}.security-hero-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.security-hero .secondary-btn{color:#fff;border-color:rgba(255,255,255,.34);background:rgba(255,255,255,.1)}.security-score{min-height:152px;display:flex;flex-direction:column;justify-content:center;padding:20px;border:1px solid rgba(255,255,255,.2);border-radius:17px;background:rgba(255,255,255,.1);backdrop-filter:blur(10px)}.security-score span,.security-score small{color:rgba(255,255,255,.68);font-size:10px}.security-score strong{margin:8px 0 5px;font-size:22px;line-height:1.15}.security-posture-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.security-posture-card{min-height:174px;padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow)}.security-posture-card.good{border-top:3px solid #19a765}.security-posture-card.warn{border-top:3px solid #f59e0b}.security-posture-card.info{border-top:3px solid #1e82b8}.security-posture-head{display:flex;align-items:flex-start;gap:10px}.security-posture-head>span{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:9px;background:#e8f8ef;color:#11824f;font-weight:900}.security-posture-card.warn .security-posture-head>span{background:#fff5d9;color:#ad6800}.security-posture-card.info .security-posture-head>span{background:#e9f4fa;color:#176690}.security-posture-card h3{margin:0;color:var(--text);font-size:11px}.security-posture-card strong{display:block;margin-top:4px;color:var(--alpha-navy-900);font-size:13px;line-height:1.35}.security-posture-card p{margin:13px 0 0;color:var(--muted);font-size:10px;line-height:1.55}.security-rules{display:grid;gap:10px;margin:0;padding:0;list-style:none}.security-rules li{position:relative;padding-left:25px;color:var(--text);font-size:11px;line-height:1.5}.security-rules li::before{content:"✓";position:absolute;left:0;top:0;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:#e8f8ef;color:#11824f;font-size:10px;font-weight:900}.security-session-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}.security-session-list>div{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}.security-session-list span{display:block;color:var(--muted);font-size:9px}.security-session-list strong{display:block;margin-top:5px;color:var(--text);font-size:12px}.privacy-shield{position:fixed;inset:0;z-index:5000;display:none;place-items:center;color:#fff;background:radial-gradient(circle at 50% 40%,rgba(24,167,196,.2),transparent 30%),#031725}.privacy-shield.active{display:grid}.privacy-shield>div{text-align:center}.privacy-shield span{width:62px;height:62px;margin:0 auto 14px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#145578,#218cc6);font-size:24px;font-weight:900;box-shadow:0 18px 50px rgba(0,0,0,.32)}.privacy-shield strong{display:block;font-size:20px;letter-spacing:.08em}.privacy-shield p{margin:7px 0 0;color:rgba(255,255,255,.66);font-size:11px}.privacy-shield-active #appShell{filter:blur(18px);pointer-events:none;user-select:none}
html[data-theme="dark"] .security-posture-card strong{color:#d1e7f3}html[data-theme="dark"] .security-posture-head>span{background:#173d32;color:#74e0ad}html[data-theme="dark"] .security-posture-card.warn .security-posture-head>span{background:#443719;color:#ffd37a}html[data-theme="dark"] .security-posture-card.info .security-posture-head>span{background:#153343;color:#68b9e4}html[data-theme="dark"] .security-rules li::before{background:#173d32;color:#74e0ad}
@media(max-width:1180px){.security-posture-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.security-hero{grid-template-columns:1fr;padding:20px 16px}.security-hero h2{font-size:22px}.security-score{min-height:110px}.security-posture-grid{grid-template-columns:1fr}.security-posture-card{min-height:0}.security-session-list{grid-template-columns:1fr}}

/* UI/UX professional refinement — navigation hierarchy, readable dashboards and touch accessibility. */
:root{
  --sidebar:252px;
  --ux-control-height:42px;
  --ux-content-max:1680px;
  --ux-radius-lg:16px;
}
.skip-link{
  position:fixed;left:16px;top:10px;z-index:4000;transform:translateY(-150%);
  padding:10px 14px;border-radius:10px;background:var(--alpha-navy-950);color:#fff;
  font-size:12px;font-weight:800;text-decoration:none;box-shadow:0 12px 30px rgba(3,29,51,.28);
  transition:transform .16s ease;
}
.skip-link:focus{transform:translateY(0)}

.sidebar{
  padding:12px 10px 10px;
  background:linear-gradient(180deg,#fff 0%,#fbfdfe 68%,#f3f8fb 100%);
  box-shadow:8px 0 28px rgba(3,47,82,.045);
}
.brand-row{
  height:64px;min-height:64px;padding:0 4px 12px;display:grid;
  grid-template-columns:40px minmax(0,1fr);gap:7px;align-items:center;
}
.brand-row .desktop-menu{width:38px;height:38px;min-width:38px;min-height:38px}
.brand-row .brand-lockup{
  width:100%;height:44px;display:block;overflow:hidden;
}
.brand-row .brand-picture{
  width:100%;height:44px;display:flex;align-items:center;overflow:hidden;
}
.sidebar:not(.collapsed) .brand-row .brand-lockup{display:block;grid-template-columns:1fr}
.sidebar:not(.collapsed) .brand-row .brand-picture{width:100%}
.brand-row .brand-image{
  width:165px;max-width:165px;height:42px;max-height:42px;object-fit:contain;object-position:left center;
}
.brand-compact-icon{display:none;width:36px;height:36px;border-radius:10px}

.nav{display:block;padding:9px 0 12px;overflow-x:hidden}
.nav-group{padding:2px 0}
.nav-group+.nav-group{margin-top:2px}
.nav-group-toggle{
  width:100%;min-height:34px;border:0;background:transparent;color:#7890a0;
  border-radius:8px;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;
  gap:8px;text-align:left;font-size:9px;font-weight:850;letter-spacing:.095em;text-transform:uppercase;
}
.nav-group-toggle:hover,.nav-group-toggle:focus-visible{background:#eef5f9;color:var(--alpha-navy-800)}
.nav-group-chevron{font-size:13px;line-height:1;transition:transform .18s ease}
.nav-group.is-open .nav-group-chevron{transform:rotate(180deg)}
.nav-group-items{display:none;gap:2px;padding:2px 0 4px}
.nav-group.is-open .nav-group-items{display:grid}
.nav-item{
  min-height:42px;padding:9px 11px;border-radius:10px;gap:11px;color:#3d586b;
  font-size:12px;font-weight:620;
}
.nav-item:hover{transform:none;background:#eef5f9}
.nav-item.active{
  background:linear-gradient(90deg,#e5f2f9 0%,#f4f9fc 100%);
  color:var(--alpha-navy-900);box-shadow:inset 3px 0 0 var(--alpha-cyan-500);
}
.nav-item.active .nav-svg{color:var(--alpha-cyan-600);filter:none}
.nav-svg{width:19px;height:19px}

.sidebar.collapsed .brand-row{
  height:90px;min-height:90px;display:grid;grid-template-columns:1fr;grid-template-rows:38px 38px;
  gap:4px;padding:3px 6px 8px;justify-items:center;
}
.sidebar.collapsed .brand-row .desktop-menu{grid-row:1}
.sidebar.collapsed .brand-row .brand-lockup{grid-row:2;width:38px;height:38px}
.sidebar.collapsed .brand-row .brand-picture{width:38px;height:38px;display:grid;place-items:center}
.sidebar.collapsed .brand-row .brand-image{display:none!important}
.sidebar.collapsed .brand-row .brand-compact-icon{display:block;width:36px;height:36px;border-radius:10px}
.sidebar.collapsed .nav-group-toggle{display:none}
.sidebar.collapsed .nav-group{padding:5px 0;border-top:1px solid var(--line)}
.sidebar.collapsed .nav-group:first-child{border-top:0}
.sidebar.collapsed .nav-group-items{display:grid!important}
.sidebar.collapsed .nav-item{width:50px;min-height:44px;margin:0 auto;padding:9px;justify-content:center}

.global-header{padding-left:20px;padding-right:20px}
.global-search-wrap{width:min(460px,42vw);height:42px}
.sync-pill,.header-icon{min-height:40px}
.profile-button{min-width:42px;min-height:42px}
.page-toolbar{padding-left:20px;padding-right:20px}
.date-control,.toolbar-select,.toolbar-button{height:var(--ux-control-height)}
.primary-btn,.secondary-btn,.danger-btn,.ghost-btn{min-height:40px}
.content{width:100%;max-width:var(--ux-content-max);padding:22px 22px 100px}

.dashboard-kpi-grid{
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  align-items:stretch;
}
.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));align-items:stretch}
.project-plan-kpi-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.kpi-card{
  min-height:132px;padding:17px;border-radius:var(--ux-radius-lg);
  border:1px solid color-mix(in srgb,var(--line) 86%,var(--alpha-cyan-500));
  box-shadow:0 8px 24px rgba(4,47,85,.055);
}
.kpi-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(4,47,85,.1)}
.kpi-top{gap:10px}
.kpi-icon{
  width:38px;height:38px;border-radius:11px;box-shadow:none;color:var(--primary);
  background:color-mix(in srgb,var(--primary) 12%,var(--surface))!important;
}
.kpi-icon.teal{color:#17658f;background:color-mix(in srgb,#208cc7 14%,var(--surface))!important}
.kpi-icon.green{color:#13813b;background:color-mix(in srgb,#22a447 13%,var(--surface))!important}
.kpi-icon.orange{color:#a86100;background:color-mix(in srgb,#f59e0b 15%,var(--surface))!important}
.kpi-icon.purple{color:#6f45c5;background:color-mix(in srgb,#8b5cf6 13%,var(--surface))!important}
.kpi-icon.red{color:#c43c48;background:color-mix(in srgb,#ef4444 12%,var(--surface))!important}
.kpi-label{font-size:11.5px;line-height:1.35;color:#405d70}
.kpi-value{font-size:23px;line-height:1.15;margin-top:14px}
.kpi-unit{font-size:9.5px;letter-spacing:.035em}
.kpi-foot{font-size:10px;line-height:1.4;padding-top:9px}
.dashboard-source-note{
  padding:13px 15px;border-color:#cce0ea;background:linear-gradient(90deg,#f0f7fa,#f8fbfd);
  color:#395767;line-height:1.55;
}
.section{margin-top:18px}
.section-header h2,.section-header h3{font-size:15px}
.section-header p{font-size:10.5px;line-height:1.45}
.card{border-radius:var(--ux-radius-lg);box-shadow:0 8px 24px rgba(4,47,85,.05)}
.card:hover{transform:none;box-shadow:0 12px 30px rgba(4,47,85,.08)}
.chart-card{padding:17px}

thead th{font-size:10px;padding:11px 12px}
td{font-size:11.5px;padding:11px 12px}
.badge{font-size:9.5px;padding:5px 8px}
.right-drawer{width:min(420px,94vw);padding:20px}
.drawer-header h2{font-size:20px}
.drawer-link{min-height:44px}
.modal{border-radius:20px}
.modal-header{padding:17px 18px}
.modal-form{padding:18px}
.toast{font-size:12px;padding:11px 16px;border-radius:11px}

.login-logo{width:min(460px,82%);filter:none}
.login-copy{max-width:680px}
.login-copy p{max-width:620px}
.login-card{padding:34px;border-radius:24px}
.login-card input{min-height:48px}
.demo-accounts button{min-height:40px;line-height:1.25}

.mobile-bottom-nav button{grid-template-rows:22px auto;align-content:center}
.mobile-nav-icon{
  width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;
}
.mobile-bottom-nav .mobile-nav-label{font-size:9px!important;line-height:1.15}
.mobile-bottom-nav .mobile-plus{display:grid;grid-template-rows:1fr}
.mobile-bottom-nav .mobile-plus span{font-size:25px!important}

html[data-theme="dark"] .nav-group-toggle{color:#7898aa}
html[data-theme="dark"] .nav-group-toggle:hover,html[data-theme="dark"] .nav-group-toggle:focus-visible{background:#143346;color:#d6e9f3}
html[data-theme="dark"] .nav-item{color:#c3d3dc}
html[data-theme="dark"] .nav-item.active{background:linear-gradient(90deg,#153647,#102d3d);color:#f1f8fc}
html[data-theme="dark"] .dashboard-source-note{background:linear-gradient(90deg,#122b39,#0f2533);border-color:#2b4e61;color:#bfd5e1}

@media(max-width:1024px){
  .brand-row,.sidebar.collapsed .brand-row{
    height:72px;min-height:72px;display:grid;grid-template-columns:1fr;grid-template-rows:1fr;
    padding:0 12px 10px;justify-items:stretch;
  }
  .brand-row .brand-lockup,.sidebar.collapsed .brand-row .brand-lockup{grid-row:1;width:100%;height:48px}
  .brand-row .brand-picture,.sidebar.collapsed .brand-row .brand-picture{width:100%;height:48px;display:flex;justify-content:flex-start}
  .brand-row .brand-image,.sidebar.collapsed .brand-row .brand-image{display:block!important;width:146px;max-width:146px;height:46px;max-height:46px;object-fit:contain}
  html[data-theme="dark"] .brand-row .brand-image-light,html[data-theme="dark"] .sidebar.collapsed .brand-row .brand-image-light{display:none!important}
  html:not([data-theme="dark"]) .brand-row .brand-image-dark,html:not([data-theme="dark"]) .sidebar.collapsed .brand-row .brand-image-dark{display:none!important}
  .brand-row .brand-compact-icon,.sidebar.collapsed .brand-row .brand-compact-icon{display:none}
  .nav-group-toggle{min-height:40px;font-size:9.5px}
  .nav-item{min-height:46px;font-size:12.5px}
  body.sidebar-open .production-guard-banner{display:none}
  .content{padding:16px 16px 38px}
  .dashboard-kpi-grid,.kpi-grid,.project-plan-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(min-width:601px) and (max-width:820px){
  .content{padding:14px 12px calc(90px + env(safe-area-inset-bottom))}
  .dashboard-kpi-grid,.kpi-grid,.project-plan-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
  .kpi-card{min-height:120px;padding:14px}
  .kpi-value{font-size:20px}
}
@media(max-width:600px){
  .content{padding:12px 9px calc(90px + env(safe-area-inset-bottom))}
  .dashboard-kpi-grid,.kpi-grid,.project-plan-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .kpi-card{min-height:114px;padding:12px;border-radius:14px}
  .kpi-icon{width:35px;height:35px;border-radius:10px}
  .kpi-label{font-size:10px}
  .kpi-value{font-size:18px;margin-top:11px}
  .kpi-foot{font-size:9px}
  .dashboard-source-note{padding:11px 12px;font-size:10px}
  .login-card{padding:23px 18px}
}
@media(max-width:374px){
  .header-icon{width:40px;min-width:40px}
  .kpi-card{padding:10px;min-height:110px}
  .kpi-label{font-size:9px}.kpi-value{font-size:17px}.kpi-foot{font-size:8.5px}
}

/* v4.5.5 — unified dashboard rhythm and clearer left navigation */
:root{
  --ux-section-gap:18px;
  --sidebar:260px;
}
.content{display:flow-root}
.content>*+*{margin-top:var(--ux-section-gap)}
.content>.section{margin-top:var(--ux-section-gap)}
.content>.accounting-tabs{margin-bottom:0}
.tax-legal-note{border-color:#cbdfea;background:linear-gradient(90deg,#f0f7fa,#f8fbfd);color:#395767;line-height:1.55}

.sidebar{
  padding:12px 11px 10px;
  border-right-color:#d4e3eb;
  background:
    radial-gradient(circle at 30% -4%,rgba(19,184,212,.09),transparent 21%),
    linear-gradient(180deg,#fff 0%,#fbfdfe 68%,#f2f8fb 100%);
  box-shadow:10px 0 32px rgba(3,47,82,.055);
}
.nav{padding:10px 0 14px}
.nav-group{
  padding:3px;
  border:1px solid transparent;
  border-radius:13px;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.nav-group+.nav-group{margin-top:5px}
.nav-group.is-open{
  border-color:#dde9ef;
  background:rgba(255,255,255,.74);
  box-shadow:0 6px 18px rgba(4,47,85,.045);
}
.nav-group-toggle{
  min-height:39px;padding:8px 9px;color:#6a8495;border-radius:9px;
  justify-content:flex-start;font-size:9.5px;letter-spacing:.075em;
}
.nav-group-toggle>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.nav-group-toggle::before{
  content:"";width:7px;height:7px;flex:0 0 7px;border-radius:50%;
  background:#b9cbd5;box-shadow:0 0 0 4px rgba(185,203,213,.18);
}
.nav-group-toggle .nav-group-chevron{margin-left:auto;color:#8199a8}
.nav-group.is-open .nav-group-toggle{color:var(--alpha-navy-850,#123b58)}
.nav-group.is-open .nav-group-toggle::before{
  background:var(--alpha-cyan-500);box-shadow:0 0 0 4px rgba(19,184,212,.14);
}
.nav-group-items{gap:3px;padding:2px 2px 4px}
.nav-item{
  min-height:44px;padding:7px 9px;border-radius:10px;gap:10px;
  color:#3b5669;font-size:12.5px;font-weight:650;
}
.nav-item .nav-svg{
  width:30px;height:30px;padding:6px;flex:0 0 30px;border-radius:9px;
  color:#587286;background:#f0f6f9;transition:color .16s ease,background .16s ease,transform .16s ease;
}
.nav-item:hover{background:#eef5f9;color:var(--alpha-navy-900)}
.nav-item:hover .nav-svg{color:#176690;background:#dfeef6;transform:translateY(-1px)}
.nav-item.active{
  background:linear-gradient(90deg,#dfeff7 0%,#f3f9fc 100%);
  color:var(--alpha-navy-950);box-shadow:inset 3px 0 0 var(--alpha-cyan-500),0 5px 13px rgba(4,72,102,.07);
}
.nav-item.active .nav-svg{color:#fff;background:linear-gradient(145deg,#17638c,var(--alpha-cyan-500));box-shadow:0 5px 12px rgba(8,127,159,.2)}
.sidebar.collapsed .nav-group{padding:5px 0;border-left:0;border-right:0;border-radius:0;background:transparent;box-shadow:none}
.sidebar.collapsed .nav-item{width:50px;padding:7px 10px}
.sidebar.collapsed .nav-item .nav-svg{width:30px;height:30px;flex-basis:30px}

html[data-theme="dark"] .nav-group.is-open{border-color:#23495d;background:rgba(15,42,56,.7)}
html[data-theme="dark"] .nav-group-toggle::before{background:#526f7f;box-shadow:0 0 0 4px rgba(82,111,127,.18)}
html[data-theme="dark"] .nav-group.is-open .nav-group-toggle::before{background:#3e9fd4;box-shadow:0 0 0 4px rgba(54,198,220,.14)}
html[data-theme="dark"] .nav-item .nav-svg{color:#aabfca;background:#193442}
html[data-theme="dark"] .nav-item:hover .nav-svg{color:#74bce3;background:#1a3e51}
html[data-theme="dark"] .nav-item.active .nav-svg{color:#fff;background:linear-gradient(145deg,#17638c,#1f85bc)}
html[data-theme="dark"] .tax-legal-note{background:linear-gradient(90deg,#122b39,#0f2533);border-color:#2b4e61;color:#bfd5e1}

@media(max-width:1100px){
  :root{--sidebar:232px}
}
@media(max-width:1024px){
  :root{--ux-section-gap:16px}
  .nav-group{padding:3px}
}
@media(max-width:600px){
  :root{--ux-section-gap:12px}
  .content>.accounting-tabs{margin-bottom:0}
}


/* v4.5.6 — balanced tables, true circular chart markers and dark-mode contrast hardening */
:root{
  --ux-section-gap:20px;
  --table-primary-width:24%;
  --table-number-width:14%;
  --table-status-width:12%;
  --table-action-width:116px;
}

/* Remove hidden horizontal overflow inside KPI cards and keep long Vietnamese labels readable. */
.kpi-card,.kpi-top,.kpi-label,.kpi-value,.kpi-foot,.kpi-foot span{min-width:0;max-width:100%}
.kpi-label{overflow-wrap:anywhere}
.kpi-value{overflow:hidden;text-overflow:ellipsis}
.kpi-foot{
  display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;
  column-gap:6px;row-gap:2px;line-height:1.4;
}
.kpi-foot span{overflow-wrap:anywhere}

/* Chart keys are data points, therefore always circles; line series remain short lines. */
.legend-dot,.donut-row i{border-radius:50%!important}
.legend-dot{box-shadow:0 0 0 2px color-mix(in srgb,currentColor 10%,transparent)}
.donut-center{background:transparent!important;border-radius:50%}
html[data-theme="dark"] .donut::after{background:var(--surface)!important;border-radius:50%}
html[data-theme="dark"] .donut-center{background:transparent!important}

/* Balanced KPI rhythm: no sparse orphan rows at the target responsive widths. */
@media(min-width:1360px){
  .dashboard-kpi-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
  .project-plan-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .dashboard-kpi-grid .kpi-card,.project-plan-kpi-grid .kpi-card{padding:15px}
  .dashboard-kpi-grid .kpi-value,.project-plan-kpi-grid .kpi-value{font-size:21px}
}
@media(min-width:1025px) and (max-width:1359px){
  .dashboard-kpi-grid,.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .project-plan-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:601px) and (max-width:820px){
  .kpi-grid>.kpi-card:last-child:nth-child(3n+1),
  .dashboard-kpi-grid>.kpi-card:last-child:nth-child(3n+1),
  .project-plan-kpi-grid>.kpi-card:last-child:nth-child(3n+1){grid-column:1/-1}
  .kpi-grid>.kpi-card:last-child:nth-child(3n+2),
  .dashboard-kpi-grid>.kpi-card:last-child:nth-child(3n+2),
  .project-plan-kpi-grid>.kpi-card:last-child:nth-child(3n+2){grid-column:span 2}
}
@media(max-width:600px){
  .kpi-grid>.kpi-card:last-child:nth-child(odd),
  .dashboard-kpi-grid>.kpi-card:last-child:nth-child(odd),
  .project-plan-kpi-grid>.kpi-card:last-child:nth-child(odd){grid-column:1/-1}
}

/* Every table receives semantic column classes from enhanceResponsiveTables(). */
.table-wrap{border-radius:0 0 var(--ux-radius-lg,16px) var(--ux-radius-lg,16px)}
.balanced-table{width:100%;table-layout:auto}
.balanced-table th,.balanced-table td{line-height:1.42}
.balanced-table .table-col-primary{min-width:160px}
.balanced-table .table-col-numeric{min-width:116px;text-align:right;font-variant-numeric:tabular-nums}
.balanced-table .table-col-progress{min-width:138px}
.balanced-table .table-col-status{min-width:104px}
.balanced-table .table-col-actions{width:var(--table-action-width);min-width:var(--table-action-width);white-space:nowrap;text-align:right}
.balanced-table .table-col-actions .ghost-btn{min-height:34px;padding:6px 8px}
.balanced-table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--surface-3) 38%,var(--surface))}
.balanced-table tbody tr:hover td{background:color-mix(in srgb,var(--primary) 5%,var(--surface))!important}
.balanced-table td:empty::after{content:"—";color:var(--muted)}

@media(min-width:1025px){
  .balanced-table.table-fit{min-width:0!important;table-layout:fixed}
  .balanced-table.table-fit th,.balanced-table.table-fit td{white-space:normal;overflow-wrap:anywhere}
  .balanced-table.table-fit .table-col-primary{width:var(--table-primary-width);min-width:0}
  .balanced-table.table-fit .table-col-numeric{width:var(--table-number-width);min-width:0}
  .balanced-table.table-fit .table-col-progress{width:18%;min-width:0}
  .balanced-table.table-fit .table-col-status{width:var(--table-status-width);min-width:0}
  .balanced-table.table-fit .table-col-actions{width:var(--table-action-width);min-width:var(--table-action-width)}
}
@media(max-width:1024px){
  .balanced-table{min-width:var(--table-mobile-min,760px)!important}
}

/* Improved card and chart alignment. */
.grid>.card,.grid>.chart-card,.grid>.table-card{height:100%}
.chart-card{display:flex;flex-direction:column}
.chart-card>.combo-chart,.chart-card>.mini-line,.chart-card>.stacked-bars,.chart-card>.donut-layout{margin-top:auto;margin-bottom:auto}
.section-header{min-width:0}
.section-header>div{min-width:0}
.section-header h2,.section-header h3,.section-header p{overflow-wrap:anywhere}

/* Dark mode: remove fixed dark text and keep every operational label legible. */
html[data-theme="dark"] .nav-group.is-open .nav-group-toggle{color:#daebf4}
html[data-theme="dark"] .kpi-label,
html[data-theme="dark"] .kpi-value,
html[data-theme="dark"] .section-header h2,
html[data-theme="dark"] .section-header h3,
html[data-theme="dark"] .donut-center strong,
html[data-theme="dark"] .donut-row span:last-child,
html[data-theme="dark"] .activity strong,
html[data-theme="dark"] .alert-item h4,
html[data-theme="dark"] td>strong,
html[data-theme="dark"] .mini-stat strong,
html[data-theme="dark"] .status-chip strong{color:var(--text)!important}
html[data-theme="dark"] .chart-legend,
html[data-theme="dark"] .donut-row,
html[data-theme="dark"] .x-labels,
html[data-theme="dark"] .stacked-labels,
html[data-theme="dark"] .y-axis,
html[data-theme="dark"] .wf-col small,
html[data-theme="dark"] .wf-col b{color:var(--muted)!important}
html[data-theme="dark"] .kpi-icon{color:#7bbee2!important;background:#173646!important}
html[data-theme="dark"] .kpi-icon.green{color:#7de0a2!important;background:#153b2d!important}
html[data-theme="dark"] .kpi-icon.orange{color:#ffd078!important;background:#413317!important}
html[data-theme="dark"] .kpi-icon.purple{color:#c8b2ff!important;background:#2b2348!important}
html[data-theme="dark"] .kpi-icon.red{color:#ff9ca6!important;background:#42242b!important}
html[data-theme="dark"] .balanced-table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--surface-3) 58%,var(--surface))}
html[data-theme="dark"] .balanced-table tbody tr:hover td{background:color-mix(in srgb,#3095cb 8%,var(--surface))!important}
html[data-theme="dark"] .table-tools,
html[data-theme="dark"] .alert-item,
html[data-theme="dark"] .status-chip,
html[data-theme="dark"] .mini-stat{background:var(--surface-2)}

/* v4.5.6 — full cross-module dark-mode text audit */
.nav-group-chevron{color:#60798a}
.export-icon.cyan{color:#176690}

html[data-theme="dark"] .bridge-card{
  background:linear-gradient(180deg,var(--surface),var(--surface-2));
  border-color:var(--line);box-shadow:var(--shadow);
}
html[data-theme="dark"] .bridge-card strong,
html[data-theme="dark"] .aging-grid strong{color:var(--text)!important}
html[data-theme="dark"] .bridge-card span,
html[data-theme="dark"] .aging-grid span{color:var(--muted)!important}
html[data-theme="dark"] .bridge-card i{background:var(--line);color:transparent}

html[data-theme="dark"] .formula-list strong{color:#7fc1e4!important}
html[data-theme="dark"] .formula-list span{color:#b3c8d3!important}
html[data-theme="dark"] .formula-list>div{border-bottom-color:var(--line)}
html[data-theme="dark"] .control-warning,
html[data-theme="dark"] .cell-warning{color:#ffd078!important}
html[data-theme="dark"] .cell-danger,
html[data-theme="dark"] .bad-text{color:#ff9ca6!important}
html[data-theme="dark"] .good-text{color:#7de0a2!important}

html[data-theme="dark"] .export-summary strong,
html[data-theme="dark"] .export-panel h3,
html[data-theme="dark"] .export-report strong,
html[data-theme="dark"] .format-card strong,
html[data-theme="dark"] .template-btn strong,
html[data-theme="dark"] .export-preview h3,
html[data-theme="dark"] .import-box h3{color:var(--text)!important}
html[data-theme="dark"] .export-summary small,
html[data-theme="dark"] .export-summary p,
html[data-theme="dark"] .export-report small,
html[data-theme="dark"] .format-card small,
html[data-theme="dark"] .template-btn small,
html[data-theme="dark"] .export-preview p,
html[data-theme="dark"] .export-capabilities span{color:var(--muted)!important}
html[data-theme="dark"] .export-report,
html[data-theme="dark"] .format-card,
html[data-theme="dark"] .template-btn{color:var(--text);border-color:var(--line)}
html[data-theme="dark"] .export-capabilities,
html[data-theme="dark"] .export-capabilities>div{border-color:var(--line)}
html[data-theme="dark"] .format-card:hover,
html[data-theme="dark"] .export-report:hover,
html[data-theme="dark"] .template-btn:hover{background:var(--hover-bg)}

html[data-theme="dark"] .field label{color:#bed2dc}
html[data-theme="dark"] .algorithm-note{color:#b9ceda}

/* v4.5.6 — final contrast and navigation specificity pass */
.nav-group-toggle .nav-group-chevron{color:#60798a!important}
.export-icon.cyan{color:#176690!important}
html[data-theme="dark"] .nav-group-toggle .nav-group-chevron{color:#a1bdcd!important}
html[data-theme="dark"] .nav-item .nav-label{color:inherit!important}
html[data-theme="dark"] .nav-item.active .nav-label{color:#e9f4fa!important}
html[data-theme="dark"] .balanced-table td{color:var(--text)!important}
html[data-theme="dark"] .balanced-table td small,
html[data-theme="dark"] .balanced-table td .muted{color:var(--muted)!important}
html[data-theme="dark"] .export-icon.cyan{color:#7fc1e4!important}

/* v4.5.7 — workflow-first UI/UX, data-entry preview and operational table polish */
:root{
  --ux-section-gap:22px;
  --ux-focus-ring:0 0 0 3px rgba(19,184,212,.18);
  --ux-soft-cyan:#eff6fa;
  --ux-soft-navy:#f4f8fb;
}
body{
  background:
    radial-gradient(circle at 88% 8%,rgba(19,184,212,.055),transparent 24%),
    linear-gradient(180deg,#f7fafc 0%,#f2f7fa 100%);
}
.global-header{box-shadow:0 1px 0 rgba(4,47,85,.03)}
.page-toolbar{
  box-shadow:0 8px 24px rgba(4,47,85,.035);
  backdrop-filter:blur(18px) saturate(1.1);
}
.page-heading{min-width:260px}
.page-heading h1{letter-spacing:-.02em}
.page-icon{border:1px solid #d6e6ee;background:linear-gradient(145deg,#f5fafd,#e7f3f9)}
.toolbar-actions{flex-wrap:wrap;justify-content:flex-end}
.toolbar-button,.toolbar-select,.date-control{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.toolbar-button:focus-visible,.toolbar-select:focus-visible,.date-control:focus-within{border-color:var(--alpha-cyan-500);box-shadow:var(--ux-focus-ring);outline:0}
.primary-btn{background:linear-gradient(135deg,#17638c,#1e82b7);box-shadow:0 7px 18px rgba(8,127,159,.2)}
.primary-btn:hover{background:linear-gradient(135deg,#14577b,#1b75a5);transform:translateY(-1px)}

/* Dashboard information hierarchy: four core financial metrics first, three context metrics second. */
@media(min-width:1280px){
  .dashboard-kpi-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:15px}
  .dashboard-kpi-grid>.kpi-card:nth-child(-n+4){grid-column:span 3;min-height:152px;padding:18px}
  .dashboard-kpi-grid>.kpi-card:nth-child(n+5){grid-column:span 4;min-height:126px}
  .dashboard-kpi-grid>.kpi-card:nth-child(-n+4) .kpi-value{font-size:27px}
  .dashboard-kpi-grid>.kpi-card:nth-child(n+5) .kpi-value{font-size:22px}
  .project-plan-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}
.kpi-card{
  isolation:isolate;overflow:hidden;
  background:linear-gradient(145deg,var(--surface) 0%,color-mix(in srgb,var(--surface) 92%,#ebf4f9) 100%);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.kpi-card::before{
  content:"";position:absolute;inset:0 auto 0 0;width:3px;border-radius:16px 0 0 16px;
  background:var(--primary);opacity:.72;z-index:-1;
}
.kpi-card[data-kpi-tone="teal"]::before{background:var(--teal)}
.kpi-card[data-kpi-tone="green"]::before{background:var(--green)}
.kpi-card[data-kpi-tone="orange"]::before{background:var(--orange)}
.kpi-card[data-kpi-tone="purple"]::before{background:var(--purple)}
.kpi-card[data-kpi-tone="red"]::before{background:var(--red)}
.kpi-card.is-attention{border-color:color-mix(in srgb,var(--red) 28%,var(--line))}
.kpi-card.is-attention::after{
  content:"Cần chú ý";position:absolute;right:11px;top:10px;padding:3px 7px;border-radius:99px;
  background:color-mix(in srgb,var(--red) 10%,var(--surface));color:#b83245;font-size:8px;font-weight:850;letter-spacing:.035em;
}
.kpi-value{font-variant-numeric:tabular-nums}
.kpi-foot strong:empty{display:none}
.dashboard-source-note{border-left:4px solid var(--alpha-cyan-500);box-shadow:0 7px 20px rgba(4,47,85,.035)}

/* Cards and section rhythm. */
.card{border-color:color-mix(in srgb,var(--line) 90%,#bbd6e4)}
.section-header{align-items:center}
.section-header h2,.section-header h3{letter-spacing:-.012em}
.section-link{min-height:34px;padding:6px 9px;border-radius:8px;white-space:nowrap}
.section-link:hover{background:var(--ux-soft-cyan)}
.modern-hero,.control-hero,.security-hero{position:relative;overflow:hidden}
.modern-hero::after,.control-hero::after{
  content:"";position:absolute;right:-60px;bottom:-90px;width:240px;height:240px;border-radius:50%;
  border:34px solid rgba(255,255,255,.055);pointer-events:none;
}

/* Operational tables: count, sticky header, clear actions and scroll affordance. */
.table-card{overflow:visible}
.table-tools{
  min-height:58px;padding:10px 13px;gap:9px;align-items:center;
  border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--surface),var(--surface-2));
}
.table-count-badge{
  margin-left:auto;flex:none;padding:6px 9px;border:1px solid #d6e4ec;border-radius:99px;
  background:#f2f7fa;color:#446070;font-size:9.5px;font-weight:800;white-space:nowrap;
}
.table-scroll-hint{
  display:none;align-items:center;gap:6px;padding:7px 12px;border-bottom:1px solid var(--line);
  background:linear-gradient(90deg,#f3f9fc,#fbfdfe);color:#607b8b;font-size:9.5px;font-weight:700;
}
.table-scroll-hint span{width:20px;height:20px;display:grid;place-items:center;border-radius:7px;background:#e0eef5;color:#176690}
.table-wrap{position:relative;scrollbar-width:thin;scrollbar-color:#a2bfcf transparent}
.table-wrap.is-scrollable::after{
  content:"";position:sticky;right:0;float:right;width:24px;height:100%;margin-top:-100%;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(13,50,71,.08));opacity:1;transition:opacity .15s ease;
}
.table-wrap.is-scrollable.at-scroll-end::after{opacity:0}
.balanced-table thead{position:sticky;top:0;z-index:3}
.balanced-table thead th{
  background:color-mix(in srgb,var(--surface-2) 91%,#e0eef5);border-bottom:1px solid #d5e3ea;
  color:#496475;font-weight:850;letter-spacing:.035em;text-transform:uppercase;
}
.balanced-table tbody tr{transition:background .14s ease,box-shadow .14s ease}
.balanced-table tbody tr:hover{box-shadow:inset 3px 0 0 var(--alpha-cyan-500)}
.balanced-table td:first-child strong{color:var(--alpha-navy-900)}
.table-actions{display:flex!important;justify-content:flex-end;align-items:center;gap:5px}
.table-action-button{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:36px!important;
  border:1px solid transparent!important;border-radius:8px!important;white-space:nowrap;
}
.table-action-button .action-glyph{font-size:13px;line-height:1}
.table-action-button[data-action-kind="neutral"]{background:#f3f8fb;color:#335d73;border-color:#dde7ed!important}
.table-action-button[data-action-kind="confirm"]{background:#edf9f2;color:#187746;border-color:#d4eddd!important}
.table-action-button[data-action-kind="danger"]{background:#fff3f4;color:#b83245;border-color:#f3dade!important}
.table-action-button:hover{filter:brightness(.98);transform:translateY(-1px)}
.table-empty-row td{padding:0!important;background:var(--surface)!important}
.table-empty-state{min-height:190px;display:grid;place-items:center;align-content:center;gap:5px;color:var(--muted);text-align:center}
.table-empty-state>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#eff6f9;color:#1d709c;font-size:20px}
.table-empty-state strong{color:var(--text);font-size:12px}
.table-empty-state small{font-size:10px}

/* Data-entry modal: sectioning, live calculations and inline validation. */
.modal{width:min(940px,calc(100vw - 36px));max-height:min(92dvh,880px);overflow:hidden;border:1px solid #d0dfe7;box-shadow:0 30px 90px rgba(2,31,52,.25)}
.modal-header{
  position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 92%,#eff6f9));
}
.modal-header h2{font-size:19px;letter-spacing:-.02em}
.modal-header p{max-width:720px;line-height:1.5}
.modal-form{overflow:auto;padding:16px 18px 0}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 15px;align-items:start}
.form-section-label{
  display:flex;align-items:center;gap:9px;margin:5px 0 -2px;padding-top:7px;color:#244c61;
  font-size:10px;letter-spacing:.045em;text-transform:uppercase;
}
.form-section-label::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,#cbdde7,transparent)}
.form-section-label span{width:7px;height:7px;border-radius:50%;background:var(--alpha-cyan-500);box-shadow:0 0 0 4px rgba(19,184,212,.12)}
.form-live-summary{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:11px;
  border:1px solid #cee0e9;border-radius:14px;background:linear-gradient(135deg,#f0f7fa,#f9fcfd);
}
.form-live-summary[hidden]{display:none}
.form-live-summary>div{min-width:0;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.75);border:1px solid rgba(197,224,232,.8)}
.form-live-summary span,.form-live-summary small{display:block;color:#668190;font-size:9px;line-height:1.35}
.form-live-summary strong{display:block;margin:4px 0 2px;color:#073f63;font-size:14px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.form-feedback{
  display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border-radius:12px;border:1px solid #f0cdd2;background:#fff5f6;color:#9f2637;
}
.form-feedback.success{border-color:#cbe8d7;background:#f1faf5;color:#176a40}
.form-feedback>span{width:24px;height:24px;flex:none;display:grid;place-items:center;border-radius:8px;background:rgba(190,24,55,.09);font-weight:900}
.form-feedback strong{display:block;font-size:11px}.form-feedback p{margin:3px 0 0;font-size:10px;line-height:1.45}
.field{min-width:0}
.field label{display:flex;align-items:center;gap:4px;margin-bottom:6px;color:#405d6d;font-size:10.5px;font-weight:760}
.required-mark{color:#d5394d;font-size:12px}
.field input,.field select,.field textarea{
  width:100%;min-height:43px;border:1px solid #d0dde4;border-radius:10px;background:var(--surface);color:var(--text);
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.field textarea{min-height:88px;resize:vertical}
.field input[type="number"]{text-align:right;font-variant-numeric:tabular-nums}
.field input:hover,.field select:hover,.field textarea:hover{border-color:#aac5d3}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--alpha-cyan-500);box-shadow:var(--ux-focus-ring);background:#fcfeff}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#dc6070;box-shadow:0 0 0 3px rgba(220,96,112,.12)}
.project-input-note{border-radius:12px;border-left:4px solid var(--alpha-cyan-500);background:#f2f8fc;line-height:1.55}
.form-actions{
  position:sticky;bottom:0;z-index:4;display:flex;align-items:center;justify-content:flex-end;gap:9px;
  margin:4px -18px 0;padding:12px 18px max(12px,env(safe-area-inset-bottom));
  border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(16px);
}
.form-action-note{margin-right:auto;display:flex;align-items:center;gap:7px;color:#647f8e}
.form-action-note>span{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:#e7f7ed;color:#17804a;font-size:10px;font-weight:900}
.form-action-note small{max-width:330px;font-size:9.5px;line-height:1.35}
.form-actions .primary-btn,.form-actions .secondary-btn{min-width:112px}

/* Dark mode additions for v4.5.7. */
html[data-theme="dark"] body{background:radial-gradient(circle at 88% 8%,rgba(19,184,212,.05),transparent 24%),#0b1b26}
html[data-theme="dark"] .page-toolbar,html[data-theme="dark"] .global-header{box-shadow:0 8px 24px rgba(0,0,0,.12)}
html[data-theme="dark"] .page-icon{background:linear-gradient(145deg,#173444,#122b38);border-color:#2e4d5e}
html[data-theme="dark"] .kpi-card{background:linear-gradient(145deg,var(--surface),#102b39)}
html[data-theme="dark"] .kpi-card.is-attention::after{background:#42242b;color:#ff9ca6}
html[data-theme="dark"] .table-tools,html[data-theme="dark"] .balanced-table thead th{background:linear-gradient(180deg,#102b39,#0e2532);border-color:var(--line)}
html[data-theme="dark"] .table-count-badge{background:#163242;border-color:#2b4e61;color:#b8cfdb}
html[data-theme="dark"] .table-scroll-hint{background:linear-gradient(90deg,#122b39,#0e2532);color:#9fb7c4}
html[data-theme="dark"] .table-scroll-hint span{background:#1a3e51;color:#74bce3}
html[data-theme="dark"] .balanced-table td:first-child strong{color:#e5f2f9}
html[data-theme="dark"] .table-action-button[data-action-kind="neutral"]{background:#193442;color:#bbd1dd;border-color:#2b4858!important}
html[data-theme="dark"] .table-action-button[data-action-kind="confirm"]{background:#173d32;color:#7de0a2;border-color:#28533f!important}
html[data-theme="dark"] .table-action-button[data-action-kind="danger"]{background:#42242b;color:#ff9ca6;border-color:#60333d!important}
html[data-theme="dark"] .table-empty-state>span{background:#193746;color:#74bce3}
html[data-theme="dark"] .modal{border-color:#2d4959}
html[data-theme="dark"] .modal-header{background:linear-gradient(180deg,var(--surface),#102a38)}
html[data-theme="dark"] .form-section-label{color:#abcbdc}
html[data-theme="dark"] .form-section-label::after{background:linear-gradient(90deg,#345363,transparent)}
html[data-theme="dark"] .form-live-summary{background:linear-gradient(135deg,#122d3c,#0e2633);border-color:#2b4f62}
html[data-theme="dark"] .form-live-summary>div{background:rgba(12,35,47,.78);border-color:#2b4858}
html[data-theme="dark"] .form-live-summary strong{color:#e0f1fa}
html[data-theme="dark"] .form-live-summary span,html[data-theme="dark"] .form-live-summary small{color:#9db6c3}
html[data-theme="dark"] .form-feedback{background:#3d232a;border-color:#65323e;color:#ffb1ba}
html[data-theme="dark"] .form-feedback.success{background:#17382d;border-color:#28543f;color:#8ee7ae}
html[data-theme="dark"] .field input:focus,html[data-theme="dark"] .field select:focus,html[data-theme="dark"] .field textarea:focus{background:#132d3b}
html[data-theme="dark"] .project-input-note{background:#122d3c;border-color:#3e9fd4;color:#bad2df}
html[data-theme="dark"] .form-actions{background:rgba(13,35,47,.94)}

@media(max-width:1024px){
  .page-heading{min-width:0}
  .toolbar-actions{flex-wrap:nowrap}
  .table-scroll-hint{display:flex}
  .table-action-button{min-height:38px!important}
}
@media(max-width:700px){
  .form-grid{grid-template-columns:1fr;gap:11px}
  .form-live-summary{grid-template-columns:1fr 1fr}
  .form-live-summary>div:last-child:nth-child(odd){grid-column:1/-1}
  .form-action-note{display:none}
  .form-actions{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}
  .form-actions .primary-btn,.form-actions .secondary-btn{flex:1;min-width:0}
  .table-count-badge{order:3;width:100%;text-align:center;margin-left:0}
}
@media(max-width:430px){
  .dashboard-kpi-grid>.kpi-card:nth-child(n){grid-column:auto}
  .form-live-summary{grid-template-columns:1fr}
  .form-live-summary>div:last-child:nth-child(odd){grid-column:auto}
  .modal-header h2{font-size:17px}
  .modal-form{padding-top:12px}
  .table-action-button .action-glyph{font-size:14px}
}

/* v4.5.7 contrast closure after automated multi-viewport audit. */
.trend-flat{color:#a84708}
html[data-theme="dark"] .trend-flat{color:#fbbf24}
html[data-theme="dark"] .table-action-button[data-action-kind="neutral"]{background:rgb(23 53 68 / 1)!important}
html[data-theme="dark"] .table-action-button[data-action-kind="confirm"]{background:rgb(23 61 50 / 1)!important}
html[data-theme="dark"] .table-action-button[data-action-kind="danger"]{background:rgb(66 36 43 / 1)!important}
html[data-theme="dark"] .nav-item .nav-label{color:#abbfc9}
html[data-theme="dark"] .nav-item.active .nav-label{color:#f4f9fc}


/* v4.5.8 — compact KPI dashboard and conflict-free attention state. */
/* The decorative card pseudo-element previously shared ::after with the attention label.
   Disable it permanently; status is now a semantic child element. */
.kpi-card::after{
  content:none!important;display:none!important;width:0!important;height:0!important;
  inset:auto!important;background:none!important;border:0!important;
}
.kpi-status-badge{
  position:absolute;top:10px;right:10px;z-index:2;display:inline-flex;align-items:center;
  min-height:20px;padding:2px 7px;border:1px solid #efc8ce;border-radius:999px;
  background:#fff3f4;color:#ad2f42;font-size:8px;font-weight:850;letter-spacing:.025em;line-height:1;
  white-space:nowrap;box-shadow:0 2px 8px rgba(173,47,66,.06);
}
.kpi-card.is-attention .kpi-top{padding-right:68px}
.kpi-card{min-height:106px;padding:12px 13px;border-radius:14px}
.kpi-top{gap:8px;min-height:34px}
.kpi-icon{width:34px;height:34px;border-radius:10px;font-size:16px}
.kpi-label{font-size:10.5px;line-height:1.3}
.kpi-value{font-size:20px;line-height:1.1;margin-top:9px}
.kpi-unit{font-size:8.5px;margin-top:1px}
.kpi-foot{padding-top:6px;font-size:9px;line-height:1.3;gap:4px}

@media(min-width:1280px){
  .dashboard-kpi-grid{gap:12px}
  .dashboard-kpi-grid>.kpi-card:nth-child(-n+4){min-height:126px;padding:14px 15px}
  .dashboard-kpi-grid>.kpi-card:nth-child(n+5){min-height:108px;padding:12px 14px}
  .dashboard-kpi-grid>.kpi-card:nth-child(-n+4) .kpi-value{font-size:24px;margin-top:10px}
  .dashboard-kpi-grid>.kpi-card:nth-child(n+5) .kpi-value{font-size:20px;margin-top:8px}
  .project-plan-kpi-grid{gap:11px}
  .project-plan-kpi-grid>.kpi-card{min-height:104px;padding:11px 12px}
  .project-plan-kpi-grid .kpi-value{font-size:19px;margin-top:8px}
}
@media(max-width:1024px){
  .kpi-card{min-height:104px;padding:11px 12px}
  .kpi-value{font-size:19px}
}
@media(max-width:430px){
  .kpi-card{min-height:100px;padding:10px 11px}
  .kpi-card.is-attention .kpi-top{padding-right:0;padding-top:20px}
  .kpi-status-badge{top:8px;right:8px;min-height:18px;font-size:7.5px}
  .kpi-icon{width:32px;height:32px}
  .kpi-value{font-size:18px;margin-top:7px}
}
html[data-theme="dark"] .kpi-status-badge{
  background:#3d252c;border-color:#633641;color:#ff9eaa;box-shadow:none;
}

/* v4.5.9 — full-width operational tables, aligned actions and balanced finance layouts. */
:root{
  --ux-table-row-min:54px;
}
.planning-table-stack,.accounting-overview-tables{display:grid;gap:16px}
.cash-balance-grid,.crm-revenue-grid,.financial-equal-grid,.partner-balance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.content-fit-card,.export-log-card{height:auto!important;align-self:start}
.cash-transactions-card,.crm-pipeline-card,.tax-invoice-card{height:auto!important}
.table-actions{flex-wrap:nowrap!important;vertical-align:middle}
.table-actions .table-action-button{flex:0 0 auto}
.table-action-button{line-height:1;white-space:nowrap}
.balanced-table tbody tr{min-height:var(--ux-table-row-min)}
.balanced-table td{height:var(--ux-table-row-min)}
.balanced-table td.table-col-actions{padding-left:8px;padding-right:8px}
.tax-bridge-horizontal{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tax-bridge-horizontal>div{min-height:52px;align-items:center}
.mode-selector{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:4px 0 12px}
.mode-selector .mode-btn{width:100%;min-height:44px}
.mode-selector .mode-btn.active{border-color:var(--primary);box-shadow:0 0 0 3px rgba(11,115,246,.12);background:#eaf4ff;color:#075fae}
.mode-selector .primary-btn.active{background:var(--primary);color:#fff}
.automation-list .alert-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;min-height:68px}
.automation-list .alert-item .secondary-btn{min-width:92px;justify-self:end}
.export-log-card .table-wrap{overflow:visible}

@media(min-width:1025px){
  .balanced-table.table-fit-wide{min-width:0!important;width:100%!important;table-layout:fixed!important}
  .balanced-table.table-fit-wide th,.balanced-table.table-fit-wide td{white-space:normal;overflow-wrap:anywhere;word-break:normal}
  .balanced-table.table-fit-wide .table-col-actions{min-width:0!important;width:auto}

  .table-planning-budget th:nth-child(1),.table-planning-budget td:nth-child(1){width:28%}
  .table-planning-budget th:nth-child(2),.table-planning-budget td:nth-child(2){width:12%}
  .table-planning-budget th:nth-child(3),.table-planning-budget td:nth-child(3){width:12%}
  .table-planning-budget th:nth-child(4),.table-planning-budget td:nth-child(4){width:15%}
  .table-planning-budget th:nth-child(5),.table-planning-budget td:nth-child(5){width:13%}
  .table-planning-budget th:nth-child(6),.table-planning-budget td:nth-child(6){width:12%}
  .table-planning-budget th:nth-child(7),.table-planning-budget td:nth-child(7){width:8%}

  .table-planning-resource th:nth-child(1),.table-planning-resource td:nth-child(1){width:11%}
  .table-planning-resource th:nth-child(2),.table-planning-resource td:nth-child(2){width:26%}
  .table-planning-resource th:nth-child(3),.table-planning-resource td:nth-child(3){width:22%}
  .table-planning-resource th:nth-child(4),.table-planning-resource td:nth-child(4){width:10%}
  .table-planning-resource th:nth-child(5),.table-planning-resource td:nth-child(5){width:13%}
  .table-planning-resource th:nth-child(6),.table-planning-resource td:nth-child(6){width:13%}
  .table-planning-resource th:nth-child(7),.table-planning-resource td:nth-child(7){width:5%}

  .table-planning-commitments th:nth-child(1),.table-planning-commitments td:nth-child(1){width:18%}
  .table-planning-commitments th:nth-child(2),.table-planning-commitments td:nth-child(2){width:23%}
  .table-planning-commitments th:nth-child(3),.table-planning-commitments td:nth-child(3){width:10%}
  .table-planning-commitments th:nth-child(4),.table-planning-commitments td:nth-child(4),
  .table-planning-commitments th:nth-child(5),.table-planning-commitments td:nth-child(5),
  .table-planning-commitments th:nth-child(6),.table-planning-commitments td:nth-child(6){width:13%}
  .table-planning-commitments th:nth-child(7),.table-planning-commitments td:nth-child(7){width:7%}
  .table-planning-commitments th:nth-child(8),.table-planning-commitments td:nth-child(8){width:3%}

  .table-pipeline th:nth-child(1),.table-pipeline td:nth-child(1){width:12%}
  .table-pipeline th:nth-child(2),.table-pipeline td:nth-child(2){width:24%}
  .table-pipeline th:nth-child(3),.table-pipeline td:nth-child(3){width:20%}
  .table-pipeline th:nth-child(4),.table-pipeline td:nth-child(4){width:15%}
  .table-pipeline th:nth-child(5),.table-pipeline td:nth-child(5){width:10%}
  .table-pipeline th:nth-child(6),.table-pipeline td:nth-child(6){width:11%}
  .table-pipeline th:nth-child(7),.table-pipeline td:nth-child(7){width:8%}

  .table-finance-transactions th:nth-child(1),.table-finance-transactions td:nth-child(1){width:10%}
  .table-finance-transactions th:nth-child(2),.table-finance-transactions td:nth-child(2){width:9%}
  .table-finance-transactions th:nth-child(3),.table-finance-transactions td:nth-child(3){width:13%}
  .table-finance-transactions th:nth-child(4),.table-finance-transactions td:nth-child(4){width:15%}
  .table-finance-transactions th:nth-child(5),.table-finance-transactions td:nth-child(5){width:22%}
  .table-finance-transactions th:nth-child(6),.table-finance-transactions td:nth-child(6){width:13%}
  .table-finance-transactions th:nth-child(7),.table-finance-transactions td:nth-child(7){width:10%}
  .table-finance-transactions th:nth-child(8),.table-finance-transactions td:nth-child(8){width:8%}

  .table-trial-balance th:nth-child(1),.table-trial-balance td:nth-child(1){width:8%}
  .table-trial-balance th:nth-child(2),.table-trial-balance td:nth-child(2){width:22%}
  .table-trial-balance th:nth-child(n+3),.table-trial-balance td:nth-child(n+3){width:11.666%}

  .table-journals th:nth-child(1),.table-journals td:nth-child(1){width:11%}
  .table-journals th:nth-child(2),.table-journals td:nth-child(2){width:21%}
  .table-journals th:nth-child(3),.table-journals td:nth-child(3){width:14%}
  .table-journals th:nth-child(4),.table-journals td:nth-child(4){width:15%}
  .table-journals th:nth-child(5),.table-journals td:nth-child(5),
  .table-journals th:nth-child(6),.table-journals td:nth-child(6){width:11%}
  .table-journals th:nth-child(7),.table-journals td:nth-child(7){width:9%}
  .table-journals th:nth-child(8),.table-journals td:nth-child(8){width:8%}

  .table-tax-invoices th:nth-child(1),.table-tax-invoices td:nth-child(1){width:11%}
  .table-tax-invoices th:nth-child(2),.table-tax-invoices td:nth-child(2){width:7%}
  .table-tax-invoices th:nth-child(3),.table-tax-invoices td:nth-child(3){width:15%}
  .table-tax-invoices th:nth-child(4),.table-tax-invoices td:nth-child(4){width:19%}
  .table-tax-invoices th:nth-child(5),.table-tax-invoices td:nth-child(5){width:10%}
  .table-tax-invoices th:nth-child(6),.table-tax-invoices td:nth-child(6){width:7%}
  .table-tax-invoices th:nth-child(7),.table-tax-invoices td:nth-child(7){width:9%}
  .table-tax-invoices th:nth-child(8),.table-tax-invoices td:nth-child(8){width:9%}
  .table-tax-invoices th:nth-child(9),.table-tax-invoices td:nth-child(9){width:7%}
  .table-tax-invoices th:nth-child(10),.table-tax-invoices td:nth-child(10){width:6%}

  .table-financial-key-ratios th:nth-child(1),.table-financial-key-ratios td:nth-child(1){width:28%}
  .table-financial-key-ratios th:nth-child(2),.table-financial-key-ratios td:nth-child(2){width:14%}
  .table-financial-key-ratios th:nth-child(3),.table-financial-key-ratios td:nth-child(3){width:16%}
  .table-financial-key-ratios th:nth-child(4),.table-financial-key-ratios td:nth-child(4){width:42%}
  .table-financial-growth th:nth-child(1),.table-financial-growth td:nth-child(1){width:34%}
  .table-financial-growth th:nth-child(n+2),.table-financial-growth td:nth-child(n+2){width:22%}
  .table-financial-ratios th:nth-child(1),.table-financial-ratios td:nth-child(1){width:24%}
  .table-financial-ratios th:nth-child(2),.table-financial-ratios td:nth-child(2){width:12%}
  .table-financial-ratios th:nth-child(3),.table-financial-ratios td:nth-child(3){width:14%}
  .table-financial-ratios th:nth-child(4),.table-financial-ratios td:nth-child(4){width:25%}
  .table-financial-ratios th:nth-child(5),.table-financial-ratios td:nth-child(5){width:25%}

  .table-cloud-backups th:nth-child(1),.table-cloud-backups td:nth-child(1){width:22%}
  .table-cloud-backups th:nth-child(2),.table-cloud-backups td:nth-child(2){width:14%}
  .table-cloud-backups th:nth-child(3),.table-cloud-backups td:nth-child(3){width:16%}
  .table-cloud-backups th:nth-child(4),.table-cloud-backups td:nth-child(4){width:28%}
  .table-cloud-backups th:nth-child(5),.table-cloud-backups td:nth-child(5){width:20%}
  .table-cloud-backups .role-tag{white-space:nowrap}

  .table-export-log th:nth-child(1),.table-export-log td:nth-child(1){width:20%}
  .table-export-log th:nth-child(2),.table-export-log td:nth-child(2){width:20%}
  .table-export-log th:nth-child(3),.table-export-log td:nth-child(3){width:17%}
  .table-export-log th:nth-child(4),.table-export-log td:nth-child(4){width:12%}
  .table-export-log th:nth-child(5),.table-export-log td:nth-child(5){width:12%}
  .table-export-log th:nth-child(6),.table-export-log td:nth-child(6){width:19%}
}

@media(max-width:1024px){
  .cash-balance-grid,.crm-revenue-grid,.financial-equal-grid,.partner-balance-grid{grid-template-columns:1fr}
  .tax-bridge-horizontal{grid-template-columns:1fr}
  .mode-selector{grid-template-columns:repeat(2,minmax(0,1fr))}
  .automation-list .alert-item{grid-template-columns:34px minmax(0,1fr)}
  .automation-list .alert-item .secondary-btn{grid-column:1/-1;width:100%;justify-self:stretch}
}
@media(max-width:520px){
  .mode-selector{grid-template-columns:1fr}
}
html[data-theme="dark"] .mode-selector .mode-btn.active{background:#173444;color:#e0f1fa;border-color:#3e9fd4}
/* Keep action cells in the table formatting context; buttons align inside a dedicated flex group. */
.table-actions{display:table-cell!important;text-align:right!important;vertical-align:middle!important}
.table-action-group{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap;min-width:0}
.table-action-group .table-action-button{flex:0 0 auto}
@media(min-width:1025px){
  .balanced-table.table-planning-budget .table-col-actions,
  .balanced-table.table-planning-resource .table-col-actions,
  .balanced-table.table-planning-commitments .table-col-actions{width:56px!important;min-width:56px!important}
  .balanced-table.table-pipeline .table-col-actions,
  .balanced-table.table-finance-transactions .table-col-actions,
  .balanced-table.table-tax-invoices .table-col-actions{width:116px!important;min-width:116px!important}
  .balanced-table.table-journals .table-col-actions{width:164px!important;min-width:164px!important}
}
/* v4.5.9 mobile containment: fitted desktop tables must stay inside their cards on smaller viewports. */
.planning-table-stack>*,.accounting-overview-tables>*{min-width:0}
@media(max-width:1024px){
  .accounting-overview-tables .table-card,.planning-table-stack .table-card{width:100%;max-width:100%;min-width:0}
  .accounting-overview-tables .table-wrap,.planning-table-stack .table-wrap,.export-log-card .table-wrap{overflow-x:auto;max-width:100%}
}


/* v4.5.10 — separated operational tables, collision-free controls and usable locked actions. */
.people-completion-card{height:auto!important;min-height:360px}
.people-directory-card{height:auto!important;overflow:visible}
.people-directory-header{padding-bottom:12px}
.people-directory-card .table-tools{border-top:1px solid var(--line)}
.tax-control-stack,.journal-status-stack{display:grid;align-content:center;justify-items:start;gap:4px;min-width:0}
.tax-control-stack>span,.journal-status-stack>span{display:flex;align-items:center;gap:5px;min-width:0}
.tax-control-stack small,.journal-status-stack small{color:var(--muted);font-size:9px;line-height:1.25}
.table-lock-state{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:34px;padding:6px 8px;border:1px solid #dce5ea;border-radius:8px;background:#f4f7f9;color:#66808d;font-size:10px;font-weight:800;white-space:nowrap}
.readonly-form-grid input:disabled,.readonly-form-grid select:disabled,.readonly-form-grid textarea:disabled{opacity:1;color:var(--text);-webkit-text-fill-color:var(--text);background:var(--surface-2);cursor:default}
.readonly-journal-lines{pointer-events:none}
.cloud-deployment-grid{grid-template-columns:minmax(0,1.55fr) minmax(500px,.75fr)}
.backup-restore-card{min-width:0;height:auto!important}
.table-cloud-backups .role-tag{display:inline-flex;min-width:72px;justify-content:center;white-space:nowrap}
.table-cloud-backups .backup-size{display:inline-block;white-space:nowrap;font-variant-numeric:tabular-nums}
.table-cloud-backups th,.table-cloud-backups td{vertical-align:middle}
.table-cloud-backups .table-action-group{justify-content:flex-end}
@media(min-width:1025px){
  .table-people-directory th:nth-child(1),.table-people-directory td:nth-child(1){width:18%}
  .table-people-directory th:nth-child(2),.table-people-directory td:nth-child(2){width:13%}
  .table-people-directory th:nth-child(3),.table-people-directory td:nth-child(3){width:12%}
  .table-people-directory th:nth-child(4),.table-people-directory td:nth-child(4){width:8%}
  .table-people-directory th:nth-child(5),.table-people-directory td:nth-child(5),.table-people-directory th:nth-child(6),.table-people-directory td:nth-child(6),.table-people-directory th:nth-child(7),.table-people-directory td:nth-child(7){width:11%}
  .table-people-directory th:nth-child(8),.table-people-directory td:nth-child(8){width:7%}
  .table-people-directory th:nth-child(9),.table-people-directory td:nth-child(9){width:120px!important;min-width:120px!important}
  .table-tax-invoices th:nth-child(1),.table-tax-invoices td:nth-child(1){width:12%}
  .table-tax-invoices th:nth-child(2),.table-tax-invoices td:nth-child(2){width:7%}
  .table-tax-invoices th:nth-child(3),.table-tax-invoices td:nth-child(3){width:16%}
  .table-tax-invoices th:nth-child(4),.table-tax-invoices td:nth-child(4){width:19%}
  .table-tax-invoices th:nth-child(5),.table-tax-invoices td:nth-child(5){width:11%}
  .table-tax-invoices th:nth-child(6),.table-tax-invoices td:nth-child(6){width:7%}
  .table-tax-invoices th:nth-child(7),.table-tax-invoices td:nth-child(7){width:10%}
  .table-tax-invoices th:nth-child(8),.table-tax-invoices td:nth-child(8){width:10%}
  .table-tax-invoices th:nth-child(9),.table-tax-invoices td:nth-child(9){width:124px!important;min-width:124px!important}
  .table-journals th:nth-child(1),.table-journals td:nth-child(1){width:11%}
  .table-journals th:nth-child(2),.table-journals td:nth-child(2){width:22%}
  .table-journals th:nth-child(3),.table-journals td:nth-child(3){width:13%}
  .table-journals th:nth-child(4),.table-journals td:nth-child(4){width:14%}
  .table-journals th:nth-child(5),.table-journals td:nth-child(5),.table-journals th:nth-child(6),.table-journals td:nth-child(6){width:10%}
  .table-journals th:nth-child(7),.table-journals td:nth-child(7){width:10%}
  .table-journals th:nth-child(8),.table-journals td:nth-child(8){width:190px!important;min-width:190px!important}
  .table-journals .table-action-group{gap:6px}
  .table-cloud-backups th:nth-child(1),.table-cloud-backups td:nth-child(1){width:24%}
  .table-cloud-backups th:nth-child(2),.table-cloud-backups td:nth-child(2){width:20%}
  .table-cloud-backups th:nth-child(3),.table-cloud-backups td:nth-child(3){width:17%}
  .table-cloud-backups th:nth-child(4),.table-cloud-backups td:nth-child(4){width:23%}
  .table-cloud-backups th:nth-child(5),.table-cloud-backups td:nth-child(5){width:16%}
  .balanced-table.table-people-directory .table-col-actions{width:120px!important;min-width:120px!important}
  .balanced-table.table-tax-invoices .table-col-actions{width:124px!important;min-width:124px!important}
  .balanced-table.table-journals .table-col-actions{width:190px!important;min-width:190px!important}
}
@media(max-width:1280px){.cloud-deployment-grid{grid-template-columns:1fr}}
html[data-theme="dark"] .table-lock-state{background:#1a2f3b;border-color:#2b4553;color:#bcced7}


/* v4.5.11 — explicit edit/adjustment action and hard cell-content containment. */
.journal-action-cell .table-action-group{justify-content:flex-end;gap:8px}
.journal-action-cell .adjust-journal,.journal-action-cell .view-journal{min-width:64px;justify-content:center}
.table-tax-invoices td{min-width:0;overflow:hidden}
.table-tax-invoices .tax-vat-cell{white-space:nowrap;text-overflow:clip;padding-left:8px!important;padding-right:12px!important}
.table-tax-invoices .tax-control-cell{padding-left:12px!important;padding-right:10px!important}
.table-tax-invoices .tax-actions-cell{padding-left:10px!important;padding-right:12px!important;overflow:visible}
.tax-control-stack{width:100%;max-width:100%;overflow:hidden;gap:6px}
.tax-control-stack .tax-deduction-state,.tax-control-stack .tax-link-state{display:flex;align-items:center;gap:5px;max-width:100%;min-width:0;flex-wrap:wrap}
.tax-control-stack .badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.tax-control-stack .tax-link-state small{white-space:nowrap}
.tax-actions-cell .table-action-group{justify-content:flex-end;gap:6px;width:100%}
.tax-actions-cell .table-action-button{min-width:62px;justify-content:center}
.table-cloud-backups{table-layout:fixed!important;min-width:0!important;width:100%!important}
.table-cloud-backups td{min-width:0;overflow:hidden}
.table-cloud-backups .backup-type-cell{padding-right:14px!important}
.table-cloud-backups .backup-size-cell{padding-left:14px!important;border-left:1px solid var(--line);white-space:nowrap}
.table-cloud-backups .backup-type-pill{min-width:0!important;width:max-content;max-width:100%;justify-content:center;white-space:nowrap}
.table-cloud-backups .backup-size-chip{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;background:#f1f5f8;color:#40596a;font-size:9px;font-weight:800;white-space:nowrap}
.table-cloud-backups .backup-created-by{overflow-wrap:anywhere}
.table-cloud-backups .backup-actions-cell{overflow:visible;padding-left:10px!important}
@media(min-width:1025px){
  .table-tax-invoices th:nth-child(1),.table-tax-invoices td:nth-child(1){width:13.5%!important}
  .table-tax-invoices th:nth-child(2),.table-tax-invoices td:nth-child(2){width:6.5%!important}
  .table-tax-invoices th:nth-child(3),.table-tax-invoices td:nth-child(3){width:14%!important}
  .table-tax-invoices th:nth-child(4),.table-tax-invoices td:nth-child(4){width:16%!important}
  .table-tax-invoices th:nth-child(5),.table-tax-invoices td:nth-child(5){width:10.5%!important}
  .table-tax-invoices th:nth-child(6),.table-tax-invoices td:nth-child(6){width:6%!important}
  .table-tax-invoices th:nth-child(7),.table-tax-invoices td:nth-child(7){width:10.5%!important}
  .table-tax-invoices th:nth-child(8),.table-tax-invoices td:nth-child(8){width:11%!important}
  .table-tax-invoices th:nth-child(9),.table-tax-invoices td:nth-child(9){width:11.5%!important;min-width:0!important}
  .balanced-table.table-tax-invoices .table-col-actions{width:11.5%!important;min-width:0!important}
  .table-journals th:nth-child(8),.table-journals td:nth-child(8){width:160px!important;min-width:160px!important}
  .balanced-table.table-journals .table-col-actions{width:160px!important;min-width:160px!important}
  .table-cloud-backups th:nth-child(1),.table-cloud-backups td:nth-child(1){width:22%!important}
  .table-cloud-backups th:nth-child(2),.table-cloud-backups td:nth-child(2){width:18%!important}
  .table-cloud-backups th:nth-child(3),.table-cloud-backups td:nth-child(3){width:19%!important}
  .table-cloud-backups th:nth-child(4),.table-cloud-backups td:nth-child(4){width:24%!important}
  .table-cloud-backups th:nth-child(5),.table-cloud-backups td:nth-child(5){width:17%!important}
}
html[data-theme="dark"] .table-cloud-backups .backup-size-chip{background:#1a2f3b;color:#d0e1ea}


/* v4.5.12 — final UI closure: explicit journal-line meaning, balanced ledger columns,
   restored lock state and cloud-card overflow cleanup. */
.modal.modal-wide{width:min(1120px,calc(100vw - 36px))}
.modal-form[data-form-type="journalEntries"] .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px 14px}
.modal-form[data-form-type="journalEntries"] .field.full{grid-column:1/-1}
.modal-form[data-form-type="journalEntries"] .field textarea{min-height:66px}
.modal-form[data-form-type="journalEntries"] .journal-lines{margin-top:2px;overflow:visible;background:var(--surface)}
.journal-lines-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:12px 13px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f8fbfd,#f2f7fa)}
.journal-lines-title strong{display:block;color:var(--alpha-navy-900);font-size:12px}
.journal-lines-title small{display:block;max-width:660px;margin-top:3px;color:var(--muted);font-size:9.5px;line-height:1.45}
.journal-lines-header,.journal-line{grid-template-columns:minmax(220px,1.7fr) minmax(120px,.75fr) minmax(120px,.75fr) minmax(190px,1.35fr);gap:9px;padding:9px 11px}
.journal-lines-header{font-size:9.5px}
.journal-line{align-items:center}
.journal-line select,.journal-line input{min-height:39px;padding:8px 9px}
.journal-total{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px 18px;padding:10px 12px}
.journal-total-item{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:9.5px}
.journal-total-item strong{color:var(--text);font-size:10.5px;font-variant-numeric:tabular-nums}
.journal-total-balance{padding:5px 8px;border-radius:8px;background:#f2f6f8}
.journal-total-balance.is-balanced{background:#eaf8ef;color:#16833b}
.journal-total-balance.is-balanced strong{color:#16833b}
.journal-total-balance.is-unbalanced{background:#fff1f2;color:#b83245}
.journal-total-balance.is-unbalanced strong{color:#b83245}

.table-journals{table-layout:fixed!important;width:100%!important;min-width:0!important}
.table-journals .journal-col-date{width:9%}
.table-journals .journal-col-description{width:21%}
.table-journals .journal-col-partner{width:12%}
.table-journals .journal-col-project{width:13%}
.table-journals .journal-col-debit{width:9%}
.table-journals .journal-col-credit{width:9%}
.table-journals .journal-col-status{width:9%}
.table-journals .journal-col-actions{width:238px}
.table-journals th,.table-journals td{min-width:0!important;overflow-wrap:anywhere}
.table-journals th:nth-child(n),.table-journals td:nth-child(n){width:auto!important}
.balanced-table.table-journals .table-col-actions{width:238px!important;min-width:238px!important}
.journal-action-cell{padding-left:8px!important;padding-right:8px!important;overflow:visible!important}
.journal-action-cell .table-action-group{width:100%;justify-content:flex-end;gap:6px}
.journal-action-cell .journal-lock-indicator{flex:0 0 auto;min-width:86px;min-height:34px;padding:6px 8px}
.journal-action-cell .adjust-journal,.journal-action-cell .view-journal{min-width:58px!important;padding-left:8px!important;padding-right:8px!important}

.cloud-deployment-grid{grid-template-columns:minmax(0,1.45fr) minmax(480px,.9fr);gap:18px;align-items:start}
.deployment-config-card,.backup-restore-card{align-self:start;height:auto!important;min-height:0!important}
.deployment-config-card{overflow:hidden;padding-bottom:16px}
.deployment-config-card .inline-stats{margin-top:2px}
.deployment-security-note{margin-top:12px}
.deployment-actions{display:flex;justify-content:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.deployment-config-card>.form-actions:empty{display:none!important}

@media(max-width:1280px){
  .cloud-deployment-grid{grid-template-columns:1fr;gap:16px}
}
@media(max-width:900px){
  .modal-form[data-form-type="journalEntries"] .form-grid{grid-template-columns:1fr 1fr}
  .table-journals{min-width:1080px!important}
}
@media(max-width:700px){
  .modal.modal-wide{width:100%}
  .modal-form[data-form-type="journalEntries"] .form-grid{grid-template-columns:1fr}
  .journal-lines-title{display:grid}
  .journal-lines-header{display:none}
  .journal-line{grid-template-columns:1fr 1fr}
  .journal-line select,.journal-line input:last-child{grid-column:1/-1}
}
html[data-theme="dark"] .journal-lines-title{background:linear-gradient(180deg,#122b38,#102530)}
html[data-theme="dark"] .journal-lines-title strong{color:#e5f2f9}
html[data-theme="dark"] .journal-total-balance{background:#1a2f3b}


/* v4.5.17 — modal scroll containment and action visibility closure. */
body.modal-open{overflow:hidden}
.modal-backdrop{z-index:1400;overscroll-behavior:contain}
.modal{display:flex;flex-direction:column;min-height:0}
.modal-header{flex:0 0 auto;position:relative}
.modal-form{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;padding-bottom:0;touch-action:pan-y}
.modal-form>.form-grid{min-height:min-content}
.modal-form::-webkit-scrollbar{width:10px}
.modal-form::-webkit-scrollbar-track{background:transparent}
.modal-form::-webkit-scrollbar-thumb{background:#baccd5;border:3px solid transparent;border-radius:999px;background-clip:padding-box}
.modal-form::-webkit-scrollbar-thumb:hover{background:#90a9b7;border:3px solid transparent;background-clip:padding-box}
.toast{z-index:1500}
@media(max-width:700px){
  .modal{max-height:calc(100dvh - 8px)}
  .modal-form{padding-bottom:0}
}
html[data-theme="dark"] .modal-form::-webkit-scrollbar-thumb{background:#486473;border:3px solid transparent;background-clip:padding-box}
/* v4.5.17 account protection and MFA runtime visibility */
.account-security-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
.account-security-summary strong{font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.account-security-summary button:disabled{opacity:.68;cursor:not-allowed;background:var(--surface-2);color:var(--muted)}
@media(max-width:620px){.account-security-summary{grid-template-columns:1fr}}

/* v4.5.17 — deterministic dashboard fit and accessible mobile More navigation. */
.table-dashboard-projects{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
.table-dashboard-projects .dashboard-col-project{width:20%}
.table-dashboard-projects .dashboard-col-client{width:11%}
.table-dashboard-projects .dashboard-col-progress{width:17%}
.table-dashboard-projects .dashboard-col-contract{width:18%}
.table-dashboard-projects .dashboard-col-cost{width:18%}
.table-dashboard-projects .dashboard-col-status{width:16%}
.table-dashboard-projects th,.table-dashboard-projects td{
  box-sizing:border-box;
  padding-left:10px;
  padding-right:10px;
  min-width:0!important;
  max-width:100%;
  overflow:hidden;
  overflow-wrap:anywhere;
}
.table-dashboard-projects td.table-col-status .badge{max-width:100%;padding-left:6px;padding-right:6px;font-size:9px}
.dashboard-project-table-wrap{overflow-x:hidden!important;max-width:100%}

.sidebar .nav{flex:1 1 auto;min-height:0;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.sidebar .sidebar-footer{flex:0 0 auto}
@media(max-width:1024px){
  body.mobile-more-open #nav .nav-group-items{display:grid!important}
  body.mobile-more-open #nav{overflow-y:auto!important;overscroll-behavior-y:contain;padding-bottom:max(20px,env(safe-area-inset-bottom))}
  body.mobile-more-open #sidebar{overscroll-behavior:contain}
}


/* v4.5.17 — accounting management report and project P&L table fit. */
.accounting-report-grid{
  grid-template-columns:minmax(340px,.78fr) minmax(0,1.22fr);
  align-items:stretch;
  gap:16px;
}
.accounting-report-grid>.card{height:100%}
.accounting-management-result-wrap,
.accounting-project-profit-wrap{overflow-x:hidden}
.accounting-management-result-table,
.accounting-project-profit-table{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
}
.accounting-management-result-table .management-label-col{width:64%}
.accounting-management-result-table .management-value-col{width:36%}
.accounting-management-result-table td{padding-top:17px;padding-bottom:17px}
.accounting-management-result-table td.numeric{white-space:nowrap}
.accounting-project-profit-table .project-profit-project-col{width:27%}
.accounting-project-profit-table .project-profit-revenue-col{width:17%}
.accounting-project-profit-table .project-profit-cost-col{width:17%}
.accounting-project-profit-table .project-profit-wip-col{width:22%}
.accounting-project-profit-table .project-profit-profit-col{width:17%}
.accounting-project-profit-table th,
.accounting-project-profit-table td{
  min-width:0!important;
  padding-left:9px;
  padding-right:9px;
}
.accounting-project-profit-table th.numeric,
.accounting-project-profit-table td.numeric{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.accounting-project-profit-table td:first-child{
  overflow-wrap:anywhere;
}
@media(max-width:1280px){
  .accounting-report-grid{grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:14px}
  .accounting-project-profit-table th,.accounting-project-profit-table td{padding-left:7px;padding-right:7px;font-size:10px}
}
@media(max-width:1024px){
  .accounting-report-grid{grid-template-columns:1fr}
  .accounting-project-profit-wrap{overflow-x:auto}
  .accounting-project-profit-table{min-width:680px!important}
}


/* v4.5.18 — typography safety, tax runtime and automation actions */
.kpi-value{
  line-height:1.24!important;
  padding-bottom:.14em;
  margin-bottom:-.14em;
}
.kpi-label,.kpi-foot,.kpi-unit,.badge,.accounting-tab,.primary-btn,.secondary-btn,.ghost-btn,.danger-btn,.nav-item,th,td{
  text-rendering:geometricPrecision;
}
button,.badge,.accounting-tab,.primary-btn,.secondary-btn,.ghost-btn,.danger-btn{line-height:1.35}
.table-pit-withholdings,.table-cit-adjustments{table-layout:fixed;min-width:1120px}
.table-pit-withholdings th:nth-child(1){width:15%}.table-pit-withholdings th:nth-child(2){width:9%}.table-pit-withholdings th:nth-child(3){width:12%}.table-pit-withholdings th:nth-child(4),.table-pit-withholdings th:nth-child(5),.table-pit-withholdings th:nth-child(6){width:10%}.table-pit-withholdings th:nth-child(7){width:12%}.table-pit-withholdings th:nth-child(8){width:10%}.table-pit-withholdings th:nth-child(9){width:12%}
.table-cit-adjustments th:nth-child(1){width:9%}.table-cit-adjustments th:nth-child(2){width:11%}.table-cit-adjustments th:nth-child(3){width:12%}.table-cit-adjustments th:nth-child(4){width:22%}.table-cit-adjustments th:nth-child(5){width:11%}.table-cit-adjustments th:nth-child(6){width:10%}.table-cit-adjustments th:nth-child(7){width:9%}.table-cit-adjustments th:nth-child(8){width:8%}.table-cit-adjustments th:nth-child(9){width:8%}
.automation-list .alert-item{grid-template-columns:34px minmax(0,1fr) auto;align-items:center}
.automation-list .alert-item>.secondary-btn{min-width:92px;justify-self:end}
@media(max-width:640px){.automation-list .alert-item{grid-template-columns:34px minmax(0,1fr)}.automation-list .alert-item>.secondary-btn{grid-column:2;width:100%;justify-self:stretch}}


/* v4.5.19 — accessibility, focus and truthful integration controls. */
@media(max-width:1024px){
  .nav-group-toggle,.nav-item,.plain-icon,.header-icon,.icon-btn,.toolbar-button,.accounting-tab,.primary-btn,.secondary-btn,.ghost-btn,.danger-btn{min-height:44px}
  .plain-icon,.header-icon,.icon-btn{min-width:44px}
}
[data-theme="dark"] input:disabled,[data-theme="dark"] select:disabled,[data-theme="dark"] textarea:disabled{opacity:.72}
.modal :focus-visible,.right-drawer :focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 55%,transparent);outline-offset:2px}

/* v4.5.19 — enforce safe touch targets after all legacy component rules. */
@media(max-width:1024px){
  .skip-link,
  button.section-link,
  button.table-action-button,
  .control-tabs button,
  .metric-switch button,
  .procurement-tabs button,
  .export-tabs button,
  .accounting-tabs button,
  button.switch,
  #primaryAction{
    min-height:44px!important;
  }
  button.table-action-button,
  .icon-btn.table-action-button,
  #primaryAction{
    min-width:44px!important;
  }
  button.switch{
    min-width:48px!important;
    width:48px!important;
    flex:0 0 48px!important;
  }
}

/* v4.5.19 — final table fit, action heading, checkmark alignment and safe interaction targets. */
.action-glyph,.integrity-icon,.form-action-note>span,.table-action-button .action-glyph{
  display:inline-grid!important;place-items:center!important;line-height:1!important;vertical-align:middle!important;
  font-family:inherit!important;font-style:normal!important;text-align:center!important;flex:0 0 auto!important;
}
.action-glyph{width:14px;height:14px;margin-right:4px;font-size:11px;transform:none!important}
.integrity-icon{align-self:center;justify-self:center;font-size:16px;line-height:1}
.integrity-row{align-items:center!important}
.integrity-row>div{min-width:0}
.table-action-button,.ghost-btn,.icon-btn{align-items:center;justify-content:center}
.table-col-actions,.table-col-actions th{text-align:right}
th.table-col-actions{text-align:center!important;white-space:nowrap!important}
.table-actions{overflow:visible!important}
.table-action-group{max-width:100%;min-width:0;gap:6px!important}
.table-action-group .table-action-button{min-width:0;max-width:100%;white-space:nowrap}
.table-wrap.desktop-no-scroll{overflow-x:hidden!important;padding-bottom:0!important}
.table-wrap.desktop-no-scroll::after{display:none!important}
.table-wrap.desktop-no-scroll+.table-scroll-hint,.table-scroll-hint:has(+ .table-wrap.desktop-no-scroll){display:none!important}

@media(min-width:1280px){
  .desktop-fit-table,.table-fit-desktop{
    width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important;
  }
  .desktop-fit-table th,.desktop-fit-table td,.table-fit-desktop th,.table-fit-desktop td{
    min-width:0!important;max-width:none!important;white-space:normal!important;overflow-wrap:anywhere;word-break:normal;
    padding-left:8px!important;padding-right:8px!important;line-height:1.35;
  }
  .desktop-fit-table th,.table-fit-desktop th{font-size:9px}
  .desktop-fit-table td,.table-fit-desktop td{font-size:10.5px}
  .desktop-fit-table .numeric,.table-fit-desktop .numeric{white-space:nowrap!important;overflow-wrap:normal!important}
  .desktop-fit-table .table-col-actions,.table-fit-desktop .table-col-actions{width:126px!important;min-width:0!important}
  .desktop-fit-table .table-action-group,.table-fit-desktop .table-action-group{justify-content:flex-end;flex-wrap:nowrap}
  .desktop-fit-table .table-action-button,.table-fit-desktop .table-action-button{padding:6px 7px!important;font-size:10px!important}

  /* Project-control matrix: 12 columns, all visible without a horizontal scrollbar. */
  .control-table-v35.table-controls{min-width:0!important;width:100%!important;table-layout:fixed!important}
  .table-controls th,.table-controls td{padding:8px 6px!important;font-size:9.5px!important;line-height:1.3;white-space:normal!important;overflow-wrap:anywhere}
  .table-controls th:nth-child(1),.table-controls td:nth-child(1){width:12%}
  .table-controls th:nth-child(2),.table-controls td:nth-child(2){width:7%}
  .table-controls th:nth-child(3),.table-controls td:nth-child(3),
  .table-controls th:nth-child(4),.table-controls td:nth-child(4){width:6.5%}
  .table-controls th:nth-child(5),.table-controls td:nth-child(5){width:7%}
  .table-controls th:nth-child(6),.table-controls td:nth-child(6){width:6.5%}
  .table-controls th:nth-child(7),.table-controls td:nth-child(7){width:9.5%}
  .table-controls th:nth-child(8),.table-controls td:nth-child(8){width:10.5%}
  .table-controls th:nth-child(9),.table-controls td:nth-child(9),
  .table-controls th:nth-child(10),.table-controls td:nth-child(10){width:8.5%}
  .table-controls th:nth-child(11),.table-controls td:nth-child(11){width:6%}
  .table-controls th:nth-child(12),.table-controls td:nth-child(12){width:11%}
  .table-controls .progress{min-width:0;width:100%}
  .table-controls .control-warning{font-size:8px;line-height:1.25;margin-top:3px}
  .table-controls .badge,.table-controls .confidence{font-size:8px;padding:3px 5px}

  /* Contract list: keep all seven columns visible inside the half-width card. */
  .table-contracts{min-width:0!important;width:100%!important;table-layout:fixed!important}
  .table-contracts th,.table-contracts td{padding:8px 7px!important;font-size:10px;white-space:normal!important;overflow-wrap:anywhere}
  .table-contracts th:nth-child(1),.table-contracts td:nth-child(1){width:18%}
  .table-contracts th:nth-child(2),.table-contracts td:nth-child(2){width:20%}
  .table-contracts th:nth-child(3),.table-contracts td:nth-child(3){width:17%}
  .table-contracts th:nth-child(4),.table-contracts td:nth-child(4){width:8%}
  .table-contracts th:nth-child(5),.table-contracts td:nth-child(5){width:17%}
  .table-contracts th:nth-child(6),.table-contracts td:nth-child(6){width:12%}
  .table-contracts th:nth-child(7),.table-contracts td:nth-child(7){width:8%}
  .table-contracts td.actions{white-space:nowrap!important;text-align:center!important;padding-left:3px!important;padding-right:3px!important}
  .table-contracts .icon-btn{width:32px;height:32px;padding:0!important}
}

/* Touch targets and focus visibility for mobile/tablet. */
@media(max-width:1024px){
  button,.nav-item,.nav-group-toggle,.accounting-tab,.metric-switch button,.control-tabs button,
  .table-action-button,.section-link,.toolbar-button,.primary-btn,.secondary-btn,.danger-btn{min-height:44px}
  .icon-btn,.plain-icon,.header-icon{min-width:44px;min-height:44px}
}
.modal [data-focus-sentinel]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 55%,transparent)!important;outline-offset:2px!important}
@media(min-width:1280px){
  .table-controls th.numeric,.table-controls td.numeric,
  .table-dashboard-projects th.numeric,.table-dashboard-projects td.numeric,
  .table-contracts th.numeric,.table-contracts td.numeric{white-space:normal!important;overflow-wrap:anywhere!important}
  .table-controls .muted{white-space:normal!important;overflow-wrap:anywhere!important}
  .table-controls th{hyphens:auto}
  .table-tax-invoices th:nth-child(2),.table-tax-invoices td:nth-child(2){width:8%!important}
  .table-tax-invoices .badge{padding:3px 6px;font-size:8.5px}
}
@media(min-width:1280px) and (max-width:1350px){
  .table-journals td.numeric{font-size:10px!important;letter-spacing:-.01em}
  .table-tax-invoices th:nth-child(6),.table-tax-invoices td:nth-child(6){width:9%!important}
  .table-tax-invoices th:nth-child(4),.table-tax-invoices td:nth-child(4){width:15%!important}
}

/* v4.5.20 — global semantic column sizing and exact action-column alignment. */
th.table-col-actions,td.table-col-actions{
  text-align:center!important;
  vertical-align:middle!important;
}
td.table-col-actions .table-action-group{
  width:100%;
  justify-content:center!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
  margin-inline:auto;
}
th.table-col-actions{
  padding-left:6px!important;
  padding-right:6px!important;
}
td.table-col-actions{
  padding-left:6px!important;
  padding-right:6px!important;
  overflow:visible!important;
}
@media(min-width:1280px){
  table.table-auto-columns{
    width:var(--table-fitted-width,100%)!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
  }
  table.table-auto-columns th,
  table.table-auto-columns td{
    min-width:0!important;
    max-width:none!important;
    box-sizing:border-box!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
  }
  table.table-auto-columns th.table-col-numeric{
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    hyphens:auto;
  }
  table.table-auto-columns td.table-col-numeric{
    white-space:nowrap!important;
    overflow-wrap:normal!important;
    hyphens:none;
    font-size:clamp(9px,.72vw,10.5px)!important;
    letter-spacing:-.012em;
  }
  table.table-auto-columns th.table-col-status,
  table.table-auto-columns td.table-col-status{
    text-align:center!important;
  }
  table.table-auto-columns th.table-col-actions,
  table.table-auto-columns td.table-col-actions{
    white-space:nowrap!important;
    overflow-wrap:normal!important;
    hyphens:none;
  }
  table.table-auto-columns td.table-col-actions .table-action-button{
    flex:0 0 auto;
    max-width:112px;
  }
  .table-wrap:has(> table.table-auto-columns){
    overflow-x:hidden!important;
    padding-bottom:0!important;
  }
  .table-billing-milestones td,.table-billing-milestones th{padding-left:7px!important;padding-right:7px!important}
  .table-billing-milestones td.table-col-actions .icon-btn{width:36px!important;height:34px!important;min-width:36px!important;min-height:34px!important;padding:0!important}
}
@media(max-width:1279px){
  table.table-auto-columns{width:100%}
  td.table-col-actions .table-action-group{justify-content:flex-start!important}
}
@media(min-width:1280px){
  table.table-auto-columns td.table-col-actions,
  table.table-auto-columns th.table-col-actions{
    padding-left:6px!important;
    padding-right:6px!important;
  }
}
.table-cloud-backups td.backup-actions-cell.table-col-actions{
  padding-left:6px!important;
  padding-right:6px!important;
}

/* v4.5.21 restore legacy edit glyph for payment milestones */
.table-billing-milestones .legacy-edit-glyph{display:block;font-size:17px;line-height:1;font-weight:700;color:currentColor;transform:translateY(-1px)}

/* v4.5.23 — journal status centering and VAT column rhythm. */
@media(min-width:1280px){
  .table-journals th:nth-child(7),
  .table-journals td:nth-child(7){
    text-align:center!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .table-journals .journal-status-stack{
    width:100%;
    justify-items:center!important;
    align-content:center;
    text-align:center;
  }
  .table-journals .journal-status-stack>span{
    width:100%;
    justify-content:center!important;
  }
  .table-journals .journal-status-stack small{
    display:block;
    width:100%;
    text-align:center;
  }
  .table-tax-invoices th:nth-child(2),
  .table-tax-invoices td:nth-child(2){
    text-align:center!important;
    padding-left:7px!important;
    padding-right:7px!important;
  }
  .table-tax-invoices td:nth-child(2) .badge{
    display:inline-flex;
    justify-content:center;
    max-width:100%;
    white-space:nowrap;
  }
  .table-tax-invoices th:nth-child(8),
  .table-tax-invoices td:nth-child(8){
    padding-left:12px!important;
    padding-right:12px!important;
  }
  .table-tax-invoices .tax-control-stack{
    align-content:center;
    justify-items:start;
    overflow:visible;
  }
  .table-tax-invoices .tax-control-stack .badge{
    text-overflow:clip;
    white-space:nowrap;
  }
  .table-tax-invoices th:nth-child(9),
  .table-tax-invoices td:nth-child(9){
    padding-left:7px!important;
    padding-right:7px!important;
  }
}


/* v4.5.25 — full-value commercial controls and consistent desktop column breathing room. */
@media(min-width:1280px){
  table.table-auto-columns th,
  table.table-auto-columns td{
    padding-left:10px!important;
    padding-right:10px!important;
  }
  table.table-auto-columns.table-columns-2 th,
  table.table-auto-columns.table-columns-2 td,
  table.table-auto-columns.table-columns-3 th,
  table.table-auto-columns.table-columns-3 td,
  table.table-auto-columns.table-columns-4 th,
  table.table-auto-columns.table-columns-4 td,
  table.table-auto-columns.table-columns-5 th,
  table.table-auto-columns.table-columns-5 td,
  table.table-auto-columns.table-columns-6 th,
  table.table-auto-columns.table-columns-6 td,
  table.table-auto-columns.table-columns-7 th,
  table.table-auto-columns.table-columns-7 td,
  table.table-auto-columns.table-columns-8 th,
  table.table-auto-columns.table-columns-8 td{
    padding-left:12px!important;
    padding-right:12px!important;
  }
  .table-control-commercial{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }
  .table-control-commercial th,
  .table-control-commercial td{
    box-sizing:border-box!important;
    vertical-align:middle!important;
    line-height:1.38!important;
  }
  .table-control-commercial th{
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
  }
  .table-control-commercial td:nth-child(3),
  .table-control-commercial td:nth-child(4),
  .table-control-commercial td:nth-child(5),
  .table-control-commercial td:nth-child(6),
  .table-control-commercial td:nth-child(7){
    white-space:nowrap!important;
    overflow-wrap:normal!important;
    font-variant-numeric:tabular-nums;
  }
  .table-control-commercial th:nth-child(n+3):nth-child(-n+7),
  .table-control-commercial td:nth-child(n+3):nth-child(-n+7){
    border-left:1px solid color-mix(in srgb,var(--line) 72%,transparent);
  }
  .table-control-commercial th:nth-child(2),
  .table-control-commercial td:nth-child(2),
  .table-control-commercial th:nth-child(7),
  .table-control-commercial td:nth-child(7){text-align:center!important}
  .table-control-commercial td:nth-child(8){overflow-wrap:anywhere;word-break:normal}
}

/* v4.5.30 — remove subpixel desktop table spill and keep dense approval actions inside their column. */
@media(min-width:1280px){
  table.table-auto-columns{
    border-collapse:collapse!important;
  }
  table.table-auto-columns th.table-col-actions,
  table.table-auto-columns td.table-col-actions{
    padding-left:4px!important;
    padding-right:4px!important;
  }
  table.table-auto-columns td.table-col-actions .table-action-group{
    gap:4px!important;
  }
  table.table-auto-columns td.table-col-actions .table-action-button{
    padding-left:5px!important;
    padding-right:5px!important;
    gap:3px!important;
  }
}


/* v4.5.34 — requested UI fixes only: sidebar width, table filters and independent report rows. */
.app-shell.sidebar-is-collapsed{
  grid-template-columns:72px minmax(0,1fr);
}
.app-shell.sidebar-is-collapsed .main,
.sidebar.collapsed + .main{
  margin-left:0;
}
.chart-horizontal-scroll{
  min-width:0;
  flex:1 1 auto;
  height:100%;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
}
.chart-horizontal-scroll .plot{
  height:100%;
  flex:none;
}
.crm-revenue-grid{
  grid-template-columns:minmax(0,1.72fr) minmax(320px,.78fr);
  align-items:start;
}
.crm-revenue-grid>.card{
  height:auto;
  align-self:start;
}
.customer-label-chart{
  height:310px;
}
.customer-label-chart .bar-groups{
  bottom:78px;
}
.customer-label-chart .x-labels{
  bottom:7px;
  align-items:start;
  min-height:66px;
  font-size:9px;
  line-height:1.18;
}
.customer-label-chart .x-labels span{
  display:block;
  padding:0 5px;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
.commercial-contract-stack,
.payroll-detail-stack,
.accounting-report-stack{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:16px;
}
.commercial-contract-stack>.card,
.payroll-detail-stack>.card,
.accounting-report-stack>.card{
  height:auto;
  align-self:start;
}
.commercial-aging-card .aging-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
}
.payroll-horizontal-card{
  width:100%;
}
.staff-cost-card .staff-cost-table{
  max-height:none;
}
.accounting-report-stack .accounting-management-result-table .management-label-col{
  width:70%;
}
.accounting-report-stack .accounting-management-result-table .management-value-col{
  width:30%;
}
.auto-table-tools{
  border-top:1px solid var(--line);
}
.auto-table-tools .table-count-badge{
  margin-left:auto;
}
.quick-filter-empty-row[hidden],
tbody tr[hidden]{
  display:none!important;
}
.active-filter-note{
  padding:10px 13px;
  border:1px solid #d0e1eb;
  border-radius:10px;
  background:#f3f9fc;
  color:#244659;
  font-size:11px;
}
.filter-field-muted{
  display:none!important;
}
.usage-guide{
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface);
  padding:15px 16px;
}
.usage-guide-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.usage-guide-title>span{
  width:30px;
  height:30px;
  border-radius:9px;
  display:grid;
  place-items:center;
  background:var(--brand-soft,#eaf4ff);
  color:var(--brand,var(--primary));
  font-weight:800;
}
.usage-guide h2{
  margin:0;
  font-size:14px;
}
.usage-guide p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:10px;
}
.usage-guide ol{
  margin:12px 0 0;
  padding-left:22px;
  display:grid;
  gap:7px;
  color:var(--text);
  font-size:11px;
}
@media(max-width:1180px){
  .crm-revenue-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:760px){
  .commercial-aging-card .aging-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .customer-label-chart{
    height:300px;
  }
}


/* v4.5.34 — targeted corrections from annotated review. */
.sidebar.collapsed .nav{
  width:100%;
  overflow-x:hidden;
  scrollbar-width:none;
  padding-left:0;
  padding-right:0;
}
.sidebar.collapsed .nav::-webkit-scrollbar{display:none}
.sidebar.collapsed .nav-group-items{justify-items:center}
.sidebar.collapsed .nav-item{
  width:52px;
  max-width:52px;
  margin-left:auto;
  margin-right:auto;
  overflow:visible;
}
.sidebar.collapsed .nav-item .nav-svg{flex:none}
.toolbar-button.has-active-filter{
  border-color:var(--alpha-cyan-500);
  background:#e9f4fa;
  color:var(--alpha-navy-900);
  box-shadow:0 0 0 2px rgba(19,184,212,.10);
}
.crm-primary-stack{grid-template-columns:minmax(0,1fr);align-items:start}
.crm-primary-stack>.card{height:auto;min-height:340px}
.crm-revenue-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.crm-revenue-grid>.card{height:100%;min-height:430px}
.crm-revenue-grid .combo-chart{min-height:310px}
.people-specialty-chart{height:285px}
.people-specialty-chart .bar-groups{bottom:58px}
.people-specialty-chart .x-labels{
  bottom:5px;
  min-height:48px;
  align-items:start;
  font-size:9px;
  line-height:1.15;
}
.people-specialty-chart .x-labels span{
  padding:0 3px;
  white-space:normal;
  overflow-wrap:anywhere;
}
.people-completion-chart{height:270px}
.people-completion-chart .bar-groups{bottom:34px}
.people-completion-card .completion-month-summary{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:5px;
  margin-top:10px;
}
.completion-month-summary span{
  display:grid;
  gap:2px;
  min-width:0;
  padding:6px 4px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface-2);
  color:var(--muted);
  text-align:center;
  font-size:9px;
}
.completion-month-summary strong{color:var(--text);font-size:9px}
[data-local-table-filter] .table-count-badge{margin-left:auto}
.local-filter-empty-row[hidden]{display:none!important}
@media(max-width:1180px){
  .crm-revenue-grid{grid-template-columns:1fr}
  .crm-revenue-grid>.card{min-height:0}
}
@media(max-width:760px){
  .people-completion-card .completion-month-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* v4.5.38 — targeted table filters, CRM chart reflow and tax column balance. */
.crm-mix-stage-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
}
.crm-mix-stage-grid>.card{
  min-height:360px;
  height:100%;
}
.crm-mix-stage-grid .combo-chart{
  min-height:260px;
}
.crm-customer-revenue-grid{
  grid-template-columns:minmax(0,1fr);
}
.crm-customer-revenue-grid>.card{
  width:100%;
  min-height:455px;
}
.crm-customer-revenue-grid .customer-label-chart{
  min-height:340px;
}
.planning-resource-card>.table-tools,
.financial-forecast-table-card>.table-tools{
  border-top:1px solid var(--line);
}
.table-tools[data-local-table-filter="resourcePlansTable"] .filter-select,
.table-tools[data-local-table-filter="toolsTable"] .filter-select,
.table-tools[data-local-table-filter="toolAllocationScheduleTable"] .filter-select,
.table-tools[data-local-table-filter="financialForecastTable"] .filter-select{
  min-width:158px;
}

/* Tax filing widths follow the actual information density of each column. */
.table-tax-filings{
  width:100%!important;
  min-width:1040px!important;
  table-layout:fixed!important;
}
.table-tax-filings col.tax-filing-type-col{width:18%}
.table-tax-filings col.tax-filing-period-col{width:7%}
.table-tax-filings col.tax-filing-due-col{width:10%}
.table-tax-filings col.tax-filing-status-col{width:11%}
.table-tax-filings col.tax-filing-payable-col{width:12%}
.table-tax-filings col.tax-filing-payment-col{width:10%}
.table-tax-filings col.tax-filing-late-col{width:12%}
.table-tax-filings col.tax-filing-reference-col{width:12%}
.table-tax-filings col.tax-filing-actions-col{width:8%}
.table-tax-filings th,
.table-tax-filings td{
  box-sizing:border-box;
  vertical-align:middle;
}
.table-tax-filings th:nth-child(2),
.table-tax-filings td:nth-child(2),
.table-tax-filings th:nth-child(3),
.table-tax-filings td:nth-child(3),
.table-tax-filings th:nth-child(4),
.table-tax-filings td:nth-child(4),
.table-tax-filings th:nth-child(6),
.table-tax-filings td:nth-child(6){
  text-align:center;
}
.table-tax-filings td:nth-child(8){
  overflow-wrap:anywhere;
}
.table-tax-filings td:nth-child(9){
  overflow:visible;
}
.table-tax-filings td:nth-child(9) .table-action-group{
  justify-content:flex-end;
  flex-wrap:nowrap;
}

/* VAT invoice widths prioritize partner/content while retaining readable amounts and actions. */
.table-tax-invoices{
  width:100%!important;
  min-width:1120px!important;
  table-layout:fixed!important;
}
.table-tax-invoices col.tax-invoice-date-col{width:13%}
.table-tax-invoices col.tax-invoice-type-col{width:6%}
.table-tax-invoices col.tax-invoice-partner-col{width:16%}
.table-tax-invoices col.tax-invoice-content-col{width:19%}
.table-tax-invoices col.tax-invoice-base-col{width:11%}
.table-tax-invoices col.tax-invoice-rate-col{width:7%}
.table-tax-invoices col.tax-invoice-vat-col{width:10%}
.table-tax-invoices col.tax-invoice-control-col{width:10%}
.table-tax-invoices col.tax-invoice-actions-col{width:8%}
.table-tax-invoices th,
.table-tax-invoices td{
  box-sizing:border-box;
  vertical-align:middle;
}
.table-tax-invoices th:nth-child(1),.table-tax-invoices td:nth-child(1),
.table-tax-invoices th:nth-child(2),.table-tax-invoices td:nth-child(2),
.table-tax-invoices th:nth-child(3),.table-tax-invoices td:nth-child(3),
.table-tax-invoices th:nth-child(4),.table-tax-invoices td:nth-child(4),
.table-tax-invoices th:nth-child(5),.table-tax-invoices td:nth-child(5),
.table-tax-invoices th:nth-child(6),.table-tax-invoices td:nth-child(6),
.table-tax-invoices th:nth-child(7),.table-tax-invoices td:nth-child(7),
.table-tax-invoices th:nth-child(8),.table-tax-invoices td:nth-child(8),
.table-tax-invoices th:nth-child(9),.table-tax-invoices td:nth-child(9){
  width:auto!important;
  min-width:0!important;
}
.table-tax-invoices td:nth-child(3),
.table-tax-invoices td:nth-child(4){
  overflow-wrap:anywhere;
  word-break:normal;
}
.table-tax-invoices .tax-actions-cell{
  overflow:visible!important;
}
.table-tax-invoices .tax-actions-cell .table-action-group{
  justify-content:flex-end;
  flex-wrap:nowrap;
}

@media(max-width:1180px){
  .crm-mix-stage-grid{grid-template-columns:1fr}
  .crm-mix-stage-grid>.card{min-height:0}
  .crm-customer-revenue-grid>.card{min-height:0}
}

/* v4.5.38 statutory reporting integrity */
.statutory-company-header{display:grid;gap:4px;margin:0 0 14px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.statutory-company-header strong{font-size:15px;color:var(--text)}
.statutory-company-header span,.statutory-period{font-size:12px;color:var(--muted)}
.statutory-period{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 12px}
.stat-table td[data-note-ref],.stat-table th[data-note-ref]{white-space:nowrap;text-align:center}
@media(max-width:768px){.statutory-company-header{padding:12px}.statutory-period{display:grid;gap:4px}}
@media print{.statutory-company-header{border:0;padding:0}.statutory-period{color:#000}.stat-table{font-size:9pt}}

/* v4.5.38 — TT133 statutory form alignment */
.statutory-report-card{background:#fff}
.statutory-form-header{padding:18px 18px 8px;color:#111827;font-family:"Times New Roman",Times,serif}
.statutory-form-meta{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:24px;align-items:start}
.statutory-entity,.statutory-template{display:grid;gap:3px;line-height:1.25}
.statutory-entity strong,.statutory-template strong{font-size:15px;text-transform:uppercase}
.statutory-entity span,.statutory-template span{font-size:13px;color:#111827}
.statutory-template{text-align:center}
.statutory-official-title{text-align:center;margin:20px auto 10px;line-height:1.25}
.statutory-official-title h2{font-size:19px;margin:0;font-weight:700}
.statutory-official-title div{font-size:14px;font-weight:700;margin-top:3px}
.statutory-official-title p{font-size:14px;margin:5px 0 0;font-style:italic}
.statutory-unit{text-align:right;font-size:13px;font-style:italic;margin-top:6px}
.statutory-screen-summary{margin:0 16px 10px;padding:8px 10px;border-radius:8px;background:#f8fafc;color:var(--muted);font-size:11px}
.statutory-signatures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:24px 18px 42px;text-align:center;font-family:"Times New Roman",Times,serif;color:#111827}
.statutory-signatures>div{display:grid;gap:3px;align-content:start}
.statutory-signatures strong{font-size:14px}
.statutory-signatures span{font-size:13px;font-style:italic}
.statutory-signatures>div:last-child span:first-child{font-style:normal;margin-bottom:4px}
@media(max-width:768px){.statutory-form-meta{grid-template-columns:1fr}.statutory-template{text-align:left}.statutory-official-title{margin-top:14px}.statutory-signatures{grid-template-columns:1fr;gap:18px;padding-bottom:24px}.statutory-unit{text-align:left}}
@media print{.statutory-report-card{border:0!important;box-shadow:none!important;break-after:page}.statutory-form-header{padding:0 0 8px}.statutory-screen-summary{display:none!important}.statutory-signatures{padding-left:0;padding-right:0}.statutory-table th,.statutory-table td{font-family:"Times New Roman",Times,serif;color:#000;border-color:#000}.statutory-template span,.statutory-entity span{color:#000}}

.settings-link-note{grid-column:1/-1;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);font-size:12px;line-height:1.55;color:var(--text-muted)}
.settings-link-note strong{color:var(--text)}


/* v4.5.40 — tax-mode visibility, statutory template manager and count chart */
.cit-auto-only{display:contents}.cit-auto-only.is-hidden{display:none}
.statutory-template-manager-card{gap:14px}.template-current{display:grid;gap:4px;padding:14px;border:1px solid var(--border,#d7e1ea);border-radius:14px;background:var(--surface-soft,#f7fbfd)}
.template-current span,.template-current small{color:var(--muted,#64748b)}.template-current strong{font-size:15px;color:var(--text,#102a43)}
.template-import-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px 0 8px}.template-version-list{display:grid;gap:8px;margin-top:14px}
.template-version-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border:1px solid var(--border,#d7e1ea);border-radius:12px}.template-version-row>div:first-child{display:grid;gap:3px}.template-version-row small{display:block;color:var(--muted,#64748b)}
.people-specialty-chart .y-axis span{white-space:nowrap;font-variant-numeric:tabular-nums}.people-specialty-chart .bar{min-width:10px}
@media(max-width:820px){.template-version-row{align-items:flex-start;flex-direction:column}.template-import-actions>*{width:100%;justify-content:center}}


/* v4.5.41 — VAT table desktop fit and control-column readability closure. */
@media(min-width:1280px){
  .table-tax-invoices{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
  }
  .table-tax-invoices th:nth-child(8),
  .table-tax-invoices td:nth-child(8){
    min-width:132px!important;
    overflow:visible!important;
  }
  .table-tax-invoices th:nth-child(9),
  .table-tax-invoices td:nth-child(9){
    min-width:118px!important;
  }
  .table-tax-invoices .tax-control-stack{
    min-width:0;
    overflow:hidden;
  }
}
@media(max-width:1279px){
  .table-tax-invoices{min-width:1120px!important}
}

/* v4.5.43 — Payroll header layout refinement */
.payroll-detail-card{overflow:hidden}
.payroll-detail-heading{align-items:flex-start;gap:18px}
.payroll-period-status{display:flex;align-items:center;gap:10px;white-space:nowrap}
.payroll-period-status>span:last-child{font-size:12px;color:var(--muted,#64748b)}
.payroll-period-toolbar{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;padding:0 16px 14px}
.payroll-period-toolbar label{display:grid;gap:5px;min-width:170px;font-size:12px;font-weight:700;color:var(--muted,#64748b)}
.payroll-period-toolbar select{min-height:40px;border:1px solid var(--line,#d8e3ed);border-radius:10px;background:var(--card,#fff);color:var(--text,#0f2742);padding:0 12px}
.payroll-filter-tools{border-top:1px solid var(--line,#e2e8f0)}
.payroll-detail-wrap{max-width:100%;overflow:auto;scrollbar-gutter:stable;overscroll-behavior-inline:contain}
.payroll-detail-wrap:focus-visible{outline:2px solid var(--primary,#226b93);outline-offset:-2px}
.payroll-detail-table{width:3015px;min-width:3015px;table-layout:fixed}
.payroll-detail-table th,.payroll-detail-table td{white-space:nowrap;padding:11px 10px}
.payroll-detail-table thead th{height:62px;min-height:62px;padding:9px 8px;vertical-align:middle;font-size:10.5px;line-height:1.32;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:normal;overflow-wrap:normal;text-align:center!important}
.payroll-detail-table .payroll-header-label{display:flex;width:100%;min-width:0;min-height:42px;align-items:center;justify-content:center;text-align:center;white-space:normal;overflow:visible;word-break:normal;overflow-wrap:normal;hyphens:none}
.payroll-detail-table thead th:first-child .payroll-header-label,.payroll-detail-table thead th:nth-child(2) .payroll-header-label{justify-content:flex-start;text-align:left}
.payroll-detail-table th:last-child,.payroll-detail-table td:last-child{width:170px;min-width:170px;max-width:170px}
.payroll-detail-table col:nth-child(1){width:190px}.payroll-detail-table col:nth-child(2){width:130px}.payroll-detail-table col:nth-child(3){width:80px}.payroll-detail-table col:nth-child(4){width:110px}.payroll-detail-table col:nth-child(5){width:120px}.payroll-detail-table col:nth-child(6){width:95px}.payroll-detail-table col:nth-child(7){width:105px}.payroll-detail-table col:nth-child(8){width:135px}.payroll-detail-table col:nth-child(9){width:105px}.payroll-detail-table col:nth-child(10){width:105px}.payroll-detail-table col:nth-child(11){width:95px}.payroll-detail-table col:nth-child(12){width:115px}.payroll-detail-table col:nth-child(13){width:125px}.payroll-detail-table col:nth-child(14){width:135px}.payroll-detail-table col:nth-child(15){width:110px}.payroll-detail-table col:nth-child(16){width:100px}.payroll-detail-table col:nth-child(17){width:115px}.payroll-detail-table col:nth-child(18){width:125px}.payroll-detail-table col:nth-child(19){width:135px}.payroll-detail-table col:nth-child(20){width:140px}.payroll-detail-table col:nth-child(21){width:120px}.payroll-detail-table col:nth-child(22){width:135px}.payroll-detail-table col:nth-child(23){width:105px}.payroll-detail-table col:nth-child(24){width:115px}.payroll-detail-table col:nth-child(25){width:170px}
.payroll-actions-cell{overflow:visible!important}
.payroll-actions-cell .payroll-control-cell{width:100%;justify-content:center;flex-wrap:nowrap}
.payroll-detail-table .payroll-col-person{left:0;width:190px;min-width:190px;max-width:190px}
.payroll-detail-table .payroll-col-dept{left:190px;width:130px;min-width:130px;max-width:130px}
.payroll-sticky-col{position:sticky;z-index:2;background:var(--card,#fff);box-shadow:1px 0 0 var(--line,#e2e8f0)}
.payroll-detail-table thead .payroll-sticky-col{z-index:4;background:var(--table-head,#f4f8fb)}
.payroll-detail-table tbody tr:hover .payroll-sticky-col{background:var(--table-hover,#f7fbfd)}
.payroll-control-cell{display:flex;align-items:center;gap:6px}
.payroll-summary-strip{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:1px;background:var(--line,#e2e8f0);border-top:1px solid var(--line,#e2e8f0)}
.payroll-summary-strip span{display:grid;gap:3px;background:var(--card,#fff);padding:12px 14px}
.payroll-summary-strip small{color:var(--muted,#64748b);font-size:11px}
.payroll-summary-strip strong{font-size:14px;color:var(--text,#0f2742)}
.cell-warning{font-size:10px;color:#b45309;margin-top:3px}
.text-danger{color:#b91c1c!important}
[data-theme="dark"] .payroll-sticky-col{background:var(--card,#102338)}
[data-theme="dark"] .payroll-detail-table thead .payroll-sticky-col{background:var(--table-head,#162c42)}
@media(max-width:820px){
  .payroll-period-toolbar{display:grid;grid-template-columns:1fr 1fr}
  .payroll-period-toolbar label{grid-column:1/-1;min-width:0}
  .payroll-summary-strip{grid-template-columns:1fr 1fr}
  .payroll-summary-strip span:last-child{grid-column:1/-1}
  .payroll-detail-table .payroll-sticky-col{position:static;box-shadow:none}
  .payroll-detail-table thead th{height:66px;min-height:66px;font-size:11px}
}

/* v4.5.45 — exact global table column grid alignment */
.table-wrap{min-width:0}
.table-wrap>table.table-grid-exact{
  border-collapse:collapse!important;
  border-spacing:0!important;
}
.table-wrap>table.table-grid-exact th,
.table-wrap>table.table-grid-exact td{
  box-sizing:border-box!important;
  vertical-align:middle!important;
}
.table-wrap>table.table-grid-exact>thead>tr>th,
.table-wrap>table.table-grid-exact>tbody>tr>td,
.table-wrap>table.table-grid-exact>tfoot>tr>td,
.table-wrap>table.table-grid-exact>tfoot>tr>th{
  border-inline-end:1px solid color-mix(in srgb,var(--line,#d8e3ed) 62%,transparent);
}
.table-wrap>table.table-grid-exact>thead>tr>th:last-child,
.table-wrap>table.table-grid-exact>tbody>tr>td:last-child,
.table-wrap>table.table-grid-exact>tfoot>tr>td:last-child,
.table-wrap>table.table-grid-exact>tfoot>tr>th:last-child{
  border-inline-end:0;
}
.table-wrap>table.table-grid-exact th.table-col-primary,
.table-wrap>table.table-grid-exact td.table-col-primary,
.table-wrap>table.table-grid-exact th.table-col-text,
.table-wrap>table.table-grid-exact td.table-col-text{
  text-align:left!important;
}
.table-wrap>table.table-grid-exact th.table-col-numeric,
.table-wrap>table.table-grid-exact td.table-col-numeric{
  text-align:right!important;
  font-variant-numeric:tabular-nums;
}
.table-wrap>table.table-grid-exact th.table-col-status,
.table-wrap>table.table-grid-exact td.table-col-status,
.table-wrap>table.table-grid-exact th.table-col-progress,
.table-wrap>table.table-grid-exact td.table-col-progress,
.table-wrap>table.table-grid-exact th.table-col-actions,
.table-wrap>table.table-grid-exact td.table-col-actions{
  text-align:center!important;
}
.table-wrap>table.table-generated-grid{
  width:var(--table-grid-width,var(--table-fitted-width,100%))!important;
  min-width:var(--table-grid-width,var(--table-fitted-width,100%))!important;
  max-width:none!important;
  table-layout:fixed!important;
}
@media(min-width:1280px){
  .table-wrap>table.table-generated-grid[data-grid-contract="fitted"]{
    width:var(--table-grid-width,100%)!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .table-wrap.desktop-no-scroll>table.table-generated-grid[data-grid-contract="fitted"]{
    margin-inline:0!important;
  }
}
.table-wrap>table.table-authored-grid{
  table-layout:fixed!important;
}
.table-wrap>table.table-grid-exact thead th{
  background-clip:padding-box;
}
.table-wrap>table.table-grid-exact tbody tr>td[colspan]{
  text-align:left;
}
@media(max-width:1279px){
  .table-wrap>table.table-generated-grid{
    width:var(--table-grid-width,760px)!important;
    min-width:var(--table-grid-width,760px)!important;
  }
}
.table-dashboard-projects td:nth-child(3) small{
  display:block;
  white-space:normal!important;
  overflow-wrap:anywhere;
  line-height:1.25;
}

/* v4.5.45 — Annual bonus and travel fund budget */
.annual-benefit-section{display:grid;gap:18px}
.annual-benefit-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;background:linear-gradient(135deg,var(--card,#fff),var(--soft,#eef6fb));border:1px solid var(--line,#d8e3ed);border-radius:18px}
.annual-benefit-hero h2{margin:5px 0 7px;font-size:22px;line-height:1.25}
.annual-benefit-hero p{max-width:840px;margin:0;color:var(--muted,#64748b)}
.annual-benefit-toolbar{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;padding:0 16px 14px}
.annual-benefit-toolbar label{display:grid;gap:5px;min-width:160px;font-size:12px;font-weight:700;color:var(--muted,#64748b)}
.annual-benefit-toolbar select{min-height:40px;border:1px solid var(--line,#d8e3ed);border-radius:10px;background:var(--card,#fff);color:var(--text,#0f2742);padding:0 12px}
.annual-benefit-card{overflow:hidden}
.annual-benefit-heading{align-items:flex-start;gap:18px}
.annual-benefit-table-wrap{max-width:100%;overflow:auto;scrollbar-gutter:stable}
.annual-benefit-table{min-width:1290px;table-layout:fixed}
.annual-benefit-table th,.annual-benefit-table td{vertical-align:middle}
.annual-benefit-table th:nth-child(1){width:210px}.annual-benefit-table th:nth-child(2){width:145px}.annual-benefit-table th:nth-child(3){width:145px}.annual-benefit-table th:nth-child(4){width:120px}.annual-benefit-table th:nth-child(5){width:120px}.annual-benefit-table th:nth-child(6){width:115px}.annual-benefit-table th:nth-child(7){width:150px}.annual-benefit-table th:nth-child(8){width:155px}.annual-benefit-table th:nth-child(9){width:135px}
.annual-benefit-table tfoot td{background:var(--table-head,#f4f8fb);border-top:2px solid var(--line,#d8e3ed)}
.annual-benefit-breakdown{align-items:stretch}
.benefit-bridge{display:grid;gap:0;border:1px solid var(--line,#d8e3ed);border-radius:12px;overflow:hidden}
.benefit-bridge>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 13px;border-bottom:1px solid var(--line,#e2e8f0)}
.benefit-bridge>div:last-child{border-bottom:0}
.benefit-bridge span{color:var(--muted,#64748b)}
.benefit-bridge strong{text-align:right;color:var(--text,#0f2742)}
.benefit-limit-warning{background:rgba(239,68,68,.08)}
.benefit-limit-warning strong{color:var(--danger,#dc2626)}
@media(max-width:820px){.annual-benefit-hero{align-items:flex-start;flex-direction:column}.annual-benefit-toolbar{display:grid;grid-template-columns:1fr 1fr}.annual-benefit-toolbar label{grid-column:1/-1;min-width:0}.annual-benefit-toolbar button{width:100%}.annual-benefit-breakdown{grid-template-columns:1fr!important}}


/* v4.5.46 — sticky table headers, always-accessible horizontal navigation and workflow clarity */
.table-wrap table thead th,
.table-wrap>table.table-grid-exact thead th,
.payroll-detail-table thead th,
.payroll-detail-table thead th:first-child .payroll-header-label,
.payroll-detail-table thead th:nth-child(2) .payroll-header-label{
  text-align:center!important;
  justify-content:center!important;
  vertical-align:middle!important;
}
.table-wrap.table-scroll-frame{
  position:relative;
  max-height:clamp(360px,56dvh,680px);
  overflow:auto!important;
  scrollbar-gutter:stable both-edges;
  border-block:1px solid color-mix(in srgb,var(--line,#d8e3ed) 78%,transparent);
}
.table-wrap.table-scroll-frame table thead th{
  position:sticky!important;
  top:0!important;
  z-index:6!important;
  box-shadow:0 1px 0 var(--line,#d8e3ed),0 5px 12px rgba(15,39,66,.06);
}
.table-wrap.table-scroll-frame .payroll-sticky-col{z-index:7!important}
.table-scroll-top{
  width:100%;height:16px;overflow-x:auto;overflow-y:hidden;
  scrollbar-width:auto;scrollbar-color:#82aac0 #eaf2f6;
  background:var(--card,#fff);border-top:1px solid var(--line,#d8e3ed);
}
.table-scroll-top::-webkit-scrollbar{height:12px}.table-scroll-top::-webkit-scrollbar-track{background:#eaf2f6}.table-scroll-top::-webkit-scrollbar-thumb{background:#82aac0;border-radius:999px;border:2px solid #eaf2f6}
.table-scroll-top-spacer{height:1px;pointer-events:none}
.table-scroll-hint{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--soft,#f4f8fb);border-top:1px solid var(--line,#d8e3ed);color:var(--muted,#64748b);font-size:10px;font-weight:650}
.payroll-detail-table tbody td:nth-child(4),
.payroll-detail-table tbody td:nth-child(5){text-align:center!important;font-variant-numeric:tabular-nums}
.workflow-helper{margin:-7px 16px 11px;padding:8px 11px;border:1px solid var(--line,#d8e3ed);border-radius:9px;background:var(--soft,#f4f8fb);color:var(--muted,#64748b);font-size:11px;font-weight:650}
.workflow-action[aria-disabled="true"]{opacity:.58;filter:saturate(.72);cursor:help}
.workflow-action[aria-disabled="true"]:hover{opacity:.78;border-color:var(--primary,#226b93)}
@media(max-width:820px){.table-wrap.table-scroll-frame{max-height:58dvh;min-height:300px}.table-scroll-hint{font-size:9px}.workflow-helper{margin-left:10px;margin-right:10px}}
@media print{.table-scroll-top,.table-scroll-hint,.workflow-helper{display:none!important}.table-wrap.table-scroll-frame{max-height:none!important;overflow:visible!important;border:0}.table-wrap.table-scroll-frame table thead th{position:static!important;box-shadow:none}}

.table-wrap.is-scrollable::after{display:none!important}
/* v4.5.46 specificity closure: headings always centered after semantic column classification */
.table-wrap>table.table-grid-exact thead th,
.table-wrap>table.table-grid-exact thead th.table-col-text,
.table-wrap>table.table-grid-exact thead th.table-col-numeric,
.table-wrap>table.table-grid-exact thead th.table-col-status,
.table-wrap>table.table-grid-exact thead th.table-col-progress,
.table-wrap>table.table-grid-exact thead th.table-col-actions{
  text-align:center!important;
  justify-content:center!important;
  vertical-align:middle!important;
}
.table-wrap>table.table-grid-exact.payroll-detail-table tbody td:nth-child(4),
.table-wrap>table.table-grid-exact.payroll-detail-table tbody td:nth-child(5){
  text-align:center!important;
}
.table-wrap>table.table-grid-exact thead th.table-col-primary{
  text-align:center!important;
  justify-content:center!important;
}
/* Avoid reserved scrollbar gutters changing the measured table grid width. */
.table-wrap.table-scroll-frame{scrollbar-gutter:auto!important}

/* v4.5.48 — collapsed-sidebar table reflow and centered quantitative data. */
.app-shell.sidebar-is-collapsed,
.app-shell.sidebar-is-collapsed .main,
.app-shell.sidebar-is-collapsed .content,
.app-shell.sidebar-is-collapsed .table-card,
.app-shell.sidebar-is-collapsed .table-wrap{
  min-width:0;
  max-width:100%;
}
.app-shell.sidebar-is-collapsed .main,
.app-shell.sidebar-is-collapsed .content{
  width:100%;
}
.table-wrap>table.table-column-grid{
  margin-inline:0;
}
.balanced-table thead th,
.table-wrap table thead th{
  text-align:center!important;
  vertical-align:middle!important;
}
.balanced-table .table-col-numeric,
.balanced-table .table-col-date,
.balanced-table .table-col-progress,
.balanced-table .table-col-status,
.table-wrap table td.numeric,
.table-wrap table td[data-align="number"],
.table-wrap table td[data-align="date"]{
  text-align:center!important;
  vertical-align:middle!important;
  font-variant-numeric:tabular-nums;
}
.balanced-table .table-col-date{min-width:104px}
@media(min-width:1025px){
  .balanced-table.table-fit .table-col-date{width:var(--table-number-width);min-width:0}
}
@media(min-width:1280px){
  table.table-auto-columns td.table-col-numeric,
  table.table-auto-columns td.table-col-date,
  table.table-auto-columns td.table-col-progress,
  table.table-auto-columns td.table-col-status{
    text-align:center!important;
  }
  .table-controls td:nth-child(n+3):nth-child(-n+11),
  .table-dashboard-projects td.numeric,
  .table-contracts td.numeric,
  .table-contracts td:nth-child(n+3):nth-child(-n+8){
    text-align:center!important;
  }
}
/* v4.5.48 specificity closure: quantitative/date/status cells override legacy right alignment. */
.table-wrap>table.table-grid-exact td.table-col-numeric,
.table-wrap>table.table-grid-exact td.table-col-date,
.table-wrap>table.table-grid-exact td.table-col-progress,
.table-wrap>table.table-grid-exact td.table-col-status,
.table-wrap>table.table-grid-exact td.numeric{
  text-align:center!important;
  vertical-align:middle!important;
}
.table-wrap>table.table-grid-exact th.table-col-primary,
.table-wrap>table.table-grid-exact th.table-col-text,
.table-wrap>table.table-grid-exact th.table-col-numeric,
.table-wrap>table.table-grid-exact th.table-col-date,
.table-wrap>table.table-grid-exact th.table-col-progress,
.table-wrap>table.table-grid-exact th.table-col-status,
.table-wrap>table.table-grid-exact th.table-col-actions{
  text-align:center!important;
  vertical-align:middle!important;
}


/* v4.5.49 — bottom-only horizontal scrolling and taller project list viewport. */
.table-scroll-top,.table-scroll-hint{display:none!important}
.project-list-table-wrap.table-scroll-frame{
  max-height:clamp(500px,66dvh,780px);
}
.project-list-table-wrap.table-scroll-frame table{
  min-height:max-content;
}
@media(max-width:820px){
  .project-list-table-wrap.table-scroll-frame{max-height:62dvh;min-height:340px}
}
@media(max-height:760px) and (min-width:821px){
  .project-list-table-wrap.table-scroll-frame{max-height:calc(100dvh - 250px)}
}

/* v4.5.50 — enterprise table semantics, complete sticky payroll header and requested column alignment. */
.table-purchase-orders thead th,
.table-purchase-orders tbody td{
  vertical-align:middle!important;
}
.table-purchase-orders th:nth-child(1),
.table-purchase-orders td:nth-child(1){
  white-space:nowrap;
}
.table-purchase-orders th:nth-child(6),
.table-purchase-orders td:nth-child(6),
.table-purchase-orders th:nth-child(7),
.table-purchase-orders td:nth-child(7),
.table-purchase-orders th:nth-child(8),
.table-purchase-orders td:nth-child(8){
  text-align:center!important;
}
.table-purchase-orders td:nth-child(6),
.table-purchase-orders td:nth-child(8){
  font-variant-numeric:tabular-nums;
}

/* The body sticky identity cells must never cover the sticky header. */
.table-wrap.table-scroll-frame .payroll-detail-table thead th{
  position:sticky!important;
  top:0!important;
  z-index:20!important;
  background:var(--table-head,#f4f8fb)!important;
  background-clip:padding-box!important;
}
.table-wrap.table-scroll-frame .payroll-detail-table tbody .payroll-sticky-col{
  z-index:3!important;
}
.table-wrap.table-scroll-frame .payroll-detail-table thead .payroll-sticky-col{
  z-index:24!important;
  background:var(--table-head,#f4f8fb)!important;
}
[data-theme="dark"] .table-wrap.table-scroll-frame .payroll-detail-table thead th,
[data-theme="dark"] .table-wrap.table-scroll-frame .payroll-detail-table thead .payroll-sticky-col{
  background:var(--table-head,#162c42)!important;
}

/* Annual bonus headers use authored widths and wrap without clipping. */
.annual-benefit-table col:nth-child(1){width:210px}
.annual-benefit-table col:nth-child(2){width:145px}
.annual-benefit-table col:nth-child(3){width:145px}
.annual-benefit-table col:nth-child(4){width:126px}
.annual-benefit-table col:nth-child(5){width:126px}
.annual-benefit-table col:nth-child(6){width:122px}
.annual-benefit-table col:nth-child(7){width:154px}
.annual-benefit-table col:nth-child(8){width:162px}
.annual-benefit-table col:nth-child(9){width:138px}
.annual-benefit-table thead th{
  min-height:58px;
  height:58px;
  padding:9px 8px!important;
  text-align:center!important;
  vertical-align:middle!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:1.28;
  overflow-wrap:normal;
  word-break:normal;
}
.annual-benefit-table tbody td:nth-child(n+3):nth-child(-n+8),
.annual-benefit-table tfoot td:nth-child(n+3):nth-child(-n+8){
  text-align:center!important;
  font-variant-numeric:tabular-nums;
}

/* Center compact categorical and workflow values consistently. */
.table-wrap>table.table-grid-exact td.table-col-status,
.table-wrap>table.table-grid-exact th.table-col-status{
  text-align:center!important;
  vertical-align:middle!important;
}
.table-wrap>table.table-grid-exact td.table-col-status>.badge,
.table-wrap>table.table-grid-exact td.table-col-status>.table-action-group{
  margin-inline:auto;
}


/* v4.5.50 stacking-context closure and centered audit semantics. */
.table-wrap.table-scroll-frame .payroll-detail-table{
  isolation:isolate;
}
.table-wrap.table-scroll-frame .payroll-detail-table thead{
  position:sticky!important;
  top:0!important;
  z-index:90!important;
}
.table-wrap.table-scroll-frame .payroll-detail-table thead tr{
  position:relative!important;
  z-index:91!important;
}
.table-wrap.table-scroll-frame .payroll-detail-table tbody{
  position:relative!important;
  z-index:1!important;
}
.table-wrap.table-scroll-frame .payroll-detail-table thead th{
  z-index:92!important;
}
.table-wrap.table-scroll-frame .payroll-detail-table thead .payroll-sticky-col{
  z-index:100!important;
}
.table-wrap.table-scroll-frame .payroll-detail-table tbody .payroll-sticky-col{
  z-index:2!important;
}
.audit-action-cell{
  display:inline-flex;
  width:100%;
  align-items:center;
  justify-content:center;
  gap:7px;
  text-align:center;
}
.audit-action-cell .audit-dot{flex:0 0 auto}


/* v4.5.51 — global column-content centering across every operational table. */
#appShell .table-wrap table>thead>tr>th,
#appShell .table-wrap table>tbody>tr>td,
#appShell .table-wrap table>tfoot>tr>td{
  text-align:center!important;
  vertical-align:middle!important;
}
#appShell .table-wrap table>tbody>tr>td>*,
#appShell .table-wrap table>tfoot>tr>td>*{
  text-align:center;
}
#appShell .table-wrap table>tbody>tr>td>:where(div,span,label,a),
#appShell .table-wrap table>tfoot>tr>td>:where(div,span,label,a){
  justify-content:center!important;
  align-items:center;
}
#appShell .table-wrap table>tbody>tr>td :is(input,select,textarea,button),
#appShell .table-wrap table>tfoot>tr>td :is(input,select,textarea,button){
  text-align:center!important;
  text-align-last:center;
}
#appShell .table-wrap table>tbody>tr>td :is(.table-action-group,.audit-action-cell),
#appShell .table-wrap table>tfoot>tr>td :is(.table-action-group,.audit-action-cell){
  justify-content:center!important;
}
#appShell .table-wrap table>tbody>tr>td>:is(.badge,.role-tag,.status-badge,.table-action-group,.audit-action-cell,.progress),
#appShell .table-wrap table>tfoot>tr>td>:is(.badge,.role-tag,.status-badge,.table-action-group,.audit-action-cell,.progress){
  margin-inline:auto;
}

/* v4.5.52 — automatic payroll source indicators */
.cell-auto-source{margin-top:3px;font-size:10px;line-height:1.2;color:var(--muted);font-weight:650;white-space:nowrap;text-align:center}

/* v4.5.53 — explanatory charts, automatic tax calendar and manual effective-dated CIT. */
.chart-explained-card{gap:8px}
.chart-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 8px}
.chart-summary-strip>span{display:flex;min-width:0;flex-direction:column;gap:3px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--surface) 88%,#e8f4ff 12%)}
.chart-summary-strip small{color:var(--muted);font-size:10px;line-height:1.25}
.chart-summary-strip strong{font-size:14px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chart-explanation{margin-top:10px;padding:9px 11px;border:1px solid #cfe5f3;border-radius:10px;background:#f3faff;color:#475569;font-size:11px;line-height:1.5}
.chart-horizontal-scroll{flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:3px}
.chart-horizontal-scroll>.plot{height:100%}
.settings-wide-note{grid-column:1/-1;margin:0}
.tax-calendar-card{min-height:370px}
.tax-calendar-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.tax-calendar-list{display:grid;gap:7px}
.tax-calendar-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}
.tax-calendar-row.is-overdue{border-color:#fecaca;background:#fff7f7}
.tax-calendar-row.is-due-soon{border-color:#fde68a;background:#fffbeb}
.tax-calendar-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#e8f4ff;color:var(--primary);font-weight:800}
.tax-calendar-row>div{min-width:0}
.tax-calendar-row strong,.tax-calendar-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tax-calendar-row strong{font-size:11px}
.tax-calendar-row small{margin-top:3px;color:var(--muted);font-size:10px}
.tax-calendar-countdown{padding:5px 7px;border-radius:999px;background:#eef6ff;color:#14455f;font-size:10px;font-weight:800;white-space:nowrap}
.tax-calendar-countdown.is-due-soon{background:#fff3c4;color:#92400e}
.tax-calendar-countdown.is-overdue{background:#fee2e2;color:#b91c1c}
.tax-calendar-explanation{margin-top:auto}
html[data-theme="dark"] .chart-summary-strip>span{background:#132936}
html[data-theme="dark"] .chart-explanation{background:#112e3f;border-color:#2b4e61;color:#bbd6e5}
html[data-theme="dark"] .tax-calendar-row{background:#102632}
html[data-theme="dark"] .tax-calendar-row.is-overdue{background:#382027;border-color:#713642}
html[data-theme="dark"] .tax-calendar-row.is-due-soon{background:#352d18;border-color:#6e5a25}
html[data-theme="dark"] .tax-calendar-icon{background:#18394a;color:#8dcbec}
@media(max-width:1100px){.tax-calendar-card{min-height:0}.tax-calendar-row{grid-template-columns:34px minmax(0,1fr) auto}.tax-calendar-row .ghost-btn{grid-column:2/-1;justify-self:end}}
@media(max-width:820px){.chart-summary-strip{grid-template-columns:1fr}.tax-calendar-actions{justify-content:flex-start}.tax-calendar-row{grid-template-columns:32px minmax(0,1fr)}.tax-calendar-countdown{grid-column:2;justify-self:start}.tax-calendar-row .ghost-btn{grid-column:2;justify-self:start}}

/* v4.5.54 — compact executive dashboard, explicit timesheet approval and collapsed-sidebar clipping correction. */
.dashboard-context-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.dashboard-context-grid>.kpi-card:nth-child(1),
.dashboard-context-grid>.kpi-card:nth-child(2){grid-column:span 2}
.dashboard-context-grid>.kpi-card:nth-child(3){grid-column:span 3}
.dashboard-context-grid>.dashboard-source-card{grid-column:span 5}
.kpi-card--compact{
  min-height:112px;
  padding:13px 14px;
}
.kpi-card--compact .kpi-icon{width:32px;height:32px;border-radius:9px}
.kpi-card--compact .kpi-label{font-size:10.5px}
.kpi-card--compact .kpi-value{font-size:21px;margin-top:9px}
.kpi-card--compact .kpi-foot{padding-top:6px;font-size:9.5px}
.dashboard-source-card{
  margin:0;
  min-height:112px;
  display:flex;
  align-items:center;
  padding:14px 16px;
}
.dashboard-core-grid>.kpi-card{height:100%}
.timesheet-actions .table-action-group{justify-content:center;flex-wrap:nowrap}
.approve-timesheet{
  border-color:#a7e5c0;
  background:#ecfbf2;
  color:#16713a;
  font-weight:750;
}
.approve-timesheet:hover{background:#dff7e9;border-color:#78d79e}

/* The collapsed rail is 72px wide. Keep the active item fully inside it and avoid outward shadows. */
.sidebar.collapsed .nav{
  width:100%;
  padding-inline:4px;
  overflow-x:visible;
}
.sidebar.collapsed .nav-group-items{width:100%;justify-items:center}
.sidebar.collapsed .nav-item{
  width:48px;
  max-width:48px;
  min-height:46px;
  margin:1px auto;
  padding:7px;
  border:1px solid transparent;
  border-radius:12px;
  overflow:hidden;
  box-shadow:none;
}
.sidebar.collapsed .nav-item.active{
  border-color:#92c6e2;
  background:linear-gradient(90deg,#e5f2f9 0%,#f4f9fc 100%);
  box-shadow:inset 3px 0 0 var(--alpha-cyan-500);
}
.sidebar.collapsed .nav-item .nav-svg{width:30px;height:30px;flex:0 0 30px}

@media(max-width:1279px){
  .dashboard-context-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .dashboard-context-grid>.kpi-card:nth-child(1),
  .dashboard-context-grid>.kpi-card:nth-child(2),
  .dashboard-context-grid>.kpi-card:nth-child(3){grid-column:span 2}
  .dashboard-context-grid>.dashboard-source-card{grid-column:1/-1}
}
@media(max-width:760px){
  .dashboard-context-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .dashboard-context-grid>.kpi-card:nth-child(1),
  .dashboard-context-grid>.kpi-card:nth-child(2){grid-column:span 1}
  .dashboard-context-grid>.kpi-card:nth-child(3),
  .dashboard-context-grid>.dashboard-source-card{grid-column:1/-1}
}
@media(max-width:520px){
  .dashboard-context-grid{grid-template-columns:1fr}
  .dashboard-context-grid>.kpi-card:nth-child(n),
  .dashboard-context-grid>.dashboard-source-card{grid-column:1}
}


/* v4.5.55 — chart scale, compact KPI rows, document viewport and department structure */
.combo-chart{height:292px;gap:10px}
.chart-card{min-height:382px}
.chart-card.compact{min-height:335px}
.y-axis{width:54px;font-size:9.5px;padding-bottom:25px;white-space:nowrap}
.chart-horizontal-scroll{min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-gutter:stable}
.chart-horizontal-scroll>.plot{height:100%}
.plot{min-height:292px}
.bar-groups{inset:10px 8px 28px 9px;gap:8px}
.x-labels{bottom:4px;left:9px;right:8px;font-size:9.5px}
.line-svg{inset:10px 8px 28px 9px;width:calc(100% - 17px);height:calc(100% - 38px)}
.chart-unit-badge{margin-left:auto;padding:3px 7px;border-radius:999px;background:#f0f6ff;color:#315a86;font-weight:750;white-space:nowrap}
.tax-compliance-grid{grid-template-columns:minmax(350px,1.05fr) minmax(500px,1.4fr) minmax(330px,.95fr)}
.tax-compliance-grid .chart-card{min-height:500px}
.tax-compliance-grid .combo-chart{height:348px}
.tax-compliance-grid .plot{min-height:348px}
.tax-calendar-card{min-height:500px}
.compact-kpi-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.compact-kpi-row .kpi-card{min-height:102px;padding:10px 11px;border-radius:12px}
.compact-kpi-row .kpi-icon{width:31px;height:31px;font-size:15px}
.compact-kpi-row .kpi-label{font-size:10.5px}
.compact-kpi-row .kpi-value{font-size:19px;margin-top:8px}
.compact-kpi-row .kpi-foot{padding-top:5px;font-size:9px}
.documents-table-wrap{min-height:560px;max-height:calc(100dvh - 238px);overflow:auto;scrollbar-gutter:stable}
.documents-table-wrap .documents-table thead th{position:sticky;top:0;z-index:4;box-shadow:0 1px 0 var(--line)}
.department-structure-card{overflow:hidden}
.department-structure{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;align-items:start;min-height:260px}
.department-structure-summary{width:104px;aspect-ratio:1;border-radius:50%;border:0;display:grid;place-content:center;text-align:center;margin:12px auto 0;position:relative;isolation:isolate;overflow:hidden;background:var(--department-ring,#dceeff);box-shadow:0 0 0 1px rgba(6,47,85,.08),0 8px 20px rgba(6,47,85,.08)}
.department-structure-summary::before{content:"";position:absolute;inset:14px;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 1px rgba(6,47,85,.07);z-index:0}
.department-structure-summary strong{font-size:25px;line-height:1;position:relative;z-index:1}
.department-structure-summary span{font-size:9px;color:var(--muted);margin-top:4px;position:relative;z-index:1}
.department-structure-list{display:grid;gap:6px;max-height:270px;overflow:auto;padding-right:3px}
.department-structure-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--text);transition:background .16s ease,border-color .16s ease}
.department-structure-row>i{width:8px;height:32px;border-radius:99px;grid-row:1/3}
.department-structure-row>div strong{display:block;font-size:10.5px}
.department-structure-row>div small,.department-structure-row>small{font-size:8.5px;color:var(--muted)}
.department-structure-row>span{font-size:10px;font-weight:800;white-space:nowrap}
.department-structure-row>small{grid-column:2/4}
@media(max-width:1300px){.tax-compliance-grid{grid-template-columns:1fr 1fr}.tax-compliance-grid> :last-child{grid-column:1/-1}.compact-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.combo-chart{height:260px}.plot{min-height:260px}.tax-compliance-grid{grid-template-columns:1fr}.tax-compliance-grid> :last-child{grid-column:auto}.tax-calendar-card,.tax-compliance-grid .chart-card{min-height:0}.compact-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.documents-table-wrap{min-height:360px;max-height:62dvh}.department-structure{grid-template-columns:1fr}.department-structure-summary{width:90px}}
@media(max-width:520px){.compact-kpi-row{grid-template-columns:1fr}.y-axis{width:48px}.chart-unit-badge{width:100%;margin-left:0}.documents-table-wrap{min-height:320px}}

/* v4.5.55 desktop closure: compact metric groups must stay on one row. */
@media(min-width:1301px){
  .dashboard-kpi-grid.compact-kpi-row.control-kpi-row,
  .dashboard-kpi-grid.compact-kpi-row.financial-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
  .dashboard-kpi-grid.compact-kpi-row.planning-kpi-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
  .dashboard-kpi-grid.compact-kpi-row>.kpi-card:nth-child(n){grid-column:auto;min-height:106px;padding:10px 11px}
  .dashboard-kpi-grid.compact-kpi-row>.kpi-card:nth-child(n) .kpi-value{font-size:19px;margin-top:8px}
  .dashboard-kpi-grid.compact-kpi-row>.kpi-card:nth-child(n) .kpi-foot{font-size:9px;line-height:1.18;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
}


/* VERSION FINAL — release layout hardening */
.dashboard-source-note{grid-column:1/-1!important;min-height:auto!important;padding:12px 16px!important;display:block!important;line-height:1.5!important}
.dashboard-context-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.dashboard-context-grid>.kpi-card:nth-child(n){grid-column:auto!important}
.people-structure-final{grid-template-columns:minmax(0,1.35fr) minmax(420px,.9fr)!important}
.people-structure-final .department-structure-card{min-height:420px}
.payroll-plan-charts{grid-template-columns:minmax(0,2fr) minmax(360px,.9fr)!important}
.tax-compliance-grid{grid-template-columns:minmax(340px,.8fr) minmax(0,2.2fr)!important;align-items:stretch}
.tax-analysis-grid{grid-template-columns:minmax(0,1.55fr) minmax(340px,.85fr)!important;gap:12px}
.tax-analysis-grid>.chart-card{min-height:500px}
.chart-horizontal-scroll{overflow-x:auto}
@media(min-width:1180px){
  .dashboard-kpi-grid.compact-kpi-row.control-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .dashboard-kpi-grid.compact-kpi-row.planning-kpi-row{grid-template-columns:repeat(5,minmax(0,1fr))!important}
  .dashboard-kpi-grid.compact-kpi-row.financial-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .dashboard-kpi-grid.compact-kpi-row>.kpi-card:nth-child(n){grid-column:auto!important;min-width:0!important;min-height:96px!important;padding:9px 10px!important}
  .dashboard-kpi-grid.compact-kpi-row .kpi-value{font-size:18px!important}
}
@media(max-width:1179px){.tax-compliance-grid,.tax-analysis-grid,.people-structure-final,.payroll-plan-charts{grid-template-columns:1fr!important}.dashboard-context-grid{grid-template-columns:1fr!important}}


/* v4.5.60 QA verified export-gate hardened release — clean product footer and stacked tax analysis. */
.sidebar-product small{display:inline!important}
.tax-analysis-grid{grid-template-columns:minmax(0,1fr)!important;gap:12px;align-content:start}
.tax-analysis-grid>.chart-card{min-height:0!important}
.tax-structure-card{min-height:250px!important}
.tax-structure-card .donut-layout{grid-template-columns:minmax(180px,.58fr) minmax(300px,1.42fr);min-height:168px;gap:28px}
.tax-structure-card .donut{width:148px}
.tax-structure-card .donut-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px}
.tax-monthly-card{min-height:500px!important}
.tax-monthly-card .combo-chart{height:370px}
.tax-monthly-card .plot{min-height:370px}
@media(max-width:1179px){
  .tax-structure-card .donut-layout{grid-template-columns:minmax(150px,.65fr) minmax(240px,1.35fr)}
  .tax-monthly-card{min-height:430px!important}
  .tax-monthly-card .combo-chart{height:310px}
  .tax-monthly-card .plot{min-height:310px}
}
@media(max-width:700px){
  .tax-structure-card .donut-layout{grid-template-columns:1fr;gap:12px}
  .tax-structure-card .donut-list{grid-template-columns:1fr}
  .tax-monthly-card{min-height:360px!important}
  .tax-monthly-card .combo-chart{height:260px}
  .tax-monthly-card .plot{min-height:260px}
}

/* v4.5.68 — Thùng rác, khôi phục đúng phân hệ và dọn dữ liệu sau 30 ngày. */
.trash-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.trash-card{min-height:420px}
.trash-header{align-items:flex-start;gap:16px}
.trash-header>.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.trash-tools{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,240px) auto;gap:9px}
.table-search{height:40px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:0 11px;color:var(--muted)}
.table-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font:inherit}
.trash-tools select{height:40px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);padding:0 10px}
.record-count{justify-self:end;align-self:center;padding:5px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:10px;font-weight:780;white-space:nowrap}
.table-trash{min-width:980px}
.table-trash th:nth-child(1){width:27%}.table-trash th:nth-child(2){width:18%}.table-trash th:nth-child(3){width:20%}.table-trash th:nth-child(4){width:15%}.table-trash th:nth-child(5){width:20%}
.trash-source-badge{display:inline-flex;padding:5px 8px;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--primary) 7%,var(--surface));color:var(--primary);font-size:9px;font-weight:800}
.trash-expired{color:#b42318}
.trash-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end;white-space:nowrap}
.ghost-btn.danger{color:#b42318;border-color:#f2c6c2;background:#fff8f7}
.ghost-btn.danger:hover{background:#fff0ee}
.trash-card .empty-state p{margin:6px 0 0;color:var(--muted)}
html[data-theme="dark"] .ghost-btn.danger{background:#321f22;border-color:#6d3b40;color:#ffb4ab}
html[data-theme="dark"] .trash-source-badge{background:#122d3b;border-color:#2b5368;color:#8ac6e6}
@media(max-width:1000px){.trash-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.trash-header{flex-direction:column}.trash-header>.actions{justify-content:flex-start}}
@media(max-width:700px){.trash-kpis{grid-template-columns:1fr}.trash-tools{grid-template-columns:1fr}.record-count{justify-self:start}.trash-header>.actions{width:100%}.trash-header>.actions button{width:100%}}

/* v4.5.68 — Supabase sync diagnostics */
.sync-diagnostic-output{white-space:pre-wrap;overflow:auto;max-height:22rem;margin-top:12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.55}


/* v4.5.69 — iPad responsive hardening (portrait and landscape). */
@media (min-width:1025px) and (max-width:1300px){
  .global-header{gap:10px;padding-left:14px;padding-right:14px}
  .header-left{flex:1 1 auto;min-width:0}
  .global-search-wrap{width:min(430px,44vw);min-width:210px;max-width:100%}
  .header-actions{flex:0 0 auto;min-width:0;gap:4px}
  .profile-copy{display:none!important}
  .profile-button{flex:0 0 auto;max-width:62px;min-width:54px;padding:3px 5px;gap:4px;overflow:hidden;white-space:nowrap}
  .profile-button .avatar{flex:0 0 auto}
  .modern-hero,.control-hero{gap:18px;padding:24px}
  .modern-hero>div:first-child,.control-hero>div:first-child{min-width:0}
  .modern-hero h2,.control-hero h2{font-size:24px}
  .modern-hero p,.control-hero p{max-width:none}
  .hero-metric,.control-score{flex:0 0 180px;min-width:0;padding:16px 18px;display:flex;flex-direction:column;justify-content:center}
  .dashboard-kpi-grid.compact-kpi-row.control-kpi-row,
  .dashboard-kpi-grid.compact-kpi-row.financial-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px}
  .dashboard-kpi-grid.compact-kpi-row.planning-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px}
  .dashboard-kpi-grid.compact-kpi-row>.kpi-card:nth-child(n){grid-column:auto!important;min-width:0!important;min-height:118px!important;padding:12px 13px!important}
  .dashboard-kpi-grid.compact-kpi-row .kpi-label{font-size:11px!important;line-height:1.35!important;word-break:normal!important;overflow-wrap:break-word!important;hyphens:auto}
  .dashboard-kpi-grid.compact-kpi-row .kpi-value{font-size:20px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
  .dashboard-kpi-grid.compact-kpi-row .kpi-foot{font-size:9.5px!important;line-height:1.3!important}
}

@media (min-width:821px) and (max-width:1100px){
  .header-actions .sync-pill span{display:none}
  .sync-pill{width:42px;min-width:42px;padding:0;justify-content:center}
  .header-icon{width:40px;min-width:40px}
}

@media (min-width:821px) and (max-width:1024px){
  .modern-hero,.control-hero{align-items:stretch;gap:14px;padding:22px}
  .hero-metric,.control-score{flex:0 0 170px;min-width:0}
  .dashboard-kpi-grid.compact-kpi-row.control-kpi-row,
  .dashboard-kpi-grid.compact-kpi-row.financial-kpi-row,
  .dashboard-kpi-grid.compact-kpi-row.planning-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}


/* v4.5.70 — iPad table-action and donut-chart containment hardening. */
.donut-layout,.donut-list,.donut-row{min-width:0;max-width:100%}
.donut-row{width:100%}
.donut-row span:nth-child(2){min-width:0;overflow-wrap:anywhere;word-break:normal}
.donut-row span:last-child{white-space:nowrap}
.table-projects,.table-approvals{border-inline-end:1px solid color-mix(in srgb,var(--line) 78%,transparent)}

@media (min-width:821px) and (max-width:1279px){
  #appShell .table-wrap>table.table-grid-exact td.table-col-actions{
    overflow:hidden!important;
    padding-left:4px!important;
    padding-right:4px!important;
  }
  #appShell .table-wrap>table.table-grid-exact td.table-col-actions .table-action-group{
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    min-width:0;
    gap:4px!important;
    justify-content:center!important;
    overflow:hidden;
  }
  #appShell .table-wrap>table.table-grid-exact td.table-col-actions .table-action-button{
    flex:0 0 auto;
    max-width:100%;
    min-height:40px!important;
    padding:6px 7px!important;
    gap:3px!important;
    font-size:10px!important;
    line-height:1!important;
  }
  #appShell .table-wrap>table.table-grid-exact td.table-col-actions .action-glyph{
    margin-right:0!important;
  }
}

@media (min-width:1025px) and (max-width:1300px){
  .content .grid.two-col>.chart-card .donut-layout{
    grid-template-columns:minmax(0,1fr)!important;
    align-content:center;
    gap:12px;
    min-height:300px;
    width:100%;
    overflow:hidden;
  }
  .content .grid.two-col>.chart-card .donut{
    width:min(150px,58%);
  }
  .content .grid.two-col>.chart-card .donut-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px 10px;
    width:100%;
  }
  .content .grid.two-col>.chart-card .donut-row{
    grid-template-columns:9px minmax(0,1fr) auto;
    gap:5px;
    font-size:9px;
  }
}


/* v4.5.71 — live synchronization-status auto refresh. */


/* v4.5.71.1 — department structure dark-mode contrast fix. */
.department-structure-row:hover{background:color-mix(in srgb,var(--primary) 6%,var(--surface-2));border-color:color-mix(in srgb,var(--primary) 24%,var(--line))}
.department-structure-row>div strong,.department-structure-row>span{color:var(--text)}
html[data-theme="dark"] .department-structure-row{background:#102432;border-color:#294657;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
html[data-theme="dark"] .department-structure-row:hover{background:#143346;border-color:#385e73}
html[data-theme="dark"] .department-structure-row>div strong,
html[data-theme="dark"] .department-structure-row>span{color:#e7f1f6!important}
html[data-theme="dark"] .department-structure-row>div small,
html[data-theme="dark"] .department-structure-row>small{color:#91a8b8!important}
html[data-theme="dark"] .department-structure-list{scrollbar-color:#35596b #0b1b28}
html[data-theme="dark"] .department-structure-list::-webkit-scrollbar{width:10px}
html[data-theme="dark"] .department-structure-list::-webkit-scrollbar-track{background:#0b1b28;border-radius:999px}
html[data-theme="dark"] .department-structure-list::-webkit-scrollbar-thumb{background:#35596b;border:2px solid #0b1b28;border-radius:999px}
html[data-theme="dark"] .department-structure-list::-webkit-scrollbar-thumb:hover{background:#46738a}


/* v4.5.72 — effective-dated legal and tax parameter manager. */
.legal-parameter-manager-card{min-width:0;overflow:hidden}
.legal-policy-current{display:grid;gap:5px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);color:var(--text)}
.legal-policy-current>span,.legal-policy-current>small{color:var(--muted)}
.legal-policy-current>strong{font-size:16px;line-height:1.4;color:var(--text)}
.legal-policy-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.legal-policy-kpis>div{display:grid;gap:3px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text)}
.legal-policy-kpis span{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.legal-policy-kpis strong{font-size:16px;color:var(--text)}
.legal-policy-table-wrap{margin-top:14px;max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.legal-policy-table{min-width:900px;margin:0}
.legal-policy-table th,.legal-policy-table td{vertical-align:top}
.legal-policy-chip{display:inline-flex;align-items:center;margin:2px 4px 2px 0;padding:4px 7px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--text);font-size:11px;white-space:nowrap}
.legal-policy-table .actions{white-space:nowrap}
html[data-theme="dark"] .legal-policy-current,
html[data-theme="dark"] .legal-policy-kpis>div,
html[data-theme="dark"] .legal-policy-table-wrap,
html[data-theme="dark"] .legal-policy-chip{background:var(--surface-2);border-color:var(--line);color:var(--text)}
@media(max-width:1100px){.legal-policy-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.legal-policy-kpis{grid-template-columns:1fr}.legal-parameter-manager-card .section-header{align-items:flex-start}.legal-parameter-manager-card .section-header .primary-btn{width:100%}}

/* v4.5.73 — searchable selections, open master-data values and unified form layout. */
.global-search-wrap #globalSearch{
  min-width:0!important;height:100%!important;min-height:0!important;padding:0!important;
  border:0!important;border-radius:0!important;outline:0!important;box-shadow:none!important;
  background:transparent!important;color:var(--text)!important;appearance:none!important;
}
.global-search-wrap #globalSearch:focus,.global-search-wrap #globalSearch:focus-visible{
  border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;
}

.searchable-combobox{position:relative;display:block;width:100%;min-width:0}
.searchable-native-select{
  position:absolute!important;left:0!important;bottom:0!important;width:1px!important;height:1px!important;
  min-width:1px!important;min-height:1px!important;margin:0!important;padding:0!important;border:0!important;
  opacity:0!important;pointer-events:none!important;overflow:hidden!important;clip-path:inset(50%)!important;
}
.searchable-combobox-input{width:100%;padding-right:40px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.searchable-combobox-toggle{
  position:absolute;right:3px;top:50%;transform:translateY(-50%);z-index:2;width:34px;height:34px;
  display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--muted);
  cursor:pointer;font:inherit;transition:background .15s ease,color .15s ease,transform .15s ease;
}
.searchable-combobox-toggle:hover{background:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--primary)}
.searchable-combobox.is-open .searchable-combobox-toggle span{display:block;transform:rotate(180deg)}
.searchable-combobox.is-disabled{opacity:.72}.searchable-combobox.is-disabled .searchable-combobox-toggle{cursor:not-allowed}
.searchable-combobox-list{
  position:fixed;z-index:2600;display:grid;align-content:start;gap:2px;padding:6px;overflow:auto;
  border:1px solid #c1d3dd;border-radius:12px;background:rgba(255,255,255,.985);color:var(--text);
  box-shadow:0 22px 58px rgba(2,31,52,.24);overscroll-behavior:contain;scrollbar-gutter:stable;
}
.searchable-combobox-list[hidden]{display:none!important}
.searchable-combobox-option{
  width:100%;min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;
  cursor:pointer;font:inherit;font-size:12px;line-height:1.35;
}
.searchable-combobox-option span{min-width:0;overflow-wrap:anywhere}
.searchable-combobox-option i{flex:none;color:var(--primary);font-style:normal;font-weight:900}
.searchable-combobox-option:hover,.searchable-combobox-option.is-highlighted{background:#ebf5fa;color:#114b6b}
.searchable-combobox-option[aria-selected="true"]{background:#e3f1f9;color:#104562;font-weight:760}
.searchable-combobox-empty{display:grid;gap:4px;padding:14px 12px;color:var(--muted);font-size:11px;line-height:1.45}
.searchable-combobox-empty strong{color:var(--text);font-size:12px}
.searchable-combobox-list::-webkit-scrollbar{width:10px}
.searchable-combobox-list::-webkit-scrollbar-thumb{background:#baccd5;border:3px solid transparent;border-radius:999px;background-clip:padding-box}
.field .searchable-combobox-input:focus,.drawer-form .searchable-combobox-input:focus,
.table-tools .searchable-combobox-input:focus,.toolbar-actions .searchable-combobox-input:focus,
.journal-line .searchable-combobox-input:focus{outline:0;border-color:var(--alpha-cyan-500);box-shadow:var(--ux-focus-ring)}
.toolbar-actions>.combobox-toolbar{flex:0 0 126px;width:126px}
.combobox-toolbar .searchable-combobox-input{height:var(--ux-control-height);min-height:var(--ux-control-height);padding:0 34px 0 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-size:12px}
.combobox-toolbar .searchable-combobox-toggle{height:32px;width:30px;right:2px}
.table-tools>.combobox-filter{flex:0 0 190px;width:190px;min-width:150px}
.combobox-filter .searchable-combobox-input{height:36px;min-height:36px;padding-top:0;padding-bottom:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}
.drawer-form .searchable-combobox-input{min-height:42px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text)}
.journal-line .searchable-combobox-input{min-height:39px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);padding:8px 36px 8px 9px!important}

.modal{width:min(1080px,calc(100vw - 34px));max-height:min(94dvh,920px)}
.modal.modal-wide{width:min(1220px,calc(100vw - 34px))}
.modal-form>.form-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important;align-items:start}
.form-section-card{
  min-width:0;overflow:visible;border:1px solid #d6e3ea;border-radius:15px;background:color-mix(in srgb,var(--surface) 97%,#eef6fa);
  box-shadow:0 5px 18px rgba(4,47,72,.035);
}
.form-section-heading{display:flex;align-items:flex-start;gap:10px;padding:12px 14px 10px;border-bottom:1px solid #e0e9ee}
.form-section-heading>span{width:8px;height:8px;flex:none;margin-top:4px;border-radius:50%;background:var(--alpha-cyan-500);box-shadow:0 0 0 4px rgba(19,184,212,.12)}
.form-section-heading strong{display:block;color:#1b475e;font-size:11px;letter-spacing:.035em;text-transform:uppercase}
.form-section-heading small{display:block;margin-top:3px;color:var(--muted);font-size:9.5px;line-height:1.4;text-transform:none;letter-spacing:0}
/* align-items:start như .form-grid: .field là grid hàng auto, nếu bị stretch theo ô bên cạnh cao hơn
   (assetReferenceField: ô tìm + select + gợi ý) thì phần dư chia cho cả hàng nhãn lẫn hàng input,
   input date "Ngày mua" cao gấp đôi và nhãn lệch (v4.8.39, modal CCDC/TSCĐ). */
.form-section-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 15px;padding:14px;align-items:start}
.form-section-fields>.field.full,.form-section-fields>.project-input-note,.form-section-fields>.journal-lines,
.form-section-fields>.journal-total,.form-section-fields>.note,.form-section-fields>[class*="-note"],
.form-section-fields>input[type="hidden"]{grid-column:1/-1}
.form-section-fields>.project-input-note{padding:11px 13px}
.modal-form[data-form-type="journalEntries"] .form-section-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.modal-form[data-form-type="legalParameterPolicies"] .form-section-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.modal-form[data-form-type="payrollItems"] .form-section-fields,
.modal-form[data-form-type="annualBenefitBudgets"] .form-section-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.modal-form>.form-grid>.form-live-summary{margin:0}
.modal-form>.form-grid>.form-actions{margin-top:0}
.readonly-form-grid .form-section-card{background:color-mix(in srgb,var(--surface) 94%,var(--surface-2))}

html[data-theme="dark"] .searchable-combobox-list{background:#102a38;border-color:#345262;color:var(--text);box-shadow:0 24px 70px rgba(0,0,0,.42)}
html[data-theme="dark"] .searchable-combobox-option:hover,html[data-theme="dark"] .searchable-combobox-option.is-highlighted{background:#1a3d50;color:#dbeff9}
html[data-theme="dark"] .searchable-combobox-option[aria-selected="true"]{background:#1e455a;color:#e6f4fb}
html[data-theme="dark"] .searchable-combobox-list::-webkit-scrollbar-thumb{background:#486473;border:3px solid transparent;background-clip:padding-box}
html[data-theme="dark"] .form-section-card{background:#102936;border-color:#2d4958;box-shadow:none}
html[data-theme="dark"] .form-section-heading{border-color:#2b4452}
html[data-theme="dark"] .form-section-heading strong{color:#c8e1ee}
html[data-theme="dark"] .combobox-toolbar .searchable-combobox-input,
html[data-theme="dark"] .combobox-filter .searchable-combobox-input,
html[data-theme="dark"] .drawer-form .searchable-combobox-input,
html[data-theme="dark"] .journal-line .searchable-combobox-input{background:var(--input-bg);border-color:var(--line);color:var(--text)}

@media(max-width:900px){
  .modal{width:min(100%,calc(100vw - 16px))}
  .modal.modal-wide{width:min(100%,calc(100vw - 16px))}
  .modal-form[data-form-type="legalParameterPolicies"] .form-section-fields,
  .modal-form[data-form-type="journalEntries"] .form-section-fields,
  .modal-form[data-form-type="payrollItems"] .form-section-fields,
  .modal-form[data-form-type="annualBenefitBudgets"] .form-section-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .form-section-fields,.modal-form[data-form-type] .form-section-fields{grid-template-columns:minmax(0,1fr)!important;padding:12px;gap:11px}
  .form-section-heading{padding:11px 12px 9px}
  .toolbar-actions>.combobox-toolbar{flex-basis:104px;width:104px;max-width:104px}
  .table-tools>.combobox-filter{width:100%;min-width:0;flex:1 1 100%}
  .combobox-filter .searchable-combobox-input{height:44px;min-height:44px;font-size:16px}
  .searchable-combobox-list{font-size:16px}
  .searchable-combobox-option{min-height:44px;font-size:14px}
}

/* v4.6.4 — Settings workspace relayout */
.settings-workspace{display:grid;gap:16px;min-width:0}
.settings-main-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(390px,.72fr);gap:16px;align-items:start;min-width:0}
.settings-card{padding:18px;min-width:0;overflow:hidden}
.settings-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.settings-card-heading.compact{align-items:center;margin-bottom:14px}
.settings-card-heading h2{margin:3px 0 0;font-size:18px;letter-spacing:-.015em;color:var(--text)}
.settings-card-heading p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.5;max-width:700px}
.settings-eyebrow{display:block;color:var(--alpha-cyan-600,#196f9d);font-size:9px;font-weight:850;letter-spacing:.13em}
.settings-form{display:grid;gap:14px}
.settings-form-section{border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 97%,var(--surface-2));overflow:hidden}
.settings-section-title{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 82%,transparent)}
.settings-section-title>span{width:27px;height:27px;display:grid;place-items:center;flex:none;border-radius:8px;background:#e3f1f9;color:#155a7f;font-size:10px;font-weight:900}
.settings-section-title h3{margin:0;font-size:12px;color:var(--text)}
.settings-section-title p{margin:3px 0 0;color:var(--muted);font-size:9.5px;line-height:1.4}
.settings-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;padding:14px}
.settings-form-grid>.field.full{grid-column:1/-1}
.settings-form-grid .field{min-width:0}
.settings-form-grid .field label{line-height:1.35}
.settings-form-grid .field input,.settings-form-grid .field select,.settings-form-grid .field textarea{background:var(--surface);min-height:42px}
.settings-save-bar{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);box-shadow:0 -7px 22px rgba(14,46,71,.07)}
.settings-save-bar strong{display:block;font-size:11px}.settings-save-bar span{display:block;margin-top:3px;color:var(--muted);font-size:9.5px}
/*
 * Cột "Tham số pháp lý" từng là panel sticky có max-height = phần còn lại của viewport và cuộn nội
 * bộ. Đo 30/08/2026 trên ảnh người dùng (1901×915): (1) cuối trang Thiết lập, đáy lưới đẩy panel
 * sticky lên, phần đầu chui dưới thanh công cụ — các ô TNCN/TNDN bị cắt, panel "lửng lơ" giữa
 * màn hình; (2) chủ đề .suite-settings-screen ép overflow:visible cho mọi .settings-card, nên
 * khi nội dung dài hơn max-height nó tràn RA NGOÀI hộp và đè lên khối Adaptive UX phía dưới (hàng
 * nút bị cắt nửa, ghi chú "Nguyên tắc" đè lên thẻ). Panel giờ chảy tự nhiên theo trang, cao đúng
 * bằng nội dung; lưới đã align-items:start nên nó neo ở đầu cột phải.
 */
.legal-parameter-manager-card{position:static;max-height:none;overflow:visible}
.legal-heading{align-items:flex-start}.legal-heading .primary-btn{flex:none;white-space:normal;max-width:120px}
.legal-policy-current{display:grid;gap:5px;padding:14px;border:1px solid #d0e2ec;border-radius:13px;background:linear-gradient(135deg,#f4f9fc,#f8fcff)}
.legal-policy-current>span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.legal-policy-current>strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}.legal-policy-current>small{color:var(--muted);line-height:1.45;overflow-wrap:anywhere}
.legal-policy-value-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:11px}
.legal-policy-value{min-width:0;padding:11px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.legal-policy-value span{display:block;color:var(--muted);font-size:9.5px;line-height:1.3}.legal-policy-value strong{display:block;margin-top:5px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-subheading{display:flex;justify-content:space-between;align-items:end;margin:18px 0 9px;padding-top:14px;border-top:1px solid var(--line)}
.settings-subheading h3{margin:0;font-size:13px}.settings-subheading p{margin:3px 0 0;color:var(--muted);font-size:9.5px;line-height:1.4}
.legal-policy-version-list{display:grid;gap:10px}
.legal-policy-version-card{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}
.legal-version-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}.legal-version-top>div{min-width:0}.legal-version-top strong{display:block;font-size:11px;line-height:1.4;overflow-wrap:anywhere}.legal-version-top small{display:block;margin-top:2px;color:var(--muted);font-size:9px;overflow-wrap:anywhere}
.legal-version-dates{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 9px;border-radius:9px;background:var(--surface-2);font-size:9.5px}.legal-version-dates span{color:var(--muted)}.legal-version-dates strong{text-align:right;font-size:9.5px;line-height:1.35}
.legal-version-chips{display:flex;gap:6px;flex-wrap:wrap}.legal-version-chips span{padding:5px 7px;border:1px solid #d0e1ea;border-radius:999px;background:#f2f8fc;color:#194c68;font-size:8.8px;font-weight:750;white-space:nowrap}
.legal-reference{margin:0;color:var(--muted);font-size:9.3px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.legal-version-actions{display:flex;justify-content:flex-end;gap:7px;padding-top:2px}
.settings-safety-note{margin-top:12px;padding:11px 12px;border-radius:11px;background:#fff9e8;border:1px solid #f1dfaa;color:#6d5921;font-size:9.5px;line-height:1.5}
.data-management-card .inline-stats{max-width:520px}.settings-data-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.settings-secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.settings-secondary-grid .settings-card{height:100%}.settings-secondary-grid .template-current{min-height:104px}
.settings-secondary-grid .template-import-actions{display:flex;gap:8px;flex-wrap:wrap}.settings-secondary-grid .template-version-list{max-height:310px;overflow:auto;scrollbar-gutter:stable}
.settings-workspace .empty-state{grid-column:1/-1;padding:20px;text-align:center;color:var(--muted);font-size:10px}

html[data-theme="dark"] .settings-form-section{background:#112834;border-color:#2e4957}
html[data-theme="dark"] .settings-section-title{background:#122d3b;border-color:#2b4655}
html[data-theme="dark"] .settings-section-title>span{background:#193e52;color:#c0e2f4}
html[data-theme="dark"] .legal-policy-current{background:linear-gradient(135deg,#122b38,#102735);border-color:#334f5e}
html[data-theme="dark"] .legal-policy-value,html[data-theme="dark"] .legal-version-dates{background:#132a36}
html[data-theme="dark"] .legal-policy-version-card{background:#0f2835;border-color:#2d4857}
html[data-theme="dark"] .legal-version-dates{background:#132d3b}
html[data-theme="dark"] .legal-version-chips span{background:#163242;border-color:#345363;color:#d3eaf6}
html[data-theme="dark"] .settings-safety-note{background:#3a321e;border-color:#665c33;color:#f3dfa3}
html[data-theme="dark"] .settings-save-bar{background:rgba(15,40,53,.94);border-color:#334e5c;box-shadow:0 -8px 25px rgba(0,0,0,.18)}

@media(max-width:1280px){
  .settings-main-grid{grid-template-columns:minmax(0,1fr) minmax(350px,.65fr)}
  .settings-card{padding:15px}
}
@media(max-width:1120px){
  .settings-main-grid,.settings-secondary-grid{grid-template-columns:minmax(0,1fr)}
  .legal-policy-version-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .settings-card{padding:12px}.settings-card-heading{flex-direction:column}.settings-card-heading.compact{align-items:flex-start}
  .settings-form-grid{grid-template-columns:minmax(0,1fr);padding:12px}.settings-form-grid>.field.full{grid-column:auto}
  .settings-save-bar{align-items:flex-start;flex-direction:column}.settings-save-bar .primary-btn{width:100%}
  .legal-policy-version-list{grid-template-columns:minmax(0,1fr)}.legal-policy-value-grid{grid-template-columns:minmax(0,1fr)}
  .settings-data-actions{justify-content:flex-start;width:100%}.settings-data-actions button{flex:1 1 180px}
}

/* v4.6.5 — unified searchable controls, clear action and modern analytics. */
.searchable-combobox-input{
  width:100%;height:42px;min-height:42px;padding:0 70px 0 13px!important;
  border:1px solid var(--line,#d5e2eb);border-radius:11px;background:var(--surface,#fff);color:var(--text,#102a43);
  font:inherit;font-size:12px;line-height:1.2;outline:0;appearance:none;
  box-shadow:0 1px 2px rgba(15,42,67,.025);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.searchable-combobox-input:hover{border-color:color-mix(in srgb,var(--primary) 34%,var(--line))}
.searchable-combobox-input:focus,.searchable-combobox.is-open .searchable-combobox-input{
  border-color:var(--alpha-cyan-500,#208bc4)!important;box-shadow:0 0 0 3px rgba(18,182,210,.14)!important;
}
.searchable-combobox-input::placeholder{color:color-mix(in srgb,var(--muted,#718096) 83%,transparent)}
.searchable-combobox-clear{
  position:absolute;right:36px;top:50%;transform:translateY(-50%);z-index:3;width:25px;height:25px;
  display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:color-mix(in srgb,var(--muted,#64748b) 10%,transparent);
  color:var(--muted,#64748b);cursor:pointer;font:700 17px/1 system-ui;transition:background .15s ease,color .15s ease,transform .15s ease;
}
.searchable-combobox-clear[hidden]{display:none!important}
.searchable-combobox-clear:hover{background:color-mix(in srgb,var(--red,#ef4444) 13%,transparent);color:var(--red,#dc2626);transform:translateY(-50%) scale(1.04)}
.searchable-combobox-clear:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(18,182,210,.18)}
.searchable-combobox-toggle{right:3px;width:31px;height:31px;border-radius:8px}
.searchable-combobox:not(.is-clearable) .searchable-combobox-input{padding-right:40px!important}
.searchable-combobox.is-disabled .searchable-combobox-clear{cursor:not-allowed}
.combobox-toolbar .searchable-combobox-input,.combobox-filter .searchable-combobox-input,
.drawer-form .searchable-combobox-input,.journal-line .searchable-combobox-input{
  padding-right:70px!important;border-radius:11px;background:var(--surface);color:var(--text)
}
.combobox-toolbar:not(.is-clearable) .searchable-combobox-input,
.combobox-filter:not(.is-clearable) .searchable-combobox-input,
.drawer-form .searchable-combobox:not(.is-clearable) .searchable-combobox-input,
.journal-line .searchable-combobox:not(.is-clearable) .searchable-combobox-input{padding-right:40px!important}
.combobox-toolbar .searchable-combobox-clear,.combobox-filter .searchable-combobox-clear{right:34px;width:23px;height:23px;font-size:15px}
.combobox-toolbar .searchable-combobox-toggle,.combobox-filter .searchable-combobox-toggle{right:2px;width:30px;height:30px}
.table-tools>.combobox-filter{flex:0 0 230px;width:230px;min-width:190px}
.trash-tools>.searchable-combobox{width:100%;min-width:0}
.trash-tools .searchable-combobox-input{height:40px;min-height:40px}
.payroll-period-toolbar label,.annual-benefit-toolbar label{min-width:210px}
.payroll-period-toolbar label>.searchable-combobox,.annual-benefit-toolbar label>.searchable-combobox{width:100%;min-width:210px}
.payroll-period-toolbar .searchable-combobox-input,.annual-benefit-toolbar .searchable-combobox-input{height:42px;min-height:42px;border-radius:11px;font-weight:650}
.import-controls>.searchable-combobox{min-width:0;width:100%}
.import-controls .searchable-combobox-input{height:42px;min-height:42px;border-radius:11px}
html[data-theme="dark"] .searchable-combobox-input{background:var(--input-bg,#102936);border-color:var(--line,#334e5d);color:var(--text,#e9f2f6)}
html[data-theme="dark"] .searchable-combobox-clear{background:rgba(255,255,255,.07);color:#abbfca}
html[data-theme="dark"] .searchable-combobox-clear:hover{background:rgba(248,113,113,.15);color:#fca5a5}

/* Contemporary dashboard chart system. */
.chart-card{
  border-color:color-mix(in srgb,var(--line) 86%,var(--primary) 14%);
  box-shadow:0 10px 30px rgba(12,51,73,.055);overflow:hidden;
}
.chart-card>.section-header{padding-bottom:8px}
.chart-legend{gap:8px;margin:5px 0 12px;align-items:center}
.legend-item{
  min-height:26px;padding:4px 9px;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);
  border-radius:999px;background:color-mix(in srgb,var(--surface) 94%,var(--surface-2));color:var(--muted);font-weight:650;
}
.legend-dot{width:8px;height:8px;border-radius:50%!important;box-shadow:0 0 0 3px rgba(15,42,67,.035)}
.legend-line{width:18px;height:3px;border-radius:999px}
.chart-unit-badge{
  margin-left:auto;padding:5px 9px;border:1px solid color-mix(in srgb,var(--primary) 14%,var(--line));
  border-radius:999px;background:color-mix(in srgb,var(--primary) 6%,var(--surface));color:color-mix(in srgb,var(--primary) 75%,var(--text));font-size:9px;
}
.combo-chart{height:300px;gap:10px;align-items:stretch;padding:5px 0 1px}
.y-axis{width:52px;padding:8px 0 27px;color:var(--muted);font-size:9px;font-variant-numeric:tabular-nums}
.plot{
  border:1px solid color-mix(in srgb,var(--line) 88%,transparent);border-radius:14px;
  background:
    linear-gradient(to bottom,color-mix(in srgb,var(--primary) 2.4%,transparent),transparent 45%),
    repeating-linear-gradient(to bottom,transparent 0,transparent calc(25% - 1px),color-mix(in srgb,var(--line) 72%,transparent) 25%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.48);overflow:hidden;
}
.bar-groups{inset:15px 10px 31px 11px;gap:8px}
.bar-group{gap:4px}
.bar{
  width:clamp(5px,38%,19px);min-height:3px;border-radius:7px 7px 3px 3px;
  box-shadow:0 5px 11px rgba(10,74,103,.10);opacity:.93;transform-origin:bottom;transition:opacity .15s ease,filter .15s ease,transform .15s ease;
}
.bar:hover{opacity:1;filter:saturate(1.08);transform:scaleX(1.06)}
.line-svg{inset:15px 10px 31px 11px;width:calc(100% - 21px);height:calc(100% - 46px);filter:drop-shadow(0 3px 4px rgba(8,54,76,.08))}
.line-svg polyline{stroke-width:3.2;vector-effect:non-scaling-stroke}
.line-svg circle{r:4.5;stroke:var(--surface,#fff);stroke-width:2.5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px rgba(0,0,0,.12))}
.x-labels{bottom:7px;left:11px;right:10px;color:var(--muted);font-size:9px;font-weight:650}
.x-labels span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}
.chart-horizontal-scroll{border-radius:14px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--primary) 24%,transparent) transparent}
.donut-layout{gap:24px}
.donut{filter:drop-shadow(0 12px 22px rgba(13,70,92,.12));transform:rotate(-4deg)}
.donut::after{inset:29%;box-shadow:0 0 0 1px color-mix(in srgb,var(--line) 70%,transparent),0 8px 18px rgba(12,58,79,.06)}
.donut-center{inset:31%;transform:rotate(4deg)}
.donut-center strong{font-size:20px;letter-spacing:-.03em}
.donut-list{gap:7px}
.donut-row{
  min-height:32px;padding:6px 8px;border:1px solid color-mix(in srgb,var(--line) 75%,transparent);
  border-radius:9px;background:color-mix(in srgb,var(--surface) 96%,var(--surface-2));font-size:10px;
}
.donut-row i{width:9px;height:9px;box-shadow:0 0 0 3px rgba(15,42,67,.035)}
html[data-theme="dark"] .plot{box-shadow:none;background:linear-gradient(to bottom,rgba(21,184,214,.025),transparent 45%),repeating-linear-gradient(to bottom,transparent 0,transparent calc(25% - 1px),rgba(120,160,176,.17) 25%)}
html[data-theme="dark"] .legend-item,html[data-theme="dark"] .donut-row{background:rgba(255,255,255,.025);border-color:var(--line)}
html[data-theme="dark"] .donut::after{box-shadow:0 0 0 1px var(--line),0 8px 18px rgba(0,0,0,.15)}

@media(max-width:700px){
  .table-tools>.combobox-filter{width:100%;min-width:0;flex-basis:100%}
  .payroll-period-toolbar label,.annual-benefit-toolbar label,
  .payroll-period-toolbar label>.searchable-combobox,.annual-benefit-toolbar label>.searchable-combobox{min-width:0;width:100%}
  .combo-chart{height:260px}.y-axis{width:46px}.legend-item{font-size:9px}.chart-unit-badge{width:auto;margin-left:0}
}

/* v4.6.5 — matching treatment for remaining chart families. */
.mini-line,.stacked-bars,.waterfall{
  border:1px solid color-mix(in srgb,var(--line) 88%,transparent);border-radius:14px;
  background:linear-gradient(to bottom,color-mix(in srgb,var(--primary) 2.4%,transparent),transparent 48%),
    repeating-linear-gradient(to bottom,transparent 0,transparent calc(25% - 1px),color-mix(in srgb,var(--line) 72%,transparent) 25%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.48);overflow:hidden;
}
.mini-line{padding:10px 9px 5px}.mini-line svg{filter:drop-shadow(0 3px 4px rgba(8,54,76,.08))}
.mini-line polyline{stroke-width:3;vector-effect:non-scaling-stroke}.mini-line circle{stroke:var(--surface);stroke-width:2.4;vector-effect:non-scaling-stroke}
.stacked-bars{padding:14px 10px 28px}.stacked-col{gap:2px}.stack-seg:first-child{border-radius:6px 6px 2px 2px}.stack-seg:last-child{border-radius:2px 2px 5px 5px}
.waterfall{padding:16px 12px 31px}.wf-bar{border-radius:7px 7px 3px 3px;box-shadow:0 5px 11px rgba(10,74,103,.10)}
.heatmap{border:1px solid color-mix(in srgb,var(--line) 88%,transparent);border-radius:12px;overflow:hidden;background:var(--surface)}
html[data-theme="dark"] .mini-line,html[data-theme="dark"] .stacked-bars,html[data-theme="dark"] .waterfall{
  box-shadow:none;background:linear-gradient(to bottom,rgba(21,184,214,.025),transparent 48%),repeating-linear-gradient(to bottom,transparent 0,transparent calc(25% - 1px),rgba(120,160,176,.17) 25%)
}

/* v4.7.2 — inherited deep UX/layout polish plus module/API responsive hardening. */
.page-heading>div,.section-header>div:first-child,.card,.table-card,.grid>*{min-width:0}
.page-heading h1,.section-header h2,.section-header h3{overflow-wrap:anywhere}
.section-header{align-items:flex-start;flex-wrap:wrap;row-gap:9px}
.section-header>.actions,.section-header>.table-actions,.accounting-toolbar .actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.table-tools{gap:9px 10px;padding:12px 14px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,var(--surface-2)),var(--surface-2));align-items:center}
.table-tools .search-input{min-width:min(260px,100%)}
.table-wrap{scrollbar-gutter:stable;overscroll-behavior-inline:contain}
.table-wrap tbody tr:focus-within td{background:color-mix(in srgb,var(--primary) 5%,var(--surface))}
.primary-btn,.secondary-btn,.danger-btn,.ghost-btn,.toolbar-button,.toolbar-select{min-height:40px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid color-mix(in srgb,var(--alpha-cyan-500,#208bc4) 30%,transparent);outline-offset:2px}
.modal{max-height:min(92dvh,920px);overflow:auto;scrollbar-gutter:stable}
.modal-form{min-width:0}
.form-grid>*{min-width:0}
@media(max-width:1100px){
  .page-toolbar{align-items:flex-start;flex-wrap:wrap}
  .page-heading{flex:1 1 280px}
  .toolbar-actions{flex:1 1 520px;justify-content:flex-end}
  .two-col{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:820px){
  .page-toolbar{align-items:center;flex-wrap:nowrap}
  .toolbar-actions{flex:0 1 auto}
  .section-header>.actions,.section-header>.table-actions{width:100%;justify-content:flex-start}
  .section-header>.actions>button,.section-header>.table-actions>button{flex:1 1 150px}
  .table-tools{padding:10px}
  .modal{max-height:calc(100dvh - 14px)}
}
html[data-theme="dark"] .table-tools{background:linear-gradient(180deg,#102b39,#0e2532)}
@media(prefers-reduced-motion:reduce){.card,.kpi-card,.bar,.searchable-combobox-input,.searchable-combobox-clear{transition:none!important}}

/* v4.7.2 — responsive parity, touch ergonomics and shared network/error state. */
html{scroll-padding-top:calc(var(--header) + var(--toolbar) + 12px)}
body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.network-state-banner{position:fixed;left:50%;top:calc(var(--header) + 8px);transform:translateX(-50%);z-index:1250;display:flex;align-items:center;gap:10px;max-width:min(680px,calc(100vw - 24px));padding:9px 11px;border:1px solid #f1c36c;border-radius:11px;background:#fffaf0;color:#7a5200;box-shadow:0 12px 34px rgba(21,43,67,.14);font-size:11px;line-height:1.4}
.network-state-banner.hidden{display:none!important}.network-state-banner[data-kind="offline"]{background:#f6f8fb;border-color:#d5dde7;color:#58677a}.network-state-banner[data-kind="network_or_cors"],.network-state-banner[data-kind="timeout"]{background:#fff4f4;border-color:#efb5b5;color:#902929}
.network-state-banner>span{min-width:0;overflow-wrap:anywhere}.network-state-banner button{flex:none;min-height:32px;border:1px solid currentColor;border-radius:8px;background:transparent;color:inherit;padding:0 10px;font:inherit;font-weight:800;cursor:pointer}
.table-wrap,.chart-horizontal-scroll,.documents-table-wrap{-webkit-overflow-scrolling:touch}
input,select,textarea,button{touch-action:manipulation}
@media(hover:none){.card:hover,.kpi-card:hover{transform:none}.nav-item:hover,.profile-button:hover,.header-icon:hover{background:inherit}}
@media(max-width:1024px){
  button,.nav-item,.toolbar-button,.primary-btn,.secondary-btn,.danger-btn,.ghost-btn,.header-icon,.plain-icon,.profile-button{min-height:44px}
  .form-grid,.settings-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .three-col,.four-col{grid-template-columns:repeat(2,minmax(0,1fr))}
  .right-drawer{width:min(430px,92vw)}
  .table-tools{flex-wrap:wrap}.table-tools>*{max-width:100%}
}
@media(max-width:820px){
  .global-header{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));gap:8px}
  .header-actions{min-width:0}.header-actions .profile-copy{display:none}.profile-button{gap:3px}
  .page-toolbar{top:var(--header);padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));gap:8px}
  .page-heading{flex:1 1 auto;max-width:50vw}.page-heading h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .toolbar-actions{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start}.toolbar-actions::-webkit-scrollbar{display:none}
  .toolbar-actions>*{flex:none}.date-control{display:none}
  .right-drawer{inset:0 0 0 auto;width:min(420px,94vw);height:100dvh;padding-bottom:env(safe-area-inset-bottom)}
  .modal-backdrop{align-items:end;padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
  .modal{width:100%;max-width:100%;border-radius:16px 16px 10px 10px;max-height:calc(100dvh - 12px)}
  .modal-header{padding-top:max(15px,env(safe-area-inset-top))}
  .network-state-banner{top:calc(var(--header) + 5px)}
}
@media(max-width:640px){
  :root{--toolbar:60px}
  .mobile-brand{font-size:11px;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .page-heading{max-width:calc(100vw - 206px)}.page-icon{width:31px;height:31px;flex:none}.page-heading h1{font-size:15px}
  .toolbar-select{display:none}.toolbar-button{width:42px;padding:0;display:grid;place-items:center}.toolbar-button span{display:none!important}
  .primary-btn#primaryAction{width:42px;min-width:42px}
  .content{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  .dashboard-kpi-grid,.kpi-grid,.accounting-summary,.status-strip,.three-col,.four-col,.two-col,.settings-form-grid{grid-template-columns:minmax(0,1fr)!important}
  .donut-list{grid-template-columns:minmax(0,1fr)}
  .section-header>.actions>button,.section-header>.table-actions>button{flex:1 1 100%}
  .table-tools{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.table-tools .search-input,.table-tools input,.table-tools select,.table-tools button,.table-tools .searchable-combobox{width:100%;min-width:0;max-width:none}
  .form-grid{grid-template-columns:minmax(0,1fr)!important}.form-grid>.field,.field.full,.form-actions{grid-column:1!important}
  .modal-form{padding:12px}.modal-form input,.modal-form select,.modal-form textarea,.drawer-form input,.drawer-form select,.drawer-form textarea,.global-search-wrap input{font-size:16px!important}
  .mobile-bottom-nav{padding-bottom:max(6px,env(safe-area-inset-bottom))}.mobile-bottom-nav button{min-height:48px}
  .network-state-banner{top:auto;bottom:calc(70px + env(safe-area-inset-bottom));left:8px;right:8px;transform:none;max-width:none;justify-content:space-between}
}
@media(max-width:430px){
  .header-actions{gap:2px}.header-actions #helpBtn{display:none}.sync-pill,.header-icon,.profile-button{width:38px;min-width:38px;padding:0;justify-content:center}
  .page-heading{max-width:calc(100vw - 160px)}
  .page-toolbar .toolbar-actions .toolbar-button:nth-of-type(1){display:none}
  .kpi-card{min-height:92px}.kpi-value{font-size:17px}
  .table-wrap table{min-width:680px}
}
@media(max-height:520px) and (orientation:landscape){.mobile-bottom-nav{display:none!important}.content{padding-bottom:18px}.sidebar{width:min(360px,62vw)!important}.modal{max-height:96dvh}}
html[data-theme="dark"] .network-state-banner{background:#2b271c;border-color:#64582f;color:#f2d98e}html[data-theme="dark"] .network-state-banner[data-kind="offline"]{background:#172530;border-color:#36505e;color:#cbd7df}html[data-theme="dark"] .network-state-banner[data-kind="network_or_cors"],html[data-theme="dark"] .network-state-banner[data-kind="timeout"]{background:#351e22;border-color:#6e3c45;color:#ffced4}

/* v4.7.8 — Document Workflow action visibility / legacy hydration */
.documents-table .document-actions-cell{min-width:250px;white-space:normal!important;vertical-align:middle}
.documents-table .document-actions-cell .ghost-btn{display:inline-flex;margin:2px 3px 2px 0;min-height:34px;padding:6px 9px;white-space:nowrap}
.documents-table .document-actions-cell .ghost-btn:disabled{opacity:.56!important;background:var(--surface-2,#f6f8fa)}
.document-status-meta{margin-top:4px;font-size:10px;line-height:1.35;white-space:normal}
.document-no-actions{display:inline-block;padding:6px 0;font-size:10px;white-space:nowrap}
@media(max-width:1100px){.documents-table .document-actions-cell{min-width:220px}}


/* v4.7.9 — clearer workflow ownership and progress-source labels */
.progress-source-readable{display:inline-flex;align-items:center;min-height:24px;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--text);font-weight:760;font-size:10px;line-height:1.2;white-space:nowrap}
.progress-source-note{margin-top:5px;font-size:9px;line-height:1.25}

/* v4.7.13 — document workflow safe delete uses existing .ghost-btn.danger treatment. */

/* v4.7.24 — UI layout stability, notification reflow and search-focus cleanup. */
html{scrollbar-gutter:stable}

/* Notification drawer: use the available drawer width instead of collapsing text into the icon column. */
#notificationDrawer{width:min(560px,96vw)}
#notificationDrawer .drawer-header{gap:16px}
#notificationDrawer .drawer-header>div:first-child{min-width:0}
#notificationDrawer .drawer-list{width:100%;min-width:0;align-content:start}
#notificationDrawer .notification-item{
  width:100%;min-width:0;display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:start;gap:10px;padding:12px!important;
  border:1px solid var(--line);border-radius:12px;background:var(--surface);
}
#notificationDrawer .notification-item.is-read{opacity:.68;background:var(--surface-2)}
#notificationDrawer .notification-main{
  width:100%;min-width:0;display:grid!important;
  grid-template-columns:10px minmax(0,1fr);align-items:start;justify-content:stretch;
  gap:10px;padding:0;border:0;background:transparent;text-align:left;color:var(--text);
}
#notificationDrawer .notification-main>.notification-dot{
  display:block!important;width:8px;height:8px;margin-top:5px;border-radius:999px;background:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 10%,transparent)
}
#notificationDrawer .notification-main>.notification-dot.warning{background:#d99512;box-shadow:0 0 0 4px rgba(217,149,18,.12)}
#notificationDrawer .notification-main>.notification-dot.danger,#notificationDrawer .notification-main>.notification-dot.critical{background:#dc4a4a;box-shadow:0 0 0 4px rgba(220,74,74,.11)}
#notificationDrawer .notification-main>.notification-dot.success{background:#24a866;box-shadow:0 0 0 4px rgba(36,168,102,.11)}
#notificationDrawer .notification-main>span:last-child{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;min-width:0}
#notificationDrawer .notification-main strong{grid-column:1;min-width:0;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
#notificationDrawer .notification-main small{grid-column:1;min-width:0;font-size:10px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
#notificationDrawer .notification-main em{grid-column:2;grid-row:1/3;align-self:center;white-space:nowrap;font-style:normal;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
#notificationDrawer .notification-read-btn{align-self:center}

/* Search controls: one rounded container/focus ring only; never show a second rectangular input outline inside it. */
.table-search{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.table-search:focus-within{border-color:var(--alpha-cyan-500,#208bc4);box-shadow:0 0 0 3px rgba(18,182,210,.12)}
.table-search input,
.table-search input:focus,
.table-search input:focus-visible{
  border:0!important;outline:0!important;outline-offset:0!important;box-shadow:none!important;
  border-radius:0!important;background:transparent!important;appearance:none!important;-webkit-appearance:none!important;
}
.table-search input[type="search"]::-webkit-search-decoration,
.table-search input[type="search"]::-webkit-search-cancel-button,
.table-search input[type="search"]::-webkit-search-results-button,
.table-search input[type="search"]::-webkit-search-results-decoration{appearance:none;-webkit-appearance:none}

/* People directory: full-width table first, full-width department structure below. */
.people-layout-stack{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.people-layout-stack>.card{min-width:0;width:100%}
.people-layout-stack .department-structure-card{min-height:0}
.people-layout-stack .department-structure{grid-template-columns:150px minmax(0,1fr);gap:18px;min-height:0;align-items:start}
.people-layout-stack .department-structure-summary{width:120px;margin:6px auto 0}
.people-layout-stack .department-structure-list{max-height:none!important;overflow:visible!important;padding-right:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.people-layout-stack .department-structure-row{min-width:0;height:100%}
@media(max-width:1200px){.people-layout-stack .department-structure-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){
  #notificationDrawer{width:100vw;max-width:none}
  .people-layout-stack .department-structure{grid-template-columns:1fr}
  .people-layout-stack .department-structure-list{grid-template-columns:1fr}
  .people-layout-stack .department-structure-summary{width:100px}
}

/* Remove cached/legacy duplicate top-scroll controls. Only the native bottom scrollbar is allowed. */
.table-scroll-top,.table-scroll-hint{display:none!important;width:0!important;height:0!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;overflow:hidden!important}
.commercial-contract-register-card>.table-scroll-top,
.commercial-contract-register-card>.table-scroll-hint{display:none!important}

/* Stable modal geometry: only the form body scrolls. Prevent the open/focus state from changing modal dimensions. */
.modal{overflow:hidden!important;scrollbar-gutter:auto!important;contain:layout paint}
.modal-form{overflow-y:auto!important;overflow-x:hidden!important;scrollbar-gutter:stable!important}
.modal:hover,.modal:focus-within{width:min(1080px,calc(100vw - 34px))}
.modal.modal-wide:hover,.modal.modal-wide:focus-within{width:min(1220px,calc(100vw - 34px))}
@media(max-width:820px){
  .modal:hover,.modal:focus-within,.modal.modal-wide:hover,.modal.modal-wide:focus-within{width:min(100%,calc(100vw - 16px))}
}

/* Hover feedback may change paint only, never cell metrics or table geometry. */
.balanced-table tbody tr,.balanced-table tbody tr:hover,.balanced-table tbody tr:hover td{
  transform:none!important;margin:0!important;
}


/* v4.7.25 — Operations filter alignment hotfix: searchable combobox icon spacing, single focus ring and status-filter clarity. */
:root{
  --ops-radius-xl:20px;
  --ops-radius-lg:16px;
  --ops-soft-shadow:0 14px 38px rgba(4,47,85,.075);
  --ops-hover-shadow:0 18px 46px rgba(4,47,85,.11);
  --ops-soft-cyan:color-mix(in srgb,var(--alpha-cyan-500) 9%,var(--surface));
}
.operations-view{min-width:0;isolation:isolate}
.operations-eyebrow{display:block;margin-bottom:5px;color:#1e6d97;font-size:9px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.operations-dashboard-head,.operations-screen-intro{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:18px 20px;border:1px solid color-mix(in srgb,var(--line) 82%,#c4dfed);border-radius:var(--ops-radius-xl);
  background:radial-gradient(circle at 96% 0%,rgba(19,184,212,.1),transparent 28%),linear-gradient(135deg,var(--surface),var(--surface-2));
  box-shadow:var(--ops-soft-shadow);
}
.operations-dashboard-head>div:first-child,.operations-screen-intro>div:first-child{min-width:0;max-width:880px}
.operations-dashboard-head h2,.operations-screen-intro h2{margin:0;color:var(--text);font-size:21px;letter-spacing:-.025em}
.operations-dashboard-head p,.operations-screen-intro p{margin:6px 0 0;color:var(--muted);font-size:11px;line-height:1.55}
.operations-period-card{flex:0 0 auto;min-width:245px;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 88%,var(--surface-3));box-shadow:0 6px 18px rgba(4,47,85,.045)}
.operations-period-card span,.operations-period-card small{display:block;color:var(--muted);font-size:9px}
.operations-period-card strong{display:block;margin:4px 0;color:var(--text);font-size:12px;font-variant-numeric:tabular-nums}
.operations-section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:18px 2px 9px}
.operations-section-heading span{display:block;color:#1e6d97;font-size:8.5px;font-weight:850;letter-spacing:.12em}
.operations-section-heading h3{margin:3px 0 0;color:var(--text);font-size:14px;letter-spacing:-.012em}
.operations-section-heading p{margin:0;color:var(--muted);font-size:9.5px;white-space:nowrap}
.operations-dashboard .dashboard-core-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:13px}
.operations-dashboard .dashboard-core-grid>.kpi-card{grid-column:auto!important;min-height:132px;border-radius:17px;box-shadow:var(--ops-soft-shadow)}
.operations-dashboard .dashboard-context-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px}
.operations-dashboard .dashboard-context-grid>.kpi-card:nth-child(n){grid-column:auto!important}
.operations-dashboard .project-plan-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px}
.operations-dashboard .project-plan-kpi-grid>.kpi-card{grid-column:auto!important;min-height:126px;border-radius:16px}
.operations-dashboard .kpi-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 94%,var(--surface-2)))}
.operations-dashboard .kpi-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--alpha-cyan-500) 25%,var(--line));box-shadow:var(--ops-hover-shadow)}
.operations-dashboard .dashboard-source-card{display:grid!important;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start!important;margin-top:12px!important;padding:12px 14px!important;border-radius:14px!important;background:linear-gradient(90deg,color-mix(in srgb,var(--alpha-cyan-100) 50%,var(--surface)),var(--surface))!important}
.dashboard-source-card .source-note-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#e0eff7;color:#176690;font-size:12px;font-weight:900;font-style:normal}
.dashboard-source-card p{margin:3px 0 0;font-size:10px;line-height:1.5;color:var(--muted)}
.operations-chart-grid{gap:14px}
.operations-chart-grid>.card,.operations-secondary-grid>.card,.operations-bottom-grid>.card{border-radius:var(--ops-radius-lg);box-shadow:var(--ops-soft-shadow)}
.operations-secondary-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1.15fr) minmax(280px,.7fr)!important}
.operations-alert-card .alert-item{background:var(--surface-2);border-radius:12px}
.operations-activity-card .activity{padding:11px 2px}
.operations-ai-card{border-radius:var(--ops-radius-lg);background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--surface-3) 42%,var(--surface)));box-shadow:var(--ops-soft-shadow)}
.operations-ai-metrics{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px}
.operations-ai-metrics>div{padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.operations-ai-metrics span,.operations-ai-metrics strong{display:block}.operations-ai-metrics strong{margin-top:4px;color:var(--text);font-size:16px}
.operations-skeleton-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}
.operations-skeleton-grid span{height:62px;border-radius:12px;background:linear-gradient(90deg,var(--surface-2) 25%,color-mix(in srgb,var(--surface-3) 75%,var(--surface)) 45%,var(--surface-2) 65%);background-size:220% 100%;animation:opsSkeleton 1.25s ease-in-out infinite}
@keyframes opsSkeleton{0%{background-position:100% 0}100%{background-position:-120% 0}}
@media(prefers-reduced-motion:reduce){.operations-skeleton-grid span{animation:none}.operations-dashboard .kpi-card:hover{transform:none}}

.operations-mini-metrics{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:8px;flex:0 0 auto;min-width:330px}
.operations-mini-metrics>div{padding:10px 11px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:0 5px 16px rgba(4,47,85,.04)}
.operations-mini-metrics span{display:block;color:var(--muted);font-size:8.5px}.operations-mini-metrics strong{display:block;margin-top:4px;color:var(--text);font-size:17px}
.operations-mini-metrics .is-attention{border-color:#f1d59c;background:#fffaf0}.operations-mini-metrics .is-attention strong{color:#a86100}
.operations-table-card{overflow:hidden!important;border-radius:var(--ops-radius-lg);box-shadow:var(--ops-soft-shadow)}
.operations-card-heading{min-height:66px;padding:14px 15px!important;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface-2) 70%,var(--surface)))}
.operations-card-heading h2{font-size:14px!important}.operations-card-heading p{max-width:720px}
.operations-table-tools{display:flex!important;align-items:center!important;gap:9px!important;padding:10px 13px!important;background:var(--surface)!important}
.filter-control{position:relative;display:flex;align-items:center;min-width:0;height:40px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.filter-control:focus-within{border-color:var(--alpha-cyan-500);background:var(--surface);box-shadow:0 0 0 3px rgba(19,184,212,.1)}
.filter-control>svg{position:absolute;left:11px;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;color:#628091;pointer-events:none;z-index:1}
.filter-control--search{flex:1 1 360px;max-width:680px}.filter-control--select{flex:0 0 210px}
.filter-control .search-input,.filter-control .filter-select:not(.searchable-native-select),.filter-control .searchable-combobox-input{width:100%;min-width:0;height:38px!important;min-height:38px!important;margin:0!important;border:0!important;border-radius:10px!important;background:transparent!important;padding-left:36px!important;box-shadow:none!important;outline:0!important}
.filter-control .filter-select:not(.searchable-native-select){padding-right:28px!important}
.filter-control>.searchable-combobox{width:100%;height:100%;min-width:0}
.filter-control .searchable-combobox-input{padding-right:68px!important}
.filter-control .searchable-combobox:not(.is-clearable) .searchable-combobox-input{padding-right:38px!important}
.filter-control .searchable-combobox-input:focus,.filter-control .searchable-combobox.is-open .searchable-combobox-input{border:0!important;box-shadow:none!important;background:transparent!important}
.filter-control .searchable-native-select{width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;padding:0!important}
.operations-table-tools .table-count-badge{margin-left:auto}
.operations-table-card .balanced-table thead th{background:color-mix(in srgb,var(--surface-2) 90%,#deeff8)!important}
.operations-table-card .balanced-table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--surface-2) 62%,var(--surface))}
.operations-table-card .balanced-table tbody tr:hover td{background:color-mix(in srgb,var(--alpha-cyan-500) 6%,var(--surface))!important}
.action-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:5px 8px!important;border-radius:9px!important}
.action-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}.action-btn.danger{color:#b64149;border-color:#efc9cd;background:#fff8f8}.action-btn.danger:hover{background:#fff0f1;color:#a42832}
.operations-task-status{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px}.operations-task-status>.kpi-card{grid-column:auto!important}

/* Purpose-built confirmation dialog for sensitive Operations actions. */
.confirm-backdrop{position:fixed;inset:0;z-index:1475;display:grid;place-items:center;padding:18px;background:rgba(3,25,43,.48);backdrop-filter:blur(6px);opacity:0;transition:opacity .15s ease}
.confirm-backdrop.is-visible{opacity:1}
.confirm-dialog{width:min(460px,calc(100vw - 28px));display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px 14px;padding:18px;border:1px solid color-mix(in srgb,var(--line) 78%,#c8dfeb);border-radius:20px;background:var(--surface);box-shadow:0 30px 90px rgba(2,24,44,.28);transform:translateY(8px) scale(.985);transition:transform .16s ease}
.confirm-backdrop.is-visible .confirm-dialog{transform:translateY(0) scale(1)}
.confirm-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#fff1f1;color:#b52f39;font-size:18px;font-weight:900}
.confirm-backdrop[data-tone="warning"] .confirm-icon{background:#fff6e4;color:#a86100}.confirm-backdrop[data-tone="primary"] .confirm-icon{background:#e8f3f9;color:#176690}
.confirm-copy{min-width:0}.confirm-eyebrow{display:block;color:var(--muted);font-size:8px;font-weight:850;letter-spacing:.11em}.confirm-copy h2{margin:4px 0 0;font-size:17px;color:var(--text);letter-spacing:-.02em}.confirm-copy p{margin:7px 0 0;color:var(--muted);font-size:11px;line-height:1.55;white-space:pre-line}
.confirm-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.confirm-actions button{min-width:102px}

/* Toast: slide/fade instead of abrupt browser-style feedback. */
.toast{left:auto!important;right:20px!important;bottom:22px!important;display:flex;align-items:center;gap:9px;max-width:min(430px,calc(100vw - 28px));padding:11px 13px!important;border-radius:13px!important;transform:translate3d(0,12px,0) scale(.985)!important;opacity:0;transition:opacity .18s ease,transform .18s ease!important}
.toast.is-visible{opacity:1;transform:translate3d(0,0,0) scale(1)!important}
.toast-icon{width:24px;height:24px;display:grid;place-items:center;flex:none;border-radius:8px;background:rgba(255,255,255,.12);font-weight:900}.toast-copy{line-height:1.4;white-space:pre-line;overflow-wrap:anywhere;max-height:min(34vh,220px);overflow:auto}
.toast[data-tone="warning"]{background:linear-gradient(135deg,#6d4a0a,#9b6809)}.toast[data-tone="danger"]{background:linear-gradient(135deg,#6b2028,#96303b)}

html[data-theme="dark"] .operations-dashboard-head,html[data-theme="dark"] .operations-screen-intro{background:radial-gradient(circle at 96% 0%,rgba(54,198,220,.09),transparent 28%),linear-gradient(135deg,var(--surface),#102734);border-color:#2a4655}
html[data-theme="dark"] .operations-period-card,html[data-theme="dark"] .operations-mini-metrics>div,html[data-theme="dark"] .operations-ai-metrics>div{background:#102632;border-color:#2d4857}
html[data-theme="dark"] .operations-mini-metrics .is-attention{background:#352d18;border-color:#6e5a25}
html[data-theme="dark"] .dashboard-source-card{background:linear-gradient(90deg,#122d3b,#102632)!important;border-color:#2e4d5e!important}
html[data-theme="dark"] .dashboard-source-card .source-note-icon{background:#1a3e51;color:#74bce3}
html[data-theme="dark"] .operations-card-heading,html[data-theme="dark"] .operations-table-tools{background:linear-gradient(180deg,#102b39,#0e2532)!important}
html[data-theme="dark"] .filter-control{background:#102632;border-color:#2d4857}html[data-theme="dark"] .filter-control:focus-within{background:#112a37;border-color:#3e9fd4}
html[data-theme="dark"] .operations-table-card .balanced-table tbody tr:nth-child(even) td{background:#102632}
html[data-theme="dark"] .operations-table-card .balanced-table tbody tr:hover td{background:#142f3d!important}
html[data-theme="dark"] .action-btn.danger{background:#382027;border-color:#713642;color:#ff9ca6}
html[data-theme="dark"] .confirm-dialog{background:#0f2532;border-color:#315263}html[data-theme="dark"] .confirm-icon{background:#42242b;color:#ff9ca6}
html[data-theme="dark"] .confirm-backdrop[data-tone="warning"] .confirm-icon{background:#413317;color:#ffd078}html[data-theme="dark"] .confirm-backdrop[data-tone="primary"] .confirm-icon{background:#173646;color:#7bbee2}

@media(max-width:1179px){
  .operations-dashboard .dashboard-core-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .operations-dashboard .dashboard-context-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .operations-dashboard .project-plan-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .operations-secondary-grid{grid-template-columns:1fr 1fr!important}.operations-secondary-grid>.operations-alert-card{grid-column:1/-1}
  .operations-dashboard-head,.operations-screen-intro{align-items:flex-start}.operations-mini-metrics{min-width:300px}
}
@media(max-width:820px){
  .operations-dashboard-head,.operations-screen-intro{display:grid;grid-template-columns:1fr;padding:15px}.operations-period-card,.operations-mini-metrics{width:100%;min-width:0}
  .operations-mini-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .operations-dashboard .dashboard-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.operations-dashboard .dashboard-context-grid>.kpi-card:last-child{grid-column:1/-1!important}
  .operations-dashboard .project-plan-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .operations-secondary-grid,.operations-chart-grid,.operations-bottom-grid{grid-template-columns:1fr!important}.operations-secondary-grid>.operations-alert-card{grid-column:auto}
  .operations-table-tools{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(180px,.48fr)!important}.filter-control--search,.filter-control--select{max-width:none;flex:none}.operations-table-tools .table-count-badge{grid-column:1/-1;justify-self:start;margin-left:0}
  .operations-task-status{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .toast{right:12px!important;bottom:calc(76px + env(safe-area-inset-bottom))!important}
}
@media(max-width:600px){
  .operations-dashboard-head h2,.operations-screen-intro h2{font-size:18px}.operations-dashboard-head p,.operations-screen-intro p{font-size:10px}
  .operations-section-heading{align-items:flex-start}.operations-section-heading p{display:none}
  .operations-dashboard .dashboard-core-grid,.operations-dashboard .dashboard-context-grid,.operations-dashboard .project-plan-kpi-grid,.operations-task-status{grid-template-columns:1fr!important}
  .operations-dashboard .dashboard-context-grid>.kpi-card:last-child{grid-column:auto!important}
  .operations-mini-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.operations-mini-metrics>div{padding:9px}.operations-mini-metrics strong{font-size:15px}.operations-mini-metrics span{font-size:7.5px}
  .operations-table-tools{grid-template-columns:1fr!important}.operations-table-tools .table-count-badge{grid-column:auto}
  .confirm-dialog{grid-template-columns:40px minmax(0,1fr);padding:15px;border-radius:17px}.confirm-icon{width:38px;height:38px;border-radius:12px}.confirm-actions{display:grid;grid-template-columns:1fr 1fr}.confirm-actions button{min-width:0}
  .toast{left:10px!important;right:10px!important;max-width:none}
}

/* ================================================================
   v4.7.28 — BUSINESS & RESOURCE SUITE / PREMIUM SAAS 2026
   Scope: Commercial, Planning, Procurement, CRM and Approval Inbox.
   Preserves existing API/data-contract selectors and workflow bindings.
   ================================================================ */
:root{
  --biz-radius-xl:20px;
  --biz-radius-lg:16px;
  --biz-shadow:0 14px 40px rgba(4,47,85,.07);
  --biz-shadow-hover:0 20px 48px rgba(4,47,85,.105);
  --biz-border-accent:color-mix(in srgb,var(--alpha-cyan-500) 22%,var(--line));
  --biz-soft-cyan:color-mix(in srgb,var(--alpha-cyan-100) 42%,var(--surface));
}
.business-suite-screen{min-width:0;isolation:isolate}
.business-screen-intro{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:18px 20px;border:1px solid color-mix(in srgb,var(--line) 82%,#c1dded);border-radius:var(--biz-radius-xl);
  background:radial-gradient(circle at 96% 0%,rgba(19,184,212,.105),transparent 28%),linear-gradient(135deg,var(--surface),var(--surface-2));
  box-shadow:var(--biz-shadow);overflow:hidden;position:relative;
}
.business-screen-intro::after{content:"";position:absolute;right:-42px;bottom:-74px;width:190px;height:190px;border-radius:50%;border:1px solid rgba(19,184,212,.08);pointer-events:none}
.business-intro-copy{min-width:0;max-width:760px;position:relative;z-index:1}
.business-eyebrow,.business-section-eyebrow{display:block;color:#1d6a94;font-size:8.5px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}
.business-intro-copy h2{margin:5px 0 0;color:var(--text);font-size:21px;line-height:1.15;letter-spacing:-.028em}
.business-intro-copy p{margin:7px 0 0;color:var(--muted);font-size:10.5px;line-height:1.58;max-width:760px}
.business-intro-metrics{display:grid;grid-template-columns:repeat(4,minmax(104px,1fr));gap:8px;flex:0 0 min(600px,48%);position:relative;z-index:1}
.business-intro-metric{min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--surface) 94%,var(--surface-2));box-shadow:0 5px 16px rgba(4,47,85,.035)}
.business-intro-metric span,.business-intro-metric small{display:block;color:var(--muted);font-size:8px;line-height:1.3}.business-intro-metric strong{display:block;margin-top:4px;color:var(--text);font-size:15px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.business-intro-metric small{margin-top:3px}
.business-intro-metric.is-attention{border-color:#efd59e;background:#fffaf1}.business-intro-metric.is-attention strong{color:#9d6204}
.business-kpi-grid{gap:11px!important}.business-kpi-grid--5{grid-template-columns:repeat(5,minmax(0,1fr))!important}.business-kpi-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))!important}.business-kpi-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.business-kpi-grid>.kpi-card:nth-child(n){grid-column:auto!important;min-width:0!important;min-height:120px!important;border-radius:16px!important;padding:12px 13px!important;background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 95%,var(--surface-2)));box-shadow:var(--biz-shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.business-kpi-grid>.kpi-card:hover{transform:translateY(-2px);border-color:var(--biz-border-accent);box-shadow:var(--biz-shadow-hover)}
.business-kpi-grid .kpi-label{font-size:10.5px;line-height:1.35}.business-kpi-grid .kpi-value{font-size:19px;margin-top:9px}.business-kpi-grid .kpi-foot{font-size:9px;line-height:1.3}
.business-table-card,.business-chart-card,.business-aging-card{border-radius:var(--biz-radius-lg)!important;box-shadow:var(--biz-shadow);overflow:hidden}
.business-card-heading{min-height:68px;margin-bottom:0!important;padding:14px 15px!important;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface-2) 72%,var(--surface)))}
.business-card-heading h2,.business-chart-card .section-header h2,.business-aging-card .section-header h2{margin-top:3px!important;font-size:14px!important;letter-spacing:-.012em}.business-card-heading p{max-width:760px;line-height:1.45}
.business-add-link{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--alpha-cyan-500) 26%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--alpha-cyan-100) 36%,var(--surface));transition:background .16s ease,border-color .16s ease,transform .16s ease}.business-add-link:hover{background:color-mix(in srgb,var(--alpha-cyan-100) 65%,var(--surface));border-color:var(--alpha-cyan-500);transform:translateY(-1px)}
.business-table-wrap{max-width:100%;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--alpha-cyan-500) 32%,var(--line)) transparent}
.business-suite-screen .table-wrap thead th{position:sticky;top:0;z-index:2;background:color-mix(in srgb,var(--surface-2) 92%,#e0f1fa)!important;box-shadow:0 1px 0 var(--line)}
.business-suite-screen .table-wrap tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--surface-2) 52%,var(--surface))}
.business-suite-screen .table-wrap tbody tr:hover td{background:color-mix(in srgb,var(--alpha-cyan-500) 6.5%,var(--surface))!important}
.business-suite-screen .table-wrap td,.business-suite-screen .table-wrap th{transition:background .14s ease}.business-suite-screen .table-wrap td{line-height:1.35}
.business-suite-screen .table-count-badge,.business-suite-screen .record-count{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:4px 8px;border:1px solid #cee2ec;border-radius:999px;background:#eff8fc;color:#295872;font-size:8.5px;font-weight:800;white-space:nowrap}
.business-row-actions{display:flex;align-items:center;justify-content:flex-start;gap:5px;flex-wrap:wrap;min-width:122px}
.business-row-actions .ghost-btn,.business-row-actions .icon-btn,.business-suite-screen .business-workflow{min-height:30px;border-radius:8px!important;font-size:9px!important}
.business-suite-screen .business-workflow{padding:5px 8px!important;background:var(--surface);border-color:var(--line);color:#365a6d}
.business-suite-screen .business-workflow[data-action="approve"],.business-suite-screen .business-workflow[data-action="activate"],.business-suite-screen .business-workflow[data-action="sign"]{background:#edf9f3;border-color:#c9ead8;color:#18713e}
.business-suite-screen .business-workflow[data-action="reject"],.business-suite-screen .business-workflow[data-action="terminate"],.business-suite-screen .business-workflow[data-action="cancel"]{background:#fff6f6;border-color:#f1d0d3;color:#ad3b45}
.business-suite-screen .business-workflow[data-action="submit"],.business-suite-screen .business-workflow[data-action="review"],.business-suite-screen .business-workflow[data-action="issue"]{background:#f0f7fa;border-color:#cee2ed;color:#1c5c7f}
.business-suite-screen .icon-btn{width:31px;height:31px;border-radius:9px}.business-suite-screen .icon-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.business-suite-screen .icon-btn.danger{color:#b64149;border-color:#efc9cd;background:#fff8f8}
.business-suite-screen .action-btn{min-height:31px!important;padding:5px 7px!important}
.business-suite-screen .action-btn svg{width:13px;height:13px}
.probability-pill{display:inline-flex;min-width:50px;justify-content:center;padding:4px 7px;border-radius:999px;background:#eff6fa;color:#285f7c;font-size:9px;font-weight:800;font-variant-numeric:tabular-nums}
.business-table-tools{display:flex!important;align-items:center!important;gap:9px!important;padding:10px 13px!important;background:var(--surface)!important;border-bottom:1px solid var(--line)}
.business-table-tools .filter-control--search{flex:1 1 360px;max-width:720px}.business-table-tools .filter-control--select{flex:0 0 220px}.business-table-tools .table-count-badge{margin-left:auto}
.business-suite-screen .auto-table-tools{gap:9px;padding:10px 13px;background:var(--surface);border-bottom:1px solid var(--line)}
.business-suite-screen .auto-table-tools .search-input,.business-suite-screen .auto-table-tools .filter-select{height:38px;border-radius:10px;background:var(--surface-2)}
.business-suite-screen .auto-table-tools .search-input{padding-left:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23628091' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:11px center}
.business-insight-grid{gap:14px}.business-chart-card{padding:15px;min-height:0}.business-chart-card .section-header{margin-bottom:10px}.business-chart-card .section-header p{line-height:1.45}.business-chart-stack>.business-chart-card{min-height:340px}
.business-dual-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.62fr);gap:14px;align-items:stretch}.business-dual-grid>*{min-width:0}
.business-aging-card{padding:15px;background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface-2) 68%,var(--surface)))}
.business-aging-card .aging-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.business-aging-card .aging-grid>div{padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.business-aging-card .aging-grid span{display:block;color:var(--muted);font-size:8px}.business-aging-card .aging-grid strong{display:block;margin-top:4px;color:var(--text);font-size:12px}.business-aging-card .aging-grid .is-attention{border-color:#efc9cd;background:#fff7f7}.business-aging-card .aging-grid .is-attention strong{color:#af3540}.business-aging-card .algorithm-note{margin-top:10px;border-radius:11px;background:color-mix(in srgb,var(--alpha-cyan-100) 34%,var(--surface))}
.business-alert-note{border-radius:14px!important;box-shadow:0 8px 24px rgba(166,37,45,.045)}
.business-table-stack{display:grid;grid-template-columns:1fr;gap:14px}.business-table-stack>.card{margin-top:0!important}
.business-tabs-shell{margin-top:14px}.business-tabs-shell .metric-switch{margin-top:0;padding:5px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--surface-2) 74%,var(--surface));display:inline-flex;gap:4px}.business-tabs-shell .metric-switch button{min-height:34px;border:0!important;border-radius:9px!important;background:transparent!important;color:var(--muted)!important;box-shadow:none!important;padding:7px 12px!important}.business-tabs-shell .metric-switch button.active{background:var(--surface)!important;color:var(--text)!important;box-shadow:0 3px 12px rgba(4,47,85,.08)!important}
.business-procurement-body>.grid.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px;margin-top:14px}.business-procurement-body>.grid.kpi-grid>.kpi-card:nth-child(n){grid-column:auto!important;min-height:112px;border-radius:15px;box-shadow:var(--biz-shadow)}
.business-procurement-body>.card,.business-procurement-body>.note{border-radius:var(--biz-radius-lg)}
.business-procurement-body>.note{margin-top:14px}
.approval-action{display:inline-flex!important;align-items:center;gap:5px;min-height:31px;padding:5px 8px!important;border-radius:9px!important;font-size:9px!important}.approval-action svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2}.approval-action--approve{background:#edf9f3!important;border-color:#c9ead8!important;color:#18713e!important}.approval-action--reject{background:#fff6f6!important;border-color:#f1d0d3!important;color:#ad3b45!important}.approval-pagination{padding:10px 13px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 64%,var(--surface))}
.business-table-skeleton{display:grid;gap:0;padding:0 12px 8px;background:var(--surface);overflow:hidden}.skeleton-row{display:grid;grid-template-columns:repeat(8,minmax(70px,1fr));gap:16px;align-items:center;min-height:48px;border-bottom:1px solid var(--line)}.skeleton-cell{height:9px;border-radius:999px;background:linear-gradient(90deg,var(--surface-2) 22%,color-mix(in srgb,var(--surface-3) 82%,var(--surface)) 44%,var(--surface-2) 68%);background-size:220% 100%;animation:businessSkeleton 1.2s ease-in-out infinite}.skeleton-cell--1{width:54%}.skeleton-cell--2{width:78%}.skeleton-cell--3{width:64%}.skeleton-cell--4{width:42%}@keyframes businessSkeleton{0%{background-position:105% 0}100%{background-position:-120% 0}}
.crm-pipeline-card .business-table-skeleton .skeleton-row{grid-template-columns:repeat(7,minmax(70px,1fr))}.crm-pipeline-pagination{padding:10px 13px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 64%,var(--surface))}
.crm-pipeline-pagination,.server-pagination{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.crm-pipeline-pagination span,.server-pagination span{color:var(--muted);font-size:9px}

html[data-theme="dark"] .business-screen-intro{background:radial-gradient(circle at 96% 0%,rgba(54,198,220,.09),transparent 28%),linear-gradient(135deg,var(--surface),#102734);border-color:#2a4655}
html[data-theme="dark"] .business-intro-metric{background:#102632;border-color:#2d4857}html[data-theme="dark"] .business-intro-metric.is-attention{background:#352d18;border-color:#6e5a25}html[data-theme="dark"] .business-intro-metric.is-attention strong{color:#ffd078}
html[data-theme="dark"] .business-card-heading,html[data-theme="dark"] .business-table-tools{background:linear-gradient(180deg,#102b39,#0e2532)!important}
html[data-theme="dark"] .business-suite-screen .table-wrap thead th{background:#142d3b!important}html[data-theme="dark"] .business-suite-screen .table-wrap tbody tr:nth-child(even) td{background:#102632}html[data-theme="dark"] .business-suite-screen .table-wrap tbody tr:hover td{background:#14303f!important}
html[data-theme="dark"] .business-suite-screen .table-count-badge,html[data-theme="dark"] .business-suite-screen .record-count{background:#173240;border-color:#305163;color:#8fc0db}
html[data-theme="dark"] .business-aging-card{background:linear-gradient(180deg,#102936,#0f2532)}html[data-theme="dark"] .business-aging-card .aging-grid>div{background:#102632;border-color:#2d4857}html[data-theme="dark"] .business-aging-card .aging-grid .is-attention{background:#3a2428;border-color:#6c3942}html[data-theme="dark"] .business-aging-card .aging-grid .is-attention strong{color:#ff9ca6}
html[data-theme="dark"] .business-tabs-shell .metric-switch{background:#0f2532;border-color:#2d4857}html[data-theme="dark"] .business-tabs-shell .metric-switch button.active{background:#183341!important;color:#eaf3f7!important;box-shadow:none!important}
html[data-theme="dark"] .business-suite-screen .business-workflow{background:#102632;border-color:#2d4857;color:#a1c0d0}html[data-theme="dark"] .business-suite-screen .business-workflow[data-action="approve"],html[data-theme="dark"] .business-suite-screen .business-workflow[data-action="activate"],html[data-theme="dark"] .business-suite-screen .business-workflow[data-action="sign"]{background:#173329;border-color:#285840;color:#8fe0af}html[data-theme="dark"] .business-suite-screen .business-workflow[data-action="reject"],html[data-theme="dark"] .business-suite-screen .business-workflow[data-action="terminate"],html[data-theme="dark"] .business-suite-screen .business-workflow[data-action="cancel"]{background:#382329;border-color:#6a3943;color:#ff9ca6}
html[data-theme="dark"] .approval-action--approve{background:#173329!important;border-color:#285840!important;color:#8fe0af!important}html[data-theme="dark"] .approval-action--reject{background:#382329!important;border-color:#6a3943!important;color:#ff9ca6!important}html[data-theme="dark"] .probability-pill{background:#183341;color:#87bfdd}
html[data-theme="dark"] .business-suite-screen .auto-table-tools .search-input,html[data-theme="dark"] .business-suite-screen .auto-table-tools .filter-select{background:#102632}
html[data-theme="dark"] .business-add-link{background:#173342;border-color:#305163;color:#89c2e0}

@media(prefers-reduced-motion:reduce){.business-kpi-grid>.kpi-card,.business-add-link,.skeleton-cell{transition:none;animation:none}.business-kpi-grid>.kpi-card:hover,.business-add-link:hover{transform:none}}
@media(max-width:1360px){.business-intro-metrics{grid-template-columns:repeat(2,minmax(120px,1fr));flex-basis:430px}.business-kpi-grid--5{grid-template-columns:repeat(3,minmax(0,1fr))!important}.business-kpi-grid--5>.kpi-card:nth-child(n){grid-column:auto!important}}
@media(max-width:1179px){.business-screen-intro{align-items:flex-start}.business-intro-metrics{flex-basis:390px}.business-kpi-grid--4,.business-kpi-grid--5{grid-template-columns:repeat(2,minmax(0,1fr))!important}.business-kpi-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.business-dual-grid{grid-template-columns:1fr}.business-aging-card .aging-grid{grid-template-columns:repeat(5,minmax(110px,1fr));overflow-x:auto}.business-procurement-body>.grid.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:820px){.business-screen-intro{display:grid;grid-template-columns:1fr;padding:15px}.business-intro-metrics{width:100%;grid-template-columns:repeat(4,minmax(0,1fr));flex-basis:auto}.business-kpi-grid--3,.business-kpi-grid--4,.business-kpi-grid--5{grid-template-columns:repeat(2,minmax(0,1fr))!important}.business-table-tools{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(190px,.48fr)!important}.business-table-tools .filter-control--search,.business-table-tools .filter-control--select{max-width:none;flex:none}.business-table-tools .table-count-badge{grid-column:1/-1;justify-self:start;margin-left:0}.business-procurement-body>.grid.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.business-procurement-body>.grid.kpi-grid>.kpi-card:last-child:nth-child(odd){grid-column:1/-1!important}.business-tabs-shell .metric-switch{display:flex;width:100%;overflow-x:auto;white-space:nowrap}.business-tabs-shell .metric-switch button{flex:0 0 auto}}
@media(max-width:600px){.business-intro-copy h2{font-size:18px}.business-intro-copy p{font-size:10px}.business-intro-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.business-intro-metric{padding:9px}.business-intro-metric strong{font-size:14px}.business-kpi-grid--3,.business-kpi-grid--4,.business-kpi-grid--5,.business-procurement-body>.grid.kpi-grid{grid-template-columns:1fr!important}.business-kpi-grid>.kpi-card:nth-child(n),.business-procurement-body>.grid.kpi-grid>.kpi-card:nth-child(n){grid-column:auto!important}.business-table-tools{grid-template-columns:1fr!important}.business-table-tools .table-count-badge{grid-column:auto}.business-card-heading{align-items:flex-start}.business-card-heading .business-add-link{flex:none}.business-row-actions{min-width:145px}.business-aging-card .aging-grid{grid-template-columns:repeat(5,minmax(112px,1fr))}.skeleton-row{grid-template-columns:repeat(8,minmax(90px,1fr));min-width:820px}}

/* v4.7.28 — native-prompt replacement for Business & Resource workflow reasons. */
.action-prompt-dialog{width:min(520px,calc(100vw - 28px))}.action-prompt-dialog .confirm-copy{display:grid}.action-prompt-input{width:100%;min-height:92px;resize:vertical;margin-top:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--text);font:inherit;font-size:11px;line-height:1.5;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.action-prompt-input:focus{border-color:color-mix(in srgb,var(--alpha-cyan-500) 72%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--alpha-cyan-500) 13%,transparent);background:var(--surface)}.action-prompt-error{min-height:15px;margin-top:5px;color:#b64149;font-size:9.5px;font-weight:700}.action-prompt-backdrop[data-tone="danger"] .action-prompt-icon{background:#fff1f1;color:#b52f39}.action-prompt-backdrop[data-tone="warning"] .action-prompt-icon{background:#fff6e4;color:#a86100}html[data-theme="dark"] .action-prompt-input{background:#102632;border-color:#315263;color:#eaf2f6}html[data-theme="dark"] .action-prompt-input:focus{background:#122b38;border-color:#437895}.action-prompt-backdrop .confirm-actions{margin-top:2px}
.business-suite-screen .auto-table-tools .combobox-filter .searchable-combobox-input{padding-left:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23628091' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16l-6.2 7.1V18l-3.6 1.8v-7.7z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:11px center}.business-suite-screen .business-procurement-body .table-tools{background:var(--surface);border-bottom:1px solid var(--line);padding:10px 13px}.business-suite-screen .business-procurement-body .table-tools .search-input{padding-left:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23628091' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:11px center}.business-suite-screen .business-procurement-body .combobox-filter .searchable-combobox-input{padding-left:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23628091' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16l-6.2 7.1V18l-3.6 1.8v-7.7z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:11px center}

/* ========================================================================== 
   ALPHA DESIGN ERP Cloud v4.7.28 — Enterprise UI/UX Completion
   HR • Finance • Settings • System • Cross-screen display hardening
   ========================================================================== */
.enterprise-suite-screen{display:grid;gap:16px;min-width:0}.suite-screen-body{min-width:0}.suite-screen-body>*:first-child{margin-top:0}
.suite-screen-intro{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:108px;padding:18px 20px;border:1px solid #d7e5ec;border-radius:19px;background:radial-gradient(circle at 95% 10%,rgba(19,184,212,.13),transparent 28%),linear-gradient(135deg,#fff 0%,#fbfdfe 72%,#eff6fa 100%);box-shadow:0 12px 34px rgba(4,47,85,.055)}
.suite-screen-intro:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,var(--alpha-cyan-500),var(--alpha-navy-800));opacity:.9}.suite-intro-copy{min-width:0;max-width:760px}.suite-eyebrow{display:block;margin-bottom:5px;color:#176690;font-size:9.5px;font-weight:850;letter-spacing:.115em}.suite-intro-copy h2{margin:0;color:var(--alpha-navy-950);font-size:20px;line-height:1.18;letter-spacing:-.025em}.suite-intro-copy p{max-width:760px;margin:6px 0 0;color:#607789;font-size:11px;line-height:1.55}.suite-intro-metrics{display:flex;gap:8px;align-items:stretch;flex:0 0 auto}.suite-intro-metric{display:flex;min-width:116px;max-width:190px;flex-direction:column;justify-content:center;padding:10px 12px;border:1px solid #dde8ee;border-radius:13px;background:rgba(255,255,255,.86);box-shadow:0 5px 18px rgba(4,47,85,.04)}.suite-intro-metric span{color:#718697;font-size:9px}.suite-intro-metric strong{margin-top:3px;color:var(--alpha-navy-950);font-size:15px;line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suite-intro-metric small{margin-top:3px;color:#78909f;font-size:8.5px}.suite-intro-metric.is-attention{background:#fff8e8;border-color:#efd89f}.suite-intro-metric.is-attention strong{color:#985a00}
.suite-hr-screen .suite-screen-intro{background:radial-gradient(circle at 94% 14%,rgba(42,192,176,.13),transparent 28%),linear-gradient(135deg,#fff,#fbfdfe 70%,#eef5f9)}.suite-finance-screen .suite-screen-intro{background:radial-gradient(circle at 94% 14%,rgba(11,115,246,.10),transparent 28%),linear-gradient(135deg,#fff,#fbfdff 70%,#eff6fd)}.suite-settings-screen .suite-screen-intro,.suite-system-screen .suite-screen-intro{background:radial-gradient(circle at 94% 14%,rgba(96,120,145,.09),transparent 28%),linear-gradient(135deg,#fff,#fcfdfe 72%,#f2f6f8)}
.enterprise-suite-screen .kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.suite-hr-screen .kpi-grid:not(.annual-benefit-kpis){grid-template-columns:repeat(4,minmax(0,1fr))}.suite-finance-screen .kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.suite-finance-screen .kpi-card,.suite-hr-screen .kpi-card{border-radius:16px}.suite-hr-screen .kpi-card,.suite-finance-screen .kpi-card{min-height:118px}.suite-hr-screen .kpi-card:hover,.suite-finance-screen .kpi-card:hover{transform:translateY(-1px)}
.suite-table-tools{display:flex!important;align-items:center;gap:8px!important;padding:10px 12px!important;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fbfdfe,#f6fafc)!important;min-width:0}.suite-filter-control{height:38px;min-width:0}.suite-filter-control.filter-control--search{flex:1 1 330px}.suite-filter-control.filter-control--select{flex:0 1 260px}.suite-filter-control>input,.suite-filter-control>select{width:100%;min-width:0}.suite-filter-control .searchable-combobox{width:100%;min-width:0}.suite-filter-control.filter-control--select .searchable-combobox-input{padding-left:36px!important}.suite-filter-control.filter-control--select>svg{z-index:4}.suite-table-tools .table-count-badge{margin-left:auto;flex:none}.suite-table-tools .searchable-combobox{height:100%}
.suite-hr-screen .timesheet-period-toolbar,.suite-hr-screen .payroll-period-toolbar{display:flex;align-items:center;gap:8px;padding:11px 12px;border:1px solid #dae6ec;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbfc);box-shadow:0 6px 20px rgba(4,47,85,.045);overflow-x:auto;scrollbar-width:thin}.suite-hr-screen .timesheet-period-toolbar label,.suite-hr-screen .payroll-period-toolbar label{display:flex;align-items:center;gap:7px;flex:0 0 auto;color:#486275;font-size:10px;font-weight:750}.suite-hr-screen .timesheet-period-toolbar button,.suite-hr-screen .payroll-period-toolbar button{flex:0 0 auto;white-space:nowrap}.suite-hr-screen .workflow-helper{margin-top:7px;padding:9px 11px;border:1px solid #d9e5ec;border-radius:11px;background:#f2f8fb;color:#546e7c;font-size:10px;line-height:1.45}.suite-hr-screen .people-layout-stack{display:grid;gap:16px}.suite-hr-screen .people-directory-card,.suite-hr-screen .payroll-detail-card,.suite-hr-screen .staff-cost-card{border-radius:16px}.suite-hr-screen .department-structure-card{border-radius:16px;background:linear-gradient(180deg,#fff,#fbfcfd)}.suite-hr-screen .payroll-summary-strip{border-radius:0 0 14px 14px;background:#f7fafc}.suite-hr-screen .annual-benefit-hero{border-radius:18px}.suite-hr-screen .payroll-detail-wrap{max-height:min(62vh,640px)}.suite-hr-screen .payroll-detail-table thead th{top:0}.suite-hr-screen .payroll-sticky-col{background:var(--surface)!important}.suite-hr-screen tbody tr:hover .payroll-sticky-col{background:#f3f9fc!important}
.suite-finance-screen .modern-hero{border-radius:19px;margin:0}.suite-finance-screen .accounting-tabs{position:sticky;top:calc(var(--header) + var(--toolbar) + 8px);z-index:14;box-shadow:0 5px 20px rgba(4,47,85,.05);backdrop-filter:blur(12px)}.suite-finance-screen .accounting-toolbar{border:1px solid #dce7ee;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbfd);padding:12px 14px}.suite-finance-screen .tax-legal-note,.suite-finance-screen .note{border-radius:13px}.suite-finance-screen .tax-calendar-card,.suite-finance-screen .tax-compliance-card,.suite-finance-screen .tax-invoice-card{border-radius:16px}.suite-finance-screen .chart-card,.suite-finance-screen .table-card{border-radius:16px}.suite-finance-screen .finance-actual-label{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;background:#eaf8f1;color:#1b7544;font-size:9px;font-weight:800}.suite-finance-screen .finance-forecast-label{background:#fff7e6;color:#946000}.suite-finance-screen .accounting-overview-tables{gap:16px}.suite-finance-screen .tax-calendar-list{display:grid;gap:7px}
.suite-settings-screen .settings-workspace{display:grid;gap:16px}.suite-settings-screen .settings-main-grid{align-items:start}.suite-settings-screen .settings-card{border-radius:17px;border-color:#d9e5ec;box-shadow:0 9px 27px rgba(4,47,85,.055)}.suite-settings-screen .settings-card-heading{padding-bottom:12px;border-bottom:1px solid #e7eef2}.suite-settings-screen .settings-form-section{padding:16px 0;border-bottom:1px solid #edf2f5}.suite-settings-screen .settings-form-section:last-of-type{border-bottom:0}.suite-settings-screen .settings-section-title>span{box-shadow:inset 0 0 0 1px #d0e2ec}.suite-settings-screen .settings-form-grid .field{min-width:0}.suite-settings-screen .settings-save-bar{position:sticky;bottom:14px;z-index:9;border:1px solid #d5e3eb;border-radius:14px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);box-shadow:0 12px 34px rgba(4,47,85,.12)}.suite-settings-screen .legal-policy-version-card,.suite-settings-screen .tax-package-card,.suite-settings-screen .template-version-card{border-radius:13px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.suite-settings-screen .legal-policy-version-card:hover,.suite-settings-screen .tax-package-card:hover,.suite-settings-screen .template-version-card:hover{transform:translateY(-1px);border-color:#bfd6e2;box-shadow:0 8px 24px rgba(4,47,85,.06)}
.suite-system-screen .export-center,.suite-system-screen .trash-workspace{min-width:0}.suite-system-screen .export-panel,.suite-system-screen .export-kpi,.suite-system-screen .trash-card{border-radius:16px}.suite-system-screen .import-box{background:var(--surface-2);border-color:#bed2dd}.suite-system-screen .export-report,.suite-system-screen .trash-entry{transition:background .15s ease,border-color .15s ease,transform .15s ease}.suite-system-screen .export-report:hover,.suite-system-screen .trash-entry:hover{transform:translateY(-1px)}
/* System/cloud screens rendered outside the core view dispatcher */
.cloud-hero,.security-hero{border-radius:19px!important;border:1px solid #d9e5ec!important;background:radial-gradient(circle at 92% 0%,rgba(19,184,212,.13),transparent 28%),linear-gradient(135deg,#fff,#f8fbfd)!important;color:var(--text)!important;box-shadow:0 12px 34px rgba(4,47,85,.055)!important}.cloud-hero h2,.security-hero h2{color:var(--alpha-navy-950)!important;letter-spacing:-.022em}.cloud-hero p,.security-hero p{color:#61788a!important}.cloud-health>div,.security-health>div{background:rgba(255,255,255,.86)!important;border:1px solid #dde8ee!important;border-radius:13px!important;color:var(--text)!important;box-shadow:0 4px 16px rgba(4,47,85,.035)}.cloud-health strong,.security-health strong{color:var(--alpha-navy-950)!important}.feature-tile,.admin-card,.integration-row,.upload-drop,.security-card,.cloud-card{border-color:#dce6ec!important;border-radius:15px!important;background:var(--surface)!important;box-shadow:0 7px 22px rgba(4,47,85,.045)!important}.feature-tile:hover,.admin-card:hover,.integration-row:hover{border-color:#bed6e3!important;box-shadow:0 11px 28px rgba(4,47,85,.075)!important}.cloud-grid,.admin-grid,.feature-grid{gap:14px!important}
/* Cross-screen display hardening */
.content,.suite-screen-body,.enterprise-suite-screen,.card,.table-card,.table-wrap,.grid>*{min-width:0}.table-wrap{overscroll-behavior-x:contain;overscroll-behavior-y:auto}.table-wrap table{max-width:none}.actions,.table-action-group{align-items:center;gap:5px}.actions button,.table-action-group button{white-space:nowrap}.searchable-combobox{min-width:0}.searchable-combobox-input{min-width:0}.searchable-combobox-list{z-index:5000!important}.modal-backdrop,.confirm-backdrop,.action-prompt-backdrop{z-index:6000!important}.toast{z-index:7000!important}.table-count-badge{white-space:nowrap}.empty-state{padding:24px 16px!important;text-align:center}.page-heading,.page-heading>div{min-width:0}.page-heading h1,.page-heading p{overflow:hidden;text-overflow:ellipsis}.toolbar-actions{min-width:0}.record-focus{animation:enterpriseRecordFocus 1.6s ease-out}
@keyframes enterpriseRecordFocus{0%{box-shadow:inset 0 0 0 999px rgba(19,184,212,.13)}100%{box-shadow:inset 0 0 0 999px rgba(19,184,212,0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.enterprise-suite-screen *,.cloud-hero *,.security-hero *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
@media(max-width:1320px){.enterprise-suite-screen .kpi-grid,.suite-finance-screen .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.suite-hr-screen .kpi-grid:not(.annual-benefit-kpis){grid-template-columns:repeat(2,minmax(0,1fr))}.suite-screen-intro{align-items:flex-start}.suite-intro-metrics{flex-wrap:wrap;justify-content:flex-end}.suite-intro-metric{min-width:108px}}
@media(max-width:1024px){.suite-screen-intro{flex-direction:column;gap:13px}.suite-intro-metrics{width:100%;justify-content:flex-start}.suite-intro-metric{flex:1 1 130px;max-width:none}.suite-table-tools{flex-wrap:wrap}.suite-filter-control.filter-control--search{flex:1 1 100%}.suite-filter-control.filter-control--select{flex:1 1 220px}.suite-settings-screen .settings-main-grid,.suite-settings-screen .settings-secondary-grid{grid-template-columns:1fr!important}.suite-finance-screen .accounting-tabs{position:static}}
@media(max-width:760px){.enterprise-suite-screen{gap:12px}.suite-screen-intro{min-height:0;padding:15px;border-radius:15px}.suite-intro-copy h2{font-size:18px}.suite-intro-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.suite-intro-metric{min-width:0}.enterprise-suite-screen .kpi-grid,.suite-finance-screen .kpi-grid,.suite-hr-screen .kpi-grid:not(.annual-benefit-kpis),.suite-hr-screen .annual-benefit-kpis{grid-template-columns:1fr!important}.suite-table-tools{padding:9px!important}.suite-filter-control.filter-control--select{flex:1 1 100%}.suite-table-tools .table-count-badge{margin-left:0}.suite-hr-screen .timesheet-period-toolbar,.suite-hr-screen .payroll-period-toolbar{margin-inline:-1px;border-radius:12px}.suite-settings-screen .settings-save-bar{position:static;display:grid;gap:10px}.suite-settings-screen .settings-save-bar button{width:100%}.cloud-health,.security-health{grid-template-columns:1fr!important}.toolbar-actions{overflow-x:auto;max-width:100%;scrollbar-width:none}.toolbar-actions::-webkit-scrollbar{display:none}.page-heading{min-width:0}}
@media(max-width:480px){.suite-intro-metrics{grid-template-columns:1fr}.suite-intro-metric{padding:9px 10px}.suite-table-tools{display:grid!important;grid-template-columns:1fr}.suite-table-tools>*{width:100%;max-width:none!important}.suite-table-tools .table-count-badge{justify-self:start;width:auto}.suite-intro-copy p{font-size:10.5px}}
html[data-theme="dark"] .suite-screen-intro{background:radial-gradient(circle at 96% 0%,rgba(54,198,220,.09),transparent 28%),linear-gradient(135deg,var(--surface),#102734);border-color:#2a4655;box-shadow:0 12px 34px rgba(0,0,0,.14)}html[data-theme="dark"] .suite-intro-copy h2{color:#ebf3f7}html[data-theme="dark"] .suite-intro-copy p{color:#9eb3bf}html[data-theme="dark"] .suite-intro-metric{background:#102632;border-color:#2d4857}html[data-theme="dark"] .suite-intro-metric strong{color:#ebf3f7}html[data-theme="dark"] .suite-intro-metric span,html[data-theme="dark"] .suite-intro-metric small{color:#90a9b6}html[data-theme="dark"] .suite-intro-metric.is-attention{background:#352d18;border-color:#6e5a25}html[data-theme="dark"] .suite-table-tools{background:linear-gradient(180deg,#102b39,#0e2532)!important;border-color:#2d4857}html[data-theme="dark"] .suite-hr-screen .timesheet-period-toolbar,html[data-theme="dark"] .suite-hr-screen .payroll-period-toolbar,html[data-theme="dark"] .suite-finance-screen .accounting-toolbar{background:linear-gradient(180deg,#102b39,#0e2532);border-color:#2d4857}html[data-theme="dark"] .suite-hr-screen .workflow-helper{background:#122935;border-color:#2d4857;color:#9db2bd}html[data-theme="dark"] .suite-hr-screen .department-structure-card,html[data-theme="dark"] .suite-hr-screen .payroll-summary-strip{background:#102632}html[data-theme="dark"] .suite-hr-screen .payroll-sticky-col{background:#0f2532!important}html[data-theme="dark"] .suite-hr-screen tbody tr:hover .payroll-sticky-col{background:#14303f!important}html[data-theme="dark"] .suite-settings-screen .settings-card{border-color:#2b4655}html[data-theme="dark"] .suite-settings-screen .settings-card-heading,html[data-theme="dark"] .suite-settings-screen .settings-form-section{border-color:#29424f}html[data-theme="dark"] .suite-settings-screen .settings-save-bar{background:rgba(15,37,50,.95);border-color:#315263}html[data-theme="dark"] .cloud-hero,html[data-theme="dark"] .security-hero{background:radial-gradient(circle at 96% 0%,rgba(54,198,220,.09),transparent 28%),linear-gradient(135deg,#0f2532,#122b38)!important;border-color:#2a4655!important}html[data-theme="dark"] .cloud-hero h2,html[data-theme="dark"] .security-hero h2{color:#ebf3f7!important}html[data-theme="dark"] .cloud-hero p,html[data-theme="dark"] .security-hero p{color:#9eb3bf!important}html[data-theme="dark"] .cloud-health>div,html[data-theme="dark"] .security-health>div,html[data-theme="dark"] .feature-tile,html[data-theme="dark"] .admin-card,html[data-theme="dark"] .integration-row,html[data-theme="dark"] .upload-drop,html[data-theme="dark"] .security-card,html[data-theme="dark"] .cloud-card{background:#102632!important;border-color:#2d4857!important;color:#dde9ef!important}html[data-theme="dark"] .cloud-health strong,html[data-theme="dark"] .security-health strong{color:#ebf3f7!important}
.suite-loading-card{overflow:hidden;padding:14px;border-radius:16px}.suite-loading-head{display:flex;gap:10px;align-items:center;padding:4px 2px 14px}.suite-loading-head .skeleton-cell:first-child{width:min(340px,52%);height:17px}.suite-loading-head .skeleton-cell:last-child{width:110px;height:17px;margin-left:auto}.suite-loading-card .business-table-skeleton{border:1px solid var(--line);border-radius:13px;overflow:hidden}.suite-load-state{border-radius:15px}.suite-load-state.is-error{border-color:#f2c9cc;background:#fff8f8;color:#8b2932}.suite-load-state p{margin:6px 0 0;font-size:11px;line-height:1.5}html[data-theme="dark"] .suite-loading-card{background:#0f2532;border-color:#2b4655}html[data-theme="dark"] .suite-loading-card .business-table-skeleton{border-color:#2b4655}html[data-theme="dark"] .suite-load-state.is-error{background:#351e22;border-color:#6e3c45;color:#ffced4}
.system-cloud-content{display:grid;gap:16px;min-width:0}.system-cloud-content>.section{margin-top:0}.system-cloud-content .suite-screen-intro+*{margin-top:0}.system-cloud-content .kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.system-cloud-content .table-card{border-radius:16px}.system-cloud-content .role-access-card,.system-cloud-content .security-posture-card{border-radius:15px;transition:transform .15s ease,box-shadow .15s ease}.system-cloud-content .role-access-card:hover,.system-cloud-content .security-posture-card:hover{transform:translateY(-1px)}@media(max-width:1120px){.system-cloud-content .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.system-cloud-content .kpi-grid{grid-template-columns:1fr}}

/* v4.7.35 — cross-device operational hardening: coarse-pointer touch targets + iOS Safari viewport/input safety. */
:root{--alpha-visual-viewport-height:100dvh;--alpha-visual-viewport-offset-top:0px}
.table-wrap{max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
@media (max-width:1024px),(pointer:coarse){
  #appShell .table-wrap .table-col-actions button,
  #appShell .table-wrap .actions button,
  #appShell .table-wrap .table-action-group button,
  #appShell .business-row-actions button,
  #appShell .documents-table .document-actions-cell button,
  #appShell .journal-action-cell button,
  #appShell .approval-action,
  #appShell .action-btn,
  #appShell .business-workflow,
  #appShell .business-add-link,
  #appShell .metric-switch button,
  #appShell .section-link,
  #appShell .nav-group-toggle,
  .network-state-banner button{
    min-width:44px!important;
    min-height:44px!important;
  }
  #appShell .business-row-actions,
  #appShell .table-action-group,
  #appShell td.table-col-actions .actions{
    gap:6px!important;
    flex-wrap:wrap!important;
  }
  #appShell td.table-col-actions{white-space:normal!important}
}
@supports (-webkit-touch-callout:none){
  @media(max-width:1024px){
    /* Prevent iOS Safari auto-zoom when focusing compact ERP filters/forms. */
    input,select,textarea{font-size:16px!important}
    .right-drawer{height:var(--alpha-visual-viewport-height,100dvh)!important}
    .modal{max-height:calc(var(--alpha-visual-viewport-height,100dvh) - 12px)!important}
  }
}


/* ========================================================================== 
   v4.7.36 — UI SYSTEM HARDENING
   Single action-icon language • overlay-safe searchable selects • full period
   labels • stacked contract/aging workspace • consistent generated filters.
   ========================================================================== */

/* Searchable select portals are appended to <body>; they must stay above every
   modal/drawer backdrop or the list looks dimmed and cannot receive clicks. */
.searchable-combobox-list{
  z-index:6500!important;
  max-width:calc(100vw - 16px);
  box-sizing:border-box;
}
.searchable-combobox-list[data-layer="overlay"]{
  box-shadow:0 26px 72px rgba(2,31,52,.30);
}

/* One professional action-icon language across Operations, Projects, Business,
   Finance and generated tables. This also prevents an unconstrained SVG from
   rendering as the oversized black trash icon seen in Document Workflow. */
#appShell .actions button>svg,
#appShell .table-action-group button>svg,
#appShell .business-row-actions button>svg,
#appShell .document-actions-cell button>svg,
#appShell button.edit-row>svg,
#appShell button.delete-row>svg,
#appShell button.document-delete>svg,
#appShell button[class*="-delete"]>svg{
  width:14px!important;
  height:14px!important;
  min-width:14px!important;
  min-height:14px!important;
  flex:0 0 14px;
  display:block;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#appShell .action-btn,
#appShell .business-row-actions .icon-btn,
#appShell .document-actions-cell .ghost-btn{
  gap:6px;
  box-shadow:none;
}
#appShell .business-row-actions{
  display:flex!important;
  align-items:center;
  align-content:center;
  gap:6px!important;
  flex-wrap:wrap;
}
#appShell .business-row-actions .icon-btn{
  flex:0 0 auto;
}

/* Auto-generated quick filters now use the same inline SVG/filter-control
   component as purpose-built screens. Disable legacy data-URI background icons
   so only one search/filter glyph is ever visible. */
.auto-table-tools .auto-filter-control{
  min-width:0;
  margin:0;
}
.auto-table-tools .auto-filter-control.filter-control--search{
  flex:1 1 320px;
  max-width:none;
}
.auto-table-tools .auto-filter-control.filter-control--select{
  flex:0 1 260px;
  width:min(260px,100%);
}
.business-suite-screen .auto-table-tools .auto-filter-control .search-input,
.business-suite-screen .auto-table-tools .auto-filter-control .searchable-combobox-input,
.business-suite-screen .business-procurement-body .auto-filter-control .search-input,
.business-suite-screen .business-procurement-body .auto-filter-control .searchable-combobox-input{
  background-image:none!important;
  background-repeat:no-repeat!important;
  padding-left:36px!important;
}

/* Contract register and receivable aging are information-dense. Stacking them
   gives each table/card the full content width instead of clipping a right rail. */
.commercial-contract-stack.business-dual-grid{
  grid-template-columns:minmax(0,1fr)!important;
  gap:16px!important;
  align-items:start!important;
}
.commercial-contract-stack>.commercial-contract-register-card,
.commercial-contract-stack>.commercial-aging-card{
  width:100%;
  min-width:0;
}
.commercial-contract-stack .commercial-aging-card .aging-grid{
  grid-template-columns:repeat(5,minmax(130px,1fr));
}

/* Period cards must show the full active date range on Finance/Tax instead of
   ellipsis such as “31/12/2…”. */
.suite-intro-metric.is-period{
  min-width:236px!important;
  max-width:290px!important;
}
.suite-intro-metric.is-period strong{
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  font-size:14px;
}

@media(max-width:1024px){
  .suite-intro-metric.is-period{
    flex:1 1 236px!important;
    max-width:none!important;
  }
  .auto-table-tools .auto-filter-control.filter-control--select{
    flex:1 1 220px;
    width:auto;
  }
}
@media(max-width:700px){
  .searchable-combobox-list{max-width:calc(100vw - 12px)}
  .suite-intro-metric.is-period{min-width:0!important}
  .suite-intro-metric.is-period strong{white-space:normal!important;overflow-wrap:anywhere}
  .auto-table-tools .auto-filter-control.filter-control--search,
  .auto-table-tools .auto-filter-control.filter-control--select{
    flex:1 1 100%;
    width:100%;
  }
}

/* Security overlays must remain above every body-level portal introduced by UI
   components. Hide active combo lists while privacy masking is engaged. */
.privacy-shield{z-index:8000!important}
.privacy-shield-active .searchable-combobox-list{display:none!important}


/* ========================================================================== 
   GLOBAL UI/UX HOTFIX — action columns, inline icon/text, modal dropdowns
   ========================================================================== */
:root{--ux-action-gap:8px;--ux-action-min-height:34px;--ux-dropdown-z:6500;--ux-modal-z:6000}
.searchable-combobox{position:relative!important;isolation:isolate;min-width:0}
.searchable-combobox.is-open{z-index:5}
.searchable-combobox-list{position:fixed!important;z-index:var(--ux-dropdown-z)!important;margin:0!important;overflow:auto!important;overscroll-behavior:contain;transform:translateZ(0);backface-visibility:hidden;contain:layout paint style}
.searchable-combobox-list[hidden]{display:none!important}
.modal-backdrop,.confirm-backdrop,.action-prompt-backdrop{z-index:var(--ux-modal-z)!important}

/* A <td> remains a table-cell in table mode. Card mode deliberately turns every cell into a
   full-width flex row; forcing only the action cell back to table-cell makes it shrink to its
   buttons and recreates the narrow/per-character card geometry this layer is meant to avoid. */
#appShell table:not(.alpha-card-view) td.table-col-actions,#appShell table:not(.alpha-card-view) td.actions,#appShell table:not(.alpha-card-view) td.business-row-actions,#appShell table:not(.alpha-card-view) td.document-actions-cell,#appShell table:not(.alpha-card-view) td.timesheet-actions,#appShell table:not(.alpha-card-view) td.payroll-actions-cell,#appShell table:not(.alpha-card-view) td.journal-action-cell,#appShell table:not(.alpha-card-view) td.tax-actions-cell{display:table-cell!important;text-align:center;vertical-align:middle;white-space:nowrap!important;overflow:visible!important;padding-left:8px!important;padding-right:8px!important}
#appShell th.table-col-actions{text-align:center!important;vertical-align:middle!important}
#appShell td.table-col-actions>.table-action-group,#appShell td.actions>.table-action-group,#appShell td.business-row-actions>.table-action-group,#appShell td.document-actions-cell>.table-action-group,#appShell td.timesheet-actions>.table-action-group,#appShell td.payroll-actions-cell>.table-action-group,#appShell td.journal-action-cell>.table-action-group,#appShell td.tax-actions-cell>.table-action-group{width:100%;min-width:0;display:flex!important;justify-content:center!important;align-items:center!important;align-content:center!important;gap:var(--ux-action-gap)!important;flex-wrap:nowrap!important;margin-inline:auto!important}
#appShell table.table-generated-grid:not(.alpha-card-view) th.table-col-actions,#appShell table.table-generated-grid:not(.alpha-card-view) td.table-col-actions,#appShell .balanced-table.table-planning-budget:not(.alpha-card-view) .table-col-actions,#appShell .balanced-table.table-planning-resource:not(.alpha-card-view) .table-col-actions,#appShell .balanced-table.table-planning-commitments:not(.alpha-card-view) .table-col-actions{width:auto!important;min-width:0!important}

/* Single icon + label, exactly aligned on one horizontal axis. */
#appShell .table-action-button,#appShell .action-btn,#appShell .business-workflow,#appShell .timesheet-workflow,#appShell .document-actions-cell button,#appShell .actions button,#appShell .table-action-group button{display:inline-flex!important;align-items:center!important;justify-content:center!important;vertical-align:middle!important;gap:5px!important;min-height:var(--ux-action-min-height);line-height:1!important;white-space:nowrap!important;flex:0 0 auto!important}
#appShell .table-action-button>svg,#appShell .action-btn>svg,#appShell .table-action-group button>svg{display:block!important;align-self:center!important;margin:0!important}
#appShell .action-glyph,#appShell .action-label,#appShell .table-action-group button>span{display:inline-flex;align-items:center;line-height:1!important;vertical-align:middle}

/* Sticky payroll headers use the same header color as every other column. */
#appShell .suite-hr-screen .payroll-detail-table thead th,#appShell .suite-hr-screen .payroll-detail-table thead .payroll-sticky-col{background:var(--table-head,#f4f8fb)!important}
html[data-theme="dark"] #appShell .suite-hr-screen .payroll-detail-table thead th,html[data-theme="dark"] #appShell .suite-hr-screen .payroll-detail-table thead .payroll-sticky-col{background:var(--table-head,#162c42)!important}

@media(max-width:1024px),(pointer:coarse){#appShell td.table-col-actions>.table-action-group,#appShell td.actions>.table-action-group,#appShell td.business-row-actions>.table-action-group,#appShell td.timesheet-actions>.table-action-group{flex-wrap:wrap!important;justify-content:center!important}#appShell td.table-col-actions,#appShell td.actions,#appShell td.business-row-actions{white-space:normal!important}}

/* ========================================================================== 
   GLOBAL UI/UX STABILITY R2 — idempotent action labels + no action overflow
   ========================================================================== */
#appShell td.table-col-actions,
#appShell td.actions,
#appShell td.business-row-actions,
#appShell td.document-actions-cell,
#appShell td.timesheet-actions,
#appShell td.payroll-actions-cell,
#appShell td.journal-action-cell,
#appShell td.tax-actions-cell,
#appShell td.cloud-table-actions,
#appShell td.trash-actions{
  text-align:center!important;
  vertical-align:middle!important;
  white-space:normal!important;
  overflow:hidden!important;
}
#appShell td.table-col-actions>.table-action-group,
#appShell td.actions>.table-action-group,
#appShell td.business-row-actions>.table-action-group,
#appShell td.document-actions-cell>.table-action-group,
#appShell td.timesheet-actions>.table-action-group,
#appShell td.payroll-actions-cell>.table-action-group,
#appShell td.journal-action-cell>.table-action-group,
#appShell td.tax-actions-cell>.table-action-group,
#appShell td.cloud-table-actions>.table-action-group,
#appShell td.trash-actions>.table-action-group{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  align-content:center!important;
  column-gap:8px!important;
  row-gap:6px!important;
  flex-wrap:wrap!important;
  overflow:hidden!important;
}
#appShell .table-action-group button,
#appShell .table-action-button,
#appShell .action-btn,
#appShell .business-workflow,
#appShell .timesheet-workflow,
#appShell .document-transition,
#appShell .document-actions-cell button,
#appShell .cloud-table-actions button,
#appShell .trash-actions button{
  box-sizing:border-box!important;
  max-width:100%!important;
  min-height:34px!important;
  height:auto!important;
  padding:7px 9px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  vertical-align:middle!important;
  gap:5px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  flex:0 0 auto!important;
  overflow:hidden!important;
}
#appShell .table-action-group button>.action-glyph,
#appShell .table-action-group button>svg,
#appShell .table-action-button>.action-glyph,
#appShell .table-action-button>svg{
  width:14px!important;
  height:14px!important;
  min-width:14px!important;
  min-height:14px!important;
  flex:0 0 14px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  align-self:center!important;
  line-height:1!important;
  margin:0!important;
}
#appShell .table-action-group button>.action-label,
#appShell .table-action-group button>span:not(.action-glyph),
#appShell .table-action-button>.action-label,
#appShell .table-action-button>span:not(.action-glyph){
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:0!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  margin:0!important;
}
/* Long workflow rows wrap the button GROUP, never the label outside its button. */
#appShell .documents-table td.document-actions-cell,
#appShell .table-contracts td.table-col-actions,
#appShell .table-trash td.table-col-actions{
  min-width:150px;
}
@media(max-width:1024px),(pointer:coarse){
  #appShell .table-action-group button,
  #appShell .table-action-button,
  #appShell .action-btn,
  #appShell .business-workflow,
  #appShell .timesheet-workflow{
    min-width:44px!important;
    min-height:44px!important;
  }
}

/* Action normalization converts former icon-only controls to labeled buttons;
   clear legacy 30/31/32px fixed widths so the new label can never escape. */
#appShell .table-action-group button.table-action-button,
#appShell .table-action-group button.contract-action,
#appShell .table-action-group button.action-btn{
  width:auto!important;
  min-width:44px!important;
}

/* Adaptive UX — stable, permission-preserving personalization */
.adaptive-ux-pins{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:8px 10px;border:1px solid var(--border,#e5e7eb);border-radius:12px;background:var(--surface-soft,#f8fafc);min-height:42px}
.adaptive-ux-pins-label{font-size:12px;font-weight:700;color:var(--muted,#64748b);margin-right:2px}
.adaptive-ux-pin{appearance:none;border:1px solid var(--border,#dbe3ee);background:var(--card,#fff);color:var(--text,#111827);border-radius:999px;padding:6px 10px;font:inherit;font-size:12px;font-weight:650;cursor:pointer;white-space:nowrap}
.adaptive-ux-pin:hover,.adaptive-ux-pin:focus-visible{border-color:var(--primary,#1a5777);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary,#1a5777) 14%,transparent)}
@media (max-width:820px){.adaptive-ux-pins{overflow-x:auto;flex-wrap:nowrap}.adaptive-ux-pins-label{position:sticky;left:0;background:inherit;padding-right:4px}}

/* v4.7.87 — table scroll-chain hotfix.
   Tables own horizontal overflow, but vertical wheel/touch scrolling must
   chain back to the page when an internal table viewport reaches its edge. */
.table-wrap,
.table-wrap.table-scroll-frame{
  overscroll-behavior-x:contain!important;
  overscroll-behavior-y:auto!important;
}

/* ========================================================================== */
/* v4.7.42 UI/UX hotfix — tablet table continuity + sidebar touch scrolling   */
/* ========================================================================== */
.sidebar{
  transition:transform .18s cubic-bezier(.4,0,.2,1),opacity .12s cubic-bezier(.4,0,.2,1)!important;
}
.sidebar .nav{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y pinch-zoom!important;
  scroll-behavior:auto!important;
  scrollbar-gutter:stable;
  min-height:0;
}
@media (hover:none),(pointer:coarse){
  .sidebar .nav-item:hover,
  .sidebar .nav-group-toggle:hover{
    transform:none!important;
  }
}

/* Contracts/OCR register must remain horizontally pannable on iPad/tablet. */
@media (min-width:601px) and (max-width:1279px){
  .contract-ocr-table-wrap{
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:auto!important;
    overflow-y:visible;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    touch-action:pan-x pan-y!important;
    scrollbar-gutter:stable;
    padding-bottom:4px;
  }
  .contract-ocr-table-wrap > .contract-ocr-table{
    width:max-content!important;
    min-width:980px!important;
    max-width:none!important;
    table-layout:auto!important;
  }
  .contract-ocr-table th,
  .contract-ocr-table td{
    white-space:nowrap;
  }
  .contract-ocr-table th:nth-child(2),
  .contract-ocr-table td:nth-child(2){
    min-width:230px;
    white-space:normal;
  }
  .contract-ocr-table th:last-child,
  .contract-ocr-table td:last-child{
    min-width:170px;
  }
}

/* Record-lock presence UI. The hard integrity backstop remains row_version. */
tr.record-edit-locked{
  background:color-mix(in srgb,var(--warning,#f59e0b) 8%,transparent)!important;
}
tr.record-edit-locked > td{
  opacity:.78;
}
tr.record-edit-locked > td.actions,
tr.record-edit-locked > td:last-child{
  opacity:1;
}
.record-edit-lock-indicator{
  display:inline-flex;
  align-items:center;
  gap:5px;
  max-width:190px;
  margin-left:6px;
  padding:4px 8px;
  border:1px solid color-mix(in srgb,var(--warning,#f59e0b) 35%,transparent);
  border-radius:999px;
  background:color-mix(in srgb,var(--warning,#f59e0b) 10%,var(--surface,#fff));
  color:var(--text-secondary,#5b6472);
  font-size:11px;
  font-weight:700;
  line-height:1.2;
  vertical-align:middle;
  white-space:normal;
}
.edit-row[data-record-lock-disabled="true"]{
  cursor:not-allowed!important;
  opacity:.48!important;
  pointer-events:none!important;
}


/* v4.7.69 — filter glyph de-duplication hotfix.
   Enterprise table-tools already render a canonical inline SVG inside
   .filter-control. Older procurement/business rules also painted a data-URI
   search/filter icon on the input itself, so both glyphs were superimposed.
   Keep the inline SVG as the single source of truth and suppress legacy input
   background icons whenever the control is wrapped by .filter-control. */
#appShell .filter-control .search-input,
#appShell .filter-control .searchable-combobox-input{
  background-image:none!important;
  background-repeat:no-repeat!important;
  background-position:initial!important;
}

/* v4.7.70 — structural filter-control layout hotfix.
   v4.7.69 removed the duplicate background-image glyph, but the remaining
   canonical SVG still occupied the same painted area as combobox placeholder
   text on some procurement/status filters. Reserve a real grid column for the
   leading glyph instead of overlaying it above the input. */
#appShell .filter-control.filter-control--select{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr)!important;
  align-items:center!important;
  column-gap:0!important;
  padding:0!important;
  overflow:hidden;
}
#appShell .filter-control.filter-control--select>svg{
  position:static!important;
  grid-column:1!important;
  grid-row:1!important;
  justify-self:center!important;
  align-self:center!important;
  width:15px!important;
  height:15px!important;
  margin:0!important;
  transform:none!important;
  pointer-events:none!important;
}
#appShell .filter-control.filter-control--select>.searchable-combobox,
#appShell .filter-control.filter-control--select>.filter-select:not(.searchable-native-select){
  grid-column:2!important;
  grid-row:1!important;
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  margin:0!important;
}
#appShell .filter-control.filter-control--select .searchable-combobox-input,
#appShell .filter-control.filter-control--select>.filter-select:not(.searchable-native-select){
  padding-left:8px!important;
  text-indent:0!important;
  background-image:none!important;
}
#appShell .filter-control.filter-control--select .searchable-combobox-input::placeholder{
  text-indent:0!important;
}
/* Keep the search control on its existing icon-overlay layout because its
   36px leading inset is already stable; only searchable/select filters need
   a physical icon lane. */


/* v4.7.71 — business/local filter-control residual collision hotfix.
   Procurement/Assets renders purpose-built local table filters inside
   .business-suite-screen, not .enterprise-suite-screen. Those raw selects can
   be enhanced into .combobox-filter before/without the canonical filter-control
   wrapper, while the global searchable input rule forces a 13px !important
   left padding. The legacy filter background glyph is painted at ~11px, so the
   placeholder starts underneath it. The runtime now upgrades business-suite
   table tools to the same canonical filter-control structure; this rule is a
   defensive no-overlap fallback for any transient/unwrapped local combobox. */
#appShell .business-suite-screen .business-procurement-body
.table-tools[data-local-table-filter]>.combobox-filter .searchable-combobox-input{
  padding-left:40px!important;
  background-position:12px center!important;
  background-repeat:no-repeat!important;
}
#appShell .business-suite-screen .business-procurement-body
.table-tools[data-local-table-filter]>.combobox-filter .searchable-combobox-input::placeholder{
  text-indent:0!important;
}

/* v4.7.74 — User Administration action-column alignment.
   Keep semantic table-cell layout; center the explicit action group like every other ERP table. */
#appShell .user-admin-table:not(.alpha-card-view) th.cloud-table-actions-header{
  text-align:center!important;
  vertical-align:middle!important;
  min-width:190px!important;
  width:220px;
}
#appShell .user-admin-table:not(.alpha-card-view) td.cloud-table-actions{
  display:table-cell!important;
  text-align:center!important;
  vertical-align:middle!important;
  min-width:190px!important;
}
#appShell .user-admin-table:not(.alpha-card-view) td.cloud-table-actions>.table-action-group{
  width:100%!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  align-content:center!important;
  gap:6px 8px!important;
  flex-wrap:wrap!important;
  margin:0 auto!important;
}
#appShell .user-admin-table:not(.alpha-card-view) td.cloud-table-actions>.table-action-group>.badge{
  margin:0!important;
}


/* ==========================================================================
   v4.7.90 — PREMIUM ENTERPRISE UI/UX MODERNIZATION
   A final, intentionally centralized presentation layer. It preserves all
   business/data contracts while normalizing hierarchy, density and feedback.
   ========================================================================== */
:root{
  --bg:#f2f6fa;
  --surface:#ffffff;
  --surface-2:#f7fafc;
  --surface-3:#e7f0f6;
  --text:#0e354a;
  --muted:#546a7c;
  --line:#c9dbe4;
  --primary:#14455f;
  --primary-2:#226b93;
  --teal:#0e7f88;
  --green:#18875a;
  --orange:#c98119;
  --purple:#7258b7;
  --red:#c84b59;
  --shadow:0 8px 28px rgba(15,48,69,.055);
  --radius:18px;
  --header:64px;
  --toolbar:76px;
  --ux-content-max:1880px;
  --ux-focus-ring:0 0 0 3px rgba(15,151,184,.14);
  --ux-control-height:42px;
}
html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(circle at 86% -12%,rgba(14,165,198,.055),transparent 27rem),
    linear-gradient(180deg,#f7f9fc 0,#f3f7fa 36rem,#f4f7fb 100%);
  color:var(--text);
  line-height:1.45;
  font-feature-settings:"kern" 1,"liga" 1,"tnum" 1;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
::selection{background:rgba(14,165,198,.18);color:#062f4a}
button,input,select,textarea{letter-spacing:0}
button{transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}
button:active:not(:disabled){transform:translateY(1px)}
button:disabled{cursor:not-allowed;opacity:.55}

/* Shell + navigation */
.app-shell{background:transparent}
.sidebar{
  background:rgba(252,253,254,.96)!important;
  border-right:1px solid #dbe5ec!important;
  padding:14px 11px 12px!important;
  box-shadow:5px 0 24px rgba(14,47,68,.025);
  backdrop-filter:saturate(1.1) blur(14px);
}
.brand-row{height:auto;min-height:54px;padding:0 5px 12px!important;border-bottom:1px solid #e5edf2!important}
.brand-copy strong{font-size:13px;letter-spacing:.035em;color:#14587c!important}
.brand-copy span{font-size:7.5px;letter-spacing:.19em;color:#8193a1!important}
.nav{gap:5px!important;padding:13px 0 10px!important;scrollbar-gutter:stable}
.nav-group{border-radius:12px}
.nav-group-toggle{color:#7c8e9b!important;font-size:9px!important;font-weight:800!important;letter-spacing:.12em!important;text-transform:uppercase}
.nav-item{
  min-height:42px;
  border-radius:11px!important;
  padding:9px 11px!important;
  color:#435c6c!important;
  font-weight:620;
  position:relative;
}
.nav-item:hover{background:#f0f6f9!important;color:#135376!important}
.nav-item.active{
  background:linear-gradient(90deg,#e5f0f6 0,#eef5f8 100%)!important;
  color:#114865!important;
  font-weight:760!important;
  box-shadow:inset 0 0 0 1px rgba(14,151,184,.12);
}
.nav-item.active::before{
  content:"";position:absolute;left:-1px;top:11px;bottom:11px;width:3px;border-radius:4px;background:#1c78aa;
}
.nav-icon,.nav-svg{color:currentColor}
.sidebar-footer{border-top-color:#e5edf2!important;color:#718491!important}

.global-header{
  height:var(--header)!important;
  background:rgba(249,251,253,.88)!important;
  border-bottom:1px solid rgba(214,226,234,.9)!important;
  box-shadow:0 1px 0 rgba(14,47,68,.025)!important;
  padding:0 24px!important;
  backdrop-filter:blur(18px) saturate(1.15)!important;
}
.global-search-wrap{
  width:min(500px,46vw)!important;height:42px!important;
  background:rgba(255,255,255,.9)!important;
  border-color:#d7e3ea!important;
  border-radius:13px!important;
  box-shadow:0 2px 9px rgba(9,47,70,.025);
  padding:0 12px!important;
}
.global-search-wrap:focus-within{border-color:#82b7d3!important;box-shadow:var(--ux-focus-ring)!important;background:#fff!important}
.global-search-wrap input{font-size:12.5px}
.global-search-wrap kbd{border-color:#dde7ed!important;background:#f6f9fb!important;color:#718491!important;box-shadow:0 1px 1px rgba(0,0,0,.02)}
.header-icon,.profile-button{border:1px solid transparent!important}
.header-icon:hover,.profile-button:hover{background:#eef4f8!important;border-color:#dae6ed!important}
.avatar{background:linear-gradient(145deg,#d7e8f2,#9fc8de)!important;color:#104460!important;box-shadow:0 0 0 1px #d4e4ec,0 2px 7px rgba(13,70,94,.09)!important}
.notification-badge{background:#c84b59!important;box-shadow:0 0 0 2px #f9fbfd}

.page-toolbar{
  min-height:var(--toolbar)!important;
  background:rgba(249,251,253,.91)!important;
  border-bottom:1px solid rgba(214,226,234,.88)!important;
  padding:10px 24px!important;
  backdrop-filter:blur(18px) saturate(1.12)!important;
}
.page-icon{width:38px!important;height:38px!important;border-radius:12px!important;background:#e7f0f5!important;color:#135376!important;border-color:#d0e2eb!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.page-heading h1{font-size:21px!important;font-weight:780!important;letter-spacing:-.025em!important;color:#0d2d42!important}
.page-heading p{font-size:11px!important;color:#718593!important;line-height:1.4}
.toolbar-actions{gap:7px!important;flex-wrap:wrap;justify-content:flex-end}
.date-control,.toolbar-select,.toolbar-button{height:var(--ux-control-height)!important;border-color:#dae4ea!important;border-radius:11px!important;background:#fff!important;color:#3c5566!important;box-shadow:0 1px 2px rgba(9,47,70,.018)}
.date-control:hover,.toolbar-select:hover,.toolbar-button:hover{border-color:#bbd1dd!important;background:#fbfdfe!important}

/* Content hierarchy */
.content{width:100%;max-width:var(--ux-content-max)!important;margin:0 auto!important;padding:24px 26px 104px!important}
.section{margin-top:18px!important}
.grid{gap:16px!important}
.card,.kpi-card{
  border:1px solid #dce7ed!important;
  border-radius:var(--radius)!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:var(--shadow)!important;
}
.card{overflow:visible}
.card:hover{box-shadow:0 11px 32px rgba(15,48,69,.07)!important}
.card-pad{padding:17px!important}
.section-header{margin-bottom:13px!important;gap:16px}
.section-header h2,.section-header h3{font-size:14px!important;font-weight:780!important;letter-spacing:-.01em;color:#19394d}
.section-header p{font-size:10.5px!important;line-height:1.45;color:#718491!important;max-width:900px}
.section-link{min-height:32px;padding:6px 9px!important;border-radius:9px!important;color:#186792!important;font-weight:760!important}
.section-link:hover{background:#eef5f8!important}

/* KPI cards: restrained, information-first */
.kpi-grid,.dashboard-kpi-grid{gap:14px!important}
.kpi-card{
  min-height:126px!important;padding:16px!important;
  position:relative;overflow:hidden;
  box-shadow:0 6px 22px rgba(15,48,69,.045)!important;
}
.kpi-card::before{height:3px!important;left:14px!important;right:14px!important;top:0!important;border-radius:0 0 8px 8px!important;opacity:.72}
.kpi-card::after{opacity:.55!important;filter:saturate(.7)}
.kpi-top{gap:10px!important}
.kpi-icon{width:36px!important;height:36px!important;border-radius:11px!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.kpi-label{font-size:10.5px!important;font-weight:740!important;color:#536b79!important;line-height:1.35!important}
.kpi-value{font-size:23px!important;line-height:1.08!important;font-weight:820!important;letter-spacing:-.03em!important;color:#102f44!important;font-variant-numeric:tabular-nums lining-nums}
.kpi-unit,.kpi-foot{color:#7b8d99!important}

/* Tables: dense enough for ERP, but visually calm and scannable */
.table-card{overflow:hidden!important}
.table-card>.section-header,.business-card-heading,.operations-card-heading{padding:16px 17px!important;margin:0!important;border-bottom:1px solid #e2ebf0!important;background:linear-gradient(180deg,#fff,#fbfcfd)!important}
.table-tools,.business-table-tools,.operations-table-tools,.suite-table-tools,.auto-table-tools{
  min-height:54px;
  padding:9px 12px!important;
  background:#f8fafc!important;
  border-top:0!important;
  border-bottom:1px solid #e2ebf0!important;
  gap:8px!important;
}
.search-input,.filter-select,.table-tools input,.table-tools select,.business-table-tools input,.business-table-tools select,.operations-table-tools input,.operations-table-tools select{
  min-height:38px!important;
  border:1px solid #d8e4eb!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#2d495a!important;
  box-shadow:none!important;
}
.search-input:focus,.filter-select:focus,.table-tools input:focus,.table-tools select:focus{outline:0!important;border-color:#7ab1cf!important;box-shadow:var(--ux-focus-ring)!important}
.table-count-badge,.record-count{border-radius:999px!important;background:#ebf3f7!important;border:1px solid #d3e4ee!important;color:#266486!important;font-weight:760!important;padding:5px 9px!important}
.table-wrap{
  background:#fff!important;
  border-radius:0 0 var(--radius) var(--radius)!important;
  scrollbar-color:#b6c9d3 transparent!important;
  scrollbar-width:thin!important;
}
.table-wrap::-webkit-scrollbar{height:10px;width:10px}
.table-wrap::-webkit-scrollbar-thumb{background:#c2d1d9;border:3px solid transparent;background-clip:padding-box;border-radius:999px}
.table-wrap::-webkit-scrollbar-track{background:transparent}
table{border-collapse:separate!important;border-spacing:0!important;width:100%}
thead th{
  position:sticky;top:0;z-index:4;
  background:#f3f7f9!important;
  color:#536a79!important;
  border-bottom:1px solid #d9e3e9!important;
  font-size:9.5px!important;
  font-weight:800!important;
  letter-spacing:.055em!important;
  text-transform:uppercase;
  line-height:1.25!important;
  padding:11px 12px!important;
  white-space:nowrap;
}
tbody td{
  border-bottom:1px solid #edf1f4!important;
  color:#284557;
  padding:11px 12px!important;
  line-height:1.4!important;
  background:#fff;
  vertical-align:middle!important;
}
tbody tr:nth-child(even) td{background:#fbfcfd}
tbody tr:hover td{background:#f1f7fa!important}
tbody tr:last-child td{border-bottom:0!important}
td.numeric,th.numeric{font-variant-numeric:tabular-nums lining-nums;text-align:right}
td.numeric{color:#18394d;font-weight:620}
td strong{color:#17384c;font-weight:760}
.table-wrap.is-scrollable::after{background:rgba(248,251,253,.92)!important;border:1px solid #dde7ec;border-radius:999px;padding:3px 7px;left:12px!important;bottom:6px!important;color:#718491!important;box-shadow:0 2px 6px rgba(13,54,75,.04)}

/* Buttons + status language */
.primary-btn,.secondary-btn,.danger-btn,.ghost-btn,.toolbar-button{
  min-height:38px;
  border-radius:10px!important;
  font-weight:760!important;
  font-size:11.5px!important;
  padding-inline:13px!important;
}
.primary-btn{background:linear-gradient(180deg,#196d9a,#165f86)!important;border-color:#165f86!important;box-shadow:0 5px 14px rgba(8,115,148,.15)!important}
.primary-btn:hover{background:linear-gradient(180deg,#17628b,#135578)!important;box-shadow:0 7px 18px rgba(8,115,148,.2)!important}
.secondary-btn{background:#fff!important;border-color:#d7e2e8!important;color:#29495b!important}
.secondary-btn:hover{background:#f6f9fb!important;border-color:#bbd1dd!important}
.danger-btn{background:#fff5f5!important;border-color:#efcfd3!important;color:#a73b48!important}
.danger-btn:hover{background:#ffeded!important;border-color:#e8b9bf!important}
.ghost-btn{color:#186792!important}
.icon-btn{border-radius:9px!important;border:1px solid transparent!important;background:transparent!important;color:#4b6878!important}
.icon-btn:hover{background:#eef4f7!important;border-color:#d7e5ed!important;color:#155b81!important}
.badge,.confidence,.probability-pill{
  border-radius:999px!important;
  font-size:9.5px!important;
  font-weight:780!important;
  line-height:1!important;
  padding:5px 8px!important;
  letter-spacing:.015em;
}
.badge.success{background:#edf8f2!important;color:#187044!important;border-color:#d1eadb!important}
.badge.warning{background:#fff8e9!important;color:#8d6019!important;border-color:#f0dfb7!important}
.badge.danger{background:#fff0f1!important;color:#a63d48!important;border-color:#efcfd3!important}
.badge.info{background:#ebf3f7!important;color:#15597e!important;border-color:#d0e2eb!important}
.muted{color:#7a8d99!important}

/* Forms, dialogs and long-record editing */
.field label{font-size:10.5px!important;font-weight:760!important;color:#455f6f!important;margin-bottom:6px!important}
.field input,.field select,.field textarea,.auth-security-form input,.login-card input{
  min-height:var(--ux-control-height)!important;
  border:1px solid #d7e2e8!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#213f51!important;
  padding:9px 11px!important;
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}
.field textarea{min-height:96px!important;line-height:1.5}
.field input:hover,.field select:hover,.field textarea:hover,.auth-security-form input:hover,.login-card input:hover{border-color:#b8cdd9!important}
.field input:focus,.field select:focus,.field textarea:focus,.auth-security-form input:focus,.login-card input:focus{outline:0!important;border-color:#75afcf!important;box-shadow:var(--ux-focus-ring)!important;background:#fff!important}
.modal,.confirm-dialog,.action-prompt-dialog{
  border-radius:22px!important;
  border:1px solid rgba(205,225,233,.95)!important;
  box-shadow:0 34px 100px rgba(5,38,58,.24)!important;
  background:#fff!important;
}
.modal-header{padding:18px 20px!important;background:rgba(255,255,255,.94)!important;border-bottom:1px solid #e1ebf0!important}
.modal-header h2{font-size:19px!important;font-weight:800!important;color:#123449!important}
.modal-form{padding:18px 20px 0!important}
.form-grid{gap:15px 16px!important}
.form-section-label{color:#557080!important;letter-spacing:.07em!important}
.form-actions{position:sticky!important;bottom:0!important;z-index:3!important;margin:18px -20px 0!important;padding:13px 20px!important;background:rgba(252,253,254,.95)!important;border-top:1px solid #dfe9ee!important;backdrop-filter:blur(12px)}
.modal-backdrop,.confirm-backdrop,.action-prompt-backdrop{background:rgba(7,28,42,.44)!important;backdrop-filter:blur(4px)}
.search-results,.dropdown-menu,.profile-menu{border-color:#d8e3e9!important;border-radius:15px!important;box-shadow:0 20px 55px rgba(8,42,62,.16)!important}
.search-result{border-radius:10px!important}
.search-result:hover{background:#eef4f7!important}

/* Login is intentionally simpler and calmer than the operational shell. */
.login-screen{background:#f3f7fa!important}
.login-visual{background:linear-gradient(145deg,#062f4b 0,#10435f 55%,#14587c 100%)!important}
.login-card{border-radius:22px!important;box-shadow:0 24px 70px rgba(7,43,65,.12)!important;border:1px solid #dce6ec!important}
.login-card-head h2{letter-spacing:-.025em;color:#113449}

/* Accessible interaction and motion discipline */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:0!important;box-shadow:var(--ux-focus-ring)!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}

/* Responsive behavior: preserve operational density without squeezing desktop UI. */
@media(max-width:1280px){
  :root{--toolbar:72px}
  .content{padding-left:20px!important;padding-right:20px!important}
  .dashboard-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:1024px){
  .global-header,.page-toolbar{padding-left:16px!important;padding-right:16px!important}
  .content{padding:18px 16px 94px!important}
  .page-toolbar{align-items:flex-start!important;padding-top:11px!important;padding-bottom:11px!important}
  .page-heading h1{font-size:19px!important}
  .dashboard-kpi-grid,.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  thead th,tbody td{padding-left:10px!important;padding-right:10px!important}
}
@media(max-width:720px){
  :root{--header:58px;--toolbar:68px}
  .global-header{padding-inline:10px!important}
  .global-search-wrap{width:min(54vw,360px)!important;height:39px!important}
  .profile-copy{display:none!important}
  .page-toolbar{position:sticky!important;gap:10px!important;padding-inline:12px!important}
  .page-heading{min-width:0!important}
  .page-icon{width:34px!important;height:34px!important}
  .page-heading h1{font-size:17px!important}
  .page-heading p{display:none}
  .toolbar-actions{max-width:52%;overflow-x:auto;flex-wrap:nowrap!important;justify-content:flex-start!important;padding-bottom:2px}
  .content{padding:14px 10px 88px!important}
  .dashboard-kpi-grid,.kpi-grid,.three-col,.four-col{grid-template-columns:1fr!important}
  .two-col{grid-template-columns:1fr!important}
  .kpi-card{min-height:112px!important}
  .table-card>.section-header{padding:13px!important}
  .table-tools,.business-table-tools,.operations-table-tools,.suite-table-tools{padding:8px!important;overflow-x:auto;flex-wrap:nowrap!important}
  .search-input{min-width:190px!important}
  .form-grid{grid-template-columns:1fr!important}
  .modal{width:calc(100vw - 16px)!important;max-height:94dvh!important;border-radius:18px!important}
  .modal-header{padding:14px!important}.modal-form{padding:14px 14px 0!important}
  .form-actions{margin-left:-14px!important;margin-right:-14px!important;padding:11px 14px!important;overflow-x:auto;flex-wrap:nowrap!important}
}

/* Dark mode uses the same semantic hierarchy, not an inverted light palette. */
html[data-theme="dark"]{
  --bg:#081722;--surface:#0f2735;--surface-2:#0b1e2b;--surface-3:#153347;
  --text:#e6eff4;--muted:#93aab8;--line:#26414f;--primary:#63aad0;--primary-2:#84bede;
  /* Năm ô màu trạng thái chỉ dùng làm NỀN trang trí (kpi-icon, vạch ::before, thanh tiến độ) —
     kiểm bằng grep: 0 lượt color:var(--green|red|purple|orange|teal). Bản sáng quá tối trên nền
     tối nên gần như biến mất; bản đè này để chúng nhìn thấy được, KHÔNG phải sửa lỗi chữ. */
  --green:#4cb885;--orange:#e0a44a;--purple:#ab97de;--red:#e28793;--teal:#3fb0b6;
  --shadow:0 10px 32px rgba(0,0,0,.16);--ux-focus-ring:0 0 0 3px rgba(66,183,207,.18);
}
html[data-theme="dark"] .notification-badge{color:#081722}
html[data-theme="dark"] body{background:radial-gradient(circle at 86% -12%,rgba(57,173,199,.08),transparent 28rem),#0b1720;color:var(--text)}
html[data-theme="dark"] .sidebar{background:rgba(13,29,38,.96)!important;border-right-color:#293d47!important;box-shadow:5px 0 24px rgba(0,0,0,.06)}
html[data-theme="dark"] .brand-row,html[data-theme="dark"] .sidebar-footer{border-color:#2b3f49!important}
html[data-theme="dark"] .brand-copy strong{color:#7bb9da!important}html[data-theme="dark"] .brand-copy span{color:#78909c!important}
html[data-theme="dark"] .nav-item{color:#a7b9c2!important}html[data-theme="dark"] .nav-item:hover{background:#142b37!important;color:#cbe4f1!important}html[data-theme="dark"] .nav-item.active{background:linear-gradient(90deg,#153343,#142d3a)!important;color:#ddeff8!important;box-shadow:inset 0 0 0 1px #274c60}
html[data-theme="dark"] .global-header,html[data-theme="dark"] .page-toolbar{background:rgba(11,27,36,.9)!important;border-bottom-color:#2b3f49!important}
html[data-theme="dark"] .global-search-wrap,html[data-theme="dark"] .date-control,html[data-theme="dark"] .toolbar-select,html[data-theme="dark"] .toolbar-button{background:#10232d!important;border-color:#2c4451!important;color:#cadae2!important}
html[data-theme="dark"] .global-search-wrap kbd{background:#152832!important;border-color:#334d5b!important;color:#8da4b0!important}
html[data-theme="dark"] .page-icon{background:#14303f!important;border-color:#2b4a5b!important;color:#7bbbde!important}html[data-theme="dark"] .page-heading h1{color:#eaf2f6!important}html[data-theme="dark"] .page-heading p{color:#8da4b0!important}
html[data-theme="dark"] .card,html[data-theme="dark"] .kpi-card{background:#10232d!important;border-color:#2b3f49!important;box-shadow:0 8px 28px rgba(0,0,0,.12)!important}
html[data-theme="dark"] .section-header h2,html[data-theme="dark"] .section-header h3,html[data-theme="dark"] .kpi-value,html[data-theme="dark"] td strong{color:#e2ecf1!important}
html[data-theme="dark"] .section-header p,html[data-theme="dark"] .kpi-label,html[data-theme="dark"] .kpi-unit,html[data-theme="dark"] .kpi-foot{color:#8da4b0!important}
html[data-theme="dark"] .table-card>.section-header,html[data-theme="dark"] .business-card-heading,html[data-theme="dark"] .operations-card-heading{background:linear-gradient(180deg,#13252e,#0f222c)!important;border-bottom-color:#2b3f49!important}
html[data-theme="dark"] .table-tools,html[data-theme="dark"] .business-table-tools,html[data-theme="dark"] .operations-table-tools,html[data-theme="dark"] .suite-table-tools,html[data-theme="dark"] .auto-table-tools{background:#0e1e27!important;border-color:#2b3f49!important}
html[data-theme="dark"] .search-input,html[data-theme="dark"] .filter-select,html[data-theme="dark"] .table-tools input,html[data-theme="dark"] .table-tools select{background:#10232d!important;border-color:#2e4552!important;color:#d9e4ea!important}
html[data-theme="dark"] .table-wrap{background:#10232d!important}html[data-theme="dark"] thead th{background:#162a35!important;color:#97acb7!important;border-bottom-color:#334c59!important}html[data-theme="dark"] tbody td{background:#10232d;color:#c7d5dd;border-bottom-color:#223945!important}html[data-theme="dark"] tbody tr:nth-child(even) td{background:#0f2029}html[data-theme="dark"] tbody tr:hover td{background:#162e3b!important}html[data-theme="dark"] td.numeric{color:#d6e4ec!important}
html[data-theme="dark"] .secondary-btn{background:#13252e!important;border-color:#334d5b!important;color:#d5e1e8!important}html[data-theme="dark"] .secondary-btn:hover{background:#182e3a!important}html[data-theme="dark"] .danger-btn{background:#321e23!important;border-color:#60333b!important;color:#ffb2bb!important}html[data-theme="dark"] .icon-btn{color:#a8b9c3!important}html[data-theme="dark"] .icon-btn:hover{background:#172f3c!important;border-color:#2e4d5d!important;color:#a3d1ea!important}
html[data-theme="dark"] .field label{color:#a8bac3!important}html[data-theme="dark"] .field input,html[data-theme="dark"] .field select,html[data-theme="dark"] .field textarea,html[data-theme="dark"] .auth-security-form input,html[data-theme="dark"] .login-card input{background:#0e1e27!important;border-color:#2f4653!important;color:#e1ebf0!important}html[data-theme="dark"] .field input:focus,html[data-theme="dark"] .field select:focus,html[data-theme="dark"] .field textarea:focus{background:#12242e!important;border-color:#5092b6!important}
html[data-theme="dark"] .modal,html[data-theme="dark"] .confirm-dialog,html[data-theme="dark"] .action-prompt-dialog{background:#10232d!important;border-color:#334d5b!important}html[data-theme="dark"] .modal-header{background:rgba(16,35,45,.95)!important;border-bottom-color:#2b3f49!important}html[data-theme="dark"] .modal-header h2{color:#e6eff3!important}html[data-theme="dark"] .form-actions{background:rgba(14,31,40,.96)!important;border-top-color:#2b3f49!important}
html[data-theme="dark"] .search-results,html[data-theme="dark"] .dropdown-menu,html[data-theme="dark"] .profile-menu{background:#10232d!important;border-color:#334d5b!important}html[data-theme="dark"] .search-result:hover{background:#162f3c!important}


/* ================================================================
   v4.8.39 — EXECUTIVE DASHBOARD VISUAL MODERNIZATION
   Dashboard-only presentation layer. Keeps canonical data contracts,
   Actual/Plan semantics, navigation hooks and table scroll behavior.
   ================================================================ */
.executive-dashboard{--exec-navy:#082b42;--exec-cyan:#2185ba;--exec-mint:#20a779;--exec-amber:#d98a16;--exec-risk:#d6515c;--exec-soft:#f4f8fb;display:block}
.executive-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.72fr);gap:22px;overflow:hidden;padding:28px;border:1px solid #d0e0e9;border-radius:24px;background:radial-gradient(circle at 78% -30%,rgba(35,186,209,.22),transparent 42%),linear-gradient(135deg,#062b43 0%,#0e3c55 52%,#104561 100%);box-shadow:0 22px 58px rgba(5,42,62,.14);color:#fff}
.executive-hero:after{content:"";position:absolute;width:360px;height:360px;right:-180px;bottom:-220px;border:56px solid rgba(255,255,255,.045);border-radius:50%;z-index:-1}
.executive-hero-copy{align-self:center;max-width:850px}.executive-hero .operations-eyebrow{color:#7bbde0;letter-spacing:.13em}.executive-hero-copy h2{margin:7px 0 0;font-size:clamp(28px,3vw,42px);line-height:1.05;letter-spacing:-.045em;color:#fff}.executive-hero-copy>p{max-width:720px;margin:13px 0 0;font-size:13px;line-height:1.7;color:#cddfe8}
.executive-data-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.executive-data-chips span{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.07);font-size:9px;font-weight:800;letter-spacing:.04em;color:#e8f4fa}.executive-data-chips i{width:6px;height:6px;border-radius:50%;background:#53d59f;box-shadow:0 0 0 3px rgba(83,213,159,.12)}.executive-data-chips .is-plan i{background:#ffbd55}.executive-data-chips .is-plan{color:#ffe0a8}
.executive-quick-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:21px}.executive-quick-actions button{min-height:38px;padding:8px 12px;border:1px solid rgba(255,255,255,.13);border-radius:11px;background:rgba(255,255,255,.075);color:#f6fbfd;font-size:10px;font-weight:750;cursor:pointer;transition:background .18s ease,transform .18s ease,border-color .18s ease}.executive-quick-actions button:hover{transform:translateY(-1px);background:rgba(255,255,255,.14);border-color:rgba(117,216,230,.45)}.executive-quick-actions b{margin-left:8px;color:#7bbde0}
.executive-pulse-panel{align-self:stretch;padding:17px;border:1px solid rgba(255,255,255,.13);border-radius:19px;background:rgba(3,28,42,.32);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);backdrop-filter:blur(10px)}.executive-pulse-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.executive-pulse-top span{display:block;color:#84b7d3;font-size:8px;font-weight:900;letter-spacing:.13em}.executive-pulse-top strong{display:block;margin-top:4px;color:#fff;font-size:14px}.executive-live-dot{padding:4px 7px!important;border:1px solid rgba(93,221,167,.2);border-radius:999px;background:rgba(54,186,126,.14);color:#7de1b2!important;font-size:7px!important}.executive-live-dot:before{content:"";display:inline-block;width:5px;height:5px;margin-right:4px;border-radius:50%;background:#67e2ac;box-shadow:0 0 0 3px rgba(103,226,172,.09)}
.executive-pulse-body{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:center;gap:14px;margin-top:17px}.executive-health-ring{--ring:#28bd91;width:114px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ring) calc(var(--pulse)*1%),rgba(255,255,255,.1) 0);position:relative}.executive-health-ring:before{content:"";position:absolute;inset:9px;border-radius:50%;background:#0e3449;box-shadow:inset 0 0 18px rgba(0,0,0,.14)}.executive-health-ring.is-watch{--ring:#e1a039}.executive-health-ring.is-risk{--ring:#e06570}.executive-health-ring>div{position:relative;z-index:1;text-align:center}.executive-health-ring strong{font-size:27px;line-height:1;color:#fff;font-variant-numeric:tabular-nums}.executive-health-ring span{font-size:10px;color:#a8c5d5}.executive-health-ring small{display:block;margin-top:5px;color:#92b0c0;font-size:7px;text-transform:uppercase;letter-spacing:.06em}
.executive-pulse-list{display:grid;gap:6px}.executive-pulse-list>div{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:7px 9px;border-radius:9px;background:rgba(255,255,255,.055)}.executive-pulse-list span{font-size:8px;color:#abc3d0}.executive-pulse-list strong{font-size:12px;color:#f4fafd;font-variant-numeric:tabular-nums}.executive-pulse-list .is-attention{background:rgba(218,145,44,.12)}.executive-pulse-list .is-attention strong{color:#ffd889}.executive-period-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px;padding-top:11px;border-top:1px solid rgba(255,255,255,.08)}.executive-period-row span{font-size:8px;color:#91b2c3}.executive-period-row strong{font-size:9px;color:#e0eff7;font-variant-numeric:tabular-nums}
.executive-section-heading{margin-top:24px}.executive-kpi-grid{gap:14px!important}.executive-kpi-grid>.kpi-card{min-height:142px!important;border:1px solid #dae6ec!important;background:linear-gradient(180deg,#fff,#f9fcfd)!important;box-shadow:0 10px 28px rgba(5,47,69,.055)!important}.executive-kpi-grid>.kpi-card:hover{box-shadow:0 17px 36px rgba(5,47,69,.10)!important}.executive-kpi-grid .kpi-value{font-size:clamp(23px,2vw,31px);letter-spacing:-.035em}.executive-kpi-grid .kpi-label{font-size:10px}.executive-kpi-grid .kpi-foot{margin-top:auto}
.executive-stat-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid #d8e4eb;border-radius:17px;background:#d8e4eb;box-shadow:0 8px 24px rgba(6,48,68,.04)}.executive-stat-rail>div{min-height:88px;padding:16px;background:#fff}.executive-stat-rail span{display:block;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#78929c}.executive-stat-rail strong{display:block;margin-top:7px;color:#123b50;font-size:18px;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.executive-stat-rail small{display:block;margin-top:4px;color:#8aa0aa;font-size:8px}.executive-stat-rail strong.is-good{color:#16805f}.executive-stat-rail strong.is-risk{color:#c84855}
.executive-primary-chart-grid{grid-template-columns:minmax(0,1.7fr) minmax(320px,.75fr)!important;gap:15px}.executive-chart-card{border-radius:19px!important;border-color:#dae5eb!important;box-shadow:0 12px 30px rgba(5,47,68,.055)!important}.executive-chart-card--primary{min-height:405px}.executive-chart-card .section-header{margin-bottom:14px}.executive-intelligence-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.executive-intelligence-grid>.operations-ai-card{margin:0!important;height:100%}.executive-plan-grid{gap:12px!important}.executive-plan-grid>.kpi-card{border-radius:16px!important;box-shadow:0 8px 24px rgba(5,47,68,.045)!important}.executive-secondary-grid{gap:15px!important}.executive-secondary-grid>.card{border-radius:18px!important}.executive-attention-card{background:linear-gradient(180deg,#fff,#fffaf2)!important;border-color:#eedebe!important}.executive-bottom-grid{grid-template-columns:minmax(0,1.65fr) minmax(300px,.7fr)!important;gap:15px!important}.executive-bottom-grid>.card{border-radius:19px!important}.executive-activity-card{background:linear-gradient(180deg,#fff,#f8fbfc)}
html[data-theme="dark"] .executive-hero{border-color:#2f5061;background:radial-gradient(circle at 78% -30%,rgba(35,186,209,.17),transparent 42%),linear-gradient(135deg,#071f2d,#0e2f41 56%,#11384d)}html[data-theme="dark"] .executive-health-ring:before{background:#0c2838}html[data-theme="dark"] .executive-kpi-grid>.kpi-card,html[data-theme="dark"] .executive-stat-rail>div,html[data-theme="dark"] .executive-activity-card{background:linear-gradient(180deg,#102733,#0e222d)!important;border-color:#2d4959!important}html[data-theme="dark"] .executive-stat-rail{background:#2d4959;border-color:#2d4959}html[data-theme="dark"] .executive-stat-rail strong{color:#e8f2f8}html[data-theme="dark"] .executive-attention-card{background:linear-gradient(180deg,#19272f,#26291e)!important;border-color:#574d2b!important}
@media(max-width:1180px){.executive-hero{grid-template-columns:1fr minmax(330px,.72fr);padding:22px}.executive-primary-chart-grid{grid-template-columns:1fr 1fr!important}.executive-bottom-grid{grid-template-columns:1.35fr .85fr!important}}
@media(max-width:900px){.executive-hero{grid-template-columns:1fr}.executive-pulse-panel{max-width:none}.executive-stat-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.executive-primary-chart-grid,.executive-intelligence-grid,.executive-bottom-grid{grid-template-columns:1fr!important}.executive-pulse-body{grid-template-columns:126px 1fr}}
@media(max-width:600px){.executive-hero{padding:18px;border-radius:20px}.executive-hero-copy h2{font-size:28px}.executive-hero-copy>p{font-size:11px}.executive-quick-actions{display:grid;grid-template-columns:1fr 1fr}.executive-quick-actions button{width:100%}.executive-pulse-body{grid-template-columns:1fr}.executive-health-ring{margin:0 auto}.executive-stat-rail{grid-template-columns:1fr 1fr}.executive-stat-rail>div{min-height:80px;padding:13px}.executive-stat-rail strong{font-size:15px}.executive-primary-chart-grid{display:grid!important}.executive-section-heading{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.executive-quick-actions button{transition:none}.executive-quick-actions button:hover{transform:none}}

/* ==========================================================================
   GIAO DIỆN IM LẶNG — ẨN DÒNG MÔ TẢ / CĂN CỨ TRÊN TOÀN HỆ THỐNG (30/08/2026)
   Yêu cầu người dùng (ảnh trang Nghỉ phép): xóa hết các dòng chữ giải thích dưới tiêu đề hero,
   ghi chú "căn cứ pháp lý đang áp dụng", và dòng phụ dưới tiêu đề thẻ — trên toàn bộ phần mềm.
   Làm bằng một khối CSS thay vì xóa hàng trăm chuỗi trong mã: nhất quán mọi module, đảo ngược
   được, và các bài test đang canh chuỗi nguồn không đổi. CHỈ ẩn phần mô tả tĩnh; ghi chú mang
   trạng thái (danger/warning, "kỳ chưa có reconciliation", chọn phạm vi…) và chú thích số liệu
   (small dưới KPI) giữ nguyên. Ghi chú thuần thông tin viết tay được đánh dấu .ui-note-info tại
   nguồn thay vì ẩn mọi .note — ẩn mọi .note là ẩn luôn thông báo lỗi.
   ========================================================================== */
.suite-intro-copy>p,.operations-screen-intro>div>p,.executive-hero-copy>p,.construction-workspace__hero-copy>p,
.annual-benefit-hero>div>p,.alpha-role-lens-copy>div>p,.construction-today__heading>p,
.section-header>div>p,.settings-card-heading>div>p,.settings-section-title>div>p,.operations-section-heading>p,
.executive-intelligence-heading>div>p,.project-section-heading>p,.alpha-document-control__head>div>p,
[class*="construction-c"][class*="__head"]>div>p,
.hr-scope-toolbar>div>p,.workflow-helper,.business-intro-copy>p,.project-routing-rule,
.legal-policy-version-card>.legal-reference,
/* Đợt 3 (30/08/2026): chú thích dưới bảng Pulse, mô tả hero Thiết kế/Thi công/Kiểm soát vận hành,
   và phần chữ của dải môi trường khi hệ thống ĐANG SẴN SÀNG — lúc bị chặn (.blocked) dải này mang
   LÝ DO chặn nên phải giữ nguyên. */
.dashboard-project-table-note,[class*="__hero"]>div>p,.modern-hero>div>p,
.production-guard-banner.ready>span,
.note.accounting-note,.note.tax-legal-note,.settings-safety-note,.note.ui-note-info{display:none}
/* Đợt 2 (02/09/2026): prose giải thích cách tính — đã phân loại, chỉ ẩn dòng không có hành động. */
.dashboard-scope-warning,.project-input-note,.form-action-note,.operations-section-heading>div>p{display:none}

/* GD-PROC-01 — Biểu mẫu thêm tài khoản ngân hàng nhà cung cấp: mở ra từ chính nút bấm. */
.vendor-bank-create{margin:0;border-top:1px solid var(--line,#d8e3ed);background:var(--soft,#f4f8fb)}
.vendor-bank-create>summary{display:inline-flex;align-items:center;gap:8px;margin:12px 16px;padding:9px 14px;border:1px solid var(--brand,#165e85);border-radius:10px;background:var(--brand,#165e85);color:#fff;font-size:12px;font-weight:700;cursor:pointer;list-style:none;user-select:none}
.vendor-bank-create>summary::-webkit-details-marker{display:none}
.vendor-bank-create>summary::marker{content:''}
.vendor-bank-create>summary:hover{filter:brightness(1.06)}
.vendor-bank-create>summary:focus-visible{outline:2px solid var(--brand,#165e85);outline-offset:2px}
.vendor-bank-create[open]>summary{margin-bottom:4px}
.vendor-bank-create__form{padding-top:4px}
.vendor-bank-create__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px}
.vendor-bank-create__grid label{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--muted,#64748b);font-size:11px;font-weight:700;letter-spacing:.02em}
.vendor-bank-create__grid .search-input{flex:0 0 auto;width:100%;min-width:0}
.vendor-bank-create__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px;margin-top:14px}
.vendor-bank-create__check{display:inline-flex;align-items:center;gap:8px;margin-right:auto;color:var(--text,#0f2742);font-size:12px;font-weight:650}
.vendor-bank-create__check input{width:16px;height:16px;accent-color:var(--brand,#165e85)}
@media(max-width:640px){.vendor-bank-create__actions{justify-content:stretch}.vendor-bank-create__actions .primary-btn{width:100%}}

/* GD-PROC-02 — Danh mục nhà cung cấp canonical: chọn rõ dòng, đủ thao tác và header gọn. */
.vendor-canonical-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-left:auto}
.vendor-canonical-header-actions .primary-btn{min-height:36px}
.vendor-canonical-create .vendor-bank-create__form{padding-top:14px}
.vendor-canonical-select{appearance:none;display:block;width:100%;min-width:0;padding:3px 0;border:0;background:transparent;color:inherit;font:inherit;line-height:1.35;text-align:left;cursor:pointer}
.vendor-canonical-select strong{font-weight:800}
.vendor-canonical-select:hover{color:var(--brand,#165e85);text-decoration:underline;text-underline-offset:3px}
.vendor-canonical-select:focus-visible{outline:2px solid var(--brand,#165e85);outline-offset:3px;border-radius:4px}
.vendor-canonical-table tr.is-selected td{background:color-mix(in srgb,var(--brand,#165e85) 8%,var(--surface,#fff))!important}
.vendor-canonical-actions{min-width:230px}
.vendor-canonical-action-group{display:flex;align-items:center;justify-content:flex-start;gap:6px;flex-wrap:wrap}
.vendor-canonical-action-group .ghost-btn{min-height:32px;padding:6px 9px}
.vendor-canonical-actions .vendor-delete{color:var(--danger,#b42318);border-color:color-mix(in srgb,var(--danger,#b42318) 20%,transparent)}
html[data-theme="dark"] .vendor-canonical-table tr.is-selected td{background:#173442!important}
@media(max-width:900px){.vendor-canonical-header-actions{width:100%;justify-content:flex-start;margin-left:0}}
@media(max-width:640px){.vendor-canonical-header-actions .primary-btn,.vendor-canonical-header-actions .ghost-btn{flex:1 1 auto}.vendor-canonical-actions{min-width:205px}}
