:root{--paper: #faf7f2;--sand: #f7f4ef;--sand-deep: #ebe4d8;--ink: #14323a;--ink-soft: #3a5560;--sea: #1f7a78;--coral: #e07a5f;--coral-deep: #c9654c;--white: #fff;--line: rgba(20, 50, 58, .12);--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--ease: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--paper);line-height:1.5}h1,h2{font-family:var(--font-display);font-weight:560;letter-spacing:-.03em;margin:0 0 .4em}h1{font-size:2rem}h2{font-size:1.15rem}a{color:var(--sea)}.page-loading{padding:2rem}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:1.25rem;padding:.85rem 1.5rem;background:#faf7f2eb;border-bottom:1px solid var(--line);position:sticky;top:0}.topbar__brand{display:flex;flex-direction:column;line-height:1.2}.topbar__brand span{color:var(--ink-soft);font-size:.8rem}.topbar__nav{display:flex;gap:1rem;flex:1}.topbar__nav a{color:var(--ink);font-weight:600;text-decoration:none}.topbar__nav a.active{color:var(--coral-deep)}.main{padding:1.5rem;max-width:72rem;width:100%;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--sea);margin:0 0 .35rem}.muted{color:var(--ink-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.1rem;border-radius:.2rem;border:1px solid transparent;font:inherit;font-weight:600;cursor:pointer}.btn--primary{background:var(--coral);color:#fff}.btn--primary:hover{background:var(--coral-deep)}.btn--ghost{background:transparent;border-color:var(--line);color:inherit;text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem}.tab{border:1px solid var(--line);background:var(--white);padding:.4rem .75rem;font:inherit;cursor:pointer;border-radius:999px}.tab.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}.table{width:100%;border-collapse:collapse;background:var(--white)}.table th,.table td{text-align:left;padding:.65rem .75rem;border-bottom:1px solid var(--line)}.table th{font-size:.8rem;color:var(--ink-soft);font-weight:600}.pill{display:inline-block;padding:.15rem .55rem;border-radius:999px;background:var(--sand-deep);font-size:.8rem;font-weight:600}.pill--quoted,.pill--invoice_sent{background:#e8f4f2}.pill--paid,.pill--fulfilled{background:#dcefe4}.pill--lost{background:#f8e4de}.pill--in_production{background:#efe6d6}.pill--holiday{background:#f6e4ec;margin-left:.4rem}.line-items{margin:0;padding-left:1.1rem}.card{background:var(--white);border:1px solid var(--line);padding:1.1rem 1.2rem;margin-bottom:1rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stack{display:flex;flex-direction:column}label{display:grid;gap:.3rem;margin:0 0 .85rem;font-weight:600;font-size:.9rem}input,select,textarea{font:inherit;font-weight:400;padding:.55rem .65rem;border:1px solid var(--line);border-radius:.2rem;background:var(--sand)}.kv{display:grid;grid-template-columns:8.5rem 1fr;gap:.35rem .75rem;margin:0}.kv dt{color:var(--ink-soft)}.kv dd{margin:0}.prewrap{white-space:pre-wrap}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:.65rem 0;border-bottom:1px solid var(--line);display:grid;gap:.15rem}.timeline li p{margin:.2rem 0 0}.file-list{margin:.75rem 0 0;padding-left:1.1rem}.banner{padding:.7rem .85rem;border-radius:.2rem}.banner--error{background:#f8e4de}.login{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login__card{max-width:24rem;width:100%}.filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin-bottom:1rem}.filters label{margin:0}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem;margin-bottom:1rem}.stat{background:var(--white);border:1px solid var(--line);padding:.9rem;display:grid;gap:.15rem}.stat strong{font-size:1.6rem;font-family:var(--font-display)}@media(max-width:900px){.grid-2,.stat-grid{grid-template-columns:1fr}.topbar{flex-wrap:wrap}}
