/* AccountsBook — workspace UI: light (or navy) sidebar, white work area, a single blue for action. */
/* Inter by Rasmus Andersson, SIL Open Font License 1.1 (fonts/INTER-LICENSE.txt) — the interface font */
@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/inter-latin-ext-400-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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/inter-latin-400-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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/inter-latin-ext-500-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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/inter-latin-500-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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/inter-latin-ext-600-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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/inter-latin-600-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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(fonts/inter-latin-ext-700-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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(fonts/inter-latin-700-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}

/* Mukta by Ek Type, SIL Open Font License 1.1 (fonts/OFL-LICENSE.txt) */
@font-face{font-family:Mukta;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/mukta-latin-ext-400-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:Mukta;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/mukta-latin-400-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:Mukta;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/mukta-latin-ext-500-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:Mukta;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/mukta-latin-500-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:Mukta;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/mukta-latin-ext-600-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:Mukta;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/mukta-latin-600-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:Mukta;font-style:normal;font-weight:700;font-display:swap;src:url(fonts/mukta-latin-ext-700-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:Mukta;font-style:normal;font-weight:700;font-display:swap;src:url(fonts/mukta-latin-700-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:Mukta;font-style:normal;font-weight:800;font-display:swap;src:url(fonts/mukta-latin-ext-800-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:Mukta;font-style:normal;font-weight:800;font-display:swap;src:url(fonts/mukta-latin-800-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}

/* ==========================================================================
   Tokens — navy sidebar, white work area, one blue for action.
   Status colour carries meaning: blue open, green paid, orange overdue/partial, red danger.
   ========================================================================== */
:root{
  --bg:#F4F5F9; --surface:#FFFFFF; --surface-2:#F8F9FC; --hover:#F4F8FF; --seg:#EEF0F5; --input-bg:#fff;
  --ink:#21263C; --ink-2:#4D5369; --ink-3:#7C8298; --placeholder:#A9AEC0;
  --rule:#E6E9F0; --rule-2:#D5DAE4; --rule-strong:#B8BFCF;
  --pri:#2F74EB; --pri-600:#1F60D3; --pri-700:#1A51B4; --pri-50:#EEF4FF; --pri-100:#DCE8FD; --pri-ink:#1C4FAE;
  --ok:#1C9A5E; --ok-50:#E6F6ED; --ok-ink:#12764A;
  --warn:#E07B00; --warn-50:#FFF3E2; --warn-ink:#A55A00;
  --red:#D33A3A; --red-50:#FDEDED; --red-ink:#A42424;
  --chip:#EEF0F5; --chip-ink:#5A6078;
  --c-in:#2FA36B; --c-out:#F29C38; --c-line:#2F74EB;
  /* legacy names still used by a few templates */
  --paper:var(--bg); --green-700:var(--c-in); --marigold:var(--c-out); --border:var(--rule-2);
  --side-bg:#F7F8FB; --side-ink:#3B4158; --side-dim:#868CA3; --side-hover:#EAEEF6; --side-active:#2F74EB; --side-sub:#F0F2F7;
  --side-strong:#161A2C; --side-line:#E4E7EF; --side-add:rgba(22,26,44,.07); --side-thumb:rgba(22,26,44,.18); --brand-ink:#5B6074; --brand-strong:#1F4E8C;
  --bar-bg:rgba(255,255,255,.94); --toast-bg:#21263C;
  --r-sm:5px; --r:7px; --r-lg:9px;
  --shadow-1:0 1px 2px rgba(33,38,60,.05);
  --shadow-2:0 4px 14px -4px rgba(33,38,60,.12), 0 1px 3px rgba(33,38,60,.06);
  --shadow-pop:0 16px 40px -10px rgba(22,28,52,.28), 0 2px 8px rgba(22,28,52,.08);
  --font:"Inter", "Mukta", "Segoe UI", system-ui, -apple-system, Roboto, "Noto Sans", sans-serif;
  --side-w:236px; --side-w-collapsed:60px; --top-h:56px;
  --ease:cubic-bezier(.2,.8,.2,1); --spring:cubic-bezier(.34,1.4,.64,1);
  color-scheme:light;
  font-size:14px;
}
/* navy sidebar (Settings → appearance, or the theme menu) */
html[data-side="navy"]{--side-bg:#1D2232; --side-ink:#BFC5D6; --side-dim:#7E879E; --side-hover:rgba(255,255,255,.06); --side-active:#2F74EB; --side-sub:#171B28;
  --side-strong:#fff; --side-line:rgba(255,255,255,.06); --side-add:rgba(255,255,255,.12); --side-thumb:rgba(255,255,255,.15); --brand-ink:#C9CEDC; --brand-strong:#fff}
html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#10131C; --surface:#171B27; --surface-2:#1B2030; --hover:#1E2538; --seg:#20263A; --input-bg:#131722;
  --ink:#E4E7F0; --ink-2:#B4BAC9; --ink-3:#8790A6; --placeholder:#5F6780;
  --rule:#262C3D; --rule-2:#323A50; --rule-strong:#47506A;
  --pri:#5B93F5; --pri-600:#4A84EE; --pri-700:#3E74DA; --pri-50:#1B2640; --pri-100:#22325A; --pri-ink:#A9C6FA;
  --ok:#45C486; --ok-50:#16291F; --ok-ink:#7FD8A9;
  --warn:#F2A13D; --warn-50:#2E2312; --warn-ink:#F5BE73;
  --red:#F06A62; --red-50:#331A1C; --red-ink:#F5A19B;
  --chip:#232A3D; --chip-ink:#B4BAC9;
  --c-in:#45C486; --c-out:#F2A13D; --c-line:#5B93F5;
  --side-bg:#121621; --side-ink:#B4BAC9; --side-dim:#6F788F; --side-hover:rgba(255,255,255,.05); --side-active:#3E74DA; --side-sub:#0E111A;
  --side-strong:#fff; --side-line:rgba(255,255,255,.06); --side-add:rgba(255,255,255,.12); --side-thumb:rgba(255,255,255,.15); --brand-ink:#C9CEDC; --brand-strong:#fff;
  --bar-bg:rgba(23,27,39,.94); --toast-bg:#2A3148;
  --shadow-1:0 1px 2px rgba(0,0,0,.3);
  --shadow-2:0 6px 18px -6px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.3);
  --shadow-pop:0 18px 44px -10px rgba(0,0,0,.7), 0 2px 8px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.45;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1}
a{color:var(--pri);text-decoration:none}
a:hover{color:var(--pri-600);text-decoration:underline;text-underline-offset:2px}
h1,h2,h3{margin:0 0 .5em;line-height:1.25;color:var(--ink);font-weight:600}
.h1{font-size:1.8rem}.h2{font-size:1.4rem}.h3{font-size:1.1rem}
hr{border:0;border-top:1px solid var(--rule);margin:18px 0}
code{font-family:inherit;background:var(--pri-50);border:1px solid var(--rule);border-radius:4px;padding:0 5px}
.muted{color:var(--ink-3)}.center{text-align:center}.right{text-align:right}.nowrap{white-space:nowrap}
.upper{text-transform:uppercase}.small{font-size:.87em}.mt{margin-top:16px}.mb{margin-bottom:16px}
:focus-visible{outline:2px solid var(--pri);outline-offset:2px}
.skip{position:absolute;left:-999px;top:8px;background:var(--surface);padding:8px 12px;border-radius:var(--r-sm);z-index:100}
.skip:focus{left:8px}
.ic{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ic-sm{width:14px;height:14px}
::selection{background:var(--pri-100)}

/* ==========================================================================
   Shell
   ========================================================================== */
.shell{display:flex;min-height:100vh}
.sidebar{width:var(--side-w);flex-shrink:0;background:var(--side-bg);color:var(--side-ink);border-right:1px solid var(--side-line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;z-index:30;view-transition-name:sidebar}
.sidebar nav{display:flex;flex-direction:column;gap:1px;padding:6px 10px 10px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--side-thumb) transparent}
.brand{display:flex;align-items:center;gap:10px;color:var(--brand-ink);font-weight:500;font-size:1.22rem;letter-spacing:-.01em;padding:0 16px;height:var(--top-h);flex-shrink:0;border-bottom:1px solid var(--side-line)}
.brand:hover{color:var(--brand-ink);text-decoration:none}
.brand-logo{width:34px;height:34px;flex-shrink:0;object-fit:contain}
.brand-text{display:flex;flex-direction:column;line-height:1.05;min-width:0}
.brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-name b{color:var(--brand-strong);font-weight:700}
.brand-tag{font-size:.62rem;font-weight:500;color:var(--side-dim);text-align:right;letter-spacing:.01em;margin-top:2px}
.brand-mark{width:28px;height:28px;border-radius:7px;flex-shrink:0;position:relative;background:linear-gradient(135deg,#4C8DF8,#2459C9);box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}
.brand-mark::before,.brand-mark::after{content:"";position:absolute;left:7px;right:7px;height:2px;border-radius:2px;background:#fff}
.brand-mark::before{top:10px;box-shadow:0 4px 0 rgba(255,255,255,.75)}
.brand-mark::after{bottom:7px;height:1px;box-shadow:0 -2px 0 #fff}

.nav-link{display:flex;align-items:center;gap:12px;width:100%;color:var(--side-ink);padding:8px 10px;border-radius:6px;font:inherit;font-weight:500;background:none;border:0;cursor:pointer;text-align:left;position:relative;transition:background .15s,color .15s}
.nav-link .ic{color:var(--side-dim);transition:color .15s}
.nav-link:hover{background:var(--side-hover);color:var(--side-strong);text-decoration:none}
.nav-link:hover .ic{color:var(--side-strong)}
.nav-link.active{background:var(--side-active);color:#fff;box-shadow:0 4px 12px -4px rgba(47,116,235,.45)}
.nav-link.active .ic{color:#fff}
.nav-parent .chev{margin-left:auto;width:14px;height:14px;transition:transform .25s var(--ease)}
.nav-group.open > .nav-parent .chev{transform:rotate(90deg)}
.nav-group.has-active > .nav-parent{color:var(--side-strong);font-weight:600}
.nav-group.has-active > .nav-parent .ic{color:var(--side-active)}
.nav-sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s var(--ease)}
.nav-group.open > .nav-sub{grid-template-rows:1fr}
.nav-sub-inner{overflow:hidden;min-height:0}
.flyout-title{display:none}
.nav-row{display:flex;align-items:center;border-radius:6px;margin:1px 0 1px 20px;position:relative;transition:background .15s}
.nav-row::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:1px;background:var(--side-line)}
.nav-row:first-of-type{margin-top:2px}
.nav-child{flex:1;color:var(--side-ink);padding:6px 10px 6px 18px;font-size:.95rem;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-row:hover{background:var(--side-hover)}
.nav-row:hover .nav-child{color:var(--side-strong);text-decoration:none}
.nav-row.active{background:var(--side-active)}
.nav-row.active::before{background:#fff;width:2px;left:-1.5px;border-radius:2px}
.nav-row.active .nav-child{color:#fff;font-weight:600}
.nav-add{display:grid;place-items:center;width:24px;height:24px;margin-right:4px;border-radius:5px;color:var(--side-strong);background:var(--side-add);opacity:0;transform:scale(.6);transition:opacity .15s,transform .2s var(--spring)}
.nav-row:hover .nav-add,.nav-add:focus-visible{opacity:1;transform:none}
.nav-add:hover{background:var(--pri);color:#fff}
.nav-row.active .nav-add{background:rgba(255,255,255,.2);color:#fff}
.nav-spacer{flex:1;min-height:14px}
.side-collapse{flex-shrink:0;height:40px;border:0;border-top:1px solid var(--side-line);background:var(--side-sub);color:var(--side-dim);cursor:pointer;display:grid;place-items:center}
.side-collapse .ic{transform:rotate(180deg);transition:transform .3s var(--ease)}
.side-collapse:hover{color:var(--side-strong)}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:12px;background:var(--surface);border-bottom:1px solid var(--rule);padding:0 20px;height:var(--top-h);position:sticky;top:0;z-index:20;view-transition-name:topbar}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.content{padding:22px 26px 80px;width:100%;max-width:1440px}
.scrim{position:fixed;inset:0;background:rgba(16,19,28,.45);z-index:39;animation:fade .2s both}

/* search */
.search{position:relative;flex:1;max-width:460px;display:flex;align-items:center}
.search .search-ic{position:absolute;left:11px;color:var(--ink-3);pointer-events:none;width:16px;height:16px}
.search input{margin:0;padding:7px 40px 7px 34px;background:var(--seg);border-color:transparent;border-radius:6px;transition:background .2s,border-color .2s,box-shadow .2s,max-width .3s}
.search input:focus{background:var(--surface);border-color:var(--pri);outline:none;box-shadow:0 0 0 3px var(--pri-100)}
.search kbd{position:absolute;right:10px;font-family:inherit;font-size:.76rem;color:var(--ink-3);border:1px solid var(--rule-2);border-radius:4px;padding:0 6px;background:var(--surface);transition:opacity .15s}
.search input:focus ~ kbd{opacity:0}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow-pop);max-height:440px;overflow:auto;padding:6px;z-index:50;animation:pop-down .16s var(--ease) both;transform-origin:top center}
.sr-group{font-size:.72rem;font-weight:600;color:var(--ink-3);padding:8px 10px 2px;text-transform:uppercase;letter-spacing:.05em}
.sr-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:5px;color:var(--ink);animation:rise .2s var(--ease) both}
.sr-item:hover,.sr-item.sel{background:var(--pri-50);text-decoration:none;color:var(--ink)}
.sr-item small{color:var(--ink-3);margin-left:auto;white-space:nowrap}
.sr-empty{padding:14px;color:var(--ink-3)}
.sr-skel{height:30px;margin:6px 4px;border-radius:5px}

/* menus: always rendered, animated in */
.menu{position:relative}
.menu-panel{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow-pop);min-width:220px;padding:5px;z-index:60;
  visibility:hidden;opacity:0;transform:translateY(-6px) scale(.97);transform-origin:top right;pointer-events:none;transition:opacity .12s ease,transform .12s ease,visibility 0s linear .12s}
.menu.open .menu-panel{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition:opacity .14s ease,transform .22s var(--ease),visibility 0s}
.menu.left .menu-panel{right:auto;left:0;transform-origin:top left}
.menu-panel a,.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border-radius:5px;color:var(--ink);background:none;border:0;font:inherit;text-align:left;cursor:pointer;transition:background .1s}
.menu-panel a .ic,.menu-item .ic{color:var(--ink-3)}
.menu-panel a:hover,.menu-item:hover,.menu-panel a:focus-visible,.menu-item:focus-visible{background:var(--pri-50);text-decoration:none;color:var(--pri-ink);outline:none}
.menu-panel a:hover .ic,.menu-item:hover .ic{color:var(--pri)}
.menu-item.current,.menu-panel a.current{font-weight:600;color:var(--pri-ink)}
.menu-title{font-size:.72rem;font-weight:600;color:var(--ink-3);padding:6px 10px 4px;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px}
.menu-foot{border-top:1px solid var(--rule);margin-top:4px;border-radius:0 0 5px 5px !important}
.menu-new{min-width:560px;padding:10px}
.menu-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 10px}
.menu-cols > div + div{border-left:1px solid var(--rule);padding-left:10px}
.menu-new a .ic{color:var(--pri)}
.menu-user{padding:8px 10px 10px;border-bottom:1px solid var(--rule);margin-bottom:4px;display:flex;flex-direction:column;gap:2px}
.menu-user small{color:var(--ink-3)}
.menu-user .badge{align-self:flex-start;margin-top:4px}
.push{margin-left:auto}
.quick-btn{display:grid;place-items:center;width:32px;height:32px;border-radius:6px;border:0;background:var(--pri);color:#fff;cursor:pointer;box-shadow:0 3px 10px -3px rgba(47,116,235,.7);transition:background .15s,transform .15s var(--spring)}
.quick-btn:hover{background:var(--pri-600)}
.quick-btn .ic{transition:transform .3s var(--ease)}
.menu.open > .quick-btn .ic{transform:rotate(135deg)}
.org-btn{display:flex;align-items:center;gap:9px;background:none;border:1px solid transparent;border-radius:var(--r);padding:4px 8px 4px 4px;cursor:pointer;font:inherit;color:var(--ink);text-align:left;transition:background .15s,border-color .15s}
.org-btn:hover{background:var(--surface-2);border-color:var(--rule)}
.org-btn .ic-sm{transition:transform .2s}
.menu.open > .org-btn .ic-sm{transform:rotate(180deg)}
.org-meta{display:flex;flex-direction:column;line-height:1.15;max-width:200px}
.org-meta strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.org-meta small{color:var(--ink-3);font-size:.76rem}
.org-avatar{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:6px;background:var(--pri-100);color:var(--pri-ink);font-weight:700;font-size:.8rem;flex-shrink:0}
.org-avatar.sm{width:24px;height:24px;font-size:.68rem;border-radius:5px}
.avatar-btn{width:32px;height:32px;border-radius:50%;border:0;background:linear-gradient(135deg,#F29C38,#E06A2B);color:#fff;font:inherit;font-weight:700;font-size:.78rem;cursor:pointer;transition:box-shadow .2s}
.avatar-btn:hover,.menu.open > .avatar-btn{box-shadow:0 0 0 3px var(--warn-50)}
.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:6px;border:1px solid var(--rule);background:var(--surface);color:var(--ink-2);cursor:pointer;transition:background .15s,color .15s}
.icon-btn:hover{background:var(--surface-2);color:var(--ink)}
.icon-btn.ghost{border-color:transparent;background:none}
.icon-btn.ghost:hover{background:var(--seg);text-decoration:none}
.icon-btn.ghost .ic{transition:transform .5s var(--ease)}
.icon-btn.ghost:hover .ic{transform:rotate(60deg)}
.menu-btn{display:none}

/* route progress bar */
.route-progress{position:fixed;top:0;left:0;height:2.5px;width:0;background:linear-gradient(90deg,var(--pri),#7FB0FF,var(--pri));background-size:200% 100%;z-index:300;opacity:0;pointer-events:none;box-shadow:0 0 8px rgba(47,116,235,.6)}
.route-progress.go{opacity:1;width:82%;transition:width 6s cubic-bezier(.1,.7,.2,1),opacity .1s;animation:shimmer-x 1.2s linear infinite}
.route-progress.done{opacity:0;width:100%;transition:width .2s ease,opacity .3s ease .2s}

/* ==========================================================================
   Page head
   ========================================================================== */
.page-head{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;margin-bottom:18px}
.page-head h1{margin:0;font-size:1.45rem;font-weight:600;letter-spacing:-.01em}
.page-head > .muted{align-self:center}
.page-sub{margin:2px 0 0;color:var(--ink-3)}
.page-head .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.page-head .badge{align-self:center}
.view-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:2px 4px 2px 0;font:inherit;color:var(--ink);cursor:pointer;border-radius:5px}
.view-btn h1{font-size:1.45rem}
.view-btn .ic{color:var(--pri);transition:transform .2s}
.menu.open > .view-btn .ic{transform:rotate(180deg)}
.view-btn:hover h1{color:var(--pri-ink)}

/* ==========================================================================
   Cards
   ========================================================================== */
.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:18px 20px}
.card + .card{margin-top:16px}
.grid > .card + .card{margin-top:0}
.card.table-wrap,.card-flush{padding:0;overflow:hidden}
.card.table-wrap{overflow-x:auto}
.card-head{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--rule)}
.card-head h3{margin:0;font-size:1rem}
.card-head .actions{margin-left:auto}
.card-title{font-weight:600;margin:0 0 12px;font-size:1.02rem}
.card-foot{padding:12px 18px;border-top:1px solid var(--rule);background:var(--surface-2)}
.card-head h3 .ic,.card-title .ic{vertical-align:-3px;color:var(--pri)}
.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat .label{color:var(--ink-2);font-weight:500}
.stat .value{font-size:1.6rem;font-weight:600;letter-spacing:-.02em;margin-top:2px;line-height:1.15;display:inline-block}
.stat .sub{font-size:.88em;color:var(--ink-3);margin-top:6px}
.lift{transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}

/* ==========================================================================
   Forms
   ========================================================================== */
label{display:block;font-weight:500;color:var(--ink-2);font-size:.92rem}
input,select,textarea{font:inherit;color:var(--ink);width:100%;padding:7px 10px;border:1px solid var(--rule-2);border-radius:6px;background:var(--input-bg);margin-top:5px;transition:border-color .15s,box-shadow .2s,background .15s}
input::placeholder,textarea::placeholder{color:var(--placeholder)}
input:hover,select:hover,textarea:hover{border-color:var(--rule-strong)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-100)}
select{appearance:none;padding-right:30px;background:var(--input-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237C8298' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center}
input[type=checkbox],input[type=radio]{width:16px;height:16px;margin:0 7px 0 0;vertical-align:-3px;accent-color:var(--pri)}
input[type=file]{padding:6px}
textarea{min-height:76px;resize:vertical}
.stack > * + *{margin-top:14px}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px}
.form-grid .span-2{grid-column:span 2}.form-grid .span-3{grid-column:1/-1}
.inline-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.inline-form label{min-width:150px}
.inline-form > .btn{margin-bottom:1px}
.page-head .inline-form input{margin:0}
label.req{position:relative;color:var(--red-ink)}
label.req::after{content:"*";color:var(--red);position:absolute;top:0;right:0}
label.req input,label.req select,label.req textarea{color:var(--ink)}
.help{display:block;font-size:.82rem;color:var(--ink-3);font-weight:400;margin-top:4px}
.form-divider{font-weight:600;color:var(--ink);padding-top:14px;border-top:1px solid var(--rule)}
.filters{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:10px 14px;margin-bottom:14px}
.filters label{font-size:.85rem}
.form-actions{position:sticky;bottom:0;z-index:10;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px -20px -18px;padding:12px 20px;background:var(--bar-bg);backdrop-filter:blur(8px);border-top:1px solid var(--rule);border-radius:0 0 var(--r-lg) var(--r-lg);box-shadow:0 -6px 16px -10px rgba(33,38,60,.18)}
.form-actions .help{margin:0}

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 13px;min-height:33px;border-radius:6px;border:1px solid var(--rule-2);background:var(--surface);color:var(--ink);font:inherit;font-weight:500;cursor:pointer;white-space:nowrap;line-height:1.25;position:relative;overflow:hidden;
  transition:background .15s,border-color .15s,color .15s,box-shadow .2s,transform .12s var(--ease)}
.btn:hover{background:var(--surface-2);border-color:var(--rule-strong);text-decoration:none;color:var(--ink)}
.btn:active{transform:scale(.97)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn .ic{width:16px;height:16px}
.btn-primary{background:var(--pri);border-color:var(--pri);color:#fff;box-shadow:0 2px 8px -3px rgba(47,116,235,.6)}
.btn-primary:hover{background:var(--pri-600);border-color:var(--pri-600);color:#fff;box-shadow:0 4px 12px -4px rgba(47,116,235,.8)}
.btn-danger{color:var(--red);border-color:var(--rule-2)}
.btn-danger:hover{background:var(--red-50);border-color:var(--red);color:var(--red)}
.btn-danger-solid{background:var(--red);border-color:var(--red);color:#fff}
.btn-danger-solid:hover{background:var(--red-ink);border-color:var(--red-ink);color:#fff}
.btn-ghost{border-color:transparent;background:transparent}
.btn-ghost:hover{background:var(--seg);border-color:transparent}
.btn-sm{padding:4px 10px;min-height:28px;font-size:.9em}
.btn-lg{padding:9px 18px;font-size:1.02rem;min-height:40px}
.btn-block{width:100%}
.btn-link{border:0;background:none;color:var(--pri);cursor:pointer;padding:0;font:inherit;font-weight:500}
.btn-link:hover{text-decoration:underline}
.btn-link.danger{color:var(--red)}
form.inline{display:inline}
.ripple{position:absolute;border-radius:50%;background:currentColor;opacity:.25;transform:scale(0);animation:ripple .55s ease-out forwards;pointer-events:none}

/* ==========================================================================
   Tables
   ========================================================================== */
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%}
.table th,.table td{padding:10px 14px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}
.table th{font-size:.72rem;color:var(--ink-3);font-weight:600;background:var(--surface-2);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;padding-top:9px;padding-bottom:9px}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr{transition:background .12s}
.table tbody tr:hover{background:var(--hover)}
.table tbody tr[data-href]{cursor:pointer}
.table tbody tr[data-href]:hover td:first-child{box-shadow:inset 3px 0 0 var(--pri)}
.table .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.table tfoot td{font-weight:700;border-top:1.5px solid var(--ink-2);border-bottom:3px double var(--ink-2);background:var(--surface-2)}
.table .group-row td{background:var(--pri-50);font-weight:600;color:var(--pri-ink)}
.table .indent{padding-left:30px}
.card > .table th:first-child,.card > .table td:first-child,.table-wrap .table th:first-child,.table-wrap .table td:first-child{padding-left:18px}
.card > .table th:last-child,.card > .table td:last-child,.table-wrap .table th:last-child,.table-wrap .table td:last-child{padding-right:18px}
.anim-rows tbody tr{animation:row-in .32s var(--ease) backwards;animation-delay:calc(var(--i,0) * 22ms)}
.empty{padding:48px 24px;text-align:center;color:var(--ink-3)}
.empty-state{text-align:center;padding:52px 24px}
.empty-state h3{margin:14px 0 4px}
.empty-state p{color:var(--ink-3);margin:0 0 16px}
.empty-ic{width:46px;height:46px;color:var(--pri);stroke-width:1.3;padding:12px;box-sizing:content-box;background:var(--pri-50);border-radius:50%;animation:float 3s ease-in-out infinite}

/* line item editor */
.lines{border:1px solid var(--rule);border-radius:var(--r);border-collapse:separate;border-spacing:0}
.lines th{background:var(--surface-2);color:var(--ink-3);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:9px 8px;border-bottom:1px solid var(--rule)}
.lines td{padding:7px 8px;border-bottom:1px solid var(--rule);vertical-align:top}
.lines tbody tr:last-child td{border-bottom:0}
.lines tbody tr.line{animation:row-in .28s var(--ease) both}
.lines tbody tr.leaving{animation:row-out .2s ease forwards}
.lines input,.lines select{margin:0;padding:6px 8px}
.lines select{padding-right:26px}
.lines .c-item{min-width:200px}.lines .c-num{width:96px}.lines .c-tax{width:118px}.lines .c-acct{width:180px}
.lines .amt{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:13px;font-weight:600}
.remove-line{width:28px;height:28px;border-radius:5px;margin-top:3px;transition:background .15s,color .15s,transform .2s var(--spring)}
.remove-line:hover{background:var(--red-50);color:var(--red);transform:rotate(90deg)}
.totals{margin-left:auto;max-width:380px;width:100%;background:var(--surface-2);border-radius:var(--r)}
.totals td{padding:7px 12px;font-variant-numeric:tabular-nums}
.totals td:first-child{color:var(--ink-2)}
.totals .grand td{font-size:1.12rem;font-weight:700;color:var(--ink);border-top:1.5px solid var(--ink-2);border-bottom:3px double var(--ink-2)}
.flash-val{animation:flash-val .6s ease}

/* ==========================================================================
   Badges, alerts, toasts, dialog
   ========================================================================== */
.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:700;white-space:nowrap;line-height:1.6;text-transform:uppercase;letter-spacing:.06em}
.badge-gray{background:var(--chip);color:var(--chip-ink)}
.badge-blue{background:var(--pri-50);color:var(--pri-ink)}
.badge-green{background:var(--ok-50);color:var(--ok-ink)}
.badge-amber{background:var(--warn-50);color:var(--warn-ink)}
.badge-red{background:var(--red-50);color:var(--red-ink)}
.alert{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-radius:var(--r);margin-bottom:16px;border:1px solid;border-left-width:3px;animation:rise .3s var(--ease) both}
.alert .ic{margin-top:2px}
.alert-success{background:var(--ok-50);border-color:var(--ok);color:var(--ok-ink)}
.alert-error{background:var(--red-50);border-color:var(--red);color:var(--red-ink);animation:shake .4s ease both}
.alert-info{background:var(--pri-50);border-color:var(--pri);color:var(--pri-ink)}
.toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:90;max-width:min(420px,calc(100vw - 40px))}
.toast{display:flex;align-items:center;gap:10px;background:var(--toast-bg);color:#fff;padding:12px 12px 12px 14px;border-radius:var(--r);box-shadow:var(--shadow-pop);position:relative;overflow:hidden;animation:toast-in .45s var(--spring) both}
.toast > .ic{color:#6BD69F;width:22px;height:22px;padding:3px;border-radius:50%;background:rgba(107,214,159,.15);stroke-width:2.4;stroke-dasharray:30;stroke-dashoffset:30;animation:draw-check .45s ease .25s forwards}
.toast-info > .ic,.toast-error > .ic{color:#9CC0FF;background:rgba(156,192,255,.15)}
.toast-timer{position:absolute;left:0;bottom:0;height:3px;width:100%;background:rgba(255,255,255,.35);transform-origin:left;animation:timer 5s linear forwards}
.toast:hover .toast-timer{animation-play-state:paused}
.toast-x{margin-left:auto;background:none;border:0;color:#BFC5D6;cursor:pointer;padding:4px;border-radius:5px;display:grid}
.toast-x:hover{background:rgba(255,255,255,.1);color:#fff}
.toast.hide{animation:toast-out .3s ease forwards}
.dialog{border:0;border-radius:var(--r-lg);padding:22px;max-width:420px;width:calc(100% - 32px);box-shadow:var(--shadow-pop);color:var(--ink);background:var(--surface)}
.dialog[open]{animation:dialog-in .28s var(--spring) both}
.dialog::backdrop{background:rgba(16,19,28,.5);backdrop-filter:blur(2px);animation:fade .2s both}
.dialog-title{font-size:1.15rem;margin:0 0 6px}
.dialog-msg{color:var(--ink-2);margin:0 0 20px}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px}

/* ==========================================================================
   Tabs — underline with a sliding indicator
   ========================================================================== */
.tabs{display:flex;gap:2px;margin-bottom:16px;flex-wrap:wrap;border-bottom:1px solid var(--rule);position:relative;max-width:100%}
.tabs a{padding:8px 12px 10px;color:var(--ink-2);font-weight:500;white-space:nowrap;position:relative;transition:color .15s}
.tabs a:hover{text-decoration:none;color:var(--ink)}
.tabs a.active{color:var(--pri-ink);font-weight:600}
.tabs a.active::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--pri)}
.tabs.js-ink a.active::after{display:none}
.tab-ink{position:absolute;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--pri);transition:left .3s var(--ease),width .3s var(--ease)}

/* ==========================================================================
   Charts
   ========================================================================== */
.chart{width:100%;height:auto;display:block;max-height:300px;overflow:visible}
.chart .grid-line{stroke:var(--rule);stroke-width:1;stroke-dasharray:3 4}
.chart .axis-label{fill:var(--ink-3);font-size:11px;font-family:var(--font)}
.chart .bar-in{fill:var(--c-in)}
.chart .bar-out{fill:var(--c-out)}
.chart .bar{transform-box:fill-box;transform-origin:50% 100%;animation:grow-y .8s var(--ease) both;animation-delay:calc(var(--i,0) * 55ms + 100ms);transition:opacity .15s}
.chart .bar:hover{opacity:.75}
.chart .line{fill:none;stroke:var(--c-line);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.4s var(--ease) .15s forwards}
.chart .area{fill:url(#cf-grad);opacity:0;animation:fade .8s ease .7s forwards}
.chart .dot{fill:var(--surface);stroke:var(--c-line);stroke-width:2;opacity:0;animation:pop-in .3s var(--spring) forwards;animation-delay:calc(var(--i,0) * 70ms + 700ms);transform-box:fill-box;transform-origin:center}
.chart .dot:hover{r:5}
.legend{display:flex;gap:14px;font-size:.86em;color:var(--ink-2);flex-wrap:wrap}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.meter{height:10px;border-radius:999px;background:var(--seg);display:flex;overflow:hidden;margin:10px 0 6px;gap:2px}
.meter span{display:block;height:100%;animation:fill-x 1s var(--ease) .15s both;border-radius:999px}
.donut-seg{fill:none;stroke-width:16;transform:rotate(-90deg);transform-origin:50% 50%;animation:donut 1s var(--ease) both;animation-delay:calc(var(--i,0) * 90ms + 150ms);transition:stroke-width .2s}
.donut-seg:hover{stroke-width:20}

/* detail lists */
.kv{display:grid;grid-template-columns:150px 1fr;gap:8px 16px;margin:0}
.kv dt{color:var(--ink-3)}.kv dd{margin:0}

/* reports */
.report-head{text-align:center;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--rule)}
.report-head h2{margin:2px 0}
.diff-ok{color:var(--ok);font-weight:700}.diff-bad{color:var(--red);font-weight:700}
.pos{color:var(--ok)}.neg{color:var(--red)}
.report-list a{display:flex;align-items:center;gap:12px;padding:11px 8px;border-bottom:1px solid var(--rule);color:var(--ink);border-radius:5px;transition:background .15s,padding .2s var(--ease)}
.report-list a:last-child{border-bottom:0}
.report-list a:hover{text-decoration:none;background:var(--pri-50);padding-left:14px}
.report-list .ic{color:var(--pri)}
.report-list strong{display:block;font-weight:600}
.report-list small{color:var(--ink-3)}

/* ==========================================================================
   Dashboard
   ========================================================================== */
.greet{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px;padding:16px 20px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);position:relative;overflow:hidden}
.greet::after{content:"";position:absolute;right:-60px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,var(--pri-50),transparent 70%);pointer-events:none}
.greet .org-avatar{width:44px;height:44px;font-size:1.05rem;border-radius:9px}
.greet h1{margin:0;font-size:1.35rem;font-weight:600}
.greet p{margin:0;color:var(--ink-3)}
.quick{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto;position:relative;z-index:1}
.dash-card{padding:0}
.dash-card .card-head{padding:12px 18px}
.dash-card .card-head h3{font-weight:600}
.dash-body{padding:16px 18px}
.dash-total{color:var(--ink-3);font-size:.9rem}
.dash-total strong{color:var(--ink);font-size:1.1rem;font-weight:600;margin-left:4px}
.dash-split{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule)}
.dash-split > div{padding:12px 18px}
.dash-split > div + div{border-left:1px solid var(--rule)}
.dash-split .k{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.dash-split .v{font-size:1.25rem;font-weight:600;margin-top:2px;font-variant-numeric:tabular-nums}
.k-cur{color:var(--pri)}.k-over{color:var(--warn)}
.bucket-btn{background:none;border:0;padding:0;font:inherit;cursor:pointer;display:flex;align-items:center;gap:4px;color:inherit}
.bucket-row{display:flex;justify-content:space-between;gap:20px;padding:6px 10px;border-radius:5px}
.bucket-row:hover{background:var(--surface-2)}
.cf-wrap{display:grid;grid-template-columns:minmax(0,1fr) 250px}
.cf-side{border-left:1px solid var(--rule);padding:14px 18px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.cf-side .k{font-size:.82rem;color:var(--ink-3)}
.cf-side .v{font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums}
.cf-side .v.in{color:var(--ok)}.cf-side .v.out{color:var(--red)}
.ie-tot{display:flex;gap:28px;padding:12px 18px;border-top:1px solid var(--rule);flex-wrap:wrap}
.ie-tot .k{font-size:.8rem;color:var(--ink-3);display:flex;align-items:center;gap:6px}
.ie-tot .k i{width:9px;height:9px;border-radius:2px;display:inline-block}
.ie-tot .v{font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums}
.donut-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.donut-wrap svg{width:150px;height:150px;flex-shrink:0}
.donut-legend{flex:1;min-width:150px}
.donut-legend .list-row{padding:6px 0;font-size:.92rem}
.donut-legend i{width:9px;height:9px;border-radius:2px;display:inline-block;flex-shrink:0}
.list-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--rule)}
.list-row:last-child{border-bottom:0}
.list-row .grow{flex:1;min-width:0}
.list-row .grow small{display:block;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.list-row strong{font-variant-numeric:tabular-nums;font-weight:600}
.setup-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;counter-reset:step}
.setup-steps a{display:block;padding:14px;border:1px solid var(--rule);border-radius:var(--r);color:var(--ink);counter-increment:step;transition:border-color .2s,background .2s,transform .25s var(--ease)}
.setup-steps a::before{content:counter(step);display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--pri-100);color:var(--pri-ink);font-weight:700;font-size:.82rem;margin-bottom:8px}
.setup-steps a:hover{border-color:var(--pri);text-decoration:none;background:var(--pri-50);transform:translateY(-2px)}
.setup-steps small{display:block;color:var(--ink-3)}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);margin-bottom:16px}
.kpi{padding:16px 18px;border-right:1px solid var(--rule)}
.kpi:last-child{border-right:0}
.kpi .label{color:var(--ink-2);font-weight:500;display:flex;align-items:center;gap:7px}
.kpi .value{font-size:1.5rem;font-weight:600;margin-top:4px}
.kpi .sub{font-size:.86em;color:var(--ink-3);margin-top:6px}
.kpi-alert{border-left:3px solid var(--warn)}

/* summary strip above invoice / bill lists */
.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);margin-bottom:14px;overflow:hidden}
.summary > div{padding:12px 18px;border-right:1px solid var(--rule);position:relative}
.summary > div:last-child{border-right:0}
.summary .k{font-size:.8rem;color:var(--ink-3);display:flex;align-items:center;gap:6px}
.summary .k .ic{width:15px;height:15px}
.summary .v{font-size:1.15rem;font-weight:600;margin-top:2px;font-variant-numeric:tabular-nums}
.summary .s-over .v{color:var(--warn)}
.summary .s-today .k .ic{color:var(--red)}
.summary .s-over .k .ic{color:var(--warn)}
.summary .s-out .k .ic{color:var(--pri)}

/* ==========================================================================
   Split view (list + detail)
   ========================================================================== */
.content:has(> .split){max-width:none;padding:0}
.split{display:grid;grid-template-columns:330px minmax(0,1fr);height:calc(100vh - var(--top-h))}
.split-list{border-right:1px solid var(--rule);background:var(--surface);display:flex;flex-direction:column;min-height:0;animation:slide-in-l .35s var(--ease) both}
.split-head{display:flex;align-items:center;gap:8px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--rule);min-height:52px}
.split-head .view-btn h1{font-size:1.1rem}
.split-head .actions{margin-left:auto;display:flex;gap:6px}
.split-items{overflow-y:auto;flex:1}
.sl-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:11px 16px;border-bottom:1px solid var(--rule);color:var(--ink);position:relative;transition:background .12s;animation:rise .3s var(--ease) both;animation-delay:calc(var(--i,0) * 18ms)}
.sl-item:hover{background:var(--hover);text-decoration:none;color:var(--ink)}
.sl-item.current{background:var(--pri-50)}
.sl-item.current::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--pri)}
.sl-item .n{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sl-item .a{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.sl-item .m{font-size:.84rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sl-item .st{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-align:right}
.st-blue{color:var(--pri)}.st-green{color:var(--ok)}.st-amber{color:var(--warn)}.st-red{color:var(--red)}.st-gray{color:var(--ink-3)}
.split-main{overflow-y:auto;padding:20px 26px 60px;min-width:0;animation:rise .35s var(--ease) both}
.split-main > .page-head{position:sticky;top:-20px;z-index:12;background:var(--bg);margin:-20px -26px 18px;padding:14px 26px;border-bottom:1px solid var(--rule)}
.close-x{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:6px;color:var(--ink-3);transition:background .15s,color .15s,transform .2s var(--spring)}
.close-x:hover{background:var(--seg);color:var(--ink);transform:rotate(90deg)}

/* ==========================================================================
   Auth
   ========================================================================== */
.auth-body{background:var(--bg)}
.auth{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100vh}
.auth-ledger{background:linear-gradient(160deg,#1D2232 0%,#1B2A4E 60%,#2459C9 140%);color:#DCE2F0;position:relative;overflow:hidden}
.auth-ledger::before,.auth-ledger::after{content:"";position:absolute;border-radius:50%;filter:blur(2px);pointer-events:none}
.auth-ledger::before{width:420px;height:420px;right:-140px;top:-120px;background:radial-gradient(circle,rgba(91,147,245,.35),transparent 65%);animation:drift 14s ease-in-out infinite alternate}
.auth-ledger::after{width:320px;height:320px;left:-100px;bottom:-120px;background:radial-gradient(circle,rgba(242,156,56,.22),transparent 65%);animation:drift 18s ease-in-out infinite alternate-reverse}
.auth-ledger-inner{position:relative;z-index:1;max-width:520px;margin:0 auto;padding:12vh 48px 48px}
.brand-lg{padding:0;font-size:1.6rem;margin-bottom:40px;border:0;height:auto}
.brand-lg .brand-logo{width:44px;height:44px}
.brand-invert,.brand-invert:hover{color:#E4E9F4}
.brand-invert .brand-name b{color:#fff}
.brand-invert .brand-tag{color:#9FB0D0}
.brand-invert .brand-logo{background:#fff;border-radius:50%;padding:2px}
.auth-pitch{font-size:1.55rem;line-height:1.3;font-weight:600;color:#fff;margin:0 0 34px;max-width:24ch;animation:rise .6s var(--ease) .1s both}
.ledger-sample{width:100%;font-size:1rem;color:#C9D1E4;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:12px;backdrop-filter:blur(6px);animation:rise .6s var(--ease) .25s both}
.ledger-sample td{padding:10px 18px;border-bottom:1px solid rgba(255,255,255,.07)}
.ledger-sample tr{animation:rise .4s var(--ease) both}
.ledger-sample tr:nth-child(1){animation-delay:.35s}.ledger-sample tr:nth-child(2){animation-delay:.42s}.ledger-sample tr:nth-child(3){animation-delay:.49s}.ledger-sample tr:nth-child(4){animation-delay:.56s}.ledger-sample tr:nth-child(5){animation-delay:.63s}
.ledger-sample td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:#fff}
.ledger-sample .neg{color:#FFB0A8 !important}
.ledger-total td{font-weight:700;color:#fff;border-bottom:0 !important;background:rgba(255,255,255,.05)}
.auth-form{display:grid;place-items:center;padding:40px 24px}
.auth-card{width:100%;max-width:400px;animation:rise .45s var(--ease) both}
.auth-title{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 4px}
.auth-switch{margin-top:24px;color:var(--ink-2)}
.demo-hint{margin-top:18px;padding:12px 14px;border:1px dashed var(--rule-2);border-radius:var(--r);background:var(--surface)}
.demo-hint div{font-weight:600;margin-bottom:4px}
.brand-mobile{display:none;color:var(--ink);padding:0;margin-bottom:28px;border:0;height:auto}
.auth-wrap{width:100%;max-width:440px;margin:0 auto;padding:40px 20px}
.auth-wrap .auth-brand{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:700;font-size:1.3rem;margin-bottom:18px;color:var(--ink)}

/* ==========================================================================
   Document paper
   ========================================================================== */
.paper{color:var(--ink)}
.paper-head{display:flex;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:2px solid var(--ink)}
.paper-org{font-size:1.25rem;font-weight:700;margin-bottom:4px}
.paper-title{font-size:1.6rem;font-weight:400;color:var(--ink);letter-spacing:.04em;text-transform:uppercase}
.paper-meta{display:flex;justify-content:space-between;gap:20px;padding:18px 0}
.meta-table td{padding:2px 0 2px 18px}
.paper-lines th{background:var(--ink);color:#fff}
html[data-theme="dark"] .paper-lines th{background:var(--seg);color:var(--ink)}
.paper-lines td{font-size:.96em}
.paper-foot{display:flex;justify-content:space-between;gap:24px;margin-top:14px}
.paper-foot > div:first-child{flex:1}
.paper-sign{text-align:right;margin-top:44px}
.sign-line{margin-top:48px;border-top:1px solid var(--ink);display:inline-block;padding-top:4px;min-width:200px;text-align:center}
.paper-card{position:relative;overflow:hidden}
.ribbon{position:absolute;top:18px;left:-34px;width:130px;transform:rotate(-45deg);text-align:center;font-size:.68rem;font-weight:700;letter-spacing:.08em;color:#fff;padding:3px 0;text-transform:uppercase;box-shadow:0 2px 6px rgba(0,0,0,.15);animation:ribbon-in .6s var(--spring) .3s both}
.ribbon-green{background:var(--ok)}.ribbon-blue{background:var(--pri)}.ribbon-amber{background:var(--warn)}.ribbon-red{background:var(--red)}.ribbon-gray{background:#8A90A5}

/* misc v2 */
.upload-drop{display:flex;align-items:center;justify-content:center;gap:10px;border:1.5px dashed var(--rule-2);border-radius:var(--r);padding:16px;color:var(--ink-2);cursor:pointer;position:relative;font-weight:500;transition:border-color .2s,background .2s,color .2s,transform .2s var(--ease)}
.upload-drop:hover,.upload-drop.drag{border-color:var(--pri);background:var(--pri-50);color:var(--pri-ink)}
.upload-drop.drag{transform:scale(1.02)}
.upload-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}
.list-row .btn-link .ic{width:16px;height:16px}
.pill{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--chip);color:var(--chip-ink);font-size:.8rem}

/* theme switch in the account menu */
.theme-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--seg);padding:3px;border-radius:7px;margin:6px 4px 8px;position:relative}
.theme-switch button{display:flex;flex-direction:column;align-items:center;gap:2px;border:0;background:none;color:var(--ink-2);font:inherit;font-size:.8rem;padding:6px 4px;border-radius:5px;cursor:pointer;transition:background .2s,color .2s}
.theme-switch button[aria-pressed="true"]{background:var(--surface);color:var(--pri-ink);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.theme-switch .ic{width:16px;height:16px;transition:transform .4s var(--spring)}
.theme-switch button[aria-pressed="true"] .ic{transform:rotate(-20deg) scale(1.1)}
html.theme-anim, html.theme-anim *{transition:background-color .35s ease,border-color .35s ease,color .35s ease,fill .35s ease !important}

/* skeleton */
.skel{background:linear-gradient(90deg,var(--seg) 25%,var(--surface-2) 50%,var(--seg) 75%);background-size:200% 100%;animation:shimmer-x 1.2s linear infinite}

/* ==========================================================================
   Entrance choreography
   ========================================================================== */
.content > *{animation:rise .38s var(--ease) both}
.content > *:nth-child(2){animation-delay:.04s}.content > *:nth-child(3){animation-delay:.08s}.content > *:nth-child(4){animation-delay:.12s}
.content > *:nth-child(5){animation-delay:.16s}.content > *:nth-child(6){animation-delay:.2s}.content > *:nth-child(n+7){animation-delay:.24s}
.content > .split{animation:none}
.grid.stagger > *{animation:rise .45s var(--ease) both}
.grid.stagger > *:nth-child(2){animation-delay:.07s}.grid.stagger > *:nth-child(3){animation-delay:.14s}.grid.stagger > *:nth-child(4){animation-delay:.21s}

@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes row-in{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
@keyframes row-out{to{opacity:0;transform:translateX(12px)}}
@keyframes pop-down{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes pop-in{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}
@keyframes grow-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes fill-x{from{width:0}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes donut{from{stroke-dasharray:0 100}}
@keyframes shimmer-x{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes toast-in{from{opacity:0;transform:translateX(40px) scale(.96)}to{opacity:1;transform:none}}
@keyframes toast-out{to{opacity:0;transform:translateX(40px);margin-top:-52px}}
@keyframes timer{to{transform:scaleX(0)}}
@keyframes draw-check{to{stroke-dashoffset:0}}
@keyframes dialog-in{from{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:none}}
@keyframes shake{0%,100%{transform:none}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
@keyframes ripple{to{transform:scale(2.6);opacity:0}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes flash-val{0%{background:var(--pri-100)}100%{background:transparent}}
@keyframes slide-in-l{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
@keyframes ribbon-in{from{opacity:0;transform:rotate(-45deg) translateY(-30px)}to{opacity:1;transform:rotate(-45deg)}}
@keyframes drift{from{transform:translate(0,0)}to{transform:translate(-40px,40px)}}
@keyframes flyout-in{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}

/* cross-page transitions (Chromium): sidebar and top bar stay put, the page cross-fades */
@view-transition{navigation:auto}
::view-transition-old(root){animation:fade .14s ease reverse both}
::view-transition-new(root){animation:fade .18s ease both}
::view-transition-group(sidebar),::view-transition-group(topbar){animation:none}

/* ==========================================================================
   Collapsible sidebar (desktop) with hover fly-outs
   ========================================================================== */
.collapse-btn{display:inline-grid}
@media (min-width: 901px){
  .sidebar{transition:width .25s var(--ease)}
  html[data-sidebar="collapsed"] .sidebar{width:var(--side-w-collapsed)}
  html[data-sidebar="collapsed"] .brand{justify-content:center;padding:0}
  html[data-sidebar="collapsed"] .brand span:last-child,
  html[data-sidebar="collapsed"] .nav-link > span,
  html[data-sidebar="collapsed"] .nav-parent .chev{display:none}
  html[data-sidebar="collapsed"] .sidebar nav{padding:6px 8px 10px;overflow:visible}
  html[data-sidebar="collapsed"] .nav-link{justify-content:center;padding:10px 0}
  html[data-sidebar="collapsed"] .side-collapse .ic{transform:none}
  html[data-sidebar="collapsed"] .nav-sub{display:none;position:fixed;left:calc(var(--side-w-collapsed) - 4px);width:230px;background:var(--side-bg);border-radius:0 8px 8px 0;box-shadow:var(--shadow-pop);padding:6px 8px 8px 6px;z-index:70;animation:flyout-in .18s var(--ease) both}
  html[data-sidebar="collapsed"] .nav-group.fly > .nav-sub{display:block}
  html[data-sidebar="collapsed"] .nav-sub-inner{overflow:visible}
  html[data-sidebar="collapsed"] .flyout-title{display:block;color:var(--side-strong);font-weight:600;padding:6px 10px 6px 12px;border-bottom:1px solid var(--side-line);margin-bottom:4px}
  html[data-sidebar="collapsed"] .nav-row{margin-left:4px}
  html[data-sidebar="collapsed"] .nav-row::before{display:none}
  html[data-sidebar="collapsed"] .nav-child{padding-left:10px}
  html[data-sidebar="collapsed"] .nav-group.has-active > .nav-parent{background:var(--side-active)}
  html[data-sidebar="collapsed"] .nav-link[data-tip]:hover::after{content:attr(data-tip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--side-bg);color:var(--side-strong);padding:5px 10px;border-radius:5px;white-space:nowrap;font-size:.88rem;box-shadow:var(--shadow-pop);animation:flyout-in .15s var(--ease) both;z-index:70}
  html[data-sidebar="collapsed"] .content{max-width:1600px}
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px){
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi:nth-child(2){border-right:0}
  .kpi:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .setup-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .org-meta{display:none}
  .cf-wrap{grid-template-columns:1fr}
  .cf-side{border-left:0;border-top:1px solid var(--rule);flex-direction:row;flex-wrap:wrap}
  .split{grid-template-columns:270px minmax(0,1fr)}
}
@media (max-width: 900px){
  .sidebar{position:fixed;left:0;transform:translateX(-100%);z-index:40;transition:transform .3s var(--ease);box-shadow:var(--shadow-pop);view-transition-name:none}
  .sidebar.open{transform:none}
  .side-collapse{display:none}
  .menu-btn{display:inline-grid}
  .topbar{padding:0 12px;gap:8px}
  .search kbd{display:none}
  .grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}
  .grid-3 > [style*="span"]{grid-column:auto !important}
  .form-grid .span-2,.form-grid .span-3{grid-column:auto}
  .content{padding:16px 14px 70px}
  .hide-sm{display:none}
  .menu-new{min-width:0;width:min(320px,calc(100vw - 24px))}
  .menu-cols{grid-template-columns:1fr}
  .menu-cols > div + div{border-left:0;padding-left:0;border-top:1px solid var(--rule);padding-top:4px}
  .auth{grid-template-columns:1fr}
  .auth-ledger{display:none}
  .brand-mobile{display:flex}
  .paper-head,.paper-meta,.paper-foot{flex-direction:column}
  .form-actions{margin:20px -20px -18px}
  .page-head .inline-form input{width:100% !important}
  .split{display:block;height:auto}
  .split-list{display:none}
  .split-main{overflow:visible;padding:16px 14px 70px}
  .split-main > .page-head{position:static;margin:0 0 16px;padding:0;border:0;background:none}
  .icon-btn.ghost{display:none}
}
@media (max-width: 560px){
  .kpis{grid-template-columns:1fr}
  .kpi{border-right:0 !important;border-bottom:1px solid var(--rule)}
  .kpi:last-child{border-bottom:0}
  .setup-steps{grid-template-columns:1fr}
  .search{max-width:none}
  .quick{margin-left:0}
  .dash-split{grid-template-columns:1fr}
  .dash-split > div + div{border-left:0;border-top:1px solid var(--rule)}
  .summary > div{border-right:0;border-bottom:1px solid var(--rule)}
}

html[data-theme="dark"] input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8)}
html[data-theme="dark"] .search kbd{background:var(--surface-2)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-delay:0s !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none !important}
}
@media print{
  html[data-theme="dark"]{color-scheme:light;--bg:#fff;--surface:#fff;--surface-2:#FAFBFC;--ink:#21263C;--ink-2:#4D5369;--ink-3:#7C8298;--rule:#E6E9F0;--rule-2:#D5DAE4;--pri:#2F74EB;--red:#D33A3A}
  .sidebar,.topbar,.no-print,.page-head .actions,.toasts,.form-actions,.split-list,.route-progress,.ribbon{display:none !important}
  body{background:var(--surface)}
  .content{padding:0;max-width:none}
  .card{border:0;box-shadow:none;padding:0}
  .split{display:block;height:auto}.split-main{overflow:visible;padding:0}
  *{animation:none !important}
}
/* keep open dropdowns above the next animated block */
.page-head{position:relative;z-index:15}
.content > *:has(.menu.open),.grid > *:has(.menu.open),.card:has(.menu.open){position:relative;z-index:40}
.sidebar.no-anim *,.sidebar.no-anim{transition:none !important}
.paper-card{padding:34px 30px 26px 46px}
@media (max-width:900px){.paper-card{padding:30px 16px 18px 30px}}
.ledger-sample{border-collapse:separate;border-spacing:0;overflow:hidden}
.ledger-sample tr:last-child td{border-bottom:0}
@media (max-width: 900px){ .collapse-btn{display:none} .paper{overflow-x:auto} }
/* approvals */
.approval-bar{align-items:center;flex-wrap:wrap}
.approval-bar details.reject{position:relative}
.approval-bar details.reject summary{list-style:none}
.approval-bar details.reject summary::-webkit-details-marker{display:none}
.reject-form{position:absolute;right:0;top:calc(100% + 6px);z-index:30;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow-pop);padding:12px;width:300px;display:grid;gap:8px;color:var(--ink);animation:pop-down .18s var(--ease) both}
.approvals-card .card-head h3 .ic{color:var(--warn)}

/* ---------- access control screens ---------- */
.switch{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-weight:400;color:var(--ink)}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch .track{flex-shrink:0;width:38px;height:22px;border-radius:999px;background:var(--rule-2);position:relative;transition:background .2s;margin-top:1px}
.switch .track::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .25s var(--spring)}
.switch input:checked + .track{background:var(--ok)}
.switch input:checked + .track::after{transform:translateX(16px)}
.switch input:focus-visible + .track{outline:2px solid var(--pri);outline-offset:2px}
.switch input:disabled + .track{opacity:.5}
.switch small{display:block;color:var(--ink-3);font-size:.84rem}
.seg-radio{display:inline-flex;background:var(--seg);padding:3px;border-radius:7px;gap:2px}
.seg-radio label{margin:0;font-weight:500}
.seg-radio input{position:absolute;opacity:0;width:1px;height:1px}
.seg-radio span{display:block;padding:6px 14px;border-radius:5px;cursor:pointer;color:var(--ink-2);transition:background .2s,color .2s,box-shadow .2s}
.seg-radio input:checked + span{background:var(--surface);color:var(--pri-ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.seg-radio input:focus-visible + span{outline:2px solid var(--pri)}
.scope-box{transition:opacity .25s}
.scope-box.is-off{display:none}
.pick{border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.pick-head{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface-2);border-bottom:1px solid var(--rule)}
.pick-list{max-height:300px;overflow:auto;border:1px solid var(--rule);border-radius:var(--r)}
.pick .pick-list{border:0;border-radius:0}
.pick-item{display:flex;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid var(--rule);font-weight:400;color:var(--ink);cursor:pointer;transition:background .12s}
.pick-item:last-child{border-bottom:0}
.pick-item:hover{background:var(--hover)}
.pick-item input{margin:0}
.pick-item small{margin-left:auto;color:var(--ink-3);font-size:.78rem}
.pick-item.hidden{display:none}
.pick-search{position:relative;margin-bottom:12px;max-width:360px}
.pick-search .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-3)}
.pick-search input{margin:0;padding-left:30px}
.help-list{margin:0;padding-left:18px;color:var(--ink-2);font-size:.92rem}
.help-list li + li{margin-top:8px}
.preset-row{display:flex;gap:6px;flex-wrap:wrap}
.matrix-wrap{overflow:auto;max-height:calc(100vh - 240px)}
.matrix thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);box-shadow:0 1px 0 var(--rule)}
.matrix td{vertical-align:middle;padding-top:7px;padding-bottom:7px}
.matrix .group-row td{position:sticky;top:34px;z-index:1}
.matrix select{margin:0;padding:4px 26px 4px 8px;min-width:118px;font-size:.9rem}
.matrix .limit-in{margin:0;width:130px;text-align:right;padding:4px 8px;font-size:.9rem}
.matrix .na{color:var(--rule-strong)}
.col-toggle{background:none;border:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;padding:2px 4px;border-radius:4px;border-bottom:1px dashed var(--rule-strong)}
.col-toggle:hover{color:var(--pri-ink);background:var(--pri-50)}
.mrow{transition:opacity .2s,background .2s}
.mrow.off td:not(:first-child):not(:nth-child(2)){opacity:.35}
.mrow.off td:first-child strong{color:var(--ink-3);font-weight:500}
.mrow.flash{animation:flash-val .6s ease}
.tick{display:inline-grid;place-items:center;cursor:pointer;margin:0}
.tick input{position:absolute;opacity:0;width:1px;height:1px}
.tick span{width:20px;height:20px;border-radius:5px;border:1.5px solid var(--rule-strong);background:var(--input-bg);display:grid;place-items:center;transition:background .15s,border-color .15s,transform .2s var(--spring)}
.tick span::after{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) scale(0);margin-top:-2px;transition:transform .2s var(--spring)}
.tick input:checked + span{background:var(--pri);border-color:var(--pri)}
.tick input:checked + span::after{transform:rotate(-45deg) scale(1)}
.tick input:focus-visible + span{outline:2px solid var(--pri);outline-offset:2px}
.tick input:disabled + span{opacity:.55;cursor:not-allowed}
.tick:active span{transform:scale(.88)}
.perm-summary td{padding-top:7px;padding-bottom:7px}
@media (max-width: 900px){ .matrix-wrap{max-height:none} .matrix .group-row td{position:static} }

/* ---------- e-invoice / e-way bill ---------- */
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;word-break:break-all}
.irn-strip{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--rule);border-radius:var(--r);padding:10px 12px;margin-top:14px;background:var(--surface-2)}
.irn-strip img{border:1px solid var(--rule);border-radius:4px;background:#fff;flex-shrink:0}
.compliance-card{margin-top:16px}
.comp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.comp-col{padding:16px 18px}
.comp-col + .comp-col{border-left:1px solid var(--rule)}
.comp-title{font-weight:600;display:flex;align-items:center;gap:8px;margin-bottom:10px}
.irn-box{display:flex;gap:14px;align-items:flex-start;margin-bottom:10px}
.irn-qr{border:1px solid var(--rule);border-radius:6px;background:#fff;padding:2px;animation:pop-in .4s var(--spring) both}
.irn-box .kv{grid-template-columns:70px 1fr;flex:1;min-width:0}
.btn-row{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}
.inline-pop{position:relative;display:inline-block}
.inline-pop > summary{list-style:none}
.inline-pop > summary::-webkit-details-marker{display:none}
.pop-form{position:absolute;left:0;top:calc(100% + 6px);z-index:30;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow-pop);padding:12px;width:330px;animation:pop-down .18s var(--ease) both}
.pop-form .stack > * + *{margin-top:10px}
.transport{margin-top:10px;border:1px solid var(--rule);border-radius:var(--r);padding:8px 12px;background:var(--surface-2)}
.transport summary{cursor:pointer}
.transport-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;margin-top:10px}
.transport-form .span-all{grid-column:1/-1}
.transport-form label{font-size:.84rem}
@media (max-width: 900px){ .comp-col + .comp-col{border-left:0;border-top:1px solid var(--rule)} .transport-form{grid-template-columns:1fr 1fr} .pop-form{width:min(330px,calc(100vw - 40px))} }
/* GSTIN field */
.gstin-wrap{position:relative;display:block}
.gstin-wrap input{padding-right:34px}
.gstin-ic{position:absolute;right:10px;top:calc(50% + 2px);transform:translateY(-50%);width:16px;height:16px;border-radius:50%}
.gstin-field[data-state=ok] .gstin-ic{background:var(--ok);animation:pop-in .3s var(--spring) both}
.gstin-field[data-state=ok] .gstin-ic::after{content:"";position:absolute;left:5px;top:3px;width:4px;height:7px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.gstin-field[data-state=bad] .gstin-ic{background:var(--red);animation:shake .35s ease both}
.gstin-field[data-state=bad] .gstin-ic::after{content:"!";position:absolute;inset:0;color:#fff;font-weight:700;font-size:11px;text-align:center;line-height:16px}
.gstin-field[data-state=warn] .gstin-ic{background:var(--warn)}
.gstin-field[data-state=busy] .gstin-ic{border:2px solid var(--rule-2);border-top-color:var(--pri);animation:spin .7s linear infinite}
.gstin-field[data-state=ok] input{border-color:var(--ok)}
.gstin-field[data-state=bad] input{border-color:var(--red)}
.gstin-field[data-state=bad] .gstin-status{color:var(--red-ink)}
.gstin-field[data-state=ok] .gstin-status{color:var(--ok-ink)}
.gstin-status{min-height:1.2em}
.gstin-fetch{margin-top:6px}
.gstin-fetch.loading .ic{animation:spin-plain .8s linear infinite}
.warn-text{color:var(--warn-ink);font-weight:500}
input.flash-val,textarea.flash-val,select.flash-val{animation:flash-val .9s ease}
@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}
@keyframes spin-plain{to{transform:rotate(360deg)}}
/* reconciliation cards */
.reco-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.reco-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:10px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:12px 14px;color:var(--ink);position:relative;overflow:hidden;transition:transform .2s var(--ease),box-shadow .2s,border-color .2s}
.reco-card:hover{text-decoration:none;color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-2)}
.reco-card.on{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-100)}
.reco-card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--tone)}
.rc-ic{grid-row:1/4;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--tone) 14%,transparent);color:var(--tone)}
.rc-k{font-size:.82rem;color:var(--ink-3)}
.rc-n{font-size:1.45rem;font-weight:600;line-height:1.1}
.rc-t{font-size:.78rem;color:var(--ink-3)}
.tone-ok{--tone:var(--ok)}.tone-red{--tone:var(--red)}.tone-warn{--tone:var(--warn)}.tone-pri{--tone:var(--pri)}
.reco-table td{vertical-align:middle}
@media (max-width: 1100px){ .reco-cards{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width: 560px){ .reco-cards{grid-template-columns:1fr 1fr} }
.sec-chips{display:flex;gap:6px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--rule)}
.score{display:inline-block;width:70px;height:6px;border-radius:999px;background:var(--seg);overflow:hidden;vertical-align:middle}
.score i{display:block;height:100%;background:linear-gradient(90deg,var(--warn),var(--ok));border-radius:999px;animation:fill-x .8s var(--ease) both}
.stmt-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between;margin-bottom:12px}
.seg-links{display:flex;gap:4px;flex-wrap:wrap;background:var(--seg);padding:3px;border-radius:8px}
.seg-links a{padding:5px 10px;border-radius:6px;color:var(--ink-2);font-weight:500;font-size:.92rem;transition:background .15s,color .15s}
.seg-links a:hover{text-decoration:none;color:var(--ink)}
.seg-links a.on{background:var(--surface);color:var(--pri-ink);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.suggest{margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.86rem;background:var(--pri-50);color:var(--pri-ink);border-radius:6px;padding:5px 8px;animation:rise .3s var(--ease) both}
.stmt-table tr.st-excluded td{opacity:.55}
.stmt-table tr.st-excluded td:last-child{opacity:1}
[hidden]{display:none !important}

/* ===================== Pickers: calendar + searchable dropdown ===================== */
.pk-native{position:absolute!important;inset:0;width:100%!important;height:100%!important;opacity:0!important;pointer-events:none!important;margin:0!important;padding:0!important;border:0!important}
.pk-ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pk-date,.pk-select{position:relative;display:block;margin-top:5px;min-width:0}
.lines .pk-date,.lines .pk-select,.matrix .pk-select,.filters .pk-select{margin-top:0}
.pk-date-input{margin:0!important;padding-right:34px!important}
.pk-date-input.pk-bad{border-color:var(--red)!important;box-shadow:0 0 0 3px var(--red-50)!important}
.pk-date-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--ink-3);padding:5px;border-radius:5px;cursor:pointer;display:flex;transition:color .15s,background .15s}
.pk-date-btn:hover,.pk-open .pk-date-btn{color:var(--pri);background:var(--pri-50)}
.pk-trigger{font:inherit;width:100%;display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer;color:var(--ink);padding:7px 10px;border:1px solid var(--rule-2);border-radius:6px;background:var(--input-bg);min-height:36px;transition:border-color .15s,box-shadow .2s,background .15s}
.lines .pk-trigger{padding:6px 8px;min-height:33px}
.pk-trigger:hover{border-color:var(--rule-strong)}
.pk-trigger:focus-visible,.pk-open .pk-trigger,.pk-trigger:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-100)}
.pk-trigger:disabled{opacity:.6;cursor:not-allowed;background:var(--surface-2)}
.pk-trigger > .pk-ic{color:var(--ink-3);margin-left:auto;transition:transform .2s var(--ease,ease)}
.pk-open .pk-trigger > .pk-ic{transform:rotate(180deg);color:var(--pri)}
.pk-val{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-val small{color:var(--ink-3);margin-left:8px;font-size:.82em}
.pk-placeholder .pk-val{color:var(--placeholder)}
.pk-invalid .pk-trigger,.pk-invalid .pk-date-input{border-color:var(--red);box-shadow:0 0 0 3px var(--red-50)}
.pk-flash{animation:flash-val .9s ease}
.pk-compact{display:inline-block;margin:0;min-width:150px}
.pk-compact .pk-trigger{min-height:32px;padding:5px 10px}

.pk-pop{position:fixed;z-index:200;background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);animation:pk-in .16s var(--ease,ease) both;transform-origin:top left}
.pk-pop.pk-up{transform-origin:bottom left;animation-name:pk-in-up}
.pk-pop.pk-closing{animation:pk-out .12s ease forwards;pointer-events:none}
@keyframes pk-in{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes pk-in-up{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes pk-out{to{opacity:0;transform:scale(.98)}}

/* dropdown list */
.pk-list-pop{max-width:min(460px,calc(100vw - 16px));display:flex;flex-direction:column;overflow:hidden}
.pk-search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--rule);color:var(--ink-3)}
.pk-search input{margin:0;border:0;padding:3px 0;background:transparent;box-shadow:none!important}
.pk-list{max-height:290px;overflow:auto;padding:5px;overscroll-behavior:contain}
.pk-group{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);padding:9px 10px 4px}
.pk-opt{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:5px;cursor:pointer;line-height:1.3}
.pk-opt-main{flex:1;min-width:0;display:flex;flex-direction:column}
.pk-opt-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pk-opt small{color:var(--ink-3);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pk-opt.act{background:var(--hover)}
.pk-opt.sel{color:var(--pri-ink);font-weight:600}
.pk-opt.sel .pk-ic{color:var(--pri)}
.pk-opt.dis{opacity:.45;cursor:not-allowed}
.pk-opt.pk-empty .pk-opt-label{color:var(--ink-3);font-style:italic}
.pk-opt mark{background:var(--warn-50);color:inherit;border-radius:2px;padding:0 1px}
.pk-none{padding:14px;color:var(--ink-3);text-align:center;font-size:.92rem}
.pk-add{display:flex;align-items:center;gap:7px;padding:9px 12px;border-top:1px solid var(--rule);color:var(--pri);font-weight:600;font-size:.92rem;background:var(--surface-2)}
.pk-add:hover{background:var(--pri-50);text-decoration:none}

/* calendar */
.pk-cal{width:280px;padding:10px;user-select:none}
.pk-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.pk-title{font:inherit;font-weight:600;border:0;background:none;color:var(--ink);padding:5px 10px;border-radius:5px;cursor:pointer}
button.pk-title:hover{background:var(--hover);color:var(--pri)}
.pk-nav{border:0;background:none;color:var(--ink-2);padding:6px;border-radius:6px;cursor:pointer;display:flex}
.pk-nav:hover{background:var(--hover);color:var(--pri)}
.pk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.pk-dow span{text-align:center;font-size:.74rem;font-weight:600;color:var(--ink-3);padding:4px 0}
.pk-day,.pk-cell{font:inherit;font-size:.9rem;border:0;background:none;color:var(--ink);height:34px;border-radius:7px;cursor:pointer;position:relative;transition:background .12s,color .12s,transform .12s}
.pk-day:hover:not(:disabled),.pk-cell:hover{background:var(--hover);color:var(--pri)}
.pk-day.out{color:var(--ink-3);opacity:.55}
.pk-day.sun{color:var(--red-ink)}
.pk-day.today,.pk-cell.today{font-weight:700;color:var(--pri)}
.pk-day.today::after{content:"";position:absolute;left:50%;bottom:4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--pri)}
.pk-day.focus{box-shadow:inset 0 0 0 1.5px var(--pri)}
.pk-day.sel,.pk-cell.sel{background:var(--pri)!important;color:#fff!important;font-weight:600;animation:pk-sel .25s var(--spring,ease)}
.pk-day.sel::after{background:#fff}
.pk-day:disabled{opacity:.25;cursor:not-allowed;text-decoration:line-through}
.pk-months{grid-template-columns:repeat(3,1fr);gap:6px;padding:6px 0}
.pk-months .pk-cell{height:46px}
@keyframes pk-sel{from{transform:scale(.8)}to{transform:scale(1)}}
.pk-in-r{animation:pk-slide-r .2s var(--ease,ease)}
.pk-in-l{animation:pk-slide-l .2s var(--ease,ease)}
@keyframes pk-slide-r{from{opacity:.2;transform:translateX(14px)}to{opacity:1;transform:none}}
@keyframes pk-slide-l{from{opacity:.2;transform:translateX(-14px)}to{opacity:1;transform:none}}
.pk-cal-foot{display:flex;flex-wrap:wrap;gap:4px;border-top:1px solid var(--rule);margin-top:8px;padding-top:8px}
.pk-link{font:inherit;font-size:.84rem;border:1px solid var(--rule);background:var(--surface-2);color:var(--ink-2);padding:4px 9px;border-radius:999px;cursor:pointer}
.pk-link:hover{border-color:var(--pri);color:var(--pri);background:var(--pri-50)}
.pk-clear{margin-left:auto;border-color:transparent;background:none}
.pk-clear:hover{color:var(--red);border-color:transparent;background:var(--red-50)}

/* quick period menu next to From/To filters */
.pk-range{align-self:flex-end;display:inline-block}
.pk-range-btn{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.pk-range-btn.pk-on{border-color:var(--pri);color:var(--pri);background:var(--pri-50)}
.pk-range .menu-panel{left:0;right:auto;min-width:260px}
.pk-range .menu-item{display:flex;gap:12px;width:100%}
.pk-range .menu-item small{margin-left:auto;font-size:.8rem}
@media (max-width:640px){.pk-cal{width:min(300px,calc(100vw - 16px))}.pk-list{max-height:50vh}}
@media (prefers-reduced-motion:reduce){.pk-pop,.pk-day.sel,.pk-in-r,.pk-in-l{animation:none!important}}

/* ===================== Chart of accounts tree ===================== */
.tree-card{padding:0;overflow:hidden}
.tree-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 16px;border-bottom:1px solid var(--rule);background:var(--surface-2)}
.tree-tools .push{margin-left:auto}
.tree-asof label{display:flex;align-items:center;gap:8px;font-size:.88rem;white-space:nowrap;margin:0}
.tree-asof .pk-date{width:150px;margin:0}
.search-box{position:relative;display:flex;align-items:center;min-width:240px}
.search-box .ic{position:absolute;left:10px;color:var(--ink-3);pointer-events:none}
.search-box input{margin:0;padding-left:32px}
.seg{display:inline-flex;background:var(--seg);padding:3px;border-radius:7px;gap:2px}
.seg button{display:inline-flex;align-items:center;gap:5px;border:0;background:none;font:inherit;font-size:.86rem;color:var(--ink-2);padding:5px 10px;border-radius:5px;cursor:pointer;transition:background .15s,color .15s}
.seg button:hover{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}
.chk{display:inline-flex;align-items:center;gap:0;font-size:.88rem;margin:0;cursor:pointer;white-space:nowrap}
.tree-table td,.tree-table th{padding-top:7px;padding-bottom:7px}
.tree-table th:first-child,.tree-table td:first-child{padding-left:16px}
.tree-name{padding-left:calc(16px + var(--d,0) * 22px)!important;white-space:nowrap}
.tree-name .pill{margin-left:6px;font-size:.72rem;vertical-align:1px}
.tree-tog{border:0;background:none;color:var(--ink-3);width:22px;height:22px;border-radius:5px;display:inline-grid;place-items:center;cursor:pointer;margin:-2px 4px -2px -4px;vertical-align:middle;transition:background .15s,color .15s}
.tree-tog:hover{background:var(--hover);color:var(--pri)}
.tree-tog .ic{transition:transform .2s var(--ease)}
.tree-tog[aria-expanded="true"] .ic{transform:rotate(90deg)}
.tree-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--rule-strong);margin:0 12px 1px 4px;vertical-align:middle}
.tree-dot.party{background:transparent;border:1.5px solid var(--ink-3)}
.tree-type td{background:var(--surface-2);font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;border-top:1px solid var(--rule)}
.tree-type .num strong{font-size:.92rem;text-transform:none;letter-spacing:0}
.tree-group td{font-weight:600;color:var(--ink-2)}
.tree-row .tree-link{color:var(--ink);font-weight:500}
.tree-row .tree-link:hover{color:var(--pri)}
.tree-party .tree-link{font-weight:400;color:var(--ink-2)}
.tree-row.is-inactive{opacity:.6}
.tree-hit .tree-link,.tree-hit.tree-group td:first-child,.tree-hit.tree-type td:first-child{background:var(--warn-50);border-radius:3px;box-shadow:0 0 0 2px var(--warn-50)}
.hide-zero .tree-row.is-zero:not(.tree-type):not(.tree-group){display:none}
.hide-inactive .tree-row.is-inactive{display:none}
.row-actions{opacity:.0;transition:opacity .15s}
.row-actions .btn-link + .btn-link,.row-actions .btn-link + form{margin-left:10px}
tr:hover .row-actions,.row-actions:focus-within{opacity:1}
@media (hover:none){.row-actions{opacity:1}}
.drcr{font-size:.72rem;font-weight:600;color:var(--ink-3);margin-left:2px;letter-spacing:.02em}
.drcr.cr{color:var(--warn-ink)}
.pill-in{background:var(--ok-50);color:var(--ok-ink)}.pill-out{background:var(--warn-50);color:var(--warn-ink)}
.tree-empty{padding:24px;text-align:center}
@media (max-width:760px){.hide-sm{display:none}.tree-tools .push{margin-left:0}.search-box{min-width:0;flex:1}}

