/*! FINEX — (c) IMAGYNEX (https://www.imagynex.com). Proprietary. Unauthorized copying or reuse prohibited. */
/* ============================================================
   FINEX — Smart Accounting & Financial Statements
   Visual identity: petroleum steel (RIGNEX) + finance green
   Self-hosted fonts · strict CSP safe · light/dark
   BY IMAGYNEX
   ============================================================ */

/* ---------- Self-hosted fonts ---------- */
@font-face{font-family:'Inter';font-weight:400;font-display:swap;src:url('../fonts/inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-weight:500;font-display:swap;src:url('../fonts/inter-500.woff2') format('woff2');}
@font-face{font-family:'Inter';font-weight:600;font-display:swap;src:url('../fonts/inter-600.woff2') format('woff2');}
@font-face{font-family:'Inter';font-weight:700;font-display:swap;src:url('../fonts/inter-700.woff2') format('woff2');}
@font-face{font-family:'Inter';font-weight:800;font-display:swap;src:url('../fonts/inter-800.woff2') format('woff2');}
@font-face{font-family:'Plex Ar';font-weight:400;font-display:swap;src:url('../fonts/plex-ar-400.woff2') format('woff2');}
@font-face{font-family:'Plex Ar';font-weight:500;font-display:swap;src:url('../fonts/plex-ar-500.woff2') format('woff2');}
@font-face{font-family:'Plex Ar';font-weight:600;font-display:swap;src:url('../fonts/plex-ar-600.woff2') format('woff2');}
@font-face{font-family:'Plex Ar';font-weight:700;font-display:swap;src:url('../fonts/plex-ar-700.woff2') format('woff2');}
@font-face{font-family:'JB Mono';font-weight:500;font-display:swap;src:url('../fonts/mono-500.woff2') format('woff2');}
@font-face{font-family:'JB Mono';font-weight:600;font-display:swap;src:url('../fonts/mono-600.woff2') format('woff2');}

:root{
  /* GRCR night: charcoal base, restaurant red, gold */
  --bg:#181818; --bg-2:#111111; --surface:#121212; --surface-2:#1d1d1d; --surface-3:#2a2a2a; --raise:#303030;
  --border:rgba(255,255,255,.08); --border-2:rgba(255,255,255,.14);
  --text:#f4f4f4; --text-dim:#b9b9b9; --text-mute:#808080; --text-faint:#4d4d4d;

  /* brand accent (variable names kept for compatibility) */
  --green:#e31f26; --green-bright:#f0353b; --green-dim:#b5151b; --green-soft:rgba(227,31,38,.13);
  --brand:#e31f26;
  --gold:#d9b44a; --gold-soft:rgba(217,180,74,.13);

  --teal:#d9b44a; --teal-soft:rgba(217,180,74,.12);
  --danger:#ff5c61; --danger-soft:rgba(255,92,97,.12);
  --ok:#4cc38a; --ok-soft:rgba(76,195,138,.12);
  --warn:#f0a43a; --warn-soft:rgba(240,164,58,.12);
  --info:#d9b44a; --info-soft:rgba(217,180,74,.12);

  --sidebar-w:250px; --header-h:62px; --radius:11px; --radius-sm:8px;
  --shadow:0 14px 40px rgba(0,0,0,.45);
  --font-en:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-ar:'Plex Ar','Segoe UI',Tahoma,sans-serif;
  --font-mono:'JB Mono','SF Mono',Consolas,monospace;
}

/* GRCR day: white base, black text, red and gold */
html.light{
  --bg:#f5f4f1; --bg-2:#ffffff; --surface:#ffffff; --surface-2:#f6f4ef; --surface-3:#ebe7df; --raise:#e2ddd3;
  --border:rgba(0,0,0,.09); --border-2:rgba(0,0,0,.17);
  --text:#111111; --text-dim:#3d3d3d; --text-mute:#6f6f6f; --text-faint:#a3a3a3;
  --green:#d7191f; --green-bright:#c8141a; --green-dim:#a51116; --green-soft:rgba(215,25,31,.09);
  --brand:#d7191f; --gold:#a8831c; --gold-soft:rgba(168,131,28,.12);
  --teal:#a8831c; --teal-soft:rgba(168,131,28,.12); --danger:#c8141a; --danger-soft:rgba(200,20,26,.09);
  --ok:#1e8a55; --ok-soft:rgba(30,138,85,.12); --warn:#b26b06; --warn-soft:rgba(178,107,6,.12);
  --info:#8a6b12; --info-soft:rgba(168,131,28,.12);
  --shadow:0 10px 30px rgba(0,0,0,.08);
}
/* light-mode component contrast fixes */
html.light .chip.ok{color:#127349;} html.light .chip.warn{color:#8a5c12;} html.light .chip.danger{color:#b02f2f;} html.light .chip.info{color:#1f6a8c;}
html.light .demo-banner{color:#8a5c12;} html.light .note{color:#1f5568;} html.light .note.warn{color:#8a5c12;}
html.light .kpi-delta.delta-up{color:#0f8f57;} html.light .nav-badge.new{color:#0f8f57;}
html.light .brand-text .name .fin,html.light .name .fin{color:#0f1c28;}

*{margin:0;padding:0;box-sizing:border-box;}
svg{width:18px;height:18px;flex-shrink:0;}
html,body{height:100%;}
body{
  background:var(--bg); color:var(--text);
  font-family:var(--font-en); font-size:14px; line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
body[dir="rtl"]{font-family:var(--font-ar);}
.mono-keep{font-family:var(--font-mono);}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
em{font-style:normal;color:var(--green-bright);}
::selection{background:rgba(227,31,38,.3);}
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-track{background:var(--bg-2);}
::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:5px;}

/* ---------- Top floating controls (login) ---------- */
.top-controls{display:flex;align-items:center;gap:10px;}
.top-controls.floating{position:fixed;top:18px;inset-inline-end:22px;z-index:20;}
.lang-toggle{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:9px;
  background:var(--surface);border:1px solid var(--border);color:var(--text-dim);font-size:12.5px;font-weight:600;}
.lang-toggle:hover{color:var(--text);border-color:var(--border-2);}
.topbar-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;
  background:var(--surface);border:1px solid var(--border);color:var(--text-dim);}
.topbar-icon:hover{color:var(--green-bright);border-color:var(--green-soft);}
.theme-toggle .ic-moon{display:none;}
html.light .theme-toggle .ic-sun{display:none;}
html.light .theme-toggle .ic-moon{display:grid;}

/* ============================================================ LOGIN */
.login-body{min-height:100vh;display:flex;flex-direction:column;}
.login-wrap{flex:1;display:grid;grid-template-columns:1.05fr 1fr;min-height:0;}
.login-brandside{position:relative;overflow:hidden;padding:56px;display:flex;flex-direction:column;justify-content:space-between;
  background:radial-gradient(120% 80% at 0% 0%, rgba(227,31,38,.12) 0%, transparent 52%),linear-gradient(160deg,var(--bg-2) 0%,var(--bg) 100%);
  border-inline-end:1px solid var(--border);}
.login-brandside::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);
  background-size:44px 44px;-webkit-mask-image:radial-gradient(80% 80% at 70% 30%,#000 0,transparent 75%);mask-image:radial-gradient(80% 80% at 70% 30%,#000 0,transparent 75%);}
.brand-hero{position:relative;z-index:1;}
.brand-hero h2{font-size:34px;font-weight:800;letter-spacing:-.5px;line-height:1.2;margin-bottom:14px;}
.brand-hero p{color:var(--text-dim);font-size:14px;max-width:44ch;line-height:1.7;}
.brand-stats{position:relative;z-index:1;display:flex;gap:34px;}
.brand-stats .n{font-size:24px;font-weight:800;color:var(--green-bright);}
.brand-stats .l{font-size:11.5px;color:var(--text-mute);margin-top:2px;}
.login-formside{background:var(--surface);display:flex;align-items:center;justify-content:center;padding:40px;}
.login-card{width:100%;max-width:370px;}
.login-card h1{font-size:24px;font-weight:700;letter-spacing:-.4px;margin-bottom:6px;}
.login-card .sub{color:var(--text-dim);font-size:13px;margin-bottom:28px;}
.login-mobile-brand{display:none;align-items:center;gap:11px;margin-bottom:26px;}
.login-mobile-brand img{width:40px;height:40px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:12px;font-weight:600;color:var(--text-dim);margin-bottom:7px;}
.field input,.field select{width:100%;padding:12px 14px;border-radius:var(--radius-sm);background:var(--bg);
  border:1px solid var(--border-2);color:var(--text);font-family:inherit;font-size:14px;}
.field input:focus,.field select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft);}
.field-row{display:flex;justify-content:space-between;align-items:center;margin:6px 0 22px;font-size:13px;color:var(--text-dim);}
.rem{display:inline-flex;align-items:center;gap:8px;cursor:pointer;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:var(--radius-sm);
  font-weight:700;font-size:13.5px;border:1px solid transparent;color:var(--text);background:var(--surface-2);white-space:nowrap;}
.btn svg{width:17px;height:17px;}
.btn-primary{background:linear-gradient(150deg,var(--green),var(--green-dim));color:#ffffff;box-shadow:0 6px 18px rgba(227,31,38,.3);}
.btn-primary svg{color:#ffffff;}
.btn-primary:hover{filter:brightness(1.08);}
.btn-ghost{background:transparent;border-color:var(--border-2);color:var(--text-dim);}
.btn-lg{width:100%;padding:13px;font-size:15px;margin-top:6px;}

/* ============================================================ APP SHELL */
.app{display:flex;min-height:100vh;}
.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--bg-2);border-inline-end:1px solid var(--border);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;}
.sidebar-head{padding:18px 18px 14px;border-bottom:1px solid var(--border);}
.brand-mark{display:flex;align-items:center;gap:12px;}
.brand-logo{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;color:var(--green-bright);}
.brand-logo svg{width:100%;height:100%;display:block;fill:currentColor;}
.brand-logo img{display:none;}
.brand-text .name{font-size:20px;font-weight:800;letter-spacing:1px;line-height:1;}
.name .fin{color:var(--text);} .name .ex{color:var(--green-bright);}
.brand-text .tg{font-size:10.5px;color:var(--text-mute);margin-top:4px;white-space:nowrap;max-width:175px;overflow:hidden;text-overflow:ellipsis;}

.sidebar-nav{flex:1;overflow-y:auto;padding:10px 12px;}
.nav-group{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);padding:12px 10px 6px;}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;color:var(--text-dim);
  font-size:13.5px;font-weight:500;position:relative;transition:.14s;}
.nav-item svg{width:19px;height:19px;color:var(--text-mute);}
.nav-item:hover{background:rgba(255,255,255,.04);color:var(--text);}
html.light .nav-item:hover{background:rgba(16,32,50,.05);}
.nav-item:hover svg{color:var(--green-bright);}
.nav-item span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nav-item.active{background:var(--green-soft);color:var(--text);font-weight:700;}
.nav-item.active svg{color:var(--green-bright);}
.nav-item.active::before{content:"";position:absolute;inset-inline-start:0;inset-block:7px;width:3px;border-radius:3px;background:var(--green-bright);}
.nav-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;background:var(--surface-3);color:var(--text-dim);}
.nav-badge.new{background:var(--green-soft);color:var(--green-bright);}

.sidebar-logout{display:flex;align-items:center;gap:11px;margin:8px 14px 16px;padding:11px 13px;border-radius:10px;
  border:1px solid var(--border);background:rgba(255,255,255,.02);color:var(--text-dim);font-size:13.5px;font-weight:600;}
.sidebar-logout svg{width:18px;height:18px;}
.sidebar-logout:hover{border-color:rgba(226,85,85,.3);color:#f0a4a4;background:rgba(226,85,85,.06);}

.backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:35;}
.backdrop.show{display:block;}

.main-col{flex:1;min-width:0;display:flex;flex-direction:column;}

/* ---------- Topbar ---------- */
.topbar{height:var(--header-h);display:flex;align-items:center;gap:14px;padding:0 22px;
  border-bottom:1px solid var(--border);background:var(--bg-2);position:sticky;top:0;z-index:30;}
.menu-btn{display:none;width:38px;height:38px;place-items:center;border-radius:9px;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);}
.topbar-logo{display:none;width:30px;height:30px;color:var(--green-bright);}
.topbar-logo svg{width:100%;height:100%;display:block;fill:currentColor;}
.topbar-logo{display:none;}
.crumbs{font-size:13.5px;color:var(--text-dim);white-space:nowrap;}
.crumbs b{color:var(--text);}
.crumbs .sep{color:var(--text-faint);margin:0 4px;}
.searchbox{flex:0 1 230px;display:flex;align-items:center;gap:9px;padding:8px 13px;border-radius:9px;
  background:var(--surface);border:1px solid var(--border);color:var(--text-mute);}
.searchbox svg{width:16px;height:16px;}
.searchbox input{flex:1;background:transparent;border:0;outline:0;color:var(--text);font-family:inherit;font-size:13px;}
.ic-xs{width:13px;height:13px;} .ic-sm{width:16px;height:16px;}
.top-controls{margin-inline-start:auto;}

/* Company switcher */
.co-switch{position:relative;}
.co-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:9px;background:var(--surface);
  border:1px solid var(--border);color:var(--text);font-size:12.5px;font-weight:600;}
.co-btn svg{width:16px;height:16px;color:var(--green-bright);}
.co-btn .co-name{white-space:nowrap;}
.co-btn:hover{border-color:var(--green-soft);}
.co-panel{display:none;position:absolute;inset-block-start:calc(100% + 8px);inset-inline-end:0;width:280px;z-index:40;
  background:var(--surface);border:1px solid var(--border-2);border-radius:12px;box-shadow:var(--shadow);padding:7px;}
.co-panel.open{display:block;}
.co-panel-head{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);padding:8px 10px 6px;}
.co-opt{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--text-dim);font-size:13px;width:100%;background:none;border:0;text-align:start;font-family:inherit;cursor:pointer;}
.co-opt svg{width:16px;height:16px;color:var(--text-mute);}
.co-opt:hover{background:rgba(255,255,255,.04);color:var(--text);}
html.light .co-opt:hover{background:rgba(16,32,50,.05);}
.co-opt.on{color:var(--text);font-weight:700;}
.co-opt.on svg:first-child{color:var(--green-bright);}
.co-check{margin-inline-start:auto;color:var(--green-bright);}

.avatar{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;
  background:linear-gradient(150deg,var(--green),var(--green-dim));color:#eafff5;font-weight:800;font-size:13px;letter-spacing:.5px;}

/* bell + notifications */
.bell-wrap{position:relative;}
.bell-count{position:absolute;top:-4px;inset-inline-end:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;
  background:var(--danger);color:#fff;font-size:9.5px;font-weight:800;display:grid;place-items:center;}
.notif-panel{width:320px;padding:0;overflow:hidden;}
.notif-head{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);}
.notif-head svg{color:var(--green-bright);} .notif-head h4{font-size:13px;}
.notif-item{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-bottom:1px solid var(--border);}
.notif-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none;}
.notif-ic.warn{background:var(--warn-soft);color:var(--warn);} .notif-ic.danger{background:var(--danger-soft);color:var(--danger);} .notif-ic.ok{background:var(--ok-soft);color:var(--ok);}
.notif-body{flex:1;min-width:0;} .notif-body .nt{font-size:12.5px;font-weight:700;} .notif-body .nd{font-size:11.5px;color:var(--text-dim);margin-top:2px;}
.notif-item .nm{font-size:10.5px;color:var(--text-faint);white-space:nowrap;}
.notif-foot{display:block;text-align:center;padding:11px;font-size:12px;font-weight:700;color:var(--green-bright);}
.notif-foot:hover{background:var(--green-soft);}

/* print letterhead (screen-hidden) */
.print-head{display:none;}

/* ---------- Content ---------- */
.content{flex:1;padding:22px;}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.page-head .titles h1{font-size:20px;font-weight:700;letter-spacing:-.3px;}
.page-head .titles p{margin-top:5px;font-size:12.5px;color:var(--text-dim);max-width:72ch;line-height:1.6;}
.actions{flex-shrink:0;}

.demo-banner{display:flex;align-items:center;gap:9px;padding:11px 14px;border-radius:10px;margin-bottom:18px;
  background:var(--warn-soft);border:1px solid rgba(214,169,74,.22);color:#e6c583;font-size:12.5px;}
.demo-banner svg{width:16px;height:16px;flex-shrink:0;}

/* ---------- KPI ---------- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:14px;margin-bottom:20px;}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;position:relative;overflow:visible;}
.kpi::before{content:"";position:absolute;inset-inline-start:0;inset-block:12px;width:3px;border-radius:3px;background:var(--accent,var(--green));}
.kpi.tone-green{--accent:var(--green-bright);} .kpi.tone-teal{--accent:var(--teal);} .kpi.tone-danger{--accent:var(--danger);}
.kpi.tone-info{--accent:var(--info);} .kpi.tone-warn{--accent:var(--warn);} .kpi.tone-ok{--accent:var(--ok);}
.kpi-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.kpi-icn{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--green-soft);color:var(--accent,var(--green-bright));}
.kpi-icn svg{width:19px;height:19px;}
.kpi-val{font-size:18px;font-weight:800;letter-spacing:-.4px;white-space:nowrap;}
.kpi-label{font-size:12px;color:var(--text-dim);margin-top:4px;}
.kpi-delta{font-size:11.5px;font-weight:700;display:inline-flex;align-items:center;gap:3px;margin-top:8px;}
.kpi-delta svg{width:13px;height:13px;}
.delta-up{color:var(--green-bright);} .delta-down{color:var(--warn);}

/* Amount */
.amt{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap;}
.amt-n{font-weight:700;font-variant-numeric:tabular-nums;}
.amt-c{font-size:.7em;font-weight:600;color:var(--text-mute);letter-spacing:.04em;}

/* ---------- Panels ---------- */
.grid{display:grid;gap:16px;} .g-2{grid-template-columns:1fr 1fr;} .g-3{grid-template-columns:2fr 1fr;}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden;}
.panel-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);}
.panel-head svg{width:18px;height:18px;color:var(--green-bright);}
.panel-head h3{font-size:14px;font-weight:700;flex:1;}
.panel-head .link{font-size:12px;color:var(--text-dim);}
.panel-body{padding:16px;} .panel-body.flush{padding:0;}

/* ---------- Tabs ---------- */
.tabs{display:flex;gap:5px;padding:12px 16px 0;flex-wrap:wrap;}
.tab{padding:8px 15px;border-radius:8px 8px 0 0;font-size:12.5px;font-weight:700;color:var(--text-dim);background:transparent;border:0;display:inline-flex;align-items:center;gap:7px;}
.tab .cnt{font-size:10px;padding:1px 7px;border-radius:20px;background:var(--surface-3);color:var(--text-dim);}
.tab.active{color:var(--text);background:var(--surface-2);}
.tab.active .cnt{background:var(--green-soft);color:var(--green-bright);}
.tab-panel{display:none;} .tab-panel.active{display:block;}

/* ---------- Tables (RTL-safe) ---------- */
.table-wrap{overflow-x:auto;}
table.tbl{width:100%;border-collapse:collapse;min-width:620px;}
.tbl thead th{font-size:11px;font-weight:700;color:var(--text-dim);text-align:start;padding:12px 16px;
  border-bottom:1px solid var(--border);background:rgba(255,255,255,.015);white-space:nowrap;letter-spacing:.02em;}
