
:root{
  --ink:#0b1520;--ink-2:#13212f;--ink-3:#1b2c3d;
  --paper:#f6f2eb;--paper-2:#ece5d8;--white:#fffdf9;
  --brass:#c49a4c;--brass-2:#e0c07e;--brass-ink:#8f6a2c;
  --text:#1c2631;--muted:#5d6772;--line:rgba(11,21,32,.12);--line-2:rgba(11,21,32,.07);
  --on-ink:#eae4d9;--on-ink-dim:rgba(234,228,217,.72);--ink-line:rgba(234,228,217,.12);
  --ok:#2f6b4f;--warn:#9a6a1f;--bad:#9b3b30;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-weight:400;font-size:15px;line-height:1.55;color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased}
a{color:var(--brass-ink)}
a:hover{color:var(--ink)}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1;color:var(--ink)}
h1{font-size:clamp(1.9rem,3.4vw,2.6rem)}
h2{font-size:1.55rem;margin-bottom:.6rem}
h3{font-size:1.2rem;margin-bottom:.4rem}
p{margin:0 0 .8rem}
.small{font-size:.84rem;color:var(--muted)}
.muted{color:var(--muted)}
.eyebrow{display:block;font-size:.68rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--brass-ink);margin-bottom:.8rem}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.right{text-align:right}

/* auth pages */
body.auth{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;background:var(--ink)}
.auth-card{width:min(420px,100%);background:var(--white);padding:36px 32px;border-top:3px solid var(--brass)}
.auth-logo img{width:240px;height:auto;margin-bottom:26px}
.auth-card h1{font-size:2rem;margin-bottom:.4rem}
.auth-card .lede{color:var(--muted);margin-bottom:1.2rem}
.auth-foot{margin-top:18px;color:var(--on-ink-dim)}
.auth-foot a{color:var(--brass-2)}

/* app shell */
body.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.rail{background:var(--ink);color:var(--on-ink);padding:28px 20px;display:flex;flex-direction:column;gap:8px;position:sticky;top:0;height:100vh}
.rail-logo img{width:150px;height:auto}
.rail-area{font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--brass-2);margin:10px 0 14px}
.rail-nav{display:flex;flex-direction:column;gap:2px}
.rail-nav a{color:var(--on-ink-dim);text-decoration:none;padding:9px 12px;border-left:2px solid transparent}
.rail-nav a:hover{color:#fff;background:var(--ink-2)}
.rail-nav a.on{color:#fff;border-left-color:var(--brass);background:var(--ink-2)}
.rail-user{margin-top:auto;border-top:1px solid var(--ink-line);padding-top:14px;display:flex;flex-direction:column;gap:4px}
.rail-user .small{color:var(--on-ink-dim);word-break:break-all}
.linkbtn{background:none;border:0;color:var(--brass-2);font:inherit;font-size:.84rem;padding:0;cursor:pointer;text-align:left}
.linkbtn:hover{text-decoration:underline}
.tabs{display:none}
.main{padding:32px clamp(16px,3.4vw,44px) 64px;min-width:0}
.main-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:22px;flex-wrap:wrap}

/* cards, grids */
.grid{display:grid;gap:16px}
.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))}
.card{background:var(--white);border:1px solid var(--line);padding:20px 22px;min-width:0}
.card + .card,.grid + .card,.card + .grid,.grid + .grid{margin-top:16px}
.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.card-head h2{margin:0}
.kpi .label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.kpi .value{font-family:var(--serif);font-size:2.2rem;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}
.kpi .sub{font-size:.82rem;color:var(--muted)}
.kpi.dark{background:var(--ink);border-color:var(--ink)}
.kpi.dark .value{color:var(--brass-2)}
.kpi.dark .label,.kpi.dark .sub{color:var(--on-ink-dim)}
dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px}
dl.facts dt{color:var(--muted);font-size:.86rem}
dl.facts dd{margin:0}

