:root{--roastos-coffee-50:#faf6f1;--roastos-coffee-100:#f0e6d8;--roastos-coffee-200:#e0cdb3;--roastos-coffee-300:#c9a97e;--roastos-coffee-400:#b08858;--roastos-coffee-500:#9a7044;--roastos-coffee-600:#7d5936;--roastos-coffee-700:#65452d;--roastos-coffee-800:#4f3626;--roastos-coffee-900:#3d2a1f;--roastos-coffee-950:#221710;--roastos-accent:#c45c26;--roastos-accent-hover:#a84d1f;--roastos-surface:#ffffff;--roastos-surface-muted:#faf6f1;--roastos-border:#e0cdb3;--roastos-text:#3d2a1f;--roastos-text-muted:#7d5936;--roastos-success:#2d6a4f;--roastos-warning:#ca6702;--roastos-error:#9b2226;--roastos-radius-sm:0.375rem;--roastos-radius-md:0.5rem;--roastos-radius-lg:0.75rem;--roastos-shadow-sm:0 1px 2px rgb(61 42 31/0.06);--roastos-shadow-md:0 4px 12px rgb(61 42 31/0.08);--roastos-font-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}@media (prefers-color-scheme:dark){:root{--roastos-surface:#1a1410;--roastos-surface-muted:#221710;--roastos-border:#4f3626;--roastos-text:#f0e6d8;--roastos-text-muted:#c9a97e;--roastos-shadow-sm:0 1px 2px rgb(0 0 0/0.2);--roastos-shadow-md:0 4px 12px rgb(0 0 0/0.3)}}:root{color-scheme:light dark}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{font-family:var(--roastos-font-sans);background:var(--roastos-surface-muted);color:var(--roastos-text);line-height:1.5}a{color:inherit;text-decoration:none}.layout{min-height:100vh;display:flex;flex-direction:column}.main{flex:1 1;width:min(1120px,100%);margin:0 auto;padding:2rem 1.5rem 3rem}.hero{display:grid;grid-gap:1rem;gap:1rem;margin-bottom:2.5rem}.hero h1{margin:0;font-size:clamp(2rem,4vw,2.75rem);letter-spacing:-.02em}.hero p{margin:0;max-width:42rem;color:var(--roastos-text-muted);font-size:1.0625rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1rem;gap:1rem}.status-panel{display:grid;grid-gap:.75rem;gap:.75rem;margin-bottom:2rem;padding:1rem 1.25rem;border:1px solid var(--roastos-border);border-radius:var(--roastos-radius-lg);background:var(--roastos-surface)}.status-row{display:flex;justify-content:space-between;gap:1rem;font-size:.9375rem}.status-label{color:var(--roastos-text-muted)}.status-value{font-weight:600}.status-value.ok{color:var(--roastos-success)}.status-value.error{color:var(--roastos-error)}