html.light .tbl thead th{background:rgba(16,32,50,.02);}
.tbl tbody td{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle;}
.tbl tbody tr:last-child td{border-bottom:0;}
.tbl tbody tr:hover{background:rgba(255,255,255,.02);}
html.light .tbl tbody tr:hover{background:rgba(16,32,50,.02);}
.tbl th,.tbl td{min-width:84px;}
.tbl .num,.tbl th.num{text-align:end;font-variant-numeric:tabular-nums;}
.tbl .nowrap{white-space:nowrap;}
.tbl .jobid,.tbl .code{font-family:var(--font-mono);color:var(--text-dim);font-size:12px;}
.tbl tfoot td{padding:12px 16px;border-top:1px solid var(--border-2);font-weight:800;background:rgba(255,255,255,.02);}
html.light .tbl tfoot td{background:rgba(16,32,50,.02);}
.col-desc{min-width:220px;max-width:340px;}
.col-desc .desc{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.row-actions{display:inline-flex;gap:6px;}
.icon-btn{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--text-mute);
  border:1px solid var(--border);background:transparent;}
.icon-btn:hover{color:var(--green-bright);border-color:var(--green-soft);}
.icon-btn svg{width:15px;height:15px;}

/* ---------- Chips / badges ---------- */
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap;border:1px solid transparent;}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;}
.chip:has(svg)::before{display:none;}
.chip.ok{color:#7ee0b0;background:var(--ok-soft);border-color:rgba(67,196,120,.22);}
.chip.warn{color:#e6c583;background:var(--warn-soft);border-color:rgba(214,169,74,.22);}
.chip.danger{color:#eda0a0;background:var(--danger-soft);border-color:rgba(226,85,85,.22);}
.chip.info{color:#9fd0e2;background:var(--info-soft);border-color:rgba(75,163,199,.22);}
.chip.muted{color:var(--text-dim);background:rgba(255,255,255,.05);border-color:var(--border);}

/* ---------- Bars (dashboard) ---------- */
.bars{display:flex;align-items:flex-end;gap:10px;height:170px;padding-top:6px;}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;}
.bar-group{display:flex;align-items:flex-end;justify-content:center;gap:4px;width:100%;flex:1;min-height:0;}
.bar{width:9px;border-radius:4px 4px 2px 2px;min-height:3px;}
.bar-income{background:linear-gradient(180deg,var(--green-bright),var(--green));}
.bar-expense{background:var(--surface-3);}
.bar-x{font-size:10px;color:var(--text-mute);}
.legend{display:flex;gap:16px;font-size:12px;color:var(--text-dim);}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-inline-end:6px;vertical-align:middle;}
.legend .li-income{background:var(--green-bright);} .legend .li-expense{background:var(--surface-3);}

/* progress */
.progress{height:8px;border-radius:6px;background:rgba(255,255,255,.07);overflow:hidden;}
html.light .progress{background:rgba(16,32,50,.08);}
.progress>span{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--green),var(--green-bright));}
.feat{display:flex;gap:12px;align-items:flex-start;}
.feat-ic{width:38px;height:38px;border-radius:10px;flex:none;display:grid;place-items:center;background:var(--green-soft);color:var(--green-bright);}
.feat h4{font-size:13px;margin-bottom:3px;} .feat p{font-size:12px;color:var(--text-dim);line-height:1.5;}
.feat-between{justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.import-txt{flex:1;} .import-btn{flex:none;}
.dir-in{color:var(--green-bright);display:inline-flex;vertical-align:middle;} .dir-out{color:var(--warn);display:inline-flex;vertical-align:middle;}
.ref-link{display:inline-flex;align-items:center;gap:5px;color:var(--info);font-weight:600;font-size:12px;}
.ready-grid{grid-template-columns:repeat(3,1fr);} .ready-card::before{display:none;}
.ready-card{padding:15px;} .h2sz{font-size:15px;}

/* notes */
.note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:11px;font-size:12.5px;line-height:1.6;
  background:var(--info-soft);border:1px solid rgba(75,163,199,.2);color:#bcdae7;}
.note.warn{background:var(--warn-soft);border-color:rgba(214,169,74,.22);color:#e6c583;}
.note svg{width:17px;height:17px;flex:none;margin-top:1px;}
.note strong{color:var(--text);}
.mb{margin-bottom:16px;} .mt{margin-top:16px;}

/* ---------- KPI grid sizes / chart columns ---------- */
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.head-chips{margin-top:10px;margin-bottom:0;} .chip svg{width:13px;height:13px;}

/* ---------- Settings (sections + roles) ---------- */
.set-list{display:flex;flex-direction:column;}
.set-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--border);}
.set-row:last-child{border-bottom:0;}
.set-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--green-soft);color:var(--green-bright);flex:none;}
.set-meta{flex:1;} .set-meta .t{font-size:13.5px;font-weight:600;} .set-meta .d{font-size:11.5px;color:var(--text-mute);}
.set-core{font-size:10.5px;color:var(--text-faint);font-weight:700;letter-spacing:.05em;}
.switch{position:relative;width:44px;height:24px;flex:none;}
.switch input{opacity:0;width:0;height:0;position:absolute;}
.switch .track{position:absolute;inset:0;border-radius:20px;background:var(--surface-3);transition:.18s;cursor:pointer;}
.switch .track::before{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;inset-block:3px;inset-inline-start:3px;transition:.18s;}
.switch input:checked + .track{background:var(--green);}
.switch input:checked + .track::before{inset-inline-start:23px;}
.switch input:disabled + .track{opacity:.4;cursor:not-allowed;}
.role-badge{display:inline-flex;align-items:center;gap:7px;font-weight:700;}
.role-badge svg{width:15px;height:15px;color:var(--green-bright);}
.cap-yes{color:var(--green-bright);display:inline-flex;} .cap-no{color:var(--text-faint);}
.sub-head{border-top:1px solid var(--border);}

/* ---------- Modal ---------- */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:60;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.open{display:flex;}
.modal{width:100%;max-width:520px;background:var(--surface);border:1px solid var(--border-2);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;}
.modal-head{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border);}
.modal-head svg{width:19px;height:19px;color:var(--green-bright);}
.modal-head h3{flex:1;font-size:15px;}
.modal-head .close{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:transparent;border:1px solid var(--border);color:var(--text-dim);}
.modal-body{padding:18px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-grid .full{grid-column:1 / -1;}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--border);}

/* ---------- Footer ---------- */
.app-footer{padding:16px;text-align:center;border-top:1px solid var(--border);}
.app-footer a{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--text-mute);}
.app-footer a span{color:var(--green-bright);}
.login-foot{border-top:0;}

/* ---------- PWA install pill ---------- */
.install-pill{display:none;position:fixed;inset-block-end:20px;inset-inline-start:20px;z-index:55;
  align-items:center;gap:8px;padding:11px 16px;border-radius:30px;border:1px solid var(--green-soft);
  background:linear-gradient(150deg,var(--green-bright),var(--green));color:#06231a;font-weight:700;font-size:13px;
  box-shadow:0 10px 26px rgba(227,31,38,.34);}
