/* =====================================================================
   Finance Management System — UI theme
   ===================================================================== */
:root{
  --bg:#f3f5f9; --panel:#ffffff; --panel-2:#f8fafc; --ink:#101828; --ink-2:#475467; --muted:#667085; --line:#e4e7ec; --line-2:#eef1f5;
  --brand:#0f3b5c; --brand-2:#1565a8; --accent:#0e9f8a; --accent-soft:#e6f6f3;
  --green:#12805c; --green-soft:#e7f6ef; --red:#c4320a; --red-soft:#fdeee8; --amber:#b54708; --amber-soft:#fef3e2;
  --blue:#175cd3; --blue-soft:#eaf2ff; --grey:#667085; --grey-soft:#f2f4f7;
  /* chart roles (validated categorical order) */
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --track:#e8edf3; --chart-surface:#ffffff;
  --radius:12px; --radius-sm:8px; --side:248px;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);
  --shadow-lg:0 12px 32px rgba(16,24,40,.12);
  --thaana-font:Faruma;
  font-family:"FMS Thaana","Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,Faruma,"MV Boli","Noto Sans Thaana",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--brand-2);text-decoration:none} a:hover{text-decoration:underline}
h1,h2,h3{margin:0 0 .6em;font-weight:650;letter-spacing:-.01em} h2{font-size:18px} h3{font-size:15px}
code{background:var(--grey-soft);padding:1px 6px;border-radius:6px;font-size:12px}
.dv,[dir=rtl]{font-family:var(--thaana-font),Faruma,"MV Boli","Noto Sans Thaana",sans-serif}

