/* ============================================================
   ARIA ERP — screen-specific component blocks
   ============================================================ */

/* ===== detail pane (master/detail drawer) ===== */
.detail{display:flex;flex-direction:column;min-width:0;background:var(--surface);overflow:hidden;}
.detail-head{padding:18px 20px 0;flex:none;}
.detail-head .close{display:none;}
.dh-top{display:flex;align-items:flex-start;gap:10px;}
.dh-top h2{font-size:calc(19px * var(--fs,1));font-weight:600;letter-spacing:-.02em;margin:0;line-height:1.2;}
.dh-top .sub{color:var(--muted);font-size:calc(12.5px * var(--fs,1));margin-top:2px;display:block;}
.dh-actions{display:flex;gap:8px;margin:14px 0 0;flex-wrap:wrap;}
.tabs{display:flex;gap:2px;margin-top:16px;border-bottom:1px solid var(--hairline);padding:0 4px;overflow-x:auto;}
.tabs::-webkit-scrollbar{display:none;}
.tab{color:var(--muted);font-size:calc(13px * var(--fs,1));font-weight:500;padding:9px 12px;position:relative;transition:color .12s;white-space:nowrap;}
.tab:hover{color:var(--fg);}
.tab.on{color:var(--fg);font-weight:600;}
.tab.on::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--accent);border-radius:2px;}
.tab .tc{margin-left:5px;font-size:calc(11px * var(--fs,1));color:var(--faint);}
.detail-body{flex:1;overflow:auto;padding:18px 20px 28px;}

.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--r-m);overflow:hidden;margin-bottom:16px;}
.statgrid.c3{grid-template-columns:1fr 1fr 1fr;}
.stat{background:var(--surface);padding:12px 14px;}
.stat small{display:block;color:var(--muted);font-size:calc(11px * var(--fs,1));text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;}
.stat b{font-size:calc(21px * var(--fs,1));font-weight:600;letter-spacing:-.02em;}
.stat.accentval b{color:var(--accent);}
.stat.okval b{color:var(--ok);}.stat.warnval b{color:var(--warn);}.stat.dangerval b{color:var(--danger);}
/* KPI stat-card row (module landings) */
.statwrap{padding:0 24px;}
.statcards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:4px 0 16px;}
/* lightweight BI charts */
.kgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.barchart{display:flex;flex-direction:column;gap:11px;padding:6px 2px;}
.barrow{display:grid;grid-template-columns:150px 1fr 78px;align-items:center;gap:12px;font-size:calc(12.5px * var(--fs,1));}
.barrow .bl{color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bartrack{height:11px;border-radius:6px;background:var(--hairline);overflow:hidden;}
.bartrack i{display:block;height:100%;border-radius:6px;background:var(--accent);}
.barrow .bv{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;}
.spark{width:100%;height:auto;display:block;}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:calc(12px * var(--fs,1));color:var(--muted);margin-top:10px;}
.legend span{display:inline-flex;align-items:center;gap:6px;}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;}
.field{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid var(--hairline);font-size:calc(13.5px * var(--fs,1));}
.field:last-child{border-bottom:none;}
.field .k{color:var(--muted);flex:none;}
.field .v{font-weight:500;text-align:right;}
.field .v .vs{display:block;color:var(--muted);font-size:calc(11.5px * var(--fs,1));font-weight:400;}
.sectitle{font-size:calc(11px * var(--fs,1));text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin:18px 0 7px;display:flex;align-items:center;gap:8px;}
.sectitle .more{margin-left:auto;color:var(--accent);font-weight:600;text-transform:none;letter-spacing:0;font-size:calc(12px * var(--fs,1));}
.card{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-m);padding:14px;}
.card+.card{margin-top:10px;}

/* ===== audit / approval timeline ===== */
.timeline{display:flex;flex-direction:column;}
.tl{display:grid;grid-template-columns:14px 1fr;column-gap:12px;position:relative;padding-bottom:16px;}
.tl:last-child{padding-bottom:0;}
.tl:not(:last-child)::before{content:"";position:absolute;left:6px;top:14px;bottom:0;width:2px;background:var(--hairline);}
.tldot{width:11px;height:11px;border-radius:50%;background:var(--surface);border:2px solid var(--muted);margin-top:3px;z-index:1;}
.tl.add .tldot,.tl.ok .tldot{border-color:var(--ok);background:var(--ok);}
.tl.sub .tldot,.tl.reject .tldot{border-color:var(--danger);background:var(--danger);}
.tl.move .tldot,.tl.current .tldot{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px var(--accent-tint);}
.tl.pending .tldot{border-color:var(--warn);background:var(--surface);}
.tl.sys .tldot{border-color:var(--muted);}
.tl .when{font-size:calc(11.5px * var(--fs,1));color:var(--muted);}
.tl .what{font-size:calc(13.5px * var(--fs,1));margin-top:1px;font-weight:500;}
.tl .who{font-size:calc(11.5px * var(--fs,1));color:var(--muted);margin-top:1px;}
.tl .det{font-size:calc(12.5px * var(--fs,1));color:var(--muted);margin-top:4px;background:var(--surface-2);border:1px solid var(--hairline);border-radius:8px;padding:7px 10px;}
.tl .det .chg{display:flex;justify-content:space-between;gap:10px;}
.tl .det .old{color:var(--danger);text-decoration:line-through;}
.tl .det .new{color:var(--ok);font-weight:600;}
.tl .delta{font-weight:600;}
.delta.pos{color:var(--ok);}.delta.neg{color:var(--danger);}

/* attachment / comment ===== */
.attach{display:flex;align-items:center;gap:11px;padding:10px;border:1px solid var(--hairline);border-radius:var(--r-m);margin-bottom:8px;}
.attach .fi{width:34px;height:34px;border-radius:8px;background:var(--accent-tint);color:var(--accent);display:grid;place-items:center;flex:none;}
.attach .fi svg{width:17px;height:17px;}
.attach .fn b{font-size:calc(13px * var(--fs,1));display:block;}
.attach .fn small{color:var(--muted);font-size:calc(11.5px * var(--fs,1));}
.attach .dl{margin-left:auto;color:var(--muted);}
.comment{display:flex;gap:10px;margin-bottom:14px;}
.comment .cav{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:calc(11px * var(--fs,1));font-weight:600;flex:none;}
.comment .cb{flex:1;}
.comment .cb .ch{display:flex;align-items:baseline;gap:7px;}
.comment .cb .ch b{font-size:calc(13px * var(--fs,1));}.comment .cb .ch small{color:var(--muted);font-size:calc(11px * var(--fs,1));}
.comment .cb p{margin:3px 0 0;font-size:calc(13px * var(--fs,1));line-height:1.5;}
.commentbox{display:flex;gap:8px;margin-top:8px;}
.commentbox input{flex:1;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:9px 12px;font-size:calc(13.5px * var(--fs,1));color:var(--fg);outline:none;}
.commentbox input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);}

/* ===== DASHBOARD ===== */
.dash{padding:6px 24px 40px;}
.dashgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:8px;}
.wcard{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-l);padding:16px 17px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s,transform .15s,border-color .15s;cursor:pointer;text-align:left;}
.wcard:hover{box-shadow:var(--shadow);transform:translateY(-1px);border-color:var(--border);}
.wcard .wc-top{display:flex;align-items:center;gap:10px;}
.wc-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;}
.wc-ic svg{width:18px;height:18px;}
.wc-ic.danger{background:var(--danger-tint);color:var(--danger);}
.wc-ic.warn{background:var(--warn-tint);color:var(--warn);}
.wc-ic.accent{background:var(--accent-tint);color:var(--accent);}
.wc-ic.ok{background:var(--ok-tint);color:var(--ok);}
.wc-ic.violet{background:var(--violet-tint);color:var(--violet);}
.wc-ic.teal{background:var(--teal-tint);color:var(--teal);}
.wcard .wc-top h4{margin:0;font-size:calc(13.5px * var(--fs,1));font-weight:600;letter-spacing:-.01em;}
.wcard .wc-top .wc-meta{margin-left:auto;font-size:calc(11.5px * var(--fs,1));color:var(--muted);}
.wcard .wc-num{display:flex;align-items:baseline;gap:8px;}
.wcard .wc-num b{font-size:calc(30px * var(--fs,1));font-weight:600;letter-spacing:-.025em;}
.wcard .wc-num .wc-delta{font-size:calc(12px * var(--fs,1));font-weight:600;}
.wc-delta.up{color:var(--ok);}.wc-delta.down{color:var(--danger);}
.wcard p{margin:0;font-size:calc(12.5px * var(--fs,1));color:var(--muted);line-height:1.45;}
.wcard .wc-act{display:flex;align-items:center;gap:5px;font-size:calc(12.5px * var(--fs,1));font-weight:600;color:var(--accent);margin-top:auto;}
.wcard .wc-act svg{width:14px;height:14px;}
.wcard.span2{grid-column:span 2;}
.dash-sectitle{font-size:calc(13px * var(--fs,1));font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:24px 0 12px;display:flex;align-items:center;gap:10px;}
.dash-sectitle .ln{flex:1;height:1px;background:var(--hairline);}
/* mini list inside cards */
.minilist{display:flex;flex-direction:column;}
.minilist .mli{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--hairline);font-size:calc(13px * var(--fs,1));}
.minilist .mli:last-child{border-bottom:none;}
.minilist .mli .ml-doc{font-weight:600;color:var(--accent);}
.minilist .mli .ml-main{flex:1;min-width:0;}
.minilist .mli .ml-main small{display:block;color:var(--muted);font-size:calc(11.5px * var(--fs,1));}
.minilist .mli .ml-amt{font-weight:600;font-variant-numeric:tabular-nums;}

/* ===== document screen (transaction) ===== */
.docwrap{flex:1;overflow:auto;min-height:0;}
.docpage{max-width:calc(var(--page-max) + 2 * var(--page-gutter));margin:0 auto;padding:12px var(--page-gutter) 96px;}
.dochead{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-l);padding:18px 20px;margin-bottom:16px;}
.dh-row1{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;}
.dh-row1 .dt{min-width:0;font-size:calc(23px * var(--fs,1));font-weight:600;letter-spacing:-.02em;display:flex;align-items:center;gap:10px;}
.dh-row1 h1.dt{margin:0;}
.fld .select-filter{margin-bottom:8px;}
.dh-row1 .dnum{font-family:var(--mono);font-size:calc(13px * var(--fs,1));color:var(--muted);}
.dh-row1 .dactions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;}
/* status flow stepper */
.stepper{display:flex;align-items:center;gap:0;margin:16px 0 2px;flex-wrap:wrap;}
.step{display:flex;align-items:center;gap:7px;font-size:calc(12px * var(--fs,1));color:var(--muted);font-weight:500;}
.step .sdot{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);display:grid;place-items:center;flex:none;background:var(--surface);}
.step .sdot svg{width:11px;height:11px;}
.step.done{color:var(--fg);}
.step.done .sdot{background:var(--ok);border-color:var(--ok);color:#fff;}
.step.current{color:var(--accent);font-weight:700;}
.step.current .sdot{border-color:var(--accent);background:var(--accent-tint);color:var(--accent);box-shadow:0 0 0 4px var(--accent-tint);}
.step.reject .sdot{background:var(--danger);border-color:var(--danger);color:#fff;}
.step.reject{color:var(--danger);}
.stepline{flex:1;min-width:18px;height:2px;background:var(--hairline);margin:0 8px;}
.stepline.done{background:var(--ok);}
/* Company onboarding has eight named stages, so it needs a wrapping layout of its own. */
.company-onboarding-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;list-style:none;margin:0 0 16px;padding:0;}
.company-onboarding-step{display:flex;align-items:flex-start;gap:9px;min-width:0;min-height:62px;padding:11px 12px;border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--surface-2);color:var(--muted);}
.company-onboarding-step-number{display:grid;place-items:center;flex:none;width:24px;height:24px;border:1px solid var(--border);border-radius:50%;background:var(--surface);font-size:calc(11px * var(--fs,1));font-weight:700;font-variant-numeric:tabular-nums;}
.company-onboarding-step-label{min-width:0;overflow-wrap:anywhere;font-size:calc(12.5px * var(--fs,1));font-weight:600;line-height:1.35;}
.company-onboarding-step.is-complete{color:var(--fg);}
.company-onboarding-step.is-complete .company-onboarding-step-number{border-color:var(--ok);background:var(--ok);color:#fff;}
.company-onboarding-step.is-current{border-color:var(--accent);background:var(--accent-tint);color:var(--fg);}
.company-onboarding-step.is-current .company-onboarding-step-number{border-color:var(--accent);background:var(--surface);color:var(--accent);}
@media(max-width:620px){
  .company-onboarding-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .company-onboarding-step{min-height:68px;padding:9px;}
}
@media(max-width:320px){.company-onboarding-steps{grid-template-columns:minmax(0,1fr);}}
/* First-run setup has six localized labels inside a compact card. Keep its
   progress rail on one line without changing the wider document steppers. */
#setupWizardView .stepper{width:100%;flex-wrap:nowrap;}
#setupWizardView .step{flex:0 0 auto;min-width:0;gap:4px;white-space:nowrap;font-size:calc(10.75px * var(--fs,1));}
#setupWizardView .step .sdot{width:16px;height:16px;border-width:1.5px;}
#setupWizardView .step.current .sdot{box-shadow:0 0 0 3px var(--accent-tint);}
#setupWizardView .stepline{flex:1 1 12px;min-width:6px;margin:0 4px;}
@media (max-width:560px){
  #setupWizardView .stepper{margin-top:14px;}
  #setupWizardView .step{font-size:0;gap:0;}
  #setupWizardView .step .sdot{width:20px;height:20px;}
  #setupWizardView .stepline{min-width:9px;margin:0 4px;}
}
/* doc meta grid */
.docmeta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--r-m);overflow:hidden;margin-top:16px;}
.docmeta .dm{background:var(--surface);padding:11px 14px;}
.docmeta .dm small{display:block;color:var(--muted);font-size:calc(10.5px * var(--fs,1));text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;}
.docmeta .dm b{font-size:calc(14px * var(--fs,1));font-weight:600;}
.docmeta .dm .partner{display:flex;align-items:center;gap:8px;}
.docmeta .dm .partner .pav{width:26px;height:26px;border-radius:7px;background:var(--accent-tint);color:var(--accent);display:grid;place-items:center;font-size:calc(11px * var(--fs,1));font-weight:700;flex:none;}

/* bill-to / ship-to addresses */
.docaddr{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-top:none;border-radius:0 0 var(--r-m) var(--r-m);overflow:hidden;}
.docaddr .addr-col{background:var(--surface);padding:14px 16px;}
.docaddr .addr-h{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:calc(10.5px * var(--fs,1));text-transform:uppercase;letter-spacing:.05em;font-weight:700;margin-bottom:8px;}
.docaddr .addr-h .ico{width:14px;height:14px;}
.docaddr .addr-name{font-size:calc(13.5px * var(--fs,1));font-weight:600;margin-bottom:3px;}
.docaddr .addr-lines{color:var(--fg);font-size:calc(12.5px * var(--fs,1));line-height:1.55;}
.docaddr .addr-meta{color:var(--muted);font-size:calc(12px * var(--fs,1));margin-top:6px;}
.docaddr .addr-meta a{color:var(--accent);}
@media(max-width:720px){.docaddr{grid-template-columns:1fr;}}
/* make the meta grid above join cleanly with the address block */
.dochead .docmeta:has(+ .docaddr){border-radius:var(--r-m) var(--r-m) 0 0;}
/* Every document table remains usable at phone widths. The direct parent is
   the scroll region so the table never forces page-level horizontal scroll. */
.docpage *:has(>table.lines),.payslip-page *:has(>table.lines){
  max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;outline:none;
}
.docpage *:has(>table.lines):focus-visible,.payslip-page *:has(>table.lines):focus-visible{
  box-shadow:inset 0 0 0 2px var(--accent);
}
.docpage *:has(>table.lines)>table.lines,.payslip-page *:has(>table.lines)>table.lines{min-width:640px;}

/* order notes & internal memo */
.docnotes{display:flex;flex-direction:column;gap:14px;}
.docnotes .note-block{border-left:2px solid var(--hairline);padding-left:12px;}
.docnotes .note-block.internal{border-left-color:var(--warn);}
.docnotes .note-h{display:flex;align-items:center;gap:7px;font-size:calc(12.5px * var(--fs,1));font-weight:600;margin-bottom:5px;}
.docnotes .note-h .ico{width:14px;height:14px;color:var(--muted);}
.docnotes .note-block.internal .note-h .ico{color:var(--warn);}
.docnotes .note-h .note-sub{font-weight:400;color:var(--faint);font-size:calc(11.5px * var(--fs,1));margin-left:2px;}
.docnotes .note-block p{margin:0;color:var(--muted);font-size:calc(13px * var(--fs,1));line-height:1.6;}