/* account form */
.sub-acct{display:grid;gap:8px;padding:12px 14px;border:1px dashed var(--rule-2);border-radius:var(--r)}
.opening-box{border:1px solid var(--rule);border-radius:var(--r);padding:10px 14px 12px;margin:0}
.opening-box legend{font-weight:600;padding:0 6px;font-size:.92rem}
.opening-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.opening-row input{max-width:200px;margin:0}
.bank-only{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bank-only[hidden]{display:none}

/* opening balances screen */
.opening-head{display:flex;gap:24px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}
.opening-head > label{max-width:280px}
.ob-totals{display:flex;gap:26px;margin-left:auto;flex-wrap:wrap}
.ob-totals div{display:flex;flex-direction:column;gap:2px;text-align:right}
.ob-totals strong{font-size:1.15rem;font-variant-numeric:tabular-nums}
.ob-diff strong{color:var(--warn-ink)}
.ob-diff.ok strong{color:var(--ok-ink)}
.ob-table input{margin:0;text-align:right;max-width:170px;margin-left:auto;display:block}
.ob-table td{vertical-align:middle}
.tabs-local{align-items:center}
.tabs-local .search-box{min-width:200px;margin-bottom:6px}
.tabs .count{display:inline-block;min-width:20px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--chip);color:var(--chip-ink);font-size:.75rem;text-align:center}
.sticky-actions{position:sticky;bottom:0;background:var(--bg);padding:12px 0;z-index:5;border-top:1px solid var(--rule);margin-top:14px}

