/* ============================================================
   Fincharts on Nova ERP v2 — minimal app extensions.
   style.css (Nova) is untouched; this file only adds the few
   structures Fincharts needs that the template does not ship:
   collapsible sidebar groups, "coming soon" tags, key/value
   lists, the org tree and a few layout helpers.
   Colours come exclusively from Nova's CSS variables.
   ============================================================ */

/* ---------- Brand ---------- */
.sidebar .brand .name small{display:block;font-size:10.5px;font-weight:500;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}

/* ---------- Collapsible sidebar groups ---------- */
.nav details{margin-bottom:2px}
.nav details > summary{list-style:none;display:flex;align-items:center;gap:13px;padding:11px 13px;border-radius:13px;
  color:var(--text-2);font-size:14px;font-weight:500;cursor:pointer;user-select:none}
.nav details > summary::-webkit-details-marker{display:none}
.nav details > summary:hover{background:var(--surface-2);color:var(--text)}
.nav details > summary svg{width:18px;height:18px;flex:0 0 18px;color:var(--muted)}
.nav details > summary .chev{margin-left:auto;width:14px;height:14px;flex:0 0 14px;transition:transform .2s var(--ease)}
.nav details[open] > summary .chev{transform:rotate(90deg)}
.nav details[open] > summary{color:var(--text)}
.nav .sub{padding:2px 0 6px 18px;border-left:1px solid var(--line);margin-left:22px}
.nav .sub a{padding:8px 12px;font-size:13.5px;border-radius:11px}
.nav .sub .sub-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:10px 12px 4px;font-weight:600}
.nav .soon{margin-left:auto;font-size:10px;font-weight:600;color:var(--muted);background:var(--surface-2);padding:2px 7px;border-radius:6px;letter-spacing:.03em}
.nav a.active .soon{background:rgba(255,255,255,.2);color:#fff}
.nav .count{margin-left:auto;font-size:11px;font-weight:600;color:#fff;background:var(--rose);padding:1px 7px;border-radius:9px}

/* ---------- Topbar notifications ---------- */
.notif-menu{min-width:320px;max-width:92vw}
.notif-menu .n-item{display:block;padding:10px 13px;border-radius:11px;color:var(--text)}
.notif-menu .n-item:hover{background:var(--surface-2)}
.notif-menu .n-item .t{font-size:13.5px;font-weight:500}
.notif-menu .n-item .w{font-size:12px;color:var(--muted)}
.notif-menu .n-item.unread .t::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:7px;vertical-align:middle}

/* ---------- Page helpers ---------- */
.card.pad{padding:24px}
.grid.pad{padding:24px}
.stack > * + *{margin-top:20px}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.filters .field{margin-bottom:0;min-width:160px}
.filters .field input,.filters .field select{padding:9px 12px;font-size:13.5px}
.kv{display:grid;grid-template-columns:minmax(92px,min(220px,40%)) minmax(0,1fr);gap:10px 18px;font-size:14px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;font-weight:500;word-break:break-word}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}
.nowrap{white-space:nowrap}
.help-block{font-size:13px;color:var(--text-2)}
.inline-form{display:inline}
.w-100{width:100%}
.mt-12{margin-top:12px}.mb-12{margin-bottom:12px}.mb-18{margin-bottom:18px}.mb-24{margin-bottom:24px}
.pre{white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border-radius:var(--radius-sm);padding:12px 14px;font-size:12.5px;max-height:320px;overflow:auto}
.table-wrap table td .muted{font-size:12.5px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;border:1px solid var(--line);border-radius:var(--radius-pill);padding:3px 10px;color:var(--text-2);background:var(--surface)}
.modal.wide{width:min(94vw,760px);max-height:92vh;overflow:auto}
.form-grid .full{grid-column:1 / -1}

