/* ============================================================
   SIGN-UP
   ============================================================ */
.steps-mini{list-style:none;counter-reset:sm;display:grid;gap:22px;margin-top:8px}
.steps-mini li{counter-increment:sm;display:grid;gap:5px;padding-inline-start:44px;position:relative}
.steps-mini li::before{
  content:counter(sm);position:absolute;inset-inline-start:0;top:0;width:28px;height:28px;border-radius:50%;
  border:1px solid var(--fg-steel-200);display:grid;place-items:center;font-size:13px;
  font-variant-numeric:tabular-nums;color:var(--fg-steel-500);
}
.steps-mini b{font-weight:500;font-size:16.5px}
.steps-mini span{font-size:15px;color:var(--fg-ink-muted);line-height:1.55}

.acct-type{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){ .acct-type{grid-template-columns:1fr} }
.acct{cursor:pointer;position:relative;display:block}
.acct input{position:absolute;opacity:0;width:0;height:0}
.acct span{display:grid;gap:4px;border:1px solid var(--fg-hairline);border-radius:var(--r-sm);padding:16px 18px;
  transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
.acct input:checked + span{border-color:var(--fg-navy-800);box-shadow:0 0 0 1px var(--fg-navy-800) inset}
.acct input:focus-visible + span{outline:2px solid var(--fg-navy-600);outline-offset:2px}
.acct b{font-weight:500;font-size:15.5px}
.acct em{font-style:normal;font-size:13px;color:var(--fg-ink-muted)}
.field-hint{font-style:normal;font-size:13px;color:var(--fg-steel-500);line-height:1.45}
/* A refusal has to look different from a hint, or it reads as more advice
   and the reader presses the same button again. Red carries it on both
   grounds this form appears on, and the left rule gives it an edge the eye
   catches without reading. */
.field-err{font-size:14px;line-height:1.5;color:#C2321F;font-weight:500;
  margin-top:2px;padding-inline-start:10px;border-inline-start:2px solid #C2321F}
.on-navy .field-err{color:#FF9C8C;border-inline-start-color:#FF9C8C}
input[aria-invalid="true"]{border-color:#C2321F}

.pending-card{border:1px solid var(--fg-hairline);border-radius:var(--r-md);padding:40px 36px;background:#fff;text-align:center}
.pending-card h3{margin:18px 0 12px}
.pending-card p{font-size:16px;color:var(--fg-ink-muted);max-width:44ch;margin-inline:auto;line-height:1.6}
.pending-card .hero-ctas{justify-content:center;margin-top:28px}

/* ============================================================
   DASHBOARD
   ============================================================ */
.dash{padding-block:44px 96px;background:var(--fg-mist-100);min-height:70vh}
.dash-grid{display:grid;grid-template-columns:250px 1fr;gap:36px;align-items:start}
@media (max-width:1000px){ .dash-grid{grid-template-columns:1fr;gap:24px} }

.dash-side{position:sticky;top:100px;display:grid;gap:20px}
@media (max-width:1000px){ .dash-side{position:static} }
.dash-user{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--fg-hairline);
  border-radius:var(--r-md);padding:16px}
.dash-avatar{width:40px;height:40px;flex:none;border-radius:50%;background:var(--fg-navy-800);color:#fff;
  display:grid;place-items:center;font-size:14px;font-weight:500;letter-spacing:.02em}
.dash-user b{display:block;font-size:15px;font-weight:500}
.dash-acct{font-size:12.5px;color:var(--fg-ink-muted)}
.dash-nav{display:grid;gap:2px;background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-md);padding:8px}
.dash-nav button{
  text-align:start;background:transparent;border:0;padding:11px 14px;border-radius:var(--r-sm);
  font-size:15px;color:var(--fg-ink-muted);cursor:pointer;transition:background .15s,color .15s;
}
.dash-nav button:hover{background:var(--fg-mist-100);color:var(--fg-ink)}
.dash-nav button.active{background:var(--fg-navy-800);color:#fff}
.dash-newbtn{justify-content:center}

.dash-main{min-width:0}
.dash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:26px}
.dash-head h1{font-size:clamp(24px,2.8vw,32px)}
.dash-sub{font-size:15px;color:var(--fg-ink-muted);margin-top:8px;max-width:60ch}
.dash-search{
  padding:11px 15px;border:1px solid var(--fg-hairline);border-radius:var(--r-sm);font-size:14.5px;
  min-width:260px;background:#fff;font-family:inherit;
}
.dash-search:focus{outline:none;border-color:var(--fg-navy-600)}

/* table */
.tablewrap{background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-md);overflow:auto}
.dtable{width:100%;border-collapse:collapse;font-size:14.5px;min-width:720px}
.dtable th{
  text-align:start;font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.09em;
  color:var(--fg-steel-500);padding:14px 18px;border-bottom:1px solid var(--fg-hairline);white-space:nowrap;
}
html[dir="rtl"] .dtable th{letter-spacing:0;text-transform:none;font-size:13.5px}
.dtable td{padding:15px 18px;border-bottom:1px solid var(--fg-hairline);vertical-align:middle}
.dtable tr:last-child td{border-bottom:0}
.dtable tbody tr{cursor:pointer;transition:background .13s}
.dtable tbody tr:hover{background:var(--fg-mist-100)}
.dtable .cid{font-family:var(--font-mono);font-size:13.5px;color:var(--fg-navy-800);white-space:nowrap}
.dtable .date{font-variant-numeric:tabular-nums;color:var(--fg-ink-muted);white-space:nowrap}
.dtable .due-soon{color:var(--fg-warning);font-weight:500}
.dtable .due-late{color:var(--fg-danger);font-weight:500}

/* status chips */
.chip-status{
  display:inline-flex;align-items:center;gap:7px;font-size:12.5px;padding:6px 11px;border-radius:var(--r-sm);
  border:1px solid var(--fg-hairline);background:var(--fg-mist-100);color:var(--fg-ink-muted);white-space:nowrap;
}
.chip-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.st-pay{background:#FDF6E7;border-color:#F0DFB8;color:#8A5D0F}
.st-recv{background:#F1F4F9;border-color:#DCE3EE;color:var(--fg-navy-700)}
.st-miss{background:#FEF7F6;border-color:#F0C9C5;color:var(--fg-danger)}
.st-rev,.st-des{background:#F1F4F9;border-color:#DCE3EE;color:var(--fg-navy-700)}
.st-ready{background:#F0F8F4;border-color:#CDE8DC;color:var(--fg-success)}
.st-closed{background:var(--fg-mist-100);border-color:var(--fg-hairline);color:var(--fg-steel-500)}

/* detail */
.backlink{background:transparent;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;
  font-size:14.5px;color:var(--fg-ink-muted);padding:0;margin-bottom:20px}
.backlink:hover{color:var(--fg-ink)}
.dash-head--detail{align-items:center}
.case-id{font-family:var(--font-mono);font-size:13.5px;color:var(--fg-steel-500);display:block;margin-bottom:6px}
.detail-grid{display:grid;grid-template-columns:1fr 320px;gap:32px;align-items:start}
@media (max-width:1000px){ .detail-grid{grid-template-columns:1fr} }
.block-h{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-steel-500);
  font-weight:500;margin-bottom:16px}
html[dir="rtl"] .block-h{letter-spacing:0;text-transform:none;font-size:14px}

.dtimeline{list-style:none;background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-md);
  padding:8px 22px;margin-bottom:32px}
.dtimeline li{display:grid;grid-template-columns:22px 1fr auto;gap:14px;align-items:start;padding:15px 0;
  border-bottom:1px solid var(--fg-hairline)}
.dtimeline li:last-child{border-bottom:0}
.tl-dot{width:11px;height:11px;border-radius:50%;border:2px solid var(--fg-steel-200);background:#fff;margin-top:5px}
.tl-done .tl-dot{background:var(--fg-navy-800);border-color:var(--fg-navy-800)}
.tl-now .tl-dot{background:#fff;border-color:var(--fg-navy-800);box-shadow:0 0 0 3px rgba(13,26,59,.12)}
.dtimeline b{font-weight:500;font-size:15px}
.tl-wait b{color:var(--fg-steel-500);font-weight:400}
.dtimeline .tl-when{font-size:13px;color:var(--fg-steel-500);font-variant-numeric:tabular-nums;white-space:nowrap}

.deliverables{display:grid;gap:12px;margin-bottom:32px}
.dfile-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--fg-hairline);
  border-radius:var(--r-md);padding:18px 20px}
.dfile-card svg{width:22px;height:22px;flex:none;stroke:var(--fg-navy-800);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.dfile-card div{flex:1;min-width:0}
.dfile-card b{display:block;font-weight:500;font-size:15px}
.dfile-card span{font-size:13px;color:var(--fg-steel-500)}
.dfile-card.locked{opacity:.55}
.viewer-slot{display:flex;gap:16px;align-items:flex-start;border:1.5px dashed var(--fg-steel-200);
  border-radius:var(--r-md);padding:24px;background:#fff}
.viewer-slot svg{width:26px;height:26px;flex:none;stroke:var(--fg-steel-400);fill:none;stroke-width:1.3;stroke-linejoin:round}
.viewer-slot b{display:block;font-weight:500;font-size:15px;margin-bottom:5px}
.viewer-slot span{font-size:14px;color:var(--fg-ink-muted);line-height:1.5}

.dcard{background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-md);padding:22px;margin-bottom:16px}
.dcard h4,.dcard h3{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-steel-500);
  font-weight:500;margin-bottom:16px}
html[dir="rtl"] .dcard h4,html[dir="rtl"] .dcard h3{letter-spacing:0;text-transform:none;font-size:14px}
.dcard--wide{max-width:640px}
.dcard .btn{width:100%;justify-content:center;margin-bottom:10px}
.rev-note{font-size:13px;color:var(--fg-steel-500);line-height:1.5}
.wait-note{font-size:14px;color:var(--fg-ink-muted);line-height:1.55}
.dfiles{list-style:none;display:grid;gap:10px}
.dfiles li{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.dfiles span{color:var(--fg-steel-500);font-variant-numeric:tabular-nums;white-space:nowrap}
.dfiles em{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dinv{display:grid;gap:10px;font-size:14.5px}
.dinv div{display:flex;justify-content:space-between;gap:12px}
.dinv b{font-weight:500;font-variant-numeric:tabular-nums}

/* archive */
.archive{display:grid;gap:14px}
.arow{background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-md);padding:20px 24px;
  display:grid;grid-template-columns:1fr auto;gap:10px 24px;align-items:center}
@media (max-width:700px){ .arow{grid-template-columns:1fr} }
.arow .cid{font-family:var(--font-mono);font-size:13px;color:var(--fg-steel-500)}
.arow b{display:block;font-weight:500;font-size:16px;margin-top:4px}
.arow .exp{font-size:13.5px;color:var(--fg-ink-muted);margin-top:6px;font-variant-numeric:tabular-nums}
.arow .exp.warn{color:var(--fg-warning);font-weight:500}

/* profile */
.prows{display:grid;gap:14px;font-size:15px}
.prows div{display:flex;justify-content:space-between;gap:16px}
.prows span{color:var(--fg-ink-muted)}
.prows b{font-weight:500;font-variant-numeric:tabular-nums}
.prows b.ok{color:var(--fg-success)}
.toggle-row--flat{border:0;padding:0;margin-top:0}

/* revision box */
.revbox{display:grid;gap:12px;margin-top:6px}
.revbox textarea{padding:12px 14px;border:1px solid var(--fg-hairline);border-radius:var(--r-sm);
  font-size:14.5px;font-family:inherit;resize:vertical}
.revbox textarea:focus{outline:none;border-color:var(--fg-navy-600)}
.done-msg{font-size:14.5px;color:var(--fg-success);line-height:1.5}