/* statement */
.filter-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}
.filter-row > label{margin:0;min-width:170px}
.filter-row .actions{display:flex;gap:8px}
.stmt-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;margin-bottom:16px}
.stmt-summary div{background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:3px}
.stmt-summary span{font-size:.8rem;color:var(--ink-3)}
.stmt-summary strong{font-size:1.08rem;font-variant-numeric:tabular-nums}
.stmt-summary .hl{background:var(--pri-50)}
.stmt-summary .hl strong{color:var(--pri-ink)}
@media (max-width:760px){.stmt-summary{grid-template-columns:1fr 1fr}}

/* ===================== Document lines: columns + item capture ===================== */
.lines-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.lines-head .card-title{margin:0}
.cols-menu .menu-panel{min-width:240px}
.menu-check{cursor:pointer;user-select:none}
.menu-check input{margin:0 4px 0 0}
.menu-foot{padding:8px 10px 4px;border-top:1px solid var(--rule);margin-top:4px;display:flex;flex-direction:column;gap:4px}
.lines .f-desc{margin-top:5px;resize:none;min-height:34px;overflow:hidden;font-size:.9rem;color:var(--ink-2);line-height:1.35}
.lines .line-hint{font-size:.78rem;color:var(--ink-3);margin-top:3px;min-height:0}
.lines .line-hint:empty{display:none}
.lines .line-hint.warn{color:var(--warn-ink);font-weight:600}
.lines tr.line-picked td{animation:line-picked 1s ease}
@keyframes line-picked{0%{background:var(--pri-50)}100%{background:transparent}}
.lines.hide-qty .c-qty,.lines.hide-hsn .c-hsn,.lines.hide-unit .c-unit,.lines.hide-account .c-acct,.lines.hide-discount .c-disc,.lines.hide-tax .c-tax,.lines.hide-description .f-desc{display:none}
.lines.no-cess .c-cess{display:none}
.lines .c-cess{width:76px}
.paper-lines .line-title{font-weight:600}
.paper-lines .line-desc{font-weight:400;margin-top:2px}
.cols-matrix .table td,.cols-matrix .table th{vertical-align:middle}
.cols-matrix th.center{font-size:.8rem;line-height:1.3}
.col-focus{background:var(--pri-50)}

