/* TaxDesk — workspace UI (shares the AccountsBook design system): 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}
/* the block holding an open menu sits over its neighbours, but under the sticky top bar (z 20) so it never slides over it */
.content > *:has(.menu.open),.grid > *:has(.menu.open),.card:has(.menu.open){position:relative;z-index:19}
.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;margin-top:5px}
.gstin-wrap input{padding-right:34px;margin-top:0}
/* centred with margin:auto, not a transform — the pop-in animation sets transform and would push the mark onto the border */
.gstin-ic{position:absolute;right:10px;top:0;bottom:0;margin:auto 0;width:16px;height:16px;border-radius:50%;pointer-events:none}
.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}
/* hover-revealed only inside table rows; anywhere else (forms, cards) the action row is always visible */
.row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
td .row-actions{display:block;opacity:0;transition:opacity .15s}
.row-actions .btn-link + .btn-link,.row-actions .btn-link + form{margin-left:10px}
tr:hover .row-actions,td .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:var(--r,8px);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}
/* v7.2 quick create: a bigger "New" button and a roomy panel */
.quick-btn{width:auto;height:38px;padding:0 16px 0 12px;gap:6px;display:inline-flex;align-items:center;border-radius:8px;font:600 .95rem var(--font);color:#fff}
.quick-btn .ic{width:20px;height:20px}
.menu-new{min-width:0;width:min(880px,calc(100vw - 32px));padding:0;position:fixed;top:60px;right:16px;left:auto;z-index:300;max-height:calc(100vh - 80px);overflow:auto}
.menu-new-head{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--rule)}
.menu-new-head kbd{font:600 .72rem var(--font);border:1px solid var(--rule-2);border-radius:4px;padding:0 5px;background:var(--surface-2)}
.menu-new .menu-cols{gap:0;padding:10px 8px 12px}
.menu-new .menu-col{padding:4px 12px}
.menu-new .menu-cols > div + div{border-left:1px solid var(--rule);padding-left:12px}
.menu-new .menu-title{display:flex;align-items:center;gap:8px;font-size:.74rem;padding:8px 8px 10px}
.menu-new .mc-ic{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:var(--pri-50);color:var(--pri)}
.menu-new a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;font-size:.95rem;white-space:nowrap;color:var(--ink)}
.menu-new a span{overflow:hidden;text-overflow:ellipsis}
.menu-new a:hover{background:var(--pri-50);color:var(--pri-ink);text-decoration:none}
@media (max-width:760px){.quick-btn span{display:none}.quick-btn{padding:0 10px}.menu-new .menu-cols{grid-template-columns:1fr !important}.menu-new .menu-cols > div + div{border-left:0;padding-left:12px;border-top:1px solid var(--rule)}.menu-new a{white-space:normal}}
/* What's new */
.changelog{display:grid;gap:14px;max-width:1000px}
.cl-rel{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px}
@media (max-width:700px){.cl-rel{grid-template-columns:1fr;gap:8px}}
.cl-side{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.cl-ver{font-weight:800;font-size:1.25rem;letter-spacing:-.02em}
.cl-latest{border-color:var(--pri);box-shadow:0 0 0 1px var(--pri)}
.cl-body{color:var(--ink-2);line-height:1.6}
.cl-body ul{margin:0;padding-left:18px;display:grid;gap:6px}
.cl-body p{margin:0 0 8px}
.cl-body strong{color:var(--ink)}
.cl-body code{font-size:.85em;background:var(--seg);padding:1px 5px;border-radius:4px}
.app-ver{text-decoration:none}
a.app-ver:hover{text-decoration:none;background:var(--pri-50);color:var(--pri-ink)}
.whatsnew-dot{width:8px;height:8px;border-radius:50%;background:var(--red);display:inline-block;margin-left:6px}
.avatar-btn{position:relative}
/* tooltips */
.tip{position:fixed;z-index:400;max-width:280px;padding:6px 10px;border-radius:7px;background:#1B2333;color:#F1F4FA;font:500 .8rem/1.35 var(--font);box-shadow:0 6px 20px rgba(10,15,30,.28);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .14s ease,transform .14s ease;white-space:normal}
.tip.on{opacity:1;transform:none}
.tip::after{content:"";position:absolute;left:var(--ax,50%);bottom:-5px;width:10px;height:10px;margin-left:-5px;background:inherit;transform:rotate(45deg);border-radius:2px}
.tip.below::after{bottom:auto;top:-5px}
html[data-theme="dark"] .tip{background:#E8ECF4;color:#141A26}
/* choose an organisation */
.org-pick{display:grid;gap:10px;max-height:60vh;overflow:auto;padding:2px}
.org-pick form{margin:0}
.org-pick-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border:1px solid var(--rule-2);border-radius:12px;background:var(--surface);font:inherit;color:var(--ink);cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.org-pick-item:hover:not([disabled]){border-color:var(--pri);box-shadow:0 4px 14px -6px rgba(47,116,235,.45);transform:translateY(-1px)}
.org-pick-item.last{border-color:var(--pri-100);background:var(--pri-50)}
.org-pick-item[disabled]{opacity:.55;cursor:not-allowed}
.org-pick-item .org-avatar{width:40px;height:40px;font-size:.9rem;flex-shrink:0}
.op-main{display:flex;flex-direction:column;min-width:0;flex:1}
.op-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.op-main small{color:var(--ink-3);font-size:.8rem}
.op-side{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.op-side small{font-size:.7rem;color:var(--pri-ink)}
.op-go{color:var(--ink-3)}
.org-pick-foot{display:flex;justify-content:space-between;margin-top:16px;font-size:.9rem}
.org-pick-foot a{display:inline-flex;gap:6px;align-items:center}
.pay-pending{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;border:1px solid var(--pri-100);background:var(--pri-50);border-radius:var(--r-lg);margin:16px 0}
.pp-ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--surface);color:var(--pri)}
.pp-main{display:flex;flex-direction:column;flex:1;min-width:200px}
.pp-amt{font-size:1.3rem;font-weight:700;display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.pp-amt small{font-size:.72rem;font-weight:500;color:var(--ink-3)}
/* Share menu */
.share-menu .menu-panel{min-width:260px}
.share-menu .menu-panel a,.share-menu .menu-panel .menu-item{display:flex;align-items:center;gap:10px}
.share-menu small{display:block;font-size:.74rem;color:var(--ink-3);font-weight:400}
.sh-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--seg);color:var(--ink-2);flex-shrink:0}
.sh-wa{background:#E7F8EE;color:#16A34A}.sh-mail{background:var(--pri-50);color:var(--pri)}
.sub-h{margin:6px 0 -4px;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
/* v7.3 integrations status cards */
.integ-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}
.integ-status{padding:18px;display:flex;flex-direction:column;gap:12px}
.integ-status .integ-head .push{margin-left:auto}
.integ-note{margin:0;padding:10px 12px;border-radius:8px;background:var(--surface-2);color:var(--ink-2);font-size:.88rem;line-height:1.5}
.integ .integ-head .push{margin-left:auto}
.file-mode{display:flex;gap:14px;align-items:flex-start;padding:4px 0}
.file-mode strong{display:block;margin-bottom:2px}
.file-mode .help{margin:4px 0 10px}
.file-mode-ic{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2)}
.file-mode-ic.ok{background:var(--ok-50);color:var(--green,#14804a)}
.file-mode label{display:inline-flex;flex-direction:column;gap:4px;font-size:.85rem}
/* admin: one API connection per section */
.api-general{padding:18px;display:flex;flex-direction:column;gap:14px}
.api-chips{display:flex;flex-wrap:wrap;gap:8px}
.api-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 6px 6px 12px;border:1px solid var(--rule);border-radius:999px;color:var(--ink);font-size:.86rem;background:var(--surface)}
.api-chip:hover{border-color:var(--pri);text-decoration:none}
.api-sec{padding:0;overflow:hidden}
.api-sec > summary{list-style:none;display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer}
.api-sec > summary::-webkit-details-marker{display:none}
.api-sec > summary:hover{background:var(--surface-2)}
.api-sec-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.api-sec-t small{color:var(--muted);font-size:.84rem}
.api-sec > summary .push{margin-left:auto}
.api-sec-chev{transition:transform .15s;color:var(--muted)}
.api-sec[open] .api-sec-chev{transform:rotate(180deg)}
.api-sec[open] > summary{border-bottom:1px solid var(--rule)}
.api-sec-body{padding:16px 18px 18px}
.form-actions-inline{display:flex;gap:8px;flex-wrap:wrap}
/* v7.3 optional feedback */
.fb-nudge{position:fixed;right:20px;bottom:20px;z-index:250;width:min(340px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow-pop);padding:18px 18px 14px;transform:translateY(16px);opacity:0;transition:transform .25s var(--spring,ease),opacity .2s}
.fb-nudge.in{transform:none;opacity:1}
.fb-nudge strong{display:block;font-size:1rem;margin:2px 0 4px}
.fb-nudge p{margin:0 0 12px;color:var(--ink-2);font-size:.88rem;line-height:1.45}
.fb-nudge-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--pri-50);color:var(--pri);margin-bottom:8px}
.fb-x{position:absolute;top:8px;right:8px}
.fb-nudge-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fb-nudge-actions .btn-link{margin-left:auto;color:var(--muted)}
.fb-dialog{max-width:560px;max-height:calc(100vh - 40px);overflow:auto}
.fb-q{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fb-q legend{font-weight:600;font-size:.94rem;padding:0;margin-bottom:8px}
.fb-req{color:var(--red,#c0362c)}
.fb-q textarea{width:100%}
.fb-stars{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px}
.fb-stars input{position:absolute;opacity:0;pointer-events:none}
.fb-stars label{font-size:2rem;line-height:1;color:var(--rule-2,#cfd5df);cursor:pointer;transition:color .12s,transform .12s;padding:0 2px}
.fb-stars label:hover,.fb-stars label:hover ~ label,.fb-stars input:checked ~ label{color:#f5a524}
.fb-stars label:hover{transform:scale(1.12)}
.fb-stars input:focus-visible + label{outline:2px solid var(--pri);border-radius:4px}
.fb-nps{display:grid;grid-template-columns:repeat(11,1fr);gap:4px}
.fb-nps label{position:relative}
.fb-nps input,.fb-pills input{position:absolute;opacity:0;pointer-events:none}
.fb-nps span{display:grid;place-items:center;height:36px;border:1px solid var(--rule);border-radius:8px;cursor:pointer;font-weight:600;font-size:.9rem;color:var(--ink-2);transition:all .12s}
.fb-nps span:hover{border-color:var(--pri);color:var(--pri)}
.fb-nps input:checked + span{background:var(--pri);border-color:var(--pri);color:#fff}
.fb-nps input:focus-visible + span,.fb-pills input:focus-visible + span{outline:2px solid var(--pri);outline-offset:1px}
.fb-nps-legend{display:flex;justify-content:space-between;font-size:.76rem;color:var(--muted)}
.fb-pills{display:flex;flex-wrap:wrap;gap:8px}
.fb-pills label{position:relative}
.fb-pills span{display:inline-flex;align-items:center;padding:7px 14px;border:1px solid var(--rule);border-radius:999px;cursor:pointer;font-size:.88rem;transition:all .12s}
.fb-pills span:hover{border-color:var(--pri)}
.fb-pills input:checked + span{background:var(--pri-50);border-color:var(--pri);color:var(--pri-ink);font-weight:600}
.fb-actions{display:flex;gap:8px;padding-top:4px}
.fb-thanks{text-align:center;padding:20px 0}
.fb-thanks-ic{width:52px;height:52px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center;background:var(--ok-50);color:var(--green,#14804a);font-size:1.6rem;font-weight:700}
.fb-page{max-width:720px}
@media (max-width:560px){.fb-nps{grid-template-columns:repeat(6,1fr)}}
.fb-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}
.fb-stats .stat{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:4px;position:relative}
.fb-stats .stat-l{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}
.fb-stats .stat-v{font-size:1.6rem;font-weight:700;line-height:1.2}
.fb-stats .stat-v small{font-size:.9rem;color:var(--muted);font-weight:500}
.fb-stats .stat-v.pos{color:var(--ok-ink)}.fb-stats .stat-v.neg{color:var(--red-ink)}
.fb-stats .stat-s{font-size:.8rem;color:var(--muted)}
.fb-dist{position:absolute;right:16px;bottom:14px;display:flex;align-items:flex-end;gap:3px;height:34px}
.fb-dist span{width:8px;height:100%;display:flex;align-items:flex-end;background:var(--surface-2);border-radius:2px}
.fb-dist i{display:block;width:100%;background:#f5a524;border-radius:2px}
.fb-stars-ro{color:#f5a524;letter-spacing:1px;font-size:.92rem}.fb-stars-ro span{color:var(--rule-2)}
.nps-pill{display:inline-block;padding:0 7px;border-radius:999px;font-size:.75rem;font-weight:700;background:var(--seg)}
.nps-pro{background:var(--ok-50);color:var(--ok-ink)}.nps-pas{background:#fff4dc;color:#8a5a00}.nps-det{background:var(--red-50);color:var(--red-ink)}
.fb-filters{margin:-4px 0 12px}
.fb-list li{display:flex;align-items:flex-start}
.fb-list li > input{margin:16px 0 0 14px;flex:none}
.fb-list li > a{flex:1;min-width:0}
.bulk-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--rule);font-size:.86rem}
.fb-answers{margin:0;display:flex;flex-direction:column;gap:4px}
.fb-answers dt{font-size:.8rem;color:var(--muted);font-weight:600;margin-top:8px}
.fb-answers dd{margin:0;line-height:1.5}
.fb-admin-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);align-items:start}
@media (max-width:1000px){.fb-admin-grid{grid-template-columns:1fr}}
.fb-qrow .rep-fields{grid-template-columns:1fr 200px}
.fb-reqchk{align-self:end;padding-bottom:8px}
.fb-round{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.fb-round div{background:var(--surface-2);border-radius:10px;padding:10px 4px;display:flex;flex-direction:column}
.fb-round strong{font-size:1.3rem}.fb-round span{font-size:.76rem;color:var(--muted)}
.fb-nudge-demo{position:static;width:auto;box-shadow:var(--shadow);pointer-events:none}
/* v7.3 multi-select */
.ms{position:relative;width:100%}
.ms-native{position:absolute!important;opacity:0;pointer-events:none;height:1px!important;width:1px!important;bottom:0;left:0}
.ms-box{display:flex;align-items:center;gap:6px;min-height:40px;padding:4px 10px 4px 6px;border:1px solid var(--rule-2);border-radius:var(--r,8px);background:var(--surface);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.ms-box:hover{border-color:var(--ink-3)}
.ms-box:focus-visible,.ms.open .ms-box{outline:0;border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-50)}
.ms-chips{display:flex;flex-wrap:wrap;gap:4px;flex:1;min-width:0}
.ms-ph{color:var(--muted);padding:0 4px;font-size:.92rem}
.ms-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 10px;border-radius:999px;background:var(--pri-50);color:var(--pri-ink);font-size:.84rem;font-weight:500;max-width:100%}
.ms-chip button{border:0;background:none;color:inherit;cursor:pointer;width:20px;height:20px;border-radius:50%;font-size:1rem;line-height:1;display:grid;place-items:center;opacity:.7}
.ms-chip button:hover{opacity:1;background:rgba(0,0,0,.08)}
.ms-more{font-size:.82rem;color:var(--muted);padding:3px 6px}
.ms-chev{flex:none;color:var(--muted);transition:transform .15s}
.ms.open .ms-chev{transform:rotate(180deg)}
.ms-panel{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);background:var(--surface);border:1px solid var(--rule);border-radius:10px;box-shadow:var(--shadow-pop);overflow:hidden;min-width:240px}
.ms-search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--rule);color:var(--muted)}
.ms-search input{border:0;outline:0;background:none;flex:1;padding:4px 0;font:inherit;color:var(--ink);box-shadow:none}
.ms-tools{display:flex;align-items:center;gap:12px;padding:7px 12px;font-size:.8rem;border-bottom:1px solid var(--rule);background:var(--surface-2)}
.ms-count{color:var(--muted);margin-right:auto}
.ms-list{list-style:none;margin:0;padding:4px;max-height:260px;overflow:auto}
.ms-list li{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:6px;cursor:pointer;font-size:.92rem}
.ms-list li:hover,.ms-list li.act{background:var(--surface-2)}
.ms-cb{flex:none;width:16px;height:16px;border:1.5px solid var(--rule-2);border-radius:4px;display:grid;place-items:center;transition:all .12s}
.ms-list li.on .ms-cb{background:var(--pri);border-color:var(--pri)}
.ms-list li.on .ms-cb::after{content:"";width:8px;height:4px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.check-tools{display:flex;align-items:center;gap:14px;font-size:.82rem;margin:2px 0 8px}
.check-count{color:var(--muted)}
.check-filter{margin-left:auto;max-width:200px;padding:4px 10px;font-size:.85rem}
/* v7.3 layout fixes: grids never push inputs out of their card */
.grid-2-tight{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-2-tight > *,.grid-4-tight > *,.form-grid > *{min-width:0}
.grid-4-tight{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px}
@media (max-width:1100px){.grid-4-tight{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grid-2-tight,.grid-4-tight{grid-template-columns:1fr}}
.challan-pop{padding:0;overflow:visible}
.challan-pop > summary{list-style:none;display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer}
.challan-pop > summary::-webkit-details-marker{display:none}
.challan-pop > summary > span:nth-child(2){display:flex;flex-direction:column;gap:2px;flex:1}
.challan-pop > summary small{color:var(--muted);font-size:.84rem}
.challan-pop[open] > summary{border-bottom:1px solid var(--rule)}
.challan-pop[open] .api-sec-chev{transform:rotate(180deg)}
.challan-body{padding:16px 18px 18px}
.tds-ch-table td:first-child{min-width:170px}
/* v7.3 units page */
.sub-head{margin:2px 0 14px}
.sub-head h2{margin:0;font-size:1.15rem;display:flex;align-items:center;gap:8px}
.sub-head .page-sub{margin:4px 0 0}
.unit-add{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.6fr) 120px auto;gap:12px;align-items:end;padding:16px 18px}
.unit-add > label{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0}
.unit-add .btn{height:40px}
@media (max-width:760px){.unit-add{grid-template-columns:1fr 1fr}.unit-add .btn{grid-column:1/-1}}
.unit-table td{vertical-align:middle;padding-top:10px;padding-bottom:10px}
.unit-acts{display:inline-flex;align-items:center;gap:4px;justify-content:flex-end}
.unit-edit{position:relative}
.unit-edit > summary{list-style:none}
.unit-edit > summary::-webkit-details-marker{display:none}
.unit-edit .pop-form{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:280px;text-align:left;white-space:normal}
.grid-3-tight{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}
.grid-3-tight > *{min-width:0}
@media (max-width:900px){.grid-3-tight{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grid-3-tight{grid-template-columns:1fr}}
.ded-pop > summary .badge{margin-left:auto}
.integ-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.input-suffix{display:flex;align-items:stretch}
.input-suffix input{flex:1;min-width:0;border-top-right-radius:0;border-bottom-right-radius:0}
.input-suffix > span{display:grid;place-items:center;padding:0 12px;border:1px solid var(--rule-2);border-left:0;border-radius:0 var(--r,8px) var(--r,8px) 0;background:var(--surface-2);color:var(--muted);font-size:.88rem}
.fb-form{display:flex;flex-direction:column;gap:22px}
.fb-form > * + *{margin-top:0}
.fb-q + .fb-q{padding-top:18px;border-top:1px solid var(--rule)}
.fb-filters{background:none;border:0;box-shadow:none;padding:0;display:flex;gap:12px;align-items:center}
.fb-filters label{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--muted)}
.fb-filters .pk-select,.fb-filters select{min-width:200px}
.bulk-acts{display:flex;gap:8px;align-items:center}
.bulk-acts select{width:auto;min-width:150px;padding:4px 8px;height:32px}
.fb-qrow .rep-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.fb-qrow .fb-reqchk{flex-direction:row;align-items:center;gap:8px}
.grid-2-tight > .span-2{grid-column:1/-1}
.ms-panel{min-width:min(320px,calc(100vw - 32px))}
@media (max-width:760px){
  .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-left:-14px;margin-right:-14px;padding:0 14px}
  .tabs::-webkit-scrollbar{display:none}
  .tabs a{flex:none}
  .integ-head{flex-wrap:wrap}
  .integ-head > .push,.integ-status .integ-head .push{order:3;margin-left:50px;width:100%}
}
.integ-head > div{flex:1 1 0;min-width:0}
/* v7.4 admin TDS requests */
.nav-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--red);color:#fff;font-size:.72rem;font-weight:700;display:grid;place-items:center}
.tds-req .tds-act{border-top:1px solid var(--rule);padding-top:12px}
.badge-violet{background:#efeafe;color:#5b3fc4}
/* v7.4 financial statements (Schedule III / ICAI) */
.rf-check{display:inline-flex;align-items:center;gap:6px;flex-direction:row!important;white-space:nowrap}
.fin-table th.num{white-space:nowrap}
.fs-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.fs-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--surface);border:1px solid var(--rule);font-size:.84rem}
.fs-warn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--warn-50);color:var(--warn-ink);font-size:.84rem}
.fs-bar .push{margin-left:auto}
.fs-details{margin-bottom:14px;padding:0}
.fs-details > summary{padding:14px 18px;cursor:pointer;font-weight:600}
.fs-doc{display:flex;flex-direction:column;gap:18px;max-width:960px}
.fs-page{padding:34px 40px}
.fs-top{text-align:center;margin-bottom:18px}
.fs-entity{font-size:1.25rem;font-weight:700;letter-spacing:.01em;text-transform:uppercase}
.fs-cin{font-size:.84rem;color:var(--ink-2);margin-top:2px}
.fs-title{font-size:1.02rem;font-weight:600;margin-top:8px}
.fs-unit{font-size:.8rem;color:var(--muted);margin-top:2px}
.fs-table{width:100%;border-collapse:collapse;font-size:.92rem;font-variant-numeric:tabular-nums}
.fs-table th{font-size:.76rem;text-transform:none;font-weight:700;color:var(--ink);padding:8px 10px;border-top:1.5px solid var(--ink);border-bottom:1px solid var(--ink);vertical-align:bottom;text-align:left}
.fs-table th.num,.fs-table td.num{text-align:right;width:160px;white-space:nowrap}
.fs-table td{padding:5px 10px;border-bottom:1px solid var(--rule)}
.fs-table .fs-note{width:70px;text-align:center}
.fs-table .fs-note a{color:var(--pri)}
.fs-l0 td{font-weight:700;padding-top:12px;text-transform:uppercase;font-size:.86rem;border-bottom:0}
.fs-l1 td:first-child{font-weight:600;padding-left:14px}
.fs-l2 td:first-child{padding-left:34px}
.fs-l3 td:first-child{padding-left:56px;color:var(--ink-2);font-size:.88rem}
.fs-sub td{font-weight:600;border-top:1px solid var(--ink-3)}
.fs-total td{font-weight:700;border-top:1px solid var(--ink);border-bottom:2px double var(--ink)}
.fs-foot{font-size:.8rem;color:var(--muted);margin:10px 0 0}
.fs-sign{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:34px;font-size:.86rem;line-height:1.5}
.fs-sign p{margin:0 0 10px}
.fs-sigs{display:flex;gap:28px;flex-wrap:wrap}
.fs-sigline{padding-top:34px;min-width:160px}
.fs-notes h4{margin:0 0 8px;font-size:.95rem;display:flex;gap:10px;align-items:baseline}
.fs-notes h4 span{color:var(--pri);font-weight:700}
.fs-note-block{margin-bottom:22px;break-inside:avoid}
.fs-ntable td:first-child{padding-left:12px}
.fs-sub-note{font-size:.84rem;color:var(--ink-2);margin:8px 0 6px}
.fs-age th,.fs-age td{width:auto!important}
.fs-policy{margin-bottom:20px;font-size:.9rem}
.fs-policy h4{margin:0 0 6px}
.fin-map .fm-set td:first-child{box-shadow:inset 3px 0 0 var(--pri)}
@media (max-width:760px){.fs-page{padding:18px 14px}.fs-table th.num,.fs-table td.num{width:auto}.fs-sign{grid-template-columns:1fr}}
@media print{
  .fs-page{break-after:page;border:0!important;box-shadow:none!important;padding:0!important}
  .fs-page:last-child{break-after:auto}
  .fs-doc{max-width:none}
  .fs-table td.num,.fs-table th.num{width:130px}
}
.tform.tform-cmp td:nth-child(2),.tform.tform-cmp th:nth-child(2){border-right:0}
.tform.tform-cmp td:nth-child(3),.tform.tform-cmp th:nth-child(3){border-right:1px solid var(--rule-2)}
.tform.tform-cmp td:nth-child(3),.tform.tform-cmp td:nth-child(6){color:var(--ink-2)}
.items-refresh{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:1px 8px;border:1px solid var(--rule);border-radius:999px;background:var(--surface);color:var(--pri);font:500 .74rem var(--font);text-transform:none;letter-spacing:0;cursor:pointer;vertical-align:middle}
.items-refresh:hover{border-color:var(--pri);background:var(--pri-50)}
.items-refresh.spin .ic{animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media print{.items-refresh{display:none}}
/* v7.4 pages for long tables (screen only) */
tr.pg-off{display:none}
@media print{tr.pg-off{display:table-row!important}.pager{display:none!important}}
.pager{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px;font-size:.85rem;color:var(--ink-2)}
.pager-size{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:6px;margin:0}
.pager-size select{width:auto;padding:3px 26px 3px 8px;height:30px;font-size:.85rem}
.pager-nav{display:inline-flex;gap:4px;margin-left:auto}
.pager-btn{min-width:32px;height:32px;padding:0 8px;border:1px solid var(--rule);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.pager-btn:hover:not(:disabled){border-color:var(--pri);color:var(--pri)}
.pager-btn.on{background:var(--pri);border-color:var(--pri);color:#fff;font-weight:600}
.pager-btn:disabled{opacity:.4;cursor:default}
.pager-gap{padding:0 4px;align-self:center}
/* v7.4 units page */
.unit-add{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.6fr) 130px auto;grid-template-areas:"t t t t" "n u d b";gap:8px 14px;align-items:end;padding:16px 18px}
.unit-add-title{grid-area:t;display:flex;align-items:center;gap:10px;margin-bottom:4px}
.unit-add-title .integ-ic{width:30px;height:30px;border-radius:8px}
.unit-add .ua-name{grid-area:n}.unit-add .ua-uqc{grid-area:u}.unit-add .ua-dec{grid-area:d}.unit-add .ua-btn{grid-area:b}
.unit-add > label{display:flex;flex-direction:column;gap:6px;margin:0;min-width:0;font-size:.86rem;color:var(--ink-2)}
.unit-add input,.unit-add .pk-trigger,.unit-add .btn{height:42px;min-height:42px;box-sizing:border-box}
.unit-add .ua-btn .btn{width:100%;justify-content:center;white-space:nowrap}
@media (max-width:760px){.unit-add{grid-template-columns:1fr 1fr;grid-template-areas:"t t" "n n" "u d" "b b"}}
.unit-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--rule)}
.unit-tools{margin-left:auto;display:flex;align-items:center;gap:8px}
.unit-search{display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--rule-2);border-radius:8px;height:34px;color:var(--muted);background:var(--surface)}
.unit-search input{border:0;outline:0;background:none;padding:0;height:32px;width:170px;box-shadow:none;font:inherit;color:var(--ink)}
.list-cols.in-slot .btn{height:34px}
.uqc-code{display:inline-block;min-width:38px;font-weight:600;font-variant-numeric:tabular-nums}
.unit-table tbody tr:hover{background:var(--surface-2)}
.unit-pop{width:300px!important;padding:14px!important;display:flex;flex-direction:column;gap:10px;right:0;left:auto!important}
.unit-pop label{display:flex;flex-direction:column;gap:5px;margin:0;font-size:.84rem}
.unit-pop label.check{flex-direction:row;align-items:center;gap:8px}
.unit-pop-head{padding-bottom:8px;border-bottom:1px solid var(--rule)}
.unit-pop-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}
/* v7.4 feedback page polish */
.fb-list li{position:relative;border-bottom:1px solid var(--rule)}
.fb-list li a{border-bottom:0}
.fb-list li:hover{background:var(--hover)}
.fb-list li.on{background:var(--pri-50);box-shadow:inset 3px 0 0 var(--pri)}
.fb-list li.on a,.fb-list li a:hover{background:transparent}
.bulk-bar{flex-wrap:wrap}
.fb-rate-chips{display:inline-flex;gap:4px;flex-wrap:wrap}
.fb-rate-chips a{padding:3px 10px;border-radius:999px;border:1px solid var(--rule);color:var(--ink-2);font-size:.8rem;text-decoration:none}
.fb-rate-chips a:hover{border-color:var(--pri);color:var(--pri)}
.fb-rate-chips a.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.fb-tags{display:flex;flex-wrap:wrap;gap:5px}
.fb-tags span{padding:2px 9px;border-radius:6px;background:var(--surface-2);border:1px solid var(--rule);font-size:.82rem}
.msg-layout.has-open > .msg-open{margin-top:0}
.fb-dist{height:40px;gap:4px}
.fb-dist span{width:12px;position:relative;flex-direction:column;justify-content:flex-end;height:30px;background:var(--surface-2)}
.fb-dist b{position:absolute;bottom:-14px;left:0;right:0;text-align:center;font-size:.62rem;font-weight:500;color:var(--muted)}
.nps-mini{display:inline-block;padding:0 6px;border-radius:999px;font-size:.72rem;margin:2px 2px 0 0}
/* v7.5 customer / vendor overview */
.ct-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.ct-stat{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:3px;min-width:0}
.ct-stat span{font-size:.8rem;color:var(--muted)}
.ct-stat strong{font-size:1.35rem;font-variant-numeric:tabular-nums}
.ct-stat small{font-size:.78rem;color:var(--muted)}
.ct-stat.warn{border-color:var(--warn-50);background:linear-gradient(0deg,var(--warn-50),var(--surface) 70%)}
.ct-stat.warn strong{color:var(--warn-ink)}
@media (max-width:1000px){.ct-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ct-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.ct-grid{grid-template-columns:1fr}}
.ct-kv{grid-template-columns:140px minmax(0,1fr)}
.ct-kv dd{overflow-wrap:anywhere;min-width:0}
.card-title{display:flex;align-items:center;gap:8px}
.card-head-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.card-head-row .card-title{margin:0}
.ct-th{padding:14px 18px;margin:0;border-bottom:1px solid var(--rule)}
.ct-pays{list-style:none;margin:0;padding:0}
.ct-pays li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--rule);font-size:.92rem}
.ct-pays li:last-child{border-bottom:0}
.ct-pays .muted{font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kv dd{overflow-wrap:anywhere}
.menu-panel.menu-portal-open{visibility:visible;opacity:1;transform:none;pointer-events:auto}
/* v7.5 settings navigation (left on wide screens) */
.settings-nav{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:10px 8px;display:flex;flex-direction:column;gap:1px}
.snav-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:1.02rem;padding:6px 10px 8px;border-bottom:1px solid var(--rule);margin-bottom:6px}
.snav-group{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:10px 10px 4px}
.snav-link{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:7px;color:var(--ink-2);font-size:.92rem;text-decoration:none;transition:background .12s,color .12s}
.snav-link .ic{color:var(--muted)}
.snav-link:hover{background:var(--hover);color:var(--ink);text-decoration:none}
.snav-link.active{background:var(--pri-50);color:var(--pri-ink);font-weight:600}
.snav-link.active .ic{color:var(--pri)}
.settings-head{margin-bottom:14px}
@media (min-width:1001px){
  .content:has(> .settings-nav){display:grid;grid-template-columns:236px minmax(0,1fr);column-gap:24px;align-content:start;align-items:start}
  .content:has(> .settings-nav) > *{grid-column:2;min-width:0}
  .content:has(> .settings-nav) > .settings-nav{grid-column:1;grid-row:1 / span 60;position:sticky;top:76px}
  .content:has(> .settings-nav) > .toasts,.content:has(> .settings-nav) > dialog{grid-column:auto}
}
@media (max-width:1000px){
  .settings-nav{flex-direction:row;overflow-x:auto;scrollbar-width:none;padding:6px;gap:4px;margin-bottom:12px}
  .settings-nav::-webkit-scrollbar{display:none}
  .snav-title,.snav-group{display:none}
  .snav-link{flex:none;white-space:nowrap}
}
.sub-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.sub-head-row .page-sub{margin:0}
/* audit log */
.audit-filter{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:14px 16px}
.audit-filter > label{display:flex;flex-direction:column;gap:6px;margin:0;flex:1 1 150px;min-width:0;font-size:.84rem;color:var(--ink-2)}
.audit-filter > .af-q{flex:2 1 260px}
.af-search{display:flex;align-items:center;gap:8px;border:1px solid var(--rule-2);border-radius:var(--r,8px);padding:0 10px;background:var(--surface);color:var(--muted);height:40px}
.af-search input{border:0;outline:0;box-shadow:none;background:none;padding:0;flex:1;min-width:0;height:38px;font:inherit;color:var(--ink)}
.audit-filter .pk-range{align-self:flex-end}
.af-btns{display:flex;gap:8px}
.audit-table td{vertical-align:top}
.au-date{display:block;font-weight:500}
.au-time{display:block;font-size:.8rem;color:var(--muted)}
.au-who{display:inline-flex;align-items:center;gap:8px}
.au-av{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--pri-50);color:var(--pri-ink);font-size:.72rem;font-weight:700;flex:none}
/* v7.5 TDS request conversation */
.tds-conv{border-top:1px solid var(--rule);padding-top:12px;display:flex;flex-direction:column;gap:10px}
.tds-conv h4{margin:0;display:flex;align-items:center;gap:8px;font-size:.95rem}
.tds-thread{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow:auto;padding:2px}
.tm{max-width:88%;padding:8px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--rule)}
.tm-me{align-self:flex-end;background:var(--pri-50);border-color:transparent}
.tm-team{align-self:flex-start}
.tm-int{background:#fff8e6;border:1px dashed #e5c46a}
.tm-who{font-size:.74rem;color:var(--muted);margin-bottom:2px}
.tm-body{font-size:.9rem;line-height:1.45;overflow-wrap:anywhere}
.tds-compose{display:flex;flex-direction:column;gap:8px}
.tds-compose textarea{width:100%}
.tds-asks{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip-btn{padding:4px 10px;border-radius:999px;border:1px solid var(--rule);background:var(--surface);color:var(--ink-2);font:500 .8rem var(--font);cursor:pointer}
.chip-btn:hover{border-color:var(--pri);color:var(--pri)}
.tds-reply{display:flex;gap:8px;align-items:flex-end}
.tds-reply textarea{flex:1}
.audit-filter{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px;align-items:end}
.audit-filter > .af-q{grid-column:span 2}
.audit-filter .pk-range,.audit-filter .af-btns{align-self:end}
.audit-filter .pk-range .btn,.audit-filter .af-btns .btn{height:40px}
.audit-filter .af-btns{justify-content:flex-end}
@media (max-width:760px){.audit-filter{grid-template-columns:1fr 1fr}.audit-filter > .af-q{grid-column:1/-1}}
/* v7.5 one look across the customer and admin portals */
.tabs a .ic{display:none}
.tabs a{display:inline-flex;align-items:center;gap:4px}
input[type=file]{font:inherit;font-size:.86rem;color:var(--ink-2);max-width:100%}
input[type=file]::file-selector-button{font:500 .86rem var(--font);color:var(--ink);background:var(--surface);border:1px solid var(--rule-2);border-radius:var(--r,8px);padding:7px 12px;margin-right:10px;cursor:pointer;transition:border-color .15s,background .15s}
input[type=file]::file-selector-button:hover{border-color:var(--pri);background:var(--pri-50)}
.adm-toolbar{margin-top:-2px}
.adm-toolbar > .list-cols.push{margin-left:auto}
.af-search{height:38px}.af-search input{height:36px}

/* v7.5 bill of supply */
.bos-box{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-start;padding:10px 12px;border:1px dashed var(--rule-strong);border-radius:var(--r);background:var(--hover)}
.bos-box .check-line{flex:1 1 320px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-weight:400}
.bos-box .check-line .help{flex-basis:100%;margin:0}
.bos-box .bos-only{flex:0 1 260px}
#doc-form.is-bos .f-tax,#doc-form.is-bos .f-cess,#doc-form.is-bos .f-cessu{opacity:.45}
#doc-form.is-bos #t-cgst,#doc-form.is-bos #t-sgst,#doc-form.is-bos #t-igst{opacity:.45}

/* v7.5 delete organisation */
.alert-warn{background:var(--warn-50,#FFF8E6);border-color:var(--warn);color:var(--warn-ink)}
.danger-zone{border-color:var(--red);border-left:3px solid var(--red)}
.dz-head{display:flex;gap:12px;align-items:flex-start}
.dz-ic{flex:0 0 36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--red-50);color:var(--red)}
.dz-counts{list-style:none;padding:0;margin:8px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px 16px}
.dz-counts li{padding:6px 10px;border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--hover)}
.dz-form{max-width:520px}
.dz-form .check-line{display:flex;gap:8px;align-items:center;font-weight:400}
.btn-danger.btn-solid,.dz-form .btn-danger:not([disabled]){background:var(--red);color:#fff;border-color:var(--red)}
.dz-form .btn-danger[disabled]{opacity:.5;cursor:not-allowed}
.snav-link.snav-danger{color:var(--red)}

/* v7.5 payment methods */
.pm-list{display:flex;flex-direction:column;gap:8px}
.pm-head{display:flex;justify-content:space-between;align-items:baseline}
.pm{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--rule);border-radius:var(--r);background:var(--surface);margin:0}
.pm.pm-first{border-color:var(--pri);box-shadow:0 0 0 1px var(--pri) inset}
.pm-text{flex:1;display:flex;flex-direction:column;min-width:0}.pm-text small{color:var(--placeholder);font-size:12px}
.pm-logo{flex:0 0 34px;height:34px;border-radius:8px;display:grid;place-items:center;font-weight:700;color:#fff;background:var(--pri)}
.pml-razorpay{background:#2B6CF6}.pml-cashfree{background:#6933D3}.pml-phonepe{background:#5F259F}.pml-payu{background:#14A44D}.pml-stripe{background:#635BFF}
.pml-upi,.pml-bank{background:var(--chip);color:var(--chip-ink)}
details.pm{display:block;padding:0}
details.pm>summary{display:flex;align-items:center;gap:12px;padding:10px 12px;cursor:pointer;list-style:none}
details.pm>summary::-webkit-details-marker{display:none}
details.pm[open]>summary .pm-chev{transform:rotate(180deg)}
.pm-chev{transition:transform .2s}
.pm-body{padding:0 12px 12px;display:flex;flex-direction:column;gap:10px}
.pm-upi{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.pm-upi img{border:1px solid var(--rule);border-radius:var(--r-sm);background:#fff;padding:4px}
.pm-claim label{font-weight:500}
.claim-note{margin-top:4px;color:var(--warn-ink)}
.pg-list{display:flex;flex-direction:column;gap:12px}
.pg-card{border:1px solid var(--rule);border-radius:var(--r);padding:12px 14px}
.pg-card>summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none}
.pg-card>summary::-webkit-details-marker{display:none}
.pg-card[open]>summary{margin-bottom:12px}
@media (max-width:520px){.pm{flex-wrap:wrap}.pm-online .btn{width:100%;justify-content:center}}

/* v7.5 scanned bill not addressed to the organisation */
.cap-notours{margin-bottom:12px}
.cap-buyer.is-bad input:not(:placeholder-shown){border-color:var(--red);background:var(--red-50)}
.cap-ack{color:var(--red-ink);font-weight:600}
.page-sub + .danger-zone,.settings-head + .page-sub{margin-bottom:16px}
.danger-zone{gap:16px}
.cap-ack{padding:8px 10px;border:1px solid var(--red);border-radius:var(--r-sm);background:var(--red-50)}
.pm-online .btn{flex:0 0 auto}
.pm-list + .help{margin-top:4px !important}

/* v7.6 GST returns: calendar, checks, return tables */
.gst-checks{list-style:none;margin:0;padding:0 18px 14px;display:flex;flex-direction:column;gap:6px}
.gst-checks li{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45}
.gst-checks li .ic{flex:0 0 auto;margin-top:2px}
.gst-checks .lvl-ok .ic{color:var(--ok)}.gst-checks .lvl-warn .ic{color:var(--warn)}.gst-checks .lvl-error .ic{color:var(--red)}.gst-checks .lvl-info .ic{color:var(--pri)}
.gst-checks .lvl-error{color:var(--red-ink)}
.gst-checks-card{margin-bottom:16px}
.gst-sec{margin-bottom:16px}
.gst-table .gst-no{width:56px;white-space:nowrap;color:var(--placeholder)}
.gst-table tr.row-sub td{font-weight:600;background:var(--hover)}
.gst-table tr.row-total td{font-weight:700;border-top:2px solid var(--rule-strong);background:var(--hover)}
.gst-table tr.row-bad td{font-weight:700;color:var(--red-ink);background:var(--red-50)}
.gst-months{margin-bottom:0}
@media print{.gst-sec,.gst-checks-card{break-inside:avoid}}

/* v7.7 document columns: the table scrolls inside the card, header row and first columns stay put, Save stays in view */
.cols-matrix{display:flex;flex-direction:column;padding:0;overflow:hidden}
.cols-matrix .card-head{padding:16px 18px 10px}
.matrix-scroll{overflow:auto;max-height:calc(100vh - 290px);min-height:260px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);overscroll-behavior:contain}
.matrix-table{margin:0;border-collapse:separate;border-spacing:0;min-width:100%}
.matrix-table thead th{position:sticky;top:0;z-index:3;background:var(--surface);box-shadow:inset 0 -1px 0 var(--rule);white-space:nowrap;vertical-align:bottom;font-size:11px}
.matrix-table thead th.center{min-width:116px}
.matrix-table .mx-first{position:sticky;left:0;z-index:2;background:var(--surface);min-width:230px;max-width:260px;box-shadow:inset -1px 0 0 var(--rule)}
.matrix-table thead .mx-first{z-index:4}
.matrix-table .mx-second{min-width:96px}
.matrix-table tbody tr:hover td{background:var(--hover)}
.matrix-table tbody tr:hover td.mx-first{background:var(--hover)}
.matrix-table td.center,.matrix-table th.center{text-align:center}
.matrix-table td{vertical-align:middle}
.matrix-foot{position:sticky;bottom:0;margin:0;padding:12px 18px;background:var(--surface);display:flex;gap:14px;align-items:center;flex-wrap:wrap}
@media (max-width:700px){.matrix-table .mx-first{min-width:160px;max-width:180px}.matrix-scroll{max-height:calc(100vh - 220px)}}

/* v7.7 users page */
.add-user-card{margin-bottom:16px}
.add-user-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px;padding:0 18px}
.add-user-card .form-actions{padding:14px 18px 16px;margin:0;background:none;border-top:0;position:static}
@media (max-width:1100px){.add-user-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.add-user-grid{grid-template-columns:1fr}}
.member-cell{display:flex;gap:10px;align-items:center;min-width:220px}
.member-text{display:flex;flex-direction:column;min-width:0;line-height:1.35}
.member-text .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}
.members-table td{vertical-align:middle}

/* v7.7 payment page */
.pay-top{margin:-8px 0 12px}
.pay-aside{color:#fff;max-width:380px}
.pay-aside-kicker{display:inline-flex;gap:6px;align-items:center;font-size:12px;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.pay-aside-amt{font-size:42px;font-weight:700;letter-spacing:-.02em;margin:14px 0 4px}
.pay-aside-for{opacity:.85;font-size:15px;margin-bottom:26px}
.pay-aside-points{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;font-size:14px;opacity:.9}
.pay-aside-points li{display:flex;gap:10px;align-items:flex-start;line-height:1.45}
.pay-aside-points .ic{flex:0 0 auto;margin-top:3px;color:#7EE2B8}
.pay-card .pm-body{padding:4px 14px 14px;gap:12px}
.pay-card .pm-upi{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;background:transparent;color:inherit;padding:0}
.pay-card .pm-upi img{width:150px;height:150px;display:block}
.pay-card .pm-upi .row-gap{flex-wrap:wrap}
.pay-card .pm-claim .copy-row{display:flex;gap:8px;margin-top:6px}
.pay-card .pm-claim .copy-row input{flex:1;min-width:0}
.pay-card .pm-claim .copy-row .btn{flex:0 0 auto}
.pay-card details.pm[open]{border-color:var(--pri)}
@media (max-width:520px){.pay-card .pm-upi{grid-template-columns:1fr;justify-items:center;text-align:center}.pay-card .pm-upi .row-gap{justify-content:center}.pay-card .pm-claim .copy-row{flex-direction:column}}
.auth-card:has(.pay-card){max-width:480px;width:100%}
.pay-card .pm-upi{grid-template-columns:132px 1fr}
.pay-card .pm-upi img{width:132px;height:132px}
.pay-card .pm-upi .mono{word-break:break-all}

/* v7.7 quick sign-in */
.or-line{display:flex;align-items:center;gap:12px;margin:18px 0 12px;color:var(--placeholder);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.or-line::before,.or-line::after{content:"";flex:1;height:1px;background:var(--rule)}
.pin-login{text-align:center}
.org-avatar.lg{width:56px;height:56px;font-size:22px;margin:0 auto 12px;display:grid;place-items:center}
.pin-input,.otp-input{text-align:center;font-size:28px;letter-spacing:.5em;font-weight:600;padding:12px;font-variant-numeric:tabular-nums}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:280px;margin:4px auto 0}
.pin-pad button{height:54px;border-radius:14px;border:1px solid var(--rule);background:var(--surface);font-size:20px;font-weight:600;color:var(--ink);cursor:pointer;display:grid;place-items:center}
.pin-pad button:hover{background:var(--hover)}
.pin-pad button:active{transform:scale(.97)}
.pin-pad .pin-go{background:var(--pri);color:#fff;border-color:var(--pri)}
.pin-form > .btn{display:none}
.pin-alt{margin-top:18px;font-size:13px;color:var(--placeholder);display:flex;gap:6px;justify-content:center;flex-wrap:wrap;align-items:center}
@media (hover:hover) and (pointer:fine){.pin-pad{display:none}.pin-form > .btn{display:flex}}
.device-list{list-style:none;margin:0;padding:0 0 6px}
.device-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;border-top:1px solid var(--rule)}
.device-list li > span{display:flex;flex-direction:column;gap:2px}

/* v7.7 coming soon and maintenance */
.soon-pill{display:inline-flex;align-items:center;padding:1px 7px;margin-left:6px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(90deg,#F59E0B,#EC4899);color:#fff;vertical-align:1px;white-space:nowrap}
.nav-child.is-soon{opacity:.75}
.soon-page{max-width:560px;margin:40px auto;text-align:center;padding:40px 28px;display:flex;flex-direction:column;align-items:center;gap:10px}
.soon-page h1{margin:6px 0 0;font-size:1.6rem}
.soon-ic{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:var(--pri-50,var(--hover));color:var(--pri)}
.soon-ic .ic{width:30px;height:30px}
.soon-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 32px}
.soon-h{margin:0 0 6px;font-size:13px}
.soon-sec{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--placeholder);margin:12px 0 4px}
.soon-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:center;padding:4px 0}
.soon-row input[type=text],.soon-row input:not([type]){height:32px;font-size:13px}
.soon-row:not(.on) input:not([type=checkbox]){opacity:.55}
.soon-row .check{margin:0}
@media (max-width:900px){.soon-grid{grid-template-columns:1fr}}
.maint-card.is-on{border-color:var(--red);border-left:3px solid var(--red)}
.maint-bar{margin-bottom:14px}
.maint-page{text-align:center;padding:12px 0}
.maint-ic{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:var(--warn-50);color:var(--warn)}
.maint-ic .ic{width:30px;height:30px;animation:mspin 6s linear infinite}
@keyframes mspin{to{transform:rotate(360deg)}}
.sticky-actions{position:sticky;bottom:0;background:var(--surface);padding:12px 0 2px;margin:0}

/* v7.7 one look for cards and buttons in both portals */
.btn{min-height:36px;padding:7px 14px;border-radius:var(--r)}
.btn-sm{min-height:30px;padding:4px 11px;font-size:.88em}
.btn-lg{min-height:44px;padding:10px 20px}
.icon-btn{width:36px;height:36px;border-radius:var(--r)}
.btn-ghost.danger,.btn.danger{color:var(--red)}
.btn-ghost.danger:hover,.btn.danger:hover{background:var(--red-50);color:var(--red)}
/* a card head inside a padded card runs edge to edge, like in flush cards */
/* a padded card that starts with a head: opt in with .card-headed so the head runs edge to edge */
.card.card-headed > .card-head:first-child{margin:-18px -20px 16px;padding:13px 20px}
.card-head .card-title{margin:0}
.card-head > .push,.card-head > .badge:last-child{margin-left:auto}
/* actions under a form line up with the fields */
.card > .form-actions:last-child{margin-bottom:0}
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
/* closed drop-down panels near the right edge must not widen the page */
.main{overflow-x:clip}
.auth-form{min-width:0;max-width:100vw;overflow-x:clip}
.auth-card{min-width:0;max-width:100%}
@media (max-width:520px){.auth-form{padding:28px 16px}}
@media (max-width:700px){
  .search kbd{display:none}
}

/* v7.8 roles: the permission table scrolls with the page (no small inner box); its header and the Save bar stay in view */
@media (min-width:901px){
  .card-flush:has(> .matrix-wrap){overflow:clip}
  .matrix-wrap{overflow:visible;max-height:none}
  .matrix thead th{top:var(--top-h)}
  .matrix .group-row td{top:calc(var(--top-h) + 34px)}
}
form:has(.matrix-wrap) > .form-actions{position:sticky;bottom:0;z-index:5;background:var(--surface);box-shadow:0 -6px 16px -10px rgba(16,24,40,.25)}
/* settings menu: scrolls on its own when it is taller than the window */
@media (min-width:1001px){
  .content:has(> .settings-nav) > .settings-nav{max-height:calc(100vh - var(--top-h) - 24px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
}

/* v7.8 admin sidebar: "Back to my books" stays at the bottom while the menu scrolls */
.sidebar nav{min-height:0}
.side-foot{flex-shrink:0;padding:8px 10px 10px;border-top:1px solid var(--side-line);background:var(--side-bg)}
.side-foot .side-back{background:rgba(255,255,255,.06);border:1px solid var(--side-line);justify-content:flex-start}
.side-foot .side-back:hover{background:var(--side-active);color:#fff;border-color:var(--side-active)}

/* v7.8 PIN offer after signing in */
.pin-offer{position:fixed;right:20px;bottom:20px;z-index:80;max-width:360px;width:calc(100vw - 40px);animation:rise .35s var(--ease) both}
.pin-offer-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.pin-offer-head{display:flex;gap:10px;align-items:flex-start}
.pin-offer-head > div{flex:1;display:flex;flex-direction:column;gap:2px}
.pin-offer-head small{color:var(--placeholder);font-size:12px;line-height:1.4}
.pin-offer-head .icon-btn{margin:-6px -8px 0 0}
.pin-offer-ic{flex:0 0 34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--pri-50,var(--hover));color:var(--pri)}
.pin-offer-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pin-offer-fields input{margin:0;text-align:center;letter-spacing:.3em;font-weight:600}
.pin-offer-actions{display:flex;gap:6px}
@media (max-width:520px){.pin-offer{right:10px;left:10px;bottom:10px;width:auto;max-width:none}}

/* v7.8 sign-in and sign-up */
.seg-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;background:var(--seg);border-radius:var(--r)}
.seg-tabs a{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border-radius:calc(var(--r) - 2px);color:var(--ink-2);font-weight:500;text-decoration:none;font-size:.92rem}
.seg-tabs a:hover{color:var(--ink)}
.seg-tabs a.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}
.auth-tip{margin-top:16px;display:block;line-height:1.5}
.auth-tip .ic{vertical-align:-2px;color:var(--pri)}
.pw-wrap{position:relative;display:block}
.pw-wrap input{padding-right:42px}
.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);margin-top:2px;border:0;background:none;color:var(--placeholder);cursor:pointer;width:32px;height:32px;display:grid;place-items:center;border-radius:6px}
.pw-eye:hover{color:var(--ink);background:var(--hover)}
.pw-meter{display:block;height:4px;border-radius:2px;background:var(--rule);margin-top:6px;overflow:hidden}
.pw-meter i{display:block;height:100%;width:0;background:var(--red);transition:width .25s,background .25s}
.signup-steps{list-style:none;display:flex;gap:6px;padding:0;margin:14px 0 0;font-size:12px;color:var(--placeholder)}
.signup-steps li{display:flex;align-items:center;gap:6px;flex:0 1 auto;white-space:nowrap}
.signup-steps{justify-content:space-between}
.signup-steps li span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--seg);font-weight:600;font-size:11px}
.signup-steps li.on{color:var(--ink)}
.signup-steps li.on span{background:var(--pri);color:#fff}
.signup-steps li + li::before{content:"";flex:0 0 14px;height:1px;background:var(--rule-strong)}
.add-user-grid{padding:16px 18px 0}
/* v7.9 report bar: actions on top, options in one card, details printed in the header */
.report-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:-4px 0 12px}
.report-top .back-link{margin:0}
.report-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.report-filter{padding:16px 18px 0;margin-bottom:18px}
.report-filter .rf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px 14px;align-items:end}
.report-filter .rf-grid > label{min-width:0;margin:0}
.report-filter .rf-grid input,.report-filter .rf-grid select{width:100%}
.report-filter .rf-foot{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin:14px -18px 0;padding:10px 18px;border-top:1px solid var(--rule);background:var(--surface-2,rgba(0,0,0,.015));border-radius:0 0 var(--r-lg) var(--r-lg)}
.report-filter .rf-run{margin-left:auto}
.report-filter .rf-check{margin:0;font-size:.9rem}
.rf-hdr > .btn{font-weight:500;max-width:100%}
.rf-hdr-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.rf-hdr-panel{min-width:230px;padding:6px 8px 10px}
.rf-hdr-panel .check{display:flex;align-items:center;gap:8px;padding:6px 6px;margin:0;border-radius:6px;cursor:pointer;font-size:.9rem}
.rf-hdr-panel .check:hover{background:var(--hover,rgba(0,0,0,.04))}
.rf-hdr-panel .rf-hdr-save{border-top:1px solid var(--rule);border-radius:0;margin-top:4px;padding-top:9px;color:var(--ink-2)}
.rf-hdr-panel .btn{width:100%;margin-top:8px;justify-content:center}
.report-head .rh-name{font-size:1.05rem;font-weight:700;color:var(--ink)}
.report-head h2{margin-top:10px}
.rh-line{font-size:.82rem;color:var(--ink-2);margin-top:2px;line-height:1.45}
.rh-ids strong{font-weight:600;color:var(--ink);letter-spacing:.02em}
.rh-sep{padding:0 8px;color:var(--placeholder)}
.rh-logo{display:block;margin:0 auto 6px;max-height:54px;max-width:180px;object-fit:contain}
.fs-orglines{margin-top:3px}
@media (max-width:600px){
  .report-filter .rf-grid{grid-template-columns:1fr 1fr}
  .report-filter .rf-grid > label:first-child{grid-column:1/-1}
  .report-filter .rf-run{width:100%;justify-content:center}
  .report-actions{width:100%}
  .report-actions > *{flex:1}
  .report-actions .btn{width:100%;justify-content:center}
}
/* statement lines: save bar */
.fin-map-bar{position:sticky;bottom:0;z-index:12;display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:12px 18px;background:var(--bar-bg,var(--surface));backdrop-filter:blur(8px);border-top:1px solid var(--rule);border-radius:0 0 var(--r-lg) var(--r-lg);box-shadow:0 -8px 18px -12px rgba(33,38,60,.25)}
.fin-map-bar .fm-status{display:flex;align-items:center;gap:8px;font-size:.88rem;color:var(--ink-2)}
.fin-map-bar .fm-dot{width:8px;height:8px;border-radius:50%;background:var(--placeholder)}
.fin-map-bar.dirty .fm-dot{background:var(--warn,#e08a00)}
.fin-map-bar.dirty .fm-status{color:var(--ink)}
.fin-map-bar .fm-btns{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.fin-map tr.fm-changed td{background:var(--pri-50,#eef4ff)}
.fin-map tr.fm-set td:first-child{box-shadow:inset 3px 0 0 var(--pri)}
.fm-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--rule)}
.fm-filter input{max-width:280px}
@media (max-width:600px){.fin-map-bar .fm-btns{width:100%}.fin-map-bar .fm-btns .btn{flex:1;justify-content:center}}
.card-flush.fin-map-form{overflow:clip}
.fin-map td{vertical-align:middle}
.report-filter .rf-grid .pk-select,.report-filter .rf-grid .pk-date{width:100%}

/* v7.10 GST returns calendar: period × return grid, annual returns beside it */
.gst-cal{margin-bottom:16px}
.gcal-head{flex-wrap:wrap;gap:8px}
.gcal-sum{display:flex;gap:6px;flex-wrap:wrap}
.gcal-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.8rem;background:var(--seg);color:var(--ink-2)}
.gcal-pill b{font-weight:700;color:var(--ink)}
.gcal-pill.is-overdue{background:var(--red-50);color:var(--red)}.gcal-pill.is-overdue b{color:inherit}
.gcal-pill.is-due{background:var(--warn-50);color:var(--warn-ink)}.gcal-pill.is-due b{color:inherit}
.gcal-pill.is-filed{background:var(--ok-50);color:var(--ok-ink)}.gcal-pill.is-filed b{color:inherit}
.gcal-body{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:0}
.gcal-body.one{grid-template-columns:1fr}
.gcal-grid-wrap{overflow-x:auto;border-right:1px solid var(--rule)}
.gcal-body.one .gcal-grid-wrap{border-right:0}
.gcal-grid{width:100%;border-collapse:collapse}
.gcal-grid thead th{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);text-align:left;padding:10px 16px;background:var(--surface-2);border-bottom:1px solid var(--rule)}
.gcal-grid tbody th{font-weight:600;font-size:.9rem;text-align:left;padding:8px 16px;white-space:nowrap;width:1%;color:var(--ink)}
.gcal-grid td{padding:6px 16px 6px 0}
.gcal-grid tbody tr + tr > *{border-top:1px solid var(--rule)}
.gcal-chip{display:flex;align-items:center;gap:10px;padding:7px 12px;border:1px solid var(--rule);border-radius:10px;text-decoration:none;color:var(--ink);background:var(--surface);transition:border-color .15s,box-shadow .15s,background .15s;min-width:0}
.gcal-chip:hover{border-color:var(--pri);text-decoration:none;box-shadow:var(--shadow-1)}
.gcal-chip.on{border-color:var(--pri);background:var(--pri-50);box-shadow:0 0 0 1px var(--pri) inset}
.gcal-dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px;background:var(--placeholder)}
.gcal-txt{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.gcal-txt b{font-size:.86rem;font-weight:600}
.gcal-txt small{font-size:.76rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gcal-here{margin-left:auto;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--pri)}
.is-overdue > .gcal-dot,.gcal-legend .is-overdue::before{background:var(--red)}
.gcal-chip.is-overdue .gcal-txt b{color:var(--red)}
.is-due > .gcal-dot,.gcal-legend .is-due::before{background:var(--warn)}
.gcal-chip.is-due .gcal-txt b{color:var(--warn-ink)}
.is-upcoming > .gcal-dot,.gcal-legend .is-upcoming::before{background:var(--pri)}
.is-filed > .gcal-dot,.gcal-legend .is-filed::before{background:var(--ok)}
.gcal-chip.is-filed{background:var(--surface-2)}
.gcal-chip.is-filed .gcal-txt b{color:var(--ok-ink)}
.is-optional > .gcal-dot,.gcal-legend .is-optional::before{background:var(--placeholder)}
.gcal-year{display:flex;flex-direction:column;gap:8px;padding:12px 16px 16px}
.gcal-sub{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:2px}
.gcal-legend{display:flex;flex-wrap:wrap;gap:6px 16px;padding:10px 16px;border-top:1px solid var(--rule);font-size:.76rem;color:var(--ink-3)}
.gcal-legend span{display:inline-flex;align-items:center;gap:6px}
.gcal-legend span::before{content:"";width:8px;height:8px;border-radius:50%}
.gst-pick .actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
@media (max-width:900px){
  .gcal-body{grid-template-columns:1fr}
  .gcal-grid-wrap{border-right:0;border-bottom:1px solid var(--rule)}
}
@media (max-width:600px){
  .gcal-grid thead{display:none}
  .gcal-grid,.gcal-grid tbody,.gcal-grid tr{display:block}
  .gcal-grid tr{padding:10px 16px}
  .gcal-grid tbody th{display:block;padding:0 0 6px;width:auto;border:0!important}
  .gcal-grid td{display:block;padding:0 0 6px}
  .gcal-grid td::before{content:attr(data-label);display:block;font-size:.7rem;font-weight:600;color:var(--ink-3);text-transform:uppercase;margin:2px 0 3px}
  .gst-pick .actions{width:100%}
  .gst-pick .actions .btn{flex:1;justify-content:center}
}
/* admin: version and release notes */
.ver-card{margin-top:16px}
.ver-top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(160px,.5fr);gap:12px 18px;padding:16px 18px;border-bottom:1px solid var(--rule)}
.ver-top > label{margin:0}
.ver-preview{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:10px 14px;border:1px dashed var(--rule-2);border-radius:var(--r);background:var(--surface-2)}
.ver-preview b{font-size:1.05rem}
.ver-switches{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
.ver-rels{padding:14px 18px 6px;display:flex;flex-direction:column;gap:8px}
.ver-sub{font-weight:600;margin-bottom:4px}
.ver-rel{border:1px solid var(--rule);border-radius:var(--r);background:var(--surface)}
.ver-rel.is-edited{border-color:var(--pri-100)}
.ver-rel > summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;cursor:pointer;list-style:none}
.ver-rel > summary::-webkit-details-marker{display:none}
.ver-rel > summary::after{content:"";margin-left:auto;width:8px;height:8px;border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);transform:rotate(45deg);transition:transform .15s}
.ver-rel[open] > summary::after{transform:rotate(-135deg)}
.ver-head-txt{font-weight:500;color:var(--ink-2)}
.ver-rel-body{display:flex;flex-direction:column;gap:10px;padding:0 14px 14px}
.ver-rel-body label{margin:0}
.ver-rel-body textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84rem;line-height:1.5}
.ver-card .form-actions{margin:8px 0 0;border-radius:0 0 var(--r-lg) var(--r-lg)}
.cl-title{margin:0 0 8px;font-size:1.02rem}
@media (max-width:700px){.ver-top,.ver-switches{grid-template-columns:1fr}}
/* admin overview */
.ad-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px}
.ad-stat{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-1);color:var(--ink);text-decoration:none;transition:border-color .15s,transform .15s}
.ad-stat:hover{border-color:var(--pri);text-decoration:none;transform:translateY(-1px)}
.ad-stat > span:last-child{display:flex;flex-direction:column;min-width:0}
.ad-stat small{font-size:.78rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-stat b{font-size:1.35rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
.ad-ic{width:38px;height:38px;flex:0 0 38px;border-radius:10px;display:grid;place-items:center}
.ad-ic .ic{width:19px;height:19px}
.is-blue.ad-ic,.ad-av.is-blue{background:var(--pri-50);color:var(--pri)}
.is-green.ad-ic{background:var(--ok-50);color:var(--ok)}
.is-violet.ad-ic,.ad-av.is-violet{background:#efeafe;color:#6a4fd6}
.is-red.ad-ic{background:var(--red-50);color:var(--red)}
.is-amber.ad-ic{background:var(--warn-50);color:var(--warn)}
.is-gray.ad-ic{background:var(--seg);color:var(--ink-3)}
.ad-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ad-card{display:flex;flex-direction:column}
.ad-card .card-head h3{display:flex;align-items:center;gap:8px}
.ad-card .card-head h3 .ic{color:var(--ink-3)}
.ad-list{list-style:none;margin:0;padding:0}
.ad-list li + li{border-top:1px solid var(--rule)}
.ad-list a{display:flex;align-items:center;gap:12px;padding:11px 18px;color:var(--ink);text-decoration:none}
.ad-list a:hover{background:var(--hover);text-decoration:none}
.ad-av{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;background:var(--seg);color:var(--ink-2)}
.ad-main{display:flex;flex-direction:column;min-width:0;flex:1}
.ad-main b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-main small{font-size:.8rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-empty{display:flex;align-items:center;gap:10px;padding:22px 18px;color:var(--ink-3);flex:1}
.ad-empty .ic{width:30px;height:30px;padding:7px;border-radius:50%;background:var(--ok-50);color:var(--ok);flex:0 0 30px}
.ad-tiles{display:grid;grid-template-columns:1fr 1fr}
.ad-tiles > div{display:flex;flex-direction:column;gap:3px;padding:14px 18px;min-width:0}
.ad-tiles > div:nth-child(odd){border-right:1px solid var(--rule)}
.ad-tiles > div:nth-child(n+3){border-top:1px solid var(--rule)}
.ad-tiles small{font-size:.78rem;color:var(--ink-3)}
.ad-tiles b{font-size:1.2rem;font-weight:700;font-variant-numeric:tabular-nums}
.ad-bar{display:block;height:5px;border-radius:999px;background:var(--seg);overflow:hidden;margin-top:4px}
.ad-bar i{display:block;height:100%;background:var(--pri);border-radius:inherit}
@media (max-width:900px){.ad-grid{grid-template-columns:1fr}}
/* settings: tidy names */
.tidy-auto{margin-bottom:16px}
.tidy-list{overflow:clip}
.tidy-table .tidy-ck{width:36px;text-align:center}
.tidy-table .tidy-from{color:var(--ink-3)}
.tidy-table .tidy-to{font-weight:600}
.tidy-table .tidy-arrow{width:28px;color:var(--ink-3)}
.ad-grid > .card{margin:0}
.ad-stats > .ad-stat{margin:0}
@media (max-width:600px){.ad-stats{grid-template-columns:1fr 1fr;gap:10px}.ad-stat{padding:12px;gap:10px}.ad-stat:last-child{grid-column:1/-1}.ad-ic{width:32px;height:32px;flex-basis:32px}.ad-stat b{font-size:1.15rem}}
/* v7.11 admin filter bar: tabs, search and filters in one card */
.adm-filter{margin-bottom:16px;overflow:visible}
.adm-filter .adm-tabs{margin:0;padding:0 14px;border-bottom:1px solid var(--rule);overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
.adm-filter .adm-tabs::-webkit-scrollbar{display:none}
.adm-filter .adm-tabs a{white-space:nowrap}
.adm-filter .adm-toolbar{margin:0;padding:12px 14px;gap:10px;align-items:center;background:var(--surface-2);border-radius:0 0 var(--r-lg) var(--r-lg)}
.adm-filter .adm-tabs + .adm-toolbar{border-top:0}
.adm-filter > .adm-toolbar:first-child{border-radius:var(--r-lg)}
.adm-filter .adm-search input[type=search]{box-shadow:none;background:var(--surface)}
.adm-filter .inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}
.adm-filter .adm-toolbar label{display:inline-flex;flex-direction:row;align-items:center;gap:8px;margin:0;min-width:0;font-size:.82rem;font-weight:500;color:var(--ink-3);white-space:nowrap}
.adm-filter .adm-toolbar label > input,.adm-filter .adm-toolbar label > select,.adm-filter .adm-toolbar label .pk-select,.adm-filter .adm-toolbar label .pk-date{margin:0;width:auto;min-width:150px;color:var(--ink)}
.adm-filter .adm-toolbar .btn{margin:0}
.adm-reset{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;font-weight:500;color:var(--ink-3);padding:6px 8px;border-radius:6px;text-decoration:none}
.adm-reset:hover{color:var(--red);background:var(--red-50);text-decoration:none}
@media (max-width:700px){
  .adm-filter .adm-search{max-width:none;flex-basis:100%}
  .adm-filter .inline-form{width:100%}
  .adm-filter .adm-toolbar label{flex:1 1 140px}
  .adm-filter .adm-toolbar label > input,.adm-filter .adm-toolbar label .pk-date,.adm-filter .adm-toolbar label .pk-select{flex:1;min-width:0}
}
/* admin: payment edit */
.pay-edit{display:flex;flex-direction:column;gap:16px;max-width:920px}
.pay-edit > .card{margin:0}
.pe-body{display:flex;flex-direction:column;gap:12px;padding:16px 18px 6px}
.pe-body label{margin:0}
.pe-sec{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-top:6px}
.pe-sec:first-child{margin-top:0}
.pe-amounts{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.pe-amounts label{flex:1 1 130px}
.pe-op{font-size:1.1rem;color:var(--ink-3);padding-bottom:9px}
.pe-total{display:flex;flex-direction:column;padding:6px 14px;border-radius:var(--r);background:var(--pri-50);min-width:150px}
.pe-total small{font-size:.74rem;color:var(--ink-3)}
.pe-total b{font-size:1.15rem;color:var(--pri-ink);font-variant-numeric:tabular-nums}
.pe-lbl{display:flex;justify-content:space-between;gap:8px}.pe-lbl .link-btn{font-size:.78rem}
.danger-card{border-color:var(--red-50);background:linear-gradient(0deg,var(--surface),var(--surface))}
.danger-card .card-title{color:var(--red-ink);display:flex;align-items:center;gap:8px}
.link-btn{background:none;border:0;padding:0;color:var(--pri);cursor:pointer;font:inherit;font-weight:500}.link-btn:hover{text-decoration:underline}
.menu-panel a.menu-danger,.menu-panel .menu-danger{color:var(--red)}
.menu-panel a.menu-danger:hover{background:var(--red-50);color:var(--red)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* admin: TDS filing requests */
.tds-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.tds-list li > a{display:flex;gap:12px;align-items:flex-start}
.tds-list .ad-av{margin-top:2px}
.tds-main{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.tds-what{font-size:.86rem;color:var(--ink-2)}
.tds-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tds-due{display:inline-flex;align-items:center;gap:4px;font-size:.76rem;font-weight:500;color:var(--ink-3)}
.tds-due.soon{color:var(--warn-ink)}
.tds-due.late{color:var(--red-ink)}
.tds-fee{font-size:.76rem;color:var(--ink-3);margin-left:auto}
.tds-list li.is-late{box-shadow:inset 3px 0 0 var(--red)}
/* admin: plans */
.ap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;align-items:stretch}
.ap-card{display:flex;flex-direction:column;margin:0;overflow:hidden}
.ap-card.is-off{opacity:.72}
.ap-head{padding:16px 18px 12px;border-bottom:1px solid var(--rule)}
.ap-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.ap-title h3{margin:0;font-size:1.1rem}
.ap-title code{font-size:.72rem}
.ap-badges{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.ap-desc{margin:8px 0 0;font-size:.86rem;color:var(--ink-2);line-height:1.45}
.ap-price{padding:14px 18px 6px}
.ap-price b{font-size:1.65rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ap-price small{font-size:.85rem;color:var(--ink-3);margin-left:2px}
.ap-year{font-size:.84rem;color:var(--ink-3);margin-top:2px}
.ap-save{display:inline-block;margin-left:4px;padding:0 7px;border-radius:999px;background:var(--ok-50);color:var(--ok-ink);font-size:.72rem;font-weight:600}
.ap-orgs{display:inline-flex;align-items:center;gap:6px;margin:4px 18px 4px;font-size:.82rem;color:var(--ink-2)}
.ap-sec{display:flex;justify-content:space-between;padding:12px 18px 6px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}
.ap-sec .muted{text-transform:none;letter-spacing:0;font-weight:500}
.ap-limits,.ap-feats{list-style:none;margin:0;padding:0 18px}
.ap-limits li{display:flex;align-items:flex-start;gap:8px;padding:3px 0;font-size:.88rem}
.ap-limits li .ic{color:var(--ink-3);margin-top:3px;flex:0 0 auto}
.ap-feats{flex:1;padding-bottom:12px}
.ap-feats li{display:flex;align-items:flex-start;gap:8px;padding:3px 0;font-size:.85rem;line-height:1.4}
.ap-mark{width:18px;height:18px;flex:0 0 18px;border-radius:50%;display:grid;place-items:center;margin-top:1px}
.ap-mark .ic{width:11px;height:11px}
.ap-feats .on .ap-mark{background:var(--ok-50);color:var(--ok)}
.ap-feats .off{color:var(--ink-3)}
.ap-feats .off .ap-mark{background:var(--seg);color:var(--placeholder)}
.ap-feats .soon-pill{margin-left:4px}
.ap-foot{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--rule);background:var(--surface-2);margin-top:auto}
/* admin: plan form */
.plan-form{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start;max-width:1180px}
.plan-form-main,.plan-form-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.plan-form-side{position:sticky;top:calc(var(--top-h) + 16px)}
.pf-card{margin:0;display:flex;flex-direction:column;gap:12px}
.pf-card label{margin:0}
.pf-h{display:flex;align-items:center;gap:8px;margin:0;font-size:.98rem}
.pf-h .ic{color:var(--ink-3)}
.pf-h .muted{font-weight:400}
.pf-feats{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.pf-feat{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--rule);border-radius:var(--r);cursor:pointer;font-weight:500;font-size:.88rem;line-height:1.35;transition:border-color .15s,background .15s;min-width:0}
.pf-feat:hover{border-color:var(--pri)}
.pf-feat:has(input:checked){border-color:var(--pri-100);background:var(--pri-50)}
.pf-feat input{margin:2px 0 0;flex:0 0 auto}
.pf-feat-txt{flex:1;min-width:0}
.pf-feat .soon-pill{flex:0 0 auto}
.pf-card .check-tools{margin:0}
.pf-note{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:var(--r);background:var(--warn-50);color:var(--warn-ink);font-size:.84rem}
.pf-note .ic{margin-top:2px;flex:0 0 auto}
.pf-actions{grid-column:1/-1;margin:0;border-radius:var(--r-lg);border:1px solid var(--rule)}
@media (max-width:1000px){.plan-form{grid-template-columns:1fr}.plan-form-side{position:static}}
/* admin sidebar: compact, sections fold, counts */
.admin-sidebar .adm-nav{padding:4px 10px 12px;display:flex;flex-direction:column;gap:1px;mask-image:linear-gradient(to bottom,#000 calc(100% - 24px),transparent);-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 24px),transparent);scrollbar-width:thin}
.admin-sidebar .adm-nav .nav-link{padding:7px 10px;gap:11px;font-size:.92rem;border-radius:8px}
.admin-sidebar .adm-nav .nav-link .ic{width:18px;height:18px;opacity:.85}
.admin-sidebar .adm-nav .nav-link.active .ic{opacity:1}
.adm-sec{display:flex;align-items:center;gap:6px;width:100%;background:none;border:0;cursor:pointer;font:inherit;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--side-dim);padding:12px 10px 4px;border-radius:6px;text-align:left}
.adm-sec:hover{color:var(--side-strong)}
.adm-sec > span:first-child{flex:1}
.adm-sec-chev{transition:transform .15s;opacity:.7}
.adm-sec[aria-expanded="false"] .adm-sec-chev{transform:rotate(-90deg)}
.adm-sec-dot{display:none;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:.66rem;letter-spacing:0;place-items:center}
.adm-sec[aria-expanded="false"] .adm-sec-dot{display:grid}
.adm-group{display:flex;flex-direction:column;gap:1px}
.adm-group[hidden]{display:none}
.admin-sidebar .admin-tag{margin-bottom:4px}
.admin-sidebar .side-foot{padding:10px}
.admin-sidebar .side-back{justify-content:flex-start}
@media (max-height:760px){.admin-sidebar .adm-nav .nav-link{padding:5px 10px}.adm-sec{padding-top:8px}}
/* admin: maintenance & features page */
.sys-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}
.sys-tabs a{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);text-decoration:none;box-shadow:var(--shadow-1);transition:border-color .15s,box-shadow .15s}
.sys-tabs a:hover{border-color:var(--pri);text-decoration:none}
.sys-tabs a.on{border-color:var(--pri);box-shadow:0 0 0 1px var(--pri) inset;background:var(--pri-50)}
.sys-tabs a > span:last-child{display:flex;flex-direction:column;min-width:0}
.sys-tabs b{font-size:.92rem}
.sys-tabs small{font-size:.78rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sys-tabs .ic{color:var(--ink-3)}
.sys-dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px;background:var(--ok)}
.sys-dot.is-on{background:var(--red);box-shadow:0 0 0 4px var(--red-50)}
.sys-dot.is-scheduled{background:var(--warn);box-shadow:0 0 0 4px var(--warn-50)}
.sys-panel{margin:0 0 16px}
.sys-panel[hidden]{display:none}
.maint-hero{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--rule);border-radius:var(--r-lg) var(--r-lg) 0 0}
.maint-hero > div{display:flex;flex-direction:column;min-width:0}
.maint-hero b{font-size:1rem}
.maint-hero small{color:var(--ink-2);font-size:.84rem}
.mh-ic{width:40px;height:40px;flex:0 0 40px;border-radius:12px;display:grid;place-items:center}
.maint-hero.is-off .mh-ic{background:var(--ok-50);color:var(--ok)}
.maint-hero.is-on{background:var(--red-50)}.maint-hero.is-on .mh-ic{background:var(--red);color:#fff}
.maint-hero.is-scheduled{background:var(--warn-50)}.maint-hero.is-scheduled .mh-ic{background:var(--warn);color:#fff}
.maint-hero .push{margin-left:auto}
.maint-body{display:flex;flex-direction:column;gap:14px;padding:16px 18px}
.maint-body label{margin:0}
.maint-quick{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.maint-quick .chip{cursor:pointer;font:inherit;font-size:.8rem}
.maint-quick .chip:hover{border-color:var(--pri);color:var(--pri)}
.maint-what{font-size:.86rem;color:var(--ink-2)}
.maint-what summary{cursor:pointer;font-weight:500;color:var(--ink-2)}
.maint-what ul{margin:8px 0 0;padding-left:18px;line-height:1.6}
.sys-panel .form-actions{margin:0}
.soon-card .card-head{flex-wrap:wrap;gap:10px}
.soon-seg{display:inline-grid;grid-auto-flow:column;padding:3px}
.soon-seg button{border:0;background:none;font:inherit;font-size:.85rem;font-weight:500;color:var(--ink-2);padding:6px 12px;border-radius:calc(var(--r) - 2px);cursor:pointer;display:flex;gap:6px;align-items:center}
.soon-seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}
.soon-seg .count{font-size:.7rem;background:var(--seg);border-radius:999px;padding:0 6px}
.soon-help{margin:0;padding:12px 18px 0}
.soon-filter{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 18px}
.soon-filter input[type=search]{max-width:280px}
.soon-filter .check{margin:0}
.soon-list{padding:0 18px 12px;display:grid;grid-template-columns:1fr;gap:0}
.soon-list .soon-sec{margin:14px 0 4px;font-size:.7rem;font-weight:600;color:var(--ink-3)}
.soon-list .soon-sec:first-child{margin-top:0}
.soon-list .soon-row{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);padding:6px 10px;border-radius:8px}
.soon-list .soon-row:hover{background:var(--hover)}
.soon-list .soon-row.on{background:var(--warn-50)}
.soon-row .switch{margin:0;gap:10px;font-size:.9rem}
.switch-sm .track{transform:scale(.85);transform-origin:left center}
@media (max-width:800px){.sys-tabs{grid-template-columns:1fr}.soon-list .soon-row{grid-template-columns:1fr}}
.ap-grid > .card + .card,.pay-edit > .card + .card,.plan-form .card + .card{margin-top:0}
.soon-list .soon-row{padding:3px 10px}.soon-list .soon-row input:not([type=checkbox]){height:32px;font-size:.84rem}
@media (max-width:600px){.tds-stats{grid-template-columns:1fr 1fr}.tds-stats .ad-stat:last-child{grid-column:auto}}
/* v7.12 sign-in pages: compact and clear, like the payment page */
@media (min-width:901px){.auth{grid-template-columns:minmax(0,.9fr) minmax(0,1fr)}}
.auth-card,.auth-card:has(.auth-panel){width:100%;max-width:min(420px,100%)}
.auth-card:has(.pay-card){max-width:min(480px,100%)}
.auth-card .auth-title{font-size:1.6rem}
.auth-panel{margin-top:18px;padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-1)}
.auth-panel > form.stack{margin:0}
.auth-panel .seg-tabs{margin:0}
.auth-panel .auth-tip{margin:0;font-size:.8rem}
.auth-panel .btn-lg{height:44px}
.demo-cta-sm{margin-top:14px;padding:10px 12px}
.demo-cta-sm .demo-cta-ic{width:32px;height:32px;border-radius:8px}
.demo-cta-sm strong{font-size:.9rem}
.demo-cta-sm small{font-size:.78rem}
.auth-card .auth-switch{margin-top:16px;text-align:center;font-size:.92rem}
.auth-aside .auth-pitch{font-size:1.45rem;margin:14px 0 22px}
.auth-ledger-inner{max-width:460px}
/* subscription: best plan, renewal window */
.best-plan{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r-lg);background:linear-gradient(135deg,#FFF7E0,#FDEFD0);color:#7A5200;border:1px solid #F3D99A}
.best-plan .ic{width:22px;height:22px;color:#C8901A}
.best-plan > span{display:flex;flex-direction:column}
.best-plan b{font-size:.95rem}
.best-plan small{font-size:.78rem;opacity:.85}
.sub-renew-note{display:inline-flex;align-items:center;gap:6px;margin:0}
.plan-state{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px;border-radius:var(--r);background:var(--surface-2);font-size:.88rem;font-weight:500;text-align:center;margin-top:auto}
.plan-state .ic{color:var(--ok)}
.plan-state.muted .ic{color:var(--ink-3)}
.plan-state small{font-size:.76rem;color:var(--ink-3);font-weight:400}
.badge .ic{width:11px;height:11px;vertical-align:-1px}
.reg-show{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}.reg-show-lbl{width:100%;font-weight:500;font-size:.9rem}.reg-show .check{margin:0}.reg-show .help{width:100%;margin:0}
/* error pages */
.err-page{max-width:560px;margin:5vh auto 40px;text-align:center;padding:0 16px;animation:rise .45s var(--ease) both}
.err-art svg{max-width:100%;height:auto}
.err-code{display:inline-block;margin-top:6px;padding:2px 12px;border-radius:999px;background:var(--pri-50);color:var(--pri-ink);font-weight:700;font-size:.82rem;letter-spacing:.08em}
.err-title{margin:12px 0 6px;font-size:1.6rem;letter-spacing:-.01em}
.err-sub{margin:0 auto;max-width:44ch;color:var(--ink-2);line-height:1.55}
.err-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.err-links{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid var(--rule)}
.err-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--rule-2);border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:.85rem;font-weight:500;text-decoration:none}
.err-chip:hover{border-color:var(--pri);color:var(--pri);text-decoration:none}
.err-help{margin-top:22px}
.auth-card:has(.err-page){max-width:min(520px,100%)}
.auth-card .err-page{margin-top:0}
.rc-head .brand{border:0!important;padding:0!important;margin:0;height:auto;box-shadow:none}
.signout-all{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--rule);margin-top:auto}.signout-all .help{margin:0;display:inline-flex;gap:6px;align-items:center}
/* v7.13 support tickets */
.tk-list{list-style:none;margin:0;padding:0}
.tk-list li + li{border-top:1px solid var(--rule)}
.tk-list a{display:flex;gap:12px;align-items:flex-start;padding:13px 18px;color:var(--ink);text-decoration:none}
.tk-list a:hover{background:var(--hover);text-decoration:none}
.tk-list li.is-waiting,.tk-list li.is-new{box-shadow:inset 3px 0 0 var(--pri)}
.tk-list li.pri-urgent{box-shadow:inset 3px 0 0 var(--red)}
.tk-main{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}
.tk-top{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.tk-top strong{font-weight:600}
.tk-meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:.8rem;color:var(--ink-3)}
.tk-meta .ic{vertical-align:-2px}
.tk-when{text-align:right;white-space:nowrap;line-height:1.35}
.tk-new{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start;max-width:1100px}
.tk-new > .card{margin:0}
.tk-form .form-actions{margin:6px -20px -18px}
.tk-tips ul{margin:0;padding-left:18px;line-height:1.6;font-size:.9rem;color:var(--ink-2)}
.tk-file input{margin-top:6px;font-size:.85rem}
.tk-thread{display:flex;flex-direction:column;gap:14px;margin-bottom:16px;max-width:880px}
.tk-msg{display:flex;gap:10px;align-items:flex-start}
.tk-msg.from-me{flex-direction:row-reverse}
.tk-av{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;background:var(--seg);color:var(--ink-2)}
.tk-msg.from-team .tk-av{background:var(--pri);color:#fff}
.tk-bubble{max-width:min(640px,85%);padding:10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--rule);box-shadow:var(--shadow-1)}
.tk-msg.from-me .tk-bubble{background:var(--pri-50);border-color:var(--pri-100)}
.tk-msg.is-note .tk-bubble{background:var(--warn-50);border:1px dashed var(--warn);box-shadow:none}
.tk-msg.is-note .tk-av{background:var(--warn-50);color:var(--warn-ink)}
.tk-who{display:flex;gap:10px;justify-content:space-between;align-items:baseline;margin-bottom:4px;font-size:.86rem}
.tk-body{font-size:.94rem;line-height:1.55;overflow-wrap:anywhere}
.tk-file-chip{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:4px 10px;border:1px solid var(--rule-2);border-radius:999px;background:var(--surface);font-size:.82rem;text-decoration:none}
.tk-reply{max-width:880px}
.tk-reply textarea{min-height:100px}
.tk-reply-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.tk-reply-foot .btn{margin-left:auto}
.tk-reply-foot label{margin:0;display:flex;align-items:center;gap:8px}
.tk-reply-foot .tk-file input{margin:0}
.tk-reply.is-note{border-color:var(--warn);background:var(--warn-50)}
.tk-mode{display:inline-grid;grid-auto-flow:column;align-self:flex-start;padding:3px}
.tk-mode button{border:0;background:none;font:inherit;font-size:.85rem;font-weight:500;color:var(--ink-2);padding:6px 12px;border-radius:calc(var(--r) - 2px);cursor:pointer;display:flex;gap:6px;align-items:center}
.tk-mode button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}
.tk-rate{display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:880px}
.tk-stars button{border:0;background:none;font-size:1.5rem;color:var(--rule-2);cursor:pointer;padding:0 2px;line-height:1}
.tk-stars button.on,.tk-stars:hover button{color:#E8A317}
.tk-stars button:hover ~ button{color:var(--rule-2)}
.tk-admin-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.tk-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:calc(var(--top-h) + 16px)}
.tk-side > .card{margin:0}
.tk-side label{margin:0}
@media (max-width:1000px){.tk-new,.tk-admin-grid{grid-template-columns:1fr}.tk-side{position:static}}
@media (max-width:600px){.tk-bubble{max-width:100%}.tk-when{display:none}}
.pe-docs-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pe-email{display:flex;gap:8px;flex:1 1 320px;margin-left:auto}
.pe-email input{flex:1;min-width:0}
/* v7.13 sign-up fits one screen */
.auth-card:has(.su-form){max-width:min(540px,100%)}
.auth-body:has(.su-form) .auth-form{padding-top:20px;padding-bottom:16px}
.su-head .auth-title{margin-bottom:2px}
.su-head p{margin:0;font-size:.9rem}
.su-ref{margin:12px 0 0}
.su-form{margin-top:14px;padding:16px 18px;gap:10px}
.su-sec{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.su-sec span{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--pri);color:#fff;font-size:.66rem;letter-spacing:0}
.su-sec:not(:first-of-type){margin-top:4px;padding-top:10px;border-top:1px solid var(--rule)}
.su-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.su-grid label{margin:0;font-size:.86rem}
.su-grid .su-span{grid-column:1/-1}
.su-grid input,.su-grid select{height:38px}
.su-grid .pw-meter{margin-top:6px}
.su-grid .help{margin-top:2px;font-size:.76rem}
.su-form .btn-lg{margin-top:4px}
.su-terms{margin:0;font-size:.76rem}
.auth-card:has(.su-form) .auth-switch{margin-top:10px}
.auth-body:has(.su-form) .app-foot{margin-top:8px;padding-top:8px}
@media (max-width:520px){.su-grid:not(.su-pair){grid-template-columns:1fr}.su-form{padding:14px}.su-grid{gap:8px 10px}.auth-body:has(.su-form) .brand-mobile{margin-bottom:8px}}
.adm-filter .adm-toolbar label.check > input{min-width:0;width:auto}.adm-filter .adm-toolbar label.check{color:var(--ink-2)}.tk-side .card.stack{gap:10px}

/* v7.14 sign-up steps */
.su-steps{display:flex;align-items:center;gap:8px;font-size:.74rem;font-weight:600;color:var(--ink-3);margin:0 0 10px}
.su-steps span{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;background:var(--surface-2)}
.su-steps span.on{background:var(--pri-50);color:var(--pri-700)}
.su-steps span.done{color:var(--ok-ink);background:var(--ok-50)}
.su-steps i{flex:0 0 18px;height:1px;background:var(--rule)}

/* v7.14 admin → email */
.em-status{display:flex;align-items:center;gap:14px;padding:14px 18px}
.em-status small{display:block;color:var(--ink-3);font-size:.8rem;margin-top:2px}
.em-dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--warn);box-shadow:0 0 0 4px var(--warn-50)}
.em-dot.ok{background:var(--ok);box-shadow:0 0 0 4px var(--ok-50)}
.em-stats{margin-left:auto;display:flex;align-items:baseline;gap:14px;font-size:.85rem;color:var(--ink-2)}
.em-stats b{font-size:1.1rem;color:var(--ink);margin-right:3px}.em-stats .neg b{color:var(--red)}
.em-stats small{color:var(--ink-3)}
.em-help summary{cursor:pointer;color:var(--pri);font-size:.85rem;font-weight:600}
.em-help table{margin-top:8px}
.em-table td{vertical-align:middle}.em-table input{min-width:0;width:100%}
.em-table tr.is-off td:not(:first-child){opacity:.55}
.em-sig{padding:14px 18px;border-top:1px solid var(--rule)}
.em-sig textarea{max-width:560px}
.em-actions{flex-wrap:wrap}
.em-test{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.em-test select,.em-test input{width:auto;min-width:180px}
@media (max-width:700px){.em-status{flex-wrap:wrap}.em-stats{margin-left:0}.em-test{margin-left:0;width:100%}.em-test select,.em-test input{flex:1}}
.table-compact th,.table-compact td{padding-top:7px;padding-bottom:7px}
.em-sig label{display:flex;flex-direction:column;gap:6px}
.btn.btn-sq{padding-left:0;padding-right:0;width:38px;justify-content:center}
.btn.btn-sq .ic{margin:0}
.export-menu .menu-panel{min-width:190px}

/* v7.14 GSTR-2A / 2B reconciliation */
.reco-period{display:flex;align-items:center;gap:6px}
.reco-period .btn-sq{width:32px;height:32px}
.reco-get{width:min(360px,90vw);padding:0!important;gap:0!important}
.reco-get-sec{padding:14px 16px}
.reco-get-sec + .reco-get-sec{border-top:1px solid var(--rule)}
.reco-get-sec>strong{display:flex;align-items:center;gap:6px;font-size:.88rem}
.reco-itc{display:flex;align-items:center;flex-wrap:wrap;gap:10px 22px;padding:14px 18px;margin-bottom:14px}
.reco-itc>div{display:flex;flex-direction:column}
.reco-itc small{font-size:.74rem;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.reco-itc b{font-size:1.2rem;font-variant-numeric:tabular-nums}
.reco-itc-op{color:var(--ink-3);font-size:.8rem}
.reco-itc-diff{margin-left:auto;padding:6px 12px;border-radius:var(--r);background:var(--surface-2)}
.reco-itc-diff.ok{background:var(--ok-50)}.reco-itc-diff.ok b{color:var(--ok-ink)}
.reco-itc-diff.neg{background:var(--red-50)}.reco-itc-diff.neg b{color:var(--red-ink)}
.reco-itc-diff.warn{background:var(--warn-50)}.reco-itc-diff.warn b{color:var(--warn-ink)}
.reco-itc .help{flex-basis:100%;margin:0}
.reco-head{align-items:flex-start}
.reco-head h3{display:flex;align-items:center;gap:8px}
.reco-bulk{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:10px 18px;background:var(--surface-2);border-bottom:1px solid var(--rule)}
.reco-bulk.has-picks{background:var(--pri-50)}
.reco-bulk-n{font-size:.85rem;color:var(--ink-2)}
.reco-bulk-acct{display:flex;align-items:center;gap:8px;font-size:.85rem;margin:0}
.reco-bulk-acct select{width:auto;min-width:200px}
.reco-bulk .push{margin-left:auto}
th.chk,td.chk{width:34px;padding-right:0!important}
tr.is-picked td{background:var(--pri-50)}
tr.is-ignored td{opacity:.55}
.reco-acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
td.reco-acts{display:table-cell}
.reco-acts .inline,.reco-acts details{display:inline-block;vertical-align:middle;margin-left:4px}
.reco-diff div{white-space:nowrap}
@media (max-width:1100px){.reco-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.reco-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.reco-itc-diff{margin-left:0}.reco-bulk .push{margin-left:0}}

/* v7.14 GST hub */
.gst-tabs{display:flex;gap:4px;border-bottom:1px solid var(--rule);margin:-4px 0 18px;overflow-x:auto;scrollbar-width:none}
.gst-tabs::-webkit-scrollbar{display:none}
.gst-tabs a{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;font-size:.8rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.gst-tabs a:hover{text-decoration:none;color:var(--ink)}
.gst-tabs a.on{color:var(--pri-700);border-bottom-color:var(--pri)}
.gst-tabs .gst-tabs-x{margin-left:auto;text-transform:none;letter-spacing:0;font-weight:500;color:var(--pri)}
.ghub-head{align-items:center}
.ghub-month label{display:inline-flex;flex-direction:row;align-items:center;gap:10px;margin:0;font-size:1rem;color:var(--ink-2);font-weight:500}
.ghub-month label>span{white-space:nowrap}
.ghub-month select{font-weight:700;width:auto;min-width:170px}
.ghub-month .pk-select{min-width:180px;font-weight:700}
.gconn{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;padding:6px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);white-space:nowrap}
.gconn.on{background:var(--ok-50);color:var(--ok-ink)}
a.gconn:hover{text-decoration:none;background:var(--pri-50);color:var(--pri-700)}
.ghub{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.ghub-main{display:flex;flex-direction:column;gap:14px}
.ghub-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:calc(var(--top-h) + 14px)}
.gcard{padding:18px 20px}
.gcard-h{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.gcard-h h3{margin:0;font-size:1.05rem}
.gcard-h p{margin:2px 0 0;color:var(--ink-3);font-size:.84rem}
.gcard-h .push{margin-left:auto}
.gcard-ic{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--pri-50);color:var(--pri-700)}
.gcard-sum{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.gcard-sum .gcard-body{flex:1;min-width:240px}
.gcard-sum h3{margin:0 0 8px;font-size:1.05rem}
.gsum-row{display:flex;flex-wrap:wrap;gap:8px 26px}
.gsum-row span{display:flex;flex-direction:column}
.gsum-row small{font-size:.72rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.gsum-row b{font-size:1.05rem;font-variant-numeric:tabular-nums}
.gflow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;position:relative}
.gflow li{position:relative;padding-right:14px}
.gflow li:not(:last-child)::after{content:"";position:absolute;top:17px;left:44px;right:8px;border-top:2px dashed var(--rule-strong)}
.gflow li.is-done:not(:last-child)::after{border-top-style:solid;border-color:var(--ok)}
.gflow a,.gflow div{display:flex;align-items:flex-start;gap:10px;color:var(--ink);position:relative;z-index:1}
.gflow a:hover{text-decoration:none}
.gflow a:hover b{color:var(--pri)}
.gflow-ic{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;background:var(--surface);border:2px solid var(--rule-strong);color:var(--ink-3)}
.gflow li.is-done .gflow-ic{background:var(--ok);border-color:var(--ok);color:#fff}
.gflow li.is-now .gflow-ic{border-color:var(--pri);color:var(--pri-700);box-shadow:0 0 0 4px var(--pri-50)}
.gflow-t{display:flex;flex-direction:column;padding-top:6px;background:var(--surface);padding-right:8px}
.gflow-t b{font-size:.9rem;font-weight:600}
.gflow-t small{font-size:.78rem;color:var(--ink-3);margin-top:2px}
.gflow li.is-todo .gflow-t b{color:var(--ink-2)}
.gnote{display:flex;align-items:center;gap:10px;margin-top:14px;padding:10px 14px;border-radius:var(--r);background:var(--warn-50);color:var(--warn-ink);font-size:.85rem}
.gnote span{flex:1}
.gcard-foot{margin:12px 0 0}
.gdue,.gact{list-style:none;margin:0;padding:0}
.gdue li a{display:grid;grid-template-columns:auto 1fr;gap:0 8px;padding:10px 16px;border-top:1px solid var(--rule);color:var(--ink);font-size:.86rem}
.gdue li:first-child a{border-top:0}
.gdue li a:hover{text-decoration:none;background:var(--hover)}
.gdue small{grid-column:1/-1;color:var(--ink-3);font-size:.76rem}
.gdue li.is-overdue small{color:var(--red-ink)}
.gdue li.is-due small{color:var(--warn-ink)}
.gact li{padding:9px 16px;border-top:1px solid var(--rule);font-size:.82rem}
.gact li:first-child{border-top:0}
.gact small{display:block;color:var(--ink-3);font-size:.74rem;margin-top:2px}
.ims-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}
.ims-card{display:flex;align-items:center;gap:8px;padding:12px 14px;border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--surface);color:var(--ink-2);font-size:.85rem}
.ims-card b{margin-left:auto;font-size:1.15rem;color:var(--ink);font-variant-numeric:tabular-nums}
.ims-card:hover{text-decoration:none;border-color:var(--rule-strong)}
.ims-card.on{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-50);color:var(--ink)}
.ims-card.k-A .ic{color:var(--ok)}.ims-card.k-R .ic{color:var(--red)}.ims-card.k-P .ic{color:var(--warn)}
.ims-acts{display:inline-flex;gap:6px}
.ims-a .ic{color:var(--ok)}.ims-r .ic{color:var(--red)}.ims-p .ic{color:var(--warn)}
.ims-rem{width:240px;max-width:100%}
.ims-search{padding:10px 18px;border-bottom:1px solid var(--rule)}
.ims-search input{max-width:320px}
.ims-dirty{color:var(--warn);font-size:.8rem;cursor:help}
.ims-save{display:flex;align-items:center;gap:10px}
.ims-save .push{margin-left:auto}
.gpay-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:14px;margin-bottom:14px;align-items:start}
.gpay-table th[scope=row]{font-weight:500;color:var(--ink-2);text-transform:none;letter-spacing:0;font-size:.86rem}
.gpay-cash td,.gpay-cash th{background:var(--surface-2)}
.gpay-short td b{color:var(--red-ink)}
.gpay-off{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--rule)}
.gpay-off .push{margin-left:auto}
.gpay-new{margin-bottom:14px}
.gpay-amts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.gpay-row{align-items:flex-end}
.gpay-row label{margin:0}
.gannual{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}
.gann-list{list-style:none;margin:0;padding:0}
.gann-list li{display:flex;align-items:center;gap:8px;padding:10px 0;border-top:1px solid var(--rule)}
.gann-list li div{display:flex;flex-direction:column}
.gann-list small{color:var(--ink-3);font-size:.78rem}
.gann-t{flex:1;min-width:0}
.gann-b{display:flex;gap:6px;flex:none}
.gannual .card{margin:0}
.filed-pdf{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:0 18px 14px}
.filed-pdf label.btn{margin:0;cursor:pointer}
@media (max-width:1100px){.ghub{grid-template-columns:1fr}.ghub-side{position:static}.ims-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.gpay-grid{grid-template-columns:1fr}.gpay-amts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.gflow{grid-template-columns:1fr;gap:12px}.gflow li::after{display:none}.ims-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.gpay-amts{grid-template-columns:repeat(2,minmax(0,1fr))}.gannual{grid-template-columns:1fr}.gst-tabs .gst-tabs-x{margin-left:0}}

/* v7.14 TCS on invoices */
.tcs-pick{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tcs-pick select{width:auto;max-width:230px;padding-top:4px;padding-bottom:4px;font-size:.84rem}
.tcs-pick .tcs-rate{width:74px;padding-top:4px;padding-bottom:4px}

/* v7.14 reports: ratios, exceptions, budgets */
.ratio-kpis{display:flex;flex-wrap:wrap;gap:12px 28px;padding:14px 0 6px;border-bottom:1px solid var(--rule);margin-bottom:6px}
.ratio-kpis>div{display:flex;flex-direction:column}
.ratio-kpis small{font-size:.72rem;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.ratio-kpis b{font-size:1.2rem;font-variant-numeric:tabular-nums}
.ratio-h{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:20px 0 10px}
.ratio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.ratio{border:1px solid var(--rule);border-radius:var(--r-lg);padding:12px 14px;position:relative;break-inside:avoid}
.ratio::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--rule-strong)}
.ratio.is-ok::before{background:var(--ok)}.ratio.is-warn::before{background:var(--warn)}.ratio.is-bad::before{background:var(--red)}
.ratio-top{display:flex;justify-content:space-between;gap:6px;font-size:.84rem;font-weight:600;color:var(--ink-2)}
.ratio-top small{font-weight:400;font-size:.72rem;white-space:nowrap}
.ratio>b{display:block;font-size:1.45rem;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.ratio-prev{font-size:.78rem;color:var(--ink-3)}
.ratio p{margin:6px 0 0;font-size:.78rem;color:var(--ink-3);line-height:1.4}
.exc-sum{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.exc-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;border:1px solid var(--rule);font-size:.8rem;color:var(--ink-2)}
.exc-pill:hover{text-decoration:none}
.exc-pill.ok{color:var(--ok-ink);background:var(--ok-50);border-color:transparent}
.exc-pill.has b{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--surface-2);color:var(--ink);font-size:.74rem}
.exc-pill.has.lvl-high{border-color:var(--red);color:var(--red-ink)}.exc-pill.has.lvl-high b{background:var(--red);color:#fff}
.exc-pill.has.lvl-medium{border-color:var(--warn);color:var(--warn-ink)}.exc-pill.has.lvl-medium b{background:var(--warn);color:#fff}
.exc-clean{display:flex;align-items:center;gap:8px;color:var(--ok-ink);font-weight:600}
.exc-sec{margin-top:18px;break-inside:avoid}
.exc-sec h3{display:flex;align-items:center;gap:8px;font-size:1rem;margin:0 0 2px}
.exc-sec .help{margin:0 0 8px}
.tax-parts{margin:14px 0}
.bva .bva-bar{display:inline-block;width:calc(100% - 46px);height:8px;border-radius:4px;background:var(--surface-2);vertical-align:middle;overflow:hidden}
.bva .bva-bar i{display:block;height:100%;background:var(--ok);border-radius:4px}
.bva .bva-bar.is-bad i{background:var(--red)}
.bva small{display:inline-block;width:40px;text-align:right;font-size:.76rem;color:var(--ink-2)}
.bud-start{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:12px 18px;margin-bottom:14px}
.bud-start>span{align-self:center;display:flex;align-items:center;gap:6px}
.bud-start label{margin:0}
.bud-head{padding:16px 18px}
.bud-wrap{max-height:none}
.bud-grid th small{display:block;font-weight:400;color:var(--ink-3);font-size:.68rem}
.bud-grid td{padding:4px 4px}
.bud-grid input{min-width:84px;padding:5px 6px;text-align:right;font-variant-numeric:tabular-nums}
.bud-grid .bud-acct{position:sticky;left:0;background:var(--surface);z-index:1;min-width:190px;padding-left:16px}
.bud-grid .bud-tot{background:var(--surface-2)}
.bud-grid .bud-tot input{background:var(--surface);font-weight:600}
.bud-grid tfoot td{font-weight:700;border-top:2px solid var(--rule-strong)}

.rep-search{display:flex;align-items:center;gap:8px;border:1px solid var(--rule-strong);border-radius:var(--r);background:var(--surface);padding:0 10px;margin:0;min-width:280px}
.rep-search input{border:0;box-shadow:none;background:transparent;padding:8px 0}
.rep-search:focus-within{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-50)}
.rep-grid .card[hidden]{display:none}

/* v7.14 portal-wide: no spinner arrows on amount fields (they crowd the figures and change values on scroll) */
input[type=number]{-moz-appearance:textfield;appearance:textfield}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.bud-grid td{vertical-align:middle}

.msme-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;font-size:.66rem;font-weight:700;letter-spacing:.05em;color:#7C3AED;background:#F3E8FF;vertical-align:middle;cursor:help}

/* v7.14 plans: savings and feature groups */
.pf-sub{display:flex;align-items:center;gap:6px;margin:16px 0 8px;font-weight:600;font-size:.86rem}
.pf-savings{margin-top:10px;padding:10px 12px;border-radius:var(--r);background:var(--ok-50);color:var(--ok-ink);font-size:.85rem;line-height:1.6}
.pf-savings s{color:var(--ink-3)}
.pf-group + .pf-group{margin-top:14px;padding-top:12px;border-top:1px solid var(--rule)}
.pf-group-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.pf-group-h strong{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}
.pf-group-h .check{margin:0}

.plan-card{position:relative}
.plan-badge{position:absolute;top:-10px;right:14px;background:var(--warn);color:#fff;font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:999px;letter-spacing:.03em}
.plan-mrp{font-size:.85rem;color:var(--ink-3);margin-top:4px}.plan-mrp b{color:var(--ok-ink);margin-left:4px}
.plan-save{display:inline-block;margin:4px 0 2px;padding:2px 8px;border-radius:6px;background:var(--ok-50);color:var(--ok-ink);font-size:.78rem;font-weight:600}
.ap-offer{font-size:.8rem;color:var(--ink-3);margin-top:4px}

/* v7.14 manual journal and templates */
.jv-form{overflow:visible}
.jv-head{display:grid;grid-template-columns:200px 200px minmax(0,1fr);gap:14px 16px;padding:18px 20px;border-bottom:1px solid var(--rule);align-items:end}
.jv-head label{margin:0}
.jv-head .jv-name{grid-column:1/3}
.jv-head .jv-notes{grid-column:auto}
.jv-head .jv-open{grid-column:1/-1;align-self:center}
.jv-form[data-template] .jv-head{grid-template-columns:minmax(0,1fr) 200px minmax(0,1fr)}
.jv-form[data-template] .jv-head .jv-name{grid-column:auto}
.jv-wrap{padding:0;overflow:visible}
.jv-lines{width:100%;border-collapse:collapse}
.jv-lines th{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600;text-align:left;padding:10px 8px;background:var(--surface-2);border-bottom:1px solid var(--rule)}
.jv-lines th:first-child,.jv-lines td:first-child{padding-left:20px}
.jv-lines th.num{text-align:right}
.jv-lines td{padding:8px;border-bottom:1px solid var(--rule);vertical-align:middle}
.jv-lines .jv-acct{width:28%;min-width:220px}
.jv-lines .jv-ct{width:20%;min-width:170px}
.jv-lines .jv-amt{width:130px}
.jv-lines .jv-x{width:44px;text-align:center;padding-right:14px}
.jv-lines input.num-in{text-align:right;font-variant-numeric:tabular-nums}
.btn-x{border:0;background:transparent;color:var(--ink-3);width:30px;height:30px;border-radius:6px;display:inline-grid;place-items:center;cursor:pointer}
.btn-x:hover{background:var(--red-50);color:var(--red-ink)}
.jv-foot{display:flex;align-items:center;gap:16px;padding:12px 20px;flex-wrap:wrap}
.jv-totals{margin-left:auto;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.jv-t{display:flex;flex-direction:column;align-items:flex-end}
.jv-t small{font-size:.7rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.jv-t b{font-size:1.05rem;font-variant-numeric:tabular-nums}
.jv-diff{padding:6px 12px;border-radius:999px;font-size:.84rem;font-weight:600;white-space:nowrap}
.jv-diff.is-empty{background:var(--surface-2);color:var(--ink-3)}
.jv-diff.is-ok{background:var(--ok-50);color:var(--ok-ink)}
.jv-diff.is-bad{background:var(--red-50);color:var(--red-ink)}
.jv-tip{padding:0 20px 12px}
.jv-tip summary{cursor:pointer;font-size:.84rem;color:var(--ink-3);display:inline-flex;align-items:center;gap:6px}
.jv-tip .help{margin:6px 0 0}
.jv-actions{padding:14px 20px;border-top:1px solid var(--rule);margin:0;align-items:center;flex-wrap:wrap}
.jv-actions .push{margin-left:auto}
.jv-save-tpl{margin:0}
.jv-tpl-name{width:220px}
@media (max-width:900px){.jv-head{grid-template-columns:1fr 1fr}.jv-head .jv-notes,.jv-head .jv-name{grid-column:1/-1}.jv-form[data-template] .jv-head{grid-template-columns:1fr 1fr}.jv-wrap{overflow-x:auto}.jv-lines{min-width:820px}.jv-totals{margin-left:0}}
.jt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.jt-card{display:flex;flex-direction:column;gap:8px;margin:0}
.jt-card header{display:flex;align-items:center;gap:8px}
.jt-card h3{margin:0;font-size:1rem}
.jt-card p{margin:0}
.jt-lines{width:100%;font-size:.85rem;border-collapse:collapse}
.jt-lines td{padding:5px 0;border-top:1px solid var(--rule)}
.jt-side{display:inline-block;width:24px;font-size:.7rem;font-weight:700;color:var(--ink-3)}
.jt-side.cr{color:var(--pri)}
.jt-card footer{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:6px}
.jt-acts{margin-left:auto;display:flex;gap:6px}
/* v7.14 small phones: the refer button lives in the account menu, so the search has room */
@media (max-width:420px){.refer-btn{display:none}}
.menu-refer{display:none!important}
@media (max-width:420px){.menu-refer{display:flex!important}}

/* ---------------- v7.15: payment edit, receipts, posting statement lines, contra entries ---------------- */
.shake{animation:shake .5s}
.warn-ink{color:var(--warn-ink)}
.pay-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);overflow:hidden;margin-bottom:16px}
.pay-strip > div{background:var(--surface);box-shadow:0 0 0 .5px var(--rule);padding:12px 16px;display:flex;flex-direction:column;gap:2px;min-width:0}
.pay-strip .lbl,.stmt-line .lbl,.contra-flow .lbl{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.pay-strip strong{font-size:1.02rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.receipt-card{padding:28px 32px;max-width:900px}
.receipt-card .rx{background:transparent}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .receipt-card{background:#fff;color:#1C2B33}}
:root[data-theme="dark"] .receipt-card{background:#fff;color:#1C2B33}
.stmt-line{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 18px;border-left:4px solid var(--pri);margin-bottom:16px}
.stmt-line > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.stmt-line > div.right{align-items:flex-end;text-align:right}
.stmt-line strong{font-size:1rem}.stmt-line strong.big{font-size:1.35rem}
.stmt-line .pos,.post-ic.pos{color:var(--ok-ink)}.stmt-line .neg,.post-ic.neg{color:var(--red-ink)}
.section-title{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:22px 0 10px}
.post-options{display:grid;gap:10px}
.post-opt{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:14px 18px;transition:border-color .15s,box-shadow .15s}
.post-opt:hover{border-color:var(--pri);box-shadow:0 4px 14px -8px rgba(16,24,40,.25)}
.post-ic{width:44px;height:44px;border-radius:12px;background:var(--pri-50);color:var(--pri-ink);display:grid;place-items:center}
.post-ic .ic{width:22px;height:22px}
.post-body p{margin:2px 0 0;color:var(--ink-2);font-size:.88rem}
.post-guess{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.post-opt > .btn{white-space:nowrap}
.pill-ok{background:var(--ok-50);color:var(--ok-ink)}
.seg-btn{border:0;background:transparent;color:var(--ink-2);padding:7px 14px;border-radius:6px;font:inherit;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.seg-btn:hover{color:var(--ink)}
.seg-btn.on{background:var(--surface);color:var(--pri-ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.contra-flow{display:grid;grid-template-columns:1fr 40px 1fr;gap:12px;align-items:end}
.contra-flow > label{margin:0}
.contra-arrow{display:grid;place-items:center;height:40px;color:var(--pri);border-radius:50%;background:var(--pri-50)}
.contra-flow.view{align-items:center}
.contra-flow.view > div{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--rule);border-radius:var(--r-lg)}
.contra-flow.view .contra-arrow{height:auto;width:auto;background:none;border:0;padding:0;gap:2px;font-weight:600;font-size:.85rem}
.contra-flow.view strong{font-size:1.05rem}
.contra-other{display:flex;flex-direction:column;gap:6px;padding:10px 14px;background:var(--pri-50);border-radius:var(--r)}
.contra-preview .table{max-width:520px;margin-top:4px}
.contra-preview .table td:first-child{width:40px;font-weight:600;color:var(--ink-3)}
.contra-card .kv{max-width:760px}
@media (max-width:640px){
  .contra-flow{grid-template-columns:1fr}
  .contra-arrow{height:28px;width:28px;margin:0 auto;transform:rotate(90deg)}
  .contra-flow.view .contra-arrow{transform:none}
  .post-opt{grid-template-columns:40px 1fr}
  .post-opt > .btn{grid-column:1/-1;justify-content:center}
  .stmt-line{flex-direction:column;align-items:stretch}.stmt-line > div.right{align-items:flex-start;text-align:left}
  .receipt-card{padding:18px 16px}
}
.card > .form-actions.flush:last-child{margin-bottom:-18px}
/* v7.15 save bars that sit under a list (opening balances): a full bar with room below the buttons, never cut at the window edge */
.form-actions.sticky-actions{margin:18px 0 0;padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));background:var(--bar-bg);backdrop-filter:blur(8px);border:1px solid var(--rule);border-bottom:0;border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:0 -6px 16px -10px rgba(33,38,60,.22);z-index:10}
.form-actions.sticky-actions .help.push{margin-left:auto;max-width:520px}
@media (max-width:640px){.form-actions.sticky-actions{margin:14px -16px 0;border-radius:0;border-left:0;border-right:0}.form-actions.sticky-actions .help.push{margin-left:0}}
/* a save bar under stacked cards (not inside one) keeps to the page width instead of bleeding past the gutter */
.form-actions:not(.card .form-actions):not(.sticky-actions):not(.auth-card .form-actions):not(dialog .form-actions){margin:20px 0 0;border:1px solid var(--rule);border-radius:var(--r-lg)}
@media (max-width:600px){.fin-map-bar .fm-btns .btn{flex:1 1 auto;white-space:normal;min-width:0}}
.key-file{display:block;margin-top:6px}.key-file input[type=file]{font-size:.85rem}
/* v7.17 invoice / bill import */
.imp-card{max-width:860px}
.imp-drop{display:grid;grid-template-columns:44px 1fr;gap:4px 14px;align-items:center;padding:18px;border:1.5px dashed var(--rule-strong);border-radius:var(--r-lg);background:var(--surface-2);cursor:pointer;margin:0}
.imp-drop:hover{border-color:var(--pri)}
.imp-drop > span:nth-child(2){display:flex;flex-direction:column;gap:2px}
.imp-drop small{color:var(--ink-3);font-weight:400}
.imp-drop input[type=file]{grid-column:1/-1;margin-top:6px}
.imp-help{max-width:860px;margin-top:16px}
.imp-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border:1px solid var(--rule);border-radius:var(--r-lg);overflow:hidden;margin-bottom:16px;background:var(--surface)}
.imp-sum > div{padding:12px 16px;display:flex;flex-direction:column;gap:2px;box-shadow:0 0 0 .5px var(--rule);min-width:0}
.imp-sum .lbl{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.imp-sum strong{font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.imp-sum .pos{color:var(--ok-ink)}.imp-sum .neg{color:var(--red-ink)}
.imp-st{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%}
.imp-st.ok{background:var(--ok-50);color:var(--ok-ink)}.imp-st.bad{background:var(--red-50);color:var(--red-ink)}
.imp-table tr.imp-bad td{background:color-mix(in srgb,var(--red-50) 45%,transparent)}
.imp-notes{min-width:220px;max-width:420px}
.menu-panel{max-width:calc(100vw - 16px)}
@media (max-width:640px){.stmt-delall{position:static;margin:0;display:flex;justify-content:flex-end;padding:4px 10px;border-bottom:1px solid var(--rule);background:var(--surface-2)}}

/* ---------------- v7.18 phones and tablets (portrait): list tables as cards ----------------
   title ……… amount
   party · date · [status]
   Label value · Label value
   (roles and labels are set by app.js from the column headings; columns hidden with "Columns" stay hidden) */
@media (max-width:820px){
  .table-wrap:has(> table.m-cards),.card:has(> table.m-cards){overflow:visible}
  table.m-cards{display:block;width:100%;min-width:0 !important}
  table.m-cards thead{display:none}
  table.m-cards tbody,table.m-cards tfoot{display:block}
  table.m-cards tr{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:3px;padding:12px 14px;border-bottom:1px solid var(--rule);position:relative}
  table.m-cards tr::after{content:'';order:2;flex-basis:100%;height:0}
  table.m-cards td,table.m-cards tfoot td{display:block;padding:0 !important;border:0 !important;min-width:0;white-space:normal;background:none;text-align:left;font-size:.84rem;color:var(--ink-2);order:3;line-height:1.35}
  table.m-cards td.m-empty{display:none}
  table.m-cards td[data-m=check]{order:0;flex:0 0 auto;align-self:center;margin-right:2px}
  table.m-cards td[data-m=title]{order:1;flex:1 1 0;font-size:.98rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
  table.m-cards td[data-m=title] a{font-weight:600}
  table.m-cards td[data-m=amount]{order:1;flex:0 0 auto;margin-left:auto;font-weight:700;color:var(--ink);font-size:.96rem;white-space:nowrap;text-align:right}
  table.m-cards td[data-m=sub]{color:var(--ink-2)}
  table.m-cards td[data-m=sub] ~ td[data-m=sub]::before{content:'· ';color:var(--ink-3)}
  table.m-cards td[data-m=status]{order:3}
  table.m-cards td[data-m=meta][data-label]::before{content:attr(data-label) ' ';color:var(--ink-3);font-size:.76rem;text-transform:none}
  table.m-cards td[data-m=meta]{white-space:nowrap}
  table.m-cards td[data-m=actions]{order:4;flex-basis:100%;display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
  table.m-cards td[data-m=actions]:empty{display:none}
  table.m-cards tbody tr[data-href]{cursor:pointer}
  table.m-cards tbody tr:active{background:var(--hover)}
  table.m-cards tfoot tr{background:var(--surface-2);font-weight:600}
  table.m-cards tfoot td{color:var(--ink)}
  table.m-cards tr.group-row td{font-weight:700;color:var(--pri-ink)}
}
/* v7.18 phones: invoice / bill line editor — each line a small card instead of a 940px-wide row */
@media (max-width:640px){
  .table-wrap:has(> #lines-table){overflow:visible}
  #lines-table{min-width:0;table-layout:auto;display:block}
  #lines-table thead tr{display:flex;align-items:center}
  #lines-table thead th:not(.c-item){display:none}
  #lines-table thead th.c-item{display:flex;align-items:center;justify-content:space-between;width:100%;border-radius:var(--r) var(--r) 0 0}
  #lines-table tbody{display:block}
  #lines-table tr.line{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 8px;padding:12px 12px 10px;border-bottom:1px solid var(--rule)}
  #lines-table tr.line > td{display:block;padding:0;border:0;min-width:0;width:auto;order:2}
  #lines-table tr.line > td.c-item{grid-column:span 5;order:0}
  #lines-table tr.line > td.c-x{grid-column:span 1;order:1;display:flex;justify-content:flex-end;align-items:flex-start}
  #lines-table tr.line > td.c-hsn,#lines-table tr.line > td.c-acct{grid-column:span 3}
  #lines-table tr.line > td.c-qty,#lines-table tr.line > td.c-unit,#lines-table tr.line > td.c-rate,
  #lines-table tr.line > td.c-disc,#lines-table tr.line > td.c-tax,#lines-table tr.line > td.c-cess{grid-column:span 2}
  #lines-table tr.line > td.amt{grid-column:1 / -1;order:3;text-align:right;font-weight:700;padding-top:2px;color:var(--ink)}
  #lines-table tr.line > td::before{display:block;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin-bottom:3px}
  #lines-table td.c-hsn::before{content:'HSN / SAC'}#lines-table td.c-acct::before{content:'Account'}#lines-table td.c-qty::before{content:'Qty'}
  #lines-table td.c-unit::before{content:'Unit'}#lines-table td.c-rate::before{content:'Rate'}#lines-table td.c-disc::before{content:'Disc %'}
  #lines-table td.c-tax::before{content:'GST'}#lines-table td.c-cess::before{content:'Cess %'}
  #lines-table tr.line > td.amt::before{content:'Taxable';display:inline;margin:0 8px 0 0;font-weight:600}
  #lines-table td input,#lines-table td select,#lines-table td textarea{font-size:16px}   /* no zoom on focus (iOS) */
}
/* v7.18 phones: journal lines as cards — account (and remove), description, contact, debit | credit */
@media (max-width:640px){
  .table-wrap:has(> .jv-lines),.jv-wrap:has(> .jv-lines){overflow:visible}
  table.jv-lines{display:block;min-width:0 !important;width:100%}
  table.jv-lines thead{display:none}
  table.jv-lines tbody,table.jv-lines tfoot{display:block}
  table.jv-lines tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;padding:12px;border-bottom:1px solid var(--rule)}
  table.jv-lines tbody td{display:block;padding:0 !important;border:0 !important;min-width:0;width:auto !important}
  table.jv-lines td.jv-acct{grid-column:1 / 3}
  table.jv-lines td.jv-x{grid-column:3;grid-row:1;display:flex;align-items:flex-start}
  table.jv-lines td.jv-desc,table.jv-lines td.jv-ct{grid-column:1 / -1}
  table.jv-lines td.jv-amt::before{display:block;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin-bottom:3px}
  table.jv-lines td.jv-amt:nth-of-type(4)::before{content:'Debit'}
  table.jv-lines td.jv-amt:nth-of-type(5)::before{content:'Credit'}
  table.jv-lines td.jv-amt:nth-of-type(5){grid-column:2 / 4}
  table.jv-lines td input,table.jv-lines td select{width:100%;font-size:16px}
}
/* v7.18 phones: TDS / TCS year grid — each statement with its four quarters in a 2 × 2 grid */
@media (max-width:640px){
  .card:has(> table.tds-grid),.table-wrap:has(> table.tds-grid){overflow:visible}
  table.tds-grid{display:block;min-width:0 !important}
  table.tds-grid thead{display:none}
  table.tds-grid tbody{display:block}
  table.tds-grid tr{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px;border-bottom:1px solid var(--rule)}
  table.tds-grid td{display:block;padding:0 !important;border:0 !important;min-width:0}
  table.tds-grid td:first-child{grid-column:1 / -1}
  table.tds-grid td:not(:first-child)::before{display:block;font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin-bottom:3px}
  table.tds-grid td:nth-child(2)::before{content:'Q1 · Apr–Jun'}table.tds-grid td:nth-child(3)::before{content:'Q2 · Jul–Sep'}
  table.tds-grid td:nth-child(4)::before{content:'Q3 · Oct–Dec'}table.tds-grid td:nth-child(5)::before{content:'Q4 · Jan–Mar'}
  table.tds-grid .tds-cell{min-height:0}
}
/* v7.18 phones: typing boxes at 16px so iPhones don't zoom the page when one is tapped; bigger tap targets */
@media (max-width:640px){
  input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,.pk-trigger,.pk-date-input{font-size:16px !important}
  .btn{min-height:40px}
  .btn-sm{min-height:34px}
  input[type=checkbox],input[type=radio]{width:20px;height:20px}
  .page-head .actions{gap:8px}
}
.file-chosen{display:inline-flex;align-items:center;gap:4px;margin-left:8px;font-size:.84rem;color:var(--ok-ink);font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-drop.has-file span{overflow-wrap:anywhere}
.rec-done{display:flex;gap:14px;align-items:flex-start}
/* v7.18 bank statement: search, totals, one Post button + a menu per line */
.stmt-search{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px;margin:0 0 12px}
.stmt-search .stmt-q{position:relative;flex:1 1 260px;margin:0}
.stmt-search .stmt-q .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}
.stmt-search .stmt-q input{padding-left:32px;margin:0}
.stmt-search .stmt-d{display:flex;align-items:center;gap:6px;margin:0;font-size:.86rem;color:var(--ink-3)}
.stmt-search .stmt-d input,.stmt-search .stmt-d .pk-date{margin:0;width:150px}
.stmt-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border:1px solid var(--rule);border-radius:var(--r-lg);overflow:hidden;margin-bottom:12px;background:var(--surface)}
.stmt-sum > div{padding:10px 14px;display:flex;flex-direction:column;gap:2px;box-shadow:0 0 0 .5px var(--rule)}
.stmt-sum .lbl{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.stmt-sum strong{font-size:1rem}.stmt-sum .pos{color:var(--ok-ink)}.stmt-sum .neg{color:var(--red-ink)}
.stmt-bulkbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--rule);background:var(--surface-2)}
.stmt-bulkbar .stmt-bulk{padding:0;border:0;background:none}
.stmt-table td.num.neg{color:var(--red-ink)}.stmt-table td.num.pos{color:var(--ok-ink)}
.stmt-table .stmt-narr{display:block;font-weight:500;color:var(--ink);overflow-wrap:anywhere}
.stmt-table .stmt-ref{display:block}
.stmt-acts{display:flex;align-items:center;justify-content:flex-end;gap:4px}
.stmt-acts .menu{display:inline-block}
.stmt-acts .btn-icon:hover{background:var(--hover);color:var(--ink)}
.stmt-acts .btn-icon{padding:6px 8px}
@media (max-width:640px){.stmt-search .stmt-d{flex:1 1 140px}.stmt-search .stmt-d input,.stmt-search .stmt-d .pk-date{width:100%}}
/* "Allocated to": one line instead of a box */
.alloc-card{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 16px}
.alloc-card .alloc-card-head{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.alloc-card .alloc-card-head .card-title{font-size:.9rem}
.alloc-card .alloc-chips{flex:1 1 240px;margin:0}
.alloc-card .alloc-edit{flex:0 0 auto}
.alloc-card .alloc-edit[open]{flex-basis:100%}
.alloc-card .alloc-card-head .push{order:3}

/* journal: running balance under each account */
.jv-bal{font-size:11.5px;color:var(--ink-3);margin-top:3px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.jv-bal strong{color:var(--ink);font-weight:600}

/* not registered under GST: sales documents have no tax columns */
.no-gst .c-tax,.no-gst .c-cess{display:none!important}
.nogst-note{display:flex;gap:6px;align-items:center}

/* invoice-wise opening balance */
.ob-docs td{vertical-align:top}
.ob-docs input{width:100%}
.ob-docs .help{display:block;font-size:11.5px}
.ob-foot{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px;border-top:1px solid var(--rule);flex-wrap:wrap}
.ob-sums{display:flex;gap:22px;align-items:flex-end;flex-wrap:wrap}
.ob-sums>div,.ob-adv{display:flex;flex-direction:column;gap:3px;text-align:right}
.ob-sums .lbl{font-size:11.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em}
.ob-adv input{width:150px;text-align:right}
.ob-iw{width:110px;text-align:right}
@media (max-width:640px){
  .ob-docs thead{display:none}
  .ob-docs tr{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border-bottom:1px solid var(--rule)}
  .ob-docs td{display:block;padding:0!important;border:0!important}
  .ob-docs td.jv-x{grid-column:2;text-align:right}
  .ob-sums{width:100%;justify-content:space-between}
  .ob-sums>div,.ob-adv{text-align:left}
}

/* alias used by older rules */
:root{--muted:var(--ink-3);--line:var(--rule)}

/* practice (tax consultant) dashboard */
.prac-setup{max-width:640px}
.prac-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.prac-kpi{display:flex;flex-direction:column;gap:4px;padding:14px 16px;margin:0!important}
.prac-kpi .lbl{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}
.prac-kpi strong{font-size:1.25rem}
.prac-bar{display:block;height:6px;border-radius:4px;background:var(--chip);overflow:hidden;margin-top:4px}
.prac-bar span{display:block;height:100%;background:var(--pri)}
.prac-bar-top{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.prac-search input{min-width:220px}
.prac-table .menu{display:inline-block}
.prac-table form.inline{display:inline}
.prac-plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:10px}
.prac-plan{display:flex;flex-direction:column;gap:6px}
.prac-plan.is-current{outline:2px solid var(--pri)}
.prac-price{font-size:1.2rem;font-weight:700}
@media (max-width:820px){.prac-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.prac-search,.prac-search input{width:100%;min-width:0}}
#ob-docs .form-actions{padding:14px 16px;margin:0;flex-wrap:wrap}
.ob-docs .ob-amt{text-align:right}
@media (max-width:820px){.prac-table .menu-panel{right:auto;left:0}}
.err-lines{margin:6px 0;padding-left:18px}.err-lines li{margin:2px 0}
/* 2A / 2B reconciliation table */
@media (min-width:821px){th.chk,td.chk{display:table-cell!important;vertical-align:middle}}
.reco-table td{vertical-align:middle}
.reco-actbar{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:nowrap}
.reco-actbar form,.reco-actbar details,.reco-actbar .inline{display:inline-flex;margin:0}
.reco-actbar .btn{white-space:nowrap}
.reco-get select{width:100%}
@media (max-width:820px){.reco-actbar{justify-content:flex-start;flex-wrap:wrap}}
.apilog-pre{max-height:420px;overflow:auto;background:var(--surface-2);border:1px solid var(--rule);border-radius:8px;padding:10px;font-size:12px;white-space:pre-wrap;word-break:break-all}
.pager-btns{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
/* e-invoice card: forms open in place (no floating pop-up over the other column) */
.compliance-card .btn-row{flex-wrap:wrap}
.compliance-card details.inline-pop[open]{display:block;flex-basis:100%;width:100%}
.compliance-card details.inline-pop[open] > .pop-form{position:static;left:auto;right:auto;top:auto;width:100%;max-width:none;margin-top:8px;box-shadow:none;border:1px solid var(--rule);background:var(--surface-2);z-index:auto}

/* v7.21: bank register fits its card — long narrations and references wrap, amounts never do */
.bank-ledger{width:100%}
.bank-ledger col.c-date{width:108px}.bank-ledger col.c-type{width:120px}.bank-ledger col.c-ref{width:15%}
.bank-ledger th{white-space:nowrap}
.wrap-any{overflow-wrap:anywhere;word-break:break-word}
.stmt-table .stmt-narr,.stmt-table .stmt-ref{overflow-wrap:anywhere}
.acct-switch-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:2px 6px 2px 0;margin:0;cursor:pointer;color:var(--ink);border-radius:6px}
.acct-switch-btn h1{margin:0}
.acct-switch-btn:hover{background:var(--hover,rgba(0,0,0,.04))}
.acct-switch .menu-panel{min-width:280px;max-height:60vh;overflow:auto}
.back-btn[hidden]{display:none}
.back-btn{margin-left:6px}
.gpay-sub th{font-weight:400;color:var(--ink-3,#777);padding-left:28px}
.gpay-sub td{color:var(--ink-3,#777)}
.gpay-note{margin:10px 18px 0;line-height:1.5}
/* v7.22: guided filing — one next step at a time */
.next-step{display:grid;gap:12px}
.ns-block{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--rule);border-radius:var(--r);background:var(--surface-2)}
.ns-block .help{margin:0}
.doc-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.doc-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.92rem}
.doc-list li form{margin-left:auto}
.ns-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--rule);padding-top:10px}
.ns-foot .help{margin:0;display:inline-flex;align-items:center;gap:6px}
.gpay-src{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:10px 18px 0}
.gpay-src .help{margin:0}
.gpay-pmt-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr)) auto;gap:10px;align-items:end;margin:8px 0 12px}
@media (max-width: 900px){.gpay-pmt-form{grid-template-columns:1fr 1fr}}
.gpay-pmt09{margin-bottom:16px}
.gen2b{display:grid;gap:8px;margin-top:10px;padding:10px;border:1px dashed var(--rule-2);border-radius:var(--r)}
/* v7.24.1: the Get GSTR-2B / 2A panel stays inside the window and scrolls, above the cards */
.reco-get{max-height:calc(100vh - 150px);overflow-y:auto;overscroll-behavior:contain;z-index:80;box-shadow:var(--shadow-pop);top:calc(100% + 8px)}
.reco-get .gen2b{margin:10px 0 0}
@media (max-width: 700px){.reco-get{position:fixed!important;left:12px!important;right:12px!important;top:auto!important;bottom:12px;width:auto;max-height:75vh}}
.sandbox-note{margin:10px 0}
.ims-month{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px}
.ims-month .ghub-month{margin:0}
.file-ways{display:flex;gap:18px;flex-wrap:wrap}
.evc-box .way-api{display:none}
.evc-box[data-way="api"] .way-api{display:grid;gap:8px}
.evc-box[data-way="api"] .way-evc{display:none}
.way-evc{display:grid;gap:8px}
.ns-tools{margin-top:12px;border-top:1px solid var(--rule);padding-top:10px}
.ns-tools>summary{cursor:pointer;font-weight:600;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}
.ns-tools-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ns-tool-res{margin-top:12px;padding:12px;border:1px solid var(--rule);border-radius:var(--r);background:var(--bg-2,transparent);max-height:420px;overflow:auto}
.ns-tool-res dl.kv{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:4px 14px;margin:8px 0 0}
.ns-tool-res dl.kv dt{color:var(--ink-3);font-size:.86rem}
.ns-tool-res dl.kv dd{margin:0}
.ns-tool-res dl.kv dl.kv{margin:0}
.btn-danger-ghost{color:var(--red,#c62828);border-color:currentColor;background:transparent}
.ns-tool-res dl.kv dd:has(.table-wrap),.ns-tool-res dl.kv dd:has(dl.kv){grid-column:1/-1}
.ns-tool-res .table-wrap{overflow-x:auto}
.ns-tool-res td,.ns-tool-res th{white-space:nowrap}

/* ===================== Tax filing: clients, return editor, imports ===================== */
.text-danger{color:var(--red-ink)}
.mt-sm{margin-top:8px}
.note-box{background:var(--surface-2);border:1px solid var(--rule);border-radius:var(--r);padding:10px 12px;color:var(--ink-2);font-size:.93em}
.note-box .ic{vertical-align:-3px;color:var(--pri)}
.sub-title{font-size:.8rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:22px 0 10px;padding-top:14px;border-top:1px solid var(--rule)}
.sub-title:first-child,.itr-sec-head + fieldset > .sub-title:first-child{margin-top:4px;padding-top:0;border-top:0}
.sub-title .small{text-transform:none;letter-spacing:0;font-weight:400}
.menu-item.danger{color:var(--red-ink)}.menu-item.danger .ic{color:var(--red)}

/* client header */
.client-head .client-id{display:flex;gap:14px;align-items:center}
.client-avatar{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-weight:700;font-size:1.05rem;background:var(--pri-50);color:var(--pri-ink);flex:none;letter-spacing:.02em}
.client-avatar.kind-huf{background:var(--warn-50);color:var(--warn-ink)}
.client-avatar.kind-firm,.client-avatar.kind-llp{background:var(--ok-50);color:var(--ok-ink)}
.client-avatar.kind-company{background:#efeafe;color:#5b3fc4}
.client-avatar.kind-trust,.client-avatar.kind-aop,.client-avatar.kind-boi,.client-avatar.kind-cooperative{background:var(--red-50);color:var(--red-ink)}
.name-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px}
.group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.upload-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.upload-row > label{flex:1 1 220px}

/* return list */
.status-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin-bottom:14px}
.status-board a{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--rule);border-radius:var(--r);background:var(--surface);color:var(--ink-2);transition:border-color .15s,box-shadow .15s}
.status-board a:hover{text-decoration:none;border-color:var(--rule-strong);box-shadow:var(--shadow-1)}
.status-board a span{font-size:.8rem}
.status-board a strong{font-size:1.25rem;color:var(--ink);font-weight:650}
.status-board a.on{border-color:var(--pri);box-shadow:0 0 0 1px var(--pri) inset;background:var(--pri-50)}
.status-board .st-amber strong{color:var(--warn-ink)}.status-board .st-green strong{color:var(--ok-ink)}.status-board .st-red strong{color:var(--red-ink)}.status-board .st-violet strong{color:#5b3fc4}.status-board .st-blue strong{color:var(--pri-ink)}

/* return editor */
.itr-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--surface);margin-bottom:16px;overflow:hidden}
.itr-strip > div{padding:12px 16px;border-left:1px solid var(--rule);display:flex;flex-direction:column;gap:2px}
.itr-strip > div:first-child{border-left:0}
.itr-strip span{font-size:.8rem;color:var(--ink-3)}
.itr-strip strong{font-size:1.12rem;font-weight:650;font-variant-numeric:tabular-nums}
.itr-strip .good{background:var(--ok-50)}.itr-strip .good strong{color:var(--ok-ink)}
.itr-strip .bad{background:var(--red-50)}.itr-strip .bad strong{color:var(--red-ink)}
.itr-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;align-items:start}
.itr-nav{position:sticky;top:76px;display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:6px}
.itr-nav a{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--r-sm);color:var(--ink-2);font-size:.93rem}
.itr-nav a .ic{color:var(--ink-3);flex:none}
.itr-nav a span{flex:1;min-width:0}
.itr-nav a:hover{background:var(--hover);text-decoration:none;color:var(--ink)}
.itr-nav a.on{background:var(--pri-50);color:var(--pri-ink);font-weight:600}
.itr-nav a.on .ic{color:var(--pri)}
.itr-nav em{font-style:normal;font-size:.72rem;font-weight:700;min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:grid;place-items:center}
.dot-err{background:var(--red-50);color:var(--red-ink)}.dot-warn{background:var(--warn-50);color:var(--warn-ink)}
.itr-main{min-width:0}
.itr-sec{padding:0}
.itr-sec > fieldset{border:0;margin:0;padding:6px 20px 18px;min-width:0}
.itr-sec > .alert{margin:0 20px 10px}
.itr-sec-head{padding:16px 20px 8px}
.itr-sec-head h2{font-size:1.15rem;margin:0;display:flex;gap:8px;align-items:center}
.itr-sec-head h2 .ic{color:var(--pri)}
.itr-sec-head p{margin:4px 0 0}
.itr-sec-foot{display:flex;gap:8px;align-items:center;padding:12px 20px;border-top:1px solid var(--rule);background:var(--surface-2);border-radius:0 0 var(--r-lg) var(--r-lg);position:sticky;bottom:0;z-index:4}
fieldset[disabled] input,fieldset[disabled] select,fieldset[disabled] textarea{opacity:.85}
.rows-block + .sub-title{margin-top:26px}
.row-card{border:1px solid var(--rule);border-radius:var(--r);padding:12px 14px 14px;margin-bottom:12px;background:var(--surface);transition:border-color .15s}
.row-card:focus-within{border-color:var(--pri-100)}
.row-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.row-card .sub-title{margin:14px 0 8px;padding-top:10px}
.table-edit td{padding:4px 4px;vertical-align:middle}
.table-edit th{white-space:nowrap;font-size:.78rem}
.table-edit input,.table-edit select{margin:0;min-width:90px}
.table-edit input.num{min-width:110px}
.table-edit td.center input{min-width:0}
.check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.check-list li{display:flex;gap:8px;align-items:flex-start;font-size:.93rem;line-height:1.4}
.check-list li .ic{flex:none;margin-top:2px}
.check-list .lvl-error .ic{color:var(--red)}.check-list .lvl-warn .ic{color:var(--warn)}.check-list .lvl-info .ic{color:var(--pri)}
.check-list a{white-space:nowrap}
.regime-cmp{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.regime-cmp > div{border:1px solid var(--rule);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.regime-cmp strong{font-size:1.3rem;font-weight:650}
.regime-cmp .best{border-color:var(--ok);background:var(--ok-50)}
.regime-cmp .chosen{box-shadow:0 0 0 1px var(--pri) inset}
.table-compact td,.table-compact th{padding:6px 8px}
.table tr.total td{font-weight:650;border-top:1px solid var(--rule-strong)}
.comp-paper{max-width:900px;padding:28px 32px}
.comp-paper .table td{padding:5px 8px}
.comp .indent{padding-left:22px}.comp .indent2{padding-left:40px;color:var(--ink-2)}
.comp tr.sum td{font-weight:650;border-top:1px solid var(--rule-strong)}
.comp .group-row td{background:var(--surface-2);font-weight:650}
.comp-id td{padding:5px 8px}
.calc-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}
.pop{position:relative;display:inline-block}
.pop > summary{list-style:none}.pop > summary::-webkit-details-marker{display:none}
.pop[open] > .pop-form{position:absolute;z-index:30;top:calc(100% + 6px);left:0;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow-pop);padding:12px;display:flex;flex-direction:column;gap:8px;min-width:240px}
@media (max-width: 1100px){
  .itr-layout{grid-template-columns:1fr}
  .itr-nav{position:static;flex-direction:row;overflow-x:auto;scrollbar-width:thin}
  .itr-nav a{white-space:nowrap}
  .itr-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .itr-strip > div:nth-child(4){border-left:0}
  .itr-strip > div:nth-child(n+4){border-top:1px solid var(--rule)}
  .status-board{grid-template-columns:repeat(4,minmax(0,1fr))}
  .calc-grid{grid-template-columns:1fr}
}
@media (max-width: 700px){
  .name-row{grid-template-columns:1fr}
  .itr-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .itr-strip > div{border-left:0;border-top:1px solid var(--rule)}
  .itr-strip > div:nth-child(-n+2){border-top:0}
  .itr-strip > div:nth-child(even){border-left:1px solid var(--rule)}
  .status-board{grid-template-columns:repeat(2,minmax(0,1fr))}
  .regime-cmp{grid-template-columns:1fr}
  .comp-paper{padding:18px 14px}
}
.card fieldset{border:0;margin:0;padding:0;min-width:0}
.table-edit td.w2 input{min-width:220px}
.table-edit td select{min-width:150px}
.rows-block.is-empty .table-wrap{display:none}
.ais-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}
.import-cards{align-items:stretch}
.import-cards .card{display:flex;flex-direction:column;gap:10px}
.import-cards .card .form-actions{margin-top:auto}
.import-cards label{display:flex;flex-direction:column;gap:6px}
.steps-list{margin:0;padding-left:18px;color:var(--ink-2);display:flex;flex-direction:column;gap:4px}
@media (max-width: 1100px){.ais-grid{grid-template-columns:1fr}}
.phase-card{max-width:860px}
.phase-head{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.phase-head p{margin:2px 0 0}
.phase-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.phase-list li{display:flex;gap:10px;align-items:flex-start}
.phase-list li .ic{color:var(--ok);margin-top:3px;flex:none}
.phase-list li div{display:flex;flex-direction:column;gap:2px}
.phase-list li span{color:var(--ink-2);font-size:.93rem}
.cell-client{min-width:240px}

/* ---------------- GST (Phase 2) ---------------- */
.status-board.gst-board{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:760px){.status-board.gst-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gst-grid td{vertical-align:middle}
.gst-grid .gcal-chip{max-width:260px}
.gst-year th[scope=row]{vertical-align:top;padding-top:14px;width:200px}
.gst-year-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;padding:6px 0}
.gst-year-cell{display:flex;flex-direction:column;gap:3px;min-width:0}
.gst-year-cell .gcal-chip{padding:6px 10px}
.gst-file-card{margin-bottom:16px}
.gst-file-card .ns-block{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-top:1px solid var(--rule)}
.gst-adjust{display:flex;flex-direction:column;gap:10px}
.adj-row{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--rule)}
.adj-row > strong{font-size:.86rem;font-weight:600}
.adj-heads{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:6px}
.adj-heads label{display:flex;flex-direction:column;gap:2px;margin:0;font-size:.74rem;color:var(--ink-3)}
.adj-heads input{text-align:right}
.adj-pair{flex-direction:row;gap:12px}.adj-pair label{flex:1}
.adj-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
.adj-grid label{display:flex;flex-direction:column;gap:3px;font-size:.84rem;margin:0}
.adj-grid input{text-align:right}
@media (max-width:600px){.adj-grid{grid-template-columns:1fr}}
.gst-items input.num,.gst-doc-form input.num{text-align:right;min-width:90px}
.gst-items select{min-width:76px}
.radio-list{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.radio-list legend{font-weight:600;margin-bottom:4px;font-size:.9rem}
.gst-2b-get{display:flex;flex-direction:column;gap:12px;padding:14px 16px;margin-bottom:14px}
.reco-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:14px}
@media (max-width:1000px){.reco-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.reco-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.reco-card{display:flex;flex-direction:column;gap:2px;padding:10px 12px;margin:0;color:var(--ink-2);border-left:3px solid var(--rule-strong);transition:box-shadow .15s,border-color .15s}
a.reco-card:hover{text-decoration:none;box-shadow:var(--shadow-1)}
.reco-card .label{font-size:.78rem}.reco-card strong{font-size:1.3rem;color:var(--ink);font-weight:650}.reco-card .sub{font-size:.76rem;color:var(--ink-3)}
.reco-card.on{box-shadow:0 0 0 1px var(--pri) inset;background:var(--pri-50)}
.reco-card.is-green{border-left-color:var(--ok)}.reco-card.is-amber{border-left-color:var(--warn)}.reco-card.is-blue{border-left-color:var(--pri)}
.reco-card.is-red{border-left-color:var(--red)}.reco-card.is-violet{border-left-color:#7c5ce0}.reco-card.is-itc{border-left-color:var(--ink-3)}
.reco-table td{vertical-align:top}
.reco-link-row td{background:var(--pri-50)}
.gst-docs td{vertical-align:top}
.gst-docs tr.muted td{opacity:.6}
.gst-table th:nth-child(2),.gst-table td:nth-child(2){min-width:260px;width:42%}
.gst-table td.num{white-space:nowrap}
.gst-adjust-wrap{margin-bottom:16px}
.gst-adjust-wrap > summary{list-style:none}.gst-adjust-wrap > summary::-webkit-details-marker{display:none}
.gst-adjust-wrap[open] > summary{margin-bottom:8px}
.gst-adjust .adj-heads{grid-template-columns:repeat(4,minmax(0,1fr))}
.gst-docs .mono,.reco-table .mono,.gst-grid .mono{white-space:nowrap}
.gst-docs td:nth-child(3){min-width:200px}
.reco-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.reco-row .help{margin:0}
.reco-cards > .card{margin:0 !important}
