:root{
  --bg:#0B0F16; --panel:#101724; --panel-2:#0D1420; --border:#1E2733;
  --border-soft:#26314480; --text:#E8ECF1; --text-dim:#9AA6B8; --text-mute:#5C6B80;
  --accent:#4F8FB5; --accent-soft:#16324A; --accent-bright:#8FCBEA;
  --green:#7FD8A0; --amber:#E5A44D; --red:#E58F8F; --red-bg:#2A1618;
  --text-strong:#F2F5F9; --summary-grad-1:#132033; --summary-grad-2:#0F1826;
  --summary-border:#2A4A66; --amber-bg:#2A2113; --input-unlocked-bg:#141B27;
}
:root[data-theme="light"]{
  --bg:#F3F5F8; --panel:#FFFFFF; --panel-2:#F6F8FA; --border:#DCE2EA;
  --border-soft:#C9D2DE80; --text:#1A2333; --text-dim:#57647A; --text-mute:#8894A6;
  --accent:#2E6F94; --accent-soft:#E3EEF5; --accent-bright:#1D5878;
  --green:#1E8F5A; --amber:#B5760F; --red:#C6423C; --red-bg:#FBEAE9;
  --text-strong:#111826; --summary-grad-1:#E9F0F6; --summary-grad-2:#DCE8F1;
  --summary-border:#B9CFDE; --amber-bg:#FCEFD9; --input-unlocked-bg:#FFF9EC;
}
body{transition:background-color .15s, color .15s;}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);font-family:'IBM Plex Sans',system-ui,sans-serif;}
.wrap{max-width:1040px;margin:0 auto;padding:32px 20px 60px;}
.loading{padding:60px;text-align:center;color:var(--text-mute);}
.hdr{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px;
     border-bottom:1px solid var(--border);padding-bottom:20px;margin-bottom:22px;}
.eyebrow{font-size:11px;letter-spacing:.2em;color:var(--accent);font-family:monospace;text-transform:uppercase;margin-bottom:4px;}
h1{font-size:26px;font-weight:600;letter-spacing:-0.01em;margin:0;color:var(--text-strong);}
.sub{font-size:13px;color:var(--text-mute);margin-top:4px;}
.tabs{display:flex;gap:4px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:4px;}
.tab{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:6px;font-size:12.5px;font-weight:500;
     cursor:pointer;color:var(--text-mute);border:none;background:none;}
.tab.active{background:var(--accent-soft);color:var(--accent-bright);}
.tab:hover:not(.active){color:var(--text-dim);}

.dropzone{border:1.5px dashed var(--border);border-radius:10px;padding:22px;text-align:center;margin-bottom:20px;
           background:var(--panel);cursor:pointer;transition:border-color .15s;}
.dropzone:hover, .dropzone.drag{border-color:var(--accent);}
.dropzone .icon{font-size:22px;margin-bottom:6px;}
.dropzone .main{font-size:13.5px;color:var(--text-dim);font-weight:500;}
.dropzone .hint{font-size:11.5px;color:var(--text-mute);margin-top:3px;}
input[type=file]{display:none;}
.status-line{font-size:12px;color:var(--accent-bright);margin-top:10px;font-family:monospace;}
.error-line{font-size:12px;color:var(--red);margin-top:10px;font-family:monospace;}

.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;margin-bottom:12px;overflow:hidden;}
.card-hdr{display:flex;align-items:center;gap:12px;padding:14px 16px;}
.idx{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:5px;
     background:var(--accent-soft);font-family:monospace;font-size:11px;color:var(--accent);flex-shrink:0;}
.name-input{background:transparent;border:none;color:var(--text-strong);font-size:15px;font-weight:500;width:100%;outline:none;}
.flags{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap;}
.flag{font-size:10px;display:flex;align-items:center;gap:3px;padding:2px 6px;border-radius:4px;}
.flag.lock{color:var(--text-mute);}
.flag.unlock{color:var(--amber);}
.flag.mod{color:var(--red);background:var(--red-bg);}
.flag.unverified{color:var(--amber);background:var(--amber-bg);}
.flag.verified{color:var(--green);}
.flag.src{color:var(--text-mute);}
.price-box{text-align:right;flex-shrink:0;}
.price-box .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-mute);}
.price-box .val{font-family:monospace;font-size:16px;color:var(--green);}
.icon-btn{background:none;border:none;color:var(--text-mute);cursor:pointer;padding:4px;flex-shrink:0;font-size:14px;}
.icon-btn:hover{color:var(--red);}
.chevron{background:none;border:none;color:var(--text-mute);cursor:pointer;padding:2px;font-size:13px;}
.chevron:hover{color:var(--text-dim);}

.card-body{padding:0 16px 16px;border-top:1px solid var(--border);}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:14px 0;}
@media(max-width:700px){.grid4{grid-template-columns:repeat(2,1fr);}}
label.field{display:flex;flex-direction:column;gap:4px;}
label.field span{font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:var(--text-dim);font-weight:500;}
input.f, select.f{background:var(--panel-2);border:1px solid var(--border);border-radius:5px;padding:7px 9px;
      color:var(--text);font-size:13px;font-family:monospace;outline:none;width:100%;}