/* ---------- Org tree (hierarchy summary) ---------- */
.tree,.tree ul{list-style:none;margin:0;padding:0}
.tree ul{margin-left:18px;border-left:1px dashed var(--line);padding-left:14px}
.tree li{padding:6px 0}
.tree .node{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.tree .node .role{font-size:11.5px;color:var(--muted)}

/* ---------- Auth extras ---------- */
.auth .alert{margin-bottom:18px}
.otp-input{letter-spacing:.5em;text-align:center;font-size:22px!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

@media(max-width:640px){.hide-mobile{display:none!important}}

/* ---------- Print ---------- */
@media print{.sidebar,.topbar,.footer,.no-print{display:none!important}.main{margin-left:0!important}}

/* ============================================================
   Phase 2 — forms, error summary, customer 360, sale wizard
   ============================================================ */
/* ---------- Error summary (GOV.UK pattern, Nova colours) ---------- */
.err-summary{border:1.5px solid var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:18px;outline:none}
.err-summary .err-summary-title{font-weight:600;color:var(--danger);margin-bottom:6px;font-size:14px}
.err-summary ul{margin:0;padding-left:18px}
.err-summary li{font-size:13.5px;margin:3px 0}
.err-summary a{color:var(--danger);text-decoration:underline}
.warn-summary{border:1.5px solid var(--warning,#d97706);background:var(--warning-soft,rgba(217,119,6,.08));border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:18px}
.warn-summary .t{font-weight:600;margin-bottom:4px;font-size:14px}
.warn-summary ul{margin:0;padding-left:18px;font-size:13.5px}
.field .error::before{content:"⚠ ";}
.field.valid input,.field.valid select{border-color:var(--success)}
.form-section-title{font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:6px 0 12px}
.form-section-title:not(:first-child){margin-top:14px}
.form-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.form-grid .span-2{grid-column:span 2}
.form-grid .span-all{grid-column:1 / -1}
@media(max-width:992px){.form-grid.cols-3{grid-template-columns:1fr 1fr}.form-grid .span-2{grid-column:1 / -1}}
@media(max-width:640px){.form-grid.cols-3{grid-template-columns:1fr}}
.check-row{display:flex;align-items:center;gap:9px;font-size:14px;margin:4px 0 14px;cursor:pointer}
.check-row input{width:17px;height:17px;accent-color:var(--accent)}
.modal.xwide{width:min(96vw,980px);max-height:92vh;overflow:auto}
.btn-xs{padding:3px 9px;font-size:12px;border-radius:8px}
.kv dt,.kv dd{padding:7px 0;border-bottom:1px solid var(--line)}
.addr{padding:12px 0;border-bottom:1px solid var(--line)}.addr:last-child{border-bottom:0}
.doc-upload{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;margin-bottom:16px}
.doc-upload .field{margin-bottom:0;min-width:200px}
.doc-upload .btn{margin-top:30px}
.doc-list{margin:0;padding-left:18px;font-size:13.5px}
.empty.sm{padding:18px}
.th-sort{color:inherit;text-decoration:none}.th-sort:hover{color:var(--accent)}
.mb-12{margin-bottom:12px}

/* ---------- Sale wizard ---------- */
.wz{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}
@media(max-width:1100px){.wz{grid-template-columns:1fr}}
.wz-steps{position:sticky;top:90px;list-style:none;margin:0;padding:10px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-soft)}
@media(max-width:1100px){.wz-steps{position:static;display:flex;overflow-x:auto;gap:4px}}
.wz-steps li{display:flex;gap:12px;align-items:flex-start;padding:11px 12px;border-radius:14px;cursor:default;min-width:0}
@media(max-width:1100px){.wz-steps li{flex:0 0 auto}.wz-steps .wz-sub{display:none}}
.wz-steps li.reachable{cursor:pointer}
.wz-steps li.reachable:hover{background:var(--surface-2)}
.wz-steps .wz-num{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:600;background:var(--surface-2);color:var(--text-2);border:1.5px solid var(--line)}
.wz-steps .wz-t{font-size:14px;font-weight:500;color:var(--text-2);line-height:1.25}
.wz-steps .wz-sub{font-size:12px;color:var(--muted);margin-top:2px}
.wz-steps li.current{background:var(--accent-soft)}
.wz-steps li.current .wz-num{background:var(--accent);border-color:var(--accent);color:#fff}
.wz-steps li.current .wz-t{color:var(--text);font-weight:600}
.wz-steps li.done .wz-num{background:var(--success);border-color:var(--success);color:#fff}
.wz-steps li.done .wz-num::after{content:"✓"}
.wz-steps li.done .wz-num span{display:none}
.wz-steps li.error .wz-num{background:var(--danger);border-color:var(--danger);color:#fff}
.wz-steps li.error .wz-t{color:var(--danger)}
.wz-panel{display:none}
.wz-panel.active{display:block;animation:rise .35s var(--ease)}
.wz-panel .card{padding:24px 26px;margin-bottom:18px}
.wz-panel h2{font-size:19px;margin:0 0 4px}
.wz-panel .wz-lead{color:var(--text-2);font-size:14px;margin:0 0 18px}
.wz-foot{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;position:sticky;bottom:0;background:var(--bg,var(--surface-2));padding:14px 0 6px;z-index:5}
.wz-foot .spacer{flex:1}
.wz-checking{font-size:13px;color:var(--muted);display:none;align-items:center;gap:8px}
.wz-checking.on{display:inline-flex}
.wz-checking::before{content:"";width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:wzspin .8s linear infinite}
@keyframes wzspin{to{transform:rotate(360deg)}}
.wz-locked input{background:var(--surface-2)}
.wz-hint{font-size:12.5px;color:var(--muted);margin-top:-8px;margin-bottom:14px}
.calc{background:var(--surface-2)!important;color:var(--text)!important;font-weight:600}
.inline-note{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;background:var(--surface-2);border-radius:var(--radius-sm);padding:10px 14px;margin:0 0 14px}
.inline-note svg{flex:0 0 18px;color:var(--accent);margin-top:1px}
.inline-note.warn{background:rgba(217,119,6,.08)}.inline-note.warn svg{color:#d97706}

/* Customer picker (typeahead + New) */
.cp{position:relative}
.cp .cp-row{display:flex;gap:8px}
.cp .cp-row input{flex:1}
.cp-suggest{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lift);max-height:280px;overflow:auto;padding:6px}
.cp-suggest[hidden]{display:none}
.cp-opt{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:9px 11px;border-radius:10px;cursor:pointer;font-size:13.5px}
.cp-opt:hover,.cp-opt.active{background:var(--surface-2)}
.cp-opt .d{font-size:12px;color:var(--muted);margin-top:2px}
.cp-empty{padding:10px 12px;font-size:13px;color:var(--muted)}
.cp-picked{margin-top:8px;font-size:12.5px;color:var(--text-2);background:var(--surface-2);border-radius:10px;padding:7px 11px}
.cp-picked[hidden]{display:none}

/* Repeating rows (nominees) */
.rep-row{border:1px solid var(--line);border-radius:16px;padding:16px 18px 4px;margin-bottom:14px;position:relative}
.rep-row .rep-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.rep-row .rep-head .t{font-weight:600;font-size:14px}
.rep-sub{border-top:1px dashed var(--line);margin-top:4px;padding-top:12px}
.group-error{color:var(--danger);font-size:13px;margin:4px 0 12px}
.group-error::before{content:"⚠ "}
.group-error[hidden]{display:none}

/* Review */
.rv-section{border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin-bottom:14px}
.rv-section .rv-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.rv-section .rv-h h3{font-size:15px;margin:0}
.rv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 20px;font-size:13.5px}
@media(max-width:800px){.rv-grid{grid-template-columns:1fr 1fr}}
.rv-grid .k{color:var(--muted);font-size:12px}
.rv-grid .v{font-weight:500;word-break:break-word}
.tile-link{display:block;color:inherit;text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.tile-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.tile-ico{height:40px;width:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);margin-bottom:12px}
.checklist{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px}
.checklist li{display:flex;align-items:center;gap:7px;font-size:14px}
.checklist li.ok svg{color:var(--success)}.checklist li.todo svg{color:var(--warning)}.checklist li.todo{color:var(--text)}
[hidden]{display:none!important}
/* Life Policy Types master — partner / product mapping */
.pt-map{border:1px solid var(--line);border-radius:14px;padding:14px 16px 6px;margin:6px 0 4px}
.pt-map legend{font-weight:600;font-size:14px;padding:0 6px}
.pt-map:focus{outline:2px solid var(--accent);outline-offset:2px}
.pt-partners{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 18px}
.pt-partner{padding:8px 0;border-top:1px dashed var(--line)}
.pt-partner .check-row{margin:2px 0 6px}
.pt-products{padding-left:26px}
.pt-products .check-row{font-size:13.5px;margin:2px 0 6px}
.pt-products.off{opacity:.45}
/* Bank name: "not in the list" tick under the field */
.check-row.sub{font-size:13px;margin:8px 0 2px;color:var(--text-2);align-items:center;gap:7px;line-height:1.3}
.check-row.sub input{width:15px;height:15px}
/* Fields filled from the IFSC (read-only) */
.field.locked input{background:var(--surface-2);color:var(--text)}
#ifscStatus{min-height:1.2em}
/* Sale page — decisions after Submit (25 Sep 2026) */
.mb-4{margin-bottom:4px}
.row.end{align-items:flex-end}
.row.end .field{margin-bottom:0}
hr.sep{border:0;border-top:1px solid var(--line);margin:18px 0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.card.decision{border:1px solid var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.card-head .row form{margin:0}
.grid > *{min-width:0}   /* a wide table scrolls inside its card instead of widening the page */
/* Sales list — tick sales to submit for approval (25 Sep 2026) */
th.tick,td.tick{width:36px;padding-right:0}
.bulk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 20px 12px;padding:10px 14px;border-radius:var(--radius-md);background:var(--accent-soft)}
/* Badge in a colour chosen in a master (e.g. Application Statuses → Badge colour) */
.badge.tinted{background:color-mix(in srgb,var(--tint) 16%,transparent);color:color-mix(in srgb,var(--tint) 78%,#000)}
.badge.tinted .dot{background:var(--tint)}
[data-theme="dark"] .badge.tinted{color:color-mix(in srgb,var(--tint) 70%,#fff)}
/* "Customer Already Exists" box (one customer globally, 25 Sep 2026) */
.err-summary.info-box{border-color:var(--accent);background:var(--accent-soft)}
.err-summary.info-box .err-summary-title{color:var(--accent-ink)}
.err-summary.ok-box{border-color:var(--success);background:var(--success-soft)}
.err-summary.ok-box .err-summary-title{color:#178a61}
.err-summary textarea{width:100%}

/* ---------- All Policies list (UI refresh 25 Sep 2026) ---------- */
.policy-list .pl-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:18px 22px 14px}
.pl-search{flex:1 1 250px;display:flex;align-items:center;gap:9px;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:0 13px;height:40px;transition:border-color .15s,box-shadow .15s}
.pl-search svg{color:var(--muted);flex:0 0 16px}
.pl-search input{border:0;outline:0;background:transparent;width:100%;min-width:0;font:inherit;font-size:14px;color:var(--text)}
.pl-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.pl-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pl-select,.pl-btn{height:40px;border:1px solid var(--line);background:var(--surface);color:var(--text-2);border-radius:12px;font:inherit;font-size:13.5px;padding:0 12px;cursor:pointer}
.pl-select{padding-right:28px;width:auto;max-width:136px}
.pl-select.on{max-width:200px}
.pl-select.on,.pl-btn.on{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent-ink);background-color:var(--accent-soft)}
.pl-select:focus,.pl-btn:focus-visible{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.pl-btn{display:inline-flex;align-items:center;gap:7px;list-style:none;user-select:none;white-space:nowrap}
.pl-btn::-webkit-details-marker{display:none}
.pl-btn:hover,.pl-select:hover{border-color:color-mix(in srgb,var(--text) 18%,var(--line))}
.pl-btn .n{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px;font-weight:600}
.pl-go{height:40px}
.fpop{position:relative}
.fpop-panel{position:absolute;left:0;top:calc(100% + 8px);z-index:40;width:340px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lift);padding:16px}
.fpop-panel.right{left:auto;right:0}
.fpop-title{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:2px 0 8px}
.fpop-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.fpop-row .field label{font-size:12.5px;margin-bottom:5px}
.fpop-foot{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:2px}
.pl-chips{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:0 22px 14px}
.pl-chips .chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px 0 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--text-2);font-size:12.5px;text-decoration:none}
.pl-chips .chip svg{color:var(--muted)}
.pl-chips .chip:hover{border-color:var(--danger);color:var(--danger)}.pl-chips .chip:hover svg{color:var(--danger)}
.pl-chips .chip-clear{font-size:12.5px;margin-left:4px}
.pl-chips .pl-count{margin-left:auto;font-size:12.5px}
.policy-list .bulk-bar{margin:0 22px 12px}
.policy-table{font-size:13.5px}
.policy-table thead th{white-space:normal;line-height:1.35;vertical-align:bottom;padding:11px 10px;font-size:11px;letter-spacing:.05em;background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.policy-table thead th:first-child,.policy-table tbody td:first-child{padding-left:18px}
.policy-table thead th:last-child,.policy-table tbody td:last-child{padding-right:10px}
.policy-table thead th .muted{font-weight:400}
.policy-table tbody td{padding:15px 10px;border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.policy-table tbody tr:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}
.policy-table .strong{font-weight:600;color:var(--text)}
.policy-table a.strong{color:var(--accent)}
.policy-table a.strong:hover{text-decoration:underline}
.policy-table th.tick,.policy-table td.tick{width:36px;padding-right:0}
.policy-table .sub{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.35}
/* 26 Sep 2026: a long policy number or ACK line wraps instead of widening the table */
.policy-table td.sale-cell{min-width:150px}
.policy-table td.pn-cell{min-width:90px;max-width:150px}
.policy-table td.pn-cell .mono{overflow-wrap:anywhere}

.policy-table td .mono{font-size:12.5px}
.policy-table .clamp-cell{min-width:118px;max-width:180px}   /* 26 Sep 2026: was 130px — a Pending-approval row plus a "-R1" renewal code overflowed 1440px by 13px */
.policy-table .clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4;color:var(--text)}
.policy-table .badge{font-size:11.5px;padding:3px 9px;gap:5px;white-space:nowrap;font-weight:500}
.policy-table .badge .dot{height:5px;width:5px}
.policy-table .sub.kyc{display:inline-flex;align-items:center;gap:5px}
.policy-table .sub.kyc .dot{height:6px;width:6px;border-radius:50%;background:var(--muted)}
.policy-table .sub.kyc.ok .dot{background:var(--success)}.policy-table .sub.kyc.warn .dot{background:var(--warning)}.policy-table .sub.kyc.bad .dot{background:var(--danger)}
.policy-table td.end,.policy-table th.end{text-align:right;width:40px;padding-left:0}
.row-menu{display:inline-block}
.row-menu > summary{list-style:none;height:32px;width:32px;display:inline-grid;place-items:center;border-radius:9px;cursor:pointer;color:var(--muted)}
.row-menu > summary::-webkit-details-marker{display:none}
.row-menu > summary:hover,.row-menu[open] > summary{background:var(--surface-2);color:var(--text)}
.row-menu-panel{position:fixed;z-index:60;min-width:170px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lift);padding:6px;text-align:left}
.row-menu-panel a{display:block;padding:8px 11px;border-radius:8px;font-size:13.5px;color:var(--text)}
.row-menu-panel a:hover{background:var(--surface-2)}
@media (max-width:720px){
  .policy-list .pl-filters{padding:14px}
  .pl-controls{width:100%}
  .pl-select{flex:1 1 44%;max-width:none}
  .pl-go .lbl{display:none}
  .fpop{flex:1 1 44%}.fpop .pl-btn{width:100%;justify-content:center}
  .fpop-panel,.fpop-panel.right{position:fixed;left:16px;right:16px;top:auto;width:auto;max-width:none}
  .pl-chips{padding:0 14px 12px}
}

/* ---------- Sidebar: lighter spacing, softer active item (25 Sep 2026) ---------- */
.nav a{padding:9px 13px}
.nav details > summary{padding:9px 13px}
.nav .sub{padding:1px 0 4px 16px}
.nav .sub a{padding:6px 12px}
.nav .sub .sub-label{padding:9px 12px 3px}
.nav .sub a.active{background:var(--accent-soft);color:var(--accent-ink);box-shadow:none;font-weight:600}
.nav .sub a.active .soon{background:var(--surface-2);color:var(--muted)}
.nav a.active{box-shadow:0 4px 10px color-mix(in srgb,var(--accent) 22%,transparent)}
.fpop:not([open]) > .fpop-panel,.row-menu:not([open]) > .row-menu-panel{display:none}
.policy-table th.end{position:relative}
/* the card's entrance animation animates transform, which would trap the fixed row menu inside the table's scroll box — fade only */
@keyframes plFade{from{opacity:0}to{opacity:1}}
.card.policy-list{animation-name:plFade}
@media (max-width:720px){.pl-select{min-width:0}}

/* ---------- Sale page: "Correct policy details" panel (25 Sep 2026) ---------- */
.edit-panel{background:color-mix(in srgb,var(--surface-2) 70%,transparent);border:1px solid var(--line);border-radius:16px;padding:18px 20px;align-self:start}
.edit-panel-head{margin-bottom:14px}
.edit-panel-head h4{font-size:14.5px;font-weight:600}
.edit-panel-head p{font-size:12.5px;margin-top:3px}
.edit-panel .edit-block + .edit-block{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}
.edit-panel .edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.edit-panel .field label{font-size:13px;margin-bottom:6px}
.edit-panel .field input,.edit-panel .field select{height:42px;padding-top:0;padding-bottom:0}
.edit-panel .edit-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
.edit-panel .edit-foot .help{margin:0;font-size:12px;color:var(--muted)}
.input-with-btn{display:flex;gap:8px;align-items:stretch}
.input-with-btn select,.input-with-btn input{flex:1 1 auto;min-width:0}
.input-with-btn .btn{height:42px;flex:0 0 auto;white-space:nowrap;border-radius:var(--radius-sm)}
@media (max-width:560px){.edit-panel .edit-grid{grid-template-columns:1fr}}

.edit-panel .field .help{margin-top:5px}
.kv dd .badge{white-space:nowrap}
@media (max-width:560px){.kv{grid-template-columns:minmax(92px,36%) 1fr;gap:4px 12px;font-size:13.5px}}

/* ---------- Sale page: Documents card (25 Sep 2026) ---------- */
.doc-uploader{margin:18px 24px 18px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface-2) 70%,transparent)}
.doc-uploader-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:12px;align-items:start}
.doc-uploader .field label{font-size:13px;margin-bottom:6px}
.doc-uploader .field select{height:46px;padding-top:0;padding-bottom:0}
.doc-uploader-foot{display:flex;justify-content:flex-end;margin-top:12px}
.file-pick{position:relative;display:flex;align-items:center;gap:11px;height:46px;padding:0 12px;border:1px dashed color-mix(in srgb,var(--text) 22%,var(--line));border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color .15s,box-shadow .15s,background-color .15s}
.file-pick:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 45%,var(--surface))}
.file-pick:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.file-pick.has-file{border-style:solid}
.file-pick-ico{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--accent-soft);color:var(--accent);flex:0 0 28px}
.file-pick-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.file-pick-name{font-size:13.5px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-pick-hint{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.field .file-pick input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;border:0}
.field.invalid .file-pick{border-color:var(--danger);border-style:solid}
.doc-empty{display:flex;align-items:center;gap:14px;margin:0 24px 22px;padding:18px;border:1px dashed var(--line);border-radius:14px;font-size:13.5px}
.doc-empty-ico{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--surface-2);color:var(--muted);flex:0 0 42px}
.doc-empty .muted{font-size:12.5px;margin-top:2px}
.doc-rows{list-style:none;margin:0 0 8px;padding:0}
.doc-item{display:flex;align-items:center;gap:12px;padding:12px 24px;border-top:1px solid var(--line)}
.doc-item:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}
.doc-item-ico{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--surface-2);color:var(--text-2);flex:0 0 36px}
.doc-item-main{flex:1 1 auto;min-width:0}
.doc-item-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px}
.doc-item-top .badge{font-size:11px;padding:2px 8px}
.doc-item-meta{font-size:12px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-item .row-actions{flex:0 0 auto;gap:2px}
.doc-item .iconbtn{height:34px;width:34px}
.doc-item .row-actions form{margin:0}
@media (max-width:560px){.doc-item{padding:12px 14px}.doc-uploader{margin:14px 14px 14px}.doc-uploader-grid{grid-template-columns:1fr}.doc-empty{margin:0 14px 16px}.doc-uploader-foot .btn{width:100%;justify-content:center}}
.grid > #documents{align-self:start}

.card.pad .doc-uploader{margin:0 0 18px}
.card.pad .doc-rows{margin:0 -24px}
.card.pad .doc-rows .doc-item:first-child{border-top:0}

/* ---------- Action panels: small forms on record pages (25 Sep 2026) ---------- */
.action-panel{background:color-mix(in srgb,var(--surface-2) 70%,transparent);border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.action-panel + .action-panel{margin-top:0}
.action-panel-head{margin-bottom:12px}
.action-panel-head h4{font-size:14.5px;font-weight:600;margin:0}
.action-panel-head p{font-size:12.5px;color:var(--muted);margin:3px 0 0}
.action-panel .field label{font-size:13px;margin-bottom:6px}
.action-panel .field input,.action-panel .field select{height:44px;padding-top:0;padding-bottom:0}
.action-panel .ap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:start}
.action-panel .ap-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px}
.action-panel .input-with-btn .btn{height:44px}
.action-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.mt-18{margin-top:18px}
@media (max-width:560px){.action-panel{padding:14px}.action-panel .ap-foot .btn{width:100%;justify-content:center}}
.card-head + .doc-uploader{margin-top:14px!important}
/* absolute helpers inside a table (e.g. .sr-only labels) stay inside its scroll box, never widening the page */
.table-wrap{position:relative}

/* Read-only field with a lock (selling employee for BA / SO, 25 Sep 2026) */
.input-locked{position:relative}
.input-locked input{padding-right:38px}
.input-locked svg{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}

/* Selects look the same in every browser (25 Sep 2026): Safari ignored the
   padding / height of native selects, so they rendered thin and cramped. */
.field select,.pl-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a8f98' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:12px 12px;padding-right:36px}
.field select[multiple]{background-image:none;padding-right:14px}
.field select::-ms-expand{display:none}
/* Approval panel — Reject: reason + button on one line, same height */
.reject-form{max-width:560px}
.reject-form .input-with-btn select{height:44px;padding-top:0;padding-bottom:0}
.reject-form .input-with-btn .btn{height:44px}
.as-select{min-width:220px}
#app-status-form .field select{height:40px;padding-top:0;padding-bottom:0}
#app-status-form .btn{height:40px}

/* Person type labels (25 Sep 2026): Customer · Proposer · Life Insured · Insured Member · Nominee · Appointee */
.role-badges{display:inline-flex;flex-wrap:wrap;gap:4px;vertical-align:middle;margin-left:6px}
.role-badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.01em;line-height:1;white-space:nowrap;
  background:var(--surface-2);color:var(--text-2);border:1px solid var(--line)}
