:root{--ink: #17324a;--muted: #7c8c99;--teal: #149a8c;--teal-deep: #0f766e;--coral: #e07a5f;--paper: #f3f7f8;--card: #ffffff;--line: #e6eef3;--font-display: "Fraunces", Georgia, serif;--font-body: "Source Sans 3", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#d7f0ec 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#f8e8e1 0%,transparent 50%),var(--paper)}a{color:var(--teal-deep)}.shell{max-width:960px;margin:0 auto;padding:28px 20px 64px}.brand{font-family:var(--font-display);font-size:2rem;font-weight:700;letter-spacing:-.02em;margin:0}.lead{color:var(--muted);margin:6px 0 24px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;margin-bottom:16px}.card h2{font-family:var(--font-display);font-size:1.25rem;margin:0 0 8px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}label{display:block;font-weight:600;margin:0 0 6px}input{width:100%;border:1px solid #c5d0d8;border-radius:12px;padding:12px 14px;font:inherit;margin-bottom:12px}button,.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;padding:11px 18px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}button.primary,.button.primary{background:var(--teal);color:#fff}button.secondary,.button.secondary{background:#e7f4f6;color:var(--ink)}button.danger{background:#fde8e4;color:#9a3412}button:disabled{opacity:.55;cursor:not-allowed}.error{color:#9a3412;margin:8px 0}.ok{color:var(--teal-deep);margin:8px 0}.device-link{display:block;padding:14px 16px;border-radius:14px;border:1px solid var(--line);text-decoration:none;color:inherit;margin-bottom:10px;background:linear-gradient(180deg,#fff,#f8fbfc)}.device-link:hover{border-color:#b7d8d4}.meta{color:var(--muted);font-size:.92rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:16px 0}.stat{background:#eef7f6;border-radius:14px;padding:14px}.stat strong{display:block;font-size:1.4rem;font-family:var(--font-display)}.day-list{list-style:none;padding:0;margin:0}.day-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.topbar{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px}