.install-pill.show{display:inline-flex;}
.install-pill svg{width:17px;height:17px;}

/* toast */
.toast{position:fixed;inset-block-end:22px;inset-inline:0;margin-inline:auto;width:max-content;max-width:88vw;z-index:70;
  display:flex;align-items:center;gap:9px;padding:12px 18px;border-radius:12px;opacity:0;transform:translateY(12px);
  pointer-events:none;transition:.2s;background:var(--surface-3);border:1px solid var(--green-soft);color:var(--text);
  font-size:13px;font-weight:600;box-shadow:var(--shadow);}
.toast.show{opacity:1;transform:translateY(0);}
.toast::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green-bright);flex:none;}

/* iOS install hint */
.ios-hint{display:none;position:fixed;inset-block-end:18px;inset-inline:14px;margin-inline:auto;max-width:440px;z-index:65;
  align-items:center;gap:10px;padding:12px 14px;border-radius:13px;background:var(--surface);border:1px solid var(--green-soft);
  box-shadow:var(--shadow);color:var(--text);font-size:12.5px;}
.ios-hint.show{display:flex;}
.ios-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--green-soft);color:var(--green-bright);flex:none;}
.ios-txt{flex:1;line-height:1.5;} .ios-share{font-size:14px;}
.ios-x{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:transparent;border:1px solid var(--border);color:var(--text-dim);flex:none;}

/* ---------- Placeholder inline art ---------- */
.mini-stat{display:flex;align-items:center;gap:12px;padding:14px 16px;}
.mini-stat .n{font-size:22px;font-weight:800;} .mini-stat .l{font-size:12px;color:var(--text-dim);}
.mini-body{flex:1;} .progress-mini{margin-top:8px;max-width:220px;}
.tone-txt-green{color:var(--green-bright);} .tone-txt-warn{color:var(--warn);} .tone-txt-danger{color:var(--danger);}
.mt-sm{margin-top:8px;}

/* ---------- Utilities: widths / heights (no inline styles) ---------- */
.w-0{width:0}.w-5{width:5%}.w-10{width:10%}.w-15{width:15%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-35{width:35%}.w-40{width:40%}.w-45{width:45%}.w-50{width:50%}.w-55{width:55%}.w-60{width:60%}.w-65{width:65%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-85{width:85%}.w-90{width:90%}.w-95{width:95%}.w-100{width:100%}
.h-0{height:0}.h-5{height:5%}.h-10{height:10%}.h-15{height:15%}.h-20{height:20%}.h-25{height:25%}.h-30{height:30%}.h-35{height:35%}.h-40{height:40%}.h-45{height:45%}.h-50{height:50%}.h-55{height:55%}.h-60{height:60%}.h-65{height:65%}.h-70{height:70%}.h-75{height:75%}.h-80{height:80%}.h-85{height:85%}.h-90{height:90%}.h-95{height:95%}.h-100{height:100%}
.faint{color:var(--text-faint);}
.coa-group td{background:rgba(227,31,38,.05);} .coa-group .coa-name{font-weight:800;}
.coa-sub .code{padding-inline-start:24px;} .coa-sub .coa-name{color:var(--text-dim);}

/* company cards */
.co-card{padding:18px;display:flex;flex-direction:column;gap:14px;}
.co-head{display:flex;align-items:center;gap:12px;}
.co-logo{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--green-soft);color:var(--green-bright);flex:none;}
.co-name{font-size:15px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.co-active{font-size:10px;padding:2px 8px;} .co-en{font-size:11.5px;color:var(--text-mute);margin-top:2px;}
.co-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;}
.meta-k{font-size:10px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;}
.meta-v{font-size:12.5px;font-weight:600;margin-top:2px;}
.co-audit-top{display:flex;justify-content:space-between;margin-bottom:6px;}
.co-foot{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--border);}
.btn-sm{padding:7px 12px;font-size:12px;}

/* ---------- Responsive ---------- */
@media (max-width:1150px){ .kpi-grid{grid-template-columns:repeat(3,1fr);} .g-3{grid-template-columns:1fr;} }
@media (max-width:1100px){
  .sidebar{position:fixed;inset-block:0;inset-inline-start:0;inset-inline-end:auto;z-index:40;transform:translateX(100%);transition:transform .22s;}
  html[dir="ltr"] .sidebar{transform:translateX(-100%);}
  .sidebar.open{transform:translateX(0);box-shadow:var(--shadow);}
  .menu-btn{display:grid;} .topbar-logo{display:block;} .crumbs{display:none;}
  .searchbox{display:none;} .co-btn .co-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;}
  .login-wrap{grid-template-columns:1fr;} .login-brandside{display:none;}
  .login-mobile-brand{display:flex;}
}
@media (max-width:560px){
  .kpi-grid{grid-template-columns:1fr 1fr;} .form-grid{grid-template-columns:1fr;}
  .lang-toggle span{display:none;} .avatar{display:none;} .content{padding:16px;}
}
@media (prefers-reduced-motion:reduce){ *{transition:none!important;} }