input.f:focus, select.f:focus, textarea.f:focus{border-color:var(--accent);}
select.f{font-family:inherit;}
.desc-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.desc-hdr span{font-size:11px;text-transform:uppercase;color:var(--text-dim);font-weight:500;}
.link-btn{background:none;border:none;color:var(--accent);font-size:11px;font-weight:500;cursor:pointer;
          display:flex;align-items:center;gap:4px;padding:0;}
.link-btn:hover{color:var(--accent-bright);}
textarea.f{width:100%;font-family:monospace;font-size:12px;line-height:1.6;border-radius:5px;padding:9px 11px;
           resize:vertical;background:var(--panel-2);border:1px solid var(--border);color:var(--text-mute);}
textarea.f.unlocked{background:var(--input-unlocked-bg);border-color:var(--amber);color:var(--text);}
details.orig{margin-top:6px;font-size:11px;color:var(--text-mute);}
details.orig summary{cursor:pointer;color:var(--red);}
details.orig pre{white-space:pre-wrap;margin-top:4px;padding:8px;background:var(--panel-2);border:1px solid var(--border);
                  border-radius:5px;font-family:monospace;}

.overrides{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:0 0 14px;padding:10px;
           background:var(--panel-2);border:1px solid var(--border);border-radius:6px;}
@media(max-width:700px){.overrides{grid-template-columns:repeat(2,1fr);}}
.ledger{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:2px 12px;}
.lrow{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px dashed var(--border-soft);}
.lrow:last-child{border-bottom:none;}
.lrow .op{color:var(--accent);font-family:monospace;font-size:11px;width:16px;display:inline-block;}
.lrow .lbl{font-size:12.5px;color:var(--text-dim);}
.lrow .val{font-family:monospace;font-size:13px;color:var(--text);}
.lrow.total{border-top:1px solid var(--border-soft);border-bottom:none;padding-top:10px;margin-top:4px;}
.lrow.total .lbl{font-size:12px;font-weight:500;color:var(--text-dim);}
.lrow.total .val{font-size:15px;font-weight:600;color:var(--green);}

.add-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;
         border:1.5px dashed var(--border);border-radius:8px;background:none;color:var(--accent);
         font-size:13px;font-weight:500;cursor:pointer;margin-bottom:26px;}
.add-btn:hover{border-color:var(--accent);color:var(--accent-bright);}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:700px){.two-col{grid-template-columns:1fr;}}
.panel-title{font-size:11px;text-transform:uppercase;color:var(--text-mute);font-weight:500;margin-bottom:14px;letter-spacing:.02em;}
.terms-panel, .summary-panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px;}
.summary-panel{background:linear-gradient(135deg,var(--summary-grad-1),var(--summary-grad-2));border-color:var(--summary-border);display:flex;flex-direction:column;justify-content:space-between;}
.sum-row{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:5px;}
.sum-row span:first-child{color:var(--text-mute);}
.sum-row span:last-child{font-family:monospace;color:var(--text-dim);}
.grand{border-top:1px solid var(--summary-border);padding-top:14px;margin-top:8px;}
.grand .lbl{font-size:11px;text-transform:uppercase;color:var(--text-dim);margin-bottom:2px;}
.grand .val{font-family:monospace;font-size:30px;font-weight:600;color:var(--text-strong);}
.grand .note{font-size:11px;color:var(--text-mute);margin-top:3px;}

.basis-row{display:flex;gap:8px;margin-top:6px;}
.basis-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px;border-radius:6px;
           font-size:12.5px;font-weight:500;border:1px solid var(--border);background:none;color:var(--text-mute);cursor:pointer;}
.basis-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-bright);}

.doc-shell{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:20px;}
.doc-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px;}
@media(max-width:700px){.doc-fields{grid-template-columns:repeat(2,1fr);}}
.doc-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:12px;}
.btn-primary{background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent-bright);
             padding:8px 16px;border-radius:6px;font-size:12.5px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;}
.btn-primary:hover{background:var(--accent);color:var(--panel);}
.doc-frame{width:100%;height:1000px;border:none;border-radius:6px;background:#fff;}

.footnote{font-size:11px;color:var(--text-mute);margin-top:24px;line-height:1.6;}

.theme-toggle{background:var(--panel);border:1px solid var(--border);border-radius:8px;
  width:38px;height:38px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.theme-toggle:hover{border-color:var(--accent);}

.quotes-shell{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px;}
.quotes-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.quotes-list{display:flex;flex-direction:column;gap:8px;}
.quote-row{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;
  background:var(--panel-2);border:1px solid var(--border);border-radius:8px;}
.quote-row.current{border-color:var(--accent);background:var(--accent-soft);}
.quote-no{font-size:13.5px;font-weight:600;color:var(--text-strong);display:flex;align-items:center;gap:8px;}
.current-badge{font-size:9.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--accent-bright);
  background:var(--accent-soft);padding:2px 6px;border-radius:4px;font-weight:600;}
.quote-meta{font-size:11.5px;color:var(--text-mute);margin-top:3px;}
.empty-note{font-size:13px;color:var(--text-mute);padding:20px;text-align:center;}
