:root{color-scheme:light dark;--bg: #f1eee8;--bg-2: #f8f5ef;--surface: #fbfaf6;--card: #fffffe;--ink: #2b3138;--muted: #6f757d;--faint: #9aa0a7;--primary: #8b9daf;--primary-deep: #5e7587;--accent: #b8a598;--accent-deep: #957f6f;--online: #8fa888;--success: #7e9c84;--danger: #c07878;--danger-deep: #a85f5f;--on-primary: #ffffff;--line: color-mix(in srgb, var(--ink) 12%, transparent);--line-soft: color-mix(in srgb, var(--ink) 7%, transparent);--shadow: 0 1px 2px rgba(43, 49, 56, .04), 0 14px 38px -16px rgba(43, 49, 56, .22);--shadow-sm: 0 1px 2px rgba(43, 49, 56, .05), 0 6px 18px -10px rgba(43, 49, 56, .18);--radius: 20px;--radius-sm: 13px;--radius-pill: 999px;--ff-body: "Zen Kaku Gothic New", system-ui, -apple-system, "Segoe UI", sans-serif;--ff-head: "Zen Maru Gothic", "Zen Kaku Gothic New", system-ui, sans-serif;--ff-num: "Fraunces", "Zen Kaku Gothic New", Georgia, serif;--step: clamp(15px, .6vw + 14px, 16px);--ease: cubic-bezier(.2, .7, .2, 1)}@media (prefers-color-scheme: dark){:root{--bg: #10151a;--bg-2: #141b21;--surface: #192128;--card: #1d262e;--ink: #e8e4dc;--muted: #9aa2ab;--faint: #6e767e;--primary: #9fb2c4;--primary-deep: #bccadb;--accent: #c9b7a8;--accent-deep: #d8c8bb;--online: #9cc0a2;--success: #94b49b;--danger: #d38c8c;--danger-deep: #e1a0a0;--on-primary: #111922;--line: color-mix(in srgb, #ffffff 12%, transparent);--line-soft: color-mix(in srgb, #ffffff 6%, transparent);--shadow: 0 1px 2px rgba(0, 0, 0, .45), 0 22px 46px -18px rgba(0, 0, 0, .65);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 24px -14px rgba(0, 0, 0, .55)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;font-family:var(--ff-body);font-size:var(--step);line-height:1.62;color:var(--ink);background:radial-gradient(125% 65% at 50% -12%,color-mix(in srgb,var(--primary) 24%,transparent),transparent 60%),radial-gradient(80% 45% at 92% 2%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 55%),linear-gradient(180deg,var(--bg-2),var(--bg) 60%);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}@media (prefers-color-scheme: dark){.app:before{opacity:.06}}.app{position:relative;display:flex;flex-direction:column;min-height:100dvh}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:13px clamp(16px,5vw,30px);background:color-mix(in srgb,var(--bg) 74%,transparent);backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px) saturate(1.15);border-bottom:1px solid var(--line-soft)}.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--ff-head);font-weight:700;font-size:1.02rem;letter-spacing:.015em;color:var(--ink);text-decoration:none;border:none}.brand .mark{display:block;filter:drop-shadow(0 2px 5px color-mix(in srgb,var(--primary) 45%,transparent))}.brand .mark .drop{animation:bob 5s var(--ease) infinite;transform-origin:50% 60%}.topbar .spacer{margin-left:auto}.topbar .navlink{font-size:.84rem;color:var(--muted);text-decoration:none;border:none;padding:6px 12px;border-radius:var(--radius-pill);transition:background .2s,color .2s}.topbar .navlink:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.topbar .back{display:inline-flex;align-items:center;gap:5px}.view{position:relative;z-index:1;width:100%;max-width:560px;margin:0 auto;padding:clamp(20px,4.5vw,32px) clamp(16px,5vw,30px) 72px}.stack{display:flex;flex-direction:column;gap:clamp(16px,3vw,22px)}.stack>*{animation:rise .6s var(--ease) both}.stack>*:nth-child(1){animation-delay:.02s}.stack>*:nth-child(2){animation-delay:.08s}.stack>*:nth-child(3){animation-delay:.14s}.stack>*:nth-child(4){animation-delay:.2s}.stack>*:nth-child(5){animation-delay:.26s}.stack>*:nth-child(6){animation-delay:.32s}.stack>*:nth-child(7){animation-delay:.38s}.auth{min-height:calc(100dvh - 120px);display:flex;align-items:center;justify-content:center;padding:24px 0 56px}.auth .card{width:100%}h1,h2,h3{font-family:var(--ff-head);font-weight:700;line-height:1.25;letter-spacing:.01em;margin:0;color:var(--ink)}h1{font-size:clamp(1.5rem,4.5vw,1.95rem)}h2{font-size:1.12rem}p{margin:.45em 0}.lede{color:var(--muted)}small,.small{font-size:.82rem}a{color:var(--primary-deep);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--primary) 42%,transparent);transition:color .2s,border-color .2s}a:hover{color:var(--ink);border-color:var(--ink)}.card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(18px,4vw,26px)}.card>h2:first-child,.card>h1:first-child{margin-bottom:.5rem}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.card-head h2{margin:0}.section-note{color:var(--muted);font-size:.85rem;margin:0}.hero{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 100% 0%,color-mix(in srgb,var(--primary) 16%,transparent),transparent 55%),var(--card)}.hero h1{font-size:clamp(1.45rem,5vw,1.85rem)}.hero .statusline{display:flex;align-items:center;gap:12px;margin-top:6px;color:var(--muted);font-size:.86rem}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.metric{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:14px 16px}.metric .k{font-size:.76rem;letter-spacing:.05em;color:var(--muted)}.metric .v{margin-top:4px;font-family:var(--ff-num);font-weight:500;font-size:1.85rem;line-height:1.04;font-variant-numeric:tabular-nums;color:var(--ink)}.metric .v .u{font-size:.62em;color:var(--muted);margin-left:2px}.metric.span2{grid-column:1 / -1}.metric.feature{grid-column:1 / -1;position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:14px;background:radial-gradient(70% 140% at 18% 50%,color-mix(in srgb,var(--primary) 14%,transparent),transparent 70%),var(--surface)}.metric.feature .v{font-size:clamp(2.8rem,13vw,3.6rem)}.metric.feature:after{content:"";position:absolute;left:8%;bottom:-30%;width:46%;height:120%;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--primary) 30%,transparent),transparent);filter:blur(14px);opacity:.7;pointer-events:none;animation:breathe 4.6s var(--ease) infinite}.badge{display:inline-flex;align-items:center;gap:8px;font-size:.84rem;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;background:var(--faint);flex:none}.badge.on{color:color-mix(in srgb,var(--online) 60%,var(--ink))}.badge.on .dot{background:var(--online);box-shadow:0 0 0 4px color-mix(in srgb,var(--online) 22%,transparent);animation:pulse 3.6s var(--ease) infinite}.pill-tag{display:inline-flex;align-items:center;font-family:var(--ff-head);font-weight:700;font-size:.78rem;letter-spacing:.04em;padding:3px 11px;border-radius:var(--radius-pill);color:var(--primary-deep);background:color-mix(in srgb,var(--primary) 16%,transparent);border:1px solid color-mix(in srgb,var(--primary) 26%,transparent)}button{font:inherit;font-family:var(--ff-head);font-weight:700;letter-spacing:.02em;white-space:nowrap;cursor:pointer;border:1px solid transparent;border-radius:var(--radius-pill);padding:11px 20px;color:var(--on-primary);background:var(--primary);box-shadow:0 1px 2px #2b313814,0 8px 18px -10px color-mix(in srgb,var(--primary) 60%,transparent);transition:transform .12s var(--ease),box-shadow .2s,background .2s,opacity .2s,border-color .2s}button:hover{background:color-mix(in srgb,var(--primary) 88%,black 4%)}button:active{transform:translateY(1px);box-shadow:0 1px 2px #2b31381a}button:focus-visible{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 26%,transparent)}button:disabled{opacity:.45;cursor:default;box-shadow:none;transform:none}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line);box-shadow:none}.btn-ghost:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.btn-danger{background:transparent;color:var(--danger-deep);border-color:color-mix(in srgb,var(--danger) 35%,transparent);box-shadow:none}.btn-danger:hover{background:color-mix(in srgb,var(--danger) 12%,transparent)}.btn-block{width:100%}.btn-sm{padding:7px 14px;font-size:.84rem}.field{display:flex;flex-direction:column;gap:7px}label{font-size:.85rem;font-weight:500;color:var(--muted)}input[type=text],input[type=email],input[type=number],input[type=search],select{font:inherit;width:100%;padding:12px 14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color .2s,box-shadow .2s,background .2s}input::placeholder{color:var(--faint)}input:focus-visible,select:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 18%,transparent)}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236f757d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;cursor:pointer}.controls{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:flex-end}.controls .field{flex:1 1 92px}.controls .field.grow{flex:1 1 140px}.controls .actions{display:flex;gap:10px;flex:1 0 100%;margin-top:2px}input[type=number]{width:100%}.switch{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 2px;font-weight:500;color:var(--ink);cursor:pointer}.switch+.switch{border-top:1px solid var(--line-soft)}.switch .switch-label{font-size:.95rem}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch .track{position:relative;flex:none;width:48px;height:28px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--ink) 18%,transparent);transition:background .25s var(--ease)}.switch .track:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000047;transition:transform .25s var(--ease)}.switch input:checked+.track{background:var(--primary)}.switch input:checked+.track:after{transform:translate(20px)}.switch input:focus-visible+.track{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 24%,transparent)}.switch:has(input:disabled){opacity:.5;cursor:default}.weekdays{display:flex;flex-wrap:wrap;gap:9px}.chip{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;font-family:var(--ff-head);font-weight:700;font-size:.95rem;color:var(--primary-deep);background:color-mix(in srgb,var(--primary) 9%,var(--card));border:1.5px solid color-mix(in srgb,var(--primary) 28%,transparent);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .18s,color .18s,border-color .18s,transform .12s var(--ease)}.chip:hover{border-color:color-mix(in srgb,var(--primary) 50%,transparent)}.chip input{position:absolute;opacity:0;width:1px;height:1px}.chip:active{transform:scale(.94)}.chip:has(input:checked){color:var(--on-primary);background:var(--primary);border-color:var(--primary);box-shadow:0 6px 14px -8px color-mix(in srgb,var(--primary) 70%,transparent)}.chip:has(input:focus-visible){box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 22%,transparent)}.tiles{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.tile{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);transition:border-color .2s,box-shadow .2s,transform .12s var(--ease)}.tile:hover{border-color:var(--line);box-shadow:var(--shadow-sm)}.tile .name{font-family:var(--ff-head);font-weight:700;color:var(--ink);text-decoration:none;border:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile .name:hover{color:var(--primary-deep)}.tile .badge{white-space:nowrap;flex:none}.tile .spacer{margin-left:auto;flex:1 1 0}.tile.empty{justify-content:center;color:var(--muted);font-size:.9rem}.sched-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.sched-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);flex-wrap:wrap}.sched-row .days{font-family:var(--ff-head);font-weight:700;letter-spacing:.06em;color:var(--ink)}.sched-row .time{font-family:var(--ff-num);font-size:1.18rem;font-variant-numeric:tabular-nums;color:var(--ink)}.sched-row .mode{color:var(--primary-deep);font-weight:700;font-size:.82rem}.sched-row .spacer{margin-left:auto}.sched-row .switch{padding:0;gap:8px}.sched-row .switch .track{width:40px;height:24px}.sched-row .switch .track:after{width:18px;height:18px}.sched-row .switch input:checked+.track:after{transform:translate(16px)}fieldset{margin:18px 0 0;padding:18px;border:1px dashed var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface) 60%,transparent)}fieldset:disabled{opacity:.55}legend{font-family:var(--ff-head);font-weight:700;font-size:.86rem;color:var(--muted);padding:0 8px}[role=status]{margin-top:14px;padding:11px 15px;font-size:.88rem;color:var(--primary-deep);background:color-mix(in srgb,var(--primary) 12%,transparent);border:1px solid color-mix(in srgb,var(--primary) 20%,transparent);border-radius:var(--radius-sm)}[role=alert]{margin-top:12px;padding:11px 15px;font-size:.88rem;color:var(--danger-deep);background:color-mix(in srgb,var(--danger) 11%,transparent);border:1px solid color-mix(in srgb,var(--danger) 26%,transparent);border-radius:var(--radius-sm)}.msg{color:var(--muted)}.err{color:var(--danger-deep)}.charts{display:flex;flex-direction:column;gap:18px;margin-top:6px}.chart .chart-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.chart .chart-head strong{font-family:var(--ff-head);font-weight:700;color:var(--ink)}.chart .chart-head .unit{color:var(--muted);font-size:.82rem}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .empty{color:var(--muted);font-size:.88rem}.center{text-align:center}.row-gap{display:flex;gap:10px;flex-wrap:wrap}.muted{color:var(--muted)}hr{border:none;border-top:1px solid var(--line-soft);margin:18px 0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--online) 28%,transparent)}50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--online) 5%,transparent)}}@keyframes breathe{0%,to{opacity:.55;transform:scale(.96)}50%{opacity:.85;transform:scale(1.06)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
