:root{--cream:#FFF8EE;--paper:#FFFDF8;--ink:#2B2A33;--soft:#5B5866;--sun:#FFD25E;--sage:#9CCFA8;--peach:#FFB59A;--coral:#F2785C;--sky:#9FC9F2;--line:#2B2A33}
*{box-sizing:border-box;margin:0}
body{font-family:"Atkinson Hyperlegible",system-ui,sans-serif;font-size:20px;line-height:1.6;color:var(--ink);background:var(--cream);padding:0 16px 60px}
a{color:inherit}
.wrap{max-width:760px;margin:auto}
.wrap.wide{max-width:1140px}
header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px;flex-wrap:wrap;position:sticky;top:0;z-index:50;padding:12px 0;background:var(--cream);box-shadow:0 0 0 100vmax var(--cream),0 3px 0 100vmax rgba(43,42,51,.10);clip-path:inset(0 -100vmax -3px)}
header img{height:52px;width:auto}
header nav{display:flex;gap:18px;flex-wrap:wrap;font-weight:700}
.card{background:var(--paper);border:3px solid var(--line);border-radius:28px;padding:32px 28px;box-shadow:8px 8px 0 var(--line);margin-bottom:28px}
h1{font:800 clamp(1.8rem,5vw,2.4rem) Fraunces,Georgia,serif;line-height:1.15;margin-bottom:8px}
h2{font:800 1.45rem Fraunces,Georgia,serif;line-height:1.2;margin:0 0 10px}
h3{font:800 1.15rem Fraunces,Georgia,serif;margin:22px 0 6px}
p+p,p+ul,ul+p{margin-top:12px}
ul{padding-left:1.2em}
.sub{color:var(--soft);margin-bottom:22px}
label{display:block;font-weight:700;margin-bottom:6px}
input,textarea,select{width:100%;font:inherit;padding:13px 16px;border:3px solid var(--line);border-radius:16px;background:#fff;margin-bottom:16px}
textarea{min-height:110px;resize:vertical}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:.4em;font:700 1.05rem "Atkinson Hyperlegible",sans-serif;padding:15px 26px;border:3px solid var(--line);border-radius:999px;background:var(--sun);box-shadow:4px 4px 0 var(--line);cursor:pointer;color:var(--ink);text-decoration:none}
.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--line)}
.btn:disabled{opacity:.5;cursor:default}
.btn.ghost{background:var(--paper)}
.btn.danger{background:#fff0ec;color:#8f2715}
.btn.full{width:100%}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.check{display:flex;gap:12px;align-items:flex-start;font-weight:700;cursor:pointer}.check input{width:24px;height:24px;margin:3px 0 0;flex:none;accent-color:var(--coral)}.check span{display:block;color:var(--soft);font-size:.9rem;font-weight:400}
.shelf-toggle{background:#fff;border:3px solid var(--line);border-radius:18px;padding:15px 16px}.shelf-toggle input{appearance:none;width:58px;height:32px;border:3px solid var(--line);border-radius:999px;background:#ddd;position:relative;transition:background .2s;cursor:pointer}.shelf-toggle input::after{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border:2px solid var(--line);border-radius:50%;background:#fff;transition:transform .2s}.shelf-toggle input:checked{background:var(--sage)}.shelf-toggle input:checked::after{transform:translateX(25px)}
.msg{min-height:1.6em;margin-top:12px;font-weight:700}
.err{color:#B23A1E}
.ok{color:#23663A}
.link{background:none;border:0;font:inherit;color:var(--ink);text-decoration:underline;cursor:pointer;padding:0}
[hidden]{display:none!important}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:18px 0}
.stat{background:#fff;border:3px solid var(--line);border-radius:20px;padding:14px 16px}
.stat b{display:block;font:800 1.9rem Fraunces,Georgia,serif}
.stat span{color:var(--soft);font-size:.95rem}
.stat small{display:block;color:var(--soft);font-size:.82rem;margin-top:4px}
.pill{display:inline-block;border:2px solid var(--line);border-radius:999px;padding:1px 12px;font-size:.85rem;font-weight:700;background:var(--sage)}
.pill.warn{background:var(--sun)}.pill.off{background:#eee}
.notice{background:var(--sun);border:3px solid var(--line);border-radius:18px;padding:14px 18px;margin-bottom:20px;font-weight:700}
.table{width:100%;border-collapse:collapse;font-size:.95rem;background:#fff}
.table th,.table td{text-align:left;padding:9px 10px;border-bottom:2px solid #e8e1d6;vertical-align:top}
.scroll{overflow-x:auto;border:3px solid var(--line);border-radius:18px}
.legal h2{margin-top:28px}
.legal p,.legal li{color:#3a3842}
footer.site{max-width:1140px;margin:40px auto 0;color:var(--soft);font-size:.95rem;display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
:focus-visible{outline:4px solid var(--coral);outline-offset:3px}
@media (max-width:560px){body{font-size:18px}.card{padding:24px 18px}header img{height:40px}header nav{gap:12px;font-size:.92rem}header{margin-bottom:20px}}
