:root{--ink:#14213d;--muted:#5b6b82;--line:#dbe2ec;--bg:#f6f8fb;--card:#fff;--brand:#0f766e;--brand-dark:#115e59;--ok:#137547;--warn:#9a6a00;--bad:#b42318;--chip:#e6f4f1}*{box-sizing:border-box}html{font-family:ui-sans-system,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}body{margin:0;color:var(--ink);background:var(--bg);line-height:1.55}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1120px;margin:0 auto;padding:0 20px}header.site{background:#fff;border-bottom:1px solid var(--line)}.site-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0}.logo{font-weight:800;font-size:20px;color:var(--ink)}.logo span{color:var(--brand)}nav.links a{margin-left:18px;color:var(--ink);font-size:15px}.hero{padding:64px 0 40px}.hero h1{font-size:42px;line-height:1.12;margin:0 0 14px;letter-spacing:-.02em}.hero p.lede{font-size:19px;color:var(--muted);max-width:680px}.btn{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:8px;padding:11px 18px;font-size:15px;font-weight:600;cursor:pointer}.btn:hover{background:var(--brand-dark);text-decoration:none}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--bad)}.btn.small{padding:7px 12px;font-size:13px}.grid{display:grid;grid-gap:16px;gap:16px}.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c2{grid-template-columns:repeat(2,1fr)}.grid.c5{grid-template-columns:repeat(5,1fr)}@media(max-width:900px){.grid.c2,.grid.c3,.grid.c5{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}.card h3{margin-top:0}.muted{color:var(--muted)}.small{font-size:13px}.stat{font-size:30px;font-weight:800}.stat-label{color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;background:var(--chip)}.badge.EXPIRED{background:#fdeceb;color:var(--bad)}.badge.EXPIRING{background:#fff4d6;color:var(--warn)}.badge.MISSING{background:#eceff3;color:#47536b}.badge.REVIEWED{background:#e5f4ec;color:var(--ok)}.badge.UPLOADED_NEEDS_REVIEW{background:#e8effe;color:var(--brand-dark)}table{width:100%;border-collapse:collapse;background:#fff}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}label{display:block;font-weight:600;font-size:14px;margin:14px 0 6px}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:15px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:1px}.error{background:#fdeceb;border:1px solid #f5c6c2;color:var(--bad);border-radius:8px}.error,.notice{padding:10px 14px;margin:12px 0}.notice{background:#eef6ff;border:1px solid #c8ddff;border-radius:8px}footer.site{border-top:1px solid var(--line);margin-top:64px;padding:28px 0;color:var(--muted);font-size:14px;background:#fff}.app-shell{display:grid;grid-template-columns:230px 1fr;grid-gap:24px;gap:24px;padding:28px 0 48px}@media(max-width:900px){.app-shell{grid-template-columns:1fr}}.side{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;height:-moz-fit-content;height:fit-content}.side a{display:block;padding:9px 10px;border-radius:8px;color:var(--ink)}.side a:hover{background:var(--chip);text-decoration:none}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:16px}.toolbar .grow{flex:1 1;min-width:180px}.price{font-size:34px;font-weight:800}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:10px 0;border-bottom:1px solid var(--line)}.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:10}.badge.Draft{background:#eceff3;color:#47536b}.badge.Sent{background:#fff4d6;color:#9a6a00}.badge.Approved{background:#e5f4ec;color:#137547}.badge.Declined{background:#fdeceb;color:#b42318}.badge.Canceled,.badge.Expired,.badge.Superseded{background:#eceff3;color:#47536b}.touch{min-height:48px}.confirm-box{border:2px solid var(--brand);border-radius:12px;padding:20px;background:#f0fdfa}