/* ---------- Print ---------- */
@media print{
  .sidebar,.topbar,.app-footer,.install-pill,.toast,.demo-banner,.actions,.backdrop{display:none!important;}
  body,html.light{background:#fff!important;color:#000!important;}
  .app,.main-col{display:block!important;}
  .content{padding:0!important;}
  .panel,.kpi,.card{border:1px solid #ccc!important;box-shadow:none!important;background:#fff!important;color:#000!important;break-inside:avoid;}
  .tbl thead th,.tbl tbody td,.tbl tfoot td{color:#000!important;border-color:#ddd!important;background:#fff!important;}
  .page-head .titles h1{color:#000!important;}
  .amt-c,.kpi-label,.page-head .titles p{color:#333!important;}
  a[href]::after{content:"";}
  .print-head{display:flex!important;justify-content:space-between;align-items:baseline;gap:16px;
    border-bottom:2px solid #000!important;padding-bottom:10px;margin-bottom:14px;color:#000!important;}
  .print-head .ph-l strong{font-size:16px;letter-spacing:1px;} .print-head .ph-r{font-size:12px;color:#333!important;}
}

/* ============================================================ LANDING */
body.landing{background:radial-gradient(1100px 600px at 100% -8%, rgba(227,31,38,.13), transparent 55%),var(--bg);}
.lnav{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 6vw;border-bottom:1px solid var(--border);background:rgba(17,17,17,.78);backdrop-filter:blur(10px);}
html.light .lnav{background:rgba(255,255,255,.75);}
.lnav-right{display:flex;align-items:center;gap:10px;}
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;padding:64px 6vw 40px;max-width:1280px;margin:0 auto;}
.hero-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:30px;background:var(--green-soft);
  color:var(--green-bright);font-size:12px;font-weight:700;border:1px solid var(--green-soft);}
.hero-copy h1{font-size:44px;line-height:1.15;font-weight:800;letter-spacing:-1px;margin:18px 0 16px;}
.hero-copy h1 em{color:var(--green-bright);}
.hero-copy p{font-size:15.5px;color:var(--text-dim);line-height:1.75;max-width:52ch;}
.hero-cta{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap;}
.hero-cta .btn-lg{width:auto;padding:13px 22px;}
.hero-visual{display:flex;justify-content:center;}
.hv-card{width:100%;max-width:420px;background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--border-2);
  border-radius:18px;padding:18px;box-shadow:var(--shadow);transform:rotate(-1.2deg);}
.hv-head{display:flex;align-items:center;gap:9px;padding-bottom:14px;border-bottom:1px solid var(--border);font-weight:800;letter-spacing:1px;}
.brand-logo.sm{width:26px;height:26px;} .brand-logo.sm img{width:100%;height:100%;}
.hv-dot{margin-inline-start:auto;width:9px;height:9px;border-radius:50%;background:var(--green-bright);}
.hv-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0;}
.hv-kpi{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px;}
.hk-l{font-size:11px;color:var(--text-mute);} .hk-v{display:block;margin-top:5px;font-size:18px;font-weight:800;font-family:var(--font-mono);}
.hk-v span{font-size:10px;color:var(--text-mute);margin-inline-start:4px;} .hk-v.up{color:var(--green-bright);}
.hv-bars{display:flex;align-items:flex-end;gap:7px;height:90px;padding-top:8px;}
.hv-bars i{flex:1;border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,var(--green-bright),var(--green));}
.lstats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1000px;margin:10px auto 20px;padding:0 6vw;}
.ls{text-align:center;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface);}
.ls b{display:block;font-size:26px;font-weight:800;color:var(--green-bright);} .ls span{font-size:12px;color:var(--text-dim);}
.features{max-width:1200px;margin:0 auto;padding:56px 6vw;}
.sec-head{text-align:center;margin-bottom:34px;}
.sec-head h2{font-size:30px;font-weight:800;letter-spacing:-.5px;}
.sec-head p{color:var(--text-dim);margin-top:10px;font-size:14px;}
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.feat-card{background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:20px;transition:.16s;}
.feat-card:hover{border-color:var(--green-soft);transform:translateY(-3px);}
.fc-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--green-soft);color:var(--green-bright);margin-bottom:13px;}
.fc-ic svg{width:22px;height:22px;}
.feat-card h3{font-size:15px;margin-bottom:7px;} .feat-card p{font-size:12.5px;color:var(--text-dim);line-height:1.6;}
.lcta{padding:20px 6vw 70px;max-width:1100px;margin:0 auto;}
.lcta-box{text-align:center;padding:48px 24px;border-radius:20px;border:1px solid var(--green-soft);
  background:radial-gradient(600px 300px at 50% 0%, rgba(227,31,38,.14), transparent 60%),var(--surface);}
.lcta-box h2{font-size:26px;font-weight:800;} .lcta-box p{color:var(--text-dim);margin:10px 0 22px;}
.lcta-box .btn-lg{width:auto;padding:13px 26px;display:inline-flex;}
@media (max-width:1100px){
  .hero{grid-template-columns:1fr;padding-top:40px;} .hero-visual{order:-1;}
  .hero-copy h1{font-size:34px;} .feat-grid{grid-template-columns:1fr 1fr;} .lstats{grid-template-columns:1fr 1fr;}
  .lnav-right .lang-toggle span{display:none;} .lnav{padding:12px 4vw;} .lnav-right{gap:8px;}
}
@media (max-width:560px){ .feat-grid{grid-template-columns:1fr;} .hero-copy h1{font-size:28px;} .lnav{padding:12px 20px;} }