/* tables */
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500;text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px;border-bottom:1px solid var(--line-2);vertical-align:top}
tr:last-child td{border-bottom:0}
td .small{display:block}
td > a[href*="/invoices/"],.inv-no{white-space:nowrap}
.empty{padding:22px;text-align:center;color:var(--muted);font-size:.92rem}

/* pills */
.pill{display:inline-block;font-size:.7rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--paper-2);color:var(--text);white-space:nowrap}
.pill.ok{background:#dcebe2;color:var(--ok)}
.pill.warn{background:#f3e5c8;color:var(--warn)}
.pill.bad{background:#f2d9d5;color:var(--bad)}
.pill.ink{background:var(--ink);color:var(--brass-2)}

/* forms */
form.stack > * + *{margin-top:12px}
label{display:block;font-size:.8rem;font-weight:500;color:var(--text);margin-bottom:4px}
input[type=text],input[type=email],input[type=password],input[type=url],input[type=date],input[type=number],input[type=file],select,textarea{width:100%;font:inherit;font-size:.95rem;padding:10px 12px;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:0}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brass);outline-offset:0;border-color:var(--brass)}
.row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inline select,.inline input{width:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.8em 1.4em;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font:inherit;font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;cursor:pointer;line-height:1.2}
.btn:hover{background:var(--ink-3);color:#fff}
.btn.gold{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.btn.gold:hover{background:var(--brass-2)}
.btn.ghost{background:none;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn.sm{padding:.55em .9em;font-size:.64rem}
.btn.full{width:100%}
.btn.danger{background:none;border-color:var(--bad);color:var(--bad)}
.flash{padding:12px 16px;margin-bottom:16px;border-left:3px solid;font-size:.92rem}
.flash.ok{background:#e6f0ea;border-color:var(--ok);color:var(--ok)}
.flash.bad{background:#f6e3e0;border-color:var(--bad);color:var(--bad)}
details.more{margin-top:12px}
details.more summary{cursor:pointer;color:var(--brass-ink);font-size:.88rem}
details.more[open] summary{margin-bottom:10px}
.copy{font-family:ui-monospace,Menlo,monospace;font-size:.8rem;word-break:break-all;background:var(--paper-2);padding:8px 10px}

/* pipeline */
.pipe{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:12px;overflow-x:auto}
.pipe-col{background:var(--paper-2);padding:12px;min-height:120px}
.pipe-col h3{font-family:var(--sans);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between}
.pipe-card{display:block;background:var(--white);border:1px solid var(--line);padding:8px 10px;margin-top:8px;text-decoration:none;color:var(--text);font-size:.86rem}
.pipe-card:hover{border-color:var(--brass);color:var(--text)}

/* thread */
.thread{display:flex;flex-direction:column;gap:10px}
.msg{background:var(--paper);border-left:3px solid var(--line);padding:10px 14px}
.msg.owner{border-left-color:var(--brass)}
.msg .who{font-size:.78rem;color:var(--muted);margin-bottom:4px}
.pre{white-space:pre-wrap;word-wrap:break-word}

@media (max-width:1000px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  body.app{display:block;padding-bottom:64px}
  .rail{position:static;height:auto;padding:14px 16px;flex-direction:row;align-items:center;justify-content:space-between}
  .rail-logo img{width:110px}
  .rail-area,.rail-nav{display:none}
  .rail-user{margin:0;border:0;padding:0;align-items:flex-end}
  .rail-user .small{display:none}
  .tabs{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:10;background:var(--ink);overflow-x:auto;border-top:1px solid var(--ink-line)}
  .tabs a{flex:1 0 auto;color:var(--on-ink-dim);text-decoration:none;font-size:.74rem;padding:14px 12px;text-align:center;white-space:nowrap}
  .tabs a.on{color:var(--brass-2);box-shadow:inset 0 2px 0 var(--brass)}
  .main{padding:22px 16px 40px}
  .g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}
  .g4.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi .value{font-size:1.7rem}
  .auth-card{padding:28px 20px}
}
