/* COREAXIS shared desktop design system. Screen-only: document exports retain their approved templates. */
@font-face{font-family:Inter;src:url('ui-assets/inter-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url('ui-assets/inter-latin-600-normal.woff2') format('woff2');font-weight:500 600;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url('ui-assets/inter-latin-700-normal.woff2') format('woff2');font-weight:650 900;font-style:normal;font-display:swap}
@media screen {
 :root,body{
  --navy-950:#031D36;--navy-900:#052846;--navy-850:#07345A;--navy-800:#0B3D66;--navy-700:#164D78;
  --gold-500:#FFB000;--gold-450:#FFBD21;--gold-600:#E99A00;
  --canvas:#F4F8FC;--surface:#FFFFFF;--surface-soft:#F8FBFF;--surface-hover:#EEF5FC;
  --ink-950:#0B2545;--ink-800:#17385D;--ink-600:#4D6685;--ink-500:#6C819C;
  --border:#D5E1EE;--border-strong:#BFCFE1;--focus:#2F80ED;
  --row-aplus:#E1F7E7;--row-a:#E8F8E9;--row-b:#FFF4D2;--row-c:#E4F1FF;--row-d:#FFE5E8;
  --navy:var(--navy-950);--navy2:var(--navy-850);--orange:var(--gold-500);--orange2:var(--gold-600);
  --ink:var(--ink-950);--text:var(--ink-950);--muted:var(--ink-600);--panel:var(--surface);--line:var(--border);--soft-line:var(--border);
  --green:var(--row-a);--yellow:var(--row-b);--peach:var(--row-c);--coral:var(--row-d);--blue:var(--surface-hover);
  --sidebar-width:230px;--bar-height:66px;--radius:12px;--shadow:0 3px 12px #07345a0c;
  --ease:160ms cubic-bezier(.2,.8,.2,1);--control-height:40px;
 }
 body{font-family:Inter,'Segoe UI',Arial,sans-serif;font-size:14px;line-height:1.45;background:var(--canvas);color:var(--ink);overflow-x:clip}
 body[data-theme=night]{--canvas:#071b30;--surface:#102e49;--surface-soft:#12334f;--surface-hover:#1c4263;--ink-950:#edf4fc;--ink-800:#dbe9f7;--ink-600:#b7cadd;--ink-500:#a3bad0;--border:#34516d;--border-strong:#557796;--row-aplus:#163f34;--row-a:#1a3c32;--row-b:#423c23;--row-c:#1c354e;--row-d:#482a37}
 h1,h2,h3,p{overflow-wrap:break-word}h2{font-size:28px;line-height:1.2;font-weight:700}h3{font-size:20px;font-weight:700}
 button,input,select,textarea{font-family:inherit}button{touch-action:manipulation}button,summary,input,select,textarea{transition:background-color var(--ease),border-color var(--ease),box-shadow var(--ease),transform var(--ease)}
 :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 4px #2f80ed20}
 :is(.btn,.shell-icon,.notification-button,.close-btn){display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;min-height:40px;padding:0 14px;border:1px solid var(--border);border-radius:10px;background:linear-gradient(#fff,#f6faff);color:#0b2545;font-size:13px;font-weight:600;line-height:1.2;box-shadow:0 2px 4px #07345a0b;white-space:nowrap;text-decoration:none}
 :is(.btn,.shell-icon,.notification-button,.close-btn):hover:not(:disabled){background:var(--surface-hover);border-color:#a9c3df;box-shadow:0 4px 9px #07345a1a;transform:translateY(-1px)}
 :is(.btn,.shell-icon,.notification-button,.close-btn):active:not(:disabled){transform:translateY(0) scale(.985);box-shadow:inset 0 2px 4px #07345a1c}
 .btn-primary,body[data-section] main .btn-primary,#registerView #addBtn{background:linear-gradient(180deg,#ffcb46,var(--gold-500));border-color:var(--gold-600);color:#031d36;box-shadow:inset 0 1px 0 #ffffff80,0 3px 7px #a36e0023}
 .btn-primary:hover:not(:disabled),body[data-section] main .btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#ffd56a,#ffb815);border-color:#c58200}
 .btn-danger{color:#b51e2e;background:#fff6f6;border-color:#efb9bf}.btn-danger:hover:not(:disabled){background:#ffe8eb;border-color:#d37580}
 .btn-small,.records-table .btn-small{height:32px;min-height:32px;font-size:12px;padding:0 9px;border-radius:8px}
 :is(.shell-icon,.notification-button,.btn-icon,.close-btn){width:40px;padding:0;flex-shrink:0}
 :is(button,.btn):disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
 .btn svg,.shell-icon svg,.notification-button svg{width:18px;height:18px;flex-shrink:0}
 .link-button{font:inherit;font-weight:600;color:var(--ink-950);border:0;background:transparent;padding:0;text-align:inherit;line-height:inherit;min-height:0}
 .link-button:hover{color:#1463a0;text-decoration:underline;text-underline-offset:3px}
 /* Shell */
 body[data-section] .app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);height:100dvh;padding:20px 10px 14px;background:repeating-linear-gradient(135deg,#ffffff02 0px,#ffffff02 40px,transparent 40px,transparent 95px),linear-gradient(155deg,#07345a,#031d36 45%,#052846);border-right:1px solid #315573;color:#e6eff9;box-shadow:3px 0 12px #031d3614;overflow:auto;z-index:70}
 .sidebar-brand{padding:0 12px 20px;border-bottom:1px solid #ffffff16;margin-bottom:10px;display:flex;flex-direction:column;gap:10px;align-items:center}
 .sidebar-logo{width:110px;height:104px;margin:0;border-radius:0;background:transparent;overflow:hidden}.sidebar-logo img{width:100%;height:100%;object-fit:contain;transform:none;filter:none}
 .sidebar-brand strong{font-size:16px;font-weight:700;text-align:center;line-height:1.35;color:#fff}.sidebar-brand strong br{display:block}
 .nav-caption{font-size:10px;letter-spacing:.12em;padding:10px 16px;color:#9ab4cd}
 .app-sidebar nav{display:grid;gap:5px}.app-sidebar nav button{width:100%;height:auto;min-height:49px;display:flex;align-items:center;gap:12px;padding:10px 13px;border:1px solid transparent;border-left:4px solid transparent;border-radius:9px;background:transparent;box-shadow:none;color:#d7e4f2;font-size:13px;font-weight:500;text-align:left;line-height:1.3}
 .app-sidebar nav button svg{width:19px;height:19px;flex:0 0 19px}.app-sidebar nav button:hover{background:#164d784d;color:#fff;transform:none}.app-sidebar nav button:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #0003}
 .app-sidebar nav button:is(.active,[aria-current=page]){background:linear-gradient(110deg,#19486a,#103450);border:1px solid #386b8e;border-left:4px solid var(--gold-500);color:#ffc347;box-shadow:inset 0 1px #ffffff12,0 3px 9px #0002;font-weight:600}
 .sidebar-bottom{margin-top:18px;border-top:1px solid #ffffff1a;padding:12px 8px}.sidebar-person{padding:12px 0;color:#dce8f5}.sidebar-person small{color:#acc4da}.app-sidebar .brand-credit{padding:12px 0;border-color:#ffffff1c}.app-sidebar .brand-credit>span{font-size:9px;color:#a9bdd0}.app-sidebar .brand-credit strong{font-size:16px}.app-sidebar #sidebarSignOut button{width:100%;margin-top:6px}
 body[data-section] .app-bar{position:sticky;top:0;left:auto;right:auto;margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));height:var(--bar-height);min-height:var(--bar-height);padding:0 24px;display:flex;align-items:center;flex-wrap:nowrap;gap:18px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 2px 9px #07345a06;z-index:50}
 .app-bar .breadcrumb{display:none}.app-bar #globalSearchForm{display:flex;flex:1;max-width:690px;min-width:140px;height:40px;margin:0 auto 0 0;background:linear-gradient(var(--surface-soft),var(--surface-hover));border:1px solid var(--border);border-radius:10px;align-items:center}
 .app-bar #globalSearch{background:transparent;color:var(--ink);font-size:13px;min-width:0}.app-bar #globalSearchForm svg{width:19px;height:19px}.app-bar #globalSearchForm button{color:var(--ink-600);border:0;background:transparent}
 .bar-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.bar-profile{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink)}.avatar{height:40px;width:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(#d2e6ff,#eaf3ff);color:#0b3d66;font-weight:700}
 #daylightToggle{color:#bd7c00;background:linear-gradient(#fffdf7,#fff2cc);border-color:#ffe0a0}.notification-button{background:var(--surface-soft);color:var(--ink-950)}
 .attention-notice{top:calc(100% + 8px);right:22px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 10px 30px #031d3626}
 #sidebarToggle{display:none}
 body[data-section] main,body[data-sidebar=closed][data-section] main{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));padding:20px 22px;max-width:none;min-width:0}
 body[data-section] .month-scope{margin-left:var(--sidebar-width);padding:12px 22px 0;display:flex;align-items:center;gap:10px;font-size:12px}.month-scope .field{height:38px;min-height:38px;width:auto;max-width:220px}.month-scope>span{font-size:11px;color:var(--ink-600)}
 .section-head>div:first-child{margin-right:auto}.section-head>button:first-of-type{margin-left:auto}.section-head{display:flex;align-items:center;justify-content:flex-start;gap:16px;margin:0 0 16px}.section-head h2{font-size:28px;font-weight:700;margin:0;line-height:1.2;color:var(--ink-950)}.section-head p{font-size:12px;color:var(--ink-600);margin:5px 0 0}.section-head .eyebrow{font-size:10px;letter-spacing:.1em;margin:0 0 6px}.section-head .view-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin:0}
 /* Reusable surfaces, filters, menus, KPI and table components */
 .panel,.graph,.report-card,.analytics-explanation{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);color:var(--ink)}
 .panel-head{padding:14px 16px;min-height:58px;border-bottom:1px solid var(--border)}.panel-head :is(h2,h3){font-size:18px;margin:0}.panel-head p,.panel-head .meta{font-size:12px;color:var(--muted);margin:4px 0 0}
 .field,.search,dialog input:not([type=checkbox]):not([type=radio]),dialog select,dialog textarea{height:42px;min-height:42px;border:1px solid var(--border-strong);border-radius:10px;padding:9px 12px;background:var(--surface);color:var(--ink);font-size:13px;line-height:1.4;max-width:100%}
 .field:hover,.search:hover{border-color:#8caac9}.field:focus,.search:focus{border-color:var(--focus);outline:2px solid #2f80ed35;outline-offset:1px}.field:disabled{background:var(--surface-hover);color:var(--ink-600);cursor:not-allowed}
 label,.form-group label{font-size:12.5px;font-weight:600;color:var(--ink-800)}input::placeholder,textarea::placeholder{color:var(--ink-500);opacity:1}input:is([type=checkbox],[type=radio]){width:16px;height:16px;min-height:0;accent-color:#0b5a95;vertical-align:middle;flex-shrink:0}textarea.field,dialog textarea{height:76px;min-height:76px;resize:vertical}
 :is(.analytics-filters,.followup-filters,.private-filters,.incentive-filters,.quotation-filters,.invoice-filters){display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);margin-bottom:12px}
 :is(.analytics-filters,.followup-filters,.private-filters,.incentive-filters,.quotation-filters,.invoice-filters)>label{flex:1 1 140px;min-width:110px;display:grid;gap:5px}.filter-chip{display:inline-flex;align-items:center;gap:9px;height:30px;min-height:30px;padding:0 11px;border:1px solid #bdd5ef;border-radius:8px;background:#dcecff;color:#12385c;font-size:12px;font-weight:500}.filter-chip:hover{background:#cce2fc;border-color:#92b8de}.filter-chip:active{transform:scale(.985)}
 .active-filters{display:flex;gap:7px;padding:7px 12px}.column-options,.register-popover,.category-select-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 28px #031d3624;color:var(--ink)}summary{cursor:pointer}details[open]>summary{border-color:#6f9ed0;background:var(--surface-hover)}
 :is(.overview-kpi,.followup-kpi,.metric,.earnings-totals>div){border:1px solid var(--border);border-top:3px solid var(--navy-700);border-radius:12px;background:var(--surface);padding:14px 16px;text-align:left;box-shadow:var(--shadow);color:var(--ink);min-height:100px}
 :is(.overview-kpi,.followup-kpi,.metric)>:is(span,small){font-size:12px;color:var(--ink-600)}:is(.overview-kpi,.followup-kpi,.metric,.earnings-totals>div) :is(strong,.metric-value){font-size:28px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--ink-950)}.metric:before{display:none}
 :is(button.overview-kpi,button.followup-kpi):hover{transform:translateY(-1px);border-color:#8aacce;box-shadow:0 5px 14px #07345a16}:is(button.overview-kpi,button.followup-kpi):active{transform:scale(.99);box-shadow:inset 0 1px 4px #07345a1a}
 .overview-kpis,.analytics-kpis,.followup-kpis,.incentive-simple-kpis{gap:12px}.overview-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.overview-kpis>.overview-kpi{grid-column:auto}.overview-kpis:has(+.overview-category-strip){grid-template-columns:repeat(12,minmax(0,1fr))}.overview-kpis:has(+.overview-category-strip)>.overview-kpi{grid-column:span 3}.overview-kpis:has(+.overview-category-strip)>.overview-kpi:nth-child(n+5){grid-column:span 4}.overview-kpi{gap:6px;min-height:100px}.overview-kpi>*{margin:0}.overview-category-strip .overview-kpi{min-height:90px}.followup-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.overview-category-strip{gap:10px}.overview-category-strip .overview-kpi{min-height:82px}.overview-grid{gap:16px}
 .status-overdue,.followup-kpi[data-status=overdue]{border-top-color:#bd2335}.status-today{border-top-color:#d89b12}.followup-overdue{color:#b42332}.leader-row{border-bottom:1px solid var(--border);padding:12px 16px}.leader-rank,.rank-badge{background:var(--navy-850);color:#fff;border-radius:9px;min-width:32px;min-height:32px;font-size:14px}
 :is(.records-table,.performance-table,.overview-table,.followup-table,.private-table,.operations-table table,.summary-table){border-collapse:separate;border-spacing:0;font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}
 :is(.records-table,.performance-table,.overview-table,.followup-table,.private-table,.operations-table table,.summary-table) th{background:linear-gradient(#0b3d66,#052846);color:white;font-size:12.5px;font-weight:600;line-height:1.35;height:46px;padding:9px 12px;text-align:left;border-right:1px solid #496b86;border-bottom:2px solid #e6a700;letter-spacing:0;text-transform:none;text-shadow:none;white-space:normal;vertical-align:middle;box-shadow:none}
 :is(.records-table,.performance-table,.overview-table,.followup-table,.private-table,.operations-table table,.summary-table) td{padding:9px 12px;min-height:46px;font-size:13px;font-weight:400;line-height:1.4;vertical-align:middle;border-right:1px solid var(--border-strong);border-bottom:1px solid var(--border);box-shadow:none;color:var(--ink)}
 :is(.records-table,.performance-table,.overview-table,.followup-table,.private-table,.operations-table table,.summary-table) tr{background:var(--surface)}
 :is(.performance-table,.overview-table,.followup-table,.private-table,.operations-table table) tbody tr:nth-child(even){background:var(--surface-soft)}
 :is(.records-table,.performance-table,.overview-table,.followup-table,.private-table,.operations-table table) tbody tr:hover td{background-image:linear-gradient(#164d7808,#164d7808)}
 :is(.records-table,.performance-table,.overview-table,.followup-table,.private-table) :is(.customer,.link-button){font-weight:600;font-size:13px}
 .records-table tr.category-row-aplus{background:var(--row-aplus)}.records-table tr.category-row-a{background:var(--row-a)}.records-table tr.category-row-b{background:var(--row-b)}.records-table tr.category-row-c{background:var(--row-c)}.records-table tr.category-row-d{background:var(--row-d)}
 .performance-table :is(th,td)[data-key]:not([data-key=caller]),.money-cell,.unit-price-cell{text-align:right}.performance-table th button{color:inherit;font:inherit}.overview-total td,.performance-table tfoot td,.summary-table tfoot td{background:var(--navy-850);color:#fff;font-weight:700}.private-table{table-layout:auto;min-width:1100px;width:100%}.private-table.earnings-table{min-width:1600px}.private-table :is(th,td){word-break:normal;overflow-wrap:normal}.private-table :is(th,td):nth-child(2){min-width:145px}.private-table th{position:sticky;top:0;z-index:2}
 .cat-badge.aplus,.cat-badge.a\+{--badge-top:#30CE75;--badge-bottom:#079448;--badge-border:#07813e;--badge-ink:white}.cat-badge.a{--badge-top:#2DCA70;--badge-bottom:#078D44;--badge-border:#08743b;--badge-ink:white}.cat-badge.b{--badge-top:#FFD63D;--badge-bottom:#EDA900;--badge-border:#d29300;--badge-ink:#1B1B1B}.cat-badge.c{--badge-top:#E02862;--badge-bottom:#A90742;--badge-border:#980d3d;--badge-ink:white}.cat-badge.d{--badge-top:#F02F2F;--badge-bottom:#B80000;--badge-border:#aa0d17;--badge-ink:white}
 .cat-badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;width:auto;height:30px;padding:0 8px;flex-shrink:0;white-space:nowrap;line-height:1;border-radius:9px;font-weight:700;color:var(--badge-ink);background:linear-gradient(var(--badge-top),var(--badge-bottom));border:1px solid var(--badge-border);box-shadow:inset 0 1px 0 #ffffff80,inset 0 3px 4px #ffffff20,0 2px 4px #031d3620}.cat-badge.aplus:before{content:none}.category-select-trigger .cat-badge{min-width:25px;height:24px;padding:0 5px;font-size:11px}
 /* Register keeps its existing one-row controls, column visibility and sorting. */
 body[data-section=register] .app-bar{position:fixed;top:0;left:var(--sidebar-width);right:0;margin:0;width:auto;height:var(--bar-height);min-height:var(--bar-height)}
 body[data-section=register] #registerView:not([hidden]){position:fixed;top:var(--bar-height);bottom:0;left:var(--sidebar-width);right:0;width:auto;margin:0;padding:16px 20px 12px;display:flex;flex-direction:column;gap:12px;min-height:0}
 #registerView>.section-head{min-height:54px;max-height:none;flex:0 0 54px;margin:0}#registerView>.section-head h2{font-size:28px}#registerView #resultsCount{font-size:12px;line-height:18px;margin-top:5px}#registerView .section-head .btn{height:40px;min-height:40px;font-size:13px}
 #registerView .data-panel{display:grid;grid-template-rows:54px auto minmax(0,1fr) 44px;grid-template-columns:minmax(0,1fr);border-radius:12px;box-shadow:0 3px 12px #07345a0b;overflow:visible}
 #registerView .visible-filter-toolbar{height:54px;min-height:54px;max-height:54px;gap:7px;padding:6px 10px;background:var(--surface-soft);border-radius:12px 12px 0 0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
 #registerView .visible-filter-toolbar>.register-search-control{flex:1 0 170px;width:190px;min-width:170px;max-width:240px}
 #registerView .visible-filter-toolbar>.filter-control:not(.register-search-control){flex:1 0 82px;min-width:82px;width:100px;max-width:150px}#registerView .visible-filter-toolbar>.filter-control:has(#remarkFilter){flex-basis:120px;width:135px}#registerView .visible-filter-toolbar>.filter-control:has(#vendorFilter){flex-basis:100px}#registerView .visible-filter-toolbar>.filter-control:has(#systemFilter){flex-basis:94px}
 #registerView .visible-filter-toolbar :is(.field,.btn){height:40px;min-height:40px;font-size:12px;border-radius:9px}#registerView .visible-filter-toolbar .register-menu>summary{width:116px}#registerView .visible-filter-toolbar>#clearFiltersBtn{width:108px}
 #registerView .visible-filter-toolbar .filter-in-use .field{border-color:var(--gold-600);box-shadow:inset 0 -1px var(--gold-500)}#registerView #activeFilters{max-height:42px;padding:5px 10px;gap:7px}#registerView #activeFilters .filter-chip{height:30px;min-height:30px;font-size:12px;padding:0 10px}
 #registerView .records-table{width:100%;min-width:0;table-layout:fixed}#registerView .records-table th:nth-child(n){width:var(--column-width);min-width:0}
 #registerView .records-table th{height:44px;padding:8px 9px;font-size:12px;background:linear-gradient(#0b3d66,#052846);box-shadow:none;color:white;border-right:1px solid #496b86;border-bottom:2px solid #e6a700;text-shadow:none}
 #registerView .records-table td{height:46px;padding:7px 9px;font-size:13px;line-height:1.35;vertical-align:middle;overflow-wrap:break-word}
 #registerView .records-table[data-density=compact] td{height:38px;padding:4px 8px;font-size:12px;line-height:1.3}
 #registerView .records-table :is(.customer,.cell-remark){max-height:none;overflow:visible;-webkit-line-clamp:unset;line-height:1.35;white-space:normal;word-break:normal}
 #registerView .records-table .cell-remark{font-weight:400}#registerView .records-table td[data-label=Category]{text-align:center;white-space:nowrap}#registerView .records-table :is(th,td)[data-label='Unit Price']{text-align:right}
 #registerView .records-table .actions{display:flex;gap:5px;align-items:center;flex-wrap:nowrap}#registerView .records-table .btn-small{height:30px;min-height:30px;padding:0 7px;font-size:11px}
 #registerView .records-table .unit-price-cell{min-width:0;width:auto;font-size:12px;white-space:nowrap;text-align:right}#registerView .pager{height:44px;min-height:44px;padding:6px 12px;background:var(--surface-soft);border-radius:0 0 12px 12px}#registerView .pager .btn{height:32px;min-height:32px}
 #registerView .visible-filter-toolbar .search{padding-left:34px;padding-right:28px;width:100%;height:40px;min-height:40px}
 #registerView .visible-filter-toolbar .search-wrap:before{display:none}
 #registerView:not(.has-active-filters) #activeFilters{display:none}
 body[data-section=register] .month-scope,body[data-section=privateEarnings] .month-scope,body[data-section=userMaster] .month-scope,body[data-section=incentive] .month-scope,body[data-section=quotation] .month-scope{display:none}
 .owner-control-dialog{width:min(1080px,95vw)}
 #registerView .records-table td.customer{display:table-cell}
 #registerView .records-table .cell-remark{display:block}
 #registerView .records-table th{overflow-wrap:normal;word-break:normal;padding-inline:7px}
 #registerView .records-table td[data-label=Mobile]{overflow-wrap:normal;word-break:normal;font-size:12px}
 #registerView .records-table .actions{gap:4px}#registerView .records-table .btn-small{padding-inline:5px}
 #registerView .records-table th:has(+th:last-child){font-size:11px}
 #registerView .category-select-trigger{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:20px}#registerView .category-select-trigger .cat-badge{vertical-align:middle;margin-right:3px}#registerView .category-selection-count{font-size:9px;margin-left:4px}#registerView .category-select-trigger:after{right:5px}
 #userMasterView .private-table{min-width:0;width:100%}.followup-table{width:100%;min-width:1000px}.followup-filters .btn{flex:0 0 auto}.followup-filters .field{height:40px;min-height:40px}
 .vendor-invoice-dialog>label{display:inline-grid;width:calc(50% - 9px);gap:6px;margin:0 12px 8px 0}.vendor-invoice-dialog>label:nth-of-type(2){margin-right:0}
 /* Forms, dialogs and feedback share the same component surface. */
 dialog{color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 60px #031d3640;max-width:calc(100vw - 48px);max-height:calc(100dvh - 48px);padding:0;overflow:auto}
 dialog::backdrop{background:#031d3659;backdrop-filter:blur(2px)}dialog[open]{animation:ui-dialog-enter 160ms ease-out}.dialog-head,dialog>header{background:var(--surface-soft);border-bottom:1px solid var(--border);padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:6;color:var(--ink)}.dialog-head h2,dialog h2{font-size:20px;line-height:1.3;margin:0;color:var(--ink)}.dialog-head .close-btn{font-size:23px;color:var(--ink);background:var(--surface)}
 .form-grid{padding:18px 20px;gap:14px 18px}.form-group{min-width:0}.form-group label{margin-bottom:6px}.dialog-help{margin:14px 20px 0;font-size:12px;color:var(--muted)}.dialog-actions{position:sticky;bottom:0;z-index:5;padding:14px 20px;display:flex;justify-content:flex-end;gap:9px;background:var(--surface);border-top:1px solid var(--border)}.dialog-actions>button:first-child{margin-right:auto}
 .unit-price-editor{margin:0 20px;padding:16px 0}.unit-price-fields{gap:18px}.field-error,.operation-error,.quotation-error{color:#b42332;font-size:12px;margin:5px 0}.field[aria-invalid=true]{border-color:#bf273a;background:#fff8f8}.required{color:#b42332}
 :is(.private-form,.owner-form,.operation-dialog form,dialog>form):not(#recordForm):not(#callerForm){padding:18px 20px}.owner-review-table,.invoice-table-wrap{overflow:auto}.owner-form label,.private-form label{display:grid;gap:6px}.owner-form label:has(input[type=checkbox]),.private-form label:has(input[type=checkbox]){display:flex;align-items:center}
 #invoiceDialog{width:min(1240px,95vw)}#ownerControlDialog{width:min(1080px,95vw)}#privateDialog{width:min(640px,95vw)}.operation-dialog{padding:20px;width:min(640px,95vw)}#recordDialog{width:min(840px,95vw)}
 .toast{position:fixed;top:82px;bottom:auto;right:22px;z-index:1000;border:1px solid #5b859d;border-radius:12px;padding:12px 14px;background:#0b3d66;color:white;box-shadow:0 8px 24px #031d3630;max-width:min(420px,calc(100vw - 32px));font-size:13px}.toast.show{animation:ui-toast-enter 160ms ease-out}.toast.error{background:#8d2534;border-color:#b95564}.toast button{background:transparent;color:inherit;border:0}
 .empty,.analytics-empty,.chart-empty{padding:30px 20px;color:var(--muted);text-align:center}.loading-rows{background:repeating-linear-gradient(180deg,var(--surface-soft) 0 30px,var(--surface) 30px 46px);min-height:180px;border-radius:10px}.business-record-check,.incentive-note{font-size:12px;color:var(--muted)}
 .quotation-form{padding:18px}.quotation-form form{gap:14px}.quotation-form-section{font-size:16px;border-bottom:1px solid var(--border);padding:10px 0;margin:4px 0}.quotation-tabs,.incentive-tabs{gap:6px;padding:5px;border:1px solid var(--border);background:var(--surface-soft);border-radius:10px;margin-bottom:14px}.quotation-tabs button,.incentive-tabs button{border-radius:8px;padding:9px 14px;font:inherit;font-weight:600}.quotation-tabs [aria-selected=true],.incentive-tabs [aria-selected=true]{background:var(--navy-850);color:white}
 .earnings-totals{gap:12px}.earnings-totals strong{white-space:nowrap;font-size:24px}.earnings-totals>div{min-height:100px}.incentive-simple-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.incentive-simple-kpis>.overview-kpi{grid-column:auto}.incentive-filters>*{flex:1 1 160px;min-width:0}.incentive-note{margin:12px 0;padding:0}
 /* Login uses the official artwork, never a recreated logo. */
 .login-screen{min-height:100dvh;padding:32px;display:grid;place-items:center;background:radial-gradient(ellipse at 20% 20%,#0b3d66,#031d36 72%)}
 .login-screen .login-card{position:relative;width:min(780px,100%);display:grid;grid-template-columns:260px minmax(0,1fr);column-gap:32px;padding:32px;border-radius:16px;border:1px solid #57748a;background:linear-gradient(90deg,#052846 0 292px,#fff 292px);box-shadow:0 24px 70px #0004;color:#0b2545;overflow:hidden}
 .login-screen .login-card>*{grid-column:2}.login-screen .login-card .brandmark{grid-column:1;grid-row:1/5;align-self:end;justify-self:center;width:140px;height:136px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}.login-screen .login-card .brandmark img{width:100%;height:100%;object-fit:contain;transform:none;filter:none}.login-screen .login-card .login-brand{display:none}.login-screen .login-card h1{grid-column:1;grid-row:5/8;font-size:20px;line-height:1.4;font-weight:700;color:white;text-align:center;align-self:start;margin:12px 0}.login-screen .login-card .login-subtitle{margin:0 0 20px;font-size:20px;font-weight:700;color:#0b2545}.login-screen .login-card label{color:#17385d;font-size:12.5px}.login-screen .login-card .field{background:#fff;color:#0b2545;margin:5px 0 14px;height:42px}.login-screen .login-card .password-row{display:flex;gap:8px}.login-screen .login-card .password-row .field{min-width:0}.login-screen .login-card .password-row .btn{margin-top:5px}.login-screen .login-card .remember{display:flex;gap:8px;align-items:center;font-size:12px;margin:0 0 16px}.login-screen .login-card .remember input{margin:0}.login-screen .login-card .login-authorised{font-size:11px;color:#4d6685;text-align:center;margin:10px 0}.login-screen .login-card #loginStatus,.login-screen .login-card #loginService{font-size:12px;color:#4d6685;margin:4px 0}.login-screen .login-card .brand-credit{grid-column:1;grid-row:8/14;align-self:end;color:white;border:0}.login-screen .login-card .brand-credit>span{color:#b2c7dc}.login-screen .login-card .brand-credit strong{color:white}
 @keyframes ui-dialog-enter{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@keyframes ui-toast-enter{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
 @media(max-width:1439px){:root,body{--sidebar-width:230px}#registerView .visible-filter-toolbar{gap:6px}#registerView .visible-filter-toolbar>.register-search-control{min-width:154px;flex-basis:154px}#registerView .visible-filter-toolbar>.filter-control:not(.register-search-control){min-width:75px;flex-basis:75px}#registerView .visible-filter-toolbar>.filter-control:has(#remarkFilter){flex-basis:115px}#registerView .visible-filter-toolbar .register-menu>summary{width:102px;padding:0 6px}#registerView .visible-filter-toolbar>#clearFiltersBtn{width:95px;padding:0 5px}.app-bar .bar-actions{gap:8px}}
 @media(max-width:1179px){.app-bar .bar-profile>span:last-child{display:none}.followup-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.section-head{align-items:flex-start}.section-head .view-actions{max-width:55%}.earnings-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}
 @media(max-width:899px){body[data-section] .app-bar{margin:0;width:100%;left:0;padding:0 14px}body[data-section] main,body[data-sidebar=closed][data-section] main{margin-left:0;width:100%;padding:16px}body[data-section] .month-scope{margin-left:0;padding:12px 16px 0;flex-wrap:wrap}body[data-section=register] #registerView:not([hidden]){left:0;padding:12px}body[data-section] .app-sidebar{top:var(--bar-height);height:calc(100dvh - var(--bar-height))}body[data-sidebar=closed] .app-sidebar{transform:translateX(-100%);visibility:hidden}body[data-sidebar=open] .app-sidebar{transform:translateX(0);visibility:visible}.sidebar-backdrop:not([hidden]){display:block;top:var(--bar-height);height:calc(100dvh - var(--bar-height));background:#031d3659;z-index:60}#sidebarToggle{display:inline-flex}#registerView .visible-filter-toolbar>.register-search-control{min-width:180px;flex-basis:180px}#registerView>.section-head h2{font-size:24px}.overview-kpis,.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-kpis>.overview-kpi:nth-child(n){grid-column:auto}.bar-profile{display:none}.section-head h2{font-size:24px}.login-screen .login-card{grid-template-columns:210px minmax(0,1fr);background:linear-gradient(90deg,#052846 0 242px,#fff 242px)}}
 @media(max-width:599px){.login-screen .login-card{display:block;background:#fff;padding:24px}.login-screen .login-card .brandmark{margin:0 auto 15px;width:90px;height:90px}.login-screen .login-card h1{color:#0b2545;font-size:20px}.login-screen .login-card .login-subtitle{font-size:14px;text-align:center}.login-screen .login-card .brand-credit{color:#0b2545}.login-screen{padding:16px}.incentive-simple-kpis,.followup-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.app-bar #globalSearchForm{min-width:80px}.section-head .view-actions{max-width:none}.section-head{flex-wrap:wrap}.app-bar .bar-actions{gap:5px}}
 #selfPasswordDialog{width:480px}#selfPasswordDialog .login-card{display:block;width:auto;max-width:none;margin:0;padding:24px;background:var(--surface);box-shadow:none;border:0}#selfPasswordDialog label{display:grid;gap:6px;margin:14px 0}#selfPasswordDialog .btn{margin:8px 6px 0 0}
 /* Hidden semantics must win over shared component display rules. */
 [hidden],body [hidden],#workspace[hidden],#login[hidden],#registerView[hidden]{display:none}
}
@media(prefers-reduced-motion:reduce){html body *,html body *::before,html body *::after{transition:none;animation:none;scroll-behavior:auto}}


/* Register export shares the compact print action group. */
#registerView .view-actions #exportCurrentView{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;height:40px;padding:0 12px;border-radius:8px}
#registerView .view-actions #exportCurrentView svg{width:16px;height:16px;flex-shrink:0}

/* Keep register actions in normal flow when the split-screen heading wraps. */
@media screen and (max-width:999px){
 #registerView>.section-head{flex:0 0 auto;min-height:54px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
 #registerView>.section-head>div:first-child{flex:1 1 300px;min-width:0}
 #registerView>.section-head .view-actions{flex:0 0 auto;max-width:none;flex-wrap:nowrap;align-items:center;gap:8px}
 #registerView .data-panel{grid-template-rows:96px auto minmax(0,1fr) 44px}
 #registerView .visible-filter-toolbar{display:grid;grid-template-columns:minmax(160px,1.5fr) repeat(4,minmax(0,1fr));height:96px;min-height:96px;max-height:96px;gap:6px;padding:5px 10px;overflow:visible}
 #registerView .visible-filter-toolbar>.register-search-control,
 #registerView .visible-filter-toolbar>.filter-control:not(.register-search-control),
 #registerView .visible-filter-toolbar>.filter-control:has(#remarkFilter){width:100%;min-width:0;max-width:none}
 #registerView .visible-filter-toolbar .register-menu>summary,
 #registerView .visible-filter-toolbar>#clearFiltersBtn{width:100%;min-width:0;height:40px;min-height:40px}
}
/* Shared screen-only table geometry; exports retain their own widths. */
@media screen{
.resizable-table-scroll{display:block;max-width:100%;min-width:0;overflow:auto;overscroll-behavior-x:contain;position:relative}
.resizable-table{table-layout:fixed!important;border-collapse:collapse!important}
.resizable-table :is(th,td){box-sizing:border-box!important;overflow:hidden!important;text-overflow:ellipsis;overflow-wrap:anywhere;word-break:normal;border-right:1px solid var(--border,#cbdbea);vertical-align:middle}
.resizable-table th{position:relative;padding-right:14px!important;white-space:normal!important}
.resizable-table td[data-column-kind=money],.resizable-table td[data-column-kind=mobile]{white-space:nowrap!important;overflow-wrap:normal!important;font-variant-numeric:tabular-nums}
.resizable-table td[data-column-kind=category]{text-align:center!important}
.resizable-table td[data-column-kind=actions]{white-space:normal!important}
.resizable-table td button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.resizable-table td[data-column-kind=money] button{display:block;margin-left:auto;white-space:normal!important;max-width:100%;text-align:right}
.resizable-table td[data-column-kind=actions] button{margin:2px;max-width:100%}
.resizable-table td[data-column-kind=customer]>button{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:100%}
#registerView .resizable-table :is(th,td){position:static!important}
#registerView .resizable-table th{position:relative!important}
.column-resizer{position:absolute;top:0;right:0;bottom:0;width:9px;padding:0!important;border:0;border-right:2px solid transparent;background:transparent;cursor:col-resize;touch-action:pan-y;z-index:3;border-radius:0!important}
.resizable-table th:hover .column-resizer{border-right-color:#e1b22d}
.column-resizer:focus-visible{outline:2px solid #f3bb26;outline-offset:-2px;background:#ffffff30}
.column-resizing,.column-resizing *{cursor:col-resize!important;user-select:none!important}
.price-lock-icon{display:inline-flex;width:16px;align-items:center;justify-content:center;vertical-align:middle;font-size:12px;color:#a56b00}
.price-lock-icon:focus-visible{outline:2px solid #d8a420;outline-offset:2px}
.table-width-options{position:relative;display:flex;justify-content:flex-end;margin:4px 0;font-size:12px}
.table-width-options>summary{cursor:pointer;padding:4px 8px;width:max-content;margin-left:auto}
.table-width-options[open]>button{position:absolute;right:0;top:28px;z-index:20;box-shadow:0 3px 12px #1234;background:var(--surface,#fff)}
#workspace,#workspace main,#workspace section,.desktop-view{min-width:0;max-width:100%}
.monthly-connection-status{padding:6px 10px;margin:4px 0;border:1px solid #d6bd76;background:#fff6db;color:#654d13;border-radius:8px;font-size:12px}
.monthly-connection-status button{margin-left:12px;background:transparent;border:0;color:inherit;cursor:pointer}
.toast{top:auto!important;bottom:12px!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;max-width:min(320px,calc(100vw - 24px));animation:none!important}
}
@media print{.column-resizer,.table-width-options,.monthly-connection-status{display:none!important}.resizable-table-scroll{overflow:visible}.resizable-table{width:100%!important;min-width:0!important;max-width:none!important}.resizable-table th{width:auto!important;min-width:0!important;max-width:none!important}}
@media(prefers-reduced-motion:reduce){.resizable-table-scroll{scroll-behavior:auto}.toast{transition:none!important;animation:none!important}}
#registerView .resizable-table th,#registerView .resizable-table td{left:auto!important;right:auto!important}
.resizable-table [hidden]{display:none!important}

/* Invoice totals must not inherit dashboard KPI colours or no-wrap text. */
#invoiceSelectionTotals .invoice-report-totals .invoice-payable strong,
.invoice-document .invoice-report-totals .invoice-payable strong{color:#fff;font-size:24px;line-height:1.3}
#invoiceSelectionTotals .invoice-report-totals .invoice-words strong,
.invoice-document .invoice-report-totals .invoice-words strong{color:#17384f;font-size:16px;font-weight:600;line-height:1.5;white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%;text-align:left}
#invoiceSelectionTotals .invoice-report-totals p{align-items:center;flex-wrap:wrap}
#invoiceSelectionTotals .invoice-report-totals p strong{margin-left:auto}
