/* Lumete Trading OS — Untitled-UI-style shell (light sidebar + clean content),
   Lumete palette (navy + champagne gold brand accent from the letterhead). */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#0B2440;--navy2:#0B2A4A;--blue:#1D6FA4;--blue2:#2E8BC0;--sky:#EAF3FB;
  --gold:#B9912F;--gold2:#E0C77E;
  --green:#0E7C47;--lgreen:#E6F7EE;--red:#C0392B;--lred:#FDECEA;--amber:#B7621A;--lamber:#FFF3E0;
  --purple:#5B2C9E;--lpurp:#F0EBFF;--teal:#0A7A6E;--lteal:#E0F5F0;
  --paper:#F4F6F9;--white:#fff;--border:#E6EAEF;--border2:#CBD5DE;--ink:#1A2433;--muted:#6B7787;
  --shadow:0 1px 3px rgba(16,24,40,.06),0 1px 2px rgba(16,24,40,.04);--shadow-lg:0 8px 28px rgba(10,24,41,.10);
  --r:10px;--r2:14px;--sidebar-w:248px;--sidebar-w-collapsed:74px;
  /* Light sidebar surfaces */
  --sidebar-bg:#FBFCFE;
  --font-ui:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --font-serif:"Source Serif 4",Georgia,"Times New Roman",serif;
}
html,body{min-height:100%;font-family:var(--font-ui);background:var(--paper);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--blue);text-decoration:none}
button,input,select,textarea{font-family:inherit;outline:none}button{cursor:pointer;border:none}

