@font-face { font-family: 'Montserrat'; font-weight: 400; font-display: swap; src: url('/fonts/montserrat-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-weight: 600; font-display: swap; src: url('/fonts/montserrat-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-weight: 700; font-display: swap; src: url('/fonts/montserrat-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-weight: 800; font-display: swap; src: url('/fonts/montserrat-latin-800-normal.woff2') format('woff2'); }
:root { --green:#0F6939; --green-dark:#0a4d29; --red:#DC1B23; --ink:#1d2421; --muted:#5d6b64; --line:#dfe5e1; --bg:#f4f7f5; --card:#fff; }
* { box-sizing: border-box; }
body { margin:0; font-family: Montserrat, system-ui, sans-serif; color:var(--ink); background:var(--bg); line-height:1.5; }
.top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px; background:#fff; border-bottom:3px solid var(--green); position:sticky; top:0; z-index:5; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--green); font-weight:800; font-size:1.15rem; letter-spacing:.02em; }
.brand b { color:var(--red); }
nav { display:flex; flex-wrap:wrap; gap:4px; }
nav a, nav button { font:inherit; font-size:.9rem; font-weight:600; color:var(--green-dark); background:none; border:0; padding:8px 10px; border-radius:6px; cursor:pointer; text-decoration:none; }
nav a[aria-current] { background:#e6f1eb; }
main { max-width:1100px; margin:0 auto; padding:24px 16px 48px; outline:none; }
h1 { font-size:1.6rem; margin:0 0 4px; color:var(--green); font-weight:800; }
h2 { font-size:1.15rem; margin:24px 0 8px; }
.muted { color:var(--muted); }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:18px; margin:14px 0; }
.narrow { max-width:420px; margin:40px auto; }
label { display:block; font-weight:600; font-size:.9rem; margin:12px 0 4px; }
input, select, textarea { width:100%; font:inherit; padding:10px 12px; border:1px solid #c9d3cd; border-radius:8px; background:#fff; }
textarea { min-height:100px; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
@media (max-width:640px) { .grid2 { grid-template-columns:1fr; } h1 { font-size:1.35rem; } }
.btn { display:inline-block; font:inherit; font-weight:700; padding:10px 18px; border-radius:8px; border:2px solid var(--green); background:var(--green); color:#fff; cursor:pointer; margin-top:14px; text-decoration:none; }
.btn.ghost { background:#fff; color:var(--green); }
.btn.red { border-color:var(--red); background:#fff; color:var(--red); }
.btn:disabled { opacity:.6; cursor:wait; }
.err { color:var(--red); font-weight:600; margin-top:10px; }
.ok { color:var(--green); font-weight:600; margin-top:10px; }
table { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; font-size:.92rem; }
th, td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
th { background:#eef4f0; font-weight:700; color:var(--green-dark); }
td.num, th.num { text-align:right; white-space:nowrap; }
tr.link { cursor:pointer; } tr.link:hover td { background:#f7faf8; }
.table-wrap { overflow-x:auto; }
.pill { display:inline-block; font-size:.78rem; font-weight:700; padding:2px 8px; border-radius:99px; background:#eef4f0; color:var(--green-dark); text-transform:capitalize; }
.pill.requested { background:#fff4e0; color:#8a5a00; } .pill.quoted { background:#e7f0ff; color:#1f4f9a; } .pill.accepted, .pill.delivered { background:#e3f4ea; color:var(--green-dark); } .pill.declined, .pill.cancelled, .pill.expired { background:#fde8e8; color:#9b1c1c; }
.timeline { list-style:none; padding:0; margin:0; } .timeline li { border-left:3px solid var(--green); padding:2px 0 14px 14px; position:relative; } .timeline li::before { content:''; position:absolute; left:-8px; top:6px; width:13px; height:13px; border-radius:50%; background:var(--green); }
.row { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; }
.foot { text-align:center; color:var(--muted); font-size:.8rem; padding:20px 16px 30px; }
dl.facts { display:grid; grid-template-columns:max-content 1fr; gap:6px 16px; margin:0; } dl.facts dt { font-weight:700; color:var(--muted); } dl.facts dd { margin:0; }

@media (max-width:640px) { .top { padding:8px 12px; } nav { width:100%; justify-content:flex-start; } nav a, nav button { padding:6px 8px; font-size:.85rem; } th, td { padding:8px; } }

/* Phase 1 screens */
.grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:0 14px; }
.grid4 { display:grid; grid-template-columns:repeat(4,1fr); gap:0 14px; }
@media (max-width:900px) { .grid4 { grid-template-columns:1fr 1fr; } .grid3 { grid-template-columns:1fr 1fr; } }
@media (max-width:640px) { .grid3, .grid4 { grid-template-columns:1fr; } }
.btn.small { padding:6px 12px; font-size:.85rem; margin-top:6px; }
.link-btn { font:inherit; background:none; border:0; color:var(--green-dark); text-decoration:underline; cursor:pointer; padding:2px 4px; }
.inline-msg { margin-left:8px; font-size:.88rem; } .inline-msg.ok { color:var(--green); font-weight:600; } .inline-msg.err { color:var(--red); font-weight:600; }
label.check { display:flex; align-items:center; gap:6px; font-weight:600; margin:12px 0 4px; } label.check input { width:auto; }
.notice { font-weight:800; text-transform:uppercase; border:2px solid var(--ink); padding:10px 12px; border-radius:6px; background:#fffdf3; }
.pre { white-space:pre-wrap; }
table.editor input, table.editor select { padding:6px 8px; font-size:.85rem; min-width:70px; }
table.editor td { padding:4px 6px; }
ul.missing { margin:4px 0 10px; padding-left:20px; color:#8a3b00; }
.stack { display:flex; flex-direction:column; gap:4px; align-items:flex-start; }
details { margin:8px 0; } details summary { cursor:pointer; color:var(--green-dark); font-weight:600; }
details.inline { display:inline-block; margin:0 0 0 6px; }
textarea.tall { min-height:260px; font-size:.85rem; }
section h3 { margin:0 0 6px; font-size:1rem; }
.eei { margin-top:14px; border-top:1px solid var(--line); padding-top:10px; }
.picker select { max-width:420px; }
.pill.required, .pill.not_assessed, .pill.draft, .pill.unmatched, .pill.expected { background:#fff4e0; color:#8a5a00; }
.pill.filed, .pill.exempt, .pill.issued, .pill.posted, .pill.billed, .pill.accrued, .pill.matched, .pill.received, .pill.departed, .pill.arrived, .pill.released, .pill.closed { background:#e3f4ea; color:var(--green-dark); }
.pill.void, .pill.ignored { background:#fde8e8; color:#9b1c1c; }
table.editor input[aria-label='Value USD'], table.editor input[aria-label='Schedule B'] { min-width:110px; }
table.editor input[aria-label='Description'] { min-width:160px; }
.small { font-size:.8rem; }
.bar { display:inline-flex; align-items:center; gap:6px; } .bar .track { display:inline-block; width:120px; height:10px; background:#e3ece6; border-radius:5px; overflow:hidden; } .bar .fill { display:block; height:100%; background:var(--green); } .bar.over .fill { background:var(--red); }
.pill.on_hand, .pill.planning, .pill.disputed, .pill.possible_match, .pill.not_checked, .pill.damaged, .pill.wet, .pill.short, .pill.over { background:#fff4e0; color:#8a5a00; }
.pill.loaded, .pill.good, .pill.clear, .pill.cleared, .pill.invoiced, .pill.resolved { background:#e3f4ea; color:var(--green-dark); }
.pill.blocked { background:#fde8e8; color:#9b1c1c; }