/* document layout = lines + side summary */
.doclayout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;}
.docmain{min-width:0;display:flex;flex-direction:column;gap:16px;}
.sales-order-detail{padding-top:12px;}
.sales-order-detail .dochead{padding:20px 22px;box-shadow:0 1px 2px rgba(0,0,0,.025);}
.sales-order-detail .doclayout{grid-template-columns:minmax(0,1fr) minmax(280px,320px);gap:18px;}
.sales-order-detail .stepper{display:grid;grid-template-columns:auto minmax(14px,1fr) auto minmax(14px,1fr) auto minmax(14px,1fr) auto minmax(14px,1fr) auto minmax(14px,1fr) auto;width:100%;}
.sales-order-detail .step{white-space:nowrap;}
.sales-order-detail .stepline{width:auto;min-width:0;margin:0 7px;}
.sales-order-detail .docmeta{grid-template-columns:minmax(190px,1.35fr) repeat(4,minmax(130px,1fr));}
.sales-order-detail .panel,.sales-order-detail .sumcard{box-shadow:0 1px 2px rgba(0,0,0,.025);}
.sales-order-lines-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;outline:none;}
.sales-order-lines-scroll:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);}
.sales-order-lines-scroll table.lines{min-width:690px;}
.work-order-progress{height:7px;margin-top:16px;overflow:hidden;border-radius:999px;background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--hairline);}
.work-order-progress>i{display:block;width:0;height:100%;border-radius:inherit;background:var(--accent);transition:width .24s var(--ease);}
.work-order-table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;outline:none;}
.work-order-table-scroll:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);}
.work-order-table-scroll table.lines{min-width:650px;}
.work-order-operation-hours{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap;}
.work-order-operation-hours small{display:none;color:var(--muted);font-size:calc(10.5px * var(--fs,1));font-weight:500;}
.work-order-operation-hours b{font-size:calc(13px * var(--fs,1));font-weight:500;}
.panel{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-l);overflow:hidden;}
.panel-h{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--hairline);}
.panel-h h3{margin:0;font-size:calc(14px * var(--fs,1));font-weight:600;}
.panel-h .ph-act{margin-left:auto;display:flex;gap:7px;}
.panel-body{padding:14px 16px;}
/* System Settings owns its facts and policy layout; document metadata has different spacing. */
.system-settings-layout .panel-h h2{margin:0;font-size:calc(14px * var(--fs,1));font-weight:600;}
.system-settings-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;padding:0;background:var(--hairline);}
.system-settings-fact{min-width:0;padding:14px 16px;background:var(--surface);overflow-wrap:anywhere;}
.system-settings-fact dt{margin:0 0 4px;color:var(--muted);font-size:calc(10.5px * var(--fs,1));font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
.system-settings-fact dd{margin:0;color:var(--fg);font-size:calc(14px * var(--fs,1));font-weight:600;line-height:1.4;}
.system-settings-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;}
.system-settings-policy-grid .fld{min-width:0;}
.system-settings-policy-actions{display:flex;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--hairline);}
.system-settings-policy-actions .btn{min-height:40px;}
@media (max-width:960px){.system-settings-facts{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:560px){
  .system-settings-facts,.system-settings-policy-grid{grid-template-columns:minmax(0,1fr);}
  .system-settings-fact{display:grid;grid-template-columns:minmax(0,112px) minmax(0,1fr);align-items:center;gap:10px;padding:12px 16px;}
  .system-settings-fact dt{margin:0;}
  .system-settings-policy-actions .btn{width:100%;min-height:44px;}
}
/* line item grid */
table.lines{width:100%;border-collapse:separate;border-spacing:0;font-size:calc(13px * var(--fs,1));}
table.lines th{text-align:right;font-size:calc(10.5px * var(--fs,1));font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--hairline);white-space:nowrap;background:var(--surface-2);}
table.lines th.l{text-align:left;}
table.lines th.lineno{width:34px;text-align:center;padding-left:14px;}
table.lines td{text-align:right;padding:9px 12px;border-bottom:1px solid var(--hairline);white-space:nowrap;vertical-align:top;}
table.lines td.l{text-align:left;white-space:normal;}
table.lines td.lineno{text-align:center;color:var(--faint);font-variant-numeric:tabular-nums;}
table.lines tr:last-child td{border-bottom:none;}
table.lines .li-name b{font-weight:600;}
table.lines .li-name small{display:block;color:var(--muted);font-size:calc(11.5px * var(--fs,1));}
table.lines tr.editing td{background:var(--accent-tint);}
.lineinput{width:100%;text-align:right;background:transparent;border:1px solid transparent;border-radius:7px;padding:5px 7px;font-size:calc(13px * var(--fs,1));color:var(--fg);outline:none;}
.lineinput:hover{border-color:var(--border);background:var(--surface-2);}
.lineinput:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-tint);}
.lineinput.l{text-align:left;}
.linefoot{padding:11px 16px;border-top:1px dashed var(--border);}

/* Shared transaction footer. Keep primary actions outside the document scroll
   surface so they remain visible, aligned and safely tappable on small screens. */
.responsive-actionbar{display:flex;align-items:center;gap:10px;flex:none;min-width:0;min-height:60px;box-sizing:border-box;padding:12px 24px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--hairline);background:var(--surface);}
.responsive-actionbar>.grow{flex:1;min-width:0;}

/* ===== canonical enquiry document workspace ===== */
.enquiry-workspace .dochead{padding-bottom:0;}
.enquiry-workspace .docwrap{overflow:visible;}
.enquiry-workspace .docpage{padding-bottom:32px;}
.enquiry-workspace .responsive-actionbar{justify-content:space-between;}
.enquiry-workspace .docmeta{grid-template-columns:minmax(210px,1.4fr) repeat(3,minmax(140px,1fr));}
.enquiry-tabs{margin:17px -2px 0;padding:0 2px;}
.enquiry-tabs .tab{min-height:42px;display:inline-flex;align-items:center;gap:2px;}
.enquiry-tab-panel{padding-top:16px;min-width:0;}
.enquiry-request-card .panel-body p{margin:0;font-size:calc(15px * var(--fs,1));line-height:1.65;}
.enquiry-overview-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--r-l);overflow:hidden;}
.enquiry-overview-strip>div{background:var(--surface);padding:14px 16px;min-width:0;}
.enquiry-overview-strip small,.enquiry-info-grid small{display:block;color:var(--muted);font-size:calc(10.5px * var(--fs,1));font-weight:650;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;}
.enquiry-overview-strip b,.enquiry-info-grid b{display:block;font-size:calc(13.5px * var(--fs,1));font-weight:600;overflow-wrap:anywhere;}
.enquiry-unsaved{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;background:var(--warn-tint);color:var(--warn);font-size:calc(10.5px * var(--fs,1));font-weight:650;}
.enquiry-unsaved[hidden]{display:none;}
.enquiry-items-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;outline:none;}
.enquiry-items-scroll:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);}
.enquiry-items-table{min-width:620px;}
.enquiry-items-table th:nth-child(2){min-width:190px;}
.enquiry-items-table th:nth-child(3),.enquiry-items-table th:nth-child(4){min-width:105px;}
.enquiry-items-table td{vertical-align:middle;}
.enquiry-items-table .enquiry-line-uom{display:block;margin:4px 7px 0;color:var(--muted);font-size:calc(10.5px * var(--fs,1));}
.enquiry-line-kind{display:flex;align-items:center;margin-bottom:6px;}
.enquiry-line-copy{display:grid;grid-template-columns:minmax(150px,1fr) 76px;gap:6px;margin-top:6px;}
.enquiry-line-uom-input{text-align:center!important;}
.enquiry-line-add-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.enquiry-line-add-actions .btn{white-space:nowrap;}
.enquiry-line-type-grid{display:grid;gap:10px;}
.enquiry-line-type-option{display:grid;grid-template-columns:38px minmax(0,1fr) 20px;align-items:center;gap:11px;width:100%;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--fg);text-align:left;cursor:pointer;}
.enquiry-line-type-option:hover,.enquiry-line-type-option:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);outline:none;}
.enquiry-line-type-option>.ico:first-child{width:22px;height:22px;color:var(--accent);justify-self:center;}
.enquiry-line-type-option>.ico:last-child{width:17px;height:17px;color:var(--muted);}
.enquiry-line-type-option span{display:flex;min-width:0;flex-direction:column;gap:3px;}
.enquiry-line-type-option b{font-size:calc(14px * var(--fs,1));}
.enquiry-line-type-option small{color:var(--muted);font-size:calc(11.5px * var(--fs,1));line-height:1.4;}
.enquiry-line-action{text-align:center!important;width:48px;}
.enquiry-line-action .iconbtn{width:40px;height:40px;}
.enquiry-items-empty{display:flex;min-height:260px;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 20px;}
.enquiry-items-empty>.ico{width:34px;height:34px;color:var(--faint);margin-bottom:10px;}
.enquiry-items-empty h3{margin:0 0 6px;font-size:calc(16px * var(--fs,1));}
.enquiry-items-empty p{max-width:460px;margin:0 0 18px;color:var(--muted);font-size:calc(13px * var(--fs,1));line-height:1.5;}
.enquiry-conversion-lines td.l>b,.enquiry-conversion-lines td.l>small{display:block;overflow-wrap:anywhere;}
.enquiry-conversion-lines td.l>small{margin-top:3px;color:var(--muted);font-size:calc(11.5px * var(--fs,1));}
.enquiry-document-info{max-width:980px;}
.enquiry-document-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;border-bottom:1px solid var(--hairline);}
.enquiry-document-fields .span2{grid-column:1/-1;}
.enquiry-document-note{display:flex;gap:8px;align-items:flex-start;margin:14px 16px;padding:11px 12px;border-radius:10px;background:var(--accent-tint);color:var(--accent);font-size:calc(12px * var(--fs,1));line-height:1.45;}
.enquiry-document-note .ico{width:16px;height:16px;flex:none;margin-top:1px;}
.enquiry-document-info .panel-h{flex-wrap:wrap;}
.enquiry-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--hairline);}
.enquiry-info-grid>div{min-height:78px;background:var(--surface);padding:14px 16px;}

@media (max-width:980px){
  .enquiry-workspace .docmeta{grid-template-columns:repeat(2,minmax(0,1fr));}
  .enquiry-overview-strip{grid-template-columns:repeat(2,minmax(0,1fr));}
  .enquiry-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
/* The items editor needs the full content width before the general document
   breakpoint. This keeps non-stock descriptions, amounts and row actions in
   one visible editing surface on narrow desktop/tablet layouts. */
@media (max-width:1100px){
  .enquiry-items-layout{grid-template-columns:minmax(0,1fr);}
  .enquiry-items-layout .summary{position:static;}
}
@media (max-width:700px){
  .enquiry-workspace .docpage{padding-left:14px;padding-right:14px;}
  .enquiry-workspace .dochead{padding:17px 16px 0;}
  .enquiry-workspace .dh-row1{gap:12px;}
  .enquiry-workspace .dt{align-items:flex-start;flex-wrap:wrap;font-size:calc(22px * var(--fs,1));}
  .enquiry-workspace .dnum{flex-basis:100%;margin-left:30px;}
  .enquiry-workspace .docmeta{grid-template-columns:1fr 1fr;}
  .enquiry-workspace .docmeta .dm{padding:10px 11px;}
  .enquiry-tabs{margin-left:-16px;margin-right:-16px;padding-left:11px;padding-right:11px;scroll-padding-inline:11px;}
  .enquiry-tabs .tab{min-height:46px;padding:10px 11px;}
  .enquiry-tab-panel{padding-top:12px;}
  .enquiry-overview-strip{grid-template-columns:1fr 1fr;}
  .enquiry-overview-strip>div{padding:12px;}
  .enquiry-info-grid{grid-template-columns:1fr 1fr;}
  .enquiry-info-grid>div{min-height:72px;padding:12px;}
  .enquiry-document-fields{grid-template-columns:1fr;padding:12px;gap:12px;}
  .enquiry-document-fields .span2{grid-column:auto;}
  .enquiry-document-note{margin:12px;padding:10px 11px;}
  .enquiry-document-info .panel-h{padding:12px;}
  .enquiry-items-panel .panel-h{padding:12px;flex-wrap:wrap;}
  .enquiry-items-panel .panel-h .enquiry-line-add-actions{flex:1 0 100%;order:3;}
  .enquiry-items-panel .panel-h .enquiry-line-add-actions .btn{flex:1;justify-content:center;}
  .enquiry-items-scroll{overflow:visible;}
  .enquiry-workspace .enquiry-items-table{display:block;width:100%;max-width:100%;min-width:0!important;table-layout:fixed;padding:10px;background:var(--surface-2);}
  .enquiry-items-table thead{display:none;}
  .enquiry-items-table tbody{display:flex;flex-direction:column;gap:10px;}
  .enquiry-items-table tr{display:grid;grid-template-columns:1fr 1fr;gap:11px 10px;padding:12px;border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--surface);}
  .enquiry-items-table td{display:flex;flex-direction:column;align-items:stretch;text-align:left!important;padding:0;border:0;white-space:normal;}
  .enquiry-items-table td::before{content:attr(data-label);display:block;margin-bottom:5px;color:var(--muted);font-size:calc(9.5px * var(--fs,1));font-weight:650;text-transform:uppercase;letter-spacing:.04em;}
  .enquiry-items-table td.lineno{display:none;}
  .enquiry-items-table td:nth-child(2){grid-column:1/-1;}
  .enquiry-items-table td:nth-child(5){justify-content:flex-end;}
  .enquiry-items-table .enquiry-line-action{grid-column:1/-1;align-items:flex-end;}
  .enquiry-items-table .lineinput{min-height:44px;padding:9px 10px;border-color:var(--border);background:var(--surface-2);text-align:left;}
  .enquiry-line-copy{grid-template-columns:minmax(0,1fr) 72px;}
  .enquiry-items-table .enquiry-line-uom{margin:4px 0 0;}
  .enquiry-line-action .iconbtn{border:1px solid var(--hairline);}
  .enquiry-items-empty{min-height:230px;}
  .enquiry-conversion-lines .tablewrap{overflow:visible;}
  .enquiry-workspace .enquiry-conversion-lines table.lines{display:block;width:100%;max-width:100%;min-width:0!important;table-layout:fixed;padding:10px;background:var(--surface-2);}
  .enquiry-conversion-lines table.lines thead{display:none;}
  .enquiry-conversion-lines table.lines tbody{display:flex;flex-direction:column;gap:10px;}
  .enquiry-conversion-lines table.lines tr{display:grid;grid-template-columns:1fr 1fr 72px;gap:10px;padding:12px;border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--surface);}
  .enquiry-conversion-lines table.lines td{display:flex;min-width:0;flex-direction:column;align-items:stretch;padding:0;border:0;text-align:left;white-space:normal;}
  .enquiry-conversion-lines table.lines td::before{content:attr(data-label);display:block;margin-bottom:5px;color:var(--muted);font-size:calc(9.5px * var(--fs,1));font-weight:650;text-transform:uppercase;letter-spacing:.04em;}
  .enquiry-conversion-lines table.lines td.lineno{display:none;}
  .enquiry-conversion-lines table.lines td:nth-child(2){grid-column:1/-1;}
  .enquiry-conversion-lines table.lines .lineinput{min-height:44px;padding:9px 10px;text-align:left;}
}
@media (max-width:430px){
  .enquiry-workspace .docmeta{grid-template-columns:1fr;}
  .enquiry-overview-strip,.enquiry-info-grid{grid-template-columns:1fr;}
}
/* summary side panel */
.summary{position:sticky;top:8px;display:flex;flex-direction:column;gap:14px;}
.sumcard{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-l);padding:16px;}
.sumrow{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:calc(13.5px * var(--fs,1));}
.sumrow .sk2{color:var(--muted);}
.sumrow .sv{font-weight:500;font-variant-numeric:tabular-nums;}
.sumrow.total{border-top:1px solid var(--border);margin-top:6px;padding-top:12px;}
.sumrow.total .sk2{font-weight:700;color:var(--fg);font-size:calc(14px * var(--fs,1));}
.sumrow.total .sv{font-weight:700;font-size:calc(19px * var(--fs,1));letter-spacing:-.01em;}
.sumrow.disc .sv{color:var(--danger);}

/* ===== versioned master-data detail/editor SSOT ===== */
.master-detail-editor{padding:2px 24px 86px;min-width:0;}
.master-detail-editor-overview{display:flex;align-items:flex-start;gap:22px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-l);padding:16px 18px;margin-bottom:16px;}
.master-detail-editor-subject{display:flex;align-items:center;gap:14px;min-width:220px;flex:1;}
.master-detail-editor-avatar{flex:none;}
.master-detail-editor-identity{min-width:0;flex:1;}
.master-detail-editor-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0;}
.master-detail-editor-identity>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.master-detail-editor-identity h2{font-size:calc(18px * var(--fs,1));font-weight:650;letter-spacing:-.01em;margin:0;}
.master-detail-editor-code{font-family:var(--mono);font-size:calc(12px * var(--fs,1));color:var(--muted);}
.master-detail-editor-identity p{font-size:calc(12.5px * var(--fs,1));color:var(--muted);margin:5px 0 0;}
.master-detail-editor-facts{display:grid;grid-template-columns:repeat(3,minmax(112px,1fr));gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--r-m);overflow:hidden;}
.master-detail-editor-facts.c4{grid-template-columns:repeat(4,minmax(112px,1fr));}
.master-detail-editor-fact{background:var(--surface);padding:9px 12px;min-width:0;}
.master-detail-editor-fact small{display:block;color:var(--muted);font-size:calc(10px * var(--fs,1));font-weight:650;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;}
.master-detail-editor-fact b{display:block;font-size:calc(13px * var(--fs,1));font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.master-detail-editor-error:not([hidden]){display:block;background:var(--danger-tint);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 24%,transparent);border-radius:var(--r-m);padding:10px 12px;margin-bottom:14px;font-size:calc(12.5px * var(--fs,1));}
.master-detail-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;min-width:0;}
.master-detail-editor-main{display:flex;flex-direction:column;gap:16px;min-width:0;}
.master-detail-editor-context{position:sticky;top:8px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-l);padding:16px;min-width:0;}
.master-detail-editor-table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.master-detail-editor-table-scroll table.lines{min-width:620px;}
.master-detail-editor-inline-empty{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:calc(12.5px * var(--fs,1));padding:18px 16px;}
.master-detail-editor-inline-empty .ico{width:18px;height:18px;color:var(--faint);}
.master-detail-editor-empty{margin:0;min-height:220px;}
.master-detail-editor-actions{margin-top:16px;}
.employee-contact-facts{grid-template-columns:repeat(2,minmax(0,1fr));margin:14px 16px;}
.employee-contact-facts .master-detail-editor-fact b{overflow-wrap:anywhere;}
.employee-profile-edit-description{margin:0 0 16px;line-height:1.5;}
.employee-profile-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;}
.employee-edit-field{min-width:0;}
.employee-edit-field input[aria-invalid="true"],.employee-edit-field select[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 12%,transparent);}
.employee-edit-field .field-error{display:block;margin-top:5px;color:var(--danger);font-size:calc(11.5px * var(--fs,1));line-height:1.35;}
.master-data-editor-body{min-width:0;}
.master-data-editor-description{margin:0 0 16px;line-height:1.5;}
.master-data-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;min-width:0;}
.master-data-editor-field{min-width:0;}
.master-data-editor-field-span-2{grid-column:1/-1;}
.master-data-editor-field input[aria-invalid="true"],.master-data-editor-field select[aria-invalid="true"],.master-data-editor-field textarea[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 12%,transparent);}
.master-data-editor-field-error{display:block;margin-top:5px;color:var(--danger);font-size:calc(11.5px * var(--fs,1));line-height:1.35;}
.master-data-editor-help{display:block;margin-top:5px;color:var(--muted);font-size:calc(11px * var(--fs,1));line-height:1.35;}
.master-data-editor-note{display:flex;align-items:flex-start;gap:8px;margin-top:16px;line-height:1.45;}
.master-data-editor-note .ico{flex:none;width:17px;height:17px;margin-top:1px;}
.master-data-editor-note span{min-width:0;}
.master-data-editor-error:not([hidden]){display:block;margin-top:14px;}

/* Standard three-section editor shell for master-data maintenance.
 * The modal itself owns the viewport height; only the content section scrolls.
 * This keeps the title/close action and save bar reachable on touch devices. */
.modal.master-data-editor-modal{
  box-sizing:border-box;
}
.modal.master-data-editor-modal .modal-head{
  min-height:64px;
  box-sizing:border-box;
  padding:calc(14px + env(safe-area-inset-top,0px)) 20px 14px;
  border-bottom:1px solid var(--hairline);
}
.modal.master-data-editor-modal .modal-body{
  padding:18px 20px 22px;
}
.modal.master-data-editor-modal .master-data-editor-body{min-height:0;}
.modal.master-data-editor-modal .modal-foot{
  min-height:68px;
  box-sizing:border-box;
  position:static;
  align-items:center;
  padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));
  box-shadow:0 -4px 16px color-mix(in srgb,var(--fg) 5%,transparent);
}
.modal.master-data-editor-modal .modal-foot .btn{
  min-height:44px;
  min-width:116px;
}

