:root{--ground:#FBFAF7;--ground2:#F4F2EC;--card:#FFFFFF;--ink:#1D2420;--ink2:#3C4440;--muted:#5B635E;--line:#E2E0DA;--line2:#EEECE6;--chipline:#CFCCC4;--green:#2E5A44;--green-d:#1F4031;--green-s:#E7EFE9;--red:#A3261B;--red-d:#7A1D14;--red-s:#FBE6E3;--amber-d:#6E4200;--amber-s:#FBF0DC;--blue-d:#1C426F;--blue-s:#E5EEF8;--soft:#F1EFEA}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:'Public Sans',system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.45}
body.console{background:var(--ground2)}
a{color:var(--green)}a:hover{color:var(--green-d)}
h1,h2,h3{margin:0}
.disp{font-family:'Newsreader',Georgia,serif;font-weight:400;letter-spacing:-0.01em}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.proto{background:var(--ink);color:#fff;font-size:13px;padding:8px 16px;display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:center;align-items:center}
.proto a{color:#CFE3D7}
.wrap{max-width:1180px;margin:0 auto;padding:36px 16px 64px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px}
.chip{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--chipline);background:#fff;color:var(--ink);font:500 15px 'Public Sans',sans-serif;cursor:pointer;text-align:left}
.chip:hover{border-color:var(--green)}
.chip.on{background:var(--green);border-color:var(--green);color:#fff}
.chip.danger.on{background:var(--red);border-color:var(--red)}
.tab{min-height:44px;padding:0 12px;border:0;border-bottom:3px solid transparent;background:none;color:var(--muted);font:500 15px 'Public Sans',sans-serif;cursor:pointer}
.tab.on{color:var(--ink);border-bottom-color:var(--green)}
.btn{min-height:48px;padding:0 22px;border-radius:10px;border:0;background:var(--green);color:#fff;font:600 15px 'Public Sans',sans-serif;cursor:pointer}
.btn:hover{background:var(--green-d)}
.btn:disabled{background:#B9BDB9;cursor:not-allowed}
.btn.sec{background:#fff;color:var(--ink);border:1px solid var(--chipline)}
.btn.sm{min-height:38px;padding:0 12px;font-size:13px}
.ghost{min-height:44px;padding:0 12px;border:0;background:none;color:var(--muted);font:500 14px 'Public Sans',sans-serif;cursor:pointer;text-decoration:underline}
.day{min-height:84px;flex:1 1 90px;border-radius:12px;border:1px solid var(--chipline);background:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font:500 14px 'Public Sans',sans-serif;color:var(--ink)}
.day.on{border-color:var(--green);background:var(--green-s)}
.day.off{color:var(--muted);background:var(--soft)}
input[type=text],textarea{font:400 16px 'Public Sans',sans-serif;padding:12px 14px;border:1px solid var(--chipline);border-radius:10px;background:#fff;color:var(--ink);width:100%}
input:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid #9DC3AE;outline-offset:1px}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{font-size:17px;font-weight:600;padding:0;margin-bottom:12px}
.row{display:flex;flex-wrap:wrap;gap:8px}
.stack{display:flex;flex-direction:column}
.cols{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}
.main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:28px}
.aside{flex:1 1 300px;min-width:0;padding:24px;display:flex;flex-direction:column;gap:20px}
.lead{margin:0;color:var(--muted);font-size:16px;line-height:1.5}
.pill-hard{font-size:14px;line-height:1.4;background:var(--red-s);color:var(--red-d);border-radius:8px;padding:8px 10px}
.pill-soft{font-size:14px;line-height:1.4;background:var(--soft);border-radius:8px;padding:8px 10px}
.flag{font-size:12px;line-height:1.35;border-radius:6px;padding:4px 8px}
.flag.ok{background:var(--green-s);color:var(--green-d)}
.flag.warn{background:var(--amber-s);color:var(--amber-d)}
.flag.bad{background:var(--red-s);color:var(--red-d)}
.flag.info{background:var(--blue-s);color:var(--blue-d)}
.seg{min-height:40px;padding:0 14px;border:1px solid var(--chipline);background:#fff;color:var(--ink);font:500 13px 'Public Sans',sans-serif;cursor:pointer}
.seg:first-child{border-radius:8px 0 0 8px}.seg:last-child{border-radius:0 8px 8px 0;border-left:0}
.seg.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.dish{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;min-width:0;flex:1 1 220px}
.dish.swap{border:2px solid var(--green)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