/* list column chooser */
.list-toolbar{display:flex;justify-content:flex-end;margin:-4px 0 6px}
.list-cols .menu-panel{min-width:210px;max-height:min(70vh,420px);overflow:auto}
.list-cols .btn{gap:6px}
.list-cols-n:not(:empty){background:var(--pri-50);color:var(--pri-ink);border-radius:999px;padding:0 7px;font-size:.75rem;font-weight:600}
@media (max-width:760px){
  .tree-tools{gap:8px}
  .tree-tools .search-box{flex:1 1 100%}
  .tree-asof{flex:1 1 100%}
  .tree-asof label{justify-content:space-between}
  .tree-name{white-space:normal;padding-left:calc(10px + var(--d,0) * 12px)!important}
  .tree-table td,.tree-table th{padding-left:8px;padding-right:8px}
  .tree-table tr > :last-child{display:none}
  .tree-name .pill{display:none}
}

/* line-item table: fixed columns that fit the card; scrolls sideways only on narrow screens */
#lines-table{width:100%;table-layout:fixed;min-width:940px}
#lines-table th.c-hsn{width:88px}#lines-table th.c-acct{width:132px}#lines-table th.c-qty{width:72px}#lines-table th.c-unit{width:92px}
#lines-table th.c-rate{width:100px}#lines-table th.c-disc{width:66px}#lines-table th.c-tax{width:108px}#lines-table th.right{width:108px}#lines-table th.c-x{width:34px}
#lines-table td input,#lines-table td select,#lines-table td textarea,#lines-table .pk-select,#lines-table .pk-date{width:100%;min-width:0}
#lines-table .pk-trigger{padding:6px 6px 6px 8px;gap:4px}
#lines-table .pk-val small{display:none}
#lines-table .c-item .pk-val small{display:inline}
#lines-table .amt{padding-right:10px;overflow:hidden;text-overflow:ellipsis}
#lines-table .c-x{text-align:center;padding-left:0;padding-right:0}
#lines-table thead th:first-child{border-top-left-radius:var(--r)}#lines-table thead th:last-child{border-top-right-radius:var(--r)}
.table-wrap:has(> #lines-table){overflow-x:auto;padding-bottom:2px}

/* "+ Add" box inside a dropdown */
.pk-inline{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 10px;border-top:1px solid var(--rule);background:var(--surface-2)}
.pk-inline input{flex:1;min-width:120px;margin:0;padding:6px 8px;font-size:.9rem}
.pk-inline-add{display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:.86rem;font-weight:600;color:#fff;background:var(--pri);border:0;border-radius:6px;padding:6px 10px;cursor:pointer}
.pk-inline-add:hover{background:var(--pri-600)}
.pk-inline-add .pk-ic{width:14px;height:14px}
.pk-inline-manage{font-size:.84rem}
.pk-inline-err{flex-basis:100%;color:var(--red);font-size:.82rem}
.pk-inline.busy{opacity:.6;pointer-events:none}

/* ===================== v6.1: footer, demo form, logo, party card, form checks, platform ===================== */
.app-foot{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between;align-items:center;padding:14px 26px 18px;color:var(--ink-3);font-size:.8rem;border-top:1px solid var(--rule);margin-top:auto}
.main{display:flex;flex-direction:column;min-height:100vh}
.main > .content{flex:1 0 auto}
.app-foot-links{display:flex;gap:14px}.app-foot a{color:var(--ink-3)}.app-foot a:hover{color:var(--pri)}
.app-ver{margin-left:6px;padding:0 6px;border-radius:999px;background:var(--chip);color:var(--chip-ink);font-size:.72rem}
.auth-form{display:flex;flex-direction:column;align-items:center;justify-content:center}
.auth-form .app-foot{border:0;justify-content:center;padding:24px 0 0;margin:0;background:none}
.demo-cta{display:flex;gap:12px;align-items:center;margin-top:20px;padding:14px 14px;border-radius:var(--r-lg);border:1px solid var(--pri-100);background:linear-gradient(135deg,var(--pri-50),var(--surface));color:var(--ink);transition:transform .2s var(--ease),box-shadow .2s,border-color .2s}
.demo-cta:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:var(--pri)}
.demo-cta-ic{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--pri);color:#fff}
.demo-cta strong{display:block}.demo-cta small{display:block;color:var(--ink-2);font-size:.84rem;line-height:1.35;margin-top:2px}
.demo-cta-go{margin-left:auto;color:var(--pri);transition:transform .2s var(--ease)}
.demo-cta:hover .demo-cta-go{transform:translateX(3px)}
.demo-form textarea{min-height:76px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.grid-2-tight{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
@media (max-width:640px){.grid-2-tight{grid-template-columns:1fr}}
.demo-thanks{text-align:center;padding:10px 0}
.demo-check{width:64px;height:64px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;background:var(--ok-50);color:var(--ok);animation:pop-in .5s var(--spring) both}
.demo-check .ic{width:30px;height:30px}
.demo-check.warn{background:var(--warn-50);color:var(--warn)}
@keyframes pop-in{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}

/* logo */
.logo-row{display:flex;gap:18px;align-items:center;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--rule)}
.logo-drop{width:180px;height:84px;border:1.5px dashed var(--rule-2);border-radius:var(--r);display:grid;place-items:center;background:var(--surface-2);overflow:hidden;flex:none}
.logo-drop.has-logo{border-style:solid;background:#fff}
.logo-drop img{max-width:170px;max-height:76px;object-fit:contain}
.logo-empty{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--ink-3);font-size:.82rem}
.logo-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.logo-actions .btn{cursor:pointer}
.doc-logo{max-width:220px;max-height:80px;display:block;margin-bottom:10px;object-fit:contain}
.org-avatar.org-logo{background:#fff;padding:2px;overflow:hidden}
.org-avatar.org-logo img{max-width:100%;max-height:100%;object-fit:contain}

/* customer / vendor details on document forms */
#doc-form .form-grid{grid-auto-flow:dense}
.party-card{display:grid;grid-template-columns:1.3fr 1.1fr 1fr 1fr 1fr;gap:6px 18px;padding:12px 14px;border:1px solid var(--rule);border-left:3px solid var(--pri);border-radius:var(--r);background:var(--surface-2);font-size:.88rem;line-height:1.45}
.party-card.pc-in{animation:rise .3s var(--ease) both}
.pc-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:2px}
.pc-name{font-weight:600}
.pc-addr{color:var(--ink-2)}
.pc-bal .pc-amt{font-weight:600}
.pc-bal.due .pc-amt{color:var(--warn-ink)}
.pc-bal a{font-size:.82rem}
.pc-warn{grid-column:1/-1;color:var(--warn-ink);background:var(--warn-50);border-radius:5px;padding:5px 9px;font-size:.84rem}
@media (max-width:1100px){.party-card{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:640px){.party-card{grid-template-columns:1fr 1fr}}

/* checks before saving */
.form-issues{margin:6px 0 4px;display:grid;gap:10px}
.form-issues.fi-in{animation:rise .3s var(--ease) both}
.fi-block{border-radius:var(--r);padding:10px 14px;border:1px solid;border-left-width:4px}
.fi-err{background:var(--red-50);border-color:var(--red);color:var(--red-ink)}
.fi-warn{background:var(--warn-50);border-color:var(--warn);color:var(--warn-ink)}
.fi-head{display:flex;gap:8px;align-items:center;margin-bottom:4px}
.fi-block ul{margin:0;padding-left:26px}
.fi-block li{margin:2px 0}
.fi-block .btn-link{color:inherit;font-weight:500;text-align:left;text-decoration:underline;text-decoration-color:transparent}
.fi-block .btn-link:hover{text-decoration-color:currentColor}
.fi-actions{display:flex;gap:8px;margin-top:8px}
.has-err > input,.has-err > select,.has-err > textarea,input.has-err,select.has-err,textarea.has-err,.has-err .pk-trigger,.has-err .pk-date-input{border-color:var(--red)!important;box-shadow:0 0 0 3px var(--red-50)!important}
.field-err{color:var(--red);font-size:.76rem;font-weight:600;margin-top:3px;animation:rise .2s var(--ease) both}
.alert-rich{align-items:flex-start}
.alert-rich > div{display:flex;flex-direction:column;gap:2px;flex:1}
.alert-x{border:0;background:none;color:inherit;opacity:.6;cursor:pointer;padding:2px;border-radius:4px}
.alert-x:hover{opacity:1;background:rgba(0,0,0,.06)}

/* subscription and support banners */
.support-bar,.sub-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:9px 14px;border-radius:var(--r);margin-bottom:14px;font-size:.9rem;background:var(--pri-50);color:var(--pri-ink);border:1px solid var(--pri-100)}
.support-bar{background:#2b2140;color:#f1e9ff;border-color:#4b3a6e}
html[data-theme="dark"] .support-bar{background:#2e2547}
.support-bar form{margin-left:auto}
.sub-bar.sub-warn{background:var(--warn-50);color:var(--warn-ink);border-color:var(--warn)}
.sub-bar.sub-bad{background:var(--red-50);color:var(--red-ink);border-color:var(--red)}
.sub-bar .btn{margin-left:auto}

/* platform admin */
.admin-sidebar{--side-bg:#1d1530; --side-ink:#C9C3DA; --side-dim:#8E86A6; --side-hover:rgba(255,255,255,.06); --side-active:#2F74EB; --side-sub:#171126; --side-strong:#fff; --side-line:rgba(255,255,255,.07); --side-add:rgba(255,255,255,.12); --side-thumb:rgba(255,255,255,.15); --brand-ink:#D5D0E4; --brand-strong:#fff; background:var(--side-bg)}
.admin-sidebar .brand-logo{background:#fff;border-radius:50%;padding:2px}
.admin-tag{display:flex;align-items:center;gap:6px;margin:10px 14px 8px;padding:5px 10px;border-radius:6px;background:rgba(255,255,255,.08);color:#e9dcff;font-size:.78rem;font-weight:600}
.admin-crumb{display:flex;align-items:center;gap:8px;color:var(--ink-2)}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.plan-card{display:flex;flex-direction:column;gap:6px;color:var(--ink);transition:transform .2s var(--ease),box-shadow .2s}
.plan-card:hover{text-decoration:none;transform:translateY(-3px);box-shadow:var(--shadow-2)}
.plan-top{font-size:1.05rem}
.plan-price{font-size:1.6rem;font-weight:700;letter-spacing:-.01em}
.plan-price small{font-size:.85rem;font-weight:500;color:var(--ink-3)}
.plan-limits{margin:4px 0;padding-left:18px;font-size:.88rem}
.plan-feats{display:flex;flex-wrap:wrap;gap:4px}
.plan-feats span{font-size:.76rem;padding:1px 7px;border-radius:999px}
.plan-feats .on{background:var(--ok-50);color:var(--ok-ink)}.plan-feats .off{background:var(--chip);color:var(--ink-3);text-decoration:line-through}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px}
.row-gap{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.demo-card{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start}
.demo-act{display:grid;gap:6px}
.demo-act select,.demo-act textarea{margin:0}
.demo-msg{background:var(--surface-2);border-radius:6px;padding:8px 10px;margin:6px 0}
@media (max-width:760px){.demo-card{grid-template-columns:1fr}}

/* GST filing */
.file-steps{display:flex;gap:6px;list-style:none;padding:14px 18px 6px;margin:0;flex-wrap:wrap}
.file-steps li{display:flex;align-items:center;gap:6px;font-size:.84rem;color:var(--ink-3);padding:4px 10px 4px 4px;border-radius:999px;background:var(--surface-2)}
.file-steps li span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--chip);font-weight:700;font-size:.75rem}
.file-steps li.done{color:var(--ok-ink)}.file-steps li.done span{background:var(--ok);color:#fff}
.file-steps li.now{color:var(--pri-ink);background:var(--pri-50)}.file-steps li.now span{background:var(--pri);color:#fff}
.file-actions{padding:6px 18px 16px;display:grid;gap:12px}
.evc-box{display:grid;gap:8px;padding:12px;border:1px dashed var(--rule-2);border-radius:var(--r)}
.err-report{margin:0;white-space:pre-wrap;font-size:.78rem;max-height:240px;overflow:auto}
.manual-file summary{list-style:none;cursor:pointer}

/* integrations */
.integ-head{display:flex;gap:12px;align-items:flex-start}
.integ-head h3{margin:0 0 2px}
.integ-head .help{margin:0}
.integ-ic{flex:none;width:38px;height:38px;border-radius:9px;display:grid;place-items:center;background:var(--pri-50);color:var(--pri)}
.webhook-box{display:grid;gap:6px;padding:10px 12px;border-radius:var(--r);background:var(--surface-2)}
.copy-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.copy-row code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:.8rem}
.btn.copied,.btn-link.copied{color:var(--ok-ink)}

/* payment link on invoices */
.paylink-card{display:flex;gap:14px;align-items:center;margin-bottom:16px;border-left:3px solid var(--ok)}
.pl-ic{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--ok-50);color:var(--ok)}
.pl-main{flex:1;min-width:0}
.pl-url{overflow-wrap:anywhere}
.pl-act{display:flex;gap:10px;align-items:center}
.pay-online a{word-break:break-all}

/* version history */
.history-grid{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}
.ver-list{list-style:none;margin:0;padding:6px}
.ver-list li a{display:flex;gap:10px;padding:9px 10px;border-radius:6px;color:var(--ink)}
.ver-list li a:hover{background:var(--hover);text-decoration:none}
.ver-list li.on a{background:var(--pri-50)}
.ver-no{flex:none;width:34px;height:24px;border-radius:999px;background:var(--chip);display:grid;place-items:center;font-size:.76rem;font-weight:700}
.ver-list li.on .ver-no{background:var(--pri);color:#fff}
.ver-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.ver-main small{font-size:.8rem;color:var(--ink-2)}
.diff-old{color:var(--red-ink);background:var(--red-50)}
.diff-new{color:var(--ok-ink);background:var(--ok-50)}
.kv-inline{display:grid;grid-template-columns:repeat(4,auto 1fr);gap:4px 12px}
@media (max-width:900px){.history-grid{grid-template-columns:1fr}.kv-inline{grid-template-columns:auto 1fr}}

/* bank feed, misc */
.feed-status{display:flex;gap:12px;align-items:flex-start}
.feed-status .dot{flex:none;width:12px;height:12px;border-radius:50%;margin-top:5px;background:var(--rule-strong)}
.feed-active .dot{background:var(--ok);box-shadow:0 0 0 4px var(--ok-50)}
.feed-pending .dot{background:var(--warn);box-shadow:0 0 0 4px var(--warn-50);animation:pulse 1.6s ease infinite}
.feed-rejected .dot,.feed-revoked .dot,.feed-expired .dot{background:var(--red)}
@keyframes pulse{50%{opacity:.4}}
.steps-list{margin:0;padding-left:20px;display:grid;gap:6px}
.row-tds td{background:var(--warn-50)}
.badge-btn{border:0;cursor:pointer;font:inherit;font-size:.7rem;font-weight:700}
.badge-btn:hover{background:var(--red-50);color:var(--red-ink)}
.code-row{display:flex;gap:8px;align-items:center;margin-top:5px}
.code-row input{margin:0;max-width:200px}
.upload-drop.has-file{border-color:var(--ok);background:var(--ok-50);color:var(--ok-ink)}
.pk-free .pk-ic{color:var(--pri)}
/* phones: dropdown lists become a bottom sheet */
@media (max-width:600px){
  .pk-list-pop{left:8px!important;right:8px;top:auto!important;bottom:8px;max-width:none;min-width:0!important;border-radius:14px;animation-name:pk-sheet}
  .pk-list-pop .pk-list{max-height:55vh}
  .pk-opt{padding:11px 12px}
  @keyframes pk-sheet{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
}

/* ---------- v6.2 staff allocation ---------- */
.alloc{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}
.alloc > *{min-width:0}
.alloc-unalloc div{min-width:0}
.alloc-side{position:sticky;top:72px}
.alloc-members{display:flex;flex-direction:column;max-height:calc(100vh - 380px);min-height:120px;overflow:auto}
.alloc-member{display:flex;gap:10px;align-items:flex-start;padding:10px 16px;border-top:1px solid var(--rule);color:var(--ink);text-decoration:none;transition:background .12s}
.alloc-member:hover{background:var(--hover);text-decoration:none}
.alloc-member.active{background:var(--pri-50);box-shadow:inset 3px 0 0 var(--pri)}
.alloc-member.is-off{opacity:.6}
.alloc-member .org-avatar{width:30px;height:30px;font-size:.8rem;flex-shrink:0}
.alloc-member strong{display:block;font-weight:600;line-height:1.25}
.alloc-member small{display:block;color:var(--ink-3);font-size:.78rem}
.alloc-counts{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.alloc-count{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;padding:1px 6px;border-radius:4px;background:var(--chip);color:var(--ink-3);font-variant-numeric:tabular-nums}
.alloc-count.is-lim{background:var(--pri-50);color:var(--pri-ink);font-weight:600}
.alloc-count .ic{width:12px;height:12px}
.alloc-unalloc{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}
.alloc-unalloc div{display:flex;justify-content:space-between;font-size:.9rem}
.alloc-unalloc strong{font-variant-numeric:tabular-nums}
.alloc-kinds{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}
label.check{display:flex;gap:7px;align-items:center;font-weight:400;color:var(--ink);cursor:pointer;margin:0}
label.check input{margin:0;width:auto}
.alloc-head{display:flex;gap:12px;align-items:center;margin-bottom:6px}
.alloc-head h2{margin:0;font-size:1.2rem}
.alloc-tabs{margin-bottom:14px}
.alloc-tabs a{display:inline-flex;align-items:center;gap:6px}
.alloc-tabs .badge{font-size:.66rem;padding:0 6px}
.alloc-scope{padding:16px 20px 12px;border-bottom:1px solid var(--rule)}
.alloc-scope .help{margin:8px 0 0}
.alloc-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid var(--rule);background:var(--surface-2)}
.alloc-tools .pick-search{flex:1 1 220px;max-width:320px}
.alloc-tools select{width:auto;margin:0}
.alloc-tally{color:var(--ink-3);font-size:.88rem;white-space:nowrap}
.alloc-tally strong{color:var(--ink);font-variant-numeric:tabular-nums}
.alloc-list{max-height:min(60vh,560px);overflow:auto}
.alloc-row{display:flex;gap:12px;align-items:center;padding:9px 20px;border-bottom:1px solid var(--rule);cursor:pointer;font-weight:400;color:var(--ink);margin:0;transition:background .12s}
.alloc-row:hover{background:var(--hover)}
.alloc-row.is-on{background:color-mix(in srgb,var(--pri-50) 55%,transparent)}
.alloc-row.is-inactive .alloc-name{color:var(--ink-3)}
.alloc-row input{margin:0;width:auto;flex-shrink:0}
.alloc-row small{display:block;color:var(--ink-3);font-size:.78rem}
.alloc-holders{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:45%}
.alloc-foot-opt{padding:14px 20px;border-top:1px solid var(--rule)}
.empty-mini{padding:22px;text-align:center;color:var(--ink-3)}
.chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;background:var(--chip);color:var(--chip-ink);font-size:.76rem;white-space:nowrap;text-decoration:none;line-height:1.7}
a.chip:hover{text-decoration:none;filter:brightness(.97)}
.chip small{font-size:.7rem;opacity:.75}
.chip-on{background:var(--pri-50);color:var(--pri-ink)}
.alloc-card{margin:16px 0}
.alloc-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.alloc-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.alloc-edit{margin-top:10px}
.alloc-edit summary{list-style:none;display:inline-flex}
.alloc-edit summary::-webkit-details-marker{display:none}
.alloc-edit[open] summary{background:var(--surface-2)}
.alloc-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 16px}
.alloc-bulk{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;margin-bottom:10px;border:1px solid var(--pri);border-radius:var(--r-lg);background:var(--pri-50);position:sticky;top:64px;z-index:5;animation:pop-down .2s ease-out}
.alloc-bulk select{width:auto;margin:0;min-width:180px}
.alloc-bulk[hidden]{display:none}
.row-pick,.row-pick-all{margin:0 6px 0 0;width:auto;vertical-align:middle}
tr.is-picked td{background:color-mix(in srgb,var(--pri-50) 60%,transparent)}
.staff-cell{white-space:normal}
.staff-cell .chip{margin:1px 2px 1px 0}
@media (max-width: 900px){
  .alloc{grid-template-columns:1fr}
  .alloc-side{position:static}
  .alloc-members{max-height:none;flex-direction:row;overflow-x:auto}
  .alloc-member{min-width:220px;border-top:0;border-right:1px solid var(--rule)}
  .alloc-main{order:-1}
  .alloc-tools select{flex:1 1 auto}
  .alloc-row{padding:10px 14px}
  .alloc-scope,.alloc-tools{padding-left:14px;padding-right:14px}
  .alloc-holders{display:none}
  .alloc-tools .pick-search{max-width:none}
}

/* ---------- v6.3 scan bills (AI capture) ---------- */
.cap-usage{display:inline-flex;align-items:center;gap:8px;font-size:.84rem;color:var(--ink-3);margin-right:6px}
.cap-meter{width:80px;height:6px;border-radius:9px;background:var(--chip);overflow:hidden}
.cap-meter i{display:block;height:100%;background:var(--pri);border-radius:9px}
.cap-drop{border:2px dashed var(--rule-2);border-radius:var(--r-lg);background:var(--surface);padding:22px;transition:border-color .15s,background .15s;margin-bottom:8px}
.cap-drop.is-over{border-color:var(--pri);background:var(--pri-50)}
.cap-drop.is-busy{opacity:.75;pointer-events:none}
.cap-drop-in{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cap-drop-in > div:nth-child(2){flex:1 1 260px;display:flex;flex-direction:column;gap:2px}
.cap-drop-in strong{font-size:1.02rem}
.cap-drop-in .muted{font-size:.85rem}
.cap-drop-ic{width:46px;height:46px;border-radius:12px;background:var(--pri-50);color:var(--pri-ink);display:grid;place-items:center;flex-shrink:0}
.cap-drop-ic .ic{width:22px;height:22px}
.cap-drop-btns{display:flex;gap:8px;flex-wrap:wrap}
.cap-drop-btns label{margin:0;cursor:pointer}
.cap-camera{display:none}
@media (pointer: coarse){.cap-camera{display:inline-flex}}
.cap-progress{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:.9rem}
.cap-progress.is-err{color:var(--red-ink)}
.spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--rule-2);border-top-color:var(--pri);animation:spin .8s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
.cap-mode{display:flex;gap:6px;align-items:center;margin:0 0 14px}
.cap-table td{vertical-align:middle}
.cap-file{display:flex;gap:10px;align-items:center;min-width:200px}
.cap-file small{display:block;color:var(--ink-3);font-size:.76rem}
.cap-thumb{width:30px;height:30px;border-radius:7px;background:var(--surface-2);border:1px solid var(--rule);display:grid;place-items:center;color:var(--ink-3);flex-shrink:0}
tr.is-reading td{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--pri-50) 70%,transparent),transparent);background-size:200% 100%;animation:cap-shimmer 1.4s linear infinite}
@keyframes cap-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.cap-err{color:var(--red-ink)}
.cap-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cap-review{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:18px;align-items:start}
.cap-review > *{min-width:0}
.cap-preview{position:sticky;top:72px;display:flex;flex-direction:column;height:calc(100vh - 150px);min-height:420px;overflow:hidden}
.cap-preview-bar{display:flex;align-items:center;gap:4px;padding:8px 12px;border-bottom:1px solid var(--rule);background:var(--surface-2)}
.cap-preview-body{flex:1;overflow:auto;background:#525659}
.cap-preview-body iframe{width:100%;height:100%;border:0;display:block;background:#fff}
.cap-img-wrap{padding:12px;display:flex;justify-content:center;min-height:100%}
.cap-img-wrap img{max-width:100%;height:auto;transform-origin:top center;transition:transform .2s;box-shadow:0 2px 12px rgba(0,0,0,.35);background:#fff}
.cap-side{display:flex;flex-direction:column;gap:14px}
.cap-checks{border-left:4px solid var(--ok)}
.cap-checks.has-err{border-left-color:var(--red)}
.cap-checks.has-warn{border-left-color:var(--warn)}
.cap-checks-head{display:flex;align-items:center;gap:8px}
.cap-checks-head strong{display:flex;align-items:center;gap:6px}
.cap-checks.has-err .cap-checks-head strong{color:var(--red-ink)}
.cap-checks.has-warn .cap-checks-head strong{color:var(--warn-ink)}
.cap-checks.all-ok .cap-checks-head strong{color:var(--ok-ink)}
.cap-check-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.cap-check-list li{display:flex;gap:8px;align-items:flex-start;font-size:.9rem;line-height:1.4}
.cap-check-list .ic{flex-shrink:0;margin-top:2px}
.cap-check-list .lvl-error .ic{color:var(--red)}
.cap-check-list .lvl-warn .ic{color:var(--warn)}
.cap-check-list .lvl-ok .ic{color:var(--ok)}
.cap-oks{margin-top:8px}
.cap-oks summary{cursor:pointer;color:var(--ink-3)}
.grid-3-tight{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}
.cap-lines{display:flex;flex-direction:column;gap:10px}
.cap-line{position:relative;display:grid;grid-template-columns:28px repeat(6,minmax(0,1fr));gap:8px 10px;padding:12px 12px 12px 8px;border:1px solid var(--rule);border-radius:var(--r);background:var(--surface)}
.cap-line label{margin:0;font-size:.74rem;color:var(--ink-3);font-weight:500;display:flex;flex-direction:column;gap:3px;min-width:0}
.cap-line input,.cap-line select{margin:0;padding:6px 8px;font-size:.9rem;width:100%}
.cap-line small{font-weight:400}
.cap-line-no{grid-row:1 / span 3;display:grid;place-items:start center;padding-top:22px;color:var(--ink-3);font-size:.8rem;font-weight:600}
.cl-desc{grid-column:2 / span 4}
.cl-item{grid-column:6 / span 2}
.cl-hsn{grid-column:2}
.cl-qty{grid-column:3}
.cl-rate{grid-column:4}
.cl-disc{grid-column:5}
.cl-tax{grid-column:6 / span 2}
.cl-acct{grid-column:2 / span 4}
.cl-amt{grid-column:6 / span 2;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;gap:2px;padding-right:30px}
.cl-amt strong{font-variant-numeric:tabular-nums}
.cl-del{position:absolute;right:6px;bottom:10px}
.cap-line .num{text-align:right}
@media (max-width: 600px){
  .cap-line{grid-template-columns:22px 1fr 1fr}
  .cap-line-no{grid-row:1 / span 6}
  .cl-desc,.cl-item,.cl-acct{grid-column:2 / span 2}
  .cl-hsn,.cl-rate,.cl-tax{grid-column:2}
  .cl-qty,.cl-disc{grid-column:3}
  .cl-amt{grid-column:3}
}
.btn-icon{border:0;background:transparent;color:var(--ink-3);padding:8px;border-radius:6px;cursor:pointer}
.btn-icon:hover{background:var(--red-50);color:var(--red-ink)}
.btn-danger-text{color:var(--red-ink)}
.cap-opts{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}
.cap-form .cap-exp,.cap-form .cap-exponly{display:none}
.cap-form.is-expense .cap-exp{display:grid}
.cap-form.is-expense .cap-exponly{display:inline}
.cap-form.is-expense .cap-bill,.cap-form.is-expense .cap-billonly{display:none}
.cap-total{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.3fr);gap:10px;align-items:end;padding:12px 14px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--rule)}
.cap-total > div{display:flex;flex-direction:column;gap:2px;font-size:.84rem}
.cap-total strong{font-size:1rem;font-variant-numeric:tabular-nums}
.cap-total input{margin:0;padding:5px 8px}
.cap-match{font-weight:600;font-size:.88rem;align-self:center}
.cap-match.ok{color:var(--ok-ink)}
.cap-match.bad{color:var(--red-ink)}
.cap-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:4px}
@media (max-width: 1000px){
  .cap-review{grid-template-columns:1fr}
  .cap-preview{position:static;height:60vh}
  .cap-total{grid-template-columns:1fr 1fr}
  .grid-3-tight{grid-template-columns:1fr 1fr}
}
@media (max-width: 600px){ .grid-3-tight{grid-template-columns:1fr} .cap-drop{padding:16px} }

/* ---------- v6.4 notes for customers and vendors ---------- */
#doc-form.is-switching{opacity:.6;pointer-events:none}
.switch-note{padding:10px 14px;margin-bottom:12px;border-radius:var(--r);background:var(--pri-50);color:var(--pri-ink);font-weight:600}
.party-tag{display:inline-block;padding:0 7px;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.7;vertical-align:1px}
.party-tag.customer{background:var(--pri-50);color:var(--pri-ink)}
.party-tag.vendor{background:var(--warn-50);color:var(--warn-ink)}
.note-new{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- v6.5 super admin: sidebar menus ---------- */
.menus-admin{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}
.menus-admin > *{min-width:0}
.menus-who{display:flex;flex-direction:column}
.menus-who a{display:flex;gap:10px;align-items:center;padding:10px 16px;border-top:1px solid var(--rule);color:var(--ink);text-decoration:none}
.menus-who a:hover{background:var(--hover);text-decoration:none}
.menus-who a.active{background:var(--pri-50);box-shadow:inset 3px 0 0 var(--pri)}
.menus-who .org-avatar{width:30px;height:30px;font-size:.8rem;flex-shrink:0;display:grid;place-items:center}
.menus-who strong{display:block;font-weight:600;line-height:1.25}
.menus-who small{display:block;color:var(--ink-3);font-size:.78rem}
.menus-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.menus-bulk{display:flex;gap:6px}
.menus-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.menus-sec{border:1px solid var(--rule);border-radius:var(--r);padding:10px 14px 12px;margin:0;display:flex;flex-direction:column;gap:10px}
.menus-sec legend{font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);padding:0 6px}
.menus-sec legend .btn-link{text-transform:none;letter-spacing:0;font-weight:500}
.menus-item.is-locked{opacity:.6}
@media (max-width: 900px){ .menus-admin{grid-template-columns:1fr} }

/* ---------- v7 ---------- */
.back-link{display:inline-flex;align-items:center;gap:4px;margin:-6px 0 10px;font-size:.88rem;font-weight:600;color:var(--ink-3);text-decoration:none}
.back-link:hover{color:var(--pri-ink);text-decoration:none}
.stmt-bulk{display:flex;gap:10px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--rule);background:var(--surface-2)}
.stmt-delall{position:absolute;right:14px;margin-top:-41px}
.card.table-wrap{position:relative}
.menu-panel.menu-float{position:fixed !important;right:auto !important;bottom:auto !important;z-index:200}

/* brand settings */
.brand-preview{display:flex;gap:12px;flex-wrap:wrap}
.brand-preview .brand{border:1px solid var(--rule);border-radius:var(--r);height:64px;background:#F7F8FB;padding:0 16px}
.brand-preview .brand-dark{background:#1B2A4E}
.brand-up{display:flex;flex-direction:column;gap:6px}
.brand-up .lbl{font-weight:500;font-size:.92rem}
.brand-up-row{display:flex;align-items:center;gap:12px}
.brand-up-row img{border:1px solid var(--rule);border-radius:8px;padding:4px;background:#fff;object-fit:contain}
.color-row{display:flex;align-items:center;gap:10px}
.color-row input[type=color]{width:46px;height:34px;padding:2px;border-radius:6px}
.side-switch{grid-template-columns:repeat(2,1fr)}
.side-sw{width:22px;height:14px;border-radius:3px;border:1px solid var(--rule-2);display:block}
.side-sw-light{background:linear-gradient(90deg,#F7F8FB 40%,#fff 40%)}
.side-sw-navy{background:linear-gradient(90deg,#1D2232 40%,#fff 40%)}
.paper-card{background:#fff;color:#1F2937}
html[data-theme="dark"] .paper-card{box-shadow:0 0 0 1px var(--rule)}
/* Settings → Print style */
.ps-wrap{display:grid;grid-template-columns:minmax(320px,400px) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:1100px){.ps-wrap{grid-template-columns:1fr}}
.ps-tpls{display:grid;gap:8px}
.ps-tpl{display:flex;gap:12px;align-items:center;border:1px solid var(--rule);border-radius:var(--r);padding:10px 12px;cursor:pointer;transition:border-color .15s,background .15s}
.ps-tpl:hover{border-color:var(--rule-strong)}
.ps-tpl:has(input:checked){border-color:var(--pri);background:var(--pri-50)}
.ps-tpl input{position:absolute;opacity:0;pointer-events:none}
.ps-tpl strong{display:block}.ps-tpl small{display:block;color:var(--ink-3);font-size:.8rem;line-height:1.3}
.ps-thumb{width:46px;height:58px;flex-shrink:0;border:1px solid var(--rule-2);border-radius:4px;background:#fff;position:relative;overflow:hidden}
.ps-thumb i{position:absolute;display:block;background:#CBD2DC;border-radius:1px}
.ps-thumb i:nth-child(1){left:5px;top:6px;width:12px;height:8px}
.ps-thumb i:nth-child(2){right:5px;top:6px;width:16px;height:3px}
.ps-thumb i:nth-child(3){left:5px;right:5px;top:24px;height:5px;background:#4B5563}
.ps-thumb i:nth-child(4){left:5px;right:5px;top:33px;height:16px;background:repeating-linear-gradient(#E5E7EB 0 2px,transparent 2px 5px)}
.ps-thumb-standard i:nth-child(2){top:17px;left:14px;right:14px;width:auto;height:3px;background:#4B5563}
.ps-thumb-classic i:nth-child(1){width:16px;height:3px}.ps-thumb-classic i:nth-child(2){width:14px;height:6px;background:#4B5563}
.ps-thumb-compact{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 4px #9CA3AF}
.ps-swatches{display:flex;flex-wrap:wrap;gap:10px}
.ps-sw{display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;width:52px}
.ps-sw input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.ps-sw span{width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);transition:transform .15s}
.ps-sw small{font-size:.72rem;color:var(--ink-3)}
.ps-sw:has(input:checked) span,.ps-custom:has(input:checked) input[type=color]{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--pri)}
.ps-sw:hover span{transform:scale(1.08)}
.ps-custom input[type=color]{width:30px;height:30px;border-radius:50%;padding:0;border:0;cursor:pointer;background:none}
.ps-custom input[type=color]::-webkit-color-swatch-wrapper{padding:0}.ps-custom input[type=color]::-webkit-color-swatch{border:0;border-radius:50%}
.ps-preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.ps-preview{padding:34px 36px;max-height:calc(100vh - 170px);overflow:auto;position:sticky;top:76px}
.ps-actions{position:static;margin:4px -20px -20px;border-radius:0 0 var(--r-lg) var(--r-lg)}
/* financial statements in T-form */
.tform td:nth-child(2),.tform th:nth-child(2){border-right:1px solid var(--rule-2)}
.tform .tform-total td{border-top:1px solid var(--ink-3);border-bottom:3px double var(--ink-3);font-weight:700}
.table .indent2{padding-left:44px}
.tform td.group-row{font-weight:600;color:var(--ink);background:var(--surface-2)}
/* TDS returns */
.seg a{display:inline-flex;align-items:center;font-size:.86rem;color:var(--ink-2);padding:5px 11px;border-radius:5px;text-decoration:none}
.seg a:hover{background:var(--surface);color:var(--ink);text-decoration:none}
.seg a.active{background:var(--surface);color:var(--pri-ink);font-weight:600;box-shadow:var(--shadow-1)}
.tds-grid td{vertical-align:top;padding:10px 12px}
.tds-grid td:first-child{min-width:220px}
.tds-cell{display:flex;flex-direction:column;gap:3px;align-items:flex-start;padding:8px 10px;border:1px solid var(--rule);border-radius:var(--r);color:var(--ink);min-height:74px;transition:border-color .15s,box-shadow .15s}
.tds-cell:hover{border-color:var(--pri);box-shadow:var(--shadow-1);text-decoration:none}
.tds-cell.empty{border-style:dashed;justify-content:center}
.tds-amt{font-weight:600;font-variant-numeric:tabular-nums}
.grid-2-wide{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:16px;align-items:start}
@media (max-width:1000px){.grid-2-wide{grid-template-columns:1fr}}
.pill-red{background:var(--red-50);color:var(--red-ink)}
.select-sm{padding:4px 8px;font-size:.85rem;max-width:260px}
.tds-issues{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tds-issues li{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:var(--r);font-size:.92rem}
.tds-issues li.error{background:var(--red-50);color:var(--red-ink)}
.tds-issues li.warn{background:var(--warn-50);color:var(--warn-ink)}
.tds-issues .ic{flex-shrink:0;margin-top:2px}
.tds-steps{margin:0;padding-left:20px;display:grid;gap:6px;color:var(--ink-2);font-size:.92rem}
.kv-table{width:100%;border-collapse:collapse}
.kv-table td{padding:6px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.kv-table td:first-child{color:var(--ink-3);width:44%}
.tds-service{background:linear-gradient(135deg,var(--pri-50),var(--surface))}
.tds-grid{table-layout:fixed;min-width:900px}.tds-grid th:first-child{width:24%}
/* Subscription */
.sub-hero{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(240px,1.4fr) auto;gap:24px;align-items:center}
@media (max-width:1000px){.sub-hero{grid-template-columns:1fr}}
.sub-plan{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;margin:2px 0 4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sub-ends{margin-bottom:4px}
.warn-text{color:var(--warn-ink)}
.sub-hero-usage{display:grid;gap:10px}
.usage-top{display:flex;justify-content:space-between;font-size:.86rem;margin-bottom:4px}
.usage-bar{height:6px;border-radius:4px;background:var(--seg);overflow:hidden}
.usage-bar i{display:block;height:100%;background:var(--pri);border-radius:4px;transition:width .6s var(--ease)}
.usage-bar.hot i{background:var(--warn)}
.sub-hero-cta{display:flex;flex-direction:column;gap:8px}
.plan-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-bottom:10px}
.plan-card{display:flex;flex-direction:column;gap:8px;transition:box-shadow .2s,border-color .2s}
.plan-card.current{border-color:var(--pri);box-shadow:0 0 0 1px var(--pri)}
.plan-card.flash-card{box-shadow:0 0 0 3px var(--pri-100)}
.plan-name{font-weight:700;font-size:1.1rem;display:flex;gap:6px;align-items:center}
.plan-price{font-size:1.6rem;font-weight:700;letter-spacing:-.02em}
.plan-price small{font-size:.85rem;font-weight:400;color:var(--ink-3)}
.plan-feats{list-style:none;margin:4px 0 6px;padding:0;display:grid;gap:5px;font-size:.88rem;flex:1}
.plan-feats li{padding-left:20px;position:relative}
.plan-feats li::before{content:"";position:absolute;left:2px;top:6px;width:9px;height:5px;border-left:2px solid var(--ok);border-bottom:2px solid var(--ok);transform:rotate(-45deg)}
.coupon summary{list-style:none;cursor:pointer}
.coupon summary::-webkit-details-marker{display:none}
.coupon-row{display:flex;gap:6px;margin-top:6px}
.coupon-row input{flex:1;min-width:0}
.btn-block{width:100%;justify-content:center}
.timeline{list-style:none;margin:0;padding:6px 18px 14px;display:grid;gap:12px}
.timeline li{display:flex;gap:10px;align-items:flex-start;font-size:.92rem}
.tl-dot{width:10px;height:10px;border-radius:50%;background:var(--ink-3);margin-top:5px;flex-shrink:0}
.tl-activated,.tl-renewed,.tl-extended{background:var(--ok)}.tl-upgraded{background:var(--pri)}.tl-suspended,.tl-cancelled,.tl-expired{background:var(--red)}.tl-trial{background:var(--warn)}
.pay-card .pay-total td{font-weight:700;font-size:1.1rem;border-bottom:0}
.pay-bank{border:1px dashed var(--rule-2);border-radius:var(--r);padding:10px 12px;display:grid;gap:4px}
/* top bar: refer & earn, bell */
.refer-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:999px;font-size:.86rem;font-weight:600;color:#9A3412;background:linear-gradient(135deg,#FFF7ED,#FFEDD5);border:1px solid #FED7AA;white-space:nowrap}
.refer-btn:hover{text-decoration:none;box-shadow:0 2px 8px rgba(234,88,12,.18);color:#9A3412}
.refer-btn .ic{color:#EA580C}
html[data-theme="dark"] .refer-btn{background:#2B1D12;border-color:#5B3416;color:#FDBA74}
@media (max-width:1100px){.refer-btn span{display:none}.refer-btn{padding:0 9px}}
.bell-btn{position:relative}
.bell-dot{position:absolute;top:2px;right:1px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--red);color:#fff;font-size:.66rem;font-weight:700;line-height:17px;text-align:center;box-shadow:0 0 0 2px var(--surface)}
.notif-panel{width:min(380px,92vw);padding:0;right:0;left:auto}
.notif-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--rule)}
.notif-empty{display:flex;gap:8px;align-items:center;padding:18px 14px}
.notif-panel form{margin:0}
.notif-item{display:flex;gap:10px;width:100%;text-align:left;background:none;border:0;padding:10px 14px;font:inherit;color:var(--ink);cursor:pointer;border-bottom:1px solid var(--rule)}
.notif-item:hover{background:var(--hover)}
.notif-item.unread{background:var(--pri-50)}
.notif-item.unread strong::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--pri);margin-left:6px;vertical-align:middle}
.notif-ic{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:var(--seg);color:var(--ink-2)}
.notif-billing .ic,.notif-referral .ic{color:var(--ok)}.notif-subscription .ic{color:var(--warn)}.notif-broadcast .ic{color:var(--pri)}
.notif-body{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:.88rem}
.notif-body span{color:var(--ink-2)}
.notif-body small{color:var(--ink-3);font-size:.75rem}
.notif-list{list-style:none;margin:0;padding:0}
.notif-list form{margin:0}
.refer-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,1fr);gap:24px;align-items:center;background:linear-gradient(135deg,#FFF7ED 0%,var(--surface) 60%)}
html[data-theme="dark"] .refer-hero{background:linear-gradient(135deg,#2B1D12 0%,var(--surface) 60%)}
@media (max-width:900px){.refer-hero{grid-template-columns:1fr}}
.refer-hero h1{margin:8px 0 6px}
.refer-hero .lead{font-size:1.02rem;color:var(--ink-2);max-width:52ch}
.refer-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#FFEDD5;color:#EA580C}
.refer-ic .ic{width:24px;height:24px}
.refer-share{display:grid;gap:12px}
.copy-row{display:flex;gap:6px}
.copy-row input{flex:1;min-width:0}
/* admin lists: search and status chips */
.adm-toolbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-bottom:14px}
.adm-search{position:relative;display:flex;align-items:center;flex:1 1 280px;max-width:440px}
.adm-search > .ic{position:absolute;left:12px;color:var(--ink-3);pointer-events:none}
.adm-search input[type=search]{width:100%;padding:9px 72px 9px 36px;border-radius:999px;background:var(--surface);border:1px solid var(--rule-2);box-shadow:var(--shadow-1);transition:border-color .15s,box-shadow .15s}
.adm-search input[type=search]:focus{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-100)}
.adm-search input[type=search]::-webkit-search-cancel-button{display:none}
.adm-search kbd{position:absolute;right:10px;font:500 .7rem var(--font);color:var(--ink-3);border:1px solid var(--rule-2);border-radius:5px;padding:1px 6px;background:var(--surface-2)}
.adm-clear{position:absolute;right:62px;color:var(--ink-3);display:grid;place-items:center;width:22px;height:22px;border-radius:50%}
.adm-clear:hover{background:var(--hover);color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;border:1px solid var(--rule-2);background:var(--surface);color:var(--ink-2);font-size:.85rem;font-weight:500;transition:all .15s}
.chip:hover{border-color:var(--rule-strong);color:var(--ink);text-decoration:none}
.chip span{font-size:.75rem;font-weight:600;background:var(--seg);color:var(--ink-2);border-radius:999px;padding:0 7px;min-width:20px;text-align:center}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.chip.on span{background:rgba(255,255,255,.18);color:inherit}
.chip-active::before,.chip-trial::before,.chip-past_due::before,.chip-suspended::before,.chip-cancelled::before,.chip-expired::before,.chip-disabled::before,.chip-paid::before,.chip-open::before,.chip-failed::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink-3)}
.chip-active::before,.chip-paid::before{background:var(--ok)}.chip-trial::before,.chip-open::before{background:var(--pri)}.chip-past_due::before,.chip-expired::before{background:var(--warn)}.chip-suspended::before,.chip-disabled::before,.chip-failed::before{background:var(--red)}
.managed-note{display:flex;gap:8px;align-items:flex-start;margin:0;padding:9px 12px;border-radius:var(--r);background:var(--pri-50);color:var(--pri-ink);font-size:.88rem}.managed-note .ic{margin-top:2px;flex-shrink:0}
.ai-providers{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.ai-prov{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--rule);border-radius:var(--r);padding:10px 12px;cursor:pointer;position:relative}
.ai-prov:has(input:checked){border-color:var(--pri);background:var(--pri-50)}
.ai-prov input{margin-top:3px}
.ai-prov strong{display:block;font-size:.92rem}
.ai-prov small{display:block;color:var(--ink-3);font-size:.78rem;line-height:1.35}
.ai-prov.free::after{content:"FREE";position:absolute;top:8px;right:10px;font-size:.62rem;font-weight:700;letter-spacing:.06em;color:var(--ok-ink);background:var(--ok-50);padding:1px 6px;border-radius:4px}
.nav-section{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--side-dim);padding:14px 12px 4px}
.admin-sidebar nav{overflow-y:auto}
.new-link-card{border-color:var(--ok);background:var(--ok-50);margin-bottom:14px}.chk-row{display:flex;gap:14px;padding-top:8px}.menu-item.danger{color:var(--red)}
.status-dot{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:500;padding:3px 10px;border-radius:999px;background:var(--seg)}.status-dot::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink-3)}.status-dot.on{background:var(--ok-50);color:var(--ok-ink)}.status-dot.on::before{background:var(--ok)}.status-dot.off{background:var(--red-50);color:var(--red-ink)}.status-dot.off::before{background:var(--red)}
.plan-feats{align-content:start}.plan-cards > .card{margin:0}
.ai-prov.free{padding-right:52px}
/* Admin → Website editor */
.card-head-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.rep{display:grid;gap:10px}
.rep-list{display:grid;gap:10px}
.rep-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:start;border:1px solid var(--rule);border-radius:var(--r);padding:12px;background:var(--surface-2)}
.rep-handle{color:var(--ink-3);letter-spacing:-3px;padding-top:30px;user-select:none}
.rep-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.rep-fields .rep-wide{grid-column:1/-1}
.rep-fields .rep-icon{max-width:200px}
.rep-tools{display:flex;flex-direction:column;gap:2px}
.rep-tools .icon-btn{width:30px;height:30px}
.rep-row.added{animation:rise .3s var(--ease) both}
.img-empty{width:120px;height:72px;border:1px dashed var(--rule-2);border-radius:8px;display:grid;place-items:center;color:var(--ink-3)}
.icon-btn.danger:hover{color:var(--red)}
/* Admin → Messages */
.msg-layout{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}
.msg-layout.has-open{grid-template-columns:minmax(0,1fr) minmax(340px,1.1fr)}
@media (max-width:1000px){.msg-layout.has-open{grid-template-columns:1fr}}
.msg-list{list-style:none;margin:0;padding:0}
.msg-list li a{display:grid;gap:3px;padding:12px 16px;border-bottom:1px solid var(--rule);color:var(--ink)}
.msg-list li a:hover{background:var(--hover);text-decoration:none}
.msg-list li.on a{background:var(--pri-50)}
.msg-list li.unread strong::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--pri);margin-right:7px;vertical-align:middle}
.msg-top{display:flex;justify-content:space-between;gap:10px}.msg-top small{color:var(--ink-3)}
.msg-sub{font-size:.82rem;color:var(--ink-3)}
.msg-text{font-size:.9rem;color:var(--ink-2)}
.msg-head{display:flex;justify-content:space-between;gap:10px}
.msg-body{white-space:normal;background:var(--surface-2);border:1px solid var(--rule);border-radius:var(--r);padding:14px;line-height:1.6}
.msg-open{position:sticky;top:76px}