.employee-history-list{display:flex;flex-direction:column;}
.employee-history-entry{padding:13px 16px;border-top:1px solid var(--hairline);}
.employee-history-entry:first-child{border-top:0;}
.employee-history-entry-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.employee-history-entry-head b{font-size:calc(13px * var(--fs,1));}
.employee-history-entry-head span,.employee-history-entry>small{color:var(--muted);font-size:calc(11.5px * var(--fs,1));}
.employee-history-entry>small{display:block;margin-top:4px;}
.employee-history-changes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px;margin-top:10px;padding-top:9px;border-top:1px dashed var(--hairline);}
.employee-history-change{display:flex;flex-direction:column;gap:2px;min-width:0;}
.employee-history-change span{color:var(--muted);font-size:calc(11px * var(--fs,1));}
.employee-history-change small{overflow-wrap:anywhere;font-size:calc(12px * var(--fs,1));}
.employee-profile-edit-note{display:flex;align-items:flex-start;gap:8px;margin-top:16px;line-height:1.45;}
.employee-profile-edit-note .ico{flex:none;width:17px;height:17px;margin-top:1px;}
.employee-profile-edit-note span{min-width:0;}
.asset-detail-policy-facts{grid-template-columns:repeat(3,minmax(0,1fr));margin:14px 16px;}
.asset-detail-history{min-width:0;overflow:hidden;}
.asset-detail-history .panel-h small{color:var(--muted);}
.asset-detail-history-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.asset-detail-history-scroll .dt{min-width:600px;}
.asset-detail-book-values .sumrow:nth-child(2) .sv{color:var(--muted);}
.asset-detail-progress{margin-top:14px;}
.asset-detail-progress small{display:block;line-height:1.4;}

/* ===== actionable lifecycle case detail SSOT ===== */
.case-detail{padding:2px 24px 86px;min-width:0;}
.case-detail-overview{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-l);padding:16px 18px;margin-bottom:16px;}
.case-detail-overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;min-width:0;}
.case-detail-identity{min-width:0;flex:1;}
.case-detail-identity>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.case-detail-identity h2{font-size:calc(18px * var(--fs,1));font-weight:650;letter-spacing:-.01em;margin:0;}
.case-detail-code{font-family:var(--mono);font-size:calc(12px * var(--fs,1));color:var(--muted);}
.case-detail-identity p{font-size:calc(12.5px * var(--fs,1));color:var(--muted);margin:5px 0 0;overflow-wrap:anywhere;}
.case-detail-overview-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;min-width:0;}
.case-detail-statuses{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;}
.case-detail-lifecycle{display:flex;list-style:none;margin:16px 0 0;padding:0;min-width:0;}
.case-detail-lifecycle li{position:relative;display:flex;flex:1 1 0;min-width:0;flex-direction:column;align-items:center;gap:6px;text-align:center;color:var(--muted);font-size:calc(11.5px * var(--fs,1));font-weight:550;line-height:1.25;}
.case-detail-lifecycle li:not(:last-child)::after{content:"";position:absolute;z-index:0;top:9px;left:calc(50% + 15px);right:calc(-50% + 15px);height:2px;background:var(--hairline);}
.case-detail-lifecycle li.done{color:var(--fg);}
.case-detail-lifecycle li.done::after{background:var(--ok);}
.case-detail-lifecycle li.current{color:var(--accent);font-weight:700;}
.case-detail-lifecycle-marker{position:relative;z-index:1;display:grid;place-items:center;width:20px;height:20px;flex:none;border:2px solid var(--border);border-radius:50%;background:var(--surface);}
.case-detail-lifecycle-marker .ico{width:12px;height:12px;}
.case-detail-lifecycle li.done .case-detail-lifecycle-marker{border-color:var(--ok);background:var(--ok);color:#fff;}
.case-detail-lifecycle li.current .case-detail-lifecycle-marker{border-color:var(--accent);background:var(--accent-tint);color:var(--accent);box-shadow:0 0 0 4px var(--accent-tint);}
.case-detail-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--r-m);overflow:hidden;margin-top:14px;}
.case-detail-fact{background:var(--surface);padding:10px 12px;min-width:0;}
.case-detail-fact small{display:block;color:var(--muted);font-size:calc(10px * var(--fs,1));font-weight:650;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;}
.case-detail-fact b{display:block;font-size:calc(13px * var(--fs,1));font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.case-detail-error:not([hidden]){display:flex;align-items:center;gap:10px;background:var(--danger-tint);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 24%,transparent);border-radius:var(--r-m);padding:10px 12px;margin-bottom:14px;font-size:calc(12.5px * var(--fs,1));overflow-wrap:anywhere;}
.case-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;min-width:0;}
.case-detail-main{display:flex;flex-direction:column;gap:16px;min-width:0;}
.case-detail-context{position:sticky;top:8px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-l);padding:16px;min-width:0;}
.case-detail-empty{margin:0;min-height:260px;}
.case-detail-inline-empty{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:calc(12.5px * var(--fs,1));padding:18px 16px;}
.case-detail-inline-empty .ico{width:18px;height:18px;color:var(--faint);}
.case-detail-panel-count{margin-left:auto;color:var(--muted);font-size:calc(12px * var(--fs,1));font-variant-numeric:tabular-nums;}
.case-detail-actions{display:flex;align-items:center;gap:10px;position:sticky;bottom:0;z-index:8;margin-top:16px;padding:11px 14px;border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--material);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:var(--shadow);}
.case-detail-action-note{font-size:calc(12px * var(--fs,1));color:var(--muted);min-width:0;}
.po-approval-context-section+.po-approval-context-section{border-top:1px solid var(--hairline);margin-top:16px;padding-top:16px;}
.po-approval-context-section>.sectitle{margin-top:0;}
.service-order-diagnosis .risk+.risk{margin-top:10px;}
.service-order-diagnosis .case-detail-inline-empty{padding:12px 0 0;}
.service-order-context-section+.service-order-context-section{border-top:1px solid var(--hairline);margin-top:16px;padding-top:16px;}
.service-order-context-section>.sectitle{margin-top:0;}
.service-order-context-empty{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:calc(12.5px * var(--fs,1));line-height:1.45;}
.service-order-context-empty small{color:var(--muted);}
.service-order-sla-facts{margin-top:10px;}

/* ===== immutable financial ledger detail SSOT ===== */
.ledger-detail{padding:2px 24px 86px;min-width:0;}
.ledger-detail-overview{display:flex;align-items:center;gap:18px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-l);padding:14px 16px;margin-bottom:14px;min-width:0;}
.ledger-detail-account{display:flex;flex-direction:column;gap:2px;min-width:180px;max-width:280px;}
.ledger-detail-account b{font-family:var(--mono);font-size:calc(12px * var(--fs,1));color:var(--accent);}
.ledger-detail-account span{font-size:calc(15px * var(--fs,1));font-weight:650;overflow-wrap:anywhere;}
.ledger-detail-account small{font-size:calc(11.5px * var(--fs,1));color:var(--muted);overflow-wrap:anywhere;}
.ledger-detail-overview .so-kpibar{padding:0;flex:1;justify-content:flex-end;}
.ledger-detail-overview .so-kpi{flex:1;max-width:190px;}
.ledger-detail-error:not([hidden]){display:flex;align-items:center;gap:12px;background:var(--danger-tint);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 24%,transparent);border-radius:var(--r-m);padding:11px 12px;margin-bottom:14px;}
.ledger-detail-error>div{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.ledger-detail-error span{font-size:calc(12px * var(--fs,1));overflow-wrap:anywhere;}
.ledger-detail-toolbar{padding:8px 0 12px;border:0;background:transparent;min-width:0;}
.ledger-detail-table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--hairline);border-radius:var(--r-l);background:var(--surface);}
.ledger-detail-table{width:100%;min-width:720px;border-collapse:collapse;font-size:calc(12.5px * var(--fs,1));font-variant-numeric:tabular-nums;}
.ledger-detail-table th,.ledger-detail-table td{padding:10px 12px;border-bottom:1px solid var(--hairline);vertical-align:middle;}
.ledger-detail-table th{font-size:calc(10.5px * var(--fs,1));font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-2);white-space:nowrap;}
.ledger-detail-table th.l,.ledger-detail-table td.l{text-align:left;}
.ledger-detail-table th.r,.ledger-detail-table td.r{text-align:right;}
.ledger-detail-table th.c,.ledger-detail-table td.c{text-align:center;}
.ledger-detail-table tbody tr[data-ledger-row]{cursor:pointer;transition:background .12s;}
.ledger-detail-table tbody tr[data-ledger-row]:hover,.ledger-detail-table tbody tr[data-ledger-row]:focus-visible{background:var(--accent-tint);outline:none;}
.ledger-detail-table tbody tr[data-ledger-row] td:nth-child(2) b{display:block;font-weight:650;}
.ledger-detail-table tbody tr[data-ledger-row] td:nth-child(2) small{display:block;color:var(--muted);font-size:calc(11px * var(--fs,1));margin-top:2px;}
.ledger-detail-opening{background:var(--surface-2);color:var(--muted);font-weight:600;}
.ledger-detail-footer{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,minmax(120px,180px));align-items:center;gap:12px;background:var(--surface-2);border:1px solid var(--hairline);border-top:0;border-radius:0 0 var(--r-l) var(--r-l);padding:10px 12px;font-size:calc(12px * var(--fs,1));}
.ledger-detail-footer>span{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;min-width:0;}
.ledger-detail-footer small{color:var(--muted);font-size:calc(10.5px * var(--fs,1));text-transform:uppercase;letter-spacing:.04em;}
.ledger-detail-footer strong{white-space:nowrap;}
.ledger-detail-table-scroll:has(+.ledger-detail-footer){border-radius:var(--r-l) var(--r-l) 0 0;}
.ledger-detail-empty{min-height:190px;margin:0;border:0;border-radius:0;}

/* ===== immutable accounting posting detail SSOT ===== */
.posting-detail{padding:2px 24px 86px;min-width:0;}
.posting-detail-overview{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-l);padding:15px 16px;margin-bottom:16px;min-width:0;}
.posting-detail-overview[hidden],.posting-detail-context[hidden],.posting-detail-actions[hidden]{display:none;}
.posting-detail-identity{display:flex;align-items:baseline;gap:9px;min-width:0;}
.posting-detail-identity>span{font-size:calc(16px * var(--fs,1));font-weight:700;}
.posting-detail-identity>b{font-family:var(--mono);font-size:calc(12px * var(--fs,1));color:var(--accent);}
.posting-detail-identity>small{color:var(--muted);font-size:calc(11.5px * var(--fs,1));overflow-wrap:anywhere;}
.posting-detail-facts{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:1px;width:100%;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--r-m);overflow:hidden;}
.posting-detail-fact{display:flex;flex-direction:column;gap:3px;background:var(--surface);padding:10px 12px;min-width:0;}
.posting-detail-fact small,.posting-context-card>small{color:var(--muted);font-size:calc(10px * var(--fs,1));font-weight:650;text-transform:uppercase;letter-spacing:.04em;}
.posting-detail-fact b{font-size:calc(13px * var(--fs,1));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.posting-detail-error:not([hidden]){display:flex;align-items:center;gap:12px;background:var(--danger-tint);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 24%,transparent);border-radius:var(--r-m);padding:11px 12px;margin-bottom:14px;}
.posting-detail-error>div{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.posting-detail-error span{font-size:calc(12px * var(--fs,1));overflow-wrap:anywhere;}
.posting-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;min-width:0;}
.posting-detail-main{display:flex;flex-direction:column;gap:16px;min-width:0;}
.posting-detail-context{display:flex;flex-direction:column;gap:14px;position:sticky;top:8px;min-width:0;}
.posting-detail-card,.posting-context-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-l);min-width:0;overflow:hidden;}
.posting-detail-card-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--hairline);}
.posting-detail-card-head h3{font-size:calc(13px * var(--fs,1));margin:0;}
.posting-lines-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.posting-lines-table{width:100%;min-width:680px;border-collapse:collapse;font-size:calc(12.5px * var(--fs,1));font-variant-numeric:tabular-nums;}
.posting-lines-table th,.posting-lines-table td{padding:10px 12px;border-bottom:1px solid var(--hairline);vertical-align:middle;}
.posting-lines-table th{background:var(--surface-2);color:var(--muted);font-size:calc(10.5px * var(--fs,1));font-weight:650;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
.posting-lines-table .l{text-align:left}.posting-lines-table .r{text-align:right}.posting-lines-table .c{text-align:center}
.posting-lines-table td small{display:block;color:var(--muted);font-size:calc(11px * var(--fs,1));margin-top:2px;}
.posting-lines-footer{display:flex;align-items:center;justify-content:flex-end;gap:22px;flex-wrap:wrap;background:var(--surface-2);padding:11px 14px;font-size:calc(12px * var(--fs,1));font-weight:650;}
.posting-lines-footer>small{color:var(--muted);font-weight:600;}
.posting-audit-body{padding:14px 16px;}
.posting-inline-empty{display:flex;align-items:center;justify-content:center;gap:9px;color:var(--muted);padding:24px 14px;}
.posting-inline-empty .ico{width:18px;height:18px;color:var(--faint);}
.posting-context-card{padding:15px;}
.posting-context-card>small{display:block;margin-bottom:10px;}
.posting-balance-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;font-size:calc(12.5px * var(--fs,1));}
.posting-balance-row+.posting-balance-row{border-top:1px solid var(--hairline);}
.posting-balance-row.total{margin-top:4px;padding-top:12px;font-weight:700;font-size:calc(14px * var(--fs,1));}
.posting-context-card .indicator{margin-top:10px;}
.posting-context-card p{font-size:calc(12.5px * var(--fs,1));color:var(--muted);margin:0;line-height:1.5;}
.posting-context-note{display:flex;align-items:flex-start;gap:9px;}
.posting-context-note .ico{width:17px;height:17px;flex:none;color:var(--muted);margin-top:1px;}
.posting-detail.is-empty{padding-bottom:24px;}
.posting-detail.is-empty .posting-detail-grid{display:block;}
.posting-detail-empty{margin:0;min-height:360px;padding:68px 30px;}
.posting-detail-actions{display:flex;align-items:center;gap:10px;position:sticky;bottom:0;z-index:8;margin-top:16px;padding:11px 14px;border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--material);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:var(--shadow);}

/* indicators: credit limit, stock, balance */
.indicator{display:flex;flex-direction:column;gap:7px;padding:12px 14px;border-radius:var(--r-m);border:1px solid var(--hairline);background:var(--surface-2);font-size:calc(12.5px * var(--fs,1));}
.indicator .ind-top{display:flex;align-items:center;gap:7px;font-weight:600;}
.indicator .ind-top .ind-r{margin-left:auto;font-variant-numeric:tabular-nums;}
.indicator .track{height:7px;border-radius:5px;background:var(--hairline);overflow:hidden;}
.indicator .track i{display:block;height:100%;border-radius:5px;}
.indicator small{color:var(--muted);}
.indicator.ok{border-color:color-mix(in srgb,var(--ok) 30%,transparent);}
.indicator.ok .track i{background:var(--ok);}
.indicator.warn{border-color:color-mix(in srgb,var(--warn) 32%,transparent);background:var(--warn-tint);}
.indicator.warn .track i{background:var(--warn);}
.indicator.danger{border-color:color-mix(in srgb,var(--danger) 32%,transparent);background:var(--danger-tint);}
.indicator.danger .track i{background:var(--danger);}

/* ===== approval screen ===== */
.appr-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start;}
.risk{display:flex;gap:10px;padding:11px 13px;border-radius:var(--r-m);font-size:calc(13px * var(--fs,1));margin-bottom:9px;align-items:flex-start;}
.risk svg{width:17px;height:17px;flex:none;margin-top:1px;}
.risk.warn{background:var(--warn-tint);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);}
.risk.warn svg{color:var(--warn);}
.risk.danger{background:var(--danger-tint);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);}
.risk.danger svg{color:var(--danger);}
.risk.ok{background:var(--ok-tint);border:1px solid color-mix(in srgb,var(--ok) 28%,transparent);}
.risk.ok svg{color:var(--ok);}
.risk b{font-weight:600;}.risk small{display:block;color:var(--muted);margin-top:2px;}
.approvebar{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--hairline);padding:14px 16px;display:flex;gap:10px;border-radius:0 0 var(--r-l) var(--r-l);}
.approvebar .btn{flex:1;justify-content:center;}

/* ===== report screen ===== */
.report{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:0;flex:1;overflow:hidden;}
.report-params{border-right:1px solid var(--hairline);background:var(--surface-2);overflow-y:auto;padding:18px 18px 30px;display:flex;flex-direction:column;gap:14px;}
.report-params h3{margin:0 0 2px;font-size:calc(13px * var(--fs,1));font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);}
.report-result{display:flex;flex-direction:column;min-width:0;overflow:hidden;}
.report-toolbar{display:flex;align-items:center;gap:10px;padding:12px 22px;border-bottom:1px solid var(--hairline);flex-wrap:wrap;flex:none;}
.report-meta{font-size:calc(12px * var(--fs,1));color:var(--muted);}
.drill{cursor:pointer;}
.dt-r.drill:hover{background:var(--accent-tint);}
.dt-r.drill .dt-c b{font-weight:600;}
.dt-r.drillrow{background:var(--surface-2);cursor:pointer;}
.dt-r.drillrow:hover{background:var(--surface-3);}
.dt-r.grandtotal{font-weight:700;background:var(--surface-3);border-top:2px solid var(--border);}
.drill .twirl{display:inline-block;transition:transform .15s;color:var(--muted);margin-right:6px;}
.drill.open .twirl{transform:rotate(90deg);color:var(--accent);}
.indent1{padding-left:34px !important;}
.indent2{padding-left:54px !important;}

/* ===== permission matrix (div grid) ===== */
.permgrid{min-width:760px;font-size:calc(13px * var(--fs,1));}
.pg-r{display:grid;grid-template-columns:var(--ptpl);align-items:center;border-bottom:1px solid var(--hairline);}
.pg-head{background:var(--surface);border-bottom:1px solid var(--border);}
.pg-head .pg-c{font-size:calc(11px * var(--fs,1));font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;}
.pg-c{padding:8px 10px;text-align:center;}
.pg-c.modcell{text-align:left;font-weight:500;color:var(--fg);}
.pg-c.modcell.sub{padding-left:24px;}
.pg-grp{font-weight:700;background:var(--surface-3);padding:8px 14px;border-bottom:1px solid var(--hairline);font-size:calc(12px * var(--fs,1));}
.pg-r:hover{background:var(--surface-2);}
.permcycle{cursor:pointer;}

