:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand-purple:#600ceb;--purple-700:#4809b0;--purple-300:#7e38ef;--purple-50:#f2ebfe;--purple-100:#e7dcfd;--brand-yellow:#f9db74;--yellow-soft:#fef6dc;--yellow-ink:#8a6a06;--brand-blue:#5fbdf7;--blue-soft:#eaf6fe;--blue-ink:#12648f;--brand-orange:#e36756;--orange-strong:#d5402e;--orange-soft:#fdeeeb;--orange-ink:#a5301f;--ink:#211f54;--body:#2c2a45;--muted:#6f7191;--stroke-cool:#a0a3bd;--line:#e8e7f1;--line-2:#f0eff6;--page:#f6f5fb;--surface:#fff;--surface-2:#faf9fe;--inset:#f5f3fc;--shadow-sm:0 1px 2px #211f540d, 0 2px 6px #211f540d;--shadow-md:0 10px 28px #600ceb1a, 0 2px 8px #211f540f;--shadow-lg:0 24px 60px #3c0a8c38;--radius:16px;color:var(--body);font-family:Open Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--page);background-image:radial-gradient(900px 420px at 88% -8%, color-mix(in srgb,var(--brand-blue) 18%,transparent), transparent 70%), radial-gradient(820px 420px at -5% 0%, color-mix(in srgb,var(--brand-purple) 11%,transparent), transparent 65%);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;line-height:1.55}h1,h2,h3{color:var(--ink);text-wrap:balance;letter-spacing:-.01em;margin:0;font-family:Montserrat,Open Sans,sans-serif;font-weight:800}.mono{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,ui-monospace,monospace}button,.button{background:var(--brand-purple);color:#fff;font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:11px 17px;font-family:Montserrat;font-size:14px;font-weight:800;transition:all .16s;display:inline-flex}button:hover,.button:hover{background:var(--purple-700)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:var(--surface-2);color:var(--brand-purple);border:1px solid var(--line);box-shadow:none}.secondary:hover{background:var(--purple-50)}.danger{color:var(--orange-ink);box-shadow:none;background:0 0;padding:8px 11px}.danger:hover{background:var(--orange-soft)}.text-button{color:var(--muted);box-shadow:none;background:0 0}.text-button:hover{background:var(--inset);color:var(--ink)}.refresh{background:var(--surface-2);color:var(--brand-purple);border:1px solid var(--line);box-shadow:none}.refresh:hover{background:var(--purple-50)}:focus-visible{outline:2px solid var(--brand-purple);outline-offset:2px}input,select{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;border-radius:10px;padding:10px 12px;font-weight:600}select{min-width:180px}.login{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{text-align:center;background:var(--surface);border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow-lg);border-radius:24px;padding:48px 44px}.login-mark{filter:drop-shadow(0 8px 18px #600ceb4d);width:64px;height:64px;margin:0 auto 22px;display:block}.eyebrow{color:var(--brand-purple);letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:800}.login h1{margin:0 0 12px;font-size:30px}.muted{color:var(--muted);margin:0;line-height:1.55}.google-button{justify-content:center;margin-top:28px;display:flex}.error{color:var(--orange-ink);font-size:14px}.app header{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:26px;padding:12px max(24px,50vw - 561px);display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{filter:drop-shadow(0 5px 12px #600ceb42);flex:none;width:42px;height:42px}.brand .name{color:var(--ink);font-family:Montserrat;font-size:19px;font-weight:800;line-height:1.05}.brand .sub{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-top:3px;font-size:10.5px;font-weight:700}nav{flex:1;gap:4px;display:flex}nav button{color:var(--muted);box-shadow:none;background:0 0;padding:9px 14px;font-size:14px}nav button:hover{background:var(--inset);color:var(--ink)}nav button.active{background:var(--brand-purple);color:#fff}.who{color:var(--muted);white-space:nowrap;align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.signin{align-items:center;gap:12px;display:flex}.signin .google-button{margin:0}@media (width<=640px){.signin span{display:none}}.avatar{background:var(--purple-50);width:34px;height:34px;color:var(--brand-purple);border:1px solid var(--purple-100);border-radius:50%;place-items:center;font-size:13px;font-weight:800;display:grid}.shell{max-width:1170px;margin:0 auto;padding:30px 24px 70px}.console{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-md);border-radius:22px;margin-bottom:26px;overflow:hidden}.console-top{background:var(--line);grid-template-columns:1.15fr .95fr 1fr;gap:1px;display:grid}.cell{background:var(--surface);padding:22px 24px}.cell .lbl{letter-spacing:.13em;text-transform:uppercase;color:var(--muted);align-items:center;gap:7px;margin-bottom:12px;font-size:11px;font-weight:700;display:flex}.clock{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:44px;font-weight:500;line-height:1}.clock .date{color:var(--muted);margin-top:9px;font-family:Open Sans;font-size:13px;font-weight:600;display:block}.status-pill{border:1px solid #0000;border-radius:999px;align-items:center;gap:10px;padding:9px 16px 9px 13px;font-family:Montserrat;font-size:15px;font-weight:800;display:inline-flex}.status-pill.clear{background:var(--blue-soft);color:var(--blue-ink);border-color:color-mix(in srgb,var(--brand-blue) 45%,transparent)}.status-pill.active{background:var(--orange-soft);color:var(--orange-ink);border-color:color-mix(in srgb,var(--brand-orange) 55%,transparent)}.status-pill.off{background:var(--inset);color:var(--muted)}.dot{border-radius:50%;flex:none;width:11px;height:11px;position:relative}.dot.clear{background:var(--brand-blue)}.dot.active{background:var(--orange-strong)}.dot.off{background:var(--stroke-cool)}.dot.live:after{content:"";opacity:.5;border:2px solid;border-radius:50%;animation:1.8s ease-out infinite ping;position:absolute;inset:-5px}@keyframes ping{0%{opacity:.6;transform:scale(.6)}to{opacity:0;transform:scale(1.7)}}.status-sub{color:var(--muted);margin-top:13px;font-size:13px}.status-sub b{color:var(--ink);font-weight:700}.next-ring{align-items:baseline;gap:12px;display:flex}.next-ring .t{color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:30px;font-weight:500}.next-ring .cd{color:var(--yellow-ink);background:var(--brand-yellow);border-radius:8px;padding:4px 10px;font-size:13px;font-weight:800}.next-ring-name{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:13px;font-size:13px;display:flex}.chip-sound{background:var(--purple-50);color:var(--brand-purple);border-radius:7px;padding:2px 9px;font-size:12px;font-weight:700}.console-bar{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:18px;padding:16px 24px;display:flex}.vol{flex:1;align-items:center;gap:12px;min-width:240px;display:flex}.vol .lbl{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);white-space:nowrap;font-size:11px;font-weight:800}.vol input[type=range]{accent-color:var(--brand-purple);flex:1;min-width:120px;height:4px}.vol .val{text-align:right;min-width:46px;color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:14px;font-weight:600}.ring-controls{flex-wrap:wrap;gap:10px;display:flex}.page-title{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:8px;display:flex}.page-title h1{font-size:26px}.page-title .eyebrow{margin:0 0 6px}.notice,.banner{border-radius:11px;margin:16px 0;padding:12px 15px;font-size:14px;font-weight:600}.notice{background:var(--purple-50);color:var(--brand-purple);cursor:pointer}.banner{background:var(--orange-soft);color:var(--orange-ink)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-top:20px;padding:24px}.panel-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.panel-head h2{font-size:21px}.panel-head p{color:var(--muted);max-width:60ch;margin:5px 0 0;font-size:14px}.table{flex-direction:column;display:flex}.row{border-bottom:1px solid var(--line-2);align-items:center;gap:14px;min-height:58px;padding:10px 6px;display:flex}.row:last-child{border-bottom:0}.row:hover{background:var(--inset);border-radius:10px}.row b{color:var(--ink);flex:1;font-weight:700}.row .muted{font-size:13px}.row .dur{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:13px}.sound-icon,.number{background:var(--purple-50);width:34px;height:34px;color:var(--brand-purple);border-radius:10px;flex:none;place-items:center;font-weight:800;display:grid}.sound-icon.alarm{background:var(--orange-soft);color:var(--orange-ink)}.tag{letter-spacing:.05em;text-transform:uppercase;background:var(--orange-soft);color:var(--orange-ink);border-radius:6px;padding:3px 8px;font-size:11px;font-weight:800}.count{background:var(--inset);color:var(--muted);border-radius:99px;padding:5px 11px;font-family:Montserrat;font-size:12px;font-weight:800}.empty{color:var(--muted);text-align:center;padding:44px 12px}.form-line{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.schedule{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;padding:18px;transition:all .18s}.schedule:hover{box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--brand-purple) 30%,var(--line));transform:translateY(-2px)}.schedule>div{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.schedule h3{font-size:18px}.status{background:var(--inset);color:var(--muted);border-radius:99px;padding:4px 11px;font-family:Montserrat;font-size:12px;font-weight:800}.status.on{background:var(--purple-50);color:var(--brand-purple)}.timeline{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.tstop{background:var(--surface);border:1px solid var(--line);color:var(--body);border-radius:7px;padding:4px 8px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.tstop.next{background:var(--brand-yellow);border-color:color-mix(in srgb,var(--brand-yellow) 70%,var(--yellow-ink));color:var(--yellow-ink)}.schedule footer{justify-content:flex-start;gap:7px;margin:0;display:flex}.schedule footer button{padding:8px 12px;font-size:13px}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#21133c6b;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);width:min(650px,100%);box-shadow:var(--shadow-lg);border-radius:18px;max-height:92vh;padding:26px;overflow:auto}.modal label{color:var(--ink);margin:15px 0;font-size:13px;font-weight:700;display:block}.modal label input{width:100%;margin-top:6px;display:block}.modal .check{align-items:center;gap:8px;display:flex}.modal .check input{width:auto;margin:0}.modal h3{margin:22px 0 10px}.entry{grid-template-columns:120px 1fr 90px 36px;gap:8px;margin:8px 0;display:grid}.entry select{min-width:0}.entry .danger{padding:2px;font-size:20px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:26px;display:flex}.logbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.toggle{color:var(--muted);cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.logbox{border:1px solid var(--line);background:var(--inset);border-radius:12px;max-height:60vh;overflow:hidden auto}.lrow{border-bottom:1px solid var(--line-2);grid-template-columns:auto 82px 1fr;align-items:baseline;gap:12px;padding:8px 14px;font-family:IBM Plex Mono,monospace;font-size:12.5px;display:grid}.lrow:last-child{border-bottom:0}.lrow:hover{background:var(--surface)}.lrow .ts{color:var(--muted);white-space:nowrap}.lvl{letter-spacing:.04em;text-align:center;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}.lvl.BELL{background:var(--purple-50);color:var(--brand-purple)}.lvl.ALARM,.lvl.ERROR{background:var(--orange-soft);color:var(--orange-ink)}.lvl.INFO{background:var(--blue-soft);color:var(--blue-ink)}.lvl.HTTP{background:var(--inset);color:var(--muted)}.lrow .msg{color:var(--ink);word-break:break-word}.sched-days{color:var(--muted);align-items:center;gap:6px;margin-bottom:12px;font-size:12.5px;font-weight:700;display:flex}.day-toggles{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.day{background:var(--surface-2);color:var(--muted);border:1px solid var(--line);box-shadow:none;border-radius:9px;min-width:44px;padding:8px 12px;font-size:13px;font-weight:800}.day:hover{background:var(--purple-50);color:var(--brand-purple)}.day.on{background:var(--brand-purple);color:#fff;border-color:var(--brand-purple)}.hint{color:var(--muted);font-size:12.5px;font-weight:500}.hint code{background:var(--inset);border-radius:5px;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:11.5px}.cal-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;font-size:13px;font-weight:700;display:flex}.cal-legend span{align-items:center;gap:7px;display:inline-flex}.cal-legend i{border-radius:4px;width:12px;height:12px;display:inline-block}.cal-scroll{border:1px solid var(--line);background:var(--surface);border-radius:12px;max-height:62vh;overflow:auto}.cal{grid-template-columns:58px repeat(7,minmax(96px,1fr));min-width:820px;display:grid}.cal-corner{z-index:6;background:var(--surface-2);border-bottom:1px solid var(--line);border-right:1px solid var(--line);position:sticky;top:0}.cal-head{z-index:5;background:var(--surface-2);border-bottom:1px solid var(--line);border-right:1px solid var(--line-2);flex-direction:column;align-items:center;gap:3px;padding:8px 0;display:flex;position:sticky;top:0}.cal-head:last-child{border-right:0}.cal-head .wd{color:var(--muted);letter-spacing:.04em;font-family:Montserrat;font-size:12px;font-weight:800}.cal-head .dt{color:var(--ink);place-items:center;width:30px;height:30px;font-family:IBM Plex Mono,monospace;font-size:17px;font-weight:600;display:grid}.cal-head.today .wd{color:var(--brand-purple)}.cal-head.today .dt{background:var(--brand-purple);color:#fff;border-radius:50%}.cal-hours{border-right:1px solid var(--line);position:relative}.cal-hlabel{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:11px;position:absolute;right:8px;transform:translateY(-50%)}.cal-col{border-right:1px solid var(--line-2);position:relative}.cal-col:last-child{border-right:0}.cal-col.today{background:color-mix(in srgb,var(--brand-purple) 4%,transparent)}.cal-slot{border-bottom:1px solid var(--line-2)}.cal-now{background:var(--orange-strong);z-index:4;height:2px;position:absolute;left:0;right:0}.cal-now:before{content:"";background:var(--orange-strong);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.cal-ev{border-left:3px solid var(--brand-purple);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;z-index:2;box-shadow:var(--shadow-sm);border-radius:6px;align-items:center;gap:3px;padding:0 6px;font-size:11px;font-weight:600;display:flex;position:absolute;overflow:hidden}.cal-ev b{font-family:IBM Plex Mono,monospace;font-weight:700}.alarm-form{flex-direction:column;gap:16px;max-width:560px;display:flex}.alarm-form label{color:var(--ink);flex-direction:column;gap:6px;font-size:14px;font-weight:700;display:flex}.alarm-form input{font-weight:600}.alarm-form .hint{color:var(--muted);font-size:12.5px;font-weight:500}.alarm-form .hint code{background:var(--inset);border-radius:5px;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:11.5px}.ok-msg{color:var(--good);font-size:14px;font-weight:700}.alarm-map{border:1px solid var(--line);background:var(--inset);border-radius:12px;width:100%;height:min(70vh,620px)}.app.alarm .console{border-color:color-mix(in srgb,var(--brand-orange) 60%,transparent);box-shadow:0 0 0 1px var(--orange-strong),var(--shadow-lg)}.app.alarm .brand-mark{animation:4s ease-in-out infinite shake}@keyframes shake{0%,92%,to{transform:rotate(0)}94%{transform:rotate(-8deg)}96%{transform:rotate(8deg)}98%{transform:rotate(-5deg)}}@media (width<=900px){.app header{flex-wrap:wrap;gap:12px;padding:12px 16px}nav{flex-basis:100%;order:3;overflow:auto}.shell{padding:24px 16px 60px}}@media (width<=820px){.console-top{grid-template-columns:1fr 1fr}.cell.next{border-top:1px solid var(--line);grid-column:1/-1}.clock{font-size:38px}}@media (width<=560px){.console-top{grid-template-columns:1fr}.cell{border-top:1px solid var(--line)}.entry{grid-template-columns:1fr 1fr 70px 32px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