/* ---------- App shell: light sidebar + content ---------- */
.layout{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);flex:none;background:var(--sidebar-bg);border-right:1px solid var(--border);color:var(--ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;transition:width .18s ease}
.sidebar-brand{display:flex;align-items:center;gap:11px;padding:18px 16px 14px}
.brand-logo{width:42px;height:42px;flex:none;display:flex;align-items:center;justify-content:center}
.brand-logo img{width:42px;height:42px;object-fit:contain}
.brand-fallback{display:none;width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--navy);align-items:center;justify-content:center;font-weight:900;font-size:20px}
.brand-text .t{font-family:var(--font-serif);font-weight:700;font-size:19px;line-height:1.05;color:var(--navy);letter-spacing:.2px}
.brand-text .s{font-size:10px;color:var(--muted);margin-top:2px;letter-spacing:.6px;text-transform:uppercase}
/* Slim vertical handle tucked inside the sidebar's right edge, vertically centered. */
.rail-toggle{position:absolute;top:50%;right:7px;transform:translateY(-50%);width:18px;height:40px;border-radius:7px;background:transparent;border:none;color:var(--border2);display:flex;align-items:center;justify-content:center;z-index:40;padding:0;transition:background .15s ease,color .15s ease}
.rail-toggle:hover{background:var(--paper);color:var(--navy)}
.rail-toggle svg{width:13px;height:13px;transition:transform .18s ease}
html.sidebar-collapsed .rail-toggle{right:50%;transform:translate(50%,-50%)}
html.sidebar-collapsed .rail-toggle svg{transform:rotate(180deg)}
.sidebar-nav{flex:1;padding:8px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;overflow-x:hidden}
.nav-section{font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);opacity:.75;padding:14px 12px 6px}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:9px;color:#41506A;font-size:13px;font-weight:600;white-space:nowrap}
.nav-item svg{width:18px;height:18px;flex:none;stroke-width:2}
.nav-item .nav-label{flex:1}
.nav-item:hover{background:var(--paper);color:var(--navy)}
.nav-item.active{background:var(--sky);color:var(--blue);font-weight:800;box-shadow:inset 2px 0 0 var(--gold)}
.nav-item.disabled{opacity:.5;cursor:default}
.nav-item.disabled:hover{background:transparent;color:#41506A}
.nav-soon{margin-left:auto;font-size:9px;font-weight:800;letter-spacing:.4px;background:var(--paper);color:var(--muted);border:1px solid var(--border);padding:2px 6px;border-radius:999px}
.sidebar-foot{padding:12px 16px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}

.content{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{min-height:74px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 26px;position:sticky;top:0;z-index:10}
.topbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.topbar-title{font-family:var(--font-serif);font-size:23px;font-weight:700;color:var(--navy);letter-spacing:.2px}
.user-chip{display:flex;align-items:center;gap:10px}
.user-chip .avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px}
.user-chip .who{line-height:1.2}.user-chip .who .n{font-weight:800;font-size:13px;color:var(--ink)}.user-chip .who .e{font-size:11.5px;color:var(--muted)}
.user-chip form{margin-left:4px}
.user-chip button{background:#fff;border:1px solid var(--border2);color:var(--navy);border-radius:8px;padding:7px 10px;font-size:11.5px;font-weight:800}
.user-chip button:hover{background:var(--paper)}
.content-body{padding:24px 26px;max-width:1320px;width:100%}
.page-title{font-family:var(--font-serif);font-size:18px;font-weight:700;color:var(--navy);margin-bottom:3px}
.page-sub{font-size:12px;color:var(--muted);margin-bottom:15px;max-width:920px}
.count-chip{display:inline-flex;align-items:center;font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;background:var(--sky);color:var(--blue)}
.count-chip.green{background:var(--lgreen);color:var(--green)}

/* ---------- Layout helpers ---------- */
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.split{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.row-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
/* Inline date/filter field used in toolbars (keeps inputs from stretching to 100%) */
.date-field{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:800;color:var(--muted)}
.date-field>span{white-space:nowrap}
.date-field>.fi{width:auto;padding:8px 10px;font-size:12.5px}

/* ---------- Cards + KPIs ---------- */
.card{background:#fff;border:1px solid var(--border);border-radius:var(--r2);box-shadow:var(--shadow);margin-bottom:16px}
.card-h{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}
.card-title{font-size:13px;font-weight:900;color:var(--navy)}.card-b{padding:16px}
.kpi{background:#fff;border:1px solid var(--border);border-radius:var(--r2);padding:16px;box-shadow:var(--shadow)}
.kpi-l{font-size:10.5px;text-transform:uppercase;color:var(--muted);font-weight:900;letter-spacing:.3px}
.kpi-v{font-size:24px;font-weight:900;margin:6px 0;color:var(--navy);font-variant-numeric:tabular-nums}.kpi-s{font-size:11px;color:var(--muted)}
/* Clickable summary/filter cards (wraps to any count) */
.stat-cards{display:flex;flex-wrap:wrap;gap:10px}
.stat-card{flex:1 1 140px;min-width:130px;background:#fff;border:1px solid var(--border);border-radius:var(--r2);padding:12px 14px;box-shadow:var(--shadow);text-decoration:none;transition:border-color .12s,box-shadow .12s,transform .12s}
.stat-card:hover{border-color:var(--blue2);transform:translateY(-1px)}
.stat-card.active{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,111,164,.14)}
.stat-l{font-size:10.5px;text-transform:uppercase;color:var(--muted);font-weight:900;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-v{font-size:22px;font-weight:900;margin:4px 0 2px;color:var(--navy);font-variant-numeric:tabular-nums}
.stat-card.active .stat-v{color:var(--blue)}
.stat-card.empty{opacity:.5}.stat-card.empty:hover{opacity:1}
.stat-s{font-size:11px;color:var(--muted)}

/* ---------- Buttons ---------- */
.btn{background:var(--blue);color:#fff;padding:9px 13px;border-radius:9px;font-size:12px;font-weight:900;display:inline-flex;align-items:center;gap:6px}
.btn:hover{background:var(--blue2)}.btn.out{background:#fff;color:var(--navy);border:1px solid var(--border2)}
.btn.green{background:var(--green)}.btn.red{background:var(--red)}.btn.gold{background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--navy)}
.btn.sm{padding:6px 9px;font-size:11px}.btn.ghost{background:#fff;color:var(--blue);border:1px solid var(--border2)}.btn:disabled,.btn.disabled{opacity:.45;cursor:not-allowed;pointer-events:none}

/* ---------- Pagination ---------- */
.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}
.pager-info{font-size:12px;color:var(--muted)}
.pager-btns{display:flex;align-items:center;gap:10px}
.pager-cur{font-size:12px;font-weight:800;color:var(--navy)}

/* ---------- Forms ---------- */
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.form-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fg{margin-bottom:14px}.fg label{display:block;font-size:12px;color:#344054;font-weight:800;margin-bottom:6px}
/* Multi-column compact form layout (used by modal + full-page forms) */
.form-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px 18px}
.form-cols .fg{margin-bottom:0;min-width:0}
.form-cols .fg.span-all,.form-cols .fg:has(textarea),.form-cols .fg:has(input[type="checkbox"]){grid-column:1/-1}
@media(max-width:560px){.form-cols{grid-template-columns:1fr}}
.fi,.fs,.fta{width:100%;border:1px solid var(--border2);border-radius:9px;background:#fff;padding:10px 12px;font-size:13px;color:var(--ink)}
.fi:focus,.fs:focus,.fta:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(29,111,164,.12)}.fta{min-height:70px;resize:vertical}
.check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#475467;font-weight:700}.check input{width:16px;height:16px;accent-color:var(--blue)}
/* Adaptive forms: hide irrelevant field groups; gently reveal newly-shown ones. */
.fg.is-hidden{display:none}
@keyframes fgReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.fg-reveal{animation:fgReveal .18s ease}

/* ---------- Tables ---------- */
table{width:100%;border-collapse:collapse}
.tbl{border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;background:#fff;box-shadow:var(--shadow)}
thead th{background:#F9FAFB;color:var(--muted);font-size:11px;font-weight:800;text-transform:none;letter-spacing:.2px;text-align:left;padding:11px 14px;border-bottom:1px solid var(--border);white-space:nowrap}
tbody td{padding:12px 14px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}
tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#FAFBFD}
.td-r{text-align:right}.td-c{text-align:center}
.cell-avatar{display:flex;align-items:center;gap:10px}
.avatar-sm{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;flex:none}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}small{font-size:11px;color:var(--muted)}
/* Compact key/value meta bar (replaces big KPI cards in detail headers) */
.metabar{display:flex;flex-wrap:wrap;gap:12px 36px}
.metabar .m .l{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:800}
.metabar .m .v{font-size:15px;font-weight:700;color:var(--navy);margin-top:2px}
.metabar .m .s{font-size:11px;color:var(--muted)}
/* Larger variant for detail-page overview headers */
.metabar.lg{gap:14px 48px}
.metabar.lg .m .v{font-size:21px;font-weight:800;font-variant-numeric:tabular-nums}
.metabar.lg .m .v .cur{font-size:13px;font-weight:700;color:var(--muted)}

/* ---------- Stage lifecycle stepper (trade detail) ---------- */
.stage-track{display:flex;margin-top:18px;padding-top:18px;border-top:1px solid var(--border);overflow-x:auto}
.stage-step{flex:1 1 0;min-width:74px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;padding:0 4px}
.stage-step::before{content:"";position:absolute;top:13px;left:-50%;width:100%;height:2px;background:var(--border);z-index:0}
.stage-step:first-child::before{display:none}
.stage-step.done::before,.stage-step.current::before{background:var(--blue)}
.stage-dot{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;background:#fff;border:2px solid var(--border);color:var(--muted);transition:background .15s,border-color .15s,color .15s}
.stage-step.done .stage-dot{background:var(--blue);border-color:var(--blue);color:#fff}
.stage-step.current .stage-dot{background:#fff;border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 4px var(--sky)}
.stage-label{margin-top:8px;font-size:10px;font-weight:700;color:var(--muted);line-height:1.25;max-width:86px}
.stage-step.done .stage-label{color:#41506A}
.stage-step.current .stage-label{color:var(--navy);font-weight:800}
/* Inline inputs inside a table row (add/edit line items in place) */
.tbl-input{width:100%;padding:6px 8px;font-size:12.5px;border:1px solid var(--border2);border-radius:7px;background:#fff;color:var(--ink)}
.tbl-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,111,164,.10)}
tr.addrow td{background:#FBFCFE;vertical-align:middle}
/* Editable line-item grid (Xero-style squarish adjacent cells) */
table.grid{width:100%;border-collapse:collapse;background:#fff}
table.grid thead th{background:#F9FAFB;color:var(--muted);font-size:11px;font-weight:800;text-align:left;padding:8px 10px;border:1px solid var(--border);white-space:nowrap}
table.grid td{border:1px solid var(--border);padding:0;vertical-align:middle}
table.grid td .tbl-input{border:1px solid transparent;border-radius:0;width:100%;padding:9px 10px;background:transparent;font-size:12.5px}
table.grid td .tbl-input:focus{box-shadow:inset 0 0 0 2px var(--blue);border-color:transparent}
table.grid td.td-r .tbl-input{text-align:right}
table.grid td .amountc{display:block;padding:9px 10px;text-align:right;color:var(--navy);font-weight:700}
.grid-row.deleted{display:none}
.dele{display:none}
.row-del{background:transparent;border:none;color:var(--muted);cursor:pointer;width:100%;padding:7px 0}
.row-del:hover{color:var(--red)}
.grid-foot{display:flex;justify-content:space-between;align-items:center;padding:10px 2px 2px}
.add-row{font-weight:800;color:var(--blue);font-size:13px}

/* ---------- Trade detail: two-column work + reference rail ---------- */
.detail-cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.detail-main{min-width:0}
.detail-side{min-width:0;display:flex;flex-direction:column}
.detail-main>.card:last-child,.detail-side>.card:last-child{margin-bottom:0}
@media(max-width:1080px){.detail-cols{grid-template-columns:1fr}}

/* Compact reference rows (rail lists, e.g. supplier quotes) */
.mini-row{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:9px;color:inherit;border-bottom:1px solid var(--border)}
.mini-row:last-child{border-bottom:0}
.mini-row:hover{background:var(--paper)}
.mini-body{flex:1;min-width:0}
.mini-title{font-size:13px;font-weight:700;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-sub{font-size:11px;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Workflow card subheads + document checklist rows */
.wf-sub{font-size:11px;font-weight:900;letter-spacing:.3px;text-transform:uppercase;color:var(--muted)}
.wf-sub-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.cl-row{display:flex;gap:12px;align-items:center;padding:8px 2px;border-top:1px solid var(--border)}
.cl-stage{display:flex;align-items:center;gap:8px;min-width:170px;font-size:11.5px;font-weight:800;color:var(--navy)}
.cl-num{flex:none;width:20px;height:20px;border-radius:50%;background:var(--paper);border:1px solid var(--border);color:var(--muted);font-size:10px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}
.cl-chips{display:flex;gap:6px;flex-wrap:wrap}

/* ---------- Notes feed (timestamped running log) ---------- */
.note-add{display:flex;gap:10px;align-items:flex-end;margin-bottom:16px}
.note-add textarea.note-input{flex:1;resize:vertical;min-height:42px;line-height:1.45;font-family:var(--font-ui)}
.note-add .btn{white-space:nowrap}
.note-feed{display:flex;flex-direction:column;gap:10px}
.note{border:1px solid var(--border);border-left:3px solid var(--blue2);border-radius:9px;background:#fff;padding:9px 12px}
.note-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:3px}
.note-meta{font-size:11.5px;color:var(--muted)}
.note-who{font-weight:700;color:var(--navy)}
.note-del{color:var(--border2);font-size:13px;line-height:1;text-decoration:none;padding:2px 5px;border-radius:6px}
.note-del:hover{color:var(--red);background:var(--lred)}
.note-body{white-space:pre-wrap;font-size:13px;color:var(--ink);line-height:1.5}

/* ---------- Badges + boxes ---------- */
.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}
.ok{background:var(--lgreen);color:var(--green)}.mid{background:var(--lamber);color:var(--amber)}.bad{background:var(--lred);color:var(--red)}.info{background:var(--sky);color:var(--blue)}.soft{background:#EEF2F7;color:#64748B}.teal{background:var(--lteal);color:var(--teal)}
.info-box{border-radius:11px;padding:11px 14px;font-size:12.5px;line-height:1.5;background:var(--sky);color:var(--blue);border:1px solid #C4D6F5;margin-bottom:14px}
.warn-box{background:var(--lamber);color:var(--amber);border-color:#F4D7A8}.good-box{background:var(--lgreen);color:var(--green);border-color:#B9E5CC}.bad-box{background:var(--lred);color:var(--red);border-color:#F5C4BF}
.empty{text-align:center;padding:30px;color:var(--muted);font-size:13px}

/* ---------- Toasts (top-center, auto-dismiss) ---------- */
.toast-wrap{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:1000;
  display:flex;flex-direction:column;align-items:center;gap:10px;width:max-content;max-width:min(560px,92vw);pointer-events:none}
.toast{pointer-events:auto;cursor:pointer;width:100%;border-radius:11px;padding:12px 16px;font-size:13px;line-height:1.45;font-weight:500;
  background:var(--white);color:var(--ink);border:1px solid var(--border);box-shadow:var(--shadow-lg);
  opacity:0;transform:translateY(-10px);transition:opacity .22s ease,transform .22s ease}
.toast.show{opacity:1;transform:translateY(0)}
.toast.hide{opacity:0;transform:translateY(-10px)}
.toast.success{background:var(--lgreen);color:var(--green);border-color:#B9E5CC}
.toast.error{background:var(--lred);color:var(--red);border-color:#F5C4BF}
.toast.warning{background:var(--lamber);color:var(--amber);border-color:#F4D7A8}
.toast.info{background:var(--sky);color:var(--blue);border-color:#C4D6F5}

/* ---------- Split login ---------- */
.login{display:flex;min-height:100vh}
.login-left{flex:1;display:flex;flex-direction:column;padding:34px 40px;background:#fff}
.login-brand{display:flex;align-items:center;gap:10px}
.login-brand .m{width:36px;height:36px;display:flex;align-items:center;justify-content:center}
.login-brand .m img{width:36px;height:36px;object-fit:contain}
.login-brand .t{font-family:var(--font-serif);font-weight:700;color:var(--navy);font-size:17px}
.login-formwrap{flex:1;display:flex;align-items:center;justify-content:center}
.login-form{width:368px;max-width:100%}
.login-form h1{font-family:var(--font-serif);font-size:32px;font-weight:700;color:var(--navy);margin-bottom:6px}
.login-form .lead{font-size:13px;color:var(--muted);margin-bottom:26px}
.login-form .row{display:flex;align-items:center;justify-content:space-between;margin:6px 0 20px}
.login-form .btn{width:100%;justify-content:center;padding:11px;font-size:13px}
.login-foot{font-size:11px;color:var(--muted)}
.login-right{flex:1;position:relative;overflow:hidden;background:linear-gradient(140deg,var(--navy) 0%,var(--navy2) 55%,#10487A 100%);display:none}
.login-right .orb{position:absolute;width:440px;height:440px;border-radius:50%;left:50%;top:46%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 30%,var(--gold2),var(--gold) 45%,rgba(194,161,77,0) 70%);filter:blur(2px);opacity:.85}
.login-right .ring{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:560px;height:560px;border:1px solid rgba(255,255,255,.10);border-radius:50%}
.login-right .ring.two{width:720px;height:720px;border-color:rgba(255,255,255,.06)}
.login-right .cap{position:absolute;left:48px;bottom:44px;right:48px;color:#fff;z-index:2}
.login-right .cap h2{font-family:var(--font-serif);font-size:24px;font-weight:700;line-height:1.25;margin-bottom:8px}
.login-right .cap p{font-size:13px;color:rgba(255,255,255,.7);max-width:420px}
@media(min-width:920px){.login-right{display:block}}

/* ---------- Collapsed (mini) sidebar ---------- */
html.sidebar-collapsed .sidebar{width:var(--sidebar-w-collapsed)}
html.sidebar-collapsed .brand-text,
html.sidebar-collapsed .nav-label,
html.sidebar-collapsed .nav-soon,
html.sidebar-collapsed .nav-section,
html.sidebar-collapsed .sidebar-foot{display:none}
html.sidebar-collapsed .sidebar-brand{justify-content:center;padding:18px 0 14px}
html.sidebar-collapsed .nav-item{justify-content:center;padding:11px 10px;gap:0}
html.sidebar-collapsed .nav-item.active{box-shadow:inset 0 -2px 0 var(--gold)}

/* ---------- Mobile menu button (hidden on desktop) ---------- */
.menu-btn{display:none;background:#fff;border:1px solid var(--border2);border-radius:8px;width:38px;height:38px;align-items:center;justify-content:center;color:var(--navy)}

/* ---------- Modal overlay (vanilla, no deps) ---------- */
#modal:empty{display:none}
.modal-bg{position:fixed;inset:0;background:rgba(11,36,64,.45);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:44px 16px;overflow:auto}
.modal{background:#fff;border-radius:var(--r2);box-shadow:0 24px 80px rgba(0,0,0,.30);width:920px;max-width:96vw;animation:modalin .15s ease;display:flex;flex-direction:column;max-height:calc(100vh - 88px)}
.modal>form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
@keyframes modalin{from{transform:translateY(-8px);opacity:.5}to{transform:none;opacity:1}}
.modal-h{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--border);flex:none}
.modal-title{font-family:var(--font-serif);font-size:17px;font-weight:700;color:var(--navy)}
.modal-x{background:transparent;color:var(--muted);font-size:22px;line-height:1;width:30px;height:30px;border-radius:8px}
.modal-x:hover{background:var(--paper);color:var(--navy)}
.modal-b{padding:18px;overflow-y:auto;min-height:0;flex:1 1 auto}
.modal-f{display:flex;justify-content:flex-end;gap:8px;padding:13px 18px;border-top:1px solid var(--border);background:#FAFBFC;border-radius:0 0 var(--r2) var(--r2);flex:none}
.clickable{cursor:pointer}
tbody tr.clickable:hover{background:#F3F7FB}
tbody tr.clickable:hover .row-ref{color:var(--blue);text-decoration:underline}
.row-ref{color:inherit;text-decoration:none}

/* ---------- Related-trades picker (sourcing quote form) ---------- */
.rtp{display:flex;flex-direction:column;gap:8px}
.rtp-selected{display:flex;flex-direction:column;gap:7px}
.rtp-selected:not([hidden]){padding-bottom:9px;margin-bottom:1px;border-bottom:1px dashed var(--border2)}
.rtp-results{display:flex;flex-direction:column;gap:7px;max-height:300px;overflow:auto;padding:1px}
.rtp-card{display:flex;align-items:flex-start;gap:11px;border:1px solid var(--border2);border-radius:10px;background:#fff;padding:10px 12px;cursor:pointer;transition:border-color .12s,background .12s}
.rtp-card:hover{border-color:var(--blue2)}
.rtp-card:has(.rtp-check:checked){border-color:var(--blue);background:var(--sky)}
.rtp-check{width:16px;height:16px;margin-top:2px;accent-color:var(--blue);flex:none}
.rtp-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.rtp-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rtp-ref{font-weight:900;color:var(--navy);font-size:13px}
.rtp-buyer{font-weight:700;color:var(--ink);font-size:12.5px}
.rtp-status{margin-left:auto;font-size:9.5px;font-weight:800;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.3px}
.rtp-status.open{background:var(--sky);color:var(--blue)}
.rtp-status.done{background:var(--lgreen);color:var(--green)}
.rtp-status.cancel{background:var(--lred);color:var(--red)}
.rtp-sub{display:flex;flex-direction:column;gap:1px;min-width:0}
.rtp-goods{font-size:12px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rtp-goods.muted{color:var(--muted);font-style:italic}
.rtp-meta{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.rtp-note{font-size:11.5px;color:var(--muted);padding:3px 2px}

/* ---------- Responsive ---------- */
@media(max-width:1000px){
  .grid4,.grid3,.grid2,.form-grid,.form-grid3{grid-template-columns:1fr}
  .sidebar{position:fixed;left:0;top:0;z-index:50;width:var(--sidebar-w);transform:translateX(-100%);transition:transform .2s}
  .sidebar.open{transform:none;box-shadow:var(--shadow-lg)}
  html.sidebar-collapsed .sidebar{width:var(--sidebar-w)}  /* never mini on mobile */
  html.sidebar-collapsed .brand-text,html.sidebar-collapsed .nav-label,html.sidebar-collapsed .nav-soon,html.sidebar-collapsed .nav-section,html.sidebar-collapsed .sidebar-foot{display:revert}
  .menu-btn{display:flex}
  .rail-toggle{display:none}
  .content{width:100%}
}
