:root{font-family:Inter,system-ui,sans-serif;color:#0b1120;background:#f4f6fa;font-size:15px;--blue:#2f6bff;--muted:#56647a;--border:#dce3ee;--nav:#0b1120}
*{box-sizing:border-box}body{margin:0}a{color:#174cc7;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,.button{border:1px solid transparent;background:#2158e5;color:white;border-radius:7px;padding:.65rem .9rem;cursor:pointer;font-weight:600;display:inline-block}button:hover,.button:hover{background:#1744b9}button:disabled{opacity:.5;cursor:wait}.quiet{color:#253550;background:#fff;border-color:var(--border)}.quiet:hover{background:#eff4fe}.danger{color:#a1232e}.link{background:none;color:#174cc7;padding:.25rem;display:inline}.link:hover{background:#eaf0ff}
input,select,textarea{min-width:0;background:white;border:1px solid #aebbd0;border-radius:7px;padding:.66rem;color:inherit}input[type=checkbox]{accent-color:#2158e5;width:1.15rem;height:1.15rem}label{display:grid;gap:.35rem;font-weight:550}label:has(input[type=checkbox]){display:flex;align-items:center;flex-direction:row-reverse;justify-content:flex-end}
h1,h2,h3,p{margin:0 0 .75rem}h1{font-size:clamp(1.65rem,4vw,2.4rem);letter-spacing:-.045em}h2{font-size:1.12rem}h3{font-size:1rem}p{color:var(--muted);line-height:1.5}.brand{font-weight:780;letter-spacing:.075em}.brand b{color:#8aaaff}.admin{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.admin:has(aside[hidden]){grid-template-columns:minmax(0,1fr)}aside{background:var(--nav);color:#e2e9f9;padding:1.4rem 1rem;display:flex;flex-direction:column;gap:1rem}aside a{color:inherit;display:block;padding:.55rem .6rem}aside nav{display:grid;gap:.25rem}aside nav a[aria-current=page]{background:#20335d;color:white;border-radius:7px}header{display:flex;align-items:center;gap:1rem;min-height:65px;background:white;border-bottom:1px solid var(--border);padding:0 clamp(1rem,4vw,3rem);font-weight:600}#view{padding:clamp(1rem,4vw,3rem);max-width:1550px;margin:auto}.section-title,.toolbar,.actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.section-title{justify-content:space-between;margin-bottom:1rem}.section-title h1{margin:0}.toolbar{margin-bottom:1rem}.toolbar input,.toolbar select{max-width:100%}.panel,.metric,.card,.auth{background:white;border:1px solid var(--border);border-radius:10px;padding:1.15rem;box-shadow:0 2px 4px #0b112008}.metrics,.cards,.charts{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));margin-bottom:1rem}.metric span{display:block;color:var(--muted);font-size:.88rem}.metric strong{display:block;font-size:1.5rem;margin-top:.45rem;font-variant-numeric:tabular-nums}.chart-row{display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto;gap:.5rem;margin:.55rem 0;align-items:center;font-size:.83rem}.chart-row meter{width:100%;accent-color:var(--blue)}.table-wrap{overflow:auto;margin-bottom:1rem}.data{border-collapse:collapse;width:100%;background:white;font-size:.9rem}.data th,.data td{text-align:left;padding:.65rem .8rem;border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere}.data th{color:var(--muted);background:#edf2fa}.data tr:last-child td{border-bottom:0}.auth{max-width:430px;margin:4vh auto}.auth form{display:grid;gap:1rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;flex-wrap:wrap}dialog{width:min(735px,calc(100% - 2rem));max-height:90dvh;border:1px solid var(--border);border-radius:12px;padding:1.5rem;color:inherit}dialog::backdrop{background:#0b112088}output#notice{position:fixed;right:1rem;bottom:1rem;z-index:5;background:#0b1120;color:white;border-radius:8px;padding:.8rem;max-width:min(420px,90vw)}output:empty{display:none}.error{color:#a1232e;margin:.75rem 0}.line-item{display:flex;flex-wrap:wrap;gap:.6rem;margin:.5rem 0;align-items:end}.line-item input[type=number]{width:7rem}.public-head{justify-content:space-between}.catalog{max-width:1220px;margin:auto;padding:clamp(1rem,4vw,3.5rem)}.intro{border-bottom:1px solid var(--border);padding:1rem 0 1.5rem;margin-bottom:1.4rem}.intro h1{font-size:clamp(2rem,6vw,3.6rem)}.cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,245px),1fr))}.card{overflow:hidden;padding:0;display:grid;align-content:start}.card img,.placeholder{width:100%;aspect-ratio:4/3;object-fit:cover;background:#e8eef8}.placeholder{display:grid;place-items:center;color:var(--muted)}.card-content{padding:1rem}.card-content strong{display:block;margin-bottom:.6rem}.logo{width:2.5rem;height:2.5rem;object-fit:contain;vertical-align:middle;margin-right:.6rem}#toggle{display:none}[hidden]{display:none!important}
@media(max-width:800px){.admin{grid-template-columns:minmax(0,1fr)}aside{display:none;position:fixed;left:0;top:65px;bottom:0;overflow:auto;width:min(85vw,260px);z-index:3;box-shadow:0 0 0 100vmax #0b112055}aside.open{display:flex}#toggle{display:inline-block}}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}.data thead{display:none}.data tbody,.data tr,.data td{display:block}.data tr{border-bottom:1px solid var(--border);padding:.5rem}.data td{display:grid;grid-template-columns:minmax(5rem,38%) 1fr;gap:.5rem;border:0;padding:.35rem}.data td::before{content:attr(data-label);color:var(--muted);font-weight:600}.data td:last-child{display:block}.data td:last-child::before{content:none}}
:root{--nav:#030a23;--blue:#0795ed;--cyan:#49ccef;--ink:#07152f;background:#f2f6fb}
.brand{display:inline-flex;align-items:center;min-height:30px}
.wordmark{display:inline-block;width:168px;aspect-ratio:756/110;position:relative;overflow:hidden;vertical-align:middle;flex:none}
.wordmark img{position:absolute;max-width:none;width:117.725%;height:auto;left:-8.862%;top:-739.1%}
.custom-logo{max-width:170px;max-height:44px;object-fit:contain}
.admin aside{border-right:1px solid #132c53}
.admin aside nav a[aria-current=page]{background:#102b50;box-shadow:inset 3px 0 var(--cyan)}
.admin header{border-top:3px solid #0795ed;color:var(--ink)}
.admin .auth{border-top:3px solid var(--blue)}
.admin .auth .brand{background:#030a23;padding:.55rem .8rem;border-radius:5px;margin-bottom:1rem}
.admin button:not(.quiet):not(.link),.admin .button{background:#0560a8}
.admin button:not(.quiet):not(.link):hover,.admin .button:hover{background:#034a85}
.public-head{background:#030a23;color:white;border-bottom:1px solid #17345b}
.public-head a{color:#9ee7ff;font-size:.9rem}
.catalog .intro{border:0;margin-bottom:1.5rem;padding:clamp(1.1rem,4vw,3rem);background:#030a23;color:#fff;border-radius:14px;display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,26%);align-items:center;gap:.8rem}
.catalog .intro h1{margin:0;font-size:clamp(1.8rem,5.5vw,4rem);line-height:1;max-width:12ch}
.catalog .intro h1 span{color:#49ccef}
.catalog .intro p{color:#c2d8eb;margin:.85rem 0 0}
.catalog .intro img{display:block;width:100%;height:auto;max-width:215px;justify-self:center}
.catalog .toolbar button,.catalog .button{background:#0560a8}
.catalog .toolbar button:hover,.catalog .button:hover{background:#034a85}
@media(max-width:440px){.public-head .wordmark{width:122px}.public-head a{font-size:.75rem}.catalog .intro{grid-template-columns:minmax(0,1fr) 29%}}
.wordmark{isolation:isolate;background:#000724}.wordmark img{mix-blend-mode:lighten}.public-head,.catalog .intro,.admin aside,.admin .auth .brand{background:#000724}.catalog .intro img{mix-blend-mode:lighten}