/* ============================================================ LANDING BG */
.fin-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;}
.landing .hero,.landing .lstats,.landing .features,.landing .lcta,.landing .app-footer{position:relative;z-index:1;}
.fin-grid{position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000 0,transparent 72%);mask-image:radial-gradient(120% 90% at 50% 0%,#000 0,transparent 72%);}
.fin-bg::before{content:"";position:absolute;top:-10%;inset-inline-start:-5%;width:60vw;height:60vw;border-radius:50%;
  background:radial-gradient(circle, rgba(227,31,38,.14), transparent 62%);filter:blur(20px);}
.fin-bg::after{content:"";position:absolute;bottom:-20%;inset-inline-end:-8%;width:50vw;height:50vw;border-radius:50%;
  background:radial-gradient(circle, rgba(217,180,74,.10), transparent 62%);filter:blur(20px);}
.fin-glyphs{position:absolute;inset:0;}
.fin-glyphs .fg{position:absolute;font-family:var(--font-mono);font-weight:600;color:var(--green-bright);
  opacity:.10;white-space:nowrap;user-select:none;animation:finDrift linear infinite;}
html.light .fin-glyphs .fg{opacity:.14;color:var(--green);}
.fg-0{left:6%;font-size:22px;animation-duration:26s;animation-delay:-2s;}
.fg-1{left:16%;font-size:15px;animation-duration:34s;animation-delay:-9s;opacity:.07;}
.fg-2{left:27%;font-size:28px;animation-duration:30s;animation-delay:-14s;}
.fg-3{left:38%;font-size:16px;animation-duration:38s;animation-delay:-4s;opacity:.06;}
.fg-4{left:49%;font-size:24px;animation-duration:28s;animation-delay:-20s;}
.fg-5{left:60%;font-size:18px;animation-duration:36s;animation-delay:-7s;opacity:.08;}
.fin-glyphs .fg:nth-child(6n+1){left:8%;} .fin-glyphs .fg:nth-child(6n+2){left:22%;}
.fin-glyphs .fg:nth-child(6n+3){left:40%;} .fin-glyphs .fg:nth-child(6n+4){left:58%;}
.fin-glyphs .fg:nth-child(6n+5){left:74%;} .fin-glyphs .fg:nth-child(6n){left:88%;}
.fin-glyphs .fg:nth-child(2n){color:var(--teal);}
.fin-glyphs .fg:nth-child(n+13){font-size:20px;}
@keyframes finDrift{0%{transform:translateY(105vh) rotate(0deg);}100%{transform:translateY(-20vh) rotate(6deg);}}
.fin-line{position:absolute;inset:0;opacity:.5;
  background-image:repeating-linear-gradient(180deg, transparent 0 46px, var(--border) 46px 47px);
  -webkit-mask-image:radial-gradient(80% 60% at 80% 90%,#000,transparent 70%);mask-image:radial-gradient(80% 60% at 80% 90%,#000,transparent 70%);}
@media (prefers-reduced-motion:reduce){ .fin-glyphs .fg{animation:none;opacity:.06;} }
.login-mobile-brand .logo{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;color:var(--green-bright);}
.login-mobile-brand .logo svg{width:100%;height:100%;display:block;fill:currentColor;}
.login-mobile-brand .name{font-size:24px;font-weight:800;letter-spacing:1px;}
.brand-logo.sm{width:26px;height:26px;}
.topbar-logo{display:none;}

/* ---- Kill blue tap/focus everywhere; use green ---- */
*{-webkit-tap-highlight-color:transparent;}
html,body{overflow-x:hidden;}
input,textarea,select{accent-color:var(--green);}
input[type=checkbox],input[type=radio]{accent-color:var(--green);width:16px;height:16px;}
:focus{outline:none;}
:focus-visible{outline:2px solid var(--green-bright);outline-offset:2px;border-radius:6px;}
.btn:focus-visible,.icon-btn:focus-visible,.topbar-icon:focus-visible,.nav-item:focus-visible{outline-color:var(--green-bright);}
::-moz-focus-inner{border:0;}

/* ===== Single-company edition additions ===== */
.logout-form{margin:0;}
button.sidebar-logout{width:calc(100% - 28px);font-family:inherit;cursor:pointer;text-align:start;}
.co-static{cursor:default;}
.co-static:hover{border-color:var(--border);}
.neg .amt-n,.amt.neg .amt-n{color:var(--danger);}
.kpi-sub{font-size:11.5px;color:var(--text-mute);margin-top:6px;}
.delta-bad{color:var(--warn);} .delta-good{color:var(--green-bright);}
.ch-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);}
.ch-row:last-child{border-bottom:0;}
.ch-row .ch-name{font-size:13px;font-weight:600;}
.ch-row .ch-val{font-size:12.5px;}
.ch-row .progress{grid-column:1 / -1;margin:0;}
.ch-row .ch-pct{font-size:11.5px;color:var(--text-dim);}
.tbl tr.row-total td{font-weight:800;border-top:1px solid var(--border-2);}
.tbl tr.row-section td{font-size:11.5px;font-weight:700;color:var(--text-dim);background:rgba(255,255,255,.02);}
html.light .tbl tr.row-section td{background:rgba(0,0,0,.025);}
.tbl tr.row-sub td.col-desc{padding-inline-start:28px;color:var(--text-dim);}
.tag-mono{font-family:var(--font-mono);font-size:11px;color:var(--text-mute);display:block;margin-top:2px;direction:ltr;text-align:start;}
.steps{list-style:none;margin:0;padding:0;}
.steps li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:13px;}
.steps li:last-child{border-bottom:0;}
.steps .n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;background:var(--surface-3);color:var(--text-dim);flex:none;}
.steps li.done .n,.steps li.ready .n{background:var(--ok-soft);color:var(--ok);}
.steps li.waiting .n{background:var(--warn-soft);color:var(--warn);}
.steps .s-txt{flex:1;min-width:0;}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px 20px;}
.kv .meta-v{word-break:break-word;}
.kpi-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:560px){ .kpi-grid.cols-3{grid-template-columns:1fr 1fr;} }