/* ---------- shell */
.shell{display:flex;min-height:100vh}
.sidebar{width:var(--side);background:linear-gradient(180deg,#0b2740 0%,#0f3352 100%);color:#c8d7e5;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto;scrollbar-width:thin}
.brand{display:flex;gap:12px;align-items:center;padding:20px 18px 18px}
.brand-mark{background:linear-gradient(135deg,#19b394,#1565a8);color:#fff;font-weight:700;font-size:11px;border-radius:10px;width:38px;height:38px;display:grid;place-items:center;letter-spacing:.5px;box-shadow:0 4px 12px rgba(25,179,148,.35)}
.brand-name{color:#fff;font-weight:600;font-size:13.5px;line-height:1.25}
.brand-sub{font-size:11px;color:#8fb0c8}
.nav-group{font-size:10.5px;text-transform:uppercase;letter-spacing:1.1px;color:#6f93ad;padding:16px 20px 6px;font-weight:600}
.sidebar nav{padding:0 10px 20px}
.sidebar nav a{display:flex;align-items:center;gap:11px;padding:8px 10px;color:#c8d7e5;font-size:13.5px;border-radius:8px;margin:1px 0}
.sidebar nav a svg{width:18px;height:18px;fill:currentColor;opacity:.7;flex-shrink:0}
.sidebar nav a:hover{background:rgba(255,255,255,.07);text-decoration:none;color:#fff}
.sidebar nav a.active{background:rgba(25,179,148,.16);color:#fff;font-weight:600}
.sidebar nav a.active svg{opacity:1;fill:#3fd3b4}
.sidebar .count{margin-left:auto;background:#19b394;color:#fff;border-radius:10px;padding:0 7px;font-size:11px;font-weight:600}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line);padding:12px 28px;position:sticky;top:0;z-index:5}
.topbar h1{font-size:19px;margin:0;flex:1;font-weight:650}
.topbar .user{display:flex;align-items:center;gap:12px}
.topbar .user a.me{display:flex;align-items:center;gap:10px;color:var(--ink)}
.topbar .user a.me:hover{text-decoration:none}
.topbar .user small{display:block;color:var(--muted);font-size:11.5px;line-height:1.2}
.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#1565a8,#19b394);color:#fff;display:grid;place-items:center;font-weight:600;font-size:12.5px}
.fy{background:var(--accent-soft);color:#0b7a69;border-radius:20px;padding:3px 11px;font-size:12px;font-weight:600}
.menu-btn{display:none;background:none;border:0;font-size:22px;cursor:pointer;color:var(--ink)}
.content{padding:24px 28px;flex:1}
.foot{padding:14px 28px;color:var(--muted);font-size:11.5px}

/* ---------- surfaces */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}
.card > h3:first-child{display:flex;align-items:center;gap:8px}
.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.card-head h3{margin:0}
.card-head .sub{color:var(--muted);font-size:12.5px;margin-top:2px}
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))} .g3{grid-template-columns:repeat(3,minmax(0,1fr))} .g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.kpi .label{color:var(--muted);font-size:12.5px;font-weight:500}
.kpi .value{font-size:24px;font-weight:650;margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.kpi .sub{font-size:12px;color:var(--muted)}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}
.toolbar .spacer{flex:1}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--brand-2);color:#fff;border:1px solid var(--brand-2);border-radius:var(--radius-sm);padding:8px 15px;font-size:13.5px;font-weight:550;cursor:pointer;font-family:inherit;line-height:1.3;box-shadow:0 1px 2px rgba(16,24,40,.08);transition:background .15s,box-shadow .15s}
.btn:hover{background:#114f86;text-decoration:none}
.btn.light{background:#fff;color:var(--ink-2);border-color:#d0d5dd} .btn.light:hover{background:var(--panel-2);color:var(--ink)}
.btn.green{background:var(--green);border-color:var(--green)} .btn.red{background:var(--red);border-color:var(--red)}
.btn.sm{padding:5px 11px;font-size:12.5px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:2px 10px;font-size:12px;font-weight:600;white-space:nowrap}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.badge.green{background:var(--green-soft);color:var(--green)} .badge.red{background:var(--red-soft);color:var(--red)}
.badge.amber{background:var(--amber-soft);color:var(--amber)} .badge.blue{background:var(--blue-soft);color:var(--blue)}
.badge.grey{background:var(--grey-soft);color:var(--grey)}
.alert{border-radius:var(--radius-sm);padding:11px 15px;margin-bottom:16px;border:1px solid}
.alert.ok{background:var(--green-soft);border-color:#a6dfc5;color:#0b5c42}
.alert.error{background:var(--red-soft);border-color:#f7c4b2;color:#932006}
.alert.warn{background:var(--amber-soft);border-color:#f6d39c;color:#7a3306}
.note{background:var(--panel-2);border:1px solid var(--line-2);border-left:3px solid var(--brand-2);border-radius:var(--radius-sm);padding:10px 14px;color:var(--ink-2);margin:10px 0}
.muted{color:var(--muted)}
.right{text-align:right} .nowrap{white-space:nowrap}

/* ---------- tables */
.table-wrap{overflow-x:auto}
.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--panel)}
.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top}
.table th{background:var(--panel-2);font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:600;border-bottom:1px solid var(--line)}
.table th:first-child{border-top-left-radius:8px} .table th:last-child{border-top-right-radius:8px}
.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.table tbody tr:hover td{background:#fafbfd}
.table tfoot td{font-weight:650;background:var(--panel-2);border-top:1px solid var(--line)}
.table.compact th,.table.compact td{padding:7px 10px;font-size:13px}
.bar{height:8px;background:var(--track);border-radius:4px;overflow:hidden;min-width:80px}
.bar > i{display:block;height:100%;background:var(--s1);border-radius:4px}
.bar.warn > i{background:var(--amber)} .bar.over > i{background:var(--red)}

/* ---------- forms */
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px 18px}
.form-grid .full{grid-column:1/-1}
label{display:block;font-size:12.5px;color:var(--ink-2);margin-bottom:5px;font-weight:600}
input[type=text],input[type=number],input[type=date],input[type=email],input[type=password],input[type=file],input[type=search],input[type=tel],select,textarea{
  width:100%;padding:8px 11px;border:1px solid #d0d5dd;border-radius:var(--radius-sm);font:inherit;background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(16,24,40,.04);transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:#84adeb;box-shadow:0 0 0 4px rgba(21,101,168,.12)}
input[readonly]{background:var(--panel-2)}
textarea{resize:vertical}
.inline{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.inline > div{min-width:150px}
.checkbox{display:flex;gap:8px;align-items:center;font-weight:normal;font-size:13.5px;color:var(--ink)}
.checkbox input{width:16px;height:16px;accent-color:var(--brand-2)}
.perm-grid td{text-align:center} .perm-grid td:first-child{text-align:left}
.wf-form textarea{margin-top:6px}
.tabs{display:flex;gap:4px;margin-bottom:18px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:4px;width:fit-content;max-width:100%}
.tabs a{padding:7px 13px;border-radius:7px;color:var(--ink-2);font-size:13px;font-weight:550}
.tabs a:hover{background:var(--panel-2);text-decoration:none}
.tabs a.active{background:var(--brand-2);color:#fff}
dl.meta{display:grid;grid-template-columns:170px 1fr;gap:8px 14px;margin:0}
dl.meta dt{color:var(--muted)} dl.meta dd{margin:0}

/* ---------- dashboard */
.dash-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,2fr);gap:20px;margin-bottom:20px}
.hero{background:linear-gradient(135deg,#0f3b5c 0%,#1565a8 60%,#159a8a 100%);color:#fff;border-radius:16px;padding:22px 24px;position:relative;overflow:hidden;box-shadow:var(--shadow-lg)}
.hero::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.07)}
.hero .label{font-size:13px;opacity:.85}
.hero .big{font-size:40px;font-weight:700;letter-spacing:-.02em;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.hero .big small{font-size:16px;font-weight:600;opacity:.8;margin-left:4px}
.hero .meter{height:10px;background:rgba(255,255,255,.18);border-radius:6px;overflow:hidden;display:flex;margin:16px 0 10px}
.hero .meter i{display:block;height:100%}
.hero .meter i + i{margin-left:2px}
.hero .split{display:flex;gap:18px;font-size:12.5px;flex-wrap:wrap}
.hero .split b{display:block;font-size:15px;font-variant-numeric:tabular-nums}
.hero .dotk{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px;position:relative}
.tile .t-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px;font-weight:500}
.tile .t-ico{width:28px;height:28px;border-radius:8px;display:grid;place-items:center}
.tile .t-ico svg{width:16px;height:16px;fill:currentColor}
.tile .t-value{font-size:24px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.tile .t-sub{font-size:12px;color:var(--muted)}
.tile a.stretch::after{content:"";position:absolute;inset:0}
.tile .spark{position:absolute;right:14px;bottom:14px;width:110px;height:30px}
.spark polyline{fill:none;stroke:#b8c4d3;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.spark circle{fill:var(--s1);stroke:#fff;stroke-width:2}
.ico-blue{background:var(--blue-soft);color:var(--blue)} .ico-green{background:var(--green-soft);color:var(--green)}
.ico-amber{background:var(--amber-soft);color:var(--amber)} .ico-red{background:var(--red-soft);color:var(--red)} .ico-grey{background:var(--grey-soft);color:var(--grey)}
.dash-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px}
.list-plain{list-style:none;margin:0;padding:0}
.list-plain li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-2)}
.list-plain li:last-child{border-bottom:0}
.list-plain .grow{flex:1;min-width:0}
.list-plain .t{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.list-plain .s{font-size:12px;color:var(--muted)}
.empty{color:var(--muted);text-align:center;padding:22px 8px;font-size:13px}
.seg-switch{display:inline-flex;background:var(--grey-soft);border-radius:8px;padding:3px;gap:2px}
.seg-switch button{border:0;background:none;padding:4px 10px;border-radius:6px;font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer}
.seg-switch button.on{background:#fff;box-shadow:var(--shadow);color:var(--ink);font-weight:600}

/* ---------- charts */
.chart{width:100%;height:auto;display:block;font-family:inherit;overflow:visible}
.chart .grid{stroke:var(--line-2);stroke-width:1}
.chart .axis{stroke:#d0d5dd;stroke-width:1}
.chart .tick{fill:var(--muted);font-size:11px}
.chart .mark{fill:var(--s1)}
.chart .mark.hl{fill:#1c5cab}
.chart .hit:hover .mark{fill:#1c5cab}
.chart .seg:hover{filter:brightness(.92)}
.chart .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart .ref-line{fill:none;stroke:#98a2b3;stroke-width:1.5}
.chart .area{opacity:.1}
.chart .dot{stroke:var(--chart-surface);stroke-width:2}
.chart .end-label{font-size:11.5px;fill:var(--ink);font-weight:600}
.chart .end-label.muted{fill:var(--muted);font-weight:500}
.chart .row-label{font-size:12.5px;fill:var(--ink-2)}
.chart .row-value{font-size:12px;fill:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.chart .crosshair{stroke:#98a2b3;stroke-width:1;opacity:0;pointer-events:none}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2);margin:2px 0 10px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend .key{width:10px;height:10px;border-radius:3px;display:inline-block}
.legend .key-dash{width:14px;height:0;border-top:2px solid #98a2b3;display:inline-block}
.viz-tip{position:fixed;z-index:50;pointer-events:none;background:#101828;color:#fff;font-size:12px;line-height:1.45;padding:7px 10px;border-radius:8px;box-shadow:var(--shadow-lg);max-width:300px;opacity:0;transition:opacity .08s}
.viz-tip.on{opacity:1}
.table-toggle{font-size:12px}
details.data-table summary{cursor:pointer;color:var(--muted);font-size:12px;margin-top:6px}

/* ---------- template creator */
.builder{display:grid;grid-template-columns:230px minmax(0,1fr) minmax(0,1.05fr);gap:16px;align-items:start}
.builder .pane{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.builder .pane-head{padding:10px 14px;border-bottom:1px solid var(--line);font-weight:600;font-size:13px;display:flex;align-items:center;gap:8px;background:var(--panel-2)}
.builder .pane-body{padding:12px 14px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid #d0d5dd;background:#fff;border-radius:16px;padding:3px 9px;font-size:11.5px;cursor:pointer;font-family:ui-monospace,Consolas,monospace;color:var(--ink-2)}
.chip:hover{border-color:var(--brand-2);color:var(--brand-2);background:var(--blue-soft)}
.snip{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 10px;margin-bottom:6px;font:inherit;font-size:12.5px;cursor:pointer}
.snip:hover{border-color:var(--brand-2);background:var(--blue-soft)}
.code{font-family:"FMS Thaana",ui-monospace,"Cascadia Code",Consolas,monospace;font-size:12.5px;line-height:1.55;tab-size:2;min-height:620px;border:0;border-radius:0;box-shadow:none;background:#0f172a;color:#e2e8f0;padding:14px}
.code:focus{box-shadow:none}
.preview-frame{width:100%;height:760px;border:0;background:#e9edf2;display:block}
.cheque-designer{position:relative;background:#fbfbf6;border:1px dashed #98a2b3;margin:12px auto;background-size:cover;background-position:center}
.cheque-designer .fld{position:absolute;white-space:nowrap;cursor:move;padding:1px 4px;border:1px dashed transparent;border-radius:4px;user-select:none;line-height:1.1}
.cheque-designer .fld:hover,.cheque-designer .fld.sel{border-color:var(--brand-2);background:rgba(21,101,168,.08)}
.cheque-designer .fld.off{opacity:.25}
.cheque-designer .tag{position:absolute;top:-16px;left:0;font-size:10px;color:var(--brand-2);font-family:system-ui;background:#fff;padding:0 3px;border-radius:3px;display:none}
.cheque-designer .fld:hover .tag,.cheque-designer .fld.sel .tag{display:block}

/* ---------- login */
.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1200px 600px at 10% 10%,#1d6fb8 0%,transparent 60%),radial-gradient(900px 500px at 90% 90%,#139c88 0%,transparent 55%),#0b2740;padding:20px}
.login .card{width:380px;padding:32px;box-shadow:var(--shadow-lg);border:0}
.login h1{font-size:21px}

/* ---------- print */
.print-bar{position:sticky;top:0;background:#101828;padding:9px;text-align:center;z-index:9}
.print-page{background:#fff;padding:12mm;max-width:210mm;margin:14px auto;box-shadow:0 2px 12px rgba(0,0,0,.15)}
.print-page.wide{max-width:297mm}
body.print-mode{background:#dfe3e8}
@media print{
  body,body.print-mode{background:#fff}
  .no-print,.sidebar,.topbar,.foot,.toolbar{display:none!important}
  .print-page{box-shadow:none;margin:0;padding:0;max-width:none}
  .content{padding:0}
  .table th{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  @page{margin:10mm}
}

@media (max-width:1180px){ .dash-hero,.dash-grid{grid-template-columns:1fr} .builder{grid-template-columns:1fr} }
@media (max-width:900px){
  .sidebar{position:fixed;left:-270px;z-index:20;transition:left .2s}
  .sidebar.open{left:0;box-shadow:var(--shadow-lg)}
  .menu-btn{display:block}
  .g2,.g3,.g4,.tiles{grid-template-columns:1fr}
  .content{padding:16px}
  .topbar{padding:10px 16px}
  .topbar .fy,.topbar .user small{display:none}
  dl.meta{grid-template-columns:1fr}
}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pair>*{min-width:0}.pair input{width:100%}

/* ---- v7: tabs, purchasing, GST lines, activities, deposits, GL advisor ---- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-4px 0 18px;flex-wrap:wrap}
.tabs a{padding:9px 14px;color:var(--ink-2);font-weight:550;font-size:13.5px;border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:6px}
.tabs a:hover{color:var(--ink);text-decoration:none}
.tabs a.on{color:var(--brand-2);border-bottom-color:var(--brand-2)}
.tabs .count{background:var(--amber-soft);color:var(--amber);border-radius:10px;padding:0 7px;font-size:11.5px;font-weight:700}
.seg-switch label{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:6px;font-size:13px;cursor:pointer;color:var(--ink-2);margin:0;font-weight:500}
.seg-switch label input{margin:0;accent-color:var(--brand-2)}
.seg-switch label:has(input:checked){background:#fff;box-shadow:var(--shadow);color:var(--ink);font-weight:600}
.gst-items td.num{white-space:nowrap;color:var(--ink-2)} .gst-items td.ltot{color:var(--ink);font-weight:600}
.vendor-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 16px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);max-height:260px;overflow:auto}
.compare th.best,.compare td.best{background:var(--green-soft)}
.compare td.cheapest{color:var(--green);font-weight:700}
.compare th{vertical-align:bottom}
.po-box{margin:0 0 16px;background:var(--panel-2);border:1px dashed var(--line);border-left:3px solid var(--accent)}
.po-box label{margin-top:0}
tr.gl-row td{background:var(--panel-2)} tr.act-row td{font-size:13px;color:var(--ink-2)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}
.step{display:flex;gap:10px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow)}
.step .dot{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--grey-soft);color:var(--muted);font-weight:700;font-size:12.5px}
.step.done .dot{background:var(--green);color:#fff}
.step.done{border-color:#bfe5d3}
.tg-msg{white-space:pre-wrap;background:#eef6fd;border:1px solid #d3e6f8;border-radius:10px;padding:10px 12px;font:13px/1.5 inherit;margin:6px 0 0}
.slip-img{max-width:100%;max-height:420px;border:1px solid var(--line);border-radius:var(--radius-sm);display:block}
.mail-preview{width:100%;height:640px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#f2f5f8}
.card.advise.best{border-color:#9fd6bd;box-shadow:0 0 0 3px var(--green-soft)}
.card.advise h3{margin:0}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}

/* ---- v8: wizard, dropzone, modal ---- */
.wizard .wstep{display:none}
.wizard:not(.wiz-ready) .wstep{display:block}
.wizard .wstep.on{display:block;animation:wfade .18s ease}
@keyframes wfade{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
.wiz-bar{list-style:none;margin:-4px 0 20px;padding:0 0 16px;display:flex;gap:6px;border-bottom:1px solid var(--line);counter-reset:w;overflow-x:auto}
.wiz-bar li{flex:1;min-width:120px;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer;color:var(--muted);position:relative}
.wiz-bar li .n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--grey-soft);font-weight:700;font-size:13px;color:var(--ink-2);border:2px solid transparent}
.wiz-bar li .t{font-size:13.5px;font-weight:600;line-height:1.2;display:flex;flex-direction:column}
.wiz-bar li .t small{font-weight:400;font-size:11.5px;color:var(--muted)}
.wiz-bar li.on{background:var(--blue-soft);color:var(--ink)} .wiz-bar li.on .n{background:var(--brand-2);color:#fff}
.wiz-bar li.done .n{background:var(--green);color:#fff} .wiz-bar li.done{color:var(--ink-2)}
.wiz-bar li:not(:last-child)::after{content:"";position:absolute;right:-5px;top:50%;width:6px;height:2px;background:var(--line)}
.wiz-nav{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);margin-top:18px;padding-top:14px}
.wiz-nav .spacer{flex:1}
.wreview .rv-step{border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin-bottom:12px;background:var(--panel-2)}
.wreview .rv-head{display:flex;justify-content:space-between;margin-bottom:6px}
.wreview dl.meta{margin:0} .wreview dd{white-space:pre-wrap}
.dropzone{position:relative;display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:2px dashed #c3ccd8;border-radius:12px;padding:16px 18px;background:var(--panel-2);cursor:pointer;transition:border-color .15s,background .15s}
.dropzone:hover,.dropzone.over{border-color:var(--brand-2);background:var(--blue-soft)}
.dropzone > svg{width:30px;height:30px;fill:var(--brand-2);flex:none}
.dropzone .dz-text{display:block;font-size:13.5px;color:var(--ink-2);flex:1;min-width:160px} .dropzone .dz-text small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.dropzone .dz-browse{color:var(--brand-2);font-weight:600;text-decoration:underline}
.dropzone .dz-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.dropzone .dz-file{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:13px}
.dropzone .dz-file img{max-height:56px;max-width:90px;border-radius:6px;border:1px solid var(--line);background:#fff}
.dropzone.has{border-style:solid;border-color:#9fd6bd;background:var(--green-soft)}
dialog.modal{border:0;border-radius:16px;padding:0;width:min(980px,96vw);max-height:92vh;box-shadow:var(--shadow-lg);color:var(--ink)}
dialog.modal::backdrop{background:rgba(16,24,40,.45);backdrop-filter:blur(2px)}
dialog.modal[open]{animation:mpop .18s ease}
@keyframes mpop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.modal-head{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}
.modal-head h3{margin:0;font-size:17px} .modal-head .x{margin-left:auto;border:0;background:var(--grey-soft);width:32px;height:32px;border-radius:50%;font-size:18px;cursor:pointer;color:var(--ink-2)}
.modal-body{padding:18px 22px;overflow:auto;max-height:calc(92vh - 140px)}
.modal-foot{display:flex;align-items:center;gap:10px;padding:14px 22px;border-top:1px solid var(--line);background:var(--panel-2);position:sticky;bottom:0}
.modal-foot .spacer{flex:1}
.q-total{font-size:20px;font-weight:700;color:var(--brand)}
.gl-assign{background:#fff6e5;border:1px solid #f1d39b;border-radius:8px;padding:10px 12px;margin:8px 0}
.gl-assign label{margin-top:0}
.logo-now{display:flex;align-items:center;gap:12px;margin-top:8px} .logo-now img{max-height:60px;max-width:120px;border:1px solid var(--line);border-radius:8px;padding:4px;background:#fff}

/* deposit slip register */
.slip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.slip-card{padding:0;overflow:hidden;color:inherit;text-decoration:none;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s}
.slip-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.12);transform:translateY(-1px)}
.slip-thumb{height:150px;background:#f1f3f6;display:flex;align-items:center;justify-content:center;overflow:hidden}
.slip-thumb img{width:100%;height:100%;object-fit:cover}
.slip-thumb span{font-weight:700;color:#b42318;font-size:22px;border:2px solid #b42318;border-radius:6px;padding:6px 10px}
.slip-body{padding:10px 12px;font-size:13px;line-height:1.45}
.slip-body .small{font-size:12px;margin-top:4px}
.reprint-box{border:1px solid #f5c26b;background:#fff8eb;border-radius:10px;padding:12px 14px;margin:14px 0}
.reprint-box h4{margin:0 0 6px}
.req{color:#b42318}

/* =====================================================================
   v10 — mobile app layout (phones & tablets)
   ===================================================================== */
.menu-btn svg{width:24px;height:24px;fill:currentColor;display:block}
.drawer-x,.drawer-user,.drawer-out,.sidebar nav a.drawer-out,.scrim,.tabbar{display:none}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.drawer-out{align-items:center;gap:11px;padding:10px;color:#f4b8a6!important;font-size:13.5px;border-radius:8px;margin-top:10px;border-top:1px solid rgba(255,255,255,.08)}
.drawer-out svg{width:18px;height:18px;fill:currentColor}

@media (max-width:900px){
  :root{--tabbar-h:62px}
  body{font-size:15px;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}
  .shell{display:block}
  /* drawer menu */
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:min(86vw,320px);height:100dvh;z-index:60;transform:translateX(-102%);transition:transform .22s ease;
    padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);box-shadow:none}
  .sidebar.open{left:0;transform:none;box-shadow:0 0 40px rgba(0,0,0,.35)}
  .scrim{display:block;position:fixed;inset:0;background:rgba(9,20,33,.5);z-index:55;opacity:0;pointer-events:none;transition:opacity .2s}
  body.drawer-open{overflow:hidden}
  body.drawer-open .scrim{opacity:1;pointer-events:auto}
  .brand{padding:16px 16px 10px}
  .drawer-x{display:grid;place-items:center;margin-left:auto;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.08);color:#fff;font-size:22px;cursor:pointer}
  .drawer-user{display:flex;gap:12px;align-items:center;margin:4px 14px 6px;padding:12px;border-radius:12px;background:rgba(255,255,255,.06);color:#fff!important}
  .drawer-user small{display:block;color:#8fb0c8;font-size:12px}
  .drawer-out,.sidebar nav a.drawer-out{display:flex}
  .sidebar nav a{padding:11px 10px;font-size:15px}
  .sidebar nav a svg{width:20px;height:20px}
  /* top bar */
  .topbar{padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));gap:10px;background:#0b2740;border-bottom:0;color:#fff;backdrop-filter:none}
  .topbar h1{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
  .menu-btn{display:grid;place-items:center;width:40px;height:40px;margin-left:-6px;border-radius:10px;color:#fff}
  .menu-btn:active{background:rgba(255,255,255,.12)}
  .topbar .user{gap:8px} .topbar .user a.me > span:last-child,.topbar .signout,.topbar .fy{display:none}
  .topbar .avatar{width:34px;height:34px;box-shadow:0 0 0 2px rgba(255,255,255,.25)}
  /* bottom tab bar */
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:saturate(180%) blur(12px);
    border-top:1px solid var(--line);padding:4px 4px env(safe-area-inset-bottom);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}
  .tabbar a,.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font:inherit;font-size:10.5px;font-weight:600;
    background:none;border:0;border-radius:12px;padding:4px 2px;cursor:pointer;-webkit-tap-highlight-color:transparent;text-decoration:none!important}
  .tabbar .tb-ico{position:relative;width:46px;height:28px;border-radius:14px;display:grid;place-items:center;transition:background .15s}
  .tabbar svg{width:22px;height:22px;fill:currentColor}
  .tabbar a.on{color:var(--brand-2)} .tabbar a.on .tb-ico{background:var(--blue-soft)}
  .tabbar .tb-badge{position:absolute;top:-3px;right:2px;background:var(--red);color:#fff;border-radius:9px;min-width:18px;height:18px;font-size:10.5px;display:grid;place-items:center;padding:0 5px;border:2px solid #fff}
  /* content */
  .content{padding:14px 12px}
  .foot{display:none}
  .card{padding:14px;border-radius:14px;margin-bottom:14px}
  .grid{gap:12px}
  .g2,.g3,.dash-grid,.dash-hero,.builder{grid-template-columns:1fr!important}
  .g4,.tiles{grid-template-columns:1fr 1fr!important}
  .content .grid[style]{grid-template-columns:1fr!important}
  .grid > *,.dash-grid > *,.dash-hero > *,.tiles > *{min-width:0}
  html,body{overflow-x:hidden}
  .kpi{padding:12px 14px} .kpi .value{font-size:19px} .kpi .label{font-size:12px}
  .tile .t-value{font-size:19px} .tile .spark{display:none}
  .hero{padding:18px} .hero .big{font-size:30px}
  .steps{grid-template-columns:1fr 1fr;gap:8px}
  .step{padding:10px}
  dl.meta{grid-template-columns:1fr;gap:0} dl.meta dt{font-size:12px;margin-top:10px} dl.meta dt:first-child{margin-top:0} dl.meta dd{font-weight:500}
  .card-head{flex-wrap:wrap}
  /* toolbar = scrollable action chips */
  .toolbar{flex-wrap:nowrap;overflow-x:auto;margin:0 -12px 12px;padding:2px 12px 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .toolbar::-webkit-scrollbar{display:none}
  .toolbar > *{flex:none} .toolbar .spacer{flex:1 0 4px}
  .toolbar input[type=text],.toolbar input[type=search]{width:180px!important;min-height:40px}
  .toolbar form{display:flex;gap:6px}
  .tabs{flex-wrap:nowrap;overflow-x:auto;width:auto;scrollbar-width:none} .tabs a{flex:none;white-space:nowrap}
  /* forms: one column, app-size touch targets, no iOS zoom */
  .form-grid{grid-template-columns:1fr!important;gap:12px}
  input[type=text],input[type=number],input[type=date],input[type=email],input[type=password],input[type=search],input[type=tel],input[type=file],select,textarea{font-size:16px;min-height:44px;padding:10px 12px;border-radius:10px}
  textarea{min-height:88px}
  .btn{min-height:42px;padding:10px 16px;font-size:14.5px;border-radius:10px;justify-content:center}
  .btn.sm{min-height:34px;padding:6px 12px;font-size:13px}
  .checkbox{font-size:15px;padding:4px 0} .checkbox input{width:20px;height:20px}
  .inline{gap:10px} .inline > div,.inline > label{flex:1 1 100%;min-width:0}
  .inline > button,.inline > .btn{flex:1 1 auto}
  .inline input[style*="width"],.inline select[style*="width"]{width:100%!important}
  .actions{position:sticky;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--panel) 30%);margin:14px -14px -14px;padding:16px 14px 14px;z-index:4}
  .actions .btn{flex:1}
  .print-bar .btn{min-height:40px}
  /* wizard: compact step dots, sticky Back / Next */
  .wiz-bar{gap:4px;margin:-2px -4px 14px;padding-bottom:12px}
  .wiz-bar li{min-width:0;flex:1 1 0;justify-content:center;padding:6px 2px}
  .wiz-bar li .t{display:none} .wiz-bar li.on .t{display:flex;font-size:12.5px} .wiz-bar li.on{flex:3 1 0;justify-content:flex-start}
  .wiz-bar li .t small{display:none}
  .wiz-nav{position:sticky;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));background:var(--panel);margin:14px -14px -14px;padding:10px 14px;z-index:4;border-radius:0 0 14px 14px;box-shadow:0 -6px 14px rgba(16,24,40,.06)}
  .wiz-nav .btn{flex:1} .wiz-nav .spacer{display:none} .wiz-nav > span,.wiz-nav .muted{display:none}
  /* modal = full-screen sheet */
  dialog.modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .modal-head{padding:12px 14px;padding-top:calc(12px + env(safe-area-inset-top))}
  .modal-body{max-height:none;flex:1;padding:14px}
  dialog.modal[open]{display:flex;flex-direction:column;animation:msheet .22s ease}
  .modal-foot{padding:12px 14px calc(12px + env(safe-area-inset-bottom));flex-wrap:wrap}
  .modal-foot .btn{flex:1}
  @keyframes msheet{from{transform:translateY(30px);opacity:.6}to{transform:none;opacity:1}}
  /* misc */
  .dropzone{padding:14px} .dropzone .dz-file{margin-left:0;width:100%}
  .slip-grid{grid-template-columns:1fr 1fr;gap:10px} .slip-thumb{height:120px}
  .mail-preview{height:460px}
  .vendor-pick{grid-template-columns:1fr}
  .legend{gap:10px}
  .print-page{max-width:none;margin:0;padding:10px;overflow-x:auto}
  body.print-mode{padding-bottom:0}
  .login{padding:16px;align-items:end;padding-bottom:calc(24px + env(safe-area-inset-bottom))}
  .login .card{width:100%;max-width:420px;padding:24px 20px;border-radius:20px}
}

/* tables become cards on phones */
@media (max-width:760px){
  .table-wrap{overflow:visible}
  table.stack,table.stack tbody,table.stack tfoot,table.stack tr,table.stack td{display:block;width:auto}
  table.stack{background:none;border:0}
  table.stack thead{display:none}
  table.stack tbody tr,table.stack tfoot tr{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
  .card table.stack tbody tr,.card table.stack tfoot tr{box-shadow:none;background:var(--panel)}
  table.stack tfoot tr{background:var(--panel-2)!important;padding:8px 12px;margin-bottom:6px}
  table.stack tfoot td.lead{border-bottom:0!important;margin:0;padding-bottom:0!important;font-size:14px}
  table.stack tbody tr:hover td{background:none}
  table.stack td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0!important;border:0!important;text-align:right;font-size:14px;background:none!important;min-height:0}
  table.stack td::before{content:attr(data-label);flex:none;max-width:48%;text-align:left;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
  table.stack td:not([data-label])::before,table.stack td[data-label=""]::before{display:none}
  table.stack td.num,table.stack td.nowrap{white-space:normal}
  table.stack td > .cv{min-width:0;flex:1;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px 6px;overflow-wrap:anywhere}
  table.stack td.lead > .cv,table.stack td.wide > .cv{display:block}
  table.stack td.row-actions > .cv{justify-content:flex-end}
  table.stack td > .cv br{display:none}
  table.stack td > .cv small{flex-basis:100%;text-align:right}
  /* filter bars fold away */
  form.folding{padding:0;overflow:hidden}
  form.folding .filter-toggle{flex:1 1 100%;display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;padding:13px 14px;font:inherit;font-weight:600;color:var(--ink);cursor:pointer}
  form.folding .filter-toggle svg{width:18px;height:18px;fill:var(--brand-2)} form.folding .filter-toggle i{margin-left:auto;font-style:normal;transition:transform .15s}
  form.folding:not(.folded){padding:0 14px 14px} form.folding:not(.folded) .filter-toggle{margin:0 -14px;width:calc(100% + 28px)} form.folding:not(.folded) .filter-toggle i{transform:rotate(180deg)}
  form.folding.folded > :not(.filter-toggle){display:none!important}
  table.stack td.lead{display:block;text-align:left;font-size:15px;font-weight:600;padding:0 0 6px!important;margin-bottom:4px;border-bottom:1px solid var(--line-2)!important}
  table.stack td.lead::before{display:block;max-width:none;margin-bottom:1px;font-size:11px}
  table.stack td.wide{display:block;text-align:left}
  table.stack td.blank{display:none}
  table.stack.plain td{display:block;text-align:left}
  table.stack.plain td.num{text-align:right;font-weight:600}
  table.stack.plain td.lead{border-bottom:0!important;padding-bottom:2px!important;margin:0}
  table.stack td.pick{position:absolute;top:10px;right:12px;padding:0!important}
  table.stack td.pick input{width:22px;height:22px}
  table.stack tr:has(td.pick) td.lead{padding-right:34px!important}
  table.stack td.has-input{display:block;text-align:left;padding:5px 0!important}
  table.stack td.has-input::before{display:block;max-width:none;margin-bottom:4px}
  table.stack td.row-actions{justify-content:flex-end;flex-wrap:wrap;padding-top:8px!important;margin-top:6px;border-top:1px solid var(--line-2)!important}
  table.stack td.row-actions::before{display:none}
  table.stack td.row-actions .btn{min-height:36px}
  table.stack tr.gl-row{background:var(--panel-2)}
  table.stack tr.act-row{margin-left:14px}
  table.stack td small{font-size:12px}
  table.stack .bar{min-width:120px;align-self:center}
  /* line-item editors */
  table.stack.items tbody tr,table.stack.gst-items tbody tr{padding-top:12px}
  table.stack td.has-input + td.has-input{margin-top:2px}
  table.stack td.del-cell{position:absolute;top:6px;right:8px;padding:0!important}
  table.stack td.del-cell::before{display:none}
  table.stack tr:has(td.del-cell){padding-top:40px}
  .no-stack-scroll{overflow-x:auto}
  .perm-grid,.compare{min-width:640px}
  .table-wrap:has(.perm-grid),.table-wrap:has(.compare){overflow-x:auto}
}
@media (display-mode: standalone){ .topbar{padding-top:calc(10px + env(safe-area-inset-top))} }

/* =====================================================================
   v11 — vendors (tiles, repeatable contacts / bank accounts), invoice inbox, switches
   ===================================================================== */
.mono{font-family:"FMS Thaana",ui-monospace,"Cascadia Code",Consolas,monospace;letter-spacing:.2px}
.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:600;color:var(--ink)}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch span{width:40px;height:22px;border-radius:12px;background:#d0d5dd;position:relative;transition:background .15s;flex:none}
.switch span::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .15s}
.switch input:checked + span{background:var(--green)} .switch input:checked + span::after{transform:translateX(18px)}
.switch input:focus-visible + span{box-shadow:0 0 0 4px rgba(21,101,168,.18)}
.seg-switch a{padding:4px 11px;border-radius:6px;font-size:12.5px;color:var(--ink-2);text-decoration:none!important;display:inline-flex;gap:6px;align-items:center}
.seg-switch a.on{background:#fff;box-shadow:var(--shadow);color:var(--ink);font-weight:600}
.seg-switch a b{background:var(--amber-soft);color:var(--amber);border-radius:9px;padding:0 6px;font-size:11px}
.v-avatar{--c:#1565a8;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none;font-weight:700;font-size:14px;letter-spacing:.3px;
  color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);border:1px solid color-mix(in srgb,var(--c) 22%,#fff)}
.v-avatar.lg{width:64px;height:64px;border-radius:18px;font-size:22px}
.v-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.v-tile{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px;color:inherit;text-decoration:none!important;
  box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s,border-color .15s}
.v-tile:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(16,24,40,.10);border-color:#c9d6e6}
.vt-head{display:flex;gap:12px;align-items:center}
.vt-name{flex:1;min-width:0} .vt-name b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14.5px}
.vt-name small{color:var(--muted);font-size:12px}
.vt-rows{display:grid;gap:5px;font-size:13px}
.vt-rows > div{display:flex;justify-content:space-between;gap:10px}
.vt-rows span{color:var(--muted);flex:none} .vt-rows b{flex:1;font-weight:550;text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vt-rows small,.vt-name small{font-weight:500}
.vt-foot{display:flex;gap:10px;border-top:1px solid var(--line-2);padding-top:10px;margin-top:auto}
.vt-foot > div{flex:1;background:var(--panel-2);border-radius:10px;padding:7px 10px}
.vt-foot small{display:block;color:var(--muted);font-size:11px} .vt-foot b{font-variant-numeric:tabular-nums}
.vendor-hero{display:flex;gap:18px;align-items:center}
.vendor-hero h2{margin:0 0 4px;font-size:21px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vh-meta{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--ink-2);font-size:13px}
.person{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-2)} .person:last-child{border-bottom:0}
.p-ico{width:34px;height:34px;border-radius:50%;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:700;flex:none}
.person .grow{flex:1;min-width:0}
.p-links{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;margin-top:2px}
.p-tags{display:flex;gap:6px;margin-top:6px} .p-tags span{font-size:11px;background:var(--grey-soft);color:var(--ink-2);border-radius:6px;padding:1px 7px}
.bank-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:linear-gradient(135deg,#fbfcfe,#f3f6fa)}
.bank-card.primary{border-color:#9fc3ea;background:linear-gradient(135deg,#f3f8ff,#e8f1fd)}
.bc-top{display:flex;justify-content:space-between;gap:8px;font-size:13px} .bc-top span{color:var(--muted);font-size:12px}
.bc-no{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:650;margin:6px 0 2px;color:var(--brand)}
.bc-name{font-size:12.5px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.3px}
.copy{border:1px solid var(--line);background:#fff;border-radius:6px;font:inherit;font-size:11.5px;padding:2px 8px;cursor:pointer;color:var(--ink-2);font-weight:500}
.vendor-form .card{margin-bottom:16px}
.sec-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.sec-head h3{margin:0} .sec-head .sub{color:var(--muted);font-size:12.5px;margin-top:2px;max-width:760px}
.sec-ico{width:28px;height:28px;border-radius:50%;background:var(--brand-2);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
.rep-list{display:grid;gap:12px;margin-bottom:12px}
.rep-row{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--panel-2);animation:wfade .18s ease}
.rep-grid{display:grid;gap:10px 14px} .rep-grid.c4{grid-template-columns:1.2fr 1fr 1fr 1.4fr} .rep-grid.b4{grid-template-columns:1.2fr 1.2fr 1.6fr .6fr}
.rep-flags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.pill-check{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:20px;padding:4px 11px;font-size:12.5px;font-weight:550;color:var(--ink-2);margin:0;cursor:pointer}
.pill-check input{accent-color:var(--brand-2);margin:0}
.pill-check:has(input:checked){border-color:#9fc3ea;background:var(--blue-soft);color:var(--blue)}
.rep-del{margin-left:auto;border:0;background:none;color:var(--red);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:6px}
.rep-del:hover{background:var(--red-soft)}
.actions-card{position:sticky;bottom:12px;z-index:3;padding:12px 20px;box-shadow:0 10px 30px -8px rgba(16,24,40,.25)} .actions-card .actions{margin-top:0}
/* invoice inbox */
.mail-list{display:grid;gap:8px}
.mail-item{display:flex;gap:14px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px;color:inherit;text-decoration:none!important;transition:border-color .15s,box-shadow .15s}
.mail-item:hover{border-color:#c9d6e6;box-shadow:0 6px 16px rgba(16,24,40,.07)}
.mail-item.unread{border-left:4px solid var(--brand-2)}
.mail-item.unread .mi-subj{font-weight:650;color:var(--ink)}
.mi-body{flex:1;min-width:0}
.mi-top{display:flex;justify-content:space-between;gap:10px} .mi-date{color:var(--muted);font-size:12px;white-space:nowrap}
.mi-subj{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:1px 0 6px}
.mi-meta{display:flex;flex-wrap:wrap;gap:6px}
.mi-file{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;padding:2px 8px 2px 3px;font-size:12px;background:var(--panel-2)}
.ftype{display:inline-grid;place-items:center;min-width:30px;height:18px;padding:0 4px;border-radius:4px;background:#64748b;color:#fff;font-size:9.5px;font-weight:800;letter-spacing:.3px}
.ftype.pdf{background:#d92d20} .ftype.jpg,.ftype.jpeg,.ftype.png{background:#7a5af8} .ftype.xlsx{background:#12805c} .ftype.docx{background:#175cd3}
.chip-v{display:inline-flex;align-items:center;font-size:12px;border-radius:8px;padding:2px 8px;background:var(--grey-soft);color:var(--ink-2);font-weight:550}
.chip-v.ok{background:var(--green-soft);color:var(--green)} .chip-v.warn{background:var(--amber-soft);color:var(--amber)}
.mail-view{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.mail-head{display:flex;gap:14px;align-items:flex-start} .mail-head h2{margin:0 0 2px;font-size:18px} .mail-head .grow{flex:1;min-width:0}
.att-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.att-tab{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:6px 10px;font:inherit;font-size:12.5px;cursor:pointer;text-align:left;max-width:280px}
.att-tab span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .att-tab small{display:block;color:var(--muted);font-size:11px}
.att-tab.on{border-color:var(--brand-2);box-shadow:0 0 0 3px var(--blue-soft)}
.att-preview{background:#eef1f5;border-radius:10px;min-height:200px;overflow:hidden}
.att-preview iframe{width:100%;height:72vh;border:0;display:block;background:#fff}
.att-preview img{display:block;max-width:100%;margin:0 auto}
.mail-body{font-size:13.5px;color:var(--ink-2);line-height:1.6;max-height:360px;overflow:auto}
.mv-side{position:sticky;top:80px;display:grid;gap:0}
.action-card h3{font-size:14.5px} .action-card.primary{border-color:#9fc3ea;box-shadow:0 0 0 3px var(--blue-soft)} .action-card.done{border-color:#a6dfc5;background:var(--green-soft)}
.mail-banner{display:flex;gap:12px;align-items:center;background:var(--blue-soft);border:1px solid #c7dbf6;border-radius:12px;padding:12px 16px;margin-bottom:16px}
.mb-ico{width:36px;height:36px;border-radius:10px;background:var(--brand-2);color:#fff;display:grid;place-items:center;font-size:18px;flex:none}
.mail-banner .grow{flex:1;min-width:0}
.mail-files{border:1px dashed #9fc3ea;border-radius:10px;padding:10px 12px;margin-bottom:12px;background:#f7fbff}
.mf-row{display:flex;align-items:center;gap:10px;padding:5px 0;flex-wrap:wrap}
@media (max-width:1100px){.mail-view{grid-template-columns:1fr}.mv-side{position:static}.rep-grid.c4,.rep-grid.b4{grid-template-columns:1fr 1fr}}
@media (max-width:900px){
  .v-tiles{grid-template-columns:1fr;gap:10px}
  .rep-grid.c4,.rep-grid.b4{grid-template-columns:1fr}
  .vendor-hero{flex-direction:row;align-items:flex-start} .v-avatar.lg{width:52px;height:52px;font-size:18px}
  .mail-item{padding:12px} .att-preview iframe{height:60vh}
  .actions-card{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}
}

/* ---------- login (v11) */
.auth-body{background:#0a1f33;min-height:100vh}
.auth{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr)}
.auth-brand{position:relative;overflow:hidden;color:#dbe7f2;padding:44px 56px;display:flex;flex-direction:column;
  background:radial-gradient(900px 600px at 0% 0%,#14507f 0%,transparent 60%),linear-gradient(160deg,#0b2740 0%,#0a1f33 55%,#08303a 100%)}
.ab-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(ellipse at 30% 40%,#000 0%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 30% 40%,#000 0%,transparent 75%)}
.ab-glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55}
.ab-glow.g1{width:420px;height:420px;background:#19b394;right:-120px;bottom:-140px;opacity:.35}
.ab-glow.g2{width:360px;height:360px;background:#1d6fb8;left:30%;top:-160px;opacity:.35}
.ab-top{position:relative;display:flex;align-items:center;gap:14px}
.ab-logo{width:52px;height:52px;object-fit:contain;background:#fff;border-radius:14px;padding:5px}
.ab-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#19b394,#1565a8);color:#fff;font-weight:800;font-size:13px;letter-spacing:.6px;box-shadow:0 8px 24px rgba(25,179,148,.35)}
.ab-org{color:#fff;font-weight:650;font-size:16px}
.ab-org-dv{font-size:17px;color:#9ec3df;margin-top:2px}
.ab-hero{position:relative;margin:auto 0;max-width:560px;padding:40px 0}
.ab-kicker{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:#7fd8c4;background:rgba(25,179,148,.12);border:1px solid rgba(25,179,148,.3);border-radius:20px;padding:4px 12px}
.ab-hero h1{color:#fff;font-size:44px;line-height:1.08;letter-spacing:-.025em;margin:18px 0 14px;font-weight:700}
.ab-hero p{font-size:15.5px;line-height:1.6;color:#a9c1d6;margin:0 0 26px;max-width:480px}
.ab-feats{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.ab-feats li{display:flex;align-items:center;gap:12px;font-size:14.5px;color:#dbe7f2}
.ab-feats span{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:#7fd8c4;font-size:14px;flex:none}
.ab-foot{position:relative;font-size:12px;color:#6f93ad}
.auth-panel{background:#f5f7fb;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;position:relative}
.auth-card{width:100%;max-width:400px;background:#fff;border-radius:20px;padding:36px 34px;box-shadow:0 1px 2px rgba(16,24,40,.04),0 24px 48px -12px rgba(16,24,40,.14);border:1px solid #e9edf3}
.auth-card h2{font-size:26px;margin:0 0 4px;letter-spacing:-.02em}
.auth-card > .muted{margin:0 0 24px}
.ac-mobile-brand,.am-hero{display:none}
.fl-field{position:relative;margin-bottom:14px}
.fl-field > svg{position:absolute;left:14px;top:50%;width:18px;height:18px;transform:translateY(-50%);fill:#98a2b3;pointer-events:none;transition:fill .15s}
.fl-field input{width:100%;height:56px;padding:22px 44px 6px 44px!important;border:1.5px solid #d0d5dd;border-radius:12px;font-size:15.5px;background:#fff;box-shadow:none}
.fl-field label{position:absolute;left:44px;top:50%;transform:translateY(-50%);margin:0;font-size:15px;font-weight:500;color:#667085;pointer-events:none;transition:all .15s ease}
.fl-field input:focus{border-color:var(--brand-2);box-shadow:0 0 0 4px rgba(21,101,168,.12)}
.fl-field input:focus + label,.fl-field input:not(:placeholder-shown) + label{top:16px;font-size:11.5px;font-weight:600;color:var(--brand-2);letter-spacing:.2px}
.fl-field:focus-within > svg{fill:var(--brand-2)}
.fl-field.bad input{border-color:var(--red);box-shadow:0 0 0 4px var(--red-soft)} .fl-field.bad label{color:var(--red)}
.pw-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;background:none;border-radius:10px;cursor:pointer;display:grid;place-items:center}
.pw-eye svg{width:20px;height:20px;fill:#98a2b3} .pw-eye:hover{background:var(--grey-soft)} .pw-eye.on svg{fill:var(--brand-2)}
.caps{font-size:12.5px;color:var(--amber);background:var(--amber-soft);border-radius:8px;padding:5px 10px;margin:-4px 0 12px}
.ac-row{display:flex;justify-content:space-between;align-items:center;margin:4px 0 18px}
.ac-row .checkbox{font-size:13.5px;color:var(--ink-2)}
.auth-submit{width:100%;height:50px;justify-content:center;font-size:15.5px;border-radius:12px;background:linear-gradient(135deg,#1565a8,#0f4f86);border:0;box-shadow:0 8px 20px -6px rgba(21,101,168,.55);position:relative}
.auth-submit:hover{background:linear-gradient(135deg,#125a96,#0c4373)}
.auth-submit .spin{display:none;width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sp .7s linear infinite}
.auth-submit.busy span{opacity:.7} .auth-submit.busy .spin{display:inline-block}
@keyframes sp{to{transform:rotate(360deg)}}
.ac-help{font-size:12.5px;color:var(--muted);text-align:center;margin:18px 0 0;line-height:1.55}
.auth-legal{font-size:11.5px;color:#98a2b3;margin-top:20px}
@media (max-width:980px){
  .auth{grid-template-columns:1fr}
  .auth-brand{display:none}
  .auth-panel{background:radial-gradient(700px 420px at 0% 0%,#14507f 0%,transparent 60%),linear-gradient(170deg,#0b2740 0%,#0a1f33 60%,#08303a 100%);justify-content:flex-end;
    padding:24px 16px calc(24px + env(safe-area-inset-bottom));padding-top:calc(24px + env(safe-area-inset-top))}
  .ac-mobile-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}
  .am-hero{display:block;width:100%;max-width:460px;color:#fff;margin:auto 0 22px;padding:0 6px}
  .am-hero h1{font-size:32px;line-height:1.1;letter-spacing:-.02em;margin:14px 0 8px;color:#fff}
  .am-hero p{color:#9ec3df;margin:0;font-size:14px}
  .ac-mobile-brand img{width:44px;height:44px;object-fit:contain;border-radius:12px;border:1px solid var(--line);padding:3px}
  .ac-mobile-brand .ab-mark{width:44px;height:44px;font-size:12px}
  .ac-mobile-brand b{font-size:15px;line-height:1.25}
  .auth-card{padding:26px 22px;border-radius:22px;max-width:460px}
  .auth-legal{color:#6f93ad}
}

/* ---------- workflow setup (v11) */
.wf-intro{display:grid;grid-template-columns:repeat(3,auto) 1fr;gap:14px;align-items:stretch;margin-bottom:20px}
.wf-stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 18px;box-shadow:var(--shadow);min-width:150px}
.wf-stat b{display:block;font-size:24px;letter-spacing:-.02em} .wf-stat span{font-size:12.5px;color:var(--muted)}
.wf-rules{background:var(--blue-soft);border:1px solid #c7dbf6;border-radius:12px;padding:12px 16px;font-size:13px;color:#1d3f66;line-height:1.55}
.wf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(520px,1fr));gap:18px}
.wf-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}
.wf-card.off{opacity:.78} .wf-card.off .wf-pipe{filter:grayscale(.8)}
.wf-head{display:flex;align-items:center;gap:12px;padding:16px 18px 10px}
.wf-head h3{margin:0;font-size:15px} .wf-head small{color:var(--muted)} .wf-head .grow{flex:1;min-width:0}
.wf-ico{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#e8f1fd,#e6f6f3);display:grid;place-items:center;flex:none}
.wf-ico svg{width:20px;height:20px;fill:var(--brand-2)}
.wf-pipe{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px 0;padding:10px 18px 16px}
.wf-node{position:relative;display:flex;gap:9px;align-items:flex-start;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:9px 12px;margin-right:22px;min-width:150px;max-width:230px;transition:opacity .15s,filter .15s}
.wf-node:not(:last-child)::after{content:"";position:absolute;right:-19px;top:50%;width:16px;height:2px;background:#b8c4d3}
.wf-node:not(:last-child)::before{content:"";position:absolute;right:-20px;top:calc(50% - 4px);border:5px solid transparent;border-left-color:#b8c4d3;border-right:0}
.wf-node .dot{flex:none;width:24px;height:24px;border-radius:50%;background:var(--brand-2);color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center}
.wf-node b{display:block;font-size:13px;line-height:1.25}
.wf-node small{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.wf-node.start{background:#fff;border-style:dashed;min-width:0} .wf-node.start .dot{background:var(--grey-soft);color:var(--ink-2)}
.wf-node.end{background:var(--green-soft);border-color:#a6dfc5;min-width:0;margin-right:0} .wf-node.end .dot{background:var(--green)}
.wf-node.start small,.wf-node.end small{color:var(--muted);font-size:11.5px}
.wf-node.skip{opacity:.35;filter:grayscale(1)} .wf-node.skip b{text-decoration:line-through}
.role-chip,.cond-chip,.warn-chip{font-size:11px;border-radius:6px;padding:1px 7px;font-weight:600;white-space:nowrap}
.role-chip{background:#fff;border:1px solid var(--line);color:var(--ink-2)}
.cond-chip{background:var(--amber-soft);color:var(--amber)} .cond-chip.gl{background:var(--blue-soft);color:var(--blue)}
.warn-chip{background:var(--red-soft);color:var(--red)}
.wf-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line-2);padding:10px 18px;background:var(--panel-2);margin-top:auto}
.wf-foot .spacer{flex:1}
.wf-sim{display:flex;align-items:center;gap:8px;margin:0;font-size:12.5px;color:var(--ink-2);font-weight:550}
.wf-sim input{width:120px;padding:5px 9px;font-size:13px}
.wf-modal{width:min(820px,96vw)}
.wf-sub{margin:18px 0 10px;font-size:14px} .wf-sub small{color:var(--muted);font-weight:500;margin-left:6px}
.wf-steps{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:10px}
.wf-step{display:flex;gap:10px;align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;transition:box-shadow .12s}
.wf-step.dragging{opacity:.5;box-shadow:0 0 0 2px var(--brand-2)}
.wf-step .grip{cursor:grab;color:#98a2b3;font-size:16px;letter-spacing:-3px;user-select:none;padding:0 2px}
.wf-step .num{flex:none;width:26px;height:26px;border-radius:50%;background:var(--brand-2);color:#fff;font-weight:700;font-size:12.5px;display:grid;place-items:center}
.wf-step-f{flex:1;display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr;gap:10px;min-width:0}
.role-chip.dept{background:#f4f0ff;border-color:#d9cdfc;color:#5b3fc4}
.wf-step-f label{font-size:11.5px;margin-bottom:3px}
.wf-step-b{display:flex;flex-direction:column;gap:4px}
.wf-step-b button{width:28px;height:24px;border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer;font-size:12px;color:var(--ink-2)}
.wf-step-b button:hover{border-color:var(--brand-2);color:var(--brand-2)} .wf-step-b .del:hover{border-color:var(--red);color:var(--red)}
@media (max-width:1180px){.wf-intro{grid-template-columns:repeat(3,1fr)} .wf-rules{grid-column:1/-1}}
@media (max-width:900px){
  .wf-grid{grid-template-columns:1fr}
  .wf-intro{grid-template-columns:repeat(3,1fr);gap:8px} .wf-stat{min-width:0;padding:10px 12px} .wf-stat b{font-size:19px}
  .wf-pipe{flex-direction:column;gap:14px} .wf-node{margin-right:0;max-width:none}
  .wf-node:not(:last-child)::after{right:auto;left:22px;top:auto;bottom:-13px;width:2px;height:12px}
  .wf-node:not(:last-child)::before{display:none}
  .wf-step{flex-wrap:wrap;align-items:flex-start} .wf-step-f{grid-template-columns:1fr;flex-basis:calc(100% - 80px)} .wf-step-b{flex-direction:row;margin-left:auto}
}

/* ---------- stores (v12): item picker, PR lines, issue queue, my requests */
.sp-wrap{position:relative;flex:1;min-width:240px}
.sp-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);max-height:340px;overflow:auto;padding:4px}
.sp-list button{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px;font:inherit;font-size:13.5px;cursor:pointer;color:var(--ink)}
.sp-list button:hover,.sp-list button:focus{background:var(--blue-soft)}
.sp-list small{display:block;color:var(--muted);font-size:12px}
.sp-none{padding:10px;color:var(--muted);font-size:13px}
.pr-add{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.pr-lines{display:grid;gap:12px}
.pr-line{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--panel-2);animation:wfade .18s ease}
.pl-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:12.5px}
.pl-kind{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;border-radius:6px;padding:2px 8px}
.pl-kind.stock{background:var(--blue-soft);color:var(--blue)} .pl-kind.free{background:#f4f0ff;color:#5b3fc4}
.pl-grid{display:grid;grid-template-columns:2.4fr .7fr .8fr 1fr .9fr;gap:10px 12px;align-items:end}
.pl-charge{grid-column:1 / 3} .pl-why{grid-column:3 / -1}
.pl-amt{font-weight:700;font-size:15px;padding:9px 0;text-align:right;font-variant-numeric:tabular-nums}
.src{font-size:10.5px;font-weight:700;border-radius:5px;padding:1px 6px;margin-left:4px;text-transform:none;letter-spacing:0}
.src.auto{background:var(--green-soft);color:var(--green)} .src.custom{background:var(--amber-soft);color:var(--amber)} .src.est{background:var(--grey-soft);color:var(--ink-2)}
.pr-summary{display:grid;gap:10px;margin-top:14px}
.pr-total{font-size:14px;color:var(--ink-2)} .pr-total b{font-size:22px;color:var(--brand);margin:0 4px;font-variant-numeric:tabular-nums}
#pr-budget h4{margin:4px 0 6px;font-size:13.5px}
.pb-row{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:6px;font-size:13px;background:#fff}
.pb-row > span:first-child{flex:1;min-width:200px;font-weight:600}
.pb-row.over{border-color:#f7c4b2;background:var(--red-soft)}
.pr-big{font-size:22px;font-weight:700;color:var(--brand);white-space:nowrap}
.iq-list,.req-list{display:grid;gap:10px}
.iq-item{display:flex;gap:16px;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--green);border-radius:12px;padding:12px 16px;color:inherit;text-decoration:none!important;box-shadow:var(--shadow)}
.iq-item:hover{border-color:#c9d6e6;box-shadow:0 6px 16px rgba(16,24,40,.07)}
.iq-purpose{font-size:13px;color:var(--ink-2);margin-top:2px}
.iq-side{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2)}
.req-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.req-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;color:inherit;text-decoration:none!important;box-shadow:var(--shadow);display:grid;gap:6px;transition:transform .15s,box-shadow .15s}
.req-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(16,24,40,.09)}
.rc-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.rc-title{font-weight:600;color:var(--ink)} .rc-meta{font-size:12.5px;color:var(--muted)}
.rc-prog small{color:var(--ink-2);font-size:12px}
.rc-step{font-size:12.5px;background:var(--amber-soft);color:var(--amber);border-radius:8px;padding:4px 9px;font-weight:600}
.rc-step.ok{background:var(--green-soft);color:var(--green)}
@media (max-width:900px){
  .pl-grid{grid-template-columns:1fr 1fr} .pl-desc,.pl-charge,.pl-why{grid-column:1 / -1}
  .iq-item{flex-direction:column;align-items:flex-start} .req-list{grid-template-columns:1fr}
}

/* ---------------------------------------------------------------- v13: request sheets (stock / purchase request modal) */
dialog.req-modal{width:min(860px,96vw)}
.req-form{display:flex;flex-direction:column;min-height:0;margin:0}
.req-page{padding:0;overflow:hidden}
.req-page .modal-body{max-height:none}
.req-form .modal-head small{display:block;font-size:12.5px;margin-top:2px}
.rq-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px;flex:none;background:var(--blue-soft)}
.rq-ico.pr{background:#f4f0ff}
.rq-head{margin-bottom:6px}
.rq-add{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0 12px;padding:10px;border-radius:12px;background:var(--panel-2);border:1px dashed #cfd8e3}
.rq-add .sp-wrap input{padding-left:34px}
.sp-ico{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:18px;height:18px;fill:var(--muted);pointer-events:none}
.rq-lines{display:grid;gap:10px}
.rq-empty{color:var(--muted);font-size:13.5px;padding:18px;text-align:center;border:1px dashed var(--line);border-radius:12px;background:#fff}
.rq-line{border:1px solid var(--line);border-left:4px solid var(--s1);border-radius:12px;padding:10px 12px 12px;background:#fff;animation:wfade .18s ease}
.rq-line.free{border-left-color:#7a5af5;background:#fcfbff}
.rl-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.rl-name{flex:1;min-width:0;font-size:14px}
.rl-name small{display:block;color:var(--muted);font-size:12px}
.rl-name .oh.warn{color:var(--amber);font-weight:700}
.rl-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:10px 12px;align-items:start}
.rl-grid.free{grid-template-columns:minmax(0,2.4fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,.8fr)}
.rl-grid.pr{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1.6fr)}
.rl-grid.free .rl-desc{grid-column:1 / -1}
.rl-grid.free .rl-why{grid-column:1 / -1}
.rl-grid.pr .rl-desc{grid-column:1 / -1}
.rl-grid label{font-size:12px;margin-top:0}
.rl-grid label .req{color:var(--red)}
.qu{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.qu:focus-within{border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(21,101,168,.12)}
.qu input{border:0!important;box-shadow:none!important;border-radius:0;min-width:0;flex:1}
.qu select,.qu input.u{border:0!important;border-left:1px solid var(--line)!important;border-radius:0;width:auto;max-width:96px;background:var(--panel-2);font-weight:600;box-shadow:none!important}
.qu select.one{pointer-events:none;-webkit-appearance:none;appearance:none;padding-right:10px;color:var(--ink-2)}
.cv-out{display:block;font-size:12px;color:var(--blue);min-height:16px;margin-top:3px}
.cv-out b{font-weight:700}
.rq-total{font-size:13px;display:flex;align-items:baseline;gap:6px}
.rq-total b{font-size:18px;font-variant-numeric:tabular-nums}
.req-form .modal-foot{flex-wrap:wrap}
.req-form .rq-msg{margin-bottom:12px}
.req-form .pr-guide{margin-top:12px}
@media (max-width:760px){
  .rl-grid,.rl-grid.free,.rl-grid.pr{grid-template-columns:1fr 1fr}
  .rl-grid .rl-why,.rl-grid .rl-desc{grid-column:1 / -1}
  .rl-grid.pr .rl-q{grid-column:1 / -1}
  .rq-total{width:100%;justify-content:space-between}
  .rq-add .add-free{width:100%}
}

/* unit conversion rows on the item form */
.uconv{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:12px}
.conv-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;max-width:520px}
.conv-row select{flex:1.4} .conv-row input{flex:.8;min-width:0} .conv-row .bu{min-width:42px;font-weight:600;color:var(--ink-2)}
.inline-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* issue page: forward list; purchase manager pending list */
.fw-list,.pp-list{display:grid;gap:8px}
.fw-row,.pp-row{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:#fff;margin:0;font-weight:400;cursor:pointer}
.fw-row:has(input:checked),.pp-row:has(input:checked){border-color:#a9c7ef;background:var(--blue-soft)}
.fw-row .grow,.pp-row .grow{flex:1;min-width:0} .fw-row small,.pp-row small{display:block}
.pp-guide{color:var(--ink-2);font-size:12px;margin-top:2px}
.pp-amt{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.pp-act{display:flex;gap:6px}
.pend-banner{display:flex;gap:14px;align-items:center;background:linear-gradient(90deg,#fff7ec,#fff);border:1px solid #f6d39c;border-radius:14px;padding:12px 16px;margin-bottom:16px;color:inherit;text-decoration:none!important}
.pend-banner .grow{flex:1;min-width:0} .pend-banner small{display:block;color:var(--ink-2)}
.pb-n{min-width:40px;height:40px;border-radius:12px;background:var(--amber);color:#fff;display:grid;place-items:center;font-weight:700;font-size:17px}
.chip-v.info{background:#f4f0ff;color:#5b3fc4}
.pb-row.pending{border-style:dashed;background:#fffdf7}
.sec-title{margin:4px 0 10px}
@media (max-width:760px){ .pp-row{flex-wrap:wrap} .pp-amt{order:3} .pp-act{order:4;width:100%} .pp-act .btn{flex:1} }

/* GL assignment by the Finance Manager on a purchase request */
.pr-gl .prgl-list{display:grid;gap:8px;margin:6px 0}
.prgl-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:10px;align-items:center;background:#fff;border:1px solid #f1d39b;border-radius:8px;padding:8px 10px}
.prgl-d small{display:block;color:var(--muted);font-size:12px}
@media (max-width:760px){ .prgl-row{grid-template-columns:1fr} }

/* My Dashboard */
.me-hero{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;background:linear-gradient(135deg,#0f3b5c 0%,#1565a8 60%,#159a8a 100%);color:#fff;border-radius:16px;padding:20px 22px;margin-bottom:20px;box-shadow:var(--shadow-lg)}
.me-id{display:flex;gap:14px;align-items:center;flex:1;min-width:240px}
.avatar.lg{width:52px;height:52px;font-size:18px;box-shadow:0 0 0 3px rgba(255,255,255,.25)}
.me-greet{font-size:22px;font-weight:700;letter-spacing:-.01em}
.me-sub{font-size:13px;opacity:.85}
.me-actions{display:flex;gap:8px;flex-wrap:wrap}
.me-hero .btn.light{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.3)}
.me-hero .btn:not(.light){background:#fff;color:var(--brand)}
.me-tabs{width:100%;background:rgba(255,255,255,.14)}
.me-tabs a{color:#fff!important}
.me-tabs a.on{color:var(--ink)!important}
.me-tiles{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}
.me-tiles.work .tile{border-left:4px solid var(--s1)}
.ico-blue{background:var(--blue-soft);color:var(--blue)} .ico-green{background:var(--green-soft);color:var(--green)}
.sbar{display:flex;gap:2px;height:14px;border-radius:7px;overflow:hidden;margin:6px 0 10px}
.sbar i{display:block;height:100%;min-width:6px}
.sbar-key{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--ink-2)}
.sbar-key b{margin-left:5px;color:var(--ink)}
.dotk{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.minibar{position:relative;min-width:120px;height:20px;background:var(--track);border-radius:5px;overflow:hidden}
.minibar i{position:absolute;left:0;top:0;bottom:0;background:#cfe0f6;border-radius:5px}
.minibar span{position:relative;display:block;text-align:right;padding:0 6px;font-size:12.5px;line-height:20px;font-variant-numeric:tabular-nums}
@media (max-width:1100px){ .me-tiles{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:760px){ .me-hero{padding:16px} .me-greet{font-size:19px} .me-actions{width:100%} .me-actions .btn{flex:1} }
.req-form{flex:1}
dialog.req-modal .req-form .modal-body{flex:1;overflow:auto}
@media (max-width:760px){
  dialog.req-modal{width:100vw;max-width:100vw}
  .req-form .modal-head small{display:none}
  .req-form .modal-foot [data-close]{display:none}
  .req-form .modal-foot .spacer{display:none}
  .req-form .modal-foot .btn{white-space:nowrap}
}
.hb-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hb-list li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) auto;gap:10px;align-items:center;font-size:13px}
.hb-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .hb-l small{display:block;color:var(--muted);font-size:11.5px}
.hb-b{height:12px;background:var(--track);border-radius:0 4px 4px 0;overflow:hidden} .hb-b i{display:block;height:100%;background:var(--s1);border-radius:0 4px 4px 0}
.hb-v{font-weight:650;font-variant-numeric:tabular-nums;min-width:48px;text-align:right}

/* AI provider picker (Settings → Integrations) */
.ai-prov{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 14px}
.ai-opt{display:flex;flex-wrap:wrap;align-items:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin:0;cursor:pointer;font-weight:500;background:#fff}
.ai-opt:has(input:checked){border-color:var(--brand-2);background:var(--blue-soft);box-shadow:0 0 0 2px rgba(21,101,168,.12)}
.ai-opt input{margin:0;accent-color:var(--brand-2)} .ai-name{font-size:13.5px}
.ai-tag{font-size:10.5px;font-weight:700;border-radius:5px;padding:1px 6px;background:var(--grey-soft);color:var(--ink-2)}
.ai-tag.free{background:var(--green-soft);color:var(--green)}
.ai-codes{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ai-code{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:6px 10px;background:#fff;text-decoration:none!important;color:var(--ink);font-size:13px}
.ai-code b{font-variant-numeric:tabular-nums}
@media (max-width:760px){ .ai-prov{grid-template-columns:1fr 1fr} }

/* ---------------------------------------------------------------- v14: Bank & Cash */
.bk-accts{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-bottom:16px}
.bk-acct{display:grid;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;color:inherit;text-decoration:none!important;box-shadow:var(--shadow);position:relative;overflow:hidden}
.bk-acct::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--line)}
.bk-acct.on{border-color:#a9c7ef;box-shadow:0 0 0 3px rgba(21,101,168,.12)} .bk-acct.on::before{background:var(--brand-2)} .bk-acct.off{opacity:.6}
.bk-bank{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--brand-2)}
.bk-no{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px;font-weight:600} .bk-name{font-size:12.5px;color:var(--muted)}
.bk-bal{font-size:19px;font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums} .bk-bal small{display:block;font-size:11.5px;font-weight:500;color:var(--muted)}
.bk-rec{font-size:12px;color:var(--ink-2)}
.bk-kpis{margin-bottom:16px}
.bk-kind{font-size:11.5px;font-weight:650;border-radius:6px;padding:2px 7px;background:var(--grey-soft);color:var(--ink-2);white-space:nowrap}
.bk-kind.k-cheque,.bk-kind.k-bank-transfer,.bk-kind.k-bank-charge,.bk-kind.k-other-payment,.bk-kind.k-transfer-out{background:var(--red-soft);color:var(--red)}
.bk-kind.k-receipt,.bk-kind.k-cash-deposit,.bk-kind.k-moft-release,.bk-kind.k-interest,.bk-kind.k-other-receipt,.bk-kind.k-transfer-in{background:var(--green-soft);color:var(--green)}
.bk-led tr.bk-open td{background:var(--panel-2)}
.brs td{padding:6px 10px} .brs .sub{color:var(--ink-2);font-weight:600;padding-top:12px;font-size:12.5px}
.brs tr.h td{font-weight:700;border-top:1px solid var(--line)} .brs tr.t td{font-weight:600;color:var(--ink-2)}
.brs tr.d td{font-weight:700;background:var(--green-soft);color:var(--green)} .brs tr.d.bad td{background:var(--red-soft);color:var(--red)}
.brs-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:6px}
.brs-kpis > div{background:var(--panel-2);border:1px solid var(--line-2);border-radius:10px;padding:8px 12px} .brs-kpis small{display:block;color:var(--muted);font-size:11.5px} .brs-kpis b{font-variant-numeric:tabular-nums}
.brs-diff{text-align:right;border-radius:12px;padding:8px 14px} .brs-diff small{display:block;font-size:11.5px} .brs-diff b{font-size:22px;font-variant-numeric:tabular-nums}
.brs-diff.ok{background:var(--green-soft);color:var(--green)} .brs-diff.bad{background:var(--red-soft);color:var(--red)}
.rec-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
.rec-list{display:grid;gap:6px;max-height:520px;overflow:auto;padding-right:2px}
.rec-row{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:6px 8px;background:#fff}
.rec-row.sel{border-color:#a9c7ef;background:var(--blue-soft)}
.rec-row label{display:flex;gap:10px;align-items:center;flex:1;min-width:0;margin:0;font-weight:400;cursor:pointer}
.rr-d{font-size:12px;color:var(--muted);white-space:nowrap} .rr-t{flex:1;min-width:0;font-size:13px;overflow:hidden} .rr-t small{display:block;color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rr-a{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap} .rr-a.in{color:var(--green)} .rr-a.out{color:var(--red)}
.rec-bar{position:sticky;bottom:calc(var(--tabbar-h,0px) + 8px);z-index:5;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;background:var(--brand);color:#fff;border-radius:14px;padding:10px 14px;margin:12px 0 20px;box-shadow:var(--shadow-lg)}
.rec-bar .muted{color:rgba(255,255,255,.75)} .rec-bar .btn.light{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.3)}
.rec-bar .btn:not(.light){background:#fff;color:var(--brand)} .rec-bar .btn[disabled]{opacity:.5}
.ho-box{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
.cd-list{display:grid;gap:10px}
.cd-item{display:flex;gap:14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:12px;padding:10px 14px;color:inherit;text-decoration:none!important;box-shadow:var(--shadow)}
.cd-item.st-deposited{border-left-color:var(--green)} .cd-item.st-cancelled{border-left-color:var(--line);opacity:.7}
.cd-thumb{width:54px;height:54px;border-radius:10px;object-fit:cover;flex:none;border:1px solid var(--line)} .cd-thumb.ph{display:grid;place-items:center;background:var(--panel-2);font-size:20px;font-weight:700;color:var(--muted)}
.cd-main{flex:1;min-width:0} .cd-main small{display:block;color:var(--muted);font-size:12px} .cd-amt{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.cash-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
.slip-img{max-width:100%;max-height:70vh;border-radius:10px;border:1px solid var(--line);display:block}
.slip-pdf{width:100%;height:60vh;border:1px solid var(--line);border-radius:10px}
@media (max-width:900px){ .rec-grid{grid-template-columns:1fr} .brs-kpis{grid-template-columns:1fr 1fr} .cash-tiles{grid-template-columns:1fr 1fr} }

/* ---------------------------------------------------------------- v15: notifications, page modal, embed */
.bell{position:relative;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--ink-2);flex:none}
.bell svg{width:20px;height:20px;fill:currentColor}
.bell:hover{background:var(--grey-soft)}
.bell-n{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:9px;background:var(--red);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;padding:0 4px;box-shadow:0 0 0 2px #fff}
.bell-panel{position:fixed;top:62px;right:18px;width:min(400px,calc(100vw - 24px));max-height:min(620px,calc(100vh - 90px));background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);z-index:200;display:flex;flex-direction:column;overflow:hidden;animation:mpop .15s ease}
.bell-panel[hidden]{display:none}
.bp-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)} .bp-head b{flex:1;font-size:15px}
.bp-head .x{border:0;background:var(--grey-soft);width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:16px}
button.link{border:0;background:none;color:var(--brand-2);cursor:pointer;font:inherit;font-size:12.5px;padding:0}
.bp-body{overflow:auto;flex:1;padding:6px 8px 10px}
.bp-sec{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:10px 8px 4px}
.bp-task,.bp-item{display:flex;gap:10px;align-items:flex-start;padding:8px;border-radius:10px;color:var(--ink);text-decoration:none!important}
.bp-task:hover,.bp-item:hover{background:var(--panel-2)}
.bp-task{align-items:center} .bp-task span:nth-child(2){flex:1;font-size:13px} .bp-task b{background:var(--amber-soft);color:var(--amber);border-radius:9px;padding:0 8px;font-size:12px}
.bp-item .bp-t{flex:1;min-width:0;display:grid;gap:1px} .bp-item .bp-t b{font-size:13px;font-weight:600} .bp-item .bp-t span{font-size:12.5px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bp-item .bp-t small{font-size:11.5px;color:var(--muted)}
.bp-item.unread{background:var(--blue-soft)} .bp-item.unread .bp-t b::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--brand-2);margin-right:6px;vertical-align:middle}
.bp-empty{padding:18px;text-align:center;color:var(--muted);font-size:13px}
.bp-foot{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--line);background:var(--panel-2)} .bp-foot a{margin-left:auto;font-weight:600;font-size:13px}
.nt-ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--grey-soft);font-size:17px;flex:none} .nt-ico.sm{width:30px;height:30px;font-size:15px;border-radius:9px}
.nt-wrap{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:20px;align-items:start}
.nt-list{display:grid;gap:8px} .nt-day{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:8px 2px 0}
.nt-item{display:flex;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--ink);text-decoration:none!important;box-shadow:var(--shadow)}
.nt-item.unread{border-left:4px solid var(--brand-2);background:#f7fbff}
.nt-item:hover{border-color:#c9d6e6}
.nt-main{flex:1;min-width:0;display:grid;gap:2px} .nt-main b{font-size:14px} .nt-body{font-size:13px;color:var(--ink-2)} .nt-main small{color:var(--muted);font-size:12px}
.nt-go{font-size:12.5px;font-weight:600;color:var(--brand-2);white-space:nowrap}
.nt-item.k-approval .nt-ico{background:var(--green-soft)} .nt-item.k-returned .nt-ico{background:var(--red-soft)} .nt-item.k-cash .nt-ico,.nt-item.k-stores .nt-ico{background:var(--amber-soft)}
.push-state{font-size:13px;margin:6px 0}
.btn.locked{opacity:.7;cursor:not-allowed;pointer-events:none}
dialog.page-modal{width:min(1100px,96vw);height:92vh;max-height:92vh;display:none;flex-direction:column}
dialog.page-modal[open]{display:flex}
.page-modal .modal-head{flex:none} .pm-full{margin-left:auto;font-size:18px;text-decoration:none!important;color:var(--muted);padding:0 6px} .page-modal .modal-head .x{margin-left:0}
.pm-body{position:relative;flex:1;min-height:0;background:var(--bg)}
.pm-body iframe{width:100%;height:100%;border:0;display:block}
.pm-load{position:absolute;inset:0;display:flex;gap:10px;align-items:center;justify-content:center;color:var(--muted);background:var(--bg)}
.pm-load[hidden]{display:none}
.spin{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--brand-2);border-radius:50%;animation:spin .8s linear infinite} @keyframes spin{to{transform:rotate(360deg)}}
body.embed{background:var(--bg)} body.embed .content{padding:16px;max-width:none}
body.embed .content > .toolbar:first-child{display:none}
body.embed .wizard{margin:0}
@media (max-width:900px){ .nt-wrap{grid-template-columns:1fr} }
@media (max-width:760px){
  .bell-panel{top:auto;bottom:0;right:0;left:0;width:100vw;max-height:85vh;border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom)}
  dialog.page-modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  body.embed .content{padding:12px}
  .nt-go{display:none}
}
@media (max-width:900px){ .bell,.bell:hover{width:34px;height:34px;border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:#fff} .bell-n{box-shadow:none} }
/* staff directory / profile */
.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.staff-card{display:flex;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px;color:var(--ink);text-decoration:none!important;box-shadow:var(--shadow);position:relative}
.staff-card:hover{border-color:#c9d6e6;box-shadow:0 6px 16px rgba(16,24,40,.07)} .staff-card.off{opacity:.6}
.sc-main{flex:1;min-width:0;display:grid;gap:1px} .sc-main b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .sc-main small{color:var(--ink-2);font-size:12.5px}
.sc-meta{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-st{position:absolute;top:10px;right:10px}
.u-photo{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.u-photo.lg{width:72px;height:72px} .u-photo.xl{width:96px;height:96px}
.avatar.xl{width:96px;height:96px;font-size:30px}
.u-sig{max-height:56px;max-width:200px;display:block}
.img-cur{display:flex;gap:12px;align-items:center;margin-bottom:8px}
.staff-hero{display:flex;gap:18px;align-items:center;flex-wrap:wrap} .staff-hero h2{margin:0 0 4px;font-size:22px} .staff-hero .grow{flex:1;min-width:220px}
.staff-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sig-box{border:1px dashed var(--line);border-radius:10px;padding:8px 12px} .sig-box small{display:block;color:var(--muted);font-size:11px}

/* ---------------------------------------------------------------- v16: MoFT quarterly releases */
.rel-hero{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:12px 0 16px}
.rel-hero > div{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow);display:grid;gap:2px}
.rel-hero small{color:var(--muted);font-size:12px} .rel-hero b{font-size:19px;font-variant-numeric:tabular-nums} .rel-hero em{font-style:normal;color:var(--ink-2);font-size:11.5px}
.rel-hero b.neg,.rel-grid .neg{color:var(--red)}
.meter{display:block;height:6px;background:var(--track);border-radius:3px;overflow:hidden;margin:4px 0} .meter i{display:block;height:100%;background:var(--s1);border-radius:3px}
.q-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}
.q-card{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow);display:grid;gap:4px;align-content:start}
.q-card.now{box-shadow:0 0 0 3px rgba(21,101,168,.12)} .q-card.q-done{border-top-color:var(--green)} .q-card.q-part{border-top-color:var(--s1)} .q-card.q-due{border-top-color:var(--amber)}
.q-h{display:flex;gap:8px;align-items:baseline} .q-h b{font-size:18px} .q-h span{color:var(--muted);font-size:12.5px}
.q-row{display:flex;justify-content:space-between;font-size:13px} .q-row span{color:var(--ink-2)} .q-row b{font-variant-numeric:tabular-nums}
.q-st{font-size:12px;font-weight:600;color:var(--ink-2)} .q-due .q-st{color:var(--amber)} .q-done .q-st{color:var(--green)}
.q-card .btn{justify-self:start;margin-top:4px}
.rel-grid small.pl{display:block;color:var(--muted);font-size:11px}
@media (max-width:1100px){ .rel-hero{grid-template-columns:repeat(3,minmax(0,1fr))} .q-cards{grid-template-columns:1fr 1fr} }
@media (max-width:640px){ .rel-hero{grid-template-columns:1fr 1fr} }
.gov-banner{background:linear-gradient(90deg,#eef5ff,#fff);border-color:#c7dbf6} .gov-banner .pb-n{background:var(--brand-2)}
.rel-grid td:first-child{min-width:190px}
.rel-grid td.num,.rel-grid th.num{white-space:nowrap}
.rel-grid{font-size:12.5px}
.rel-grid th,.rel-grid td{padding-left:7px;padding-right:7px}.rel-grid td:first-child{min-width:170px}
/* quotation evaluation */
.eval-rank tr.rec td{background:var(--green-soft)}
.eval-rank tr.nr td,.eval-comp tr.nr td{color:var(--muted)}
.eval-comp td.c,.eval-comp th.c{text-align:center}
.eval-comp input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand-2)}
.eval-comp input[type=text]{min-width:160px}
.warn-t{color:var(--amber)}.ok-t{color:var(--green)}
.eval-rec{margin:10px 0 0;line-height:1.5}
.eval-method{flex-wrap:wrap}
.qer{font-size:11.5px;line-height:1.4;color:#111}
.qer h4{font-size:12.5px;margin:16px 0 6px;padding-bottom:3px;border-bottom:1.5px solid #222;text-transform:uppercase;letter-spacing:.03em}
.qer table{width:100%;border-collapse:collapse;margin-bottom:4px}
.qer .kv th,.qer .kv td,.qer .grid-t th,.qer .grid-t td,.qer .eval-rank th,.qer .eval-rank td{border:1px solid #999;padding:4px 6px;vertical-align:top;text-align:left}
.qer .kv th{background:#f1f3f5;width:18%;font-weight:600}
.qer .grid-t thead th,.qer .eval-rank thead th{background:#e9ecef;font-weight:600}
.qer .num{text-align:right!important;white-space:nowrap}.qer .c{text-align:center!important}
.qer .cmp td.low{font-weight:700}
.qer .cmp tfoot td{background:#f8f9fa;font-weight:600}.qer .cmp tfoot tr.tot td{border-top:2px solid #222}
.qer .eval-rank tr.rec td{background:#e6f4ea;font-weight:600}
.qer .eval-rank tr.nr td{color:#555}
.qer .small{font-size:10.5px;color:#444;margin:3px 0 0}
.qer .rec-text{border:1px solid #999;padding:8px 10px;margin:6px 0;background:#fafafa}
.qer .sign td{height:34px}
.qer .foot{margin-top:18px;font-size:10.5px;color:#444}.qer .foot td{border:0;padding:0}.qer .foot .r{text-align:right}
.qer h4,.qer tr{break-inside:avoid}
.warn-t,.ok-t{white-space:nowrap}.eval-comp td small.warn-t{white-space:normal}
@media screen and (max-width:760px){.qer .grid-t,.qer .eval-rank{display:block;overflow-x:auto;white-space:nowrap}.qer .grid-t td,.qer .grid-t th{white-space:nowrap}}
/* ---- tenders & bid committee (screen) */
.t-steps{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0 0 16px;counter-reset:ts}
.t-steps li{counter-increment:ts;flex:1 1 120px;background:var(--grey-soft);color:var(--muted);border-radius:8px;padding:7px 10px;font-size:12.5px;font-weight:600}
.t-steps li::before{content:counter(ts) ". "}
.t-steps li.done{background:var(--green-soft);color:#0b5c42}
.t-steps li.done::before{content:"✓ "}
.notice-box{border:1px solid var(--line);border-radius:10px;padding:12px 14px}.notice-box h4{margin:0 0 8px}
.tev-docs td.dv,.tev-docs th.dv{text-align:right;min-width:260px;line-height:1.7}
.tev-docs select.tri{width:62px;padding:3px 4px;font-weight:700}
.tev-docs select.tri.yes{color:var(--green)}.tev-docs select.tri.no{color:var(--red);background:var(--red-soft)}.tev-docs select.tri.na{color:var(--muted)}
.tev-docs tr.elig td{background:var(--grey-soft)}
.agenda-pick{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.agenda-pick:has(input:checked){border-color:var(--brand-2);background:#f3f8ff}
.agenda-item .decision{margin-top:10px;border-left:4px solid var(--green);background:var(--green-soft);padding:8px 12px;border-radius:6px}
.committees .list-plain li{gap:6px}
@media (min-width:901px){.grid.g3.committees{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* ---- Dhivehi printouts (bid committee forms) */
.bp-body{background:#dfe3e8;margin:0}
.bp{width:186mm;box-sizing:border-box;margin:14px auto;background:#fff;padding:11mm 11mm 7mm;box-shadow:0 2px 14px rgba(0,0,0,.15);font-family:var(--thaana-font),Faruma,"MV Faseyha","Noto Sans Thaana",sans-serif;font-size:12.5px;line-height:1.65;color:#000}
.bp.land{width:277mm}
.bpx-head{text-align:center;margin-bottom:6px}.bpx-head img{max-height:58px;max-width:80px;display:block;margin:0 auto 2px}
.bpx-org{font-size:16px;font-weight:700}.bpx-addr{font-size:12px}
.bp-title{text-align:center;margin:4px 0 8px}.bp-title h1{font-size:20px;margin:0;color:#b4232a}.bp-title h2{font-size:15px;margin:0}.bp-title .yr{font-weight:700}
.bp-t{width:100%;border-collapse:collapse;margin:6px 0;table-layout:auto}
.bp-t th,.bp-t td{border:1px solid #555;padding:3px 6px;vertical-align:top;text-align:right}
.bp-t.kv th{background:#eaf1e2;width:30%;font-weight:600}
.bp-t.kv.six th,.bp-t.kv.yrs th{width:auto;white-space:nowrap}
.bp-t thead th{background:#eaf1e2;text-align:center;font-weight:600;vertical-align:middle}
.bp-t th.cap{background:#cfd9c4;font-size:15px;text-align:center}.bp-t th.cap2{background:#cfd9c4;text-align:right}
.bp-t th.txt{text-align:right;font-weight:normal;background:#eaf1e2}
.bp-t .c{text-align:center}.bp-t .r{text-align:right}
.bp-t[dir=ltr] th,.bp-t[dir=ltr] td{text-align:left}.bp-t[dir=ltr] .r{text-align:right}.bp-t[dir=ltr] .c{text-align:center}
.bp-t.en-h thead th,.bp-t .en,.bp-t[dir=ltr]{font-family:"FMS Thaana",Arial,"Helvetica Neue",sans-serif;font-size:10.5px}
.bp-t.small td,.bp-t.small th{padding:2px 3px}
.bp-t td.tall{min-height:40px}
.bp-t tr.sub td{background:#f4f7f0;font-weight:600}
.bp-t tr.sigrow td,.bp-t tr.sigrow th{height:30px}
.bp-t td.sig{height:34px}
.bp .n{direction:ltr;unicode-bidi:isolate;font-family:"FMS Thaana","Times New Roman",Tinos,serif}
.bp .x{unicode-bidi:isolate}
.bp .ok{color:#127a3a;font-size:14px}.bp .no{color:#b4232a;font-size:14px}.bp .na{color:#666}
.bp-h{font-size:14px;margin:12px 0 4px;text-decoration:underline}.bp-h.center{text-align:center}
.bp .legend{font-size:11px;margin:2px 0 8px}
.bp .legend-ol{font-size:10.5px;margin:2px 0 8px;padding-right:20px;columns:2;column-gap:18px;line-height:1.5}
.bp-ol{margin:4px 0 10px;padding-right:22px}
.bp .pb{break-after:page;height:0}
.bp .pr03{display:inline-block;border:1.5px solid #b4232a;color:#b4232a;padding:1px 10px;font-family:Arial,sans-serif;font-size:11px;font-weight:700}
.bp-t.cl th.grp{font-size:10.5px;font-weight:600;line-height:1.35}
.bp-t.cl th.vt{height:150px;padding:4px 1px;vertical-align:bottom}
.bp-t.cl th.vt span{writing-mode:vertical-rl;display:inline-block;font-size:10.5px;line-height:1.3;max-height:146px;text-align:right}
.bp-t.cl th.nm{width:20%}.bp-t.cl th.nb{width:3%}
.bp-t.cl td{height:24px}.bp-t.cl td.note{font-size:10.5px;height:auto}
.bp-t.recv th{width:12%}.bp-t.recv thead th{width:auto}
.bp .letter{font-size:14px;line-height:1.9}.bp .letter .ltitle{text-align:center;text-decoration:underline;font-size:17px;margin:14px 0 8px}
.bp .letter .body{text-align:justify}.bp .letter .resp{margin-top:14px}.bp .letter .dates{margin-top:10px}
.bp .letter .sign{margin-top:22px}.bp .letter .to{margin-top:36px;font-size:13px}
.bpx-foot{border-top:1px solid #000;margin-top:18px;padding-top:4px;text-align:center;font-size:10.5px}
@media print{.bp-body{background:#fff}.bp{box-shadow:none;margin:0;padding:0;width:auto}.bp.land{width:auto}.print-bar{display:none}}
@media screen and (max-width:760px){.bp,.bp.land{width:auto;margin:0;padding:12px;box-shadow:none}.bp .bp-t{display:block;overflow-x:auto}.bp-t.kv{display:table}}
.iso{unicode-bidi:isolate}

.thf{font-family:var(--thaana-font,Faruma),Faruma,"MV Boli","Noto Sans Thaana",sans-serif}
.q-wait{font-size:12px;margin-top:4px}
.resv{margin-top:10px;border:1px solid var(--line);border-left:4px solid var(--brand-2);border-radius:8px;padding:9px 12px;font-size:13px;display:flex;flex-direction:column;gap:4px}
.resv-released,.resv-off{border-left-color:var(--muted)}.resv-consumed{border-left-color:var(--green)}
.resv-form{margin-top:6px}
/* bid opening checklist / committee approval */
.bo-list{display:grid;gap:10px}
.bo-grp{border:1px solid var(--line);border-radius:10px;padding:6px 10px}
.bo-gh{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin:2px 0 4px}
.bo-disq .bo-gh{color:var(--red)}
.bo-row{display:flex;align-items:center;gap:8px;padding:4px 0;border-top:1px solid var(--line)}
.bo-row:first-of-type{border-top:0}
.bo-n{width:22px;color:var(--muted);font-size:12px}.bo-t{flex:1;text-align:right;font-size:13.5px;line-height:1.6}
.bo-seg label{padding:3px 9px}
.bo-result{margin-top:10px;padding:8px 12px;border-radius:8px;font-weight:600;font-size:13px}
.bo-result.ok{background:var(--green-soft);color:#0b5c42}.bo-result.rej{background:var(--red-soft);color:#932006}
.cat-disq{color:var(--red)}.cat-exp,.cat-fin{color:var(--amber)}.cat-contract{color:var(--brand-2)}
.bc-state{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;padding:8px 12px;border-radius:8px;background:var(--grey-soft);margin-bottom:6px}
.bc-pending{background:var(--amber-soft)}.bc-approved{background:var(--green-soft)}.bc-returned{background:var(--red-soft)}
.bc-state span{font-size:12.5px;color:var(--muted)}
.ckl-t td.dv{text-align:right}
@media (max-width:760px){.bo-row{flex-wrap:wrap}.bo-t{flex-basis:100%;order:-1}}
.bp-t tr.rej td{background:#fdecea}
/* dashboard: operations strip */
.ops-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:20px}
.op-card{display:flex;flex-direction:column;gap:3px;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--s1);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow);color:var(--ink);text-decoration:none!important;transition:box-shadow .15s}
.op-card:hover{box-shadow:0 4px 14px rgba(16,24,40,.1)}
.op-green{border-left-color:var(--green)}.op-amber{border-left-color:var(--amber)}.op-red{border-left-color:var(--red)}.op-grey{border-left-color:var(--line)}
.op-l{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.op-v{font-size:22px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
.op-s{font-size:12px;color:var(--muted);line-height:1.4}
.op-m{display:block;height:6px;background:var(--track);border-radius:3px;overflow:hidden;margin:2px 0}.op-m i{display:block;height:100%;background:var(--green)}
.pipe{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:0;margin:8px 0 0;counter-reset:pp}
.pipe li{position:relative;background:var(--grey-soft);border-radius:8px;padding:12px 8px;text-align:center;color:var(--muted)}
.pipe li.has{background:#eef4ff;color:var(--ink)}
.pipe li b{display:block;font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}
.pipe li span{font-size:11.5px;font-weight:600}
@media (max-width:760px){.pipe{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- v19: login page settings, Google sign-in, procurement details, bulk upload */
.g-btn{width:100%;height:50px;justify-content:center;gap:10px;font-size:15px;border-radius:12px;background:#fff;color:#1f2937;border:1.5px solid #d0d5dd;box-shadow:0 1px 2px rgba(16,24,40,.05);text-decoration:none}
.g-btn:hover{background:#f8fafc;border-color:#98a2b3;color:#111827}
.g-btn svg{width:20px;height:20px;flex:none}
.or-sep{display:flex;align-items:center;gap:10px;margin:16px 0 14px;font-size:12px;color:var(--muted)}
.or-sep::before,.or-sep::after{content:"";flex:1;height:1px;background:var(--line)}
.alert.info{background:var(--blue-soft,#eaf2fb);border-color:#b9d3ee;color:#0f4f86}
.login-notice{font-size:13.5px}
.lp-color{display:flex;align-items:center;gap:12px}.lp-color input[type=color]{width:56px;height:38px;padding:2px;border-radius:8px}
.copy-row{display:flex;gap:8px}.copy-row input{flex:1;font-family:ui-monospace,Consolas,monospace;font-size:12.5px}
.lp-mini{--lp-c:#1565a8;display:grid;grid-template-columns:1.15fr .85fr;border-radius:12px;overflow:hidden;border:1px solid var(--line);min-height:250px;font-size:10px}
.lpm-brand{background:linear-gradient(160deg,rgba(11,39,64,.92),rgba(8,48,58,.88)),var(--lp-bg,none) center/cover;color:#dbe7f2;padding:16px 16px 12px;display:flex;flex-direction:column;gap:6px}
.lpm-k{align-self:flex-start;font-size:8px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#fff;background:color-mix(in srgb,var(--lp-c) 35%,transparent);border:1px solid color-mix(in srgb,var(--lp-c) 70%,transparent);border-radius:10px;padding:2px 7px}
.lpm-h{color:#fff;font-size:16px;font-weight:700;line-height:1.1;letter-spacing:-.02em}
.lpm-brand p{margin:0;color:#a9c1d6;font-size:9.5px;line-height:1.45}
.lpm-brand ul{margin:2px 0 0;padding:0 0 0 12px;color:#dbe7f2;font-size:9.5px;line-height:1.6}
.lpm-brand small{margin-top:auto;color:#6f93ad;font-size:8.5px}
.lpm-panel{background:#f5f7fb;display:grid;place-items:center;padding:10px}
.lpm-card{background:#fff;border:1px solid #e9edf3;border-radius:10px;padding:12px;width:100%;display:flex;flex-direction:column;gap:5px;box-shadow:0 8px 18px -10px rgba(16,24,40,.25)}
.lpm-card b{font-size:12.5px}.lpm-card small{color:var(--muted);font-size:9px}
.lpm-card i{display:block;height:18px;border:1px solid #d0d5dd;border-radius:6px}
.lpm-n{background:#eaf2fb;color:#0f4f86;border-radius:6px;padding:4px 6px;font-size:9px}
.lpm-g{border:1px solid #d0d5dd;border-radius:6px;padding:4px;text-align:center;font-size:9px;font-weight:600}
.lpm-btn{display:block;text-align:center;color:#fff;background:var(--lp-c);border-radius:6px;padding:5px;font-weight:600}
.pd-prs{display:grid;gap:4px;margin-bottom:8px;max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.pd-rule{margin-top:6px;font-size:12.5px;color:var(--muted);background:var(--grey-soft);border-radius:8px;padding:6px 10px}
.pd-rule.warn{background:var(--amber-soft);color:#8a4b00}
.pd-items textarea{min-height:36px;resize:vertical}
.pd-items td{vertical-align:top}.pd-items .amt{padding-top:12px;white-space:nowrap}
.pd-pick li{align-items:center}
.bulk-card .bulk-cols{font-size:12.5px;border:1px solid var(--line);border-radius:10px;padding:6px 10px}
.bulk-cols summary{cursor:pointer;font-weight:600;color:var(--ink-2)}
.bulk-cols ul{margin:6px 0 2px;padding-left:16px;line-height:1.55}
.bulk-cols .req{font-size:10.5px;color:var(--red);font-weight:600}
.bulk-sum{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.bulk-sum .bs{border-radius:20px;padding:4px 12px;font-size:13px;background:var(--grey-soft)}
.bulk-sum .add{background:var(--green-soft);color:#0b5c42}.bulk-sum .upd{background:#eaf2fb;color:#0f4f86}.bulk-sum .err{background:var(--red-soft);color:#9b1c1c}
.bulk-prev{max-height:520px;overflow:auto}
.bulk-prev tr.br-error td{background:#fff6f6}
.bulk-prev .err-t{color:var(--red);font-size:12.5px}
@media (max-width:900px){.lp-mini{grid-template-columns:1fr}.lpm-panel{display:none}}

/* ---------- v20: procurement projects, tenders, advertisements */
.fin-alloc{border:1px solid #b9d3ee;background:#f4f8fd;border-radius:12px;padding:12px 14px;margin:6px 0 12px}
.fin-alloc h4{margin:0 0 8px;font-size:14px;color:#0f4f86}
.wf-ext{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.btn.amber-b{background:var(--amber-soft);color:var(--amber);border-color:#f6d39c}.btn.amber-b:hover{background:#fde7c4}
.boq-sec{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:12px;background:var(--panel-2,#fafbfc)}
.boq-sh{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}.boq-sh .boq-title{flex:1;min-width:200px;font-weight:600}
.pd-items th.xc{white-space:nowrap}.pd-items .x-col{border:0;background:none;color:var(--red);cursor:pointer;font-size:14px;padding:0 2px}
.it-img{min-width:120px}.it-img img{max-height:40px;max-width:60px;border-radius:6px;display:block;margin-bottom:2px}.it-img input[type=file]{font-size:11px;max-width:150px}
.boq-foot{display:flex;align-items:center;gap:10px;margin-top:6px}
.boq-thumb{height:36px;width:48px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.boq-img{max-height:70px;max-width:120px;margin-top:4px}
.boq-h{margin:14px 0 6px}
.pj-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.pj-gallery img{width:100%;height:90px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.print-imgs{display:flex;flex-wrap:wrap;gap:6px}.print-imgs img{height:110px;border:1px solid #ccc}
.big-no{font-size:15px;letter-spacing:.2px}
.sub-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px}.sub-card h4{margin:0 0 6px}
.alog{list-style:none;margin:0;padding:0;font-size:13px;max-height:420px;overflow:auto}
.alog li{display:grid;grid-template-columns:130px 150px 150px 1fr;gap:10px;padding:7px 2px;border-bottom:1px solid var(--line-2,#eef1f5)}
.alog .t{color:var(--muted);white-space:nowrap}.alog .w{font-weight:600}.alog .a{color:#0f4f86}.alog .d{color:var(--ink-2);word-break:break-word}
@media (max-width:760px){.alog li{grid-template-columns:1fr 1fr}.alog .d{grid-column:1/-1}.wf-ext{grid-template-columns:1fr}}
.clar-ans{gap:6px}.clar-ans input{min-width:180px}
tr.avg td{background:var(--grey-soft)}
.tdoc{font-family:Arial,sans-serif;font-size:12.5px;color:#111}.tdoc h1{font-size:22px;margin:10px 0}.tdoc h2{font-size:15px;border-bottom:1.5px solid #333;padding-bottom:3px;margin:22px 0 8px}
.tdoc h3{font-size:13px;margin:12px 0 4px}.td-head{text-align:center}.td-org{font-size:17px;font-weight:bold}.td-cover{border:1.5px solid #333;padding:14px 18px;margin:14px 0}.td-kicker{font-size:11px;letter-spacing:.6px;font-weight:bold;color:#555}
.tdoc table.td-kv,.tdoc table.td-t{border-collapse:collapse;width:100%}.tdoc .td-kv th,.tdoc .td-kv td,.tdoc .td-t th,.tdoc .td-t td{border:1px solid #999;padding:4px 7px;text-align:left;vertical-align:top}
.tdoc .td-kv th{width:32%;background:#f1f3f5}.tdoc .td-t th{background:#f1f3f5}.tdoc .td-t .r{text-align:right}

/* ---------- Award Data Sheet */
.ads{font-family:Calibri,Arial,sans-serif;color:#000}
.ads-head{text-align:center;margin-bottom:8px}.ads-head img{max-height:64px;display:block;margin:0 auto 4px}.ads-agency{font-family:Arial,sans-serif;font-size:19px}
.ads-t{width:100%;border-collapse:collapse;font-size:12.5px}
.ads-t .ads-title{background:#d8e4bc;font-size:20px;font-weight:700;padding:12px;border-bottom:2px solid #000}
.ads-t thead tr:nth-child(2) th{background:#d8e4bc;font-weight:700;padding:22px 4px;border-bottom:1px dotted #000;border-left:1px dotted #000}
.ads-t thead tr:nth-child(2) th:first-child{border-left:0}
.ads-t td{border-bottom:1px dotted #000;border-left:1px dotted #000;padding:16px 6px;vertical-align:middle}.ads-t td:first-child{border-left:0}
.ads-t .c{text-align:center}.ads-t .r{text-align:right}

/* v21: split buttons (Iulaan / bid book + Word) */
.btn-group{display:inline-flex;align-items:stretch}
.btn-group .btn{border-radius:0}
.btn-group .btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}
.btn-group .btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-left:-1px;font-size:12px}

/* v22: date / time picker */
.dp-field{position:relative;width:100%}
.dp-btn{width:100%;display:flex;align-items:center;gap:9px;background:var(--panel);border:1px solid #d0d5dd;border-radius:var(--radius-sm);padding:8px 11px;min-height:38px;font:inherit;font-size:14px;color:var(--ink);cursor:pointer;text-align:start;box-shadow:0 1px 2px rgba(16,24,40,.04);transition:border-color .15s,box-shadow .15s}
.dp-btn:hover{border-color:#98a2b3}
.dp-btn:focus-visible,.dp-field.open .dp-btn{outline:none;border-color:#84adeb;box-shadow:0 0 0 4px rgba(21,101,168,.12)}
.dp-btn svg{width:17px;height:17px;fill:var(--brand-2);flex:none}
.dp-btn .dp-txt{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.dp-field.empty .dp-txt{color:#98a2b3}
.dp-x{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:var(--muted);font-size:17px;line-height:1;flex:none}
.dp-x:hover{background:var(--grey-soft);color:var(--ink)}
.dp-field.empty .dp-x{display:none}
.dp-btn:disabled{background:var(--panel-2);color:var(--muted);cursor:not-allowed}
.dp-btn:disabled .dp-x{display:none}
.dp-field.dp-invalid .dp-btn{border-color:var(--red);box-shadow:0 0 0 4px rgba(196,50,10,.12)}
.dp-pop{position:absolute;z-index:3000;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 48px rgba(16,24,40,.18),0 2px 6px rgba(16,24,40,.06);padding:12px;width:300px;font-size:13.5px;animation:dpIn .14s ease-out}
.dp-pop.dp-k-time{width:260px}
@keyframes dpIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.dp-pop.sheet{position:fixed;left:0!important;right:0;bottom:0;top:auto!important;width:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
.dp-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.dp-title{flex:1;display:flex;gap:6px;justify-content:center}
.dp-title select,.dp-title input{border:0;background:transparent;font:inherit;font-weight:650;font-size:14px;padding:4px 4px;min-height:0;box-shadow:none;width:auto;border-radius:6px;color:var(--ink)}
.dp-title select:hover,.dp-title input:hover{background:var(--grey-soft)}
.dp-title input{width:62px;-moz-appearance:textfield}
.dp-title input::-webkit-inner-spin-button{display:none}
.dp-nav{width:32px;height:32px;border-radius:9px;border:0;background:transparent;font-size:22px;line-height:1;color:var(--ink-2);cursor:pointer}
.dp-nav:hover{background:var(--grey-soft)}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-wd{text-align:center;font-size:11px;font-weight:600;color:var(--muted);padding:4px 0;text-transform:uppercase;letter-spacing:.3px}
.dp-wd.we{color:#b54708}
.dp-day{height:36px;border:0;border-radius:10px;background:transparent;font:inherit;font-size:13.5px;cursor:pointer;color:var(--ink);font-variant-numeric:tabular-nums;position:relative}
.dp-day:hover{background:var(--blue-soft)}
.dp-day:focus-visible{outline:2px solid var(--brand-2);outline-offset:-2px}
.dp-day.we{color:#b54708}
.dp-day.out{color:#c4c9d2}
.dp-day.today{font-weight:700}
.dp-day.today::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--brand-2)}
.dp-day.sel{background:var(--brand-2);color:#fff;font-weight:650;box-shadow:0 4px 10px rgba(21,101,168,.3)}
.dp-day.sel::after{background:#fff}
.dp-day:disabled{color:#d0d5dd;cursor:not-allowed;background:transparent;text-decoration:line-through}
.dp-time{border-top:1px solid var(--line-2);margin-top:10px;padding-top:10px}
.dp-k-time .dp-time{border:0;margin:0;padding:0}
.dp-tl{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}
.dp-tsel{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.dp-tsel select{width:auto;min-width:70px;font-size:15px;font-weight:600;text-align:center;padding:6px 8px;min-height:0}
.dp-chips{display:flex;flex-wrap:wrap;gap:5px}
.dp-chip{border:1px solid var(--line);background:var(--panel-2);border-radius:999px;padding:3px 10px;font:inherit;font-size:12.5px;cursor:pointer;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.dp-chip:hover{border-color:#84adeb;color:var(--brand-2)}
.dp-chip.on{background:var(--brand-2);border-color:var(--brand-2);color:#fff}
.dp-foot{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line-2)}
.dp-foot .spacer{flex:1}
.dp-link{border:0;background:transparent;color:var(--brand-2);font:inherit;font-weight:600;font-size:13px;cursor:pointer;padding:5px 8px;border-radius:7px}
.dp-link:hover{background:var(--blue-soft)}
@media (max-width:760px){.dp-btn{min-height:44px;font-size:16px;border-radius:10px}.dp-day{height:42px;font-size:15px}}
@media print{.dp-btn svg,.dp-x{display:none}}

/* advertisement schedule */
.sched-bar{background:linear-gradient(135deg,#f0f7ff,#f3fbf8);border:1px solid #d6e6f7;border-radius:var(--radius);padding:12px 14px;transition:box-shadow .3s}
.sched-bar.flash{box-shadow:0 0 0 4px rgba(14,159,138,.25)}
.sched-head{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin-bottom:9px}
.sched-head .muted{font-size:12.5px}
.sched-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px}
.sched-ctl .switch{font-weight:550;font-size:13px}
.sched-msg{font-size:12.5px}
.dp-wdn{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.2px}
.dp-tm{font-weight:650;color:var(--brand-2);margin-inline-start:2px}
.dp-btn{gap:7px;padding:8px 9px}

/* v22: template designer */
.ds-pane .pane-head{flex-wrap:wrap;gap:8px}
.ds-tools{display:inline-flex;align-items:center;gap:2px;flex-wrap:wrap}
.ds-tools button{border:1px solid transparent;background:transparent;border-radius:6px;min-width:28px;height:28px;font:inherit;font-size:13px;cursor:pointer;color:var(--ink-2)}
.ds-tools button:hover{background:#fff;border-color:var(--line)}
.ds-sep{width:1px;height:18px;background:var(--line);margin:0 4px}
.ds-hint{font-weight:400;font-size:11.5px;margin-inline-start:auto}
.ds-canvas{height:760px;background:#e9edf2}
.ds-canvas iframe{width:100%;height:100%;border:0;display:block}
.ds-pane .code{display:none;height:760px}
.ds-pane.show-code .code{display:block}
.ds-pane.show-code .ds-canvas,.ds-pane.show-code .ds-hint{display:none}
.builder [data-ins][draggable=true]{cursor:grab}
.builder .snip[draggable=true]::before{content:"⠿";color:#98a2b3;margin-inline-end:6px}
body.ds-dragging .ds-canvas{box-shadow:inset 0 0 0 3px rgba(14,159,138,.45)}

/* v22: Dhivehi interface (right-to-left) */
html[dir=rtl] body{font-size:15px;font-family:var(--thaana-font),Faruma,"MV Boli","Noto Sans Thaana","Segoe UI",system-ui,sans-serif}
html[dir=rtl] h1,html[dir=rtl] h2,html[dir=rtl] h3{letter-spacing:0}
html[dir=rtl] .table th,html[dir=rtl] .table td{text-align:right}
html[dir=rtl] .table th{text-transform:none;letter-spacing:0;font-size:12.5px}
html[dir=rtl] .nav-group,html[dir=rtl] .dp-wd,html[dir=rtl] .dp-tl{text-transform:none;letter-spacing:0}
html[dir=rtl] .right,html[dir=rtl] .table td.num,html[dir=rtl] .table th.num{text-align:left}
html[dir=rtl] .snip{text-align:right}
html[dir=rtl] input[type=email],html[dir=rtl] input[type=url],html[dir=rtl] input[type=number],html[dir=rtl] input[type=tel],html[dir=rtl] input[name=username],html[dir=rtl] input[type=password],html[dir=rtl] .code{direction:ltr;text-align:left}
html[dir=rtl] .muted,html[dir=rtl] small{font-size:inherit}
html[dir=rtl] .sidebar nav a svg{transform:none}
html[dir=rtl] .ds-hint{margin-inline-start:auto}
html[dir=rtl] .toolbar .spacer,html[dir=rtl] .spacer{flex:1}
html[dir=rtl] .note{border-left:1px solid var(--line-2);border-right:3px solid var(--brand-2)}
html[dir=rtl] .t-steps li{text-align:right}
html[dir=rtl] code,html[dir=rtl] .big-no{direction:ltr;unicode-bidi:isolate}
.lang-btn{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600;color:var(--brand-2);text-decoration:none!important;white-space:nowrap}
.lang-btn:hover{border-color:#84adeb;background:var(--blue-soft)}
.lang-btn[lang=dv]{font-family:var(--thaana-font),Faruma,"MV Boli","Noto Sans Thaana",sans-serif;font-size:14px}
.drawer-lang{display:none}
@media (max-width:760px){.topbar .lang-btn{display:none}.drawer-lang{display:flex;margin:6px 10px;padding:9px 12px;border-radius:8px;color:#c8d7e5;border:1px solid rgba(255,255,255,.15)}}
.auth-lang{display:flex;justify-content:flex-end;margin-bottom:8px}
.seg-switch a{padding:4px 10px;border-radius:6px;font-size:12.5px;color:var(--ink-2);text-decoration:none!important}
.seg-switch a.on,.seg-switch button.on{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px rgba(16,24,40,.1)}
.tr-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tr-table td{vertical-align:middle}
.logo-pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.logo-pick img{height:44px;max-width:90px;object-fit:contain;border:1px solid var(--line);border-radius:8px;padding:3px;background:#fff}

/* v23: formatted text */
.rich{border:1px solid #d0d5dd;border-radius:var(--radius-sm);background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.rich:focus-within{border-color:#84adeb;box-shadow:0 0 0 4px rgba(21,101,168,.12)}
.rich.bad{border-color:var(--red)}
.rich-tb{display:flex;flex-wrap:wrap;gap:2px;padding:5px;border-bottom:1px solid var(--line-2);background:var(--panel-2);border-radius:var(--radius-sm) var(--radius-sm) 0 0}
.rich-tb button{border:1px solid transparent;background:transparent;border-radius:6px;min-width:30px;height:28px;font:inherit;font-size:13px;cursor:pointer;color:var(--ink-2)}
.rich-tb button:hover{background:#fff;border-color:var(--line)}
.rich-tb button[data-rc=rtl]{font-family:var(--thaana-font),Faruma,"MV Boli","Noto Sans Thaana",sans-serif}
.rich-sep{width:1px;height:18px;background:var(--line);margin:5px 4px}
.rich-area{min-height:130px;max-height:420px;overflow:auto;padding:10px 12px;outline:none;line-height:1.65}
.rich-area p,.rich-area h3,.rich-area h4,.rich-area ul,.rich-area ol{margin:0 0 6px}
.rich-area ul,.rich-area ol{padding-inline-start:22px}
.rich.empty .rich-area::before{content:attr(data-ph);color:#98a2b3;pointer-events:none;position:absolute}
.rich-area [dir=rtl],.rich-view [dir=rtl]{font-family:var(--thaana-font),Faruma,"MV Boli","Noto Sans Thaana",sans-serif}
.rich-view p,.rich-view ul,.rich-view ol{margin:0 0 6px}
.rich-view ul,.rich-view ol{padding-inline-start:22px}
.rich-area{position:relative}
#pdForm .items-only{display:none}
#pdForm.pd-simple .items-only{display:block}
#pdForm.pd-simple .boq-only,#pdForm.pd-simple .boq-sh,#pdForm.pd-simple #secAdd,#pdForm.pd-simple .pd-items .xc,#pdForm.pd-simple .pd-items .it-img,#pdForm.pd-simple .pd-items th:nth-last-child(2){display:none}
#pdForm.pd-simple .boq-sec+.boq-sec{border-top:0}
#pdForm.pd-notender .tender-only{display:none}
.guar-bar{background:var(--panel-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:10px 12px}
.guar-bar .pd-rule{margin-top:6px}
input[readonly][data-guar]{background:var(--panel-2);color:var(--ink-2)}
.reg-link{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;background:var(--panel-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:12px}
.reg-link>div:first-child{flex:1 1 260px}
.reg-link .copy-row{flex:1 1 360px}
.bad-t{color:var(--red);white-space:nowrap}
.chip.sm{font-size:10.5px;padding:1px 7px;cursor:default}

/* v23: home – module tiles */
.home-hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(135deg,#0f3b5c,#1565a8 60%,#0e9f8a);color:#fff;border-radius:var(--radius);padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow-lg)}
.home-hero .muted{color:#cfe0ee}
.hh-hi{font-size:21px;font-weight:650}
.hh-stats{display:flex;gap:10px;flex-wrap:wrap}
.hh-stat{display:flex;flex-direction:column;align-items:center;min-width:104px;padding:9px 14px;border-radius:12px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff;text-decoration:none!important}
.hh-stat b{font-size:22px;line-height:1.2}.hh-stat span{font-size:12px;color:#d9e7f2}
.hh-stat.hot{background:#fff;color:var(--brand)}.hh-stat.hot span{color:var(--ink-2)}
.hh-stat:hover{background:rgba(255,255,255,.22)}.hh-stat.hot:hover{background:#fff}
.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.mod-tile{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.mod-tile:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(16,24,40,.12)}
.mod-main{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;column-gap:12px;padding:16px 16px 12px;text-decoration:none!important;color:var(--ink);border-top:4px solid var(--mc)}
.mod-ico{grid-row:span 2;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--mc) 13%,#fff)}
.mod-ico svg{width:28px;height:28px;fill:var(--mc)}
.mod-name{font-size:17px;font-weight:650;align-self:end}
.mod-stat{font-size:12.5px;color:var(--muted)}.mod-stat b{color:var(--mc);font-size:15px}
.mod-links{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 14px}
.mod-links a{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line-2);font-size:12.5px;color:var(--ink-2);text-decoration:none!important}
.mod-links a:hover{border-color:var(--mc);color:var(--mc);background:#fff}
.mod-links svg{width:14px;height:14px;fill:currentColor;flex:none}
@media (max-width:760px){.mod-grid{grid-template-columns:1fr 1fr;gap:10px}.mod-links{display:none}.mod-main{grid-template-columns:1fr;text-align:center;justify-items:center;padding:14px 8px}.mod-ico{grid-row:auto}.hh-stat{min-width:0;flex:1}}
.sec-checks{list-style:none;margin:0;padding:0}
.sec-checks li{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2)}
.sec-checks .sc-ico{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px}
.sec-checks .ok .sc-ico{background:var(--green-soft);color:var(--green)}
.sec-checks .bad .sc-ico{background:var(--red-soft);color:var(--red)}

/* v23: field alignment — inputs of a row line up even when a label wraps or has a hint */
.form-grid{align-items:end}
.form-grid>div{display:flex;flex-direction:column;min-width:0}
.form-grid>div>label:first-child{margin-bottom:5px;line-height:1.35}
.form-grid>div>label:first-child small{font-weight:400}
.form-grid>div.full{align-self:stretch}
.form-grid>div>.checkbox:only-child{margin-top:auto;min-height:38px;display:flex;align-items:center}

/* v24: advertisement dates on the bids card */
.ad-dates{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin:0 0 12px}
.ad-dates>div{background:var(--panel-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:8px 11px;display:flex;flex-direction:column}
.ad-dates span{font-size:11.5px;color:var(--muted);font-weight:600}
.ad-dates b{font-variant-numeric:tabular-nums}
.ad-dates small{color:var(--ink-2);font-size:12px}
.ad-dates .ad-wait{background:var(--amber-soft);border-color:#f6d7a7}
.ad-dates.sm{margin:0}

/* v24: project form – AI help and item layouts */
.ai-panel{background:linear-gradient(135deg,#f5f0ff,#eef6ff);border:1px solid #ddd2f7;border-radius:var(--radius);padding:10px 12px}
.ai-head{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;margin-bottom:8px}
.ai-head .muted{font-size:12.5px}
.ai-spark{color:#7a4cc2;font-size:16px}
.ai-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ai-row input{flex:1 1 320px}
.ai-lang{display:flex!important;align-items:center;gap:8px;margin:0!important;font-weight:600;white-space:nowrap}
.ai-lang select{width:auto}
.lbl-ai{display:flex!important;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap}
.ai-btn{color:#6a3fb5!important;border-color:#d8cbf3!important;background:#faf7ff!important;font-weight:600}
.ai-btn:hover{background:#f1eaff!important}
.ai-btn.busy{opacity:.7;cursor:progress}
.ai-ok{font-size:12px;color:var(--green);margin-inline-start:8px;font-weight:500}
.items-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.items-mode{font-size:13px;color:var(--ink-2);flex:1 1 300px}
#pdForm .boq-only,#pdForm .items-only{display:none!important}
#pdForm.pd-nopic .pd-items .it-img,#pdForm.pd-nopic .pd-items thead th:nth-last-child(2){display:none}
.grn-block td{color:var(--muted)}
/* Settings → Staff API (HR system) */
.hr-intro .card-head{align-items:flex-start;gap:16px}
.hr-stat{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center;min-width:180px}
.hr-stat .small{flex-basis:100%;text-align:right}
.small{font-size:12.5px}
.d-block{display:block;margin-top:2px}
.hr-map td{vertical-align:middle} .hr-map td:first-child{width:34%} .hr-map input{width:100%}
.hr-counts{display:flex;flex-wrap:wrap;gap:6px}
.hr-raw{white-space:pre-wrap;word-break:break-word;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:12px;max-height:280px;overflow:auto;margin:6px 0 0}
.copy-row{display:flex;gap:8px;align-items:center} .copy-row input{flex:1;min-width:0;font-family:ui-monospace,Consolas,monospace;font-size:12.5px}
tr.row-err td{background:#fef3f2}
@media (max-width:700px){.hr-intro .card-head{flex-direction:column}.hr-stat{justify-content:flex-start}.hr-stat .small{text-align:left}.hr-map td:first-child{width:auto}}
[data-auth][hidden]{display:none!important}
/* role assignments */
.chip-v.acting{background:#ecfdf3;color:#067647;border-color:#abefc6}
.acting-tag{font-weight:600;color:#067647}
.ra-add{margin-top:12px} .ra-add > summary{list-style:none;display:inline-flex;cursor:pointer} .ra-add > summary::-webkit-details-marker{display:none} .ra-add[open] > summary{margin-bottom:12px}
.guide-list{margin:0;padding-left:18px;display:grid;gap:6px;color:var(--ink-2)}
.tabs.inline{margin:0;padding:4px}
/* process guide */
.pguide{padding:16px 18px}
.pg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px} .pg-head h3{margin:0}
.pg-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;counter-reset:pg}
.pg-steps li{position:relative;min-width:0}
.pg-steps li > a,.pg-steps li > span{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;color:inherit;text-decoration:none;padding:0 4px}
.pg-steps li::before{content:"";position:absolute;top:14px;left:-50%;width:100%;height:2px;background:var(--line);z-index:0}
.pg-steps li:first-child::before{display:none}
.pg-steps li.done::before,.pg-steps li.now::before,.pg-steps li.cur::before{background:var(--green)}
.pg-dot{position:relative;z-index:1;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--panel);border:2px solid var(--line);color:var(--muted)}
.pg-steps li.done .pg-dot{background:var(--green);border-color:var(--green);color:#fff}
.pg-steps li.now .pg-dot{border-color:var(--amber,#dc6803);color:var(--amber,#dc6803)}
.pg-steps li.cur .pg-dot{background:var(--amber,#dc6803);border-color:var(--amber,#dc6803);color:#fff;box-shadow:0 0 0 4px rgba(220,104,3,.15)}
.pg-steps li.skip .pg-dot{border-style:dashed}
.pg-steps li.stop .pg-dot{background:var(--red);border-color:var(--red);color:#fff}
.pg-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.pg-t b{font-size:12.5px;font-weight:600} .pg-t small{font-size:11.5px;color:var(--muted);overflow-wrap:anywhere}
.pg-steps li.todo .pg-t b,.pg-steps li.skip .pg-t b{color:var(--muted);font-weight:500}
.pg-next{margin-top:14px;display:flex;align-items:center;gap:12px;justify-content:space-between;background:#fffaeb;border:1px solid #fedf89;border-radius:12px;padding:10px 14px}
.pg-next.mine{background:#eff8ff;border-color:#b2ddff} .pg-next.ok{background:#ecfdf3;border-color:#abefc6}
.pg-nt{display:flex;flex-direction:column;gap:2px} .pg-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.pg-warn{color:#b42318}
.pguide.is-done .pg-steps li::before{background:var(--green)}
@media (max-width:820px){
  .pg-steps{grid-template-columns:1fr;gap:6px}
  .pg-steps li::before{left:14px;top:-6px;width:2px;height:12px}
  .pg-steps li > a,.pg-steps li > span{flex-direction:row;text-align:left;align-items:center;padding:0}
  .pg-t{flex-direction:row;gap:8px;align-items:baseline;flex-wrap:wrap}
  .pg-next{flex-direction:column;align-items:flex-start}
}
.guide-hero{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:end} .guide-hero h2{margin:0 0 6px} .guide-hero p{margin:0}
.guide-find label{display:block;margin-bottom:4px}
.pflow{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:4px}
.pf-stage{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;position:relative}
.pf-num{width:30px;height:30px;border-radius:50%;background:var(--brand,#1d5fa8);color:#fff;display:grid;place-items:center;font-weight:700}
.pf-stage h3{margin:0;font-size:15px} .pf-desc{margin:0;font-size:13px;color:var(--ink-2)} .pf-who{margin:0;font-size:12px;color:var(--muted)}
.pf-counts{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:6px} .pf-counts li{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:13px}
.guide-doc .toolbar{gap:10px}
@media (max-width:820px){.guide-hero{grid-template-columns:1fr}}
/* Google Drive settings */
[data-dmode][hidden]{display:none!important}
.seg-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.radio-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;background:var(--panel)}
.radio-card:has(input:checked){border-color:var(--brand,#1d5fa8);box-shadow:0 0 0 3px rgba(29,95,168,.12)}
.radio-card input{margin-top:3px} .radio-card span{display:flex;flex-direction:column;gap:2px} .radio-card small{color:var(--muted);font-size:12px}
.chk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 14px}
.drv-acc{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}
.inline-form{display:inline-flex;margin:0}
.drv-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.drv-nums div{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center;display:flex;flex-direction:column}
.drv-nums b{font-size:22px} .drv-nums b.red{color:var(--red)} .drv-nums small{color:var(--muted)}
.drv-recent li{align-items:flex-start}
@media (max-width:700px){.seg-choice{grid-template-columns:1fr}}
.drive-chip{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#e8f0fe;color:#1a56c4;margin-left:4px;text-decoration:none}
.guide-find .copy-row input{font-family:inherit;font-size:14px}
.ra-form{align-items:start}
/* notification e-mails */
.nm-frame{width:100%;height:560px;border:1px solid var(--line);border-radius:12px;background:#eef2f6}
.nm-nums{grid-template-columns:repeat(4,1fr)}
.nm-choice{display:grid;gap:8px}
.nm-tabs a{cursor:pointer}
@media (max-width:700px){.nm-nums{grid-template-columns:repeat(2,1fr)}.nm-frame{height:480px}}
.nm-form .form-grid{align-items:start}
.nm-acts{display:flex;gap:8px;flex-wrap:wrap;margin:0} .nm-acts .btn{white-space:nowrap}
/* direct PO with special permission */
.sp-box{margin-top:16px;border:1px dashed #f5b74f;background:#fffcf5;border-radius:12px;padding:14px 16px}
.sp-box p{margin:6px 0 10px}
#spFields[hidden]{display:none!important}
.po-special{border-left:4px solid var(--amber,#dc6803)} .po-special.green{border-left-color:var(--green)} .po-special.red{border-left-color:var(--red)}
.sp-decide textarea{width:100%}
.pg-next .btn{white-space:nowrap;flex-shrink:0}
#spFields .badge{display:inline-flex;width:auto;margin-right:6px}
.q-req{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:12.5px;margin-top:6px;color:var(--muted)} .q-req a{font-weight:600}
/* Dhivehi GL text */
.dv-inline,.dv-text,.dv-input{font-family:var(--thaana-font,Faruma),Faruma,"MV Boli","Noto Sans Thaana",sans-serif}
.dv-inline{font-size:13px;color:var(--muted);margin-left:6px;unicode-bidi:isolate}
.dv-text{text-align:right}
/* ---- Business Portal (vendor business registration) */
.bp-find{border:1px dashed var(--line-2);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:14px;background:var(--panel-2)}
.bp-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:8px}
.bp-row .grow{flex:1 1 220px;min-width:0}
.bp-out{margin-top:8px}
.bp-card{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:var(--radius-sm);padding:10px 12px;background:var(--panel)}
.bp-card.bad{border-left-color:var(--red)}
.bp-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:4px}
.bp-meta{color:var(--ink-2);font-size:13px;margin-bottom:4px}
.bp-ch{margin:4px 0 6px 18px;padding:0;font-size:13px}
.bp-ch s{color:var(--muted)}
.bp-res{display:grid;gap:6px;margin-top:6px}
.bp-pick{display:grid;grid-template-columns:1fr auto;gap:2px 12px;text-align:left;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:8px 10px;cursor:pointer;color:var(--ink);font:inherit}
.bp-pick:hover{border-color:var(--brand)}
.bp-pick span:last-child{grid-column:1/-1;color:var(--muted);font-size:12px}
.vendor-form input.bp-filled{background:var(--green-soft)}
.bp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px 18px;margin:6px 0 10px}
.bp-grid div{display:flex;flex-direction:column;gap:2px;min-width:0}
.bp-grid .wide{grid-column:1/-1}
.bp-grid span{color:var(--muted);font-size:12px}
.bp-grid b{font-weight:600;overflow-wrap:anywhere}
.bp-diff{border:1px solid var(--amber);background:var(--amber-soft);border-radius:var(--radius-sm);padding:10px 12px;margin:8px 0}
.bp-diff table{margin:6px 0;background:var(--panel)}
.bp-manual,.bp-hist{margin-top:8px}
.bp-manual summary,.bp-hist summary{cursor:pointer;color:var(--brand);font-size:13px}
.bp-manual form{margin-top:8px}
.bp-reg .card-head .actions{display:flex;gap:6px;flex-wrap:wrap}
.bp-reg .card-head .actions form{margin:0}
.vt-head .badge{margin-left:4px}
[data-mode][hidden]{display:none!important}
.bp-manual .actions{display:flex;justify-content:flex-start;gap:8px}.bp-manual .actions .btn{width:auto}
.bp-link{display:flex;gap:8px;margin:4px 0 10px}.bp-link input{flex:1;min-width:0}
/* ---- AI vendor lookup */
.vai-box{display:flex;flex-direction:column;gap:6px;align-items:flex-start;border-top:1px dashed var(--line-2);padding-top:12px}
.vai-box #vaiOut{width:100%}
.vai-card{border:1px solid var(--line);border-left:4px solid var(--accent,var(--brand));border-radius:var(--radius-sm);padding:10px 12px;background:var(--panel)}
.vai-h{display:flex;gap:8px;align-items:baseline;margin-bottom:6px}
.vai-src{margin:4px 0 8px 18px;padding:0}
.vai-src a{overflow-wrap:anywhere}
.vai-reg .card-head form{margin:0}
/* ---- new vendor: Business Portal steps */
.nv-steps{display:grid;gap:16px;max-width:900px}
.nv-step input[type=text],.nv-step input[type=search],.nv-step textarea{width:100%}
.nv-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:6px}
.nv-or{margin:14px 0 6px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.nv-out{margin-top:10px}
.nv-out .actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}
#nvPaste{margin-top:10px;display:grid;gap:6px;justify-items:start}
.nv-manual{border-style:dashed}
#nvPaste[hidden]{display:none!important}