/* ===== operational workspace SSOT / warehouse picking ===== */
.operational-workspace{padding:2px 24px 76px;min-width:0;}
.operational-workspace-progress{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);padding:13px 16px;margin-bottom:14px;}
.operational-workspace-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:calc(12px * var(--fs,1));color:var(--muted);}
.operational-workspace-progress-head b{font-size:calc(17px * var(--fs,1));color:var(--fg);}
.operational-workspace-progress-track{height:8px;border-radius:999px;background:var(--hairline);overflow:hidden;margin:9px 0 7px;}
.operational-workspace-progress-track i{display:block;height:100%;border-radius:inherit;background:var(--ok);transition:width .3s var(--ease);}
.operational-workspace-progress small{display:block;color:var(--muted);font-size:calc(11.5px * var(--fs,1));}
.operational-workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start;min-width:0;}
.operational-workspace-main,.operational-workspace-context{min-width:0;border:1px solid var(--hairline);border-radius:var(--r-l);background:var(--surface);}
.operational-workspace-main{padding:16px;}
.operational-workspace-context{padding:18px;position:sticky;top:12px;}
.operational-workspace-context-title{margin-top:0;}
.operational-workspace-context-note{font-size:calc(12.5px * var(--fs,1));color:var(--muted);line-height:1.5;margin:0 0 12px;}
.operational-workspace-data-limit{font-size:calc(11px * var(--fs,1));color:var(--faint);line-height:1.45;margin:14px 0 0;}
.operational-workspace-empty{min-height:300px;padding:38px 24px;}
.operational-workspace-error{display:flex;align-items:center;gap:14px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--hairline));background:var(--danger-tint);color:var(--danger);border-radius:var(--r-m);padding:11px 12px;margin-bottom:14px;}
.operational-workspace-error[hidden]{display:none;}
.operational-workspace-error>div{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;font-size:calc(12px * var(--fs,1));}
.operational-workspace-error span{overflow-wrap:anywhere;}
.operational-workspace-actions{display:flex;align-items:center;gap:10px;position:sticky;bottom:0;z-index:8;margin-top:14px;padding:11px 14px;border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--material);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:var(--shadow);}
.operational-workspace-action-note{font-size:calc(12px * var(--fs,1));color:var(--muted);min-width:0;}
.pickrow{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--hairline);border-radius:var(--r-m);margin-bottom:10px;background:var(--surface);transition:all .15s;}
.pickrow.done{opacity:.6;background:var(--surface-2);}
.pickrow.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);}
.pick-check{width:30px;height:30px;border-radius:9px;border:2px solid var(--border);display:grid;place-items:center;flex:none;color:transparent;transition:all .12s;}
.pickrow.done .pick-check{background:var(--ok);border-color:var(--ok);color:#fff;}
.pick-check svg{width:17px;height:17px;}
.pick-bin{font-family:var(--mono);font-size:calc(15px * var(--fs,1));font-weight:600;background:var(--surface-3);border-radius:8px;padding:6px 11px;flex:none;letter-spacing:.02em;}
.pick-item{flex:1;min-width:0;}
.pick-item b{font-size:calc(14px * var(--fs,1));display:block;}
.pick-item small{color:var(--muted);font-size:calc(12px * var(--fs,1));}
.pick-qty{text-align:right;flex:none;}
.pick-qty b{font-size:calc(18px * var(--fs,1));font-variant-numeric:tabular-nums;}
.pick-qty small{display:block;color:var(--muted);font-size:calc(11px * var(--fs,1));}
.pick-actions{display:flex;gap:2px;flex:none;}
.pick-actions .btn{padding:6px;}
.scanbtn{width:100%;display:flex;align-items:center;justify-content:center;gap:9px;padding:16px;border-radius:var(--r-m);border:2px dashed var(--border);color:var(--muted);font-weight:600;font-size:calc(14px * var(--fs,1));margin-bottom:14px;}
.scanbtn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-tint);}
.scanbtn svg{width:20px;height:20px;}

/* ===== manufacturing: routing / operations rows ===== */
.oprow{display:flex;align-items:center;gap:13px;padding:11px 16px;border-bottom:1px solid var(--hairline);}
.oprow:last-child{border-bottom:none;}
.opseq{width:30px;height:30px;border-radius:8px;background:var(--surface-3);color:var(--muted);font-family:var(--mono);font-size:calc(12.5px * var(--fs,1));font-weight:700;display:grid;place-items:center;flex:none;font-variant-numeric:tabular-nums;}
.opmain{flex:1;min-width:0;}
.opmain b{font-size:calc(13.5px * var(--fs,1));display:block;font-weight:600;}
.opmain small{color:var(--muted);font-size:calc(12px * var(--fs,1));}
table.lines tfoot td{border-top:2px solid var(--border);border-bottom:none;padding-top:11px;}

/* ===== CRM: pipeline kanban ===== */
.kanban{display:flex;gap:13px;overflow-x:auto;padding:4px 24px 24px;align-items:flex-start;}
.kanban::-webkit-scrollbar{height:8px;}
.kcol{flex:1;min-width:248px;max-width:340px;display:flex;flex-direction:column;gap:10px;}
.kcol-h{display:flex;align-items:center;gap:8px;padding:2px 2px 0;}
.kcol-h b{font-size:calc(13px * var(--fs,1));font-weight:650;}
.kcol-h .kc-count{font-size:calc(11px * var(--fs,1));font-weight:600;color:var(--muted);background:var(--surface-3);border-radius:20px;padding:1px 8px;}
.kcol-h .kc-val{margin-left:auto;font-size:calc(12px * var(--fs,1));font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;}
.kcol-h .stagedot{width:8px;height:8px;border-radius:50%;flex:none;}
.kcard{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);padding:12px 13px;cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s;display:flex;flex-direction:column;gap:8px;}
.kcard:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px);}
.kcard.hot{border-color:color-mix(in srgb,var(--warn) 45%,transparent);}
.kcard .kc-cust{font-size:calc(11.5px * var(--fs,1));color:var(--muted);display:flex;align-items:center;gap:6px;}
.kcard .kc-title{font-size:calc(13.5px * var(--fs,1));font-weight:600;color:var(--fg);line-height:1.3;}
.kcard .kc-val{font-size:calc(15px * var(--fs,1));font-weight:700;font-variant-numeric:tabular-nums;}
.kcard .kc-foot{display:flex;align-items:center;gap:8px;margin-top:2px;}
.kcard .kc-av{width:22px;height:22px;border-radius:50%;color:#fff;font-size:calc(9.5px * var(--fs,1));font-weight:700;display:grid;place-items:center;flex:none;}
.kcard .kc-close{font-size:calc(11px * var(--fs,1));color:var(--muted);}
.kcard .kc-prob{margin-left:auto;font-size:calc(11px * var(--fs,1));font-weight:600;color:var(--muted);}
.kprob{height:4px;border-radius:3px;background:var(--hairline);overflow:hidden;}
.kprob i{display:block;height:100%;border-radius:3px;background:var(--accent);}

/* ===== master control (super-admin console) ===== */
.mc-layout{display:grid;grid-template-columns:316px minmax(0,1fr);gap:16px;padding:6px 24px 40px;align-items:start;}
.mc-list{display:flex;flex-direction:column;gap:9px;}
.mc-list-h{display:flex;align-items:center;font-size:calc(11px * var(--fs,1));text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;padding:2px 2px 2px;}
.mc-card{text-align:left;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);padding:12px 13px;display:flex;flex-direction:column;gap:10px;cursor:pointer;transition:border-color .12s,box-shadow .12s;}
.mc-card:hover{border-color:var(--border);}
.mc-card.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);}
.mc-card-top{display:flex;align-items:center;gap:10px;}
.mc-logo{width:32px;height:32px;border-radius:9px;background:linear-gradient(150deg,var(--accent),#3aa0ff);color:#fff;font-size:calc(12px * var(--fs,1));font-weight:700;display:grid;place-items:center;flex:none;letter-spacing:.02em;}
.mc-logo.lg{width:46px;height:46px;font-size:calc(17px * var(--fs,1));border-radius:13px;}
.mc-card-h{min-width:0;flex:1;}
.mc-card-h b{font-size:calc(13.5px * var(--fs,1));display:block;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mc-card-h small{font-size:calc(11px * var(--fs,1));color:var(--muted);font-family:var(--mono);}
.mc-status{width:9px;height:9px;border-radius:50%;flex:none;}
.mc-status.on{background:var(--ok);}
.mc-status.off{background:var(--faint);}
.mc-card-meta{display:flex;align-items:center;gap:8px;font-size:calc(11.5px * var(--fs,1));color:var(--muted);}
.mc-card-stats{display:flex;gap:14px;font-size:calc(11px * var(--fs,1));color:var(--muted);border-top:1px solid var(--hairline);padding-top:9px;}
.mc-card-stats b{color:var(--fg);font-weight:600;font-variant-numeric:tabular-nums;}
.mc-detail{display:flex;flex-direction:column;gap:14px;min-width:0;}
.mc-detail-head{display:flex;align-items:center;gap:13px;}
.mc-detail-head h2{font-size:calc(18px * var(--fs,1));letter-spacing:-.02em;}
.mc-sub{font-size:calc(12.5px * var(--fs,1));color:var(--muted);}
.mc-statrow{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--r-m);overflow:hidden;}
.mc-stat{background:var(--surface);padding:12px 15px;}
.mc-stat small{display:block;font-size:calc(10.5px * var(--fs,1));text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:3px;}
.mc-stat b{font-size:calc(19px * var(--fs,1));font-variant-numeric:tabular-nums;}
@media (max-width:1100px){ .mc-layout{grid-template-columns:1fr;} .mc-statrow{grid-template-columns:1fr 1fr;} }

/* ===== mobile bottom tab bar ===== */
.tabbar{display:none;}
.mobtopbar{display:none;}

/* The canonical Master Control tables keep their desktop column contract on
   narrow screens, but the table itself owns the horizontal gesture. This
   prevents row data from being clipped while keeping the document viewport
   stable. */
[data-canonical-master-control]{min-width:0;}
[data-canonical-master-control] .master-control-summary{grid-template-columns:repeat(3,minmax(0,1fr));}
[data-canonical-master-control] .master-control-summary>.card{min-width:0;margin:0;padding:16px 18px;}
[data-canonical-master-control] .master-control-summary small{display:block;margin-bottom:5px;color:var(--muted);}
[data-canonical-master-control] .master-control-summary b{display:block;font-size:calc(24px * var(--fs,1));line-height:1.2;}
[data-canonical-master-control] .master-control-summary .summary-scope{display:block;margin-top:7px;color:var(--muted);font-size:calc(11px * var(--fs,1));}
[data-canonical-master-control] .tablewrap{min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;}
[data-canonical-master-control] .tablewrap>table.lines{min-width:640px;}
[data-canonical-master-control]>.toolbar{min-width:0;}
[data-canonical-master-control]>.toolbar .master-control-identity{display:flex;align-items:baseline;gap:10px;min-width:0;}
[data-canonical-master-control]>.toolbar .master-control-identity>b,
[data-canonical-master-control]>.toolbar .master-control-identity>.mono{min-width:0;overflow-wrap:anywhere;}
[data-canonical-master-control]>.toolbar .master-control-actions{display:flex;align-items:center;gap:8px;min-width:0;}
@media (max-width:640px){
  [data-canonical-master-control] .master-control-summary{grid-template-columns:1fr;gap:8px;}
  [data-canonical-master-control] .master-control-summary>.card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;}
  [data-canonical-master-control] .master-control-summary small{margin:0;}
  [data-canonical-master-control] .master-control-summary .summary-scope{margin-top:2px;}
}

@media (max-width:980px){
  /* .app.nav-collapsed (specificity 0,2,0) would beat the plain .app rule below and
     leave a phantom 68px sidebar column on phones — pin both to a single column. */
  .app,.app.nav-collapsed{grid-template-columns:1fr;}
  .sidebar{display:none;}
  .main{height:100dvh;padding-bottom:calc(58px + env(safe-area-inset-bottom));}
  .topbar{padding:10px 14px;}
  .search{max-width:none;}
  .ctxbtn,.env{display:none;}
  .content{grid-template-columns:1fr;}
  .master{border-right:none;}
  .pagehead{padding:14px 16px 8px;}
  h1{font-size:calc(23px * var(--fs,1));}
  .headright .kfig{display:none;}
  .toolbar{padding:6px 16px 10px;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;}
  .toolbar::-webkit-scrollbar{display:none;}
  [data-canonical-master-control]>.toolbar{
    overflow:visible;
    flex-wrap:wrap;
    gap:8px;
  }
  [data-canonical-master-control]>.toolbar>.grow{display:none;}
  [data-canonical-master-control]>.toolbar .master-control-identity,
  [data-canonical-master-control]>.toolbar .master-control-actions{
    flex:0 0 100%;
  }
  [data-canonical-master-control]>.toolbar .master-control-actions .btn{
    flex:1 1 0;
    min-width:0;
    justify-content:center;
  }
  .filterchips{flex-wrap:nowrap;}
  .dash{padding:6px 16px 90px;}
  .dashgrid{grid-template-columns:1fr;}
  .wcard.span2{grid-column:span 1;}
  .doclayout,.appr-layout{grid-template-columns:1fr;}
  .summary{position:static;}
  .sales-order-detail{padding:8px 16px 90px;}
  .sales-order-detail .doclayout{grid-template-columns:1fr;}
  .sales-order-detail .docmeta{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sales-order-detail .stepper{display:flex;flex-wrap:nowrap;overflow-x:auto;padding:4px 2px 10px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;}
  .sales-order-detail .stepper{scrollbar-width:none;}
  .sales-order-detail .stepper::-webkit-scrollbar{display:none;}
  .sales-order-detail .step{flex:none;scroll-snap-align:start;}
  .sales-order-detail .stepline{flex:0 0 28px;min-width:28px;margin:0 7px;}
  .work-order-detail{padding:8px 16px 90px;}
  .work-order-detail .dactions{width:100%;margin-left:0;justify-content:flex-start;}
  .work-order-detail .summary{order:-1;}
  .work-order-operation{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;}
  .work-order-operation>.cap{grid-column:3;grid-row:1;justify-self:end;}
  .work-order-operation-hours{grid-column:2/4;grid-row:2;display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:2px;padding-top:8px;border-top:1px solid var(--hairline);}
  .work-order-operation-hours small{display:block;}
  .master-detail-editor{padding:2px 16px 86px;}
  .master-detail-editor-overview{flex-direction:column;}
  .master-detail-editor-subject{min-width:0;width:100%;}
  .master-detail-editor-facts{width:100%;}
  .master-detail-editor-grid{grid-template-columns:1fr;}
  .master-detail-editor-context{position:static;}
  .case-detail{padding:2px 16px 86px;}
  .case-detail-overview-head{flex-direction:column;}
  .case-detail-overview-actions{width:100%;justify-content:flex-start;}
  .case-detail-statuses{justify-content:flex-start;}
  .case-detail-grid{grid-template-columns:1fr;}
  .case-detail-context{position:static;}
  .ledger-detail{padding:2px 16px 86px;}
  .ledger-detail-overview{align-items:flex-start;flex-direction:column;}
  .ledger-detail-account{min-width:0;max-width:none;width:100%;}
  .ledger-detail-overview .so-kpibar{width:100%;justify-content:flex-start;}
  .ledger-detail-overview .so-kpi{max-width:none;}
  .ledger-detail-footer{grid-template-columns:1fr 1fr;}
  .ledger-detail-footer>b{grid-column:1/-1;}
  .ledger-detail-footer>span{justify-content:space-between;}
  .posting-detail{padding:2px 16px 86px;}
  .posting-detail-grid{grid-template-columns:1fr;}
  .posting-detail-context{position:static;}
  .report{grid-template-columns:1fr;}
  .report-params{border-right:none;border-bottom:1px solid var(--hairline);max-height:none;}
  .operational-workspace{padding:2px 16px 86px;}
  .operational-workspace-grid{grid-template-columns:1fr;}
  .operational-workspace-context{position:static;}
  /* detail becomes slide-up sheet */
  .detail{position:fixed;inset:0;z-index:80;border-radius:18px 18px 0 0;transform:translateY(100%);transition:transform .34s var(--ease);box-shadow:var(--shadow-lg);padding-bottom:env(safe-area-inset-bottom);}
  .detail.open{transform:translateY(0);}
  .content.detail-collapsed{grid-template-columns:1fr;}
  .detail-head{padding-top:8px;}
  .grabber{display:block;width:38px;height:5px;border-radius:3px;background:var(--border);margin:6px auto 4px;}
  .detail-head .close{display:flex;align-items:center;gap:5px;color:var(--accent);font-size:calc(15px * var(--fs,1));font-weight:500;padding:6px 2px;}
  .detail-head .close svg{width:18px;height:18px;}
  /* bottom tab bar */
  .tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:70;background:var(--material);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid var(--hairline);padding:6px 8px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;}
  .tabbar button{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);font-size:calc(10px * var(--fs,1));font-weight:500;padding:4px 10px;flex:1;}
  .tabbar button svg{width:23px;height:23px;}
  .tabbar button.active{color:var(--accent);}
  .palette{top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;min-height:100dvh;max-height:none;box-sizing:border-box;border:0;border-radius:0;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);display:flex;flex-direction:column;transform:translateY(100%);}
  .palette.show{transform:translateY(0);}
  .palette-in{flex:none;padding:14px 16px 12px;}
  .palette-list{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
  .palette-foot{display:none;}
  #cursorTip{display:none;}
  .statwrap{padding:0 16px;}
  .statcards{grid-template-columns:1fr 1fr;}
  .kgrid{grid-template-columns:1fr;}
  .barrow{grid-template-columns:110px 1fr 70px;}
  .fldrow.c3{grid-template-columns:1fr 1fr;}
  .pop.acctmenu,.pop.notifmenu,.pop.qcmenu{left:8px !important;right:8px !important;width:auto !important;}
  .screen-preview-banner{padding:8px 14px;}
  .screen-preview-banner>div{display:block;}
  .screen-preview-banner span{display:block;margin-top:1px;}
}
@media (max-width:560px){
  .sales-order-detail{padding-left:12px;padding-right:12px;}
  .sales-order-detail .dochead{padding:16px;}
  .sales-order-detail .dh-row1 .dactions{width:100%;margin-left:0;justify-content:flex-start;}
  .sales-order-detail .docmeta{grid-template-columns:1fr;}
  .sales-order-detail .panel-h{align-items:flex-start;flex-direction:column;}
  .sales-order-detail .panel-h .ph-act{margin-left:0;max-width:100%;overflow-x:auto;}
  .sales-order-detail .linefoot{gap:8px;align-items:flex-start;flex-direction:column;}
}