/* ========== FINEX live build (ledger, import, Qayd) ========== */
.note.ok{background:var(--ok-soft);border-color:rgba(67,196,120,.22);color:#9fe0bd;}
.note.danger{background:var(--danger-soft);border-color:rgba(226,85,85,.24);color:#f0b0b0;}
html.light .note.ok{color:#11603d;} html.light .note.danger{color:#9c2626;}
.note.flash{margin-bottom:14px;}
.note ul{margin:6px 0 0;padding-inline-start:18px;} .note li{margin:2px 0;}
.field textarea{width:100%;padding:12px 14px;border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--border-2);color:var(--text);font-family:inherit;font-size:14px;min-height:84px;resize:vertical;}
.field textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft);}
.field input[type=file]{padding:9px 12px;}
.field input[type=checkbox],.rem input{width:auto;accent-color:var(--green);}
.field .hint{font-size:11.5px;color:var(--text-mute);margin-top:6px;line-height:1.6;}
.install-wrap{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:var(--bg);}
.install-card{width:100%;max-width:640px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;}
.install-card h1{font-size:22px;font-weight:800;margin-bottom:6px;} .install-card .sub{color:var(--text-dim);font-size:13px;margin-bottom:22px;}
.form-sec{font-size:12px;font-weight:800;color:var(--green-bright);text-transform:none;margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border);}
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:14px 16px;}
.filters .field{margin-bottom:0;min-width:140px;} .filters .field.grow{flex:1;min-width:200px;}
.filters .field input,.filters .field select{padding:9px 12px;font-size:13px;}
.lines-tbl td{padding:8px 10px!important;}
.lines-tbl select,.lines-tbl input{width:100%;padding:9px 10px;border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--border-2);color:var(--text);font-family:inherit;font-size:13px;}
.lines-tbl select:focus,.lines-tbl input:focus{outline:none;border-color:var(--green);}
.lines-tbl .in-acc{min-width:220px;}
.in-num{text-align:end;font-variant-numeric:tabular-nums;min-width:110px;direction:ltr;}
.lines-tbl td:last-child{width:44px;}
button.icon-btn{background:transparent;border:1px solid var(--border);cursor:pointer;}
.btn{cursor:pointer;} .btn:disabled{opacity:.55;cursor:default;}
.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger);}
.btn-danger:hover{filter:brightness(1.08);}
.form-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding:14px 16px;border-top:1px solid var(--border);}
.balance-flag{font-size:12px;font-weight:700;}
.balance-flag.ok{color:var(--ok);} .balance-flag.bad{color:var(--danger);}
.tbl td.empty{text-align:center;color:var(--text-mute);padding:28px 16px;}
.tbl tr.row-muted td{opacity:.55;}
.tbl tr.row-link a.desc{color:inherit;text-decoration:none;}
.tbl tr.row-link a.desc:hover,.tbl td.code a:hover{color:var(--green-bright);}
.tbl td.code a{color:inherit;text-decoration:none;}
a.notif-item{text-decoration:none;color:inherit;}
.tbl .neg,.num.neg{color:var(--danger);}
.stat{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);}
.stat .l{font-size:11.5px;color:var(--text-mute);} .stat .v{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px;}
.seg{display:inline-flex;gap:4px;padding:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;margin-bottom:16px;}
.seg a{padding:7px 14px;border-radius:7px;font-size:12.5px;font-weight:700;color:var(--text-dim);text-decoration:none;}
.seg a.active{background:var(--surface);color:var(--text);box-shadow:0 1px 0 var(--border-2);}
.inline-form{display:inline;} .inline-form button{vertical-align:middle;}
.tbl td input.cell{width:100%;min-width:110px;padding:7px 9px;border-radius:7px;background:var(--bg);border:1px solid var(--border-2);color:var(--text);font-family:inherit;font-size:13px;}
.tbl td select.cell{width:100%;min-width:180px;padding:7px 9px;border-radius:7px;background:var(--bg);border:1px solid var(--border-2);color:var(--text);font-family:inherit;font-size:13px;}
.tbl td input.cell.num-in{text-align:end;direction:ltr;}
.err-list{list-style:none;margin:0;padding:0;}
.err-list li{padding:10px 16px;border-bottom:1px solid var(--border);font-size:12.5px;display:flex;gap:10px;align-items:flex-start;}
.err-list li:last-child{border-bottom:0;}
.err-list .rid{font-family:var(--font-mono);font-size:11px;color:var(--text-mute);flex:none;}
.sticky-actions{position:sticky;bottom:0;z-index:5;background:var(--surface);}
.split{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:900px){ .split{grid-template-columns:1fr;} .lines-tbl .in-acc{min-width:160px;} }
@media print{ .filters,.form-actions,.seg,.icon-btn{display:none!important;} }
fieldset.plain{border:0;padding:0;margin:0;min-width:0;}
.mb0{margin-bottom:0!important;}
.tab-panel .sub-head{padding:14px 16px 6px;font-size:12.5px;font-weight:800;color:var(--text-dim);}
.tab-panel .table-wrap{margin-bottom:6px;}
.panel-head .field input.cell,.panel-head input.cell{max-width:220px;padding:7px 10px;border-radius:7px;background:var(--bg);border:1px solid var(--border-2);color:var(--text);font-family:inherit;font-size:13px;}
.panel-body input.cell[type=search]{width:100%;max-width:360px;padding:9px 12px;border-radius:8px;background:var(--bg);border:1px solid var(--border-2);color:var(--text);font-family:inherit;}
#notesTbl textarea{min-height:38px;}
.split .panel{margin-bottom:16px;}
.tab .cnt.req{background:var(--danger-soft);color:var(--danger);}
a.avatar{text-decoration:none;color:inherit;}
/* GRCR edition brand */
.brand-text .name.long,.login-mobile-brand .name.long{font-size:14.5px;letter-spacing:0;line-height:1.35;white-space:normal;}
.login-brandside .brand-text .name.long{font-size:17px;}
.login-mobile-brand .brand-logo{width:38px;height:38px;}
.login-brandside{background:var(--bg-2);justify-content:center;gap:40px;}
.login-brandside::after{display:none;}
.btn-primary{box-shadow:none;}
.channel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;}
.channel-grid .field{margin-bottom:0;}
.in-num.big,.field input.in-num.big{font-size:20px;font-weight:700;padding:14px;text-align:end;direction:ltr;}
.sum-line{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:14px;border-top:1px solid var(--border);font-size:14px;}
.sum-line strong{font-size:22px;}
.btn-lgish{padding:13px 22px;font-size:15px;}
@media (max-width:640px){
  .closing-form .lines-tbl thead{display:none;}
  .closing-form .lines-tbl,.closing-form .lines-tbl tbody,.closing-form .lines-tbl tr,.closing-form .lines-tbl td{display:block;width:100%;}
  .closing-form .lines-tbl tr[data-line]{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;padding:12px;border-bottom:1px solid var(--border);}
  .closing-form .lines-tbl tr[data-line] td{padding:0!important;border:0;}
  .closing-form .lines-tbl tr[data-line] td:first-child{grid-column:1 / -1;}
  .closing-form .lines-tbl tr[data-line] td:last-child{width:auto;}
  .closing-form .lines-tbl tfoot td{padding:12px!important;}
  .closing-form .lines-tbl .cell{min-width:0;}
}
@media (max-width:640px){
  .closing-form .lines-tbl td,.closing-form .lines-tbl th{min-width:0!important;}
  .closing-form .lines-tbl tr[data-line]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;}
  .closing-form .table-wrap{overflow:visible;}
}
@media (max-width:640px){
  .closing-form .lines-tbl .cell,.closing-form .lines-tbl select.cell,.closing-form .lines-tbl input.cell{min-width:0!important;width:100%;}
  .co-btn .co-name{max-width:34vw;overflow:hidden;text-overflow:ellipsis;}
  .topbar .lang-toggle span{display:none;}
  .topbar{gap:8px;}
}
@media (max-width:640px){ .closing-form .lines-tbl{min-width:0!important;width:100%!important;} }
/* real restaurant mark (raster, transparent) */
.brand-logo{width:auto;height:auto;}
.brand-logo img.brand-img,.topbar-logo img.brand-img{display:block;height:34px;width:auto;}
.login-brandside .brand-logo img.brand-img{height:58px;}
.login-mobile-brand .brand-logo img.brand-img{height:36px;}
.install-card .brand-logo img.brand-img{height:40px;}
.topbar-logo{width:auto!important;}
.topbar-logo img.brand-img{height:26px;}
.login-brandside .brand-hero em{color:#e31f26;}
.sidebar-head .brand-logo img.brand-img{height:40px;}

/* ===== GRCR palette refinements ===== */
.chip.info{color:#e9cd7a;background:var(--gold-soft);border-color:rgba(217,180,74,.28);}
html.light .chip.info{color:#7a5d0c;}
.note{background:var(--gold-soft);border-color:rgba(217,180,74,.25);color:#ead49a;}
html.light .note{color:#5e4708;}
.kpi.tone-green{--accent:var(--gold);} .kpi.tone-teal{--accent:var(--gold);}
.kpi-icn{background:var(--surface-2);}
.bar-income{background:var(--gold);}
.legend .li-income{background:var(--gold);}
.bar-expense{background:var(--green);opacity:.55;}
.legend .li-expense{background:var(--green);opacity:.55;}
.delta-good{color:var(--ok);}
.progress>span{background:var(--gold);}
.btn-primary{background:var(--green);border-color:var(--green);}
.btn-primary:hover{background:var(--green-dim);filter:none;}
.seg a.active{color:var(--text);box-shadow:inset 0 -2px 0 var(--gold);}
.tab.active{box-shadow:inset 0 -2px 0 var(--gold);}
.tag-mono{color:var(--gold);}
.stat .v{color:var(--text);}
.stat{border-inline-start:3px solid var(--gold);}
.panel-head svg{color:var(--gold);}
.nav-item.active svg,.nav-item:hover svg{color:var(--green-bright);}
.tbl thead th{color:var(--gold);}
html.light .tbl thead th{color:#7a5d0c;}
.sum-line strong{color:var(--gold);}
html.light .sum-line strong{color:#7a5d0c;}
.login-brandside .brand-hero em{color:var(--green);}