.role-badge.role-customer{background:color-mix(in srgb,#64748b 12%,var(--surface));color:#475569;border-color:color-mix(in srgb,#64748b 28%,var(--line))}
.role-badge.role-proposer{background:var(--accent-soft);color:var(--accent-ink);border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.role-badge.role-life-insured,.role-badge.role-insured-member{background:color-mix(in srgb,#0d9488 12%,var(--surface));color:#0f766e;border-color:color-mix(in srgb,#0d9488 30%,var(--line))}
.role-badge.role-joint-holder{background:color-mix(in srgb,#0891b2 12%,var(--surface));color:#0e7490;border-color:color-mix(in srgb,#0891b2 30%,var(--line))}
.role-badge.role-nominee{background:color-mix(in srgb,#d97706 12%,var(--surface));color:#b45309;border-color:color-mix(in srgb,#d97706 30%,var(--line))}
.role-badge.role-appointee{background:color-mix(in srgb,#7c3aed 12%,var(--surface));color:#6d28d9;border-color:color-mix(in srgb,#7c3aed 30%,var(--line))}
[data-theme="dark"] .role-badge.role-customer{color:#cbd5e1}
[data-theme="dark"] .role-badge.role-life-insured,[data-theme="dark"] .role-badge.role-insured-member{color:#5eead4}
[data-theme="dark"] .role-badge.role-nominee{color:#fbbf24}
[data-theme="dark"] .role-badge.role-appointee{color:#c4b5fd}
.cp-picked .role-badges,.cp-opt .role-badges{margin-left:0}
.cp-roles{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}

/* Customer picker: a person already on this policy (decision 25 Sep 2026) */
.cp-opt.is-blocked{cursor:not-allowed;opacity:.75;background:var(--surface-2)}
.cp-opt.is-blocked:hover{background:var(--surface-2)}
.cp-used{color:var(--danger);font-size:12.5px;font-weight:500}
.cp-note{color:var(--accent-ink);font-size:12px;margin-top:2px}

/* ---- Date picker (datepicker.js, 25 Sep 2026): one app calendar for every date field ---- */
.dp-wrap{position:relative;display:block;width:100%}
.dp-wrap .dp-native,.field .dp-wrap input.dp-native{position:absolute!important;left:0;top:0;width:1px!important;height:1px!important;padding:0!important;border:0!important;opacity:0;pointer-events:none;overflow:hidden}
.dp-input{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);padding:12px 44px 12px 14px;font:inherit;font-size:14px;color:var(--text);outline:none;letter-spacing:.02em}
.field .dp-wrap .dp-input{padding-right:44px}
.dp-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.dp-input::placeholder{color:var(--muted);letter-spacing:.04em}
.dp-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}
.dp-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-ink)}
.dp-btn:disabled{cursor:default;opacity:.55}
.dp-input:disabled,.dp-input[readonly]{background:var(--surface-2);color:var(--text-2)}
.dp-input:disabled{color:var(--muted);cursor:not-allowed}
.dp-pop{position:absolute;z-index:3000;width:316px;background:var(--surface);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 18px 50px rgba(15,23,42,.18),0 2px 8px rgba(15,23,42,.08);padding:14px 14px 10px;color:var(--text);font-size:14px}
.dp-pop[hidden]{display:none}
.dp-head{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.dp-title{flex:1;display:flex;gap:6px;justify-content:center}
.dp-title select{-webkit-appearance:none;appearance:none;border:1px solid transparent;background:transparent;font:inherit;font-weight:650;font-size:15px;color:var(--text);
  padding:5px 8px;border-radius:9px;cursor:pointer}
.dp-title select:hover,.dp-title select:focus{border-color:var(--line);background:var(--surface-2);outline:none}
.dp-nav{width:34px;height:34px;flex:0 0 34px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.dp-nav:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}
.dp-nav:disabled{opacity:.35;cursor:default}
.dp-grid{display:flex;flex-direction:column;gap:2px}
.dp-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-dow span{text-align:center;font-size:11.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:4px 0 6px}
.dp-day{height:38px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:14px;cursor:pointer;position:relative}
.dp-day:hover:not(:disabled){background:var(--surface-2)}
.dp-day:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.dp-day.out{color:var(--muted)}
.dp-day.today{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent-ink);font-weight:650}
.dp-day.sel{background:var(--accent);color:#fff;font-weight:650;box-shadow:none}
.dp-day.sel:hover{background:var(--accent)}
.dp-day:disabled{color:color-mix(in srgb,var(--muted) 55%,transparent);text-decoration:line-through;cursor:not-allowed}
.dp-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);margin-top:8px;padding-top:8px}
.dp-sel{font-size:12.5px;color:var(--muted)}
.dp-link{border:0;background:transparent;color:var(--accent-ink);font:inherit;font-size:13px;font-weight:600;padding:6px 8px;border-radius:8px;cursor:pointer}
.dp-link:hover:not(:disabled){background:var(--accent-soft)}
.dp-link:disabled{color:var(--muted);cursor:default}
@media (max-width:420px){.dp-pop{width:calc(100vw - 16px)}.dp-day{height:40px}}

/* ---------- Person access requests (UI-02, 25 Sep 2026): compact rows, cards on narrow screens ---------- */
.ar-card{container-type:inline-size;container-name:arcard}
.ar-table{table-layout:auto}
.ar-table thead th{padding:12px 16px}
.ar-table thead th:first-child,.ar-table tbody td:first-child{padding-left:24px}
.ar-table thead th:last-child,.ar-table tbody td:last-child{padding-right:24px}
.ar-table tbody td{padding:16px;vertical-align:top}
.ar-table .role-badges{margin-left:0}
.ar-name{font-weight:600;line-height:1.3}
.ar-code{font-size:12px;color:var(--muted);white-space:nowrap;margin-top:3px}
.ar-match{display:inline-flex;align-items:center;margin-top:6px;height:20px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:500;
  color:var(--text-2);background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}
.ar-type{white-space:nowrap}
.ar-branch{white-space:normal}
.ar-from,.ar-to{white-space:nowrap}
.ar-from{color:var(--text-2)}
.ar-to{font-weight:600}
.ar-arrow{color:var(--muted);margin:0 2px}
.ar-who{font-weight:500;white-space:nowrap}
.ar-date{font-size:12px;color:var(--muted);margin-top:3px;white-space:nowrap}
.ar-reason{color:var(--text-2);min-width:140px;max-width:300px;overflow-wrap:anywhere;line-height:1.45}
.ar-k{display:none}
.ar-type-inline{display:none}
.ar-th-action,.ar-action{width:1%}
.ar-action{min-width:210px}
.ar-btns{display:flex;gap:8px;flex-wrap:nowrap}
.ar-btns form{margin:0}
.ar-btns .btn{padding:7px 14px}
.ar-reject-toggle[aria-expanded="true"]{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 35%,var(--line));color:#c93a5e;box-shadow:none}
[data-theme="dark"] .ar-reject-toggle[aria-expanded="true"]{color:#ff7e9c}
.ar-reject{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);max-width:320px}
.ar-reject[hidden]{display:none}
.ar-reject .field label{font-size:12.5px;margin-bottom:6px}
.ar-reject .field input{height:40px;background:var(--surface)}
.ar-reject-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
.ar-reject-btns .btn{padding:7px 14px}
.ar-status{padding:4px 11px}
.ar-status svg{width:13px;height:13px}
.ar-decided{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.45}
.ar-note{white-space:normal;color:var(--text-2);margin-top:2px;max-width:240px;overflow-wrap:anywhere}

/* Narrower than the table needs (≈960px): each request becomes a row card —
   person + type on the left, branch + requester in the middle, actions on the right. */
@container arcard (max-width: 959px){
  .ar-card .table-wrap{overflow:visible}
  .ar-table,.ar-table tbody{display:block}
  .ar-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .ar-table tr.ar-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;
    grid-template-areas:"person branch action" "person by action" "reason reason action";
    column-gap:20px;row-gap:8px;align-items:start;padding:18px 22px;border-top:1px solid var(--line)}
  .ar-table tbody tr.ar-row:first-child{border-top:0}
  .ar-table tr.ar-row td{display:block;padding:0 !important;border:0;min-width:0;max-width:none;width:auto}
  .ar-table tr.ar-empty,.ar-table tr.ar-empty td{display:block;border:0}
  .ar-table tr.ar-empty td{padding:16px 22px}
  .ar-person{grid-area:person}
  .ar-type{display:none !important}
  .ar-type-inline{display:inline;margin-left:8px}
  .ar-type-inline .role-badges{margin-left:0}
  .ar-branch{grid-area:branch;font-size:14px}
  .ar-by{grid-area:by;font-size:13.5px}
  .ar-by .ar-k,.ar-reason .ar-k{display:inline;color:var(--muted)}
  .ar-reason{grid-area:reason;font-size:13.5px;padding-top:4px !important}
  .ar-action{grid-area:action;min-width:0;justify-self:end;text-align:right}
  .ar-action .ar-reject{text-align:left;width:300px;max-width:100%}
  .ar-decided{white-space:normal;max-width:220px;margin-left:auto}
}
/* Mid widths: stack Approve / Reject so branch + requester keep their room. */
@container arcard (min-width: 640px) and (max-width: 780px){
  .ar-btns{flex-direction:column;align-items:stretch}
  .ar-btns form,.ar-btns form .btn{display:flex;width:100%}
  .ar-btns .btn{justify-content:center}
}
/* Phone / narrow tablet: one stacked card per request. */
@container arcard (max-width: 639px){
  .ar-table tr.ar-row{grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"person person" "branch branch" "by by" "reason reason" "action action";column-gap:12px;row-gap:0;padding:18px 20px}
  .ar-branch{margin-top:12px}
  .ar-by,.ar-reason{margin-top:8px}
  .ar-reason{padding-top:0 !important}
  .ar-action{margin-top:14px;justify-self:stretch;text-align:left}
  .ar-action .ar-reject{width:auto}
  .ar-btns .btn{flex:1 1 0}
  .ar-btns form{flex:1 1 0;display:flex}
  .ar-btns form .btn{flex:1 1 auto}
  .ar-decided{max-width:none;margin-left:0}
}

/* ---------- User-level menu (NV-01, 26 Sep 2026): Sales as its own expanded section ---------- */
.nav .nav-section{margin-bottom:2px}
.nav .nav-sub-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:10px 13px 4px 44px;font-weight:600;opacity:.85}
.nav .nav-section > a:first-child{margin-bottom:2px}
.nav a[data-nav-new]:not(.active){color:var(--accent);font-weight:600}
.nav a[data-nav-new]:not(.active) svg{color:var(--accent)}
.nav a[data-nav-new]:not(.active):hover{background:var(--accent-soft)}

/* ---------- Motor wizard (26 Sep 2026): vehicle cards ---------- */
.form-grid.cols-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:992px){.form-grid.cols-4{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.form-grid.cols-4{grid-template-columns:1fr}}
.veh-prem{margin-top:4px;padding:12px 14px 2px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}
.veh-sum{font-weight:500;font-size:12.5px;margin-left:6px}
.linkish{background:none;border:0;padding:0;margin-left:6px;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.linkish:hover{color:var(--accent-ink)}
.veh-new-row{display:flex !important;margin:8px 0 0;font-size:13px;align-items:flex-start;gap:8px}
.veh-new-row input{margin-top:2px}
.veh-row input[readonly]:not(.calc){background:var(--surface-2);color:var(--text-2)}
/* Brokerage rates (Phase 3a) */
.br-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:0 18px;padding:4px 0 6px}
.br-products .check-row{font-size:13.5px;margin:2px 0 6px}
.br-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}
.br-totals .card{padding:14px 16px}
.br-totals .v{font-size:20px;font-weight:700;margin-top:4px}
fieldset.pt-map{min-width:0}
.br-years{width:100%;max-width:460px}
.br-years input{width:100%;max-width:130px}
.table-wrap table.br-years{min-width:0}
.br-years th,.br-years td{padding:8px 6px !important}
.br-years th:first-child,.br-years td:first-child{padding-left:0 !important}
@media (max-width:520px){.br-years input{max-width:96px}}

/* ---------- Brokerage screens (BR-03, 26 Sep 2026): fit the card, no hidden columns, cards on narrow screens ---------- */
.br-cat-tabs{margin-bottom:18px}
.br-count{display:inline-block;min-width:20px;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--surface);color:var(--muted);font-size:11.5px;font-weight:600;line-height:18px;text-align:center}
.br-cat-tabs a.active .br-count{background:var(--accent-soft);color:var(--accent)}
.br-card{container-type:inline-size;container-name:brcard;overflow:hidden}
.br-toolbar{display:grid;grid-template-columns:minmax(180px,240px) minmax(180px,1fr) minmax(120px,150px) auto;gap:14px;align-items:end;padding:18px 24px;border-bottom:1px solid var(--line)}
.br-toolbar .field{margin:0}
.br-f-btns{display:flex;gap:8px;align-items:center;padding-bottom:2px}
.br-table{table-layout:auto}
.br-table thead th{padding:12px 12px}
.br-table tbody td{padding:14px 12px;vertical-align:middle}
.br-table thead th:first-child,.br-table tbody td:first-child,.br-table .br-group th{padding-left:24px}
.br-table thead th:last-child,.br-table tbody td:last-child{padding-right:20px}
.br-group th{background:var(--surface-2);color:var(--text-2);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:9px 16px;border-top:1px solid var(--line);text-align:left}
.br-name{font-weight:600;line-height:1.3}
.br-table .br-who{min-width:190px;width:28%}
.br-table .br-years{min-width:120px}
.br-scope{font-size:12.5px;color:var(--muted);margin-top:3px}
.br-fy{font-size:15px;font-weight:700;white-space:nowrap}
.br-chips{display:flex;flex-wrap:wrap;gap:6px}
.br-chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:12px;color:var(--text-2);white-space:nowrap}
.br-chip strong{color:var(--text);font-weight:600}
.br-dates{white-space:nowrap}
.br-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px;min-width:0}
.br-meta:empty{display:none}
.br-tag{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--surface-2);color:var(--text-2);border:1px solid var(--line);white-space:nowrap}
.br-demo{background:var(--warning-soft);color:#a4751c;border-color:color-mix(in srgb,var(--warning) 35%,var(--line));cursor:help}
[data-theme="dark"] .br-demo{color:#e6bd6e}
.br-note{font-size:12px;color:var(--muted);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.br-used{white-space:nowrap;color:var(--text-2)}
.br-act{width:1%;white-space:nowrap}
.br-btns{display:flex;gap:4px;justify-content:flex-end;align-items:center}
.br-btns form{margin:0}
.br-btns .btn-xs{display:inline-flex;align-items:center;gap:4px;padding:5px 7px}
.br-btns .btn-xs svg{width:14px;height:14px}
.br-del{height:32px;width:32px}
.br-hist{font-size:12px}
.br-k{display:none}
/* Narrow cards (container below ~820px): name + dates on the left, figures on the right, actions below. */
@container brcard (max-width: 899px){
  .br-toolbar{grid-template-columns:1fr 1fr;padding:16px}
  .br-f-search{grid-column:1 / -1;grid-row:1}
  .br-card .table-wrap{overflow:visible}
  .br-table,.br-table tbody{display:block}
  .br-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .br-table tr.br-group{display:block}
  .br-table tr.br-group th{display:block;padding:9px 16px}
  .br-table tr.br-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who fy" "years years" "when used" "act act";
    gap:8px 14px;padding:14px 16px;border-top:1px solid var(--line)}
  .br-table tr.br-row td{display:block;padding:0 !important;border:0;width:auto !important;min-width:0 !important}
  .br-who{grid-area:who}.br-fy{grid-area:fy;text-align:right}.br-years{grid-area:years}.br-when{grid-area:when}.br-used{grid-area:used;text-align:right;align-self:end}
  .br-act{grid-area:act}.br-btns{justify-content:flex-start;flex-wrap:wrap}
  .br-k{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
  .br-years .br-k{display:none}
  .br-note{max-width:100%}
  .br-empty,.br-empty td{display:block}
}

/* Review + report: compact two-line cells */
.br-sale{font-weight:600;white-space:nowrap}
.br-sub{font-size:12.5px;color:var(--muted);margin-top:3px}
.br-why{font-size:13px;color:var(--text-2);min-width:180px;max-width:320px;line-height:1.45}
.br-money{white-space:nowrap;text-align:right}
.br-report-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:14px;align-items:end;padding:18px 24px}
.br-report-filters .field{margin:0}
@media (max-width:1100px){.br-report-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.br-report-filters{grid-template-columns:1fr 1fr;padding:16px}}
.br-lines{container-type:inline-size;container-name:brlines;overflow:hidden}
@container brlines (max-width: 819px){
  .br-lines .table-wrap{overflow:visible}
  .br-lines table,.br-lines tbody{display:block}
  .br-lines thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .br-lines tr.br-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:14px 16px;border-top:1px solid var(--line)}
  .br-lines tr.br-line td{display:block;padding:0 !important;border:0;min-width:0;max-width:none;width:auto;text-align:left}
  .br-lines tr.br-line td.br-right{text-align:right}
  .br-lines tr.br-line td.br-full{grid-column:1 / -1}
  .br-lines tr.br-empty,.br-lines tr.br-empty td{display:block}
  .br-lines tr.br-group,.br-lines tr.br-group th{display:block}
}
/* BR-03: one height for every filter control (date pickers were taller than selects) */
.br-report-filters .field select,.br-report-filters .field input:not(.dp-native),.br-report-filters .dp-input,
.br-toolbar .field select,.br-toolbar .field input:not(.dp-native){height:44px;padding-top:0;padding-bottom:0}
.br-report-filters .br-f-btns,.br-toolbar .br-f-btns{height:44px}
.br-totals .v{overflow-wrap:anywhere}
@media (max-width:560px){.br-totals{gap:10px}.br-totals .card{padding:12px 14px}.br-totals .v{font-size:17px}}
@container brlines (max-width: 819px){ .br-lines td.br-zero{display:none !important} }
.br-lines td.br-right,.br-lines td.num{white-space:nowrap}
#review-table .br-btns{flex-wrap:wrap;max-width:200px;margin-left:auto}
#review-table .br-why{min-width:160px}

/* ---------- Partner payments + ledger (BR-04, 26 Sep 2026) ---------- */
.btn-danger-soft{background:var(--danger-soft);color:#c93a5e;border:1px solid color-mix(in srgb,var(--danger) 30%,var(--line))}
.btn-danger-soft:hover{background:color-mix(in srgb,var(--danger) 16%,var(--surface))}
[data-theme="dark"] .btn-danger-soft{color:#ff7e9c}
tr.bp-reversed td{opacity:.55}
tr.bp-reversed td .br-sale{text-decoration:line-through}
.bp-settle{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;align-items:center;margin-top:14px;padding:12px 16px;border-radius:12px;background:var(--accent-soft);font-size:14px}
.bp-settle strong{font-size:16px}
.bp-dr{color:var(--text)}
.bp-cr{color:#16865a}
[data-theme="dark"] .bp-cr{color:#4fd6a6}
.bp-open{font-weight:600;background:var(--surface-2)}
.bp-credit-form{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end}
.bp-credit-form .br-products{flex:1 1 100%}
.br-lines table thead th,.br-lines table tbody td{padding-left:12px;padding-right:12px}
.br-lines table thead th:first-child,.br-lines table tbody td:first-child{padding-left:24px}
.br-lines table thead th:last-child,.br-lines table tbody td:last-child{padding-right:20px}

/* ---------- Soft coloured tiles (BR-06, 26 Sep 2026): each figure has its own tint ---------- */
.br-totals .card[class*=" t-"]{background:color-mix(in srgb,var(--tile) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--tile) 24%,var(--line));box-shadow:none}
.br-totals .card[class*=" t-"] > .muted:first-child{display:flex;align-items:center;gap:8px;color:color-mix(in srgb,var(--tile) 55%,var(--text-2));font-weight:500}
.br-totals .card[class*=" t-"] > .muted:first-child::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tile);flex:0 0 auto}
.br-totals .card[class*=" t-"] .v{color:color-mix(in srgb,var(--tile) 62%,var(--text))}
.br-totals .card.t-earned{--tile:var(--accent)}
.br-totals .card.t-received{--tile:#22b07d}
.br-totals .card.t-balance{--tile:#e0a23a}
.br-totals .card.t-credit{--tile:#2d9cdb}
.br-totals .card.t-bank{--tile:#14a3a3}
.br-totals .card.t-premium{--tile:#8a6fd8}
.br-totals .card.t-waiting{--tile:#f08a3c}
.br-totals .card.t-cancelled{--tile:#f2557a}
[data-theme="dark"] .br-totals .card[class*=" t-"]{background:color-mix(in srgb,var(--tile) 12%,var(--surface))}
[data-theme="dark"] .br-totals .card[class*=" t-"] .v{color:color-mix(in srgb,var(--tile) 55%,#fff)}
[data-theme="dark"] .br-totals .card[class*=" t-"] > .muted:first-child{color:color-mix(in srgb,var(--tile) 60%,#fff)}
/* Info notes were hard to read in dark mode (accent-ink on a dark accent-soft). */
[data-theme="dark"] .alert.info{color:#c9c8ff}
/* ---------- IN-01 (26 Sep 2026, Phase 3b): Incentives — targets, rules, preview ---------- */
.in-month-nav{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.in-month-nav select{height:36px;min-width:150px;padding-top:0;padding-bottom:0}
.in-toolbar{display:flex;gap:14px;align-items:end}
.in-toolbar .field select{min-width:220px}
.in-amt{position:relative;margin:0;display:inline-block;width:100%;max-width:190px;text-align:left;vertical-align:middle}
.in-amt input{padding-left:26px;text-align:right;height:40px}
.in-amt .in-rs{position:absolute;left:10px;top:0;height:40px;display:flex;align-items:center;color:var(--muted);font-size:13.5px;pointer-events:none}
.in-amt .error:empty{display:none}
.in-table td.num .in-amt{margin-left:auto;display:block}
.in-k{display:none}
.in-save{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 24px;border-top:1px solid var(--line)}
.in-fill{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 24px;border-bottom:1px solid var(--line);font-size:13.5px}
.in-fill .in-amt{max-width:170px}
.in-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.in-tags:empty{display:none}
.in-bands{display:flex;flex-wrap:wrap;gap:6px}
.in-band{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:12.5px;white-space:nowrap;background:color-mix(in srgb,var(--accent) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line))}
.in-scope{padding:10px 0 4px;border-top:1px dashed var(--line)}
.in-scope:first-of-type{border-top:0}
.in-scope-head{display:flex;align-items:center;gap:6px 18px;flex-wrap:wrap}
.in-scope-head strong{min-width:92px;font-size:14px}
.in-scope-head .check-row{margin:4px 0}
.in-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0 18px;padding:6px 0 4px}
.in-checks .check-row{font-size:13.5px;margin:2px 0 6px}
.in-emp-tools{align-items:center;margin:8px 0}
.in-emp-list{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.in-emp-list .check-row{font-size:13.5px;margin:2px 0 6px;min-width:0}
.in-emp-list .check-row .muted{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.in-emp-list .check-row[hidden]{display:none}
.in-bands-table{max-width:520px}
.in-try{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,#22b07d 7%,var(--surface));border:1px solid color-mix(in srgb,#22b07d 20%,var(--line));font-size:13.5px}
.in-try .in-amt{max-width:170px}
.in-try-out{min-width:0}
@media (max-width:560px){.in-month-nav{width:100%}.in-month-nav select{flex:1;min-width:0}.in-amt{max-width:none}}
/* card mode (narrow): show the small labels next to figures, stack the target box */
@container brlines (max-width: 819px){
  .in-table tr.br-line .in-k{display:block;font-size:11.5px;color:var(--muted);font-weight:500;text-align:inherit}
  .in-table tr.br-line td.num{text-align:left}
  .in-table tr.br-line td.num.br-right{text-align:right}
  .in-table td.num .in-amt{margin-left:0;max-width:none}
  .in-save{padding:12px 16px}.in-fill{padding:12px 16px}
}
.in-month-nav .field{margin:0}
.in-month-nav .field select{height:40px;padding-top:0;padding-bottom:0;min-width:170px}
.in-month-nav .in-mn{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.in-month-nav .in-mn svg.flip{transform:rotate(180deg)}
.br-report-filters.in-filters{grid-template-columns:repeat(3,minmax(0,1fr)) auto}
@media (max-width:760px){.br-report-filters.in-filters{grid-template-columns:1fr 1fr}}
.in-table td.in-prod{min-width:0;white-space:normal}
#pe-sales td.in-prod .br-sub{max-width:360px}
/* IN-02 (27 Sep 2026): bonus chips in the preview */
.in-type-tabs{max-width:100%}
.in-band.in-bonus{background:var(--surface-2);border-color:var(--line);color:var(--text-2)}
.in-band.in-bonus.on{background:color-mix(in srgb,#22b07d 10%,var(--surface));border-color:color-mix(in srgb,#22b07d 28%,var(--line));color:var(--text)}
.in-band.in-bonus s{font-weight:400;text-decoration:none;font-size:12px}
.in-band.in-bonus s::before{content:"· "}
#pe-sales .in-bands{flex-direction:row;max-width:360px}
.in-bands-table{width:100%;table-layout:fixed}
.in-bands-table th.end,.in-bands-table td.end{width:48px}
.in-bands-table input{width:100%;min-width:0}
@media (max-width:560px){.in-bands-table th{font-size:11px;white-space:normal}.in-bands-table td{padding-left:4px!important;padding-right:4px!important}}
/* IN-03 (27 Sep 2026): SO / BA sections, per-sale plans */
.in-sec-head{flex-wrap:wrap}
.in-role-pill{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:24px;padding:0 10px;border-radius:12px;background:var(--accent);color:#fff;font-size:11.5px;font-weight:600}
.in-state-bar .br-toolbar{border-bottom:0}
.in-role-tabs{margin-bottom:10px}
.in-rates-table{width:100%;max-width:620px;table-layout:fixed}
.in-rates-table input{width:100%;min-width:0}
.in-split-eg{display:flex;align-items:center}
@media (max-width:560px){.in-rates-table th{font-size:11px;white-space:normal}}
/* IN-04 (27 Sep 2026): Life FYP Year Allocation */
.lfa-now{padding:18px 20px}
.lfa-flow{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap}
.lfa-step{flex:1 1 180px;min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm,10px);padding:12px 14px;background:var(--surface-2)}
.lfa-step .v{font-size:20px;font-weight:700;margin:2px 0;color:var(--text)}
.lfa-step .sm{font-size:12px}
.lfa-step.y1{background:color-mix(in srgb,#22b07d 9%,var(--surface));border-color:color-mix(in srgb,#22b07d 26%,var(--line))}
.lfa-step.y1 .v{color:color-mix(in srgb,#22b07d 80%,var(--text))}
.lfa-step.y2{background:color-mix(in srgb,#f59e0b 10%,var(--surface));border-color:color-mix(in srgb,#f59e0b 30%,var(--line))}
.lfa-step.y2 .v{color:color-mix(in srgb,#d97706 85%,var(--text))}
.lfa-arrow{display:flex;align-items:center;color:var(--muted);font-size:20px}
.lfa-rules{margin:14px 0 0;padding-left:18px;color:var(--text-2);font-size:13.5px;line-height:1.55}
.lfa-rules li{margin:2px 0}
.lfa-products{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm,10px);padding:8px 12px;margin-top:8px;background:var(--surface)}
.lfa-products .check-row{margin:4px 0}
.lfa-products .check-row[hidden]{display:none}
.lfa-total{font-size:14px;font-weight:600;margin:-4px 0 6px}
.lfa-total.ok{color:var(--success,#16a34a)}
.lfa-total.bad{color:var(--danger,#dc2626)}
.lfa-days{display:flex;align-items:center;gap:8px}
.lfa-days input{max-width:140px}

#lfa-table td.num strong{font-size:15px}
@media (max-width:640px){.lfa-arrow{display:none}.lfa-step{flex-basis:100%}}

/* IN-06 (27 Sep 2026): the common SO / BA incentive rule form */
.rf-card{padding:0;max-width:1100px}
.rf-top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:18px 22px;border-bottom:1px solid var(--line)}
.rf-role{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:12px;padding:5px 14px 5px 5px;background:var(--surface-2);gap:10px}
.rf-role-opt{position:relative;cursor:pointer;margin:0}
.rf-role-opt input{position:absolute;opacity:0;pointer-events:none}
.rf-role-opt span{display:block;padding:8px 16px;border-radius:9px;font-size:14px;font-weight:600;color:var(--text-2)}
.rf-role-opt input:checked+span{background:var(--accent);color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.rf-role-opt input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.rf-type{display:flex;flex-direction:column;align-items:flex-end;font-size:13px}
.rf-type strong{font-size:15px;color:var(--text)}
.rf-card>.group-error{margin:10px 22px 0}
.rf-card>.err-summary{margin:16px 22px 0}
.rf-sec{padding:18px 22px;border-bottom:1px dashed var(--line)}
.rf-h{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.rf-checks{border:1px solid var(--line);border-radius:var(--radius-sm,10px);padding:8px 12px;background:var(--surface);max-height:220px;overflow:auto}
.rf-checks .check-row{margin:4px 0}
.rf-checks .check-row[hidden]{display:none}
.rf-products{margin-top:8px}
.rf-years{display:flex;align-items:center;gap:8px}
.rf-years input{max-width:120px}
.rf-note{font-size:13.5px;color:var(--text-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm,10px);padding:10px 14px;line-height:1.5}
.rf-slabs{width:100%;table-layout:fixed;margin-top:10px}
.rf-slabs th{font-size:12.5px;text-align:left;padding:0 8px 6px 0;font-weight:600;color:var(--text-2)}
.rf-slabs td{padding:0 8px 8px 0;vertical-align:top}
.rf-slabs .field{margin:0}
.rf-slabs input{width:100%;min-width:0}
.rf-slabs th.end,.rf-slabs td.end{width:44px;text-align:center;padding-right:0}
.rf-slabs td.end .iconbtn{margin-top:6px}
.rf-try{font-size:13px;margin-top:8px}
.rf-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px}
@media (max-width:640px){.rf-top,.rf-sec,.rf-foot{padding-left:14px;padding-right:14px}.rf-type{align-items:flex-start}.rf-slabs th{font-size:11px}.rf-slabs td{padding-right:4px}}
.rf-sec>.help{font-size:12.5px;color:var(--muted);margin-top:4px;line-height:1.45}
.rf-slabs th{white-space:normal;line-height:1.25;vertical-align:bottom}
@media (max-width:640px){.rf-slabs th .muted{display:block;font-weight:400}.rf-slabs th{letter-spacing:0}}
.in-sec-note{font-size:12.5px;flex-basis:100%}
.in-scope{font-size:12px}
.form-grid .span-full{grid-column:1 / -1}
.rf-emp-where{font-size:12px}
.nav a.wrap{white-space:normal;line-height:1.3;flex-wrap:nowrap}
.in-sec-head>.row{flex:1 1 0;min-width:0}
.nav a.wrap .label{flex:1 1 auto;min-width:0}
/* IN-16 (27 Sep 2026): Incentive Run */
.in-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 22px;font-size:13.5px}
.in-steps .muted{font-size:12.5px;margin-top:2px}
/* IN-17 (27 Sep 2026): step-by-step incentive statement */
.st-note{padding:12px 24px;font-size:13px;color:var(--text-2);display:grid;gap:6px;border-bottom:1px solid var(--line)}
.st-work{font-size:13px;color:var(--text-2);max-width:420px}
.in-table tfoot .st-total td{border-top:2px solid var(--line);background:color-mix(in srgb,var(--accent) 5%,var(--surface));padding-top:14px;padding-bottom:14px}
.st-bonus{padding:16px 24px;border-top:1px solid var(--line)}
.st-bhead{display:flex;justify-content:space-between;align-items:center;gap:8px 16px;flex-wrap:wrap}
.st-no{display:inline-block;min-width:34px;font-weight:600;color:var(--accent)}
.st-amt{font-size:16px;margin-left:6px}
.st-steps{margin:10px 0 0;padding-left:22px;display:grid;gap:8px;font-size:13.5px}
.st-steps li::marker{color:var(--muted);font-weight:600}
.st-slabs{margin-top:8px;max-width:640px;border:1px solid var(--line);border-radius:10px}
.st-slabs table th,.st-slabs table td{padding:7px 12px;font-size:13px}
.st-slabs tr.st-on td{background:color-mix(in srgb,#22b07d 12%,var(--surface));font-weight:600}
.st-calc{margin-top:6px;font-size:14px}
@media (max-width:640px){.st-bonus{padding:14px 16px}.st-note{padding:12px 16px}.st-work{max-width:none}}
@media print{.st-bonus{break-inside:avoid}}
/* IN-33: a campaign running this month, in Step 2 — not in the month total */
.st-running{background:color-mix(in srgb,var(--accent) 4%,transparent)}
.st-run-sales{margin-top:10px}
@media print{.st-running{background:none}}
.br-lines table tfoot td{padding-left:12px;padding-right:12px}
.br-lines table tfoot td:first-child{padding-left:24px}
.br-lines table tfoot td:last-child{padding-right:20px}
.st-steps{grid-template-columns:minmax(0,1fr)}
.st-steps li{min-width:0}
.st-slabs{overflow-x:auto}
@container brlines (max-width: 819px){
  .br-lines tfoot{display:block}
  .br-lines tfoot tr.st-total{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:14px 16px}
  .br-lines tfoot tr.st-total td{display:block;padding:0 !important;border:0;background:none;text-align:right}
  .br-lines tfoot tr.st-total td:first-child{grid-column:1 / -1;text-align:left}
}
@container brlines (max-width: 819px){ .br-lines tfoot tr.st-total .in-k{display:block;font-size:11.5px;color:var(--muted);font-weight:500} }
@media (max-width:640px){.st-slabs th:last-child,.st-slabs td:last-child{display:none}.st-slabs table th,.st-slabs table td{padding:7px 8px}}
.table-wrap.st-slabs table{min-width:0}
/* IN-19 (27 Sep 2026): Step 3 · Total stands out */
.st-total-card{--tot:var(--accent);display:flex;align-items:center;justify-content:space-between;gap:16px 28px;flex-wrap:wrap;padding:22px 26px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--tot) 14%,var(--surface)),color-mix(in srgb,var(--tot) 5%,var(--surface)));
  border:1px solid color-mix(in srgb,var(--tot) 35%,var(--line));border-left:6px solid var(--tot);box-shadow:0 6px 22px color-mix(in srgb,var(--tot) 16%,transparent)}
.st-total-main{flex:1 1 380px;min-width:0}
.st-total-k{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,var(--tot) 70%,var(--text))}
.st-total-sum{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;font-size:14px}
.st-chip{padding:5px 12px;border-radius:999px;background:var(--surface);border:1px solid color-mix(in srgb,var(--tot) 25%,var(--line));white-space:nowrap}
.st-plus{color:var(--muted);font-weight:700}
.st-total-fig{text-align:right}
.st-total-v{font-size:34px;font-weight:800;line-height:1.1;color:color-mix(in srgb,var(--tot) 75%,var(--text));white-space:nowrap}
.st-total-note{font-size:12.5px;color:var(--muted);margin-top:4px}
[data-theme="dark"] .st-total-card{background:color-mix(in srgb,var(--tot) 16%,var(--surface))}
[data-theme="dark"] .st-total-k,[data-theme="dark"] .st-total-v{color:color-mix(in srgb,var(--tot) 45%,#fff)}
@media (max-width:640px){.st-total-card{padding:18px}.st-total-fig{text-align:left}.st-total-v{font-size:28px}}
@media print{.st-total-card{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* IN-20 (27 Sep 2026): uncovered manager business, run list status on one line */
.in-uncovered,.st-uncovered{color:#b26b00 !important;display:flex;gap:5px;align-items:flex-start}
.in-uncovered svg{flex:0 0 auto;margin-top:2px}
#run-table td .badge{white-space:nowrap}

/* IN-21 (27 Sep 2026): Disbursement and Forfeiture & Clawback */
.db-minus{color:var(--danger);white-space:nowrap}
#pay-table td,#db-paid td,#cb-table td{vertical-align:top}
#pay-table .num,#cb-table .num{white-space:nowrap}
#pay-table [data-hold-field] input{width:100%}
.cb-set-table input{max-width:120px}
.cb-set-table td{vertical-align:middle}

/* IN-21: payout / clawback tables stack into cards on phones */
@media (max-width:640px){
.db-stack thead{display:none}
.db-stack,.db-stack tbody,.db-stack tr,.db-stack td{display:block;width:100%}
.db-stack tbody tr{padding:12px 16px;border-bottom:1px solid var(--line)}
.db-stack td{border:0!important;padding:3px 0!important;text-align:left!important}
.db-stack td[data-k]{position:relative;padding-left:38%!important;text-align:right!important}
.db-stack td[data-k]::before{content:attr(data-k);position:absolute;left:0;top:3px;color:var(--text-3,#8a8a8a);font-size:12.5px;font-weight:500}
.db-stack td[data-k]:empty,.db-stack td:empty{display:none}
.db-stack tfoot{display:block}.db-stack tfoot tr{display:flex;flex-wrap:wrap;gap:6px 14px;padding:12px 16px}.db-stack tfoot th{display:block;padding:0!important;border:0!important}
}

/* IN-25: Campaign — several "Separate" slab tables one under the other */
.rf-slab-group + .rf-slab-group:not([hidden]){margin-top:26px}
/* IN-26: contests */
.contest-table .badge,#standings-table .badge,#award-table .badge,#reward-table .badge{white-space:nowrap}
.ct-slabs select{min-width:150px}
/* HR-01 (28 Sep 2026): HR pages */
.hr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px;margin-bottom:18px}
.hr-grid h3{margin-top:0}
.hr-glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.hr-glance h4{margin:0 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.hr-glance .in-table td{padding:6px 8px}
.hr-net{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--accent) 8%,transparent)}
.hr-net strong{font-size:20px}
@media (max-width:640px){.hr-grid{grid-template-columns:1fr}.hr-grid .kv{grid-template-columns:1fr}}
/* HR-02 (28 Sep 2026): payslip */
.payslip .ps-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.payslip .ps-co{font-size:20px;font-weight:700}
.payslip .ps-net{text-align:right}.payslip .ps-net .v{font-size:24px;font-weight:700}
.payslip .ps-emp{margin-bottom:18px}
@media print{.payslip{box-shadow:none;border:0}.payslip .hr-net{background:none;border:1px solid #999}}

/* HR-03 (28 Sep 2026): leave tables — on narrow screens one field per line with its label */
@container brlines (max-width: 819px){
  .br-lines .lv-stack tr.br-line{grid-template-columns:minmax(0,1fr)}
  .br-lines .lv-stack tr.br-line td[data-k]{position:relative;padding-left:min(34%,130px) !important;text-align:left !important;white-space:normal}
  .br-lines .lv-stack tr.br-line td[data-k]::before{content:attr(data-k);position:absolute;left:0;top:1px;color:var(--text-3,#8a8a8a);font-size:12.5px;font-weight:500}
  .br-lines .lv-stack tr.br-line td.end .row{justify-content:flex-start !important}
  .br-lines .lv-stack tr.br-line td:empty{display:none}
}
#ln-schedule table{width:100%}
/* HR-06 (28 Sep 2026) — performance rating forms stack on a phone */
@media (max-width:640px){.pv-rate thead{display:none}.pv-rate,.pv-rate tbody,.pv-rate tr,.pv-rate td{display:block;width:100%}.pv-rate tr{padding:10px 0;border-bottom:1px solid var(--line)}.pv-rate td{border:0;padding:4px 0}.pv-rate td.num::before{content:"Self: ";color:var(--text-2)}.pv-rate td.num{text-align:left}.pv-rate td[style]{width:100%!important}}
/* HR-07 (28 Sep 2026): payslip / pay-at-a-glance tables fit a 375 px phone (no sideways scroll) */
.hr-glance{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.hr-glance > div{min-width:0}
.hr-glance .in-table{width:100%}
@media (max-width:480px){.hr-glance .in-table td,.hr-glance .in-table th{padding:5px 4px;font-size:12.5px}.payslip{padding:14px}.payslip .ps-head{flex-wrap:wrap}.payslip .ps-net{text-align:left}}
/* ============================================================
   RP-01 (28 Sep 2026) — Reports & MIS
   ============================================================ */
.rp-small{font-size:12.5px}
.rp-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:18px}
.rp-group-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.rp-ico{height:36px;width:36px;flex:0 0 36px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}
.rp-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.rp-list a{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:var(--radius-sm);color:var(--text);text-decoration:none}
.rp-list a:hover,.rp-list a:focus-visible{background:var(--surface-2)}
.rp-list a span{font-size:12.5px;line-height:1.4}
.rp-fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(190px,100%),1fr));gap:12px 14px}
.rp-fgrid .field{margin:0;min-width:0}
.rp-fgrid select,.rp-fgrid input{width:100%}
.rp-fbar{margin-top:14px;flex-wrap:wrap;align-items:center}
.rp-presets{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;margin-left:6px}
.rp-presets .chip{text-decoration:none}
.rp-presets .chip.active{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}
.rp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:14px}
.rp-card .label{font-size:12.5px;color:var(--text-2)}
.rp-card .value{font-size:22px;font-weight:600;letter-spacing:-.02em;margin-top:6px;overflow-wrap:anywhere}
.rp-chart-title{margin:0 0 12px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.rp-bars{display:grid;gap:7px}
.rp-bar-row{display:grid;grid-template-columns:minmax(90px,200px) 1fr auto;gap:10px;align-items:center;font-size:13px}
.rp-bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-bar-track{height:12px;background:var(--surface-2);border-radius:6px;overflow:hidden}
.rp-bar{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.rp-bar-val{font-variant-numeric:tabular-nums;min-width:84px;text-align:right}
.rp-wrap{overflow-x:auto}
.rp-table{width:100%;font-size:13px}
.rp-table.in-table td,.rp-table.in-table th,.rp-table.in-table tfoot td{white-space:nowrap;padding:10px 16px}
.rp-table.in-table th{padding-top:13px;padding-bottom:13px}
.rp-table.in-table tr > :first-child{padding-left:24px}
.rp-table.in-table tr > :last-child{padding-right:24px}
.rp-table th{white-space:nowrap;position:sticky;top:0;background:var(--surface);z-index:1}
.rp-table td.num,.rp-table th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.rp-table tr.rp-sub td{font-weight:600;background:var(--surface-2)}
.rp-table.in-table tfoot td{border-top:2px solid var(--line);background:var(--surface-2)}
.rp-pager{padding:10px 16px}
.rp-actions{flex-wrap:wrap}
.rp-print-head{margin-bottom:14px}
.rp-co{font-weight:600;font-size:14px;color:var(--text-2)}
.rp-print-title{font-size:22px;margin:4px 0}
.rp-print-sub{font-size:13px}
.rp-print .rp-table{font-size:12px}
@media (max-width:640px){.rp-fgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rp-fgrid label{font-size:12.5px}.rp-card .value{font-size:18px}.rp-bar-row{grid-template-columns:minmax(70px,110px) 1fr auto}.rp-bar-val{min-width:64px}}
@media print{
  @page{size:A4 landscape;margin:10mm}
  .rp-print{font-size:10.5px}
  .rp-print .rp-table{font-size:9.5px}
  .rp-print .rp-table.in-table th,.rp-print .rp-table.in-table td{padding:3px 5px!important}
  .rp-wrap{overflow:visible!important;box-shadow:none!important;border:0!important}
  .rp-table th{position:static}
  .rp-table thead{display:table-header-group}
  .rp-table tr{break-inside:avoid}
  .rp-cards{grid-template-columns:repeat(6,1fr);gap:8px}
  .rp-print .rp-table.in-table th,.rp-print .rp-table.in-table td{white-space:normal!important;overflow-wrap:break-word}
  .rp-print .rp-table.in-table td.num,.rp-print .rp-table.in-table th.num{overflow-wrap:normal}
  .rp-print .rp-table{width:100%;table-layout:auto}
  .rp-print .rp-table.rp-many{font-size:7px}
  .rp-print .rp-table.in-table td.nowrap{white-space:nowrap!important}
  .rp-print .rp-table tfoot{display:table-row-group}
  .rp-print .rp-table.rp-many th{font-size:7px;letter-spacing:0}
  .rp-card{padding:8px 10px!important;box-shadow:none;border:1px solid #ccc}
  .rp-card .value{font-size:15px}
  .rp-print .alert{border:1px solid #ccc}
  body,.main,.content{background:#fff!important}
}
/* ============================================================
   WS-01 (28 Sep 2026) — My Workspace
   ============================================================ */
.ws-actions{flex-wrap:wrap}
.ws-grid{columns:2 400px;column-gap:18px}
.ws-grid > *{min-width:0;break-inside:avoid;display:block;margin-bottom:18px}
.ws-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px}
.ws-h{display:flex;align-items:center;gap:8px;font-size:16px;margin:0}
.ws-h svg{color:var(--accent)}
.ws-sub{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:8px}
.ws-todo{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:8px}
.ws-todo a{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);text-decoration:none;min-height:44px}
.ws-todo a:hover,.ws-todo a:focus-visible{background:var(--surface-2)}
.ws-todo .ws-go{margin-left:auto;color:var(--muted);font-size:18px}
.ws-table{width:100%;font-size:13.5px;margin-bottom:8px}
.ws-table th,.ws-table td{padding:7px 8px!important}
.ws-table td.num,.ws-table th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.ws-chips{display:flex;flex-wrap:wrap;gap:6px}
.ws-chips .chip{text-decoration:none;gap:6px;padding:4px 10px;font-size:12.5px}
.ws-list{list-style:none;margin:0;padding:0}
.ws-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.ws-list li:first-child{border-top:0}
.ws-list li > div{min-width:0}
.ws-kv{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ws-big{font-size:22px;font-weight:600;letter-spacing:-.02em;margin:2px 0}
.ws-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
@media (max-width:480px){.ws-kv{grid-template-columns:1fr}.ws-big{font-size:19px}.ws-table{font-size:12.5px}.ws-table th,.ws-table td{padding:6px 4px!important}.ws-table td:first-child{white-space:nowrap}.ws-sofar{display:none}}
/* SS-01 (28 Sep 2026) — sign-out warning */
.fc-idle{position:fixed;right:18px;bottom:18px;z-index:2000;max-width:min(340px,calc(100vw - 36px));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow, 0 10px 30px rgba(0,0,0,.18));padding:16px 18px}
.fc-idle-t{font-weight:600;margin-bottom:4px}
.fc-idle p{margin:0 0 12px;font-size:13.5px;color:var(--text-2)}
@media print{.fc-idle{display:none!important}}
/* ============================================================
   RP-03 (28 Sep 2026) — Reports in the standard theme (TH-01): one teal accent, neutral cards, clean list, calm table.
   Shares the dashboard's .dbx-* header / card pieces. (Replaces the RP-02 colour tones.)
   ============================================================ */
.tone-teal,.tone-sky,.tone-violet,.tone-amber,.tone-rose,.tone-indigo,.tone-green{--g:var(--accent)}
.rp{--g:var(--accent);--gs:var(--accent-soft);--gm:color-mix(in srgb,var(--accent) 35%,var(--line))}
.rpx{max-width:1480px}
.rpx-gap{margin-top:24px}
.rp .crumb a{color:var(--muted)}
/* home */
.rpx-toolbar{display:flex;flex-direction:column;gap:18px;margin:26px 0 4px;padding-bottom:0}
.rpx-search{display:flex;align-items:center;gap:10px;max-width:620px;padding:11px 16px;background:var(--surface);border:1px solid var(--line);border-radius:10px;color:var(--muted)}
.rpx-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.rpx-search input{border:0;outline:0;background:transparent;flex:1;font:inherit;font-size:15px;color:var(--text);min-width:0;padding:0}
.rpx-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.rpx-tabs::-webkit-scrollbar{display:none}
.rpx-tabs .rp-tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:none;color:var(--text-2);font-size:14.5px;cursor:pointer;border-radius:0}
.rpx-tabs .rp-tab span{font-size:12px;color:var(--muted);background:var(--surface-2);border-radius:99px;padding:1px 8px}
.rpx-tabs .rp-tab:hover{color:var(--text)}
.rpx-tabs .rp-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.rpx-tabs .rp-tab.active span{background:var(--accent-soft);color:var(--accent)}
.rpx-sec{margin-top:30px}
.rpx-sec .dbx-sec-head{margin-bottom:12px}
.rpx-sec .dbx-sec-head h2{display:flex;align-items:center;gap:10px;font-size:17px}
.rpx-sec-ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--accent-soft);color:var(--accent)}
.rpx-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden}
.rpx-item{display:flex;align-items:center;gap:14px;padding:16px 20px;color:var(--text);text-decoration:none;border-top:1px solid var(--line);min-width:0}
.rpx-item:nth-child(-n+2){border-top:0}
.rpx-item:nth-child(even){border-left:1px solid var(--line)}
.rpx-item[hidden]{display:none}
.rpx-item:hover,.rpx-item:focus-visible{background:color-mix(in srgb,var(--accent) 4%,var(--surface))}
.rpx-item:hover strong{color:var(--accent)}
.rpx-item-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.rpx-item-body strong{font-size:15px;font-weight:600}
.rpx-item-body span{font-size:13.5px;line-height:1.45;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rpx-item-go{color:var(--muted);display:inline-flex}
.rpx-item:hover .rpx-item-go{color:var(--accent)}
.rp-none{margin-top:24px}
/* a report */
.dbx-head.rpx-head{align-items:flex-end;margin-bottom:22px}
.rpx-head-main{min-width:0;flex:1 1 460px}
.rpx-head .dbx-period-label{max-width:820px}
.rpx-actions{display:flex;gap:8px;flex-wrap:wrap}
.rpx-actions .btn{display:inline-flex;align-items:center;gap:6px}
.rp-filterbar{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:12px}
.rp-frow{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}
.rp-frow .field,.rp-more .field{margin:0;min-width:0}
.rp-frow .field{flex:1 1 160px;max-width:240px}
.rp-filterbar label{font-size:12.5px;color:var(--text-2);font-weight:500;margin-bottom:5px}
.rp-filterbar select,.rp-filterbar input{min-height:40px;padding-top:8px;padding-bottom:8px;border-radius:8px;font-size:14.5px;width:100%}
.rp-filterbar select:focus,.rp-filterbar input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.rp-fbtns{display:flex;gap:8px;margin-left:auto;align-items:center}
.rp-fbtns .btn{min-height:40px;border-radius:8px}
.rp-more-btn{gap:6px}
.rp-count{display:inline-flex;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px;align-items:center;justify-content:center}
.rp-more{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:14px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.rp-more[hidden]{display:none}
.rp-frow2{display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:space-between;align-items:center;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.rp-presets2,.rp-active{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rp-presets2 .rp-small{margin-right:4px}
.rp-preset{padding:5px 12px;border-radius:8px;border:1px solid var(--line);font-size:13px;color:var(--text-2);text-decoration:none;background:var(--surface)}
.rp-preset:hover{border-color:var(--gm);color:var(--text)}
.rp-preset.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}
.rp-achip{display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border-radius:8px;background:var(--accent-soft);color:var(--accent-ink);font-size:13px;text-decoration:none}
.rp-achip:hover{background:color-mix(in srgb,var(--accent) 16%,var(--surface))}
.rp-small{font-size:12.5px}
.rp-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 2px 18px;font-size:13.5px;color:var(--muted)}
.rpx-figs{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));padding:20px 4px;margin-bottom:18px}
.rpx-fig{display:flex;flex-direction:column;gap:6px;padding:2px 22px;border-left:1px solid var(--line);min-width:0}
.rpx-fig:first-child{border-left:0}
.rpx-fig .label{font-size:14px;color:var(--text-2)}
.rpx-fig .value{font-size:26px;font-weight:700;letter-spacing:-.015em;color:var(--text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.rpx-fig .value small{font-size:.55em;font-weight:500;margin-left:3px}
.rpx-fig .sub{font-size:12.5px;color:var(--muted)}
.rp .rp-chart{padding:20px 24px;margin-bottom:18px}
.rp .rp-chart-title{font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text);margin:0 0 16px}
.rp .rp-bars{gap:10px}
.rp .rp-bar-row{font-size:14px;grid-template-columns:minmax(100px,220px) 1fr auto;gap:14px}
.rp .rp-bar-track{height:8px;border-radius:99px;background:var(--surface-2)}
.rp .rp-bar{border-radius:99px;background:var(--accent)}
.rp .rp-bar-row.is-zero .rp-bar-label,.rp .rp-bar-row.is-zero .rp-bar-val{opacity:.45}
.rp-tablecard{overflow:hidden}
.rp .rp-table.in-table{font-size:14px;border-collapse:separate;border-spacing:0}
.rp .rp-table.in-table th{background:var(--surface);color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:14px 16px!important;border-bottom:1px solid var(--line)}
.rp .rp-table.in-table td{padding:10px 16px!important;border-top:1px solid var(--line);color:var(--text)}
.rp .rp-table.in-table tbody tr:first-child td{border-top:0}
.rp .rp-table.in-table tbody tr:hover td{background:color-mix(in srgb,var(--accent) 3%,var(--surface))}
.rp .rp-table.in-table th:first-child,.rp .rp-table.in-table td:first-child{position:sticky;left:0;z-index:1;padding-left:20px!important}
.rp .rp-table.in-table td:first-child{background:var(--surface);box-shadow:1px 0 0 var(--line)}
.rp .rp-table.in-table th:first-child{z-index:2}
.rp .rp-table.in-table tr.rp-sub td{background:var(--surface-2)!important;font-weight:600}
.rp .rp-table.in-table tfoot td{background:var(--surface-2)!important;border-top:1px solid var(--line);font-weight:600;padding-top:14px!important;padding-bottom:14px!important}
.rp-zero{color:var(--muted);opacity:.6}
.rp .rp-pager{padding:4px 16px;border-top:1px solid var(--line)}
.rp .rp-pager .pagination{border-top:0;margin:0;padding:8px 0}
.rp-note{display:flex;gap:6px;align-items:flex-start;font-size:13px;color:var(--muted);margin:12px 2px 0}
@media (max-width:900px){.rpx-list{grid-template-columns:1fr}.rpx-item:nth-child(2){border-top:1px solid var(--line)}.rpx-item:nth-child(even){border-left:0}}
@media (max-width:640px){
  .rpx-head{align-items:flex-start}
  .rpx-actions{width:100%}.rpx-actions .btn{flex:1;justify-content:center}
  .rp-frow .field{flex:1 1 calc(50% - 7px);max-width:none}
  .rp-fbtns{width:100%;justify-content:flex-end}
  .rpx-figs{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 0;padding:16px 0}
  .rpx-fig{padding:0 14px}
  .rpx-fig:nth-child(odd){border-left:0}
  .rpx-fig .value{font-size:21px}
  .rpx-tabs{margin:0 -16px;padding:0 16px}
  .rp .rp-bar-row{grid-template-columns:minmax(70px,110px) 1fr auto}
}
@media print{.rpx-actions,.rp-filterbar,.rpx-tabs,.rpx-search{display:none!important}.rp .rp-table.in-table td:first-child,.rp .rp-table.in-table th:first-child{position:static;box-shadow:none}
  .rpx-figs{grid-template-columns:repeat(6,1fr)}}

/* ============================================================
   DB-02 (28 Sep 2026, revised to the reference) — dashboard: calm, professional, few large cards
   ============================================================ */
.dbx,.rpx,.rp-print{--acc:var(--accent);--acc-s:var(--accent-soft);--ink:var(--text);--ink-2:var(--text-2);--mut:var(--muted);--card:var(--surface);--ln:var(--line);--tint:var(--surface-2);max-width:1480px}
.dbx-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.dbx .crumb{font-size:13px;color:var(--mut);margin-bottom:8px}
.dbx .crumb a{color:var(--mut);text-decoration:none}
.dbx-title{font-size:32px;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin:0}
.dbx-period-label{margin:6px 0 0;color:var(--ink-2);font-size:15px}
.dbx-period-label a{color:var(--acc)}
.dbx-head-side{display:flex;flex-direction:column;align-items:flex-end;gap:10px;padding-top:26px}
.dbx-scope{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--ln);border-radius:10px;background:var(--card);color:var(--ink);font-size:14px;font-weight:500}
.dbx-scope svg{color:var(--acc)}
.dbx-back{font-size:13.5px;color:var(--acc);text-decoration:none}
.dbx-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:26px 0 0;padding-bottom:26px;border-bottom:1px solid var(--ln)}
.dbx-seg{display:inline-flex;align-items:center;gap:4px;padding:5px;border:1px solid var(--ln);border-radius:12px;background:var(--card)}
.dbx-seg-btn{display:inline-flex;align-items:center;padding:8px 16px;border-radius:8px;color:var(--ink-2);font-size:15px;text-decoration:none;cursor:pointer;list-style:none;white-space:nowrap}
.dbx-seg-btn::-webkit-details-marker{display:none}
.dbx-seg-btn:hover{background:var(--tint);color:var(--ink)}
.dbx-seg-btn.active{background:var(--acc);color:#fff;font-weight:500}
.dbx-custom{position:relative}
.dbx-custom-form{position:absolute;z-index:20;top:calc(100% + 10px);left:0;display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding:14px;background:var(--card);border:1px solid var(--ln);border-radius:12px;box-shadow:0 12px 32px rgba(21,39,58,.10);min-width:300px}
.dbx-custom-form label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--mut)}
.dbx-custom-form input{padding:7px 9px;border:1px solid var(--ln);border-radius:8px;background:var(--card);color:var(--ink)}
.dbx-range{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2);font-size:15px}
.dbx-range svg{color:var(--mut)}
.dbx-note{margin-top:18px}
.dbx-sec{margin-top:34px}
.dbx-sec-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.dbx-sec-head h2{font-size:19px;font-weight:700;color:var(--ink);margin:0;letter-spacing:-.01em}
.dbx-sec-note{font-size:13.5px;color:var(--mut)}
.dbx-how{position:relative}
.dbx-how summary{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--mut);cursor:pointer;list-style:none}
.dbx-how summary::-webkit-details-marker{display:none}
.dbx-how summary:hover{color:var(--ink)}
.dbx-how-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:min(440px,86vw);padding:14px 16px;background:var(--card);border:1px solid var(--ln);border-radius:12px;box-shadow:0 12px 32px rgba(21,39,58,.10);font-size:13px;color:var(--ink-2);line-height:1.5}
.dbx-how-pop p{margin:0 0 8px}.dbx-how-pop p:last-child{margin:0}
.dbx-card{background:var(--card);border:1px solid var(--ln);border-radius:14px;color:var(--ink);text-decoration:none;min-width:0}
a.dbx-card.is-link{transition:border-color .15s,box-shadow .15s}
a.dbx-card.is-link:hover{border-color:color-mix(in srgb,var(--acc) 40%,var(--ln));box-shadow:0 6px 20px rgba(21,39,58,.06)}
a.is-link:focus-visible{outline:3px solid color-mix(in srgb,var(--acc) 35%,transparent);outline-offset:2px}
.dbx-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.dbx-kpi{display:flex;flex-direction:column;padding:24px 26px 20px}
.dbx-kpi-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.dbx-label{font-size:15px;color:var(--ink-2)}
.dbx-ico{flex:0 0 36px;height:36px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--tint);color:var(--mut)}
.dbx-ico.is-accent,.dbx-kpi.is-accent .dbx-ico{background:var(--acc-s);color:var(--acc)}
.dbx-big{font-size:44px;font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.1;margin:22px 0 8px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.dbx-big small,.dbx-mid-val small,.dbx-side-val small,.dbx-target-val small,.dbx-stat-val small{font-size:.5em;font-weight:500;margin-left:3px;letter-spacing:0}
.dbx-sub{display:block;font-size:14px;color:var(--mut)}
.dbx-basis{display:flex;align-items:center;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--ln);font-size:14px;color:var(--ink-2)}
.dbx-basis svg{color:var(--mut)}
.dbx-row2{display:grid;grid-template-columns:1fr 1fr 2fr;gap:18px;margin-top:18px}
.dbx-mid{display:flex;flex-direction:column;justify-content:center;padding:24px 26px}
.dbx-mid-val{font-size:32px;font-weight:700;color:var(--ink);margin:12px 0 6px;letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.dbx-target{padding:22px 24px;display:flex;flex-direction:column;gap:12px}
.dbx-target-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.dbx-target-head strong{font-size:16px;color:var(--ink)}
.dbx-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;font-size:13px;background:var(--tint);color:var(--ink-2)}
.dbx-badge.is-warn{background:#fdf4e3;color:#9a6512}
.dbx-badge.is-ok{background:var(--acc-s);color:var(--acc)}
[data-theme="dark"] .dbx-badge.is-warn{background:color-mix(in srgb,#e0a954 16%,var(--surface));color:#e0a954}
.dbx-target-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dbx-target-cols .dbx-label{display:block;font-size:14px;color:var(--mut)}
.dbx-target-val{display:block;font-size:22px;font-weight:600;color:var(--ink);margin-top:4px;font-variant-numeric:tabular-nums}
.dbx-progress{display:block;height:8px;border-radius:99px;background:var(--tint);overflow:hidden}
.dbx-progress i{display:block;height:100%;border-radius:99px;background:var(--acc)}
.dbx-target-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--mut)}
.dbx-target-foot a,.dbx-more{display:inline-flex;align-items:center;gap:5px;color:var(--acc);text-decoration:none;font-size:14.5px}
.dbx-target-foot a:hover,.dbx-more:hover{text-decoration:underline}
.dbx-duo{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:18px}
.dbx-duo.is-single{grid-template-columns:1fr}
.dbx-glance{padding:22px 26px;display:flex;flex-direction:column}
.dbx-glance-title{display:flex;align-items:center;gap:10px;font-size:15.5px;color:var(--ink);font-weight:500}
.dbx-glance-title svg{color:var(--mut)}
.dbx-glance-stats{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));margin:20px 0 24px}
.dbx-stat{display:flex;flex-direction:column;gap:6px;padding:4px 20px;border-left:1px solid var(--ln);color:var(--ink);text-decoration:none;min-width:0}
.dbx-stat:first-child{border-left:0;padding-left:0}
a.dbx-stat:hover .dbx-stat-label{color:var(--acc)}
.dbx-stat-val{font-size:32px;font-weight:700;letter-spacing:-.015em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.dbx-stat-label{font-size:14.5px;color:var(--ink-2)}
.dbx-glance-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;margin-top:auto;padding-top:18px;border-top:1px solid var(--ln)}
.dbx-foot-item{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;color:var(--ink-2);text-decoration:none}
.dbx-foot-item svg{color:var(--mut)}
.dbx-foot-item strong{color:var(--ink);font-weight:600;margin-left:4px;font-variant-numeric:tabular-nums}
a.dbx-foot-item:hover{color:var(--acc)}
.dbx-glance-note{margin:14px 0 0;font-size:13.5px;color:var(--mut)}
.dbx-side{padding:22px 24px;display:flex;flex-direction:column;gap:14px}
.dbx-side-head{display:flex;justify-content:space-between;align-items:center}
.dbx-side-main{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.dbx-side-name{display:block;font-size:26px;font-weight:700;color:var(--ink);letter-spacing:-.015em;margin-bottom:4px;overflow-wrap:anywhere}
.dbx-right{text-align:right}
.dbx-side-val{display:block;font-size:26px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;margin-bottom:4px}
.dbx-side-val.is-big{font-size:34px}
.dbx-bar-meta{display:flex;justify-content:space-between;font-size:14px;color:var(--mut);margin-top:-4px}
.dbx-bar-meta span:last-child{color:var(--ink)}
.dbx-lines{margin:0;display:grid}
.dbx-lines div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-top:1px solid var(--ln);font-size:14.5px}
.dbx-lines dt{color:var(--ink-2)}
.dbx-lines dd{margin:0;color:var(--ink);font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.dbx-lines dd a{color:var(--ink);text-decoration:none}
.dbx-lines dd a:hover{color:var(--acc)}
.dbx-line-sub{display:block;font-size:12.5px;font-weight:400;color:var(--mut)}
.dbx-tablecard{overflow:hidden}
.dbx-table{width:100%;border-collapse:collapse;font-size:14.5px}
.dbx-table th{font-size:12.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--mut);text-align:left;padding:14px 20px;border-bottom:1px solid var(--ln);white-space:nowrap;background:var(--card)}
.dbx-table td{padding:14px 20px;border-bottom:1px solid var(--ln);color:var(--ink);white-space:nowrap}
.dbx-table tbody tr:last-child td{border-bottom:0}
.dbx-table tbody tr:hover td{background:color-mix(in srgb,var(--acc) 3%,var(--card))}
.dbx-table .num{text-align:right;font-variant-numeric:tabular-nums}
.dbx-table a{color:var(--acc);text-decoration:none;font-weight:500}
.dbx-table a:hover{text-decoration:underline}
.dbx-zero{color:var(--mut);opacity:.7}
.dbx-role{font-size:12px;color:var(--mut);margin-left:4px}
.dbx-ach{display:flex;align-items:center;gap:10px;min-width:150px}
.dbx-mini{flex:1;height:6px;border-radius:99px;background:var(--tint);overflow:hidden;min-width:70px}
.dbx-mini i{display:block;height:100%;background:var(--acc);border-radius:99px}
.dbx-trend{padding:22px 26px}
.dbx-legend{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--mut);margin-bottom:16px;flex-wrap:wrap}
.dbx-legend span{display:inline-block;width:10px;height:10px;border-radius:3px}
.dbx-legend .k1{background:color-mix(in srgb,var(--acc) 28%,var(--card))}
.dbx-legend .k2{background:var(--acc);margin-left:10px}
.dbx-cols{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;align-items:end;height:170px}
.dbx-col{display:flex;flex-direction:column;align-items:center;gap:8px;height:100%}
.dbx-col-bars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:4px}
.dbx-col-bars i{display:block;width:min(14px,38%);min-height:2px;border-radius:4px 4px 1px 1px}
.dbx-col-bars .b1{background:color-mix(in srgb,var(--acc) 28%,var(--card))}
.dbx-col-bars .b2{background:var(--acc)}
.dbx-col span{font-size:12px;color:var(--mut)}
.dbx-empty{padding:28px}
.dbx-empty h3{margin:0 0 6px;color:var(--ink)}
.dbx-empty p{margin:0;color:var(--mut)}
.dbx-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:30px;font-size:13.5px;color:var(--mut)}
.dbx-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--acc);vertical-align:middle;margin-right:4px}
@media (max-width:1180px){
  .dbx-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dbx-row2{grid-template-columns:1fr 1fr}
  .dbx-target{grid-column:1 / -1}
  .dbx-duo{grid-template-columns:1fr}
}
@media (max-width:640px){
  .dbx-title{font-size:25px}
  .dbx-head-side{align-items:flex-start;padding-top:0}
  .dbx-bar{margin-top:18px;padding-bottom:18px}
  .dbx-seg{max-width:100%;overflow-x:auto;scrollbar-width:none}
  .dbx-seg::-webkit-scrollbar{display:none}
  .dbx-seg-btn{padding:7px 12px;font-size:14px}
  .dbx-custom{position:static}
  .dbx-custom-form{left:16px;right:16px;min-width:0}
  .dbx-kpis,.dbx-row2{gap:12px}
  .dbx-kpi,.dbx-mid{padding:16px 16px 14px}
  .dbx-big{font-size:28px;margin:12px 0 4px}
  .dbx-mid-val{font-size:24px}
  .dbx-label{font-size:13.5px}
  .dbx-ico{flex-basis:30px;height:30px}
  .dbx-sub,.dbx-basis{font-size:12.5px}
  .dbx-basis{margin-top:12px;padding-top:10px}
  .dbx-glance,.dbx-side,.dbx-target,.dbx-trend{padding:16px}
  .dbx-glance-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 0}
  .dbx-stat{padding:0 12px}
  .dbx-stat:nth-child(odd){border-left:0;padding-left:0}
  .dbx-stat-val{font-size:24px}
  .dbx-side-name,.dbx-side-val{font-size:21px}
  .dbx-cols{height:130px;gap:4px}
  .dbx-col span{font-size:10px}
  .dbx-sec{margin-top:26px}
}
.dbx-glance-stats + .dbx-glance-note{margin-top:auto}
.dbx-duo.is-single .dbx-glance-stats:last-child{margin-bottom:4px}

/* ============================================================
   DB-02c (28 Sep 2026) — dashboard made lighter to blend with the theme: smaller figures, lighter weights,
   tighter padding, app card radius + soft shadow, thinner bars. Overrides the .dbx block above.
   ============================================================ */
.dbx-title{font-size:30px;font-weight:600;letter-spacing:-.025em}
.dbx-period-label{font-size:14.5px;margin-top:4px}
.dbx-head-side{padding-top:22px}
.dbx-scope{padding:6px 12px;font-size:13.5px;border-radius:var(--radius-sm);box-shadow:var(--shadow-soft)}
.dbx-bar{margin-top:20px;padding-bottom:20px}
.dbx-seg{padding:3px;border-radius:10px;box-shadow:var(--shadow-soft)}
.dbx-seg-btn{padding:6px 14px;font-size:14px;border-radius:7px}
.dbx-range{font-size:14px}
.dbx-sec{margin-top:28px}
.dbx-sec-head{margin-bottom:12px}
.dbx-sec-head h2{font-size:16px;font-weight:600}
.dbx-sec-note,.dbx-how summary{font-size:13px}
.dbx-card{border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}
a.dbx-card.is-link:hover{box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.dbx-kpis,.dbx-row2,.dbx-duo{gap:14px}
.dbx-row2{margin-top:14px}
.dbx-kpi{padding:18px 20px 14px}
.dbx-label{font-size:13.5px;color:var(--text-2)}
.dbx-ico{flex-basis:30px;height:30px;border-radius:8px}
.dbx-ico svg{width:15px;height:15px}
.dbx-big{font-size:30px;font-weight:600;letter-spacing:-.02em;margin:12px 0 4px}
.dbx-big small,.dbx-mid-val small,.dbx-side-val small,.dbx-target-val small,.dbx-stat-val small{font-size:.52em;font-weight:500;color:var(--text-2)}
.dbx-sub{font-size:13px}
.dbx-basis{margin-top:12px;padding-top:10px;font-size:12.5px;color:var(--muted);gap:6px}
.dbx-basis svg{width:13px;height:13px}
.dbx-mid{padding:18px 20px}
.dbx-mid-val{font-size:24px;font-weight:600;margin:8px 0 4px}
.dbx-target{padding:16px 20px;gap:10px}
.dbx-target-head strong{font-size:14.5px;font-weight:600}
.dbx-badge{font-size:12px;padding:3px 9px;border-radius:6px}
.dbx-target-cols .dbx-label{font-size:13px}
.dbx-target-val{font-size:19px;font-weight:600;margin-top:2px}
.dbx-progress{height:6px}
.dbx-target-foot{font-size:13px}
.dbx-target-foot a,.dbx-more{font-size:13.5px}
.dbx-glance{padding:18px 20px}
.dbx-glance-title{font-size:14.5px;gap:8px}
.dbx-glance-title svg{width:16px;height:16px}
.dbx-glance-stats{margin:14px 0 18px}
.dbx-stat{padding:2px 18px;gap:4px}
.dbx-stat-val{font-size:24px;font-weight:600}
.dbx-stat-label{font-size:13px;color:var(--text-2)}
.dbx-glance-foot{padding-top:14px;gap:10px 20px}
.dbx-foot-item{font-size:13.5px}
.dbx-foot-item svg{width:14px;height:14px}
.dbx-glance-note{font-size:12.5px;margin-top:10px}
.dbx-side{padding:18px 20px;gap:10px}
.dbx-side-name{font-size:20px;font-weight:600}
.dbx-side-val{font-size:20px;font-weight:600}
.dbx-side-val.is-big{font-size:26px}
.dbx-bar-meta{font-size:13px}
.dbx-lines div{padding:7px 0;font-size:13.5px}
.dbx-lines dd{font-weight:600}
.dbx-table{font-size:13.5px}
.dbx-table th{font-size:11.5px;padding:12px 18px}
.dbx-table td{padding:11px 18px}
.dbx-trend{padding:18px 20px}
.dbx-legend{font-size:12.5px;margin-bottom:12px}
.dbx-cols{height:140px;gap:8px}
.dbx-col-bars i{width:min(11px,36%)}
.dbx-foot{font-size:12.5px;margin-top:24px}
@media (max-width:640px){
  .dbx-title{font-size:24px}
  .dbx-big{font-size:24px;margin:8px 0 2px}
  .dbx-mid-val{font-size:21px}
  .dbx-stat-val{font-size:21px}
  .dbx-kpi,.dbx-mid,.dbx-glance,.dbx-side,.dbx-target,.dbx-trend{padding:14px}
}
.dbx-glance-stats{flex:1 1 auto;align-content:center}
.dbx-duo.is-single .dbx-glance-stats{flex:0 0 auto}

/* F-06 (UAT 28 Sep 2026): Forfeiture & Clawback — long state badges ("Reinstated — give back") wrap instead of
   pushing the table past the card at desktop width. */
#cb-table td .badge{white-space:normal;line-height:1.3;text-align:center;max-width:150px;display:inline-block}
#cb-table td{vertical-align:top}
/* LF-04 (29 Sep 2026): Life "Premiums" card */
.pm-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 10px}
.pm-sum .k{font-size:12px;color:var(--muted)}.pm-sum .v{font-size:17px;font-weight:600;margin-top:2px}
.pm-bar{height:8px;border-radius:6px;background:var(--line);overflow:hidden;margin:0 0 14px}
.pm-bar span{display:block;height:100%;background:#1f8a63;border-radius:6px}
.pm-years{display:flex;flex-direction:column;gap:8px}
.pm-y{border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.pm-y[open]{border-color:color-mix(in srgb,#1f8a63 40%,var(--line));background:color-mix(in srgb,#1f8a63 4%,var(--surface))}
.pm-y summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;cursor:pointer;list-style:none}
.pm-y summary::-webkit-details-marker{display:none}
.pm-later{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center}
.pm-yt{display:flex;flex-direction:column;min-width:0}.pm-yt .s{font-size:12px;color:var(--muted)}
.pm-ys{font-size:13px;white-space:nowrap}.pm-ya{font-size:13px;text-align:right;white-space:nowrap;min-width:90px}
.bad-t{color:#a61b1b}
.pm-dots{display:grid;grid-template-columns:repeat(min(var(--n),12),minmax(0,1fr));gap:6px;margin-top:10px}
.pm-dot{height:26px;border-radius:7px;background:color-mix(in srgb,var(--muted) 12%,var(--surface));font-size:10.5px;display:flex;align-items:center;justify-content:center;color:var(--muted);white-space:nowrap;overflow:hidden}
.pm-dot.p{background:color-mix(in srgb,#22b07d 18%,var(--surface));color:#146c43}
.pm-dot.n{background:color-mix(in srgb,#e5484d 16%,var(--surface));color:#a61b1b}
.pm-dot.d{background:var(--surface);border:1.5px dashed #1f8a63;color:#146c43;font-weight:600}
.pm-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--muted);margin-top:12px}
.pm-legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-2px;background:color-mix(in srgb,var(--muted) 12%,var(--surface))}
.pm-legend i.p{background:color-mix(in srgb,#22b07d 18%,var(--surface))}.pm-legend i.n{background:color-mix(in srgb,#e5484d 16%,var(--surface))}.pm-legend i.d{background:var(--surface);border:1.5px dashed #1f8a63}
[data-theme="dark"] .pm-dot.p{color:#7fd8ae}[data-theme="dark"] .pm-dot.n,[data-theme="dark"] .bad-t{color:#ff9b9b}[data-theme="dark"] .pm-dot.d{color:#7fd8ae}
@media (max-width:640px){.pm-sum{grid-template-columns:repeat(2,minmax(0,1fr))}.pm-y summary,.pm-later{grid-template-columns:minmax(0,1fr) auto}.pm-ys{display:none}.pm-dots{grid-template-columns:repeat(min(var(--n),6),minmax(0,1fr))}}
.pm-line{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}

/* ---------- DR-01 (29 Sep 2026): branch performance — summary strip, Submitted | Approved groups, All branches page ---------- */
.bp-pill{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;padding:0 8px;margin-left:6px;border-radius:99px;background:var(--acc-s);color:var(--acc);font-size:12.5px;font-weight:600;vertical-align:middle}
.bp-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}
.bp-chip{display:flex;flex-direction:column;gap:2px;padding:14px 18px;border:1px solid var(--ln);border-radius:14px;background:var(--card)}
.bp-chip strong{font-size:22px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.2}
.bp-chip strong small{font-size:13px;font-weight:500;color:var(--mut)}
.bp-chip-sub{font-size:12.5px;color:var(--mut)}
.bp-chip.is-appr{border-color:color-mix(in srgb,var(--acc) 35%,var(--ln));background:color-mix(in srgb,var(--acc) 5%,var(--card))}
.bp-chip.is-appr strong{color:var(--acc)}
.bp-table .bp-group th{padding:10px 20px 0;border-bottom:0;font-size:11.5px;letter-spacing:.06em}
.bp-table .bp-g{text-align:center!important;border-bottom:2px solid var(--ln)!important;padding-bottom:6px!important;color:var(--ink-2)}
.bp-table .bp-g.is-appr{border-bottom-color:var(--acc)!important;color:var(--acc)}
.bp-table .bp-gs{border-left:1px solid var(--ln)}
.bp-table td.is-appr{background:color-mix(in srgb,var(--acc) 3%,transparent)}
.bp-table .bp-rank{width:44px;padding-right:0}
.bp-rk{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--tint);color:var(--ink-2);font-size:12.5px;font-weight:600}
.bp-rk.is-top{background:var(--acc);color:#fff}
.bp-name{font-weight:600!important}
.dbx-mini.is-good i{background:var(--success)}
.dbx-mini.is-mid i{background:var(--warning)}
.dbx-mini.is-low i{background:var(--danger)}
.bp-met{color:var(--success);font-weight:600}
.bp-all{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;padding:12px 16px;border:1px dashed color-mix(in srgb,var(--acc) 45%,var(--ln));border-radius:12px;color:var(--acc);font-weight:600;font-size:14.5px;text-decoration:none;background:color-mix(in srgb,var(--acc) 4%,var(--card))}
.bp-all:hover{background:color-mix(in srgb,var(--acc) 9%,var(--card))}
.bp-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 12px}
.bp-find{display:flex;align-items:center;gap:8px;flex:1 1 260px;max-width:420px;padding:0 14px;border:1px solid var(--ln);border-radius:12px;background:var(--card);color:var(--mut)}
.bp-find input{flex:1;border:0;background:transparent;padding:10px 0;font:inherit;color:var(--ink);outline:0;min-width:0}
.bp-find:focus-within{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-s)}
.bp-dl{display:flex;gap:8px}
.bp-table th[data-sort]{padding:0}
.bp-sort{all:unset;box-sizing:border-box;display:block;width:100%;padding:14px 20px;cursor:pointer;text-transform:inherit;letter-spacing:inherit;font:inherit;color:inherit;text-align:inherit}
.bp-table th.num .bp-sort{text-align:right}
.bp-sort:hover{color:var(--ink)}
.bp-sort:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.bp-table th[aria-sort="ascending"] .bp-sort::after{content:" ↑";color:var(--acc)}
.bp-table th[aria-sort="descending"] .bp-sort::after{content:" ↓";color:var(--acc)}
.bp-table tfoot td{border-top:2px solid var(--ln);border-bottom:0;background:var(--tint)}
.bp-foot{font-size:13px;margin-top:10px;line-height:1.5}
@media (max-width:900px){
  .bp-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bp-chip{padding:12px 14px}
  .bp-chip strong{font-size:19px}
  .bp-find{max-width:none}
}
/* AO-01 (30 Sep 2026): ACK Overrides page */
.ao-act{display:flex;flex-direction:column;gap:8px;min-width:230px}
.ao-act form{margin:0}
.ao-rej{display:flex;gap:6px;align-items:center;margin:0;justify-content:flex-end}
.ao-rej input{height:34px;padding:0 10px;font-size:13px;min-width:0;flex:1 1 130px;max-width:190px}
.ao-sale{min-width:170px}
/* CB-01 (30 Sep 2026): clawback summary */
#cb-oneline{line-height:1.6}
.in-table tfoot td.cb-foot1{padding-left:24px}
#cb-calc td{padding:9px 14px}
@media (max-width:640px){.db-stack tfoot td{display:block;border:0!important;padding:0!important}.in-table tfoot td.cb-foot1{padding-left:0}#cb-oneline{font-size:14px}}
@media print{#cb-step4,#cb-step6,#cb-step3{break-inside:avoid}}
/* PN-01 (30 Sep 2026): "No PAN — Form 60" next to the PAN field */
.pan-f60{padding-top:26px}
@media (max-width:640px){.pan-f60{padding-top:0}}
.pan-flag{margin-left:6px}
/* CB-03 (30 Sep 2026): clawback "In simple words" */
#cb-simple .cb-h{margin:18px 0 0;font-size:15px}
#cb-simple .cb-p{font-size:14px;margin:8px 0 0;line-height:1.55}
#cb-simple tr.cb-this td{background:color-mix(in srgb,#e0a23a 9%,var(--surface))}
#cb-simple .in-table td,#cb-simple .in-table th{vertical-align:top}
@media print{#cb-simple{break-inside:auto}}
#cb-simple .in-table th,#cb-simple .in-table td{padding:10px 12px}
#cb-simple .in-table th:first-child,#cb-simple .in-table td:first-child{padding-left:24px}
#cb-simple .in-table th:last-child,#cb-simple .in-table td:last-child{padding-right:24px}
#cb-simple .in-table th{white-space:normal;line-height:1.3}
#cb-simple tr.cb-why td{padding-top:0;font-size:12.5px;border-top:0}
#cb-simple .table-wrap{overflow-x:auto}
@media (max-width:640px){#cb-simple .in-table th:first-child,#cb-simple .in-table td:first-child{padding-left:0}#cb-simple tr.cb-why td{padding:0 0 6px!important}}
@media (max-width:640px){#cb-simple .db-stack tfoot tr{display:block}#cb-simple .db-stack tfoot td{display:block;width:100%;padding:2px 0!important;text-align:left}
#cb-simple .db-stack tfoot td[data-k]{position:relative;padding-left:45%!important;text-align:right!important}
#cb-simple .db-stack tfoot td[data-k]::before{content:attr(data-k);position:absolute;left:0;top:2px;color:var(--text-3,#8a8a8a);font-size:12.5px;font-weight:500}
#cb-simple .db-stack tfoot td:empty{display:none}}
#cb-set-table label{white-space:nowrap}
