/* =====================================================================
   Smart Invoicer design system (UIUX-REFRESH-001-R1)
   One stylesheet for the signed-in workspace and the public pages.
   Loaded AFTER Bootstrap and DataTables so it re-skins their components.
   Sections: 1 fonts  2 tokens  3 base  4 shell  5 type  6 buttons
   7 forms  8 panels/cards  9 badges  10 tables + DataTables
   11 modals/dropdowns/alerts  12 page patterns  13 public/auth
   14 responsive (1100 rail, 820 phone)  15 print
   Fonts are self-hosted (SIL OFL 1.1, licences in /fonts).
   ===================================================================== */

/* 1. fonts ------------------------------------------------------------ */
@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;
  src:url("../fonts/archivo-latin-wdth-normal.woff2") format("woff2-variations"),url("../fonts/archivo-latin-wdth-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;
  src:url("../fonts/archivo-latin-ext-wdth-normal.woff2") format("woff2-variations"),url("../fonts/archivo-latin-ext-wdth-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:swap;font-weight:400;src:url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:swap;font-weight:500;src:url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:swap;font-weight:600;src:url("../fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2")}

/* 2. tokens ----------------------------------------------------------- */
:root{
  color-scheme:light;
  --ink-900:#0E0F11; --ink-850:#141518; --ink-800:#1B1D21; --ink-700:#26292E; --ink-600:#3A3E45;
  --side-text:#B9BCC3; --side-mute:#7D818A;
  --canvas:#F4F2EC; --paper:#FFFFFF; --sunken:#FAF9F6;
  --line:#E7E5DF; --line-2:#D9D6CE; --line-strong:#A9A59B;
  --text:#14161A; --text-2:#454952; --text-3:#6A6E77;
  --brand:#FFC107; --brand-hi:#FFCD38; --brand-lo:#F2B400; --brand-ink:#1C1500; --brand-tint:#FFF6D9; --brand-line:#F0D27A;
  --amber:#7A5200;
  --ok:#0F7A55; --ok-tint:#E4F4EC; --ok-line:#B7E0CB;
  --info:#1D5BC0; --info-tint:#E8EFFC; --info-line:#C3D5F5;
  --bad:#C0291F; --bad-tint:#FDEBE9; --bad-line:#F4C3BE;
  --warn:#9A4A0B; --warn-tint:#FCEFE3; --warn-line:#F0CFB0;
  --neutral-tint:#F1F0EC;
  --r-sm:8px; --r:12px; --r-lg:16px;
  --shadow-1:0 1px 2px rgba(20,22,26,.06);
  --shadow-2:0 1px 2px rgba(20,22,26,.05),0 10px 30px -12px rgba(20,22,26,.22);
  --shadow-3:0 2px 6px rgba(20,22,26,.08),0 30px 60px -20px rgba(20,22,26,.40);
  --font:"Archivo",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --side-w:252px; --rail-w:76px; --top-h:64px;
  /* Bootstrap variable bridge */
  --bs-body-font-family:var(--font); --bs-body-font-size:14px; --bs-body-color:var(--text); --bs-body-bg:#fff;
  --bs-border-color:var(--line); --bs-border-radius:10px; --bs-link-color:var(--amber); --bs-link-hover-color:#5C3D00;
  --bs-link-color-rgb:122,82,0; --bs-link-hover-color-rgb:92,61,0; --bs-primary-rgb:255,193,7; --bs-font-monospace:var(--mono);
}

/* 3. base ------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.si{margin:0;min-height:100vh;background:var(--canvas);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.si button,body.si input,body.si select,body.si textarea{font-family:inherit}
body.si a{color:var(--amber);text-underline-offset:3px}
body.si a:hover{color:#5C3D00}
body.si h1,body.si h2,body.si h3,body.si h4,body.si h5,body.si h6{font-family:var(--font);color:var(--text);letter-spacing:-.01em}
body.si h1,body.si .h1{font-size:30px;line-height:1.1;letter-spacing:-.02em;font-weight:760;font-stretch:112%}
body.si h2,body.si .h2{font-size:20px;font-weight:720;font-stretch:106%}
body.si h3,body.si .h3{font-size:17px;font-weight:700;font-stretch:104%}
body.si h4,body.si .h4,body.si h5,body.si .h5{font-size:15.5px;font-weight:700}
body.si h6,body.si .h6{font-size:13px;font-weight:700}
:focus-visible{outline:3px solid #FFD552;outline-offset:2px;border-radius:6px}
img,svg,iframe{max-width:100%}
.num,.money{font-variant-numeric:tabular-nums}
.mono{font-family:var(--mono);font-size:.9em;letter-spacing:0}
.muted,.text-muted{color:var(--text-3)!important}
.strong{font-weight:600}
.nw{white-space:nowrap}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ic{width:20px;height:20px;flex:none;--ic-a:rgba(255,193,7,.5);vertical-align:middle}
.ic.s{width:16px;height:16px}
.ic.xs{width:13px;height:13px}
.ic.l{width:22px;height:22px}

/* 4. shell ------------------------------------------------------------ */
.si-shell{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:100vh}
.si-side{position:sticky;top:0;height:100vh;background:var(--ink-900);color:var(--side-text);display:flex;flex-direction:column;padding:18px 14px 14px;gap:18px;overflow:auto;z-index:1040;
  background-image:radial-gradient(120% 60% at 0% 0%,rgba(255,193,7,.07),transparent 60%)}
.si-brand{display:flex;align-items:center;gap:11px;padding:4px 6px;text-decoration:none!important}
.si-brand svg.logo{width:34px;height:34px;flex:none}
.si-brand b{display:block;color:#fff;font-size:16px;letter-spacing:-.01em;font-stretch:115%;font-weight:750;line-height:1.2}
.si-brand small{display:block;color:var(--side-mute);font-size:12px}
.si-nav{display:flex;flex-direction:column;gap:2px}
.si-nav-label{font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#5F636C;padding:14px 10px 6px;margin:0}
.si-nav a{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:10px;color:var(--side-text)!important;text-decoration:none!important;font-weight:500;font-size:13.5px;position:relative;transition:background .15s,color .15s}
.si-nav a .ic{--ic-a:rgba(255,193,7,.22);color:#9DA1A9;transition:transform .2s ease,color .15s}
.si-nav a:hover{background:var(--ink-800);color:#fff!important}
.si-nav a:hover .ic{--ic-a:rgba(255,193,7,.55);color:#E6E7EA;transform:translateY(-1px) scale(1.06)}
.si-nav a[aria-current="page"]{background:var(--brand);color:var(--brand-ink)!important;font-weight:650;box-shadow:0 8px 18px -10px rgba(255,193,7,.8)}
.si-nav a[aria-current="page"] .ic{--ic-a:rgba(28,21,0,.22);color:var(--brand-ink)}
.si-side-foot{margin-top:auto;display:grid;gap:10px}
.si-plan{border-radius:14px;padding:14px;background:var(--ink-800);border:1px solid #2A2D33}
.si-plan.pro{background:linear-gradient(135deg,#2A2310,#191A1D 70%);border-color:#4A3C12}
.si-plan-top{display:flex;align-items:center;justify-content:space-between;color:#fff;font-weight:600;font-size:13px}
.si-plan p{margin:8px 0 10px;font-size:12px;color:var(--side-text)}
.si-plan .btn{width:100%;justify-content:center}
.si-main{display:flex;flex-direction:column;min-width:0;min-height:100vh}
.si-top{position:sticky;top:0;z-index:1030;height:var(--top-h);display:flex;align-items:center;gap:14px;padding:0 28px;background:var(--paper);border-bottom:1px solid var(--line)}
.si-top .mlogo{display:none;width:30px;height:30px;flex:none}
.si-menu-btn{display:none}
.si-biz{display:flex;align-items:center;gap:10px;min-width:0}
.si-biz .av-biz{width:30px;height:30px;border-radius:8px;background:var(--brand-tint);border:1px solid var(--brand-line);display:grid;place-items:center;font-weight:700;font-size:12px;color:var(--amber);flex:none}
.si-biz b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.si-biz .sep{color:var(--line-strong)}
.si-biz .crumb-now{color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.si-top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.si-avatar{width:36px;height:36px;border-radius:50%;border:0;background:var(--ink-900);color:#FFD452;font-weight:700;font-size:13px;display:grid;place-items:center;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--line);padding:0}
.si-avatar::after{display:none!important}
.si-content{flex:1;padding:28px 32px 48px;min-width:0}
.si-content-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
.si-content-inner>*{min-width:0}
.si-foot{padding:18px 32px 26px;color:var(--text-3);font-size:12.5px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line)}
.si-foot a{color:var(--text-2)!important}
.si-foot .powered{display:inline-flex;align-items:center;gap:8px}
.si-foot .powered img{height:18px;width:auto;filter:grayscale(1) brightness(.4)}
.si-scrim{display:none}
.si-tabbar{display:none}
.dropdown-menu .who{padding:10px 14px 8px;display:grid;gap:2px;min-width:230px}
.dropdown-menu .who b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dropdown-menu .who span{font-size:12.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 5. type + page heads -------------------------------------------------- */
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.lede{margin:8px 0 0;color:var(--text-2);max-width:66ch}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.page-head h1{margin:4px 0 0}
.head-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.fine{font-size:12.5px;color:var(--text-3)}

/* 6. buttons (re-skins Bootstrap .btn) ------------------------------------ */
body.si .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:11px;border:1px solid transparent;font-weight:650;font-stretch:104%;font-size:14px;line-height:1.2;white-space:nowrap;transition:transform .12s ease,background .15s,box-shadow .15s,border-color .15s;box-shadow:none}
body.si .btn:active{transform:translateY(1px)}
body.si .btn .ic{width:18px;height:18px}
body.si .btn i{font-size:.95em}
body.si .btn-primary,body.si .btn-warning,body.si .btn-yellow,body.si .btn-gold{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);box-shadow:inset 0 -2px 0 rgba(0,0,0,.10),0 1px 2px rgba(122,82,0,.25),0 6px 16px -8px rgba(242,180,0,.9)}
body.si .btn-primary:hover,body.si .btn-warning:hover,body.si .btn-yellow:hover,body.si .btn-gold:hover,
body.si .btn-primary:focus,body.si .btn-warning:focus,body.si .btn-yellow:focus{background:var(--brand-hi);border-color:var(--brand-hi);color:var(--brand-ink)}
body.si .btn-primary .ic,body.si .btn-warning .ic{--ic-a:rgba(28,21,0,.18);color:var(--brand-ink)}
body.si .btn-dark,body.si .btn-success{background:var(--ink-900);border-color:var(--ink-900);color:#fff}
body.si .btn-dark:hover,body.si .btn-success:hover{background:var(--ink-700);border-color:var(--ink-700);color:#fff}
body.si .btn-dark .ic,body.si .btn-success .ic{--ic-a:rgba(255,193,7,.8);color:#fff}
body.si .btn-secondary,body.si .btn-light,body.si .btn-ghost,body.si .btn-info,
body.si .btn-outline-secondary,body.si .btn-outline-primary,body.si .btn-outline-dark,body.si .btn-outline-warning,body.si .btn-outline-success,body.si .btn-outline-info{background:var(--paper);border-color:var(--line-2);color:var(--text)}
body.si .btn-secondary:hover,body.si .btn-light:hover,body.si .btn-ghost:hover,body.si .btn-info:hover,
body.si .btn-outline-secondary:hover,body.si .btn-outline-primary:hover,body.si .btn-outline-dark:hover,body.si .btn-outline-warning:hover,body.si .btn-outline-success:hover,body.si .btn-outline-info:hover{border-color:var(--line-strong);background:#fff;color:var(--text)}
body.si .btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}
body.si .btn-danger:hover{background:#A8221A;border-color:#A8221A;color:#fff}
body.si .btn-outline-danger{background:#fff;border-color:var(--bad-line);color:var(--bad)}
body.si .btn-outline-danger:hover{background:var(--bad-tint);border-color:var(--bad);color:#9E1F17}
body.si .btn-sm{min-height:32px;padding:0 12px;font-size:13px;border-radius:9px}
body.si .btn-lg{min-height:48px;padding:0 20px;font-size:15px}
body.si .btn-link{background:none;border:0;padding:0;min-height:0;color:var(--amber);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;box-shadow:none}
body.si .btn:disabled,body.si .btn.disabled{opacity:.45;cursor:not-allowed}
.icon-btn{width:34px;height:34px;border-radius:9px;border:1px solid transparent;background:transparent;display:inline-grid;place-items:center;color:var(--text-2);padding:0}
.icon-btn:hover{background:var(--neutral-tint);border-color:var(--line)}
body.si .btn-close{box-shadow:none;opacity:.6}

/* 7. forms ------------------------------------------------------------- */
body.si .form-label,body.si label.control-label{font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px}
body.si .form-control,body.si .form-select{min-height:42px;border:1px solid var(--line-strong);border-radius:10px;background-color:#fff;padding:8px 12px;font-size:14px;color:var(--text);transition:border-color .15s,box-shadow .15s}
body.si textarea.form-control{min-height:84px}
body.si .form-control-sm,body.si .form-select-sm{min-height:34px;font-size:13px;border-radius:9px;padding:4px 10px}
body.si .form-control:focus,body.si .form-select:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px rgba(255,193,7,.38)}
body.si .form-control:disabled,body.si .form-control[readonly],body.si .form-select:disabled{background-color:var(--sunken);color:var(--text-2)}
body.si .form-control.is-invalid,body.si .input-validation-error{border-color:var(--bad)!important;box-shadow:0 0 0 3px rgba(192,41,31,.14)}
body.si .invalid-feedback,body.si .field-validation-error,body.si .text-danger{color:var(--bad)!important;font-size:12.5px;font-weight:550}
body.si .validation-summary-errors ul{margin:0;padding-left:18px}
body.si .form-text{font-size:12px;color:var(--text-3)}
body.si .form-check-input{width:18px;height:18px;border-color:var(--line-strong)}
body.si .form-check-input:checked{background-color:var(--ink-900);border-color:var(--ink-900)}
body.si .form-check-input:focus{box-shadow:0 0 0 3px rgba(255,193,7,.38);border-color:var(--amber)}
body.si .input-group-text{background:var(--sunken);border-color:var(--line-strong);color:var(--text-3);font-weight:600;border-radius:10px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.form-grid .full{grid-column:1/-1}

/* 8. panels / cards ------------------------------------------------------- */
.panel,body.si .card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}
body.si .card-header{background:transparent;border-bottom:1px solid var(--line);padding:16px 20px;font-weight:700}
body.si .card-body{padding:18px 20px}
body.si .card-footer{background:var(--sunken);border-top:1px solid var(--line)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.panel-head h2,.panel-head h3{font-size:16px;margin:0;font-weight:700}
.panel-head p{margin:2px 0 0;color:var(--text-3);font-size:12.5px}
.panel-body{padding:18px 20px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:18px 18px 16px;box-shadow:var(--shadow-1);display:grid;gap:8px;min-width:0}
.stat .k{display:flex;align-items:center;gap:10px;font-weight:600;font-size:13px;color:var(--text-2)}
.stat .v{font-size:30px;font-weight:760;font-stretch:112%;letter-spacing:-.02em;line-height:1.05;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.stat .n{font-size:12.5px;color:var(--text-3)}
.chip-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--brand-tint);color:var(--brand-ink);flex:none}
.chip-ic .ic{--ic-a:rgba(255,193,7,.9)}
.chip-ic.dark{background:var(--ink-900);color:#fff}
.chip-ic.dark .ic{--ic-a:#FFC107}
.kv{display:grid;margin:0;border-top:1px solid var(--line)}
.kv>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.kv>div:last-child{border-bottom:0}
.kv dt{color:var(--text-3);font-weight:500}
.kv dd{margin:0;text-align:right;font-weight:550;overflow-wrap:anywhere}

/* 9. badges ------------------------------------------------------------ */
body.si .badge,.si-badge{display:inline-flex;align-items:center;gap:5px;min-height:23px;padding:0 8px;border-radius:7px;font-size:12px;font-weight:600;border:1px solid var(--line-2);white-space:nowrap;line-height:1;background:var(--neutral-tint);color:#5A5E66}
body.si .badge.bg-success,.b-paid,.b-verified,.b-accepted,.b-valid,.b-active,.b-revised{background:var(--ok-tint)!important;border-color:var(--ok-line)!important;color:#0B6446!important}
body.si .badge.bg-warning,.b-notv,.b-review,.b-pending{background:var(--brand-tint)!important;border-color:var(--brand-line)!important;color:#6B4700!important}
body.si .badge.bg-info,body.si .badge.bg-primary,.b-partial,.b-new,.b-changes{background:var(--info-tint)!important;border-color:var(--info-line)!important;color:#174A9E!important}
body.si .badge.bg-danger,.b-overdue{background:var(--bad)!important;border-color:var(--bad)!important;color:#fff!important}
.b-voided,.b-suspended{background:var(--bad-tint)!important;border-color:var(--bad-line)!important;color:#9E1F17!important}
body.si .badge.bg-secondary,body.si .badge.bg-light,.b-void,.b-archived,.b-closed,.b-legacy,.b-converted{background:var(--neutral-tint)!important;border-color:var(--line-2)!important;color:#5A5E66!important}
body.si .badge.bg-dark{background:var(--ink-900)!important;border-color:var(--ink-900)!important;color:#fff!important}
.b-unpaid{background:#fff!important;border-color:var(--line-strong)!important;color:#33363C!important}
.b-free{background:transparent!important;border-color:currentColor!important;color:inherit!important}
.b-pro{background:var(--brand)!important;border-color:var(--brand)!important;color:var(--brand-ink)!important}
.badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* 10. tables + DataTables ---------------------------------------------------- */
body.si .table{--bs-table-bg:transparent;--bs-table-striped-bg:transparent;--bs-table-hover-bg:#FCFBF6;margin:0;color:var(--text);border-color:var(--line);vertical-align:middle}
body.si .table>thead>tr>th,body.si table.dataTable>thead>tr>th{font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);text-align:left;padding:11px 16px;background:var(--sunken)!important;border-bottom:1px solid var(--line)!important;border-top:0;white-space:nowrap}
body.si .table>tbody>tr>td,body.si table.dataTable>tbody>tr>td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle;background:transparent;box-shadow:none}
body.si .table>tbody>tr:hover>td{background:#FCFBF6}
body.si .table>tbody>tr:last-child>td{border-bottom:0}
body.si .table-bordered>:not(caption)>*>*{border-width:0 0 1px 0}
body.si .table-dark,body.si thead.table-dark th,body.si .table-warning,body.si thead.table-warning th,body.si thead.table-light th{--bs-table-bg:var(--sunken);color:var(--text-3)!important;background:var(--sunken)!important}
body.si .table-responsive,.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
body.si td.num,body.si th.num,body.si .text-end{font-variant-numeric:tabular-nums}
.panel>.table-responsive,.panel>.tbl-wrap,.panel .dataTables_wrapper{border-radius:0 0 var(--r-lg) var(--r-lg)}
/* DataTables chrome */
body.si .dataTables_wrapper{padding:0}
body.si .dataTables_wrapper .dataTables_length,body.si .dataTables_wrapper .dataTables_filter{padding:14px 16px;color:var(--text-3);font-size:13px}
body.si .dataTables_wrapper .dataTables_length select,body.si .dataTables_wrapper .dataTables_filter input{min-height:36px;border:1px solid var(--line-2);border-radius:10px;background:var(--sunken);padding:0 10px;font-size:13.5px;color:var(--text);margin:0 6px}
body.si .dataTables_wrapper .dataTables_filter input{min-width:220px;margin-right:0}
body.si .dataTables_wrapper .dataTables_filter input:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px rgba(255,193,7,.35);background:#fff}
body.si .dataTables_wrapper .dataTables_info{padding:12px 16px;color:var(--text-3);font-size:12.5px}
body.si .dataTables_wrapper .dataTables_paginate{padding:8px 12px}
body.si .dataTables_wrapper .pagination{margin:0;gap:4px}
body.si .page-link{border-radius:9px!important;border:1px solid var(--line-2);color:var(--text-2);font-weight:600;font-size:13px;min-width:34px;text-align:center}
body.si .page-item.active .page-link{background:var(--ink-900);border-color:var(--ink-900);color:#fff}
body.si .page-item.disabled .page-link{opacity:.45}
body.si table.dataTable{border-collapse:separate!important;border-spacing:0;margin:0!important;width:100%!important}
body.si table.dataTable.no-footer{border-bottom:0}
body.si table.dataTable thead .sorting:before,body.si table.dataTable thead .sorting:after,
body.si table.dataTable thead .sorting_asc:before,body.si table.dataTable thead .sorting_asc:after,
body.si table.dataTable thead .sorting_desc:before,body.si table.dataTable thead .sorting_desc:after{opacity:.35}
body.si table.dataTable thead .sorting_asc:before,body.si table.dataTable thead .sorting_desc:after{opacity:1;color:var(--amber)}
body.si .dt-buttons{padding:14px 16px 0;display:flex;gap:8px;flex-wrap:wrap}
body.si .dt-buttons .btn,body.si .dt-button{min-height:34px!important;font-size:13px!important;border-radius:9px!important;background:#fff!important;border:1px solid var(--line-2)!important;color:var(--text)!important;padding:0 12px!important}
body.si div.dataTables_processing{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-2)}
.row-act{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.cust{display:flex;align-items:center;gap:10px;min-width:0}
.cav{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:11.5px;flex:none;background:var(--brand-tint);color:var(--amber);border:1px solid var(--brand-line)}
.t-sub{display:block;font-size:12.5px;color:var(--text-3);margin-top:2px}
.empty{padding:48px 20px;text-align:center;color:var(--text-3)}
.empty b{display:block;color:var(--text);font-size:15px;margin:10px 0 4px}
body.si td.dataTables_empty{padding:40px 20px!important;text-align:center;color:var(--text-3)}

/* 11. modals, dropdowns, alerts, toast ----------------------------------------- */
body.si .modal-content{background:#fff;border:0;border-radius:18px;box-shadow:var(--shadow-3);overflow:hidden}
body.si .modal-header{border-bottom:0;padding:20px 22px 6px;align-items:flex-start}
body.si .modal-header.bg-danger,body.si .modal-header.bg-warning,body.si .modal-header.bg-dark,body.si .modal-header.bg-primary,body.si .modal-header.bg-success{background:transparent!important;color:var(--text)!important}
body.si .modal-header .btn-close-white{filter:none}
body.si .modal-title{font-size:18px;font-weight:720;letter-spacing:-.015em;font-stretch:106%}
body.si .modal-body{padding:10px 22px 18px}
body.si .modal-footer{border-top:0;background:var(--sunken);padding:14px 22px;gap:10px}
body.si .modal-footer>*{margin:0}
body.si .modal-backdrop.show{opacity:.42;background:var(--ink-900)}
body.si .dropdown-menu{border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-3);padding:6px;font-size:13.5px}
body.si .dropdown-item{border-radius:10px;padding:9px 12px;font-weight:600;color:var(--text);display:flex;gap:10px;align-items:center}
body.si .dropdown-item .ic{color:var(--text-2)}
body.si .dropdown-item:hover,body.si .dropdown-item:focus{background:var(--sunken);color:var(--text)}
body.si .dropdown-item:hover .ic{--ic-a:#FFC107}
body.si .dropdown-item.danger{color:var(--bad)}
body.si .dropdown-divider{border-color:var(--line);margin:6px 4px}
body.si .alert{border-radius:14px;padding:14px 16px;border:1px solid var(--line);font-size:13.5px;background:var(--paper);color:var(--text-2)}
body.si .alert-success{background:var(--ok-tint);border-color:var(--ok-line);color:#0B4F37}
body.si .alert-danger{background:var(--bad-tint);border-color:var(--bad-line);color:#5E1510}
body.si .alert-warning{background:var(--brand-tint);border-color:var(--brand-line);color:#4F3600}
body.si .alert-info,body.si .alert-primary{background:var(--info-tint);border-color:var(--info-line);color:#123C80}
body.si .alert-secondary,body.si .alert-light{background:var(--sunken);border-color:var(--line)}
.notice{display:flex;gap:12px;align-items:flex-start;border-radius:14px;padding:14px 16px;border:1px solid var(--line);background:var(--paper)}
.notice .ic{flex:none;margin-top:1px}
.notice b{display:block;margin-bottom:2px;color:var(--text)}
.notice p{margin:0;color:var(--text-2);font-size:13.5px}
.notice .grow{flex:1;min-width:0}
.notice .btn{margin-left:auto;flex:none}
.notice.brand{background:var(--brand-tint);border-color:var(--brand-line)}
.notice.brand .ic{color:var(--amber);--ic-a:rgba(255,193,7,.7)}
.notice.info{background:var(--info-tint);border-color:var(--info-line)}
.notice.info .ic{color:var(--info);--ic-a:rgba(29,91,192,.18)}
.notice.bad{background:var(--bad-tint);border-color:var(--bad-line)}
.notice.bad .ic{color:var(--bad);--ic-a:rgba(192,41,31,.18)}
.notice.dark{background:var(--ink-900);border-color:var(--ink-900);color:#fff}
.notice.dark b{color:#fff}
.notice.dark p{color:#C9CBD0}
.notice.dark .ic{color:#FFD452;--ic-a:rgba(255,193,7,.5)}
.si-toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:2000;display:grid;gap:8px;width:max-content;max-width:calc(100vw - 32px)}
.si-toast{background:var(--ink-900);color:#fff;border-radius:14px;padding:12px 14px 12px 12px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-3);font-size:13.5px;animation:si-rise .2s ease}
.si-toast .tic{width:28px;height:28px;border-radius:8px;background:var(--brand);display:grid;place-items:center;color:var(--brand-ink);flex:none}
.si-toast.bad .tic{background:var(--bad);color:#fff}
.si-toast .tic .ic{width:16px;height:16px;--ic-a:rgba(28,21,0,.2)}
.si-toast button{background:none;border:0;color:#FFD452;font-weight:650;padding:0 4px;margin-left:4px}
@keyframes si-rise{from{opacity:0;transform:translateY(6px)}}

/* 12. page patterns ---------------------------------------------------------- */
.filters{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line)}
.filters .field{display:grid;gap:4px;min-width:0}
.filters label{font-size:12px;color:var(--text-3);font-weight:600;margin:0}
body.si .filters .form-control,body.si .filters .form-select{min-height:36px;font-size:13.5px;border-color:var(--line-2);background-color:var(--sunken)}
body.si .filters .btn{min-height:36px}
.detail{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:22px;align-items:start}
.detail-side{display:grid;gap:16px;position:sticky;top:calc(var(--top-h) + 16px)}
.sum-amt{font-size:36px;font-weight:780;font-stretch:114%;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.05;margin-top:6px}
.progress-bar-si{height:10px;border-radius:6px;background:#ECE8DD;overflow:hidden;margin:16px 0 8px}
.progress-bar-si i{display:block;height:100%;background:var(--brand)}
.summary{padding:20px;display:grid;gap:12px}
.summary .row-s{display:flex;justify-content:space-between;gap:10px;font-variant-numeric:tabular-nums;font-size:14px}
.summary .row-s span:first-child{color:var(--text-2)}
.summary .grand{border-top:2px solid var(--ink-900);padding-top:12px;font-size:22px;font-weight:760;font-stretch:110%;letter-spacing:-.02em}
.summary .grand span:first-child{color:var(--text)}
.readonly-box{display:flex;justify-content:space-between;align-items:center;background:var(--sunken);border:1px dashed var(--line-2);border-radius:12px;padding:12px 14px}
.readonly-box b{font-size:20px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.infobox{background:var(--sunken);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:13.5px;color:var(--text-2)}
.warnbox{background:var(--bad-tint);border:1px solid var(--bad-line);border-radius:12px;padding:12px 14px;font-size:13.5px;color:#5E1510}
.msg{background:var(--sunken);border:1px solid var(--line);border-radius:12px;padding:14px 16px;white-space:pre-wrap;font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.narrow{max-width:760px;width:100%;margin:0 auto}
.si-empty{padding:40px 20px;text-align:center;color:var(--text-3);display:grid;justify-items:center;gap:6px}
.si-empty .chip-ic{width:48px;height:48px;border-radius:14px}
.si-empty b{color:var(--text);font-size:15px}

/* 13. public + auth pages ---------------------------------------------------- */
body.si-public{background:var(--canvas)}
.pubwrap{min-height:100vh;display:grid;place-items:center;padding:40px 16px}
.pubcard{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-2);overflow:hidden}
.pubcard.wide{width:min(760px,100%)}
.pubcard .ph{background:var(--ink-900);color:#fff;padding:22px 24px;display:flex;gap:12px;align-items:center}
.pubcard .ph svg{width:34px;height:34px;flex:none}
.pubcard .ph b{display:block;font-size:15px;font-stretch:110%;color:#fff}
.pubcard .ph span{font-size:12.5px;color:#A9ACB3}
.pubcard .pb{padding:26px 24px 24px;display:grid;gap:14px}
.pubcard h1{margin:0;font-size:24px;font-weight:780;font-stretch:112%;letter-spacing:-.015em;line-height:1.15}
.pubcard p{margin:0;color:var(--text-2)}
.pubcard .btn{min-height:48px;font-size:15px}
.pubfoot{font-size:12px;color:var(--text-3);text-align:center;padding:0 24px 20px}
.state-ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center}
.state-ic .ic{width:26px;height:26px}
.state-ic.ok{background:var(--ok-tint);color:var(--ok)} .state-ic.ok .ic{--ic-a:rgba(15,122,85,.2)}
.state-ic.warn{background:var(--brand-tint);color:var(--amber)} .state-ic.warn .ic{--ic-a:rgba(255,193,7,.6)}
.state-ic.bad{background:var(--bad-tint);color:var(--bad)} .state-ic.bad .ic{--ic-a:rgba(192,41,31,.2)}
.auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh}
.auth-brand{background:var(--ink-900);color:#fff;padding:48px 52px;display:flex;flex-direction:column;gap:28px;position:relative;overflow:hidden}
.auth-brand::after{content:"";position:absolute;right:-120px;bottom:-120px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(255,193,7,.22),transparent 65%);pointer-events:none}
.auth-brand .si-brand b{font-size:17px}
body.si .auth-brand h2{margin:0;font-size:38px;font-weight:800;font-stretch:116%;letter-spacing:-.025em;line-height:1.05;max-width:14ch;color:#fff}
.auth-brand h2 em{font-style:normal;color:#FFC107}
.auth-brand p{margin:0;color:#B9BCC3;max-width:44ch}
.auth-feats{display:grid;gap:12px;margin-top:auto;position:relative;z-index:1}
.auth-feats div{display:flex;gap:12px;align-items:center;color:#E6E7EA;font-weight:550}
.auth-feats .chip-ic{background:#23262B;color:#FFD452}
.auth-feats .chip-ic .ic{--ic-a:rgba(255,193,7,.45)}
.auth-form{display:grid;place-items:center;padding:40px 24px;background:#fff}
.auth-form .in{width:min(420px,100%);display:grid;gap:16px}
.auth-form.wide .in{width:min(560px,100%)}
body.si .auth-form h1{margin:0;font-size:28px;font-weight:780;font-stretch:112%;letter-spacing:-.02em}
.auth-form .btn-primary,.auth-form .btn-warning{min-height:48px;font-size:15px;width:100%}
.pw{position:relative}
.pw .form-control{padding-right:46px}
.pw .pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%)}
.linkrow{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13.5px}
.legal{font-size:12.5px;color:var(--text-3);display:flex;gap:14px;flex-wrap:wrap}
.legal a{color:var(--text-2)!important}
.signup-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.signup-grid .full{grid-column:1/-1}

/* 14. responsive ------------------------------------------------------------ */
@media (max-width:1100px){
  .si-shell{grid-template-columns:var(--rail-w) minmax(0,1fr)}
  .si-side{padding:16px 10px;align-items:center}
  .si-brand{padding:0}
  .si-brand div,.si-nav a span,.si-nav-label,.si-side-foot{display:none}
  .si-nav{width:100%}
  .si-nav a{justify-content:center;padding:11px 0}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail{grid-template-columns:minmax(0,1fr)}
  .detail-side{position:static}
  .si-content{padding:24px 24px 48px}
  .hide-t{display:none!important}
}
@media (max-width:820px){
  .si-shell{grid-template-columns:minmax(0,1fr)}
  /* sidebar becomes a full drawer, opened from "More" or the menu button */
  .si-side{position:fixed;left:0;top:0;bottom:0;width:min(300px,86vw);height:auto;transform:translateX(-102%);transition:transform .22s cubic-bezier(.2,.8,.2,1);align-items:stretch;padding:18px 14px 90px}
  .si-side .si-brand div,.si-side .si-nav a span,.si-side .si-nav-label,.si-side .si-side-foot{display:block}
  .si-side .si-nav a{justify-content:flex-start;padding:11px 10px}
  body.si-drawer-open .si-side{transform:none;box-shadow:var(--shadow-3)}
  body.si-drawer-open .si-scrim{display:block;position:fixed;inset:0;background:rgba(14,15,17,.42);z-index:1035}
  .si-top{height:58px;padding:0 16px;gap:10px}
  .si-top .mlogo{display:block}
  .si-biz .av-biz,.si-biz .sep,.si-biz .bizname{display:none}
  .si-biz .crumb-now{color:var(--text);font-weight:650;font-size:16px}
  .si-top-actions .si-create{display:none}
  .si-content{padding:18px 16px 110px}
  .si-content-inner{gap:16px}
  .si-foot{padding:16px 16px 100px;justify-content:center;text-align:center}
  body.si h1,body.si .h1{font-size:24px}
  .page-head .head-actions{width:100%}
  .page-head .head-actions>.btn,.page-head .head-actions>a.btn{flex:1}
  .hide-p{display:none!important}
  .stats{gap:10px}
  .stat{padding:14px;border-radius:16px}
  .stat .v{font-size:24px}
  .form-grid,.signup-grid{grid-template-columns:minmax(0,1fr)}
  .filters{padding:12px}
  .filters .field{flex:1 1 100%}
  .filters .field.half{flex:1 1 calc(50% - 5px)}
  .filters .btn{flex:1}
  body.si .dataTables_wrapper .dataTables_length,body.si .dataTables_wrapper .dataTables_filter{padding:10px 12px;text-align:left;float:none}
  body.si .dataTables_wrapper .dataTables_filter label{display:flex;align-items:center;gap:6px;width:100%}
  body.si .dataTables_wrapper .dataTables_filter input{min-width:0;flex:1;margin:0}
  body.si .dataTables_wrapper .dataTables_paginate{display:flex;justify-content:center}
  body.si .dataTables_wrapper .row{--bs-gutter-x:0;margin:0}
  /* tables become cards: rows stack, each cell shows its column label */
  table.si-cards thead{display:none}
  table.si-cards,table.si-cards>tbody{display:block;width:100%!important}
  table.si-cards>tbody>tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:14px;border-bottom:1px solid var(--line)}
  table.si-cards>tbody>tr:last-child{border-bottom:0}
  body.si table.si-cards>tbody>tr>td{display:flex;justify-content:space-between;gap:12px;padding:0!important;border:0!important;grid-column:1/-1;text-align:right;font-size:13.5px;min-width:0;overflow-wrap:anywhere}
  body.si table.si-cards>tbody>tr>td::before{content:attr(data-label);color:var(--text-3);font-size:12.5px;font-weight:600;text-align:left;flex:none;max-width:45%}
  body.si table.si-cards>tbody>tr>td[data-label=""]::before{display:none}
  body.si table.si-cards>tbody>tr>td.m-title{grid-column:1/2;justify-content:flex-start;text-align:left;font-weight:650;font-size:14.5px}
  body.si table.si-cards>tbody>tr>td.m-title::before,body.si table.si-cards>tbody>tr>td.m-amt::before{display:none}
  body.si table.si-cards>tbody>tr>td.m-amt{grid-column:2/3;grid-row:1;font-weight:700;font-size:14.5px}
  body.si table.si-cards>tbody>tr>td.m-act{justify-content:flex-start;margin-top:6px}
  body.si table.si-cards>tbody>tr>td.m-act::before{display:none}
  body.si table.si-cards>tbody>tr>td.m-act .row-act{justify-content:flex-start;width:100%}
  body.si table.si-cards>tbody>tr>td.m-act .btn{flex:1 1 auto}
  body.si table.si-cards>tbody>tr>td.m-hide{display:none!important}
  body.si table.si-cards>tbody>tr>td.dataTables_empty{display:block;text-align:center}
  body.si table.si-cards>tbody>tr>td.dataTables_empty::before{display:none}
  body.si .modal-dialog:not(.modal-fullscreen){margin:0;position:fixed;left:0;right:0;bottom:0;max-width:none;width:100%;min-height:0;display:block}
  body.si .modal.fade .modal-dialog:not(.modal-fullscreen){transform:translateY(40px)}
  body.si .modal.show .modal-dialog:not(.modal-fullscreen){transform:none}
  body.si .modal-dialog:not(.modal-fullscreen) .modal-content{border-radius:22px 22px 0 0;max-height:92vh;display:flex;flex-direction:column}
  body.si .modal-dialog:not(.modal-fullscreen) .modal-body{overflow:auto}
  body.si .modal-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  body.si .modal-footer .btn{flex:1 1 auto;min-height:46px}
  .si-toasts{bottom:92px}
  body.si-public .si-toasts{bottom:24px}
  .auth{grid-template-columns:minmax(0,1fr)}
  .auth-brand{padding:28px 20px 24px;gap:10px}
  body.si .auth-brand h2{font-size:26px}
  .auth-feats{display:none}
  .auth-form{padding:24px 18px 40px;place-items:start center}
  .si-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;background:rgba(14,15,17,.97);padding:8px 8px calc(10px + env(safe-area-inset-bottom,0px));z-index:1030}
  .si-tabbar a,.si-tabbar button{border:0;background:none;color:#8D9199!important;display:grid;justify-items:center;gap:4px;font-size:10.5px;font-weight:600;padding:4px 0;text-decoration:none!important}
  .si-tabbar .ic{--ic-a:rgba(255,193,7,.2);color:#8D9199;width:22px;height:22px}
  .si-tabbar [aria-current="page"]{color:#FFD452!important}
  .si-tabbar [aria-current="page"] .ic{--ic-a:#FFC107;color:#FFD452}
  .si-tabbar .fab{width:50px;height:50px;border-radius:16px;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;margin-top:-22px;box-shadow:0 8px 20px -6px rgba(255,193,7,.7),0 0 0 5px var(--ink-900)}
  .si-tabbar .fab .ic{--ic-a:rgba(28,21,0,.15);color:var(--brand-ink);width:24px;height:24px}
}
@media (max-width:400px){
  .stats{grid-template-columns:minmax(0,1fr)}
  .si-content{padding:16px 12px 110px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* 15. print ------------------------------------------------------------ */
@media print{
  .si-side,.si-top,.si-tabbar,.si-foot,.si-toasts{display:none!important}
  .si-shell{display:block}
  .si-content{padding:0}
  body.si{background:#fff}
}

/* 16. dashboard ----------------------------------------------------------- */
.rate{background:var(--ink-900);color:#fff;border-radius:20px;padding:22px 24px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:24px;align-items:center}
body.si .rate h2{margin:0 0 6px;font-size:15px;font-weight:650;color:#fff}
.rate .v{font-size:48px;font-weight:800;font-stretch:116%;letter-spacing:-.03em;line-height:1;color:#FFC107;font-variant-numeric:tabular-nums}
.rate p{margin:8px 0 0;color:#B9BCC3;font-size:13px}
.rbar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:#2A2D33;gap:2px}
.rbar i{display:block;height:100%}
.rlegend{display:flex;gap:18px;margin-top:10px;font-size:12.5px;color:#C9CBD0;flex-wrap:wrap}
.rlegend span{display:inline-flex;gap:7px;align-items:center}
.rlegend span::before{content:"";width:9px;height:9px;border-radius:2px;background:var(--c)}
.rlegend b{color:#fff;font-variant-numeric:tabular-nums}
.charts{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px}
.chart-box{position:relative;height:260px;padding:12px 18px 18px}
.chart-box.donut{height:230px}
.panel-foot{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid var(--line)}
.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.values>div{padding:18px 20px;display:grid;gap:4px;min-width:0}
.values>div+div{border-left:1px solid var(--line)}
.values small{color:var(--text-3);font-weight:600;font-size:12.5px}
.values b{font-size:22px;font-weight:720;font-stretch:108%;letter-spacing:-.01em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
@media (max-width:1100px){.charts{grid-template-columns:minmax(0,1fr)}}
@media (max-width:820px){
  .rate{grid-template-columns:minmax(0,1fr);gap:14px;padding:18px}
  .rate .v{font-size:40px}
  .values{grid-template-columns:minmax(0,1fr)}
  .values>div+div{border-left:0;border-top:1px solid var(--line)}
  .chart-box{height:230px}
}

/* 17. list helpers ------------------------------------------------------------ */
.export-group{display:inline-flex;gap:8px;margin-left:auto}
body.si table td>.form-control,body.si table td>.form-select{min-width:140px}
@media (max-width:820px){
  .export-group{margin-left:0;width:100%}
  .export-group .btn{flex:1}
  body.si table.si-cards>tbody>tr>td>.form-control,body.si table.si-cards>tbody>tr>td>.form-select{min-width:0;flex:1;max-width:65%}
}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);padding:0 16px;overflow-x:auto}
.tab{border:0;background:none;padding:14px 10px 12px;font-weight:600;color:var(--text-3)!important;border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;gap:8px;align-items:center;text-decoration:none!important;white-space:nowrap}
.tab:hover{color:var(--text)!important}
.tab[aria-selected="true"]{color:var(--text)!important;border-bottom-color:var(--brand-lo)}
.tab .n{font-size:11.5px;background:var(--neutral-tint);border-radius:10px;padding:1px 7px;color:var(--text-2)}
.rowlink{color:var(--text)!important;text-decoration:none;cursor:pointer;border-radius:4px}
.rowlink:hover{text-decoration:underline;text-underline-offset:3px}
.vtag{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;white-space:nowrap}
.vtag .ic{width:15px;height:15px}
.vtag.ok{color:var(--ok)} .vtag.ok .ic{--ic-a:rgba(15,122,85,.2)}
.vtag.no{color:var(--amber)} .vtag.no .ic{--ic-a:rgba(255,193,7,.6)}
.reasonline{display:block;font-size:12.5px;margin-top:4px;color:var(--text-2)}
.reasonline i{color:var(--text-3)}
body.si tr.muted-row>td{color:var(--text-3)}
.clip{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
body.si .dropdown-item.disabled,body.si .dropdown-item:disabled{color:var(--text-3);opacity:1;pointer-events:none;align-items:flex-start}
body.si .dropdown-item small{font-size:12px}
.decl{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--brand-tint);border:1px solid var(--brand-line);font-weight:600;margin:0;cursor:pointer;flex:1 1 280px}
.decl input{width:18px;height:18px;margin:1px 0 0;accent-color:#15171B;flex:none}
body.si .modal-footer.verify-foot{justify-content:space-between;flex-wrap:wrap}
.doc-frame{width:100%;height:600px;border:1px solid var(--line);border-radius:12px;background:#fff;display:block}
@media (max-width:820px){
  .clip{max-width:none;white-space:normal}
  .doc-frame{height:62vh}
  body.si .modal-footer.verify-foot .foot-btns{width:100%}
  body.si .modal-footer.verify-foot .foot-btns .btn{flex:1}
}

/* 18. document forms (estimate / invoice) --------------------------------------- */
.si-content-inner.container-fluid{padding-left:0;padding-right:0;max-width:1180px;width:100%}
.backlink{display:inline-flex;align-items:center;gap:4px;color:var(--text-2)!important;font-weight:600;text-decoration:none!important;font-size:13.5px;margin-bottom:4px}
.backlink:hover{color:var(--text)!important}
.docform{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}
.docform .main-col{display:grid;gap:16px;min-width:0}
.docform .summary{position:sticky;top:calc(var(--top-h) + 16px)}
.with-btn{display:flex;gap:8px}
.with-btn .form-select,.with-btn .form-control{flex:1;min-width:0}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;cursor:pointer;margin:0;font-weight:600}
.check input{width:18px;height:18px;margin:1px 0 0;accent-color:#15171B;flex:none}
.check small{display:block;color:var(--text-3);font-size:12.5px;font-weight:400}
.sum-disc{border-top:1px solid var(--line);padding-top:12px}
.dsc-row{display:flex;gap:8px}
.dsc-row .form-control{flex:1;min-width:0}
.seg-radio{display:inline-flex;border:1px solid var(--line-strong);border-radius:10px;overflow:hidden;min-height:42px;flex:none}
.seg-radio label{display:flex;margin:0;cursor:pointer}
.seg-radio input{position:absolute;opacity:0;pointer-events:none}
.seg-radio span{display:grid;place-items:center;min-width:42px;padding:0 10px;font-weight:650;color:var(--text-2);background:#fff}
.seg-radio input:checked+span{background:var(--ink-900);color:#fff}
.seg-radio input:focus-visible+span{outline:3px solid #FFD552;outline-offset:-3px}
body.si .items-table>thead>tr>th{padding:10px 8px}
body.si .items-table>tbody>tr>td{padding:10px 8px;vertical-align:top}
body.si .items-table .form-control,body.si .items-table .form-select{min-height:38px;font-size:13.5px;min-width:70px}
body.si .items-table .item-name{min-width:150px}
body.si .items-table .item-desc{min-width:170px}
body.si .items-table .tax-cell{min-width:150px}
body.si .items-table .tax-cell .form-select-sm{min-height:34px}
body.si .items-table td.amount{font-weight:700;text-align:right;white-space:nowrap;padding-top:18px;font-variant-numeric:tabular-nums}
body.si .items-table .btn-danger{background:#fff;border:1px solid var(--line-2);color:var(--bad);min-height:34px;width:34px;padding:0;font-size:18px;box-shadow:none}
body.si .items-table .btn-danger:hover{background:var(--bad-tint);border-color:var(--bad-line);color:#9E1F17}
@media (max-width:1100px){
  .docform{grid-template-columns:minmax(0,1fr)}
  .docform .summary{position:static}
}
@media (max-width:820px){
  body.si table.items-table.si-cards>tbody>tr{grid-template-columns:minmax(0,1fr);padding:14px 16px;gap:8px}
  body.si table.items-table.si-cards>tbody>tr>td{align-items:center}
  body.si table.items-table.si-cards>tbody>tr>td>.form-control,body.si table.items-table.si-cards>tbody>tr>td>.form-select{max-width:62%;min-width:0}
  body.si table.items-table.si-cards>tbody>tr>td.tax-cell{flex-wrap:wrap}
  body.si table.items-table.si-cards>tbody>tr>td.tax-cell .form-select{flex:1 1 45%;max-width:none;margin:0!important}
  body.si table.items-table.si-cards>tbody>tr>td.amount{border-top:1px dashed var(--line-2)!important;padding-top:10px!important;font-size:15px}
  body.si table.items-table.si-cards>tbody>tr>td:last-child{justify-content:flex-end}
}
.status-stack{display:grid;gap:4px;justify-items:start}
.bal{display:block;font-size:12.5px;color:var(--text-3);white-space:nowrap}
.bal.od{color:var(--bad);font-weight:600}
@media (max-width:820px){.status-stack{justify-items:end}}

/* 19. document view (modal) ----------------------------------------------------- */
.docview{display:grid;gap:16px}
.docview-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.docview-no{font-size:20px;font-weight:600;margin-top:2px}
.docview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;margin:0;padding:14px 16px;background:var(--sunken);border:1px solid var(--line);border-radius:12px}
.docview-grid dt{font-size:12px;color:var(--text-3);font-weight:600}
.docview-grid dd{margin:2px 0 0;font-weight:550;overflow-wrap:anywhere}
.docview-tot{display:grid;gap:0;margin:0 0 0 auto;width:min(320px,100%)}
.docview-tot>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-variant-numeric:tabular-nums}
.docview-tot dt{color:var(--text-2);font-weight:500}
.docview-tot dd{margin:0;font-weight:600}
.docview-tot .grand{border-top:2px solid var(--ink-900);margin-top:6px;padding-top:10px;font-size:18px}
.docview-tot .grand dd,.docview-tot .grand dt{font-weight:760;color:var(--text)}
@media (max-width:820px){.docview-grid{grid-template-columns:minmax(0,1fr)}}

/* 20. payments ------------------------------------------------------------ */
.od{color:var(--bad);font-weight:600}
.due-edit{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:7px;margin-left:4px;color:var(--text-2)!important;vertical-align:middle}
.due-edit:hover{background:var(--neutral-tint)}
.remind-cell{display:grid;gap:6px;justify-items:start}
.remind{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--text-2);background:var(--neutral-tint);border-radius:8px;padding:4px 8px;white-space:nowrap}
.remind .ic{width:14px;height:14px;--ic-a:rgba(255,193,7,.9)}
.remind-btns{display:inline-flex;gap:6px}
body.si .btn.text-danger{color:var(--bad)!important}
.ferr{color:var(--bad);font-size:13px;font-weight:600;display:flex;gap:6px;align-items:flex-start;margin-top:8px}
body.si .readonly-amt{background:var(--sunken);border-style:dashed;font-weight:700;font-size:18px;font-variant-numeric:tabular-nums}
.ledger-tiles{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line);gap:1px;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))}
.ledger-tiles>div{background:#fff;padding:10px 12px;font-variant-numeric:tabular-nums;width:auto!important;max-width:none!important;font-size:14px}
.ledger-tiles>div b{font-size:11.5px;color:var(--text-3);font-weight:600}
body.si .ledger-table>tbody>tr>td{padding:10px 12px}
@media (max-width:820px){
  .ledger-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .remind-cell{justify-items:end}
}

/* 21. tax report -------------------------------------------------------------- */
.qr{display:flex;gap:6px;flex-wrap:wrap;flex:1 1 100%}
.chip{border:1px solid var(--line-2);background:#fff;border-radius:999px;min-height:32px;padding:0 12px;font-size:13px;font-weight:600;color:var(--text-2);display:inline-flex;align-items:center;gap:7px}
.chip:hover{border-color:var(--line-strong)}
.chip[aria-pressed="true"]{background:var(--ink-900);border-color:var(--ink-900);color:#fff}
.filing{display:grid;grid-template-columns:1fr 1fr;gap:0;border-bottom:1px solid var(--line)}
.filing-box{min-width:0}
.filing-box+.filing-box{border-left:1px solid var(--line)}
.filing-head{padding:16px 20px 8px}
.filing-head h2{font-size:15px;margin:0;font-weight:700}
.filing-head p{margin:2px 0 0;font-size:12.5px;color:var(--text-3)}
.ftbl{width:100%;border-collapse:collapse;font-size:13.5px}
.ftbl th{font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);text-align:right;padding:10px 20px;border-bottom:1px solid var(--line);white-space:nowrap}
.ftbl th:first-child,.ftbl td:first-child{text-align:left}
.ftbl td{padding:11px 20px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ftbl td:first-child{white-space:normal}
.ftbl tfoot td{font-weight:700;border-bottom:0;border-top:2px solid var(--ink-900)}
.filing-note{padding:16px 20px}
@media (max-width:1100px){.filing{grid-template-columns:minmax(0,1fr)}.filing-box+.filing-box{border-left:0;border-top:1px solid var(--line)}}
@media (max-width:820px){
  .ftbl th,.ftbl td{padding:10px 12px;font-size:13px}
  .ftbl th{white-space:normal}
  .filing-head{padding:14px 12px 6px}
  .filing-note{padding:12px}
}
.clip2{max-width:360px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--text-2)}
@media (max-width:820px){.clip2{max-width:none;text-align:left}}
.head-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.cr{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;align-items:start}
.cr-side{display:grid;gap:16px}
@media (max-width:1100px){.cr{grid-template-columns:minmax(0,1fr)}}

/* 22. plans ------------------------------------------------------------------ */
.plans{display:grid;gap:18px}
.yourplan{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 22px;background:linear-gradient(135deg,#FFF6D9,#fff 60%)}
.price{font-size:46px;font-weight:800;font-stretch:116%;letter-spacing:-.03em;line-height:1;color:var(--text)}
.price small{font-size:14px;color:var(--text-3);font-weight:500;letter-spacing:0;margin-left:4px}
.b-waiting{background:#fff!important;border-color:var(--line-2)!important;color:var(--text-2)!important}
.cmp{overflow:hidden}
.cmp table{width:100%;border-collapse:collapse;font-size:14px}
.cmp th,.cmp td{padding:12px 18px;border-bottom:1px solid var(--line);text-align:left}
.cmp th{vertical-align:bottom;padding-top:20px}
.cmp tbody td:first-child{color:var(--text-2)}
.cmp .pro-col{background:#FFFBEE;border-left:1px solid var(--brand-line);border-right:1px solid var(--brand-line)}
.cmp thead .pro-col{border-top:3px solid var(--brand);border-radius:0}
.cmp-h{display:flex;gap:8px;align-items:center;font-size:16px;font-weight:750;font-stretch:108%}
.cmp-p{font-size:24px;font-weight:800;font-stretch:112%;margin-top:4px}
.cmp-p small{font-size:12.5px;color:var(--text-3);font-weight:500}
.cmp .yes{display:inline-flex;gap:6px;align-items:center;font-weight:600}
.cmp .yes .ic{color:var(--ok);--ic-a:rgba(15,122,85,.15)}
.cmp .no{color:var(--text-3)}
.cmp tfoot td{border-bottom:0;padding-bottom:18px}
.toast button{margin-left:6px;border:1px solid #3A3E45;border-radius:8px;padding:5px 10px}
.toast button:hover{background:#26292E}
@media (max-width:820px){
  .cmp th,.cmp td{padding:10px 10px;font-size:13px}
  .cmp-p{font-size:19px}
  .cmp-h{flex-wrap:wrap}
  .price{font-size:36px}
}
.profile{display:grid;gap:18px}
.logo-row{display:flex;gap:14px;align-items:center}
.logo-prev-img{width:64px;height:64px;border-radius:14px;object-fit:contain;background:#fff;border:1px solid var(--line);flex:none}

/* 23. admin ------------------------------------------------------------------ */
.access-page{display:grid;gap:18px}
.state-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.state-box{background:#fff;padding:12px 14px;min-width:0;overflow-wrap:anywhere}
.state-label{color:var(--text-3);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;margin-bottom:2px}
.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.action-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:18px 20px}
body.si .action-card h5{font-size:16px;font-weight:700;margin:0 0 12px}
.action-card .form-label{margin-top:4px}
@media (max-width:1100px){.action-grid{grid-template-columns:minmax(0,1fr)}}
.disclose{border-top:1px solid var(--line);padding-top:14px}
.disclose summary{cursor:pointer;font-weight:600;color:var(--text-2);font-size:13.5px}
body.si .pw-toggle i{font-size:16px;color:var(--text-3)}

/* 24. public site pages (terms, privacy, error) ------------------------------------ */
.pub-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;background:var(--ink-900)}
.pub-links{display:flex;gap:16px;align-items:center}
.pub-links a:not(.btn){color:#C9CBD0!important;font-weight:600;text-decoration:none}
.pub-links a:not(.btn):hover{color:#fff!important}
.pub-main{min-height:60vh}
.pub-main>.container{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);margin-top:28px;margin-bottom:28px;box-shadow:var(--shadow-1)}
.pub-foot{background:transparent}
@media (max-width:820px){.pub-top{padding:12px 16px}.pub-top .si-brand small{display:none}.pub-links{gap:10px}.pub-foot{padding-bottom:26px}}

/* 25. column rules ---------------------------------------------------------- */
/* col-x: kept in the table for exports and prints, not shown on screen */
body.si .col-x{display:none!important}
body.si td.tbl-cust{min-width:150px}
@media (min-width:1101px){.si-shell{background:linear-gradient(to right,var(--ink-900) var(--side-w),transparent var(--side-w))}}
@media (min-width:821px) and (max-width:1100px){.si-shell{background:linear-gradient(to right,var(--ink-900) var(--rail-w),transparent var(--rail-w))}}
.cust .cn{min-width:0;display:grid}
.cust .cn b{font-weight:600;line-height:1.3}
.cust .cn small{font-size:12.5px;color:var(--text-3)}
.due-link{font-weight:600;color:var(--amber)!important;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.show-t-only{display:none}
@media (max-width:1100px){.show-t-only{display:block}}
@media (max-width:820px){
  body.si table.si-cards>tbody>tr>td.m-title .cust .cav{display:none}
  body.si table.si-cards>tbody>tr>td.m-amt{display:grid;justify-items:end}
  body.si table.si-cards>tbody>tr>td .status-stack .bal{white-space:normal;text-align:right}
}

/* 25. UIUX-COMPLETION-001-R1 ------------------------------------------------------ */
/* 25a. Sign-in product-motion card (sign-in page only; _AuthBrand with AuthMotion).
   Shown only on windows wider than 1100 px and at least 820 px tall. The markup starts on
   the Paid frame, so without script or with reduced motion it is a still Paid invoice. */
.auth-motion{display:none;position:relative;z-index:1}
.am-toggle{position:absolute;top:52px;right:52px;z-index:2;background:transparent;border:1px solid #3A3E45;color:#C9CBD0;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;line-height:1.2;cursor:pointer}
.am-toggle:hover{border-color:#7D818A;color:#fff}
.am-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media (min-width:1101px) and (min-height:820px){ .auth-motion{display:block} }
@media (max-width:1100px),(max-height:819px){ .am-toggle{display:none!important} }
.am-card{width:340px;max-width:100%;background:#fff;color:var(--text);border-radius:14px;padding:16px 18px 14px;position:relative;font-size:12.5px;box-shadow:0 2px 6px rgba(0,0,0,.25),0 36px 60px -30px rgba(0,0,0,.7);transition:opacity .5s ease}
.am-card.am-out{opacity:0}
.am-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.am-swap{display:grid}
.am-swap>*{grid-area:1/1}
.am-pill{justify-items:end}
.am-kind{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}
.am-no{font-family:var(--mono);font-size:15px;font-weight:600;margin-top:1px}
.am-meta{display:flex;justify-content:space-between;gap:10px;margin:10px 0 6px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.am-meta small{display:block;color:var(--text-3);font-size:10.5px}
.am-meta b{font-weight:650;font-size:12.5px}
.am-ln{display:flex;justify-content:space-between;gap:10px;padding:3px 0;color:var(--text-2)}
.am-ln .mono,.am-tot .mono{color:var(--text)}
.am-tot{display:flex;justify-content:space-between;padding-top:6px;margin-top:4px;border-top:1px solid var(--line);font-weight:750;font-size:14px}
.am-zone{margin-top:10px;height:44px;display:grid}
.am-zone>*{grid-area:1/1}
.am-wait{align-self:center;color:var(--text-3)}
.am-appr{align-self:start;display:flex;align-items:center;gap:8px;background:var(--ok-tint);border:1px solid var(--ok-line);border-radius:9px;padding:7px 10px;color:#0B5A3F;font-weight:600}
.am-appr .ic{color:var(--ok)}
.am-due{align-self:start;display:flex;justify-content:space-between;align-items:center;background:var(--sunken);border:1px solid var(--line);border-radius:9px;padding:7px 10px;color:var(--text-2)}
.am-due b{color:var(--text)}
.am-pay small{display:flex;justify-content:space-between;color:var(--text-2);font-size:11.5px;margin-bottom:6px}
.am-bar{height:7px;border-radius:99px;background:#EDEBE5;overflow:hidden}
.am-bar i{display:block;height:100%;background:var(--ok);transform-origin:0 50%;transform:scaleX(0);transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.am-stamp{position:absolute;right:20px;bottom:70px;border:2px solid var(--ok);color:var(--ok);font-weight:800;letter-spacing:.14em;font-size:16px;padding:3px 10px;border-radius:7px;opacity:0;transform:rotate(-8deg) scale(1.06);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.am-card [data-s]{opacity:0;transform:translateY(6px);transition:opacity .35s cubic-bezier(.2,.7,.2,1),transform .35s cubic-bezier(.2,.7,.2,1)}
.am-card .am-pill [data-s],.am-card .am-pay [data-s]{transform:none}
.am-card[data-step="0"] [data-s~="0"],.am-card[data-step="1"] [data-s~="1"],.am-card[data-step="2"] [data-s~="2"],.am-card[data-step="3"] [data-s~="3"],.am-card[data-step="4"] [data-s~="4"]{opacity:1;transform:none}
.am-card[data-step="3"] .am-bar i{transform:scaleX(.41)}
.am-card[data-step="4"] .am-bar i{transform:scaleX(1)}
.am-card[data-step="4"] .am-stamp{opacity:.92;transform:rotate(-8deg) scale(1)}

/* 25b. Customer outcome pages (EstimateApproved view) */
.pub-next{background:var(--sunken);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--text-2);font-size:14px}
.pub-next b{display:block;color:var(--text);font-size:13px;margin-bottom:2px}

/* 25c. Change Requests: new requests stand out */
body.si table.si-cards>tbody>tr.cr-new>td{background:#FFFBEE}
body.si table.si-cards>tbody>tr.cr-new>td:first-child{box-shadow:inset 3px 0 0 var(--brand)}
@media (max-width:820px){
  body.si table.si-cards>tbody>tr.cr-new{box-shadow:inset 3px 0 0 var(--brand);background:#FFFBEE}
  body.si table.si-cards>tbody>tr.cr-new>td{background:transparent}
  body.si table.si-cards>tbody>tr.cr-new>td:first-child{box-shadow:none}
}

/* 25d. Send estimate modal states */
.send-state{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text-2)}
.send-spin{width:16px;height:16px;border-radius:50%;border:2px solid rgba(28,21,0,.25);border-top-color:currentColor;animation:si-spin .8s linear infinite;flex:none}
@keyframes si-spin{to{transform:rotate(360deg)}}
.send-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:14px 4px 6px}
.send-done h6{margin:4px 0 0;font-size:18px;font-weight:750}
.send-done p{margin:0;color:var(--text-2);overflow-wrap:anywhere}
.send-cd{width:100%;height:4px;border-radius:99px;background:#EDEBE5;overflow:hidden;margin-top:6px}
.send-cd i{display:block;height:100%;background:var(--ok);transform-origin:0 50%;animation:send-cd 3s linear forwards}
@keyframes send-cd{from{transform:scaleX(1)}to{transform:scaleX(0)}}
