:root{--bg:#eef5fd;--card:rgba(255,255,255,.78);--ink:#0b2545;--mut:#5b7089;--pri:#1d6fe0;--acc:#13c2c2;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;--bd:#d8e5f6;--sh:0 8px 30px rgba(11,37,69,.08)}
[data-theme=dark]{--bg:#06122a;--card:rgba(16,34,68,.75);--ink:#e8f0ff;--mut:#9bb0d0;--bd:#1e3663;--sh:0 8px 30px rgba(0,0,0,.45)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,"Segoe UI",sans-serif;background:radial-gradient(circle at 20% 0,rgba(29,111,224,.15),transparent 40%),var(--bg);color:var(--ink);transition:background .3s}
h1{font-size:clamp(2.4rem,6vw,4rem);margin:.3em 0;line-height:1.05;background:linear-gradient(90deg,var(--pri),var(--acc));-webkit-background-clip:text;color:transparent}h2,h3{margin:.3em 0}
.mut{color:var(--mut)}.sm{font-size:.85rem}.sp{flex:1}code,pre{background:rgba(29,111,224,.1);border-radius:8px;padding:2px 6px}pre{padding:12px;overflow:auto}
.btn{background:var(--pri);color:#fff;border:0;border-radius:12px;padding:10px 16px;font-weight:600;cursor:pointer;transition:.2s;margin:3px 0}.btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(29,111,224,.35)}.btn:active{transform:scale(.97)}.btn.ghost{background:transparent;color:var(--pri);border:1.5px solid var(--pri)}
.c{background:var(--card);backdrop-filter:blur(12px);border:1px solid var(--bd);border-radius:20px;padding:20px;box-shadow:var(--sh);margin-bottom:16px}.c.bad{border-color:var(--bad);background:rgba(220,38,38,.1)}.c.warn{border-color:var(--warn);background:rgba(217,119,6,.12);animation:pulse 1.2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(217,119,6,.2)}}
.g{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.g .c,.g2 .c{margin:0}.g2{margin-bottom:16px}.g{margin-bottom:16px}.ctr{text-align:center}
.pill{padding:5px 12px;border-radius:99px;font-size:.85rem;font-weight:600;background:var(--bd)}.pill.ok{background:rgba(22,163,74,.18);color:var(--ok)}.pill.warn{background:rgba(217,119,6,.18);color:var(--warn)}.pill.bad{background:rgba(220,38,38,.18);color:var(--bad)}
.ln{display:flex;justify-content:space-between;align-items:center;padding:18px 6vw;font-size:1.3rem}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center;padding:4vh 6vw}.feat{padding:0 6vw 40px}
#app{display:flex;min-height:100vh}#side{width:230px;padding:20px 14px;background:linear-gradient(#0b2545,#12356b);color:#fff;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:10px;flex-shrink:0}.logo{font-size:1.3rem;font-weight:800;padding:6px 10px}
#side nav{display:flex;flex-direction:column;gap:4px;flex:1}#side nav button{background:none;border:0;color:#cfe0ff;text-align:left;padding:11px 14px;border-radius:12px;font-size:.95rem;cursor:pointer;transition:.2s}#side nav button:hover,#side nav button.on{background:rgba(255,255,255,.14);color:#fff;transform:translateX(3px)}#side small{opacity:.7}
main{flex:1;padding:18px 24px;min-width:0}.top{display:flex;align-items:center;gap:12px;background:var(--card);backdrop-filter:blur(12px);border:1px solid var(--bd);border-radius:18px;padding:10px 16px;margin-bottom:16px}#menu{display:none}.av{background:var(--bd);border-radius:50%;padding:6px 9px}#bellN{font-style:normal;background:var(--bad);color:#fff;border-radius:99px;padding:0 6px;margin-left:4px;font-size:.75rem}
.ring{width:150px;height:150px;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:9}.ring .rb{stroke:var(--bd)}.ring .rf{stroke:url(#gr);stroke:var(--pri);stroke-linecap:round;stroke-dasharray:326.7;stroke-dashoffset:326.7;transition:stroke-dashoffset 1.2s ease}.ring text{transform:rotate(90deg);transform-origin:60px 60px;font-size:22px;font-weight:800;fill:var(--ink);stroke:none;text-anchor:middle}
.kv{list-style:none;padding:0;margin:0 0 10px}.kv li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--bd)}.kv b{color:var(--pri)}
.tl,.al{list-style:none;padding:0;margin:0;max-height:300px;overflow:auto}.tl li{display:flex;align-items:center;gap:10px;padding:7px 0}.tl span{height:10px;border-radius:6px;background:linear-gradient(90deg,var(--pri),var(--acc));transition:width .6s}.al li{padding:8px 10px;border-left:4px solid var(--pri);background:rgba(29,111,224,.07);border-radius:8px;margin:6px 0;font-size:.9rem}.al li.bad{border-color:var(--bad)}.al li.warn{border-color:var(--warn)}
.ch{height:260px}.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:12px 0}label{display:block;font-weight:600;font-size:.9rem;margin:8px 0}input,select,textarea{display:block;width:100%;margin-top:4px;padding:10px;border-radius:10px;border:1px solid var(--bd);background:var(--card);color:var(--ink);font:inherit}input[type=checkbox]{display:inline-block;width:auto}
.bw{width:120px;margin:10px auto;position:relative}.bw.big{transform:scale(1.25);margin:40px auto}.cap{display:block;width:44px;height:22px;background:var(--pri);border-radius:8px 8px 0 0;margin:0 auto}.bottle{position:relative;height:230px;border:4px solid var(--pri);border-radius:34px 34px 26px 26px;overflow:hidden;background:rgba(29,111,224,.07)}
.water{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(#5cc0ff,#1d6fe0);transition:height 1.2s ease}.water:before{content:"";position:absolute;top:-12px;left:-50%;width:200%;height:24px;background:rgba(255,255,255,.4);border-radius:42%;animation:wv 4s linear infinite}@keyframes wv{to{transform:translateX(25%)}}.chip{position:absolute;right:-70px;top:60px;background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:5px 9px;font-size:.75rem;animation:fl 3s ease-in-out infinite}@keyframes fl{50%{transform:translateY(-8px)}}
.flow{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.flow span{background:linear-gradient(135deg,var(--pri),#0b2545);color:#fff;padding:14px 16px;border-radius:14px;font-weight:600}.flow span:not(:last-child):after{content:"  ➜";color:var(--acc)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span{background:var(--bd);padding:5px 12px;border-radius:99px}
#toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,100px);background:#0b2545;color:#fff;padding:12px 20px;border-radius:14px;transition:.3s;z-index:9}#toast.on{transform:translate(-50%,0)}
@media(max-width:800px){.hero{grid-template-columns:1fr}#side{position:fixed;z-index:5;transform:translateX(-100%);transition:.3s}#side.open{transform:none}#menu{display:block}main{padding:12px}.chip{display:none}}
