@font-face { font-family: "Space Grotesk"; src: url("./space-grotesk-latin-wght-normal.woff2") format("woff2"); font-weight: 300 700; font-display: swap; }
:root { --ink:#151516; --soft:#5f5e63; --paper:#f7f7f4; --line:#d9d6d2; --face:#a62035; --violet:#7048d9; --panel:#efe9ed; --gutter:clamp(1rem,5vw,5.5rem); color-scheme:light; }
* { box-sizing:border-box; }
html { font-family:"Space Grotesk",Manrope,Arial,sans-serif; background:var(--paper); color:var(--ink); }
body { min-width:20rem; margin:0; background:var(--paper); }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid color-mix(in srgb,var(--face) 70%,white); outline-offset:3px; }
.skip-link { position:fixed; z-index:100; inset:.75rem auto auto .75rem; transform:translateY(-160%); background:var(--ink); color:white; padding:.7rem 1rem; }
.skip-link:focus { transform:none; }
.private-header { position:sticky; z-index:20; top:0; display:grid; grid-template-columns:auto 1fr auto; align-items:center; min-height:5.4rem; gap:clamp(1rem,3vw,3rem); border-bottom:1px solid var(--line); padding-inline:var(--gutter); background:color-mix(in srgb,var(--paper) 92%,transparent); backdrop-filter:blur(18px); }
.brand { display:flex; align-items:center; gap:1rem; min-width:0; }
.brand img { width:clamp(7.5rem,14vw,11rem); height:auto; }
.brand span { border-left:1px solid var(--line); padding-left:1rem; color:var(--soft); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.private-header nav { display:flex; justify-content:center; gap:clamp(1rem,2.5vw,2.4rem); }
.private-header nav a,.public-link,.logout-form button { border:0; background:none; color:var(--soft); font-size:.82rem; font-weight:650; cursor:pointer; }
.private-header nav a:hover,.public-link:hover,.logout-form button:hover { color:var(--face); }
.logout-form { margin:0; }
.private-main { min-height:calc(100svh - 10rem); }
.eyebrow,.section-index { color:var(--face); font-size:.68rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.login-shell { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(24rem,.85fr); min-height:calc(100svh - 5.4rem); }
.login-intro { display:flex; flex-direction:column; justify-content:center; padding:clamp(4rem,8vw,9rem) var(--gutter); background:linear-gradient(135deg,#f8f5f3 0%,#eee4e8 100%); }
.login-intro h1,.dashboard-hero h1,.page-heading h1 { max-width:14ch; margin:1rem 0 1.5rem; font-size:clamp(3rem,6vw,7rem); line-height:.92; letter-spacing:-.065em; }
.login-intro > p:last-child,.dashboard-hero > p:last-child,.page-heading > p:last-child { max-width:39rem; color:var(--soft); font-size:clamp(1rem,1.35vw,1.2rem); line-height:1.6; }
.login-panel { display:flex; flex-direction:column; justify-content:center; padding:clamp(3rem,7vw,7rem); background:var(--ink); color:white; }
.login-panel h2 { margin:.75rem 0 2.5rem; font-size:clamp(2.4rem,4vw,4rem); }
.login-panel form { display:grid; gap:.65rem; }
.login-panel label { margin-top:.8rem; color:#d9d6d2; font-size:.76rem; font-weight:700; }
.login-panel input { width:100%; border:1px solid #525156; border-radius:0; padding:1rem; background:#232326; color:white; }
.primary-action { display:inline-flex; min-height:3.2rem; align-items:center; justify-content:center; border:0; margin-top:1.25rem; padding:0 1.4rem; background:var(--face); color:white; font-weight:750; cursor:pointer; }
.inline-action { width:max-content; }
.login-note { margin:1.5rem 0 0; color:#a8a6aa; font-size:.78rem; line-height:1.55; }
.form-error { border-left:3px solid #ff7b8d; padding:.8rem 1rem; background:#3b2025; color:#ffdfe4; }
.dashboard-hero,.page-heading { padding:clamp(5rem,9vw,9rem) var(--gutter); background:linear-gradient(130deg,#f8f7f4 10%,#f0e7ea 100%); }
.action-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:1px; padding:1px; background:var(--line); }
.action-card { grid-column:span 4; min-height:22rem; padding:clamp(2rem,4vw,4rem); background:var(--paper); transition:background-color 180ms ease,color 180ms ease; }
.action-card-primary { grid-column:span 8; background:var(--face); color:white; }
.action-card span,.catalog-list span,.status-panel span { font-size:.68rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.action-card h2 { max-width:12ch; margin:clamp(4rem,8vw,7rem) 0 1rem; font-size:clamp(1.8rem,3vw,3.4rem); line-height:1; }
.action-card p { max-width:30rem; color:var(--soft); }
.action-card-primary p { color:rgba(255,255,255,.78); }
.catalog-list,.data-list { display:grid; padding:clamp(3rem,7vw,7rem) var(--gutter); }
.catalog-list a { display:grid; grid-template-columns:minmax(8rem,.45fr) minmax(0,1fr) minmax(9rem,.4fr); gap:1rem; align-items:center; border-top:1px solid var(--line); padding:1.45rem 0; }
.catalog-list a:last-child { border-bottom:1px solid var(--line); }
.catalog-list a span { color:var(--face); }
.catalog-list a strong { font-size:clamp(1rem,1.7vw,1.45rem); }
.catalog-list code { justify-self:end; color:var(--soft); }
.status-panel { margin:clamp(3rem,7vw,7rem) var(--gutter); border-left:4px solid var(--face); padding:clamp(2rem,4vw,4rem); background:var(--panel); }
.status-panel h2 { margin:1rem 0; font-size:clamp(2rem,4vw,4rem); }
.status-panel button { border:1px solid var(--line); padding:.8rem 1rem; background:transparent; color:var(--soft); }
.data-list article,.empty-state { border-top:1px solid var(--line); padding:2rem 0; }
.data-list article:last-child,.empty-state:last-child { border-bottom:1px solid var(--line); }
.data-list article span { color:var(--face); font-size:.72rem; }
.data-list article h2 { margin:.6rem 0; }
.data-list article p,.empty-state { color:var(--soft); }
.private-footer { display:flex; justify-content:space-between; border-top:1px solid var(--line); padding:2rem var(--gutter); color:var(--soft); font-size:.72rem; }
@media (hover:hover) and (pointer:fine) { .action-card:not(.action-card-primary):hover { background:#eee8e9; } .catalog-list a:hover strong { color:var(--face); } }
@media (max-width:64rem) { .private-header { grid-template-columns:auto auto; justify-content:space-between; } .private-header nav { grid-column:1 / -1; order:3; overflow-x:auto; justify-content:flex-start; width:100%; padding-bottom:1rem; } .login-shell { grid-template-columns:1fr; } .login-intro { min-height:30rem; } .action-card,.action-card-primary { grid-column:span 6; } }
@media (max-width:42rem) { .brand span { display:none; } .private-header { min-height:4.5rem; } .private-header nav { gap:1.25rem; } .login-intro,.login-panel,.dashboard-hero,.page-heading { padding-inline:1.15rem; } .login-intro h1,.dashboard-hero h1,.page-heading h1 { font-size:clamp(2.8rem,14vw,4.8rem); } .action-card,.action-card-primary { grid-column:1 / -1; min-height:17rem; } .catalog-list,.data-list { padding-inline:1.15rem; } .catalog-list a { grid-template-columns:1fr auto; } .catalog-list a span { grid-column:1 / -1; } .private-footer { flex-direction:column; gap:.5rem; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