/* ===== financial-statement-v1 — hierarchical Finance report SSOT ===== */
.financial-statement{display:flex;flex-direction:column;gap:14px;padding:0 24px 24px;min-width:0;}
.financial-summary{display:grid;grid-template-columns:repeat(5,minmax(128px,1fr));gap:10px;}
.financial-summary .so-kpi{min-width:0;}
.financial-filters{display:flex;align-items:flex-end;gap:10px;padding:12px;border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--surface);}
.financial-filters>.grow{display:none;}
.financial-filter-toggle{display:none;}
.financial-filter-fields{display:grid;grid-template-columns:minmax(150px,1.15fr) minmax(210px,1.45fr) minmax(140px,1fr) minmax(120px,.8fr);align-items:end;gap:10px;flex:1;min-width:0;}
.financial-filter{display:flex;flex-direction:column;gap:6px;min-width:0;}
.financial-filter>span{font-size:calc(10.5px * var(--fs,1));font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);}
.financial-filter .combo{width:100%;min-width:0;}
.financial-filter .combo-in{width:100%;height:38px;min-width:0;padding:8px 36px 8px 34px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--fg);font:inherit;font-size:calc(13px * var(--fs,1));line-height:20px;outline:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text;transition:border-color .12s,box-shadow .12s,background .12s;}
.financial-filter .combo-in:hover{border-color:color-mix(in srgb,var(--muted) 55%,var(--border));background:var(--surface);}
.financial-filter .combo-in:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);background:var(--surface);}
.financial-filter .combo-ic{left:10px;}
.financial-filter .combo-caret{right:5px;}
.financial-error>div{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 28%,transparent);border-radius:var(--r-m);background:var(--danger-tint);color:var(--danger);}
.financial-error>div span{flex:1;}
.financial-tablewrap{min-width:760px;border:1px solid var(--hairline);border-radius:var(--r-m);overflow:hidden;background:var(--surface);}
.financial-statement-body{max-width:100%;overflow-x:auto;}
.financial-row{display:grid;grid-template-columns:minmax(250px,2.2fr) repeat(4,minmax(120px,1fr));align-items:stretch;border-bottom:1px solid var(--hairline);}
.financial-row:last-child{border-bottom:0;}
.financial-cell{padding:10px 12px;min-width:0;}
.financial-cell.r{text-align:right;}
.financial-head{background:var(--surface-2);font-size:calc(10.5px * var(--fs,1));font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);}
.financial-subtotal{background:var(--surface-3);font-weight:700;}
.financial-account-row .financial-cell.l{display:flex;align-items:baseline;gap:8px;padding-left:24px;}
.financial-account-row .financial-cell.l>span{font-size:calc(11px * var(--fs,1));color:var(--muted);font-variant-numeric:tabular-nums;}
.financial-account-row .financial-cell.l>b{font-size:calc(12.5px * var(--fs,1));font-weight:500;}
.financial-grandtotal{background:var(--accent-tint);border-top:2px solid var(--accent);font-weight:700;}
.financial-unmapped{color:var(--warn);background:var(--warn-tint);border-radius:999px;padding:2px 6px;}
.financial-var{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;}
.financial-var.ok{color:var(--ok);}
.financial-var.bad{color:var(--danger);}
.financial-var small{color:inherit;}
.financial-actions{border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--surface);}
.financial-report-meta{font-size:calc(11.5px * var(--fs,1));color:var(--muted);line-height:1.45;}
.financial-export-status{padding:10px 12px;border-radius:var(--r-m);background:var(--accent-tint);color:var(--accent);font-size:calc(12px * var(--fs,1));}
@media (max-width:980px){
  .financial-statement{padding:0 16px 24px;}
  .financial-summary{display:flex;overflow-x:auto;scrollbar-width:none;}
  .financial-summary::-webkit-scrollbar{display:none;}
  .financial-summary .so-kpi{min-width:128px;flex:none;}
  .financial-filter-toggle{display:inline-flex;}
  .financial-filter-fields{display:none;width:100%;}
  .financial-statement.filters-open .financial-filter-fields{display:grid;grid-template-columns:1fr 1fr;}
  .financial-filters{align-items:flex-end;flex-wrap:wrap;}
  .financial-filter,.financial-filter .combo,.financial-filter .combo-in{min-width:0;width:100%;max-width:none;}
}
@media (max-width:560px){
  .financial-statement.filters-open .financial-filter-fields{grid-template-columns:1fr;}
  .financial-row{grid-template-columns:minmax(190px,1.8fr) minmax(110px,1fr);}
  .financial-row .financial-cell:nth-child(2),
  .financial-row .financial-cell:nth-child(4),
  .financial-row .financial-cell:nth-child(5){display:none;}
  .financial-tablewrap{min-width:310px;}
  .financial-account-row .financial-cell.l{padding-left:16px;flex-direction:column;align-items:flex-start;gap:2px;}
  .financial-actions{position:sticky;bottom:calc(var(--mobile-nav-h,0px) + 8px);z-index:8;}
  .financial-actions .financial-report-meta{display:none;}
}

@media (max-width:480px){
  .set-savebar,.responsive-actionbar{min-width:0;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));gap:8px;flex-wrap:wrap;justify-content:flex-end;}
  .set-savebar>.grow,.responsive-actionbar>.grow{display:none;}
  .set-savebar>.hideonsmall{display:none!important;}
  .set-savebar .btn,.responsive-actionbar .btn{min-width:0;max-width:100%;}
}
.grabber{display:none;}
@media (min-width:981px) and (max-width:1180px){
  .content{grid-template-columns:minmax(0,1fr) 360px;}
}
@media (max-width:560px){
  .statcards{grid-template-columns:1fr;}
  .fldrow.c2,.fldrow.c3{grid-template-columns:1fr;}
  .operational-workspace{padding:2px 12px 90px;}
  .operational-workspace-progress,.operational-workspace-main,.operational-workspace-context{border-radius:var(--r-m);}
  .operational-workspace-main,.operational-workspace-context{padding:13px;}
  .operational-workspace-actions{bottom:calc(58px + env(safe-area-inset-bottom));margin-left:-1px;margin-right:-1px;flex-wrap:wrap;justify-content:flex-end;}
  .operational-workspace-actions>.grow,.operational-workspace-action-note{display:none;}
  .operational-workspace-actions .btn{min-width:0;max-width:100%;}
  .master-detail-editor{padding:2px 12px 90px;}
  .master-detail-editor-overview,.master-detail-editor-context{border-radius:var(--r-m);}
  .master-detail-editor-overview{padding:14px;}
  .pagehead .h1row>.master-detail-editor-page-actions{flex:1 0 100%;width:100%;justify-content:space-between;}
  .master-detail-editor-page-actions .btn{min-width:0;max-width:100%;}
  .master-detail-editor-facts,.master-detail-editor-facts.c4{grid-template-columns:1fr 1fr;}
  .employee-contact-facts{grid-template-columns:1fr;margin:12px;}
  .employee-profile-edit-grid{grid-template-columns:1fr;gap:12px;}
  .master-data-editor-grid{grid-template-columns:1fr;gap:12px;}
  .master-data-editor-field-span-2{grid-column:auto;}
  .modal.master-data-editor-modal{
    width:100vw!important;
    height:100dvh;
    min-height:0;
    max-height:100dvh;
    border-radius:0;
  }
  .modal.master-data-editor-modal .modal-head{
    min-height:60px;
    padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px;
  }
  .modal.master-data-editor-modal .modal-body{padding:16px 16px 20px;}
  .modal.master-data-editor-modal .modal-foot{
    min-height:68px;
    gap:8px;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));
  }
  .modal.master-data-editor-modal .modal-foot .btn{width:100%;min-width:0;flex:0 0 auto;}
  .employee-history-changes{grid-template-columns:1fr;}
  .asset-detail-policy-facts{grid-template-columns:1fr;margin:12px;}
  .master-detail-editor-actions{bottom:calc(58px + env(safe-area-inset-bottom));margin-left:-1px;margin-right:-1px;flex-wrap:wrap;justify-content:flex-end;}
  .master-detail-editor-actions>.grow,.master-detail-editor-action-note{display:none;}
  .master-detail-editor-actions .btn{min-width:0;max-width:100%;}
  .case-detail{padding:2px 12px 90px;}
  .case-detail-overview,.case-detail-context{border-radius:var(--r-m);}
  .case-detail-overview{padding:14px;}
  .case-detail-lifecycle li{font-size:calc(10.5px * var(--fs,1));}
  .case-detail-facts{grid-template-columns:1fr 1fr;}
  /* Decision actions follow the complete case context on phones. A sticky footer
     previously covered line items before the user could review totals/reasons. */
  .case-detail-actions{position:static;bottom:auto;margin-left:-1px;margin-right:-1px;flex-wrap:wrap;justify-content:flex-end;}
  .case-detail-actions>.grow,.case-detail-action-note{display:none;}
  .case-detail-actions .btn{min-width:0;max-width:100%;}
  .ledger-detail{padding:2px 12px 90px;}
  .ledger-detail-overview,.ledger-detail-table-scroll{border-radius:var(--r-m);}
  .ledger-detail-table-scroll:has(+.ledger-detail-footer){border-radius:var(--r-m) var(--r-m) 0 0;}
  .ledger-detail-footer{border-radius:0 0 var(--r-m) var(--r-m);grid-template-columns:1fr;padding:11px;}
  .ledger-detail-footer>b{grid-column:auto;}
  .ledger-detail-overview{padding:13px;}
  .ledger-detail-overview .so-kpibar{margin:0 -13px;width:calc(100% + 26px);padding:0 13px 2px;}
  .ledger-detail-toolbar{flex-wrap:nowrap;}
  .ledger-detail-toolbar .transaction-list-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .ledger-detail-toolbar .btn{flex:none;}
  .posting-detail{padding:2px 12px 90px;}
  .posting-detail-overview,.posting-detail-card,.posting-context-card{border-radius:var(--r-m);}
  .posting-detail-overview{padding:13px;}
  .posting-detail-identity{align-items:flex-start;flex-direction:column;gap:3px;width:100%;}
  .posting-detail-facts{grid-template-columns:1fr 1fr;}
  /* Posting actions must not obscure the accounting trace on narrow screens. */
  .posting-detail-actions{position:static;bottom:auto;margin-left:-1px;margin-right:-1px;flex-wrap:wrap;justify-content:flex-end;}
  .posting-detail-actions>.grow{display:none;}
  .posting-detail-actions .btn{min-width:0;max-width:100%;}
  .posting-lines-footer{justify-content:space-between;gap:10px 14px;}
  .pickrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px 10px;padding:12px;}
  .pick-check{grid-column:1;grid-row:1 / span 3;}
  .pick-bin{grid-column:2;grid-row:1;}
  .pick-qty{grid-column:3;grid-row:1;text-align:right;}
  .pick-item{grid-column:2 / -1;grid-row:2;}
  .pickrow>.btn,.pickrow>.cap{grid-column:2 / -1;grid-row:3;justify-self:end;}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}

/* ===== settings screen ===== */
.master[data-screen-label="Settings"]>.pagehead{background:var(--surface);border-bottom:1px solid var(--hairline);}
.set-body{flex:1;display:flex;min-height:0;overflow:hidden;}
.set-rail{width:228px;flex:none;border-right:1px solid var(--hairline);padding:16px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;background:var(--material);}
.set-railhead{font-size:calc(10.5px * var(--fs,1));text-transform:uppercase;letter-spacing:.05em;color:var(--faint);font-weight:700;padding:6px 10px 8px;}
.set-navitem{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:9px 11px;border-radius:var(--r-s);font-size:calc(13.5px * var(--fs,1));font-weight:500;color:var(--muted);transition:background .1s,color .1s;}
.set-navitem svg{width:17px;height:17px;flex:none;}
.set-navitem:hover{background:var(--hairline);color:var(--fg);}
.set-navitem.on{background:var(--surface);color:var(--fg);font-weight:600;box-shadow:var(--shadow);}
[data-theme="dark"] .set-navitem.on{background:rgba(255,255,255,.08);box-shadow:none;}
.set-navitem.on svg{color:var(--accent);}
.set-scroll{flex:1;overflow-y:auto;min-height:0;}
.set-page{max-width:720px;margin:0 auto;padding:22px 28px 90px;display:flex;flex-direction:column;gap:18px;}
.set-sec{scroll-margin-top:16px;}
.set-row{display:flex;align-items:center;gap:18px;padding:14px 16px;border-top:1px solid var(--hairline);}
.set-row:first-child{border-top:none;}
.set-row.top{align-items:flex-start;}
.set-row-t{flex:1;min-width:0;}
.set-row-t b{font-size:calc(13.5px * var(--fs,1));font-weight:600;display:block;}
.set-row-t small{font-size:calc(12px * var(--fs,1));color:var(--muted);display:block;margin-top:2px;line-height:1.45;}
.set-row-c{flex:none;display:flex;align-items:center;gap:10px;}
.set-row-c select{min-width:184px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:8px 11px;font-size:calc(13.5px * var(--fs,1));color:var(--fg);outline:none;}
.set-row-c select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);}
.set-grid{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.set-tgl{width:42px;height:25px;border-radius:25px;background:var(--border);position:relative;flex:none;transition:background .18s var(--ease);}
.set-tgl-k{position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .18s var(--ease);}
.set-tgl.on{background:var(--accent);}
.set-tgl.on .set-tgl-k{transform:translateX(17px);}
.set-avatar{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:calc(22px * var(--fs,1));font-weight:600;flex:none;background:linear-gradient(150deg,#FF9500,#FF375F);}
.profile-avatar.profile-avatar{
  display:grid;place-items:center;flex:none;overflow:hidden;border:1px solid var(--border);
  border-radius:50%;background:var(--surface-2);color:var(--muted);font-size:0;
}
.profile-avatar.profile-avatar svg{width:64%;height:64%;display:block;}
.profile-avatar.profile-avatar img{width:100%;height:100%;display:block;object-fit:cover;}
.profile-avatar.profile-avatar [hidden]{display:none;}
.set-row-wide{align-items:stretch;flex-direction:column;gap:12px;}
.set-row-wide .set-row-c{display:block;min-width:0;width:100%;}
.set-row-wide .seg[data-seg="language"]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;}
.set-row-wide .seg[data-seg="language"] button{min-width:0;justify-content:center;text-align:center;white-space:normal;line-height:1.3;}
.set-palettes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;}
.set-pal{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:64px;gap:6px;padding:8px 9px 7px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);transition:border-color .14s var(--ease),box-shadow .14s var(--ease),transform .12s;}
.set-pal:hover{transform:translateY(-1px);border-color:var(--muted);}
.set-pal.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-tint);}
.set-pal-sw{display:flex;border-radius:5px;overflow:hidden;width:46px;height:18px;}
.set-pal-sw i{flex:1;}
.set-pal-l{font-size:calc(11.5px * var(--fs,1));font-weight:600;color:var(--fg);letter-spacing:.01em;text-align:center;overflow-wrap:anywhere;}
@media (max-width:760px){
  .set-row-wide .seg[data-seg="language"]{grid-template-columns:repeat(2,minmax(0,1fr));}
  .set-row-wide .seg[data-seg="language"] button:last-child{grid-column:1 / -1;}
}
.set-swatches{display:flex;gap:11px;}
.set-sw{width:26px;height:26px;border-radius:50%;position:relative;transition:transform .12s;}
.set-sw:hover{transform:scale(1.1);}
.set-sw.on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--fg);}
.set-sess{display:flex;align-items:center;gap:13px;padding:13px 16px;border-top:1px solid var(--hairline);}
.set-sess .si{width:34px;height:34px;border-radius:9px;background:var(--surface-2);display:grid;place-items:center;color:var(--muted);flex:none;}
.set-sess .si svg{width:17px;height:17px;}
.set-sess .sm{flex:1;min-width:0;}
.set-sess .sm b{font-size:calc(13px * var(--fs,1));font-weight:600;}
.set-sess .sm small{display:block;font-size:calc(11.5px * var(--fs,1));color:var(--muted);margin-top:1px;}
.set-savebar{flex:none;display:flex;align-items:center;gap:10px;padding:12px 24px;border-top:1px solid var(--hairline);background:var(--surface);}
.leave-action-progress{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:calc(12px * var(--fs,1));margin-right:4px;}
.leave-action-progress svg{width:15px;height:15px;animation:erp-leave-action-spin .85s linear infinite;}
@keyframes erp-leave-action-spin{to{transform:rotate(360deg);}}
.docwrap+.set-savebar,.docwrap+.responsive-actionbar{
  padding-inline:max(24px,calc((100% - 1280px)/2 + 24px));
}
[data-payroll-actions]{min-width:0;flex-wrap:wrap;padding-inline:14px;justify-content:flex-end;}
[data-payroll-actions]>.grow{min-width:0;}
[data-payroll-actions]>.btn{min-width:0;max-width:100%;}
.staff-onboarding-progress{min-width:0;padding-inline:2px;}
.staff-onboarding-progress .stepper{align-items:flex-start;flex-wrap:nowrap;width:100%;margin:16px 0 16px;min-width:0;}
.staff-onboarding-progress .step{flex:1 1 0;min-width:0;justify-content:flex-start;flex-direction:column;gap:6px;text-align:center;line-height:1.2;}
.staff-onboarding-progress .step .step-label{display:block;max-width:100%;font-size:calc(11.5px * var(--fs,1));line-height:1.25;overflow-wrap:anywhere;}
.staff-onboarding-progress .step .sdot{width:28px;height:28px;}
.staff-onboarding-progress .step .sdot span{font-size:10px!important;}
.staff-onboarding-progress .stepline{flex:1 1 20px;min-width:12px;margin:13px 6px 0;}
.staff-onboarding-layout{display:block;min-width:0;}
.staff-onboarding-layout .docmain,
.staff-onboarding-layout .panel{width:100%;min-width:0;}
.staff-onboarding-save-context{display:flex;flex-direction:column;gap:2px;min-width:0;}
.staff-onboarding-save-context b{font-size:calc(12.5px * var(--fs,1));}
.staff-onboarding-save-context small{display:block;color:var(--muted);font-size:calc(11.5px * var(--fs,1));}
.staff-onboarding-error{margin:0 0 12px;}
.staff-onboarding-role-callout{margin-bottom:2px;line-height:1.5;}
.staff-onboarding-role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:16px;}
.staff-onboarding-role-option{display:flex;align-items:flex-start;gap:10px;min-width:0;min-height:56px;padding:12px 14px;border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--surface-2);color:var(--fg);cursor:pointer;transition:border-color .12s var(--ease),box-shadow .12s var(--ease),background .12s var(--ease);}
.staff-onboarding-role-option:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--hairline));background:var(--surface);}
.staff-onboarding-role-option:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);background:var(--surface);}
.staff-onboarding-role-option>input{width:20px;height:20px;flex:none;margin:1px 0 0;accent-color:var(--accent);}
.staff-onboarding-role-option>span{display:flex;flex-direction:column;gap:3px;min-width:0;}
.staff-onboarding-role-option b{font-size:calc(13px * var(--fs,1));line-height:1.25;overflow-wrap:anywhere;}
.staff-onboarding-role-option small{color:var(--muted);font-size:calc(11px * var(--fs,1));line-height:1.25;overflow-wrap:anywhere;}
.staff-onboarding-leave-row{grid-template-columns:minmax(0,320px);margin-top:14px;}
.fld.is-invalid>input,.fld.is-invalid>select,.fld.is-invalid>.combo .combo-in{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 12%,transparent);}
.staff-field-error{display:block;margin-top:5px;color:var(--danger);font-size:calc(11.5px * var(--fs,1));line-height:1.35;}

@media (max-width:1100px){
  .staff-onboarding-layout{display:block;}
}

/* Shared empty state for master-detail panes. Keep the icon and copy readable
   in both the narrow desktop detail rail and the mobile detail drawer. */
.detail-empty{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px 22px;text-align:center;color:var(--muted);}
.detail-empty>.ico{width:30px;height:30px;flex:none;color:var(--faint);}
.detail-empty>div{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:34ch;line-height:1.45;}
.detail-empty b{display:block;color:var(--text);font-size:calc(13.5px * var(--fs,1));font-weight:650;}
.detail-empty small{display:block;color:var(--muted);font-size:calc(12px * var(--fs,1));line-height:1.45;}

.transaction-list-search{height:34px;min-width:250px;max-width:340px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--hairline);border-radius:var(--r-s);background:var(--surface);color:var(--muted);}
.transaction-list-search:focus-within{border-color:color-mix(in srgb,var(--accent) 55%,var(--hairline));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);}
.transaction-list-search>.ico{width:15px;height:15px;flex:none;}
.transaction-list-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--fg);font:inherit;font-size:calc(12.5px * var(--fs,1));}
.transaction-list-search input::placeholder{color:var(--faint);}
@media(max-width:760px){
  .transaction-list-search{order:-1;flex-basis:100%;max-width:none;width:100%;}
  .transaction-list-body>.toolbar{flex-wrap:wrap;}
}

/* Generic dense-table SSOT. Keep exactly one horizontal scroll owner so a
   list never nests a second scrolling surface inside the calendar shell. */
.table-listing{display:flex;flex-direction:column;min-width:0;background:var(--surface,#fff)}
.table-listing-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border-bottom:1px solid var(--line)}
.table-listing-search{height:36px;min-width:250px;max-width:360px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--hairline);border-radius:var(--r-s);background:var(--surface);color:var(--muted)}
.table-listing-search:focus-within{border-color:color-mix(in srgb,var(--accent) 55%,var(--hairline));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.table-listing-search>.ico{width:15px;height:15px;flex:none}
.table-listing-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--fg);font:inherit;font-size:calc(12.5px * var(--fs,1))}
.table-listing-search input::placeholder{color:var(--faint)}
.table-listing-page-size{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:calc(12px * var(--fs,1));white-space:nowrap}
.table-listing-page-size select{height:34px;min-width:68px;padding:0 26px 0 9px;border:1px solid var(--hairline);border-radius:var(--r-s);background:var(--surface);color:var(--fg);font:inherit}
.table-listing-result-count{margin-left:auto;color:var(--muted);font-size:calc(12px * var(--fs,1));white-space:nowrap;font-variant-numeric:tabular-nums}
.table-listing-scroll-hint{display:flex;align-items:center;gap:6px;padding:8px 12px;color:var(--muted);font-size:calc(11px * var(--fs,1));border-bottom:1px solid var(--line);background:var(--surface-2)}
.table-listing-scroll-hint>.ico{width:14px;height:14px;color:var(--accent);flex:none}
.table-listing-scroll{max-width:100%;overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.table-listing-scroll .dt-page,.table-listing-scroll .dt{min-width:840px;width:100%}
.table-listing .dt-r{min-width:840px}
.table-listing .dt-c{white-space:nowrap}
.table-listing .dt-head .dt-c{padding-top:9px;padding-bottom:9px;text-transform:uppercase;letter-spacing:.055em;font-size:calc(10px * var(--fs,1));}
.table-listing .dt-body .dt-r{min-height:50px;}
.table-listing .dt-body .dt-r.is-interactive:hover .dt-c{background:var(--surface-2,#f6f7f9)}
.table-listing .dt-body .dt-r.is-interactive.sel .dt-c{background:var(--sel,#eaf2ff)}
.table-listing .dt-c.table-listing-primary{position:sticky;left:0;z-index:1;background:var(--surface,#fff);box-shadow:1px 0 0 var(--line)}
.table-listing .dt-head .dt-c.table-listing-primary{z-index:3;background:var(--surface-2,#f6f7f9)}
.table-listing .dt-body .dt-r:hover .dt-c.table-listing-primary{background:var(--surface-2,#f6f7f9)}
.table-listing .dt-body .dt-r.is-interactive.sel .dt-c.table-listing-primary{background:var(--sel,#eaf2ff)}
.table-listing-cell-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.table-listing-cell-sub{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.86em;line-height:1.25}
.calendar-listing-date{display:inline-flex;align-items:baseline;gap:6px;min-width:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.calendar-listing-date-main{font-weight:650;letter-spacing:-.01em}
.calendar-listing-date-separator{color:var(--faint);font-size:11px}
.calendar-listing-date-day{color:var(--muted);font-size:calc(11.5px * var(--fs,1));}
.table-listing-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid var(--line);background:var(--surface)}
.table-listing-page-label{color:var(--muted);font-size:calc(12px * var(--fs,1));font-variant-numeric:tabular-nums;white-space:nowrap}
.table-listing-page-actions{display:flex;align-items:center;gap:8px}
[data-calendar-view="list"] .calendar-workspace-surface{overflow:visible}
@media(max-width:760px){
  .table-listing-toolbar{padding:10px;gap:8px}
  .table-listing-search{order:-1;flex-basis:100%;max-width:none;width:100%}
  .table-listing-page-size{flex:0 0 auto}
  .table-listing-result-count{margin-left:auto;max-width:46%;overflow:hidden;text-overflow:ellipsis}
  .table-listing-scroll-hint{font-size:calc(10.5px * var(--fs,1))}
  .table-listing-pagination{padding:9px 10px}
}

@media(max-width:560px){
  .staff-onboarding-progress{padding-inline:0;}
  .staff-onboarding-progress .stepper{margin:14px 0 18px;}
  .staff-onboarding-progress .step{gap:5px;}
  .staff-onboarding-progress .step .sdot{width:24px;height:24px;}
  .staff-onboarding-progress .step .step-label{font-size:calc(10.5px * var(--fs,1));line-height:1.2;}
  .staff-onboarding-progress .stepline{flex-basis:10px;min-width:8px;margin:11px 3px 0;}
  .staff-onboarding-role-grid{grid-template-columns:1fr;gap:8px;margin-top:14px;}
  .staff-onboarding-role-option{min-height:52px;padding:11px 12px;}
  .staff-onboarding-leave-row{grid-template-columns:1fr;}
  .staff-onboarding-layout .fldrow.c2,
  .staff-onboarding-layout .fldrow.c3{grid-template-columns:1fr;}
}

/* Payroll payslip: use the desktop canvas instead of squeezing a document and
   four summary cards into the old 920px prototype. */
.payslip-page{max-width:1240px;width:100%;}
.payslip-subtitle{color:var(--muted);font-size:calc(13px * var(--fs,1));margin-top:5px;line-height:1.45;overflow-wrap:anywhere;}
.payslip-layout{grid-template-columns:minmax(0,1fr) minmax(330px,360px);gap:20px;}
.payslip-main,.payslip-summary{min-width:0;}
.payslip-summary{top:16px;}
.payslip-related{margin-top:20px;overflow:hidden;}
.payslip-related .panel-h{padding:14px 16px;}
.payslip-related .minilist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;padding:0 16px;}
.payslip-related .mli{min-width:0;padding:12px 0;}
.payslip-related .ml-doc{flex:none;white-space:nowrap;}
.payslip-related .ml-main{overflow-wrap:anywhere;}
.payslip-actionbar{position:sticky;bottom:0;z-index:7;display:flex;align-items:center;gap:14px;margin-top:16px;padding:11px 14px;border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--material);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:var(--shadow);}
.payslip-action-context{display:flex;flex-direction:column;gap:2px;min-width:0;color:var(--muted);font-size:calc(12px * var(--fs,1));line-height:1.35;}
.payslip-action-context b{color:var(--fg);font-size:calc(12.5px * var(--fs,1));}
.payslip-action-context small{color:var(--muted);font-size:calc(11.5px * var(--fs,1));}

@media(max-width:980px){
  .payslip-layout{grid-template-columns:1fr;}
  .payslip-summary{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;}
  .payslip-related .minilist{grid-template-columns:1fr;}
}
@media(max-width:620px){
  .payslip-page{padding-left:14px;padding-right:14px;}
  .payslip-summary{grid-template-columns:1fr;}
  .payslip-related{margin-top:14px;}
  .payslip-related .mli{align-items:flex-start;flex-wrap:wrap;}
  .payslip-related .ml-main{flex-basis:calc(100% - 110px);}
  .payslip-actionbar{margin-left:0;margin-right:0;}
}
#setupWizardView .wizard-savebar{padding-inline:0;justify-content:flex-end;}
/* Setup wizard language-card layout overrides the compact generic stepper. */
#setupWizardView .stepper{margin:48px 0 0;}
#setupWizardView .step .sdot{width:38px;height:38px;}
#setupWizardView .step.current .sdot{box-shadow:0 0 0 5px var(--accent-tint);}
#setupWizardView .stepline{min-width:12px;margin:0 10px;}
@media (max-width:560px){
  #setupWizardView .stepper{margin:42px 0 0;}
  #setupWizardView .step .sdot{width:34px;height:34px;}
  #setupWizardView .stepline{min-width:8px;margin:0 6px;}
}
@media (max-width:760px){
  .set-rail{display:none;}
  .set-grid{grid-template-columns:1fr;}
  .set-sec .set-row:not(.top){flex-direction:column;align-items:stretch;gap:10px;}
  .set-row-c{min-width:0;width:100%;flex-wrap:wrap;}
  .set-row-c .seg{flex-wrap:wrap;max-width:100%;}
  .set-row-c select{min-width:150px;}
  .set-palettes{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* ===== keyboard shortcuts sheet ===== */
.modal:has(.kssheet){--modal-width:680px;}
.kssheet{display:grid;grid-template-columns:1fr 1fr;gap:4px 34px;padding:6px 20px 18px;}
.ksgroup{break-inside:avoid;}
.kshead{display:flex;align-items:baseline;gap:8px;font-size:calc(10.5px * var(--fs,1));text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-weight:700;padding:12px 2px 4px;}
.kshead span{text-transform:none;letter-spacing:0;font-weight:500;font-size:calc(11px * var(--fs,1));color:var(--muted);}
.ksrow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 2px;border-top:1px solid var(--hairline);}
.kslabel{font-size:calc(13px * var(--fs,1));color:var(--fg);}
.kskeys{display:flex;gap:4px;flex:none;}
.kskeys .kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;font-size:calc(12px * var(--fs,1));font-family:var(--sans);}
.ksfoot{padding:11px 20px calc(11px + var(--safe-bottom));color:var(--muted);font-size:calc(12px * var(--fs,1));display:flex;align-items:center;gap:7px;}
.ksfoot .kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;}
@media (max-width:760px){
  .modal:has(.kssheet){--modal-width:100vw;}
  .ksfoot{padding:10px 16px calc(10px + var(--safe-bottom));}
}
@media (max-width:640px){ .kssheet{grid-template-columns:1fr;gap:0;} }

.so-tablewrap .rowact{opacity:.5;}
.so-tablewrap .dt-r:hover .rowact,.so-tablewrap .dt-r.sel .rowact{opacity:1;}
.so-tablewrap .rowact button{border:1px solid var(--hairline);}
/* badge cells must never render text-overflow "…" — that fake ellipsis looked like a 2nd ⋯ menu */
.dt-c.cap-cell{text-overflow:clip;display:flex;align-items:center;gap:5px;}
.dt-c.cap-cell .cap{flex:none;}
.dt-c.cap-cell .flagic svg{width:13px;height:13px;}

/* ===== sales orders — KPI bar, split detail, cells, mobile cards ===== */
.so-kpibar{display:flex;gap:10px;padding:2px 24px 12px;flex:none;flex-wrap:wrap;}
.so-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px 15px;min-width:124px;border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--surface);transition:border-color .12s,background .12s,box-shadow .12s;}
.so-kpi small{font-size:calc(10.5px * var(--fs,1));text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;}
.so-kpi b{font-size:calc(20px * var(--fs,1));font-weight:600;letter-spacing:-.02em;color:var(--fg);}
.so-kpi.neg b{color:var(--danger);}
.so-kpi.clickable{cursor:pointer;}
.so-kpi.clickable:hover{border-color:var(--border);background:var(--surface-2);}
.so-kpi.accent{background:var(--warn-tint);border-color:color-mix(in srgb,var(--warn) 26%,transparent);}
.so-kpi.accent b{color:var(--warn);}
.so-kpi.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);}

.so-split{flex:1;display:flex;min-height:0;overflow:hidden;}
.so-tablewrap{flex:1;min-width:0;overflow:auto;}
.so-detailwrap{width:348px;flex:none;border-left:1px solid var(--hairline);overflow-y:auto;background:var(--material);padding:18px 18px 30px;transition:width .2s var(--ease);}
.so-detailwrap.is-empty{width:0;padding:0;border-left:none;overflow:hidden;}
.sd-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;color:var(--muted);max-width:230px;}
.sd-empty svg{width:34px;height:34px;color:var(--faint);margin-bottom:4px;}
.sd-empty b{font-size:calc(14px * var(--fs,1));color:var(--fg);font-weight:600;}
.sd-empty span{font-size:calc(12.5px * var(--fs,1));line-height:1.5;}

/* table cells */
.partnercell{display:flex;align-items:center;gap:9px;min-width:0;}
.docnum.linknum{cursor:pointer;}
.docnum.linknum:hover{color:var(--accent);text-decoration:underline;text-underline-offset:2px;}
.pmini{width:26px;height:26px;border-radius:7px;flex:none;background:var(--accent-tint);color:var(--accent);display:grid;place-items:center;font-size:calc(10.5px * var(--fs,1));font-weight:700;}
.muted-date{color:var(--muted);font-variant-numeric:tabular-nums;}
.posttag{display:inline-block;font-size:calc(10px * var(--fs,1));font-weight:600;letter-spacing:.02em;color:var(--muted);background:var(--hairline);border-radius:5px;padding:1px 6px;}
.posttag.posted{color:var(--teal);background:var(--teal-tint);}
.fulcell{display:flex;align-items:center;gap:9px;}
.fulcell .fnum{font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.01em;white-space:nowrap;}
.duecell{display:inline-flex;flex-direction:column;line-height:1.2;font-variant-numeric:tabular-nums;}
.duecell small{font-size:calc(10.5px * var(--fs,1));font-weight:600;}
.due-late{color:var(--danger);}
.due-soon{color:var(--warn);}
.flagic{display:inline-flex;vertical-align:middle;color:var(--warn);}
.flagic svg{width:15px;height:15px;}
.minibar.lg{width:100%;height:8px;}
.menusep{height:1px;background:var(--hairline);margin:5px 6px;}

/* detail panel internals */
.sd-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.sd-headr{display:flex;align-items:center;gap:6px;flex:none;}
.sd-close{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;color:var(--muted);flex:none;}
.sd-close:hover{background:var(--hairline);color:var(--fg);}
.sd-close svg{width:16px;height:16px;}
.sd-no{font-size:calc(17px * var(--fs,1));font-weight:600;letter-spacing:-.01em;color:var(--accent);}
.sd-cust{display:flex;align-items:center;gap:8px;margin-top:7px;}
.sd-cust b{font-size:calc(13.5px * var(--fs,1));font-weight:600;}
.sd-flag{display:flex;align-items:center;gap:8px;margin-top:12px;padding:8px 10px;border-radius:var(--r-s);background:var(--warn-tint);color:var(--warn);font-size:calc(12px * var(--fs,1));font-weight:500;}
.sd-flag svg{width:16px;height:16px;flex:none;}
.sd-amt{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-bottom:14px;border-bottom:1px solid var(--hairline);}
.sd-amt small{display:block;font-size:calc(10.5px * var(--fs,1));text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;margin-bottom:2px;}
.sd-amt b{font-size:calc(22px * var(--fs,1));font-weight:600;letter-spacing:-.02em;}
.sd-facts{display:grid;grid-template-columns:1fr 1fr;gap:13px 14px;margin-top:14px;}
.sd-facts small{display:block;font-size:calc(10.5px * var(--fs,1));text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;margin-bottom:3px;}
.sd-facts b{font-size:calc(13.5px * var(--fs,1));font-weight:600;}
.sd-sec{margin-top:16px;padding-top:14px;border-top:1px solid var(--hairline);}
.sd-sec-h{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:calc(10.5px * var(--fs,1));text-transform:uppercase;letter-spacing:.05em;color:var(--faint);font-weight:700;margin-bottom:10px;}
.sd-ful{display:flex;flex-direction:column;gap:7px;}
.sd-ful b{font-size:calc(12.5px * var(--fs,1));font-weight:600;color:var(--muted);}
.sd-timeline{display:flex;flex-direction:column;gap:0;}
.tl-step{display:flex;align-items:center;gap:10px;font-size:calc(12.5px * var(--fs,1));color:var(--muted);position:relative;padding:5px 0 5px 1px;}
.tl-dot{width:18px;height:18px;border-radius:50%;flex:none;border:2px solid var(--border);background:var(--surface);display:grid;place-items:center;}
.tl-dot svg{width:11px;height:11px;color:#fff;}
.tl-step:not(:last-child)::before{content:"";position:absolute;left:8px;top:23px;bottom:-5px;width:2px;background:var(--hairline);}
.tl-step.done{color:var(--fg);}
.tl-step.done .tl-dot{background:var(--accent);border-color:var(--accent);}
.tl-step.done:not(:last-child)::before{background:var(--accent);}
.tl-step.current{color:var(--fg);font-weight:600;}
.tl-step.current .tl-dot{border-color:var(--accent);box-shadow:inset 0 0 0 3px var(--accent);}
.tl-step.danger{color:var(--danger);font-weight:600;}
.tl-step.danger .tl-dot{background:var(--danger);border-color:var(--danger);}
.sd-actions{margin-top:20px;display:flex;flex-direction:column;gap:9px;}
.sd-actions .btn{width:100%;justify-content:center;}
.sd-actrow{display:flex;gap:9px;}
.sd-actrow .btn{flex:1;}

/* mobile cards (hidden on desktop) */
.so-cards{display:none;}
.so-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);padding:13px 14px;display:flex;flex-direction:column;gap:11px;}
.so-card .sc-top{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.so-card .sc-top .docnum{font-size:calc(14px * var(--fs,1));}
.so-card .sc-cust{display:flex;align-items:center;gap:9px;}
.so-card .sc-cust b{font-size:calc(13.5px * var(--fs,1));font-weight:600;}
.so-card .sc-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px 14px;}
.so-card .sc-grid small{display:block;font-size:calc(10.5px * var(--fs,1));text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;margin-bottom:3px;}
.so-card .sc-grid b{font-size:calc(13.5px * var(--fs,1));font-weight:600;}
.so-card .sc-act .btn{width:100%;justify-content:center;}

@media (max-width:980px){
  .so-kpibar{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding:2px 16px 12px;}
  .so-kpibar::-webkit-scrollbar{display:none;}
  .so-kpi{min-width:118px;flex:none;}
  .so-split{display:none;}
  .so-cards{display:flex;flex-direction:column;gap:11px;flex:1;overflow-y:auto;padding:4px 16px 24px;}
}
.calendar-workspace{display:flex;flex-direction:column;gap:12px;min-width:0;padding:4px 24px 28px}
.calendar-workspace-header,.calendar-workspace-filters,.calendar-nav,.calendar-view-switch{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap
}
.calendar-workspace-header{justify-content:space-between;padding:12px 14px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm)}
.calendar-nav>b{min-width:120px;margin-left:4px;font-size:14px;letter-spacing:-.01em}
.calendar-view-switch{padding:3px;background:var(--surface-2);border-radius:10px}
.calendar-view-switch .btn{min-width:52px;border-color:transparent;box-shadow:none}
.calendar-workspace-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.calendar-summary-card{display:flex;align-items:center;gap:11px;min-width:0;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:13px}
.calendar-summary-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;flex:none}
.calendar-summary-icon svg{width:17px;height:17px}.calendar-summary-icon.blue{color:var(--accent);background:var(--accent-soft)}
.calendar-summary-icon.green{color:var(--ok);background:var(--ok-soft)}.calendar-summary-icon.amber{color:var(--warn);background:var(--warn-soft)}
.calendar-summary-icon.red{color:var(--danger);background:var(--danger-soft)}
.calendar-summary-card div{display:flex;flex-direction:column;gap:2px;min-width:0}.calendar-summary-card small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-summary-card b{font-size:20px;font-variant-numeric:tabular-nums;line-height:1}
.calendar-workspace-filters{padding:10px 12px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:13px}
.calendar-workspace-filters .fld{min-width:150px;margin:0}
.calendar-workspace-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,300px);gap:12px;min-height:570px}
.calendar-workspace-main.modal-detail{grid-template-columns:minmax(0,1fr)}
.calendar-workspace-surface,.calendar-workspace-detail{background:var(--surface,#fff);border:1px solid var(--line);border-radius:12px;min-width:0}
.calendar-workspace-surface{overflow:auto;box-shadow:var(--shadow-sm)}
.calendar-workspace-detail{position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}
@media(min-width:981px){
  .calendar-workspace-detail{position:sticky;top:12px;align-self:start;max-height:calc(100vh - 170px);overflow:auto;}
}
.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(104px,1fr));min-width:728px}
.calendar-weekday{position:sticky;top:0;z-index:2;padding:10px;font-size:11px;font-weight:700;text-align:center;color:var(--muted);background:var(--surface);border-bottom:1px solid var(--line)}
.calendar-day{min-height:88px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);transition:background .12s}
.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:var(--surface-2);color:var(--muted)}
.calendar-day.today{background:color-mix(in srgb,var(--accent-soft) 52%,var(--surface))}.calendar-day-number{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:12px;font-weight:700;margin-bottom:5px}
.calendar-day.today .calendar-day-number>span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--accent-action);color:#fff}
.calendar-day-number small{font-size:9px;color:var(--accent);font-weight:700}
.calendar-event{display:flex;width:100%;align-items:center;gap:6px;border:1px solid transparent;border-radius:7px;padding:4px 6px;margin:3px 0;text-align:left;font-size:11px;cursor:pointer;transition:border-color .12s,transform .12s}
.calendar-event:hover{transform:translateY(-1px);border-color:currentColor}.calendar-event.selected{outline:2px solid var(--accent);outline-offset:1px}
.calendar-event-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.calendar-event-copy{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.calendar-event-copy b,.calendar-event-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event-copy b{font-size:10.5px}.calendar-event-copy small{font-size:9px;opacity:.8}
.calendar-event strong{margin-left:auto;font-size:10px}
.calendar-event.ok{background:var(--ok-soft,#e8f7ef);color:var(--ok,#137a44)}
.calendar-event.warn{background:var(--warn-soft,#fff4d8);color:var(--warn,#8a5b00)}
.calendar-event.neutral{background:var(--soft,#eef1f5);color:var(--muted)}
.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(135px,1fr));min-width:945px}
.calendar-week-day{min-height:430px;border-right:1px solid var(--line);padding:8px}
.calendar-week-day header{display:flex;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--line)}
.calendar-list{display:flex;flex-direction:column}
.calendar-list-row{display:grid;grid-template-columns:180px minmax(150px,1fr) minmax(120px,1fr) auto auto;gap:10px;align-items:center;padding:12px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}
.calendar-list-row:hover{background:var(--soft,#f6f7f9)}
.calendar-overview{display:flex;flex-direction:column;gap:14px;padding:18px}.calendar-overview-hero{display:flex;align-items:flex-start;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.calendar-overview-hero>svg{width:22px;height:22px;color:var(--accent);flex:none}.calendar-overview h2{font-size:17px;margin:0 0 5px}.calendar-overview p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.calendar-overview-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.calendar-overview-facts>div{padding:10px 8px;background:var(--surface-2);border-radius:9px;text-align:center}
.calendar-overview-facts small{display:block;color:var(--muted);font-size:9px;line-height:1.25;margin-bottom:4px}.calendar-overview-facts b{font-size:18px;font-variant-numeric:tabular-nums}
.calendar-detail-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--accent-soft);color:var(--accent);flex:none}.calendar-detail-icon svg{width:22px;height:22px}
.calendar-detail-modal-context{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:0 0 13px;border-bottom:1px solid var(--hairline)}
.calendar-detail-modal-context .sub{min-width:0;color:var(--muted);font-size:calc(13px * var(--fs,1));line-height:1.4}
.calendar-detail-modal-content{display:flex;flex-direction:column;gap:12px}
.calendar-detail-modal-content .alert,.calendar-detail-modal-content .card{margin:0}
.modal.calendar-detail-modal .modal-foot{flex-wrap:wrap;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
[data-hr-calendar] .calendar-list-row b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-hr-calendar] .calendar-list-row .cap{white-space:nowrap}
.calendar-workspace-actions{border:1px solid var(--line);border-radius:12px;padding:10px 12px}
@media(max-width:980px){
  .calendar-workspace{padding:4px 16px 88px}.calendar-workspace-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calendar-workspace-header{align-items:flex-start}.calendar-nav{flex:1}.calendar-nav>b{order:-1;flex:1 0 100%;margin:0;font-size:16px}
  .calendar-workspace-filters{overflow-x:auto;flex-wrap:nowrap}.calendar-workspace-filters .fld{min-width:145px;flex:none}
  .calendar-workspace-main{display:block;min-height:0}
  .calendar-workspace-detail{position:fixed;inset:0 0 0 auto;width:min(92vw,420px);z-index:120;transform:translateX(105%);transition:transform .2s}
  .calendar-workspace-detail.open{transform:translateX(0)}
  .calendar-list{gap:8px;padding:8px;background:var(--surface-2)}.calendar-list-row{grid-template-columns:1fr auto;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:12px}.calendar-list-row>span:nth-child(3){display:none}
  .calendar-workspace-actions{align-items:flex-start}.calendar-workspace-actions>.muted{flex:1 0 100%;font-size:11px}
}
@media(max-width:520px){
  .calendar-workspace-summary{gap:8px}.calendar-summary-card{padding:10px}.calendar-summary-icon{width:30px;height:30px}.calendar-summary-card b{font-size:18px}
  .calendar-view-switch{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.calendar-view-switch .btn{width:100%}
}

@media(max-width:760px){
  .modal.calendar-detail-modal{width:100vw!important;height:100dvh;max-height:100dvh;border-radius:0}
  .modal.calendar-detail-modal .modal-head{padding:16px 16px 12px}
  .modal.calendar-detail-modal .modal-body{padding:14px 16px 18px}
  .modal.calendar-detail-modal .modal-foot{gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px))}
  .modal.calendar-detail-modal .modal-foot .btn{width:100%;min-width:0;flex:0 0 auto}
}

@media(max-width:760px){
  [data-hr-calendar-listing] .table-listing .dt-head .dt-c{padding-top:8px;padding-bottom:8px;}
  [data-hr-calendar-listing] .calendar-listing-date{gap:5px;}
}

/* ===== Platform Superadmin workspace =====
   The authenticated platform realm owns its own scroll shell. Keeping the
   body scroll inside the card prevents long provisioning forms and entitlement
   tables from pushing actions below the viewport or making the auth page
   horizontally scrollable. Bootstrap registration deliberately remains a
   normal auth panel and is not covered by this scope. */
.platform-demo-login{display:grid;gap:7px;margin:0 0 2px;padding:10px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:var(--r-s);background:color-mix(in srgb,var(--accent-tint) 82%,var(--surface));}
.platform-demo-login .btn{width:100%;justify-content:center;min-height:44px;}
.platform-demo-login small{color:var(--muted);font-size:calc(11px * var(--fs,1));line-height:1.4;}
.platform-demo-login code{font-size:.95em;}
.platform-workspace-view{
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:20px;
  overflow:hidden;
  overscroll-behavior:none;
}
.platform-workspace-locked{overflow:hidden;overscroll-behavior:none;}
.platform-workspace-view .platform-shell{
  width:min(1180px,calc(100vw - 40px));
  height:80vh;
  min-height:0;
  max-height:80vh;
  margin:0 auto;
  padding:0;
  gap:0;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  overflow:hidden;
  box-sizing:border-box;
}
.platform-shell-header{
  position:sticky;
  top:0;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-width:0;
  padding:20px 28px 0;
  background:var(--surface);
}
.platform-shell-header .auth-brand{min-width:0;}
.platform-shell-header .auth-brand>span:last-child{min-width:0;}
.platform-shell-header .auth-brand small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.platform-shell-header-compact-user{display:none;}
.platform-shell-header .btn{width:auto;flex:none;}
.platform-shell-intro{
  position:sticky;
  top:0;
  z-index:4;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  min-width:0;
  padding:16px 28px 14px;
  background:var(--surface);
  border-bottom:1px solid var(--hairline);
}
.platform-shell-intro .auth-copy{flex:1;min-width:0;}
.platform-shell-intro .auth-copy h1{font-size:calc(29px * var(--fs,1));}
.platform-shell-intro.has-progress{display:grid;grid-template-columns:minmax(0,1fr);}
.platform-shell-intro.has-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,680px);}
.platform-shell-intro.has-progress .auth-copy{grid-column:1;min-width:0;}
.platform-shell-intro.has-progress .platform-shell-toolbar{grid-column:2;min-width:0;width:100%;}
.platform-shell-intro.has-toolbar .auth-copy{grid-column:1;min-width:0;}
.platform-shell-toolbar-context{grid-column:2;min-width:0;width:100%;}
.platform-intro-context{min-width:0;margin-top:12px;}
.platform-intro-context>summary,.platform-shell-toolbar-context>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;min-height:44px;padding:8px 11px;border:1px solid var(--hairline);border-radius:var(--r-s);background:var(--surface-2);color:var(--text);cursor:pointer;list-style:none;}
.platform-intro-context>summary::-webkit-details-marker,.platform-shell-toolbar-context>summary::-webkit-details-marker{display:none;}
.platform-intro-context>summary:hover,.platform-intro-context[open]>summary,.platform-shell-toolbar-context>summary:hover,.platform-shell-toolbar-context[open]>summary{border-color:color-mix(in srgb,var(--accent) 42%,var(--hairline));}
.platform-intro-context>summary:focus-visible,.platform-shell-toolbar-context>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.platform-intro-context-summary{display:flex;align-items:baseline;gap:9px;min-width:0;}
.platform-toolbar-context-summary{display:grid;gap:2px;min-width:0;}
.platform-intro-context-label{color:var(--muted);font-size:calc(10.5px * var(--fs,1));font-weight:750;letter-spacing:.04em;text-transform:uppercase;}
.platform-intro-context-summary strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(12.5px * var(--fs,1));}
.platform-toolbar-context-label{color:var(--muted);font-size:calc(10.5px * var(--fs,1));font-weight:750;letter-spacing:.04em;text-transform:uppercase;}
.platform-toolbar-context-summary strong,.platform-toolbar-context-company{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.platform-toolbar-context-summary strong{font-size:calc(12.5px * var(--fs,1));}
.platform-toolbar-context-company{color:var(--muted);font-size:calc(11.5px * var(--fs,1));}
.platform-intro-context-chevron{display:grid;place-items:center;flex:none;color:var(--muted);transition:transform .16s ease;}
.platform-intro-context-chevron .ico{width:16px;height:16px;}
.platform-intro-context[open] .platform-intro-context-chevron,.platform-shell-toolbar-context[open] .platform-intro-context-chevron{transform:rotate(180deg);}
.platform-intro-context-body{min-width:0;}
.platform-shell-toolbar-context-body{min-width:0;}
.platform-intro-context-body>p{margin:8px 0 0;color:var(--muted);font-size:calc(13.5px * var(--fs,1));line-height:1.55;}
.platform-intro-context-body>.platform-shell-progress{margin-top:14px;}
.platform-shell-progress{min-width:0;}
.platform-shell-progress .platform-stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 18px;}
.platform-stepper{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0 0;padding:0;list-style:none;min-width:0;}
.platform-step{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:calc(11px * var(--fs,1));font-weight:600;line-height:1.35;}
.platform-step>span{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);font-size:11px;font-weight:700;flex:none;}
.platform-step-label-short{display:none;}
.platform-step.current{color:var(--text);}
.platform-step.current>span{border-color:var(--accent-action);background:var(--accent-action);color:#fff;}
.platform-step.complete{color:var(--text);}
.platform-step.complete>span{border-color:var(--ok,#1d9b65);background:var(--ok,#1d9b65);color:#fff;}
.platform-demo-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:14px 0 0;padding:11px 12px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:var(--r-s);background:color-mix(in srgb,var(--accent-tint) 82%,var(--surface));color:var(--text);}
.platform-demo-banner>div{display:grid;gap:3px;min-width:0;}
.platform-demo-banner strong{font-size:calc(12px * var(--fs,1));}
.platform-demo-banner span{color:var(--muted);font-size:calc(11px * var(--fs,1));line-height:1.4;}
.platform-demo-banner-close{width:auto;min-width:0;flex:none;padding:6px 9px;font-size:11px;}
.platform-shell-toolbar{
  flex:0 1 680px;
  min-width:320px;
  align-items:end;
}
.platform-workspace-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:12px;min-width:0;}
.platform-create-company-trigger{align-self:end;width:auto;min-width:0;min-height:44px;white-space:nowrap;}
.platform-shell-body{
  min-height:0;
  min-width:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
  scroll-padding-block:16px calc(24px + env(safe-area-inset-bottom,0px));
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:20px 28px 28px;
}
.platform-shell-body>.auth-error{flex:none;}
.platform-workspace-status{flex:none;padding:11px 13px;border:1px solid color-mix(in srgb,var(--ok,#1d9b65) 30%,var(--line));border-radius:var(--r-s);background:color-mix(in srgb,var(--ok,#1d9b65) 9%,var(--surface));color:var(--text);font-size:calc(12.5px * var(--fs,1));line-height:1.45;}
.platform-workspace-status:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.platform-shell-body>.platform-workspace-grid{display:grid;gap:16px;min-width:0;}
.platform-provision-panel,
.platform-entitlement-card,
.platform-simulation-panel{
  min-width:0;
  background:var(--surface-2);
  border:1px solid var(--hairline);
  border-radius:var(--r-m);
  padding:20px;
}
.platform-provision-panel h2,
.platform-entitlement-card h2,
.platform-simulation-panel h2{margin:0;font-size:calc(18px * var(--fs,1));letter-spacing:-.015em;}
.platform-provision-panel p,
.platform-entitlement-card p,
.platform-simulation-panel p{margin:7px 0 0;color:var(--muted);font-size:calc(12.5px * var(--fs,1));line-height:1.5;}
.platform-panel-heading{margin-bottom:16px;}
.platform-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  min-width:0;
}
.platform-form-section{display:flex;flex-direction:column;gap:12px;margin:4px 0 2px;}
.platform-form-section+ .platform-form-section{padding-top:16px;border-top:1px solid var(--hairline);}
.platform-form-section h3{margin:0;font-size:calc(14px * var(--fs,1));letter-spacing:-.005em;}
.platform-form-section h3 small{color:var(--muted);font-size:.85em;font-weight:500;}
.platform-module-selection{min-width:0;margin:4px 0 0;padding:14px;border:1px solid var(--hairline);border-radius:var(--r-m);}
.platform-module-selection legend{padding:0 7px;color:var(--muted);font-size:calc(11px * var(--fs,1));font-weight:700;letter-spacing:.05em;text-transform:uppercase;}
.platform-provision-module-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px 12px;
  min-width:0;
}
.platform-module-option{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  min-height:34px;
  padding:6px 8px;
  border:1px solid transparent;
  border-radius:var(--r-s);
  cursor:pointer;
  user-select:none;
}
.platform-module-option:hover{background:var(--accent-tint);border-color:var(--accent-tint);}
.platform-module-option input{width:17px;height:17px;flex:none;margin:0;accent-color:var(--accent);}
.platform-module-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(12.5px * var(--fs,1));}
.platform-shell-actionbar{
  position:sticky;
  bottom:0;
  z-index:6;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  min-width:0;
  padding:12px 28px calc(12px + env(safe-area-inset-bottom,0px));
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  border-top:1px solid var(--hairline);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}
.platform-shell-actionbar .auth-error{min-width:0;flex:1;margin:0;}
.platform-shell-actionbar .auth-error:empty{display:none;}
.platform-shell-actionbar .btn{width:auto;min-width:180px;min-height:44px;flex:none;}
.platform-entitlement-grid{display:block;min-width:0;}
.platform-entitlement-card{overflow:visible;}
.platform-entitlement-workspace [hidden]{display:none !important;}
.platform-entitlement-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.platform-entitlement-heading p{margin:.35em 0 0;}
.platform-entitlement-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:16px 0 12px;padding:5px;border:1px solid var(--hairline);border-radius:var(--r-m);background:color-mix(in srgb,var(--surface) 78%,var(--surface-2));}
.platform-entitlement-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:64px;padding:8px 10px;border:1px solid transparent;border-radius:calc(var(--r-m) - 4px);background:transparent;color:var(--muted);font:inherit;font-weight:700;text-align:center;cursor:pointer;}
.platform-entitlement-tab span{min-width:0;max-width:100%;font-size:calc(13px * var(--fs,1));line-height:1.25;overflow-wrap:anywhere;}
.platform-entitlement-tab small{max-width:100%;color:inherit;font-size:calc(10.5px * var(--fs,1));font-weight:600;line-height:1.25;overflow-wrap:anywhere;}
.platform-entitlement-tab:hover{background:var(--surface);color:var(--text);}
.platform-entitlement-tab[aria-selected="true"]{border-color:color-mix(in srgb,var(--accent) 26%,var(--hairline));background:var(--surface);box-shadow:var(--shadow);color:var(--text);}
.platform-entitlement-tab:focus-visible,.platform-entitlement-workspace button:focus-visible,.platform-entitlement-workspace input:focus-visible,.platform-entitlement-workspace select:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.platform-entitlement-guidance{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:11px 13px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--hairline));border-radius:var(--r-s);background:color-mix(in srgb,var(--accent-tint) 54%,var(--surface));color:var(--text);}
.platform-entitlement-guidance-mark{display:grid;place-items:center;flex:none;width:22px;height:22px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--hairline));border-radius:50%;color:var(--accent);font-size:calc(13px * var(--fs,1));font-weight:800;line-height:1;}
.platform-entitlement-guidance p,.platform-entitlement-guidance small{display:block;margin:0;line-height:1.45;}
.platform-entitlement-guidance p{font-size:calc(12px * var(--fs,1));font-weight:700;}
.platform-entitlement-guidance small{margin-top:2px;color:var(--muted);font-size:calc(11px * var(--fs,1));}
.platform-entitlement-panel{min-width:0;}
.platform-entitlement-context{display:flex;align-items:baseline;gap:7px;margin-bottom:12px;color:var(--muted);font-size:calc(11px * var(--fs,1));}
.platform-entitlement-context strong{color:var(--text);font-size:calc(13px * var(--fs,1));}
.platform-entitlement-tools{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,220px);gap:12px;margin-bottom:12px;}
.platform-entitlement-tools .fld{min-width:0;}
.platform-table-wrap{max-width:100%;overflow:visible;}
.platform-table-wrap table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;}
.platform-table-wrap th,.platform-table-wrap td{min-width:0;padding:11px 10px;border-bottom:1px solid var(--hairline);vertical-align:middle;white-space:normal;overflow-wrap:anywhere;}
.platform-table-wrap thead th{position:sticky;top:-20px;z-index:2;background:var(--surface-2);color:var(--muted);font-size:calc(10.5px * var(--fs,1));font-weight:750;letter-spacing:.035em;text-transform:uppercase;}
.platform-table-wrap th:first-child,.platform-table-wrap td:first-child{width:18%;}
.platform-table-wrap th:nth-child(2),.platform-table-wrap td:nth-child(2){width:22%;}
.platform-table-wrap th:nth-child(3),.platform-table-wrap td:nth-child(3){width:18%;}
.platform-table-wrap th:nth-child(4),.platform-table-wrap td:nth-child(4){width:23%;}
.platform-table-wrap th:last-child,.platform-table-wrap td:last-child{width:19%;}
.platform-table-wrap tbody th{text-align:left;}
.platform-table-wrap tbody th b{display:block;color:var(--text);font-size:calc(13px * var(--fs,1));}
.platform-table-wrap tbody th small{display:block;margin-top:2px;color:var(--muted);font-size:calc(10.5px * var(--fs,1));font-weight:500;}
.platform-table-wrap tbody tr{transition:background-color .16s ease,box-shadow .16s ease;}
.platform-table-wrap tbody tr:hover{background:color-mix(in srgb,var(--accent-tint) 48%,transparent);}
.platform-table-wrap tbody tr.is-dirty{background:color-mix(in srgb,var(--warn,#b7791f) 8%,var(--surface-2));box-shadow:inset 3px 0 color-mix(in srgb,var(--warn,#b7791f) 75%,var(--accent));}
.platform-dependency-list{display:flex;flex-wrap:wrap;gap:5px;}
.platform-dependency-list span{display:inline-flex;max-width:100%;padding:3px 7px;border:1px solid var(--hairline);border-radius:999px;background:var(--surface);color:var(--muted);font-size:calc(10.5px * var(--fs,1));line-height:1.25;}
.platform-dependency-empty{display:inline-flex;align-items:center;max-width:100%;padding:4px 8px;border:1px solid var(--hairline);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:calc(10.5px * var(--fs,1));line-height:1.25;}
.platform-switch{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:38px;cursor:pointer;user-select:none;}
.platform-switch input{position:absolute;top:50%;left:19px;width:1px;height:1px;margin:0;overflow:hidden;opacity:0;pointer-events:none;transform:translate(-50%,-50%);}
.platform-switch-track{display:inline-flex;align-items:center;width:38px;height:22px;padding:2px;border:1px solid color-mix(in srgb,var(--muted) 40%,var(--hairline));border-radius:999px;background:var(--surface);transition:background-color .16s ease,border-color .16s ease;}
.platform-switch-track span{display:block;width:16px;height:16px;border-radius:50%;background:var(--muted);box-shadow:0 1px 2px rgba(15,23,42,.18);transition:transform .16s ease,background-color .16s ease;}
.platform-switch input:checked+.platform-switch-track{border-color:var(--accent);background:var(--accent);}
.platform-switch input:checked+.platform-switch-track span{transform:translateX(16px);background:#fff;}
.platform-switch input:focus-visible+.platform-switch-track{outline:2px solid var(--accent);outline-offset:2px;}
.platform-switch-label{color:var(--text);font-size:calc(11.5px * var(--fs,1));font-weight:650;}
.platform-status-badge{display:inline-flex;align-items:center;min-height:25px;padding:4px 8px;border:1px solid var(--hairline);border-radius:999px;font-size:calc(10.5px * var(--fs,1));font-weight:700;line-height:1.2;}
.platform-status-badge.enabled,.platform-status-badge.effective{border-color:color-mix(in srgb,var(--ok,#1d9b65) 30%,var(--hairline));background:color-mix(in srgb,var(--ok,#1d9b65) 9%,var(--surface));color:var(--ok,#157a50);}
.platform-status-badge.disabled,.platform-status-badge.blocked{background:color-mix(in srgb,var(--muted) 7%,var(--surface));color:var(--muted);}
.platform-row-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px;}
.platform-row-actions .btn,.platform-reload-master,.platform-reload-company{min-height:34px;padding:7px 10px;}
.platform-row-clean{color:var(--muted);}
.platform-row-unsaved{color:var(--warn,#9a6700);font-size:calc(10.5px * var(--fs,1));font-weight:750;}
.platform-row-feedback,.platform-row-error{margin-top:5px;font-size:calc(10.5px * var(--fs,1));line-height:1.35;}
.platform-row-feedback{color:var(--ok,#157a50);}
.platform-row-error{color:var(--danger,#c62828);}
.platform-row-error:empty,.platform-row-feedback:empty{display:none;}
.platform-reload-master,.platform-reload-company{margin-top:6px;}
.platform-entitlement-empty{margin:14px 0 0 !important;padding:14px;border:1px dashed var(--hairline);border-radius:var(--r-s);text-align:center;}
.platform-simulation-panel{width:100%;}
.platform-simulation-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:14px;}
.platform-simulation-controls .fld{min-width:0;}
.platform-simulation-controls .btn{align-self:end;min-width:190px;}
.platform-tenant-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px;}
.platform-tenant-entry-card{display:grid;align-content:start;gap:10px;min-width:0;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);}
.platform-tenant-entry-card h3,.platform-tenant-entry-card p{margin:0;}
.platform-tenant-entry-card .btn{min-height:44px;margin-top:auto;}

@media (min-width:601px) and (max-width:980px){
  .platform-provision-module-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .platform-shell-intro{flex-direction:column;}
  .platform-shell-intro.has-progress,.platform-shell-intro.has-progress.has-toolbar{grid-template-columns:minmax(0,1fr);}
  .platform-shell-intro.has-progress .platform-shell-toolbar{grid-column:1;}
  .platform-shell-toolbar{width:100%;min-width:0;flex-basis:auto;}
}
@media (min-width:601px){
  .platform-intro-context{margin-top:0;}
  .platform-shell-toolbar-context{margin-top:0;}
  .platform-intro-context>summary,.platform-shell-toolbar-context>summary{display:none;}
}
@media (max-width:1100px){
  .platform-shell-intro.has-progress,
  .platform-shell-intro.has-toolbar{display:flex;flex-direction:column;}
  .platform-shell-intro.has-progress .auth-copy,
  .platform-shell-intro.has-progress .platform-shell-toolbar,
  .platform-shell-intro.has-progress .platform-shell-progress,
  .platform-shell-intro.has-toolbar .auth-copy,
  .platform-shell-intro.has-toolbar .platform-shell-toolbar-context{grid-column:auto;width:100%;}
  .platform-shell-intro.has-progress .auth-copy,
  .platform-shell-intro.has-toolbar .auth-copy{flex:none;}
  .platform-shell-intro.has-progress .platform-shell-toolbar{flex:0 0 auto;}
  .platform-shell-intro.has-progress .platform-shell-toolbar-context,
  .platform-shell-intro.has-toolbar .platform-shell-toolbar-context{flex:0 0 auto;}
}
@media (max-width:980px){
  .platform-workspace-view{place-items:stretch;padding:calc(28px + var(--safe-top,0px)) max(28px,var(--safe-right,0px)) calc(28px + var(--safe-bottom,0px)) max(28px,var(--safe-left,0px));overflow:hidden;}
  .platform-workspace-view .platform-shell{width:100%;height:calc(100dvh - 56px - var(--safe-top,0px) - var(--safe-bottom,0px));max-height:none;margin:0;}
  .platform-shell-actionbar{padding-inline:28px;}
}
@media (max-width:768px){
  .platform-entitlement-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:14px;}
  .platform-entitlement-tab{min-height:58px;padding-inline:6px;}
  .platform-entitlement-tools{grid-template-columns:minmax(0,1fr);}
  .platform-entitlement-context{align-items:flex-start;flex-direction:column;gap:3px;}
  .platform-table-wrap table,.platform-table-wrap tbody,.platform-table-wrap tr,.platform-table-wrap th,.platform-table-wrap td{display:block;width:100%;}
  .platform-table-wrap table{table-layout:auto;}
  .platform-table-wrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}
  .platform-table-wrap tbody{display:grid;gap:10px;}
  .platform-table-wrap tbody tr{display:grid;padding:13px;border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow);}
  .platform-table-wrap tbody tr.is-dirty{background:color-mix(in srgb,var(--warn,#b7791f) 7%,var(--surface));box-shadow:inset 3px 0 color-mix(in srgb,var(--warn,#b7791f) 75%,var(--accent));}
  .platform-table-wrap tbody th,.platform-table-wrap tbody td{display:flex;flex-direction:column;align-items:flex-start;gap:5px;width:100% !important;min-width:0;padding:9px 0;border-bottom:1px solid var(--hairline);}
  .platform-table-wrap tbody th{grid-column:1/-1;padding-top:0;}
  .platform-table-wrap tbody td::before{content:attr(data-label);color:var(--muted);font-size:calc(10.5px * var(--fs,1));font-weight:750;letter-spacing:.035em;text-transform:uppercase;}
  #platformMasterPanel tbody tr,#platformCompanyPanel tbody tr{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;}
  #platformMasterPanel tbody td.platform-module-dependencies{grid-column:1/-1;min-height:42px;justify-content:center;padding-block:5px;}
  #platformMasterPanel tbody td.platform-module-dependencies::before{display:none;}
  #platformMasterPanel tbody td:nth-child(3),#platformMasterPanel tbody td:nth-child(4){min-width:0;}
  #platformMasterPanel tbody td:last-child,#platformCompanyPanel tbody td:nth-child(3),#platformCompanyPanel tbody td:last-child{grid-column:1/-1;}
  #platformCompanyPanel tbody td:nth-child(3){align-items:flex-start;}
  .platform-table-wrap tbody td:last-child{display:block;padding-bottom:0;border-bottom:0;}
  .platform-table-wrap tbody td:last-child::before{display:block;margin-bottom:5px;}
  .platform-row-actions{justify-content:flex-start;}
  .platform-row-actions .btn,.platform-reload-master,.platform-reload-company{min-height:44px;padding-block:9px;}
  .platform-switch{min-height:44px;}
}
@media (max-width:600px){
  .platform-workspace-view{padding:calc(18px + var(--safe-top,0px)) max(18px,var(--safe-right,0px)) calc(18px + var(--safe-bottom,0px)) max(18px,var(--safe-left,0px));}
  .platform-workspace-view .platform-shell{height:calc(100dvh - 36px - var(--safe-top,0px) - var(--safe-bottom,0px));border-radius:14px;}
  .platform-shell-header{align-items:flex-start;gap:10px;padding:16px 16px 0;}
  .platform-shell-header .auth-brand{align-items:flex-start;gap:9px;}
  .platform-shell-header .auth-brand>span:last-child{flex:1 1 auto;overflow:hidden;}
  .platform-shell-header .auth-brand small{max-width:100%;white-space:nowrap;font-size:calc(11px * var(--fs,1));line-height:1.15;}
  .platform-shell-header-compact-user{display:none;}
  .platform-shell-header .btn{min-height:44px;padding:9px 11px;}
  .platform-shell-intro,.platform-shell-intro.has-progress,.platform-shell-intro.has-toolbar{display:block;padding:12px 16px 13px;}
  .platform-shell-intro .auth-copy h1{font-size:calc(22px * var(--fs,1));line-height:1.15;}
  .platform-intro-context{margin-top:8px;}
  .platform-intro-context>summary{min-height:40px;padding:7px 10px;line-height:1.2;}
  .platform-intro-context-summary{gap:7px;align-items:baseline;flex-direction:row;}
  .platform-intro-context-label{flex:none;font-size:calc(9px * var(--fs,1));line-height:1.1;}
  .platform-intro-context-summary strong{font-size:calc(11px * var(--fs,1));line-height:1.2;}
  .platform-intro-context-body{padding:0 2px;}
  .platform-intro-context-body>p{margin-top:10px;font-size:calc(13px * var(--fs,1));}
  .platform-shell-toolbar-context{margin-top:8px;}
  .platform-shell-toolbar-context>summary{min-height:44px;padding:7px 10px;line-height:1.2;}
  .platform-toolbar-context-summary{grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:7px;row-gap:1px;align-items:baseline;}
  .platform-toolbar-context-label{grid-column:1;grid-row:1;flex:none;font-size:calc(9px * var(--fs,1));line-height:1.1;}
  .platform-toolbar-context-summary strong{grid-column:2;grid-row:1;font-size:calc(11px * var(--fs,1));line-height:1.2;}
  .platform-toolbar-context-company{grid-column:2;grid-row:2;font-size:calc(10px * var(--fs,1));line-height:1.15;}
  .platform-shell-toolbar-context-body{padding:0 2px;}
  .platform-shell.has-entitlement-workspace.platform-shell--scroll-compact .platform-shell-header{align-items:center;padding-top:5px;}
  .platform-shell.has-entitlement-workspace.platform-shell--scroll-compact .platform-shell-header .auth-brand{align-items:center;}
  .platform-shell.has-entitlement-workspace.platform-shell--scroll-compact .platform-shell-header .auth-brand .mark{width:32px;height:32px;border-radius:9px;}
  .platform-shell.has-entitlement-workspace.platform-shell--scroll-compact .platform-shell-header .auth-brand small{max-width:100%;white-space:nowrap;font-size:calc(10px * var(--fs,1));line-height:1.15;}
  .platform-shell.has-entitlement-workspace.platform-shell--scroll-compact .platform-shell-header-full-subtitle{display:none;}
  .platform-shell.has-entitlement-workspace.platform-shell--scroll-compact .platform-shell-header-compact-user{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .platform-shell.has-entitlement-workspace.platform-shell--scroll-compact .platform-shell-intro{padding:4px 16px 6px;}
  .platform-shell.has-entitlement-workspace.platform-shell--scroll-compact .platform-shell-intro .auth-copy h1{font-size:calc(18px * var(--fs,1));line-height:1.1;}
  .platform-shell.has-entitlement-workspace.platform-shell--scroll-compact .platform-intro-context{display:none;}
  .platform-shell.has-entitlement-workspace.platform-shell--scroll-compact .platform-shell-toolbar-context{margin-top:4px;}
  .platform-shell.has-entitlement-workspace.platform-shell--scroll-compact .platform-shell-toolbar-context>summary{min-height:44px;padding:5px 9px;}
  .platform-shell-toolbar-context .platform-shell-toolbar{margin-top:10px;}
  .platform-shell-progress{width:100%;}
  .platform-stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:12px;}
  .platform-step{justify-content:center;gap:5px;min-width:0;font-size:calc(10.5px * var(--fs,1));}
  .platform-step>span{width:20px;height:20px;font-size:10px;}
  .platform-step-label-full{display:none;}
  .platform-step-label-short{display:inline;}
  .platform-demo-banner{align-items:center;gap:8px;margin-top:12px;padding:9px 10px;}
  .platform-demo-banner-close{align-self:center;padding:7px 8px;}
  .platform-shell-toolbar{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;margin-top:14px;}
  .platform-create-company-trigger{width:100%;min-height:44px;}
  .platform-shell-body{gap:12px;padding:14px 16px 20px;scroll-padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));}
  .platform-provision-panel,.platform-entitlement-card,.platform-simulation-panel{padding:16px;}
  .platform-form-grid{grid-template-columns:minmax(0,1fr);}
  .platform-provision-module-grid{grid-template-columns:minmax(0,1fr);}
  .platform-shell-actionbar{align-items:stretch;flex-direction:column;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));}
  .platform-shell-actionbar .auth-error{width:100%;}
  .platform-shell-actionbar .btn{width:100%;min-width:0;min-height:46px;}
  .platform-row-actions .btn,.platform-reload-master,.platform-reload-company{min-height:48px;}
  .platform-module-option{min-height:44px;padding:8px;}
  .platform-simulation-controls{grid-template-columns:minmax(0,1fr);}
  .platform-simulation-controls .btn{width:100%;min-width:0;}
  .platform-tenant-entry-grid{grid-template-columns:minmax(0,1fr);}
}
@media (max-width:380px){
  .platform-demo-banner{align-items:stretch;flex-direction:column;}
  .platform-demo-banner-close{align-self:flex-start;}
}
@media (prefers-reduced-motion:reduce){
  .platform-workspace-view *{scroll-behavior:auto !important;transition-duration:0.001ms !important;animation-duration:0.001ms !important;}
}
