.sidebar{border-right:1px solid var(--border-structural);flex-direction:column;grid-row:1;min-height:0;display:flex}.sidebar__logo{align-items:center;gap:10px;padding:22px 20px 18px;display:flex}.sidebar__mark{border:2px solid var(--accent);border-radius:3px;place-items:center;width:22px;height:22px;display:grid}.sidebar__markDot{background:var(--accent);border-radius:50%;width:6px;height:6px}.sidebar__word{letter-spacing:.16em;text-transform:uppercase;font-size:16px;font-weight:700}.sidebar__vps{color:var(--ink-dimmer);margin-left:auto;font-size:12px}.sidebar__search{border:1px solid var(--border-default);background:#141416;border-radius:6px;align-items:center;gap:8px;margin:0 14px 14px;padding:8px 10px;display:flex}.sidebar__search input{background:0 0;border:0;outline:none;width:100%;font-size:16px}.sidebar__slash{color:var(--ink-faint);font-size:12px}.sidebar__nav{flex-direction:column;gap:2px;padding:0 10px;display:flex}.sidebar__navItem{text-align:left;width:100%;color:var(--ink-dimmer);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:9px 10px;font-size:16px;display:flex}.sidebar__navItem:hover{background:var(--hover-nav);color:var(--ink)}.sidebar__navItem--active{background:var(--control-active-nav);color:var(--ink);font-weight:600}.sidebar__navItem--pl{padding:7px 10px;font-size:16px;font-weight:400!important}.sidebar__dot{background:var(--border-chip);border-radius:50%;flex:none;width:5px;height:5px}.sidebar__navItem--active .sidebar__dot{background:var(--accent)}.sidebar__count{color:var(--ink-faint);margin-left:auto;font-size:12px}.sidebar__chip{border-radius:4px;flex:none;place-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:grid}.sidebar__section{letter-spacing:.14em;color:var(--ink-dimmer);text-transform:uppercase;padding:22px 20px 8px;font-size:12px}.sidebar__playlists{flex-direction:column;flex:1;gap:1px;min-height:0;padding:0 10px 10px;display:flex;overflow-y:auto}.sidebar__footer{border-top:1px solid var(--border-structural);flex-direction:column;gap:10px;padding:14px 20px 16px;display:flex}.sidebar__storageRow{color:var(--ink-dimmer);justify-content:space-between;font-size:12px;display:flex}.sidebar__storageTrack{background:#1f1f23;border-radius:2px;height:3px;overflow:hidden}.sidebar__storageFill{background:var(--accent);height:100%}.sidebar__user{text-align:left;color:inherit;background:0 0;border:0;align-items:center;gap:9px;padding:0;display:flex}.sidebar__avatar{border:1px solid var(--border-chip);width:26px;height:26px;color:var(--ink-muted);background:#222226;border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:600;display:grid}.sidebar__userInfo{line-height:1.25}.sidebar__userName{font-size:15px;font-weight:500}.sidebar__userMeta{color:var(--ink-dimmer);font-size:11px}.sidebar__user svg{margin-left:auto}.sidebar__adminLink,.sidebar__logout{letter-spacing:.08em;color:var(--ink-dimmer);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.sidebar__adminLink:hover,.sidebar__logout:hover{color:var(--accent)}.tile{border:1px solid #ffffff12;flex:none;place-items:center;transition:filter .15s;display:grid;position:relative;overflow:hidden}.tile--fluid{aspect-ratio:1;width:100%}.tile:hover{filter:brightness(1.12)}.tile__img{object-fit:cover;width:100%;height:100%}.tile__glyph{font-family:var(--font-ui);letter-spacing:-.03em;opacity:.9;font-size:34%;font-weight:700}.tile--fluid .tile__glyph{font-size:38px}.tile__cat{font-family:var(--font-mono);color:#ffffff8c;font-size:11px;position:absolute;bottom:9px;left:10px}.tile__badge{font-family:var(--font-mono);letter-spacing:.08em;color:#ffffffb3;background:#00000073;border-radius:3px;padding:2px 5px;font-size:10px;position:absolute;top:8px;right:8px}.switch{border:1px solid var(--border-chip);cursor:pointer;background:#1a1a1d;border-radius:11px;flex:none;justify-content:flex-start;align-items:center;width:38px;height:21px;padding:2px;transition:all .15s;display:flex}.switch--on{border-color:var(--accent);background:var(--accent-tint-track);justify-content:flex-end}.switch:disabled{opacity:.5;cursor:not-allowed}.switch__knob{background:#55555c;border-radius:50%;width:15px;height:15px;transition:all .15s;display:block}.switch--on .switch__knob{background:var(--accent)}.pill{color:var(--ink-dim);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;padding:6px 11px;font-size:12px}.pill--active{background:var(--control-active-pill);border-color:var(--border-chip);color:var(--ink)}.popover{border:1px solid var(--border-input);border-radius:var(--r-card);width:290px;box-shadow:var(--shadow-popover);z-index:20;background:#131316;padding:16px;position:absolute;bottom:78px;right:20px}.popover__title{letter-spacing:.14em;color:var(--ink-dim);text-transform:uppercase;font-size:12px}.popover__row{justify-content:space-between;align-items:center;margin-top:14px;font-size:16px;display:flex}.popover__block{margin-top:16px}.popover__block--divider{border-top:1px solid var(--border-default);margin-top:18px;padding-top:14px}.popover__blockHead{justify-content:space-between;align-items:baseline;font-size:16px;display:flex}.popover__val{color:var(--ink-dim);font-size:12px}.popover__slider{cursor:pointer;align-items:center;height:16px;margin-top:6px;display:flex}.popover__track{background:#232327;border-radius:2px;width:100%;height:3px;overflow:hidden}.popover__fill{height:100%}.popover__pills{gap:6px;margin-top:9px;display:flex}.popover__cacheRow{justify-content:space-between;align-items:center;font-size:16px;display:flex}.popover__cacheHint{color:var(--ink-dimmer);margin-top:2px;font-size:11px}.playerBar{border-top:1px solid var(--border-structural);background:var(--field);grid-area:2/1/auto/-1;grid-template-columns:minmax(0,1fr) minmax(380px,2fr) minmax(0,1fr);align-items:center;gap:20px;padding:0 20px;display:grid;position:relative}.playerBar--empty{border-top:1px solid var(--border-structural);background:var(--field)}.playerBar__left{align-items:center;gap:12px;min-width:0;display:flex}.playerBar__meta{min-width:0}.playerBar__title{font-size:16px;font-weight:500}.playerBar__artist{color:var(--ink-dim);font-size:15px}.playerBar__center{flex-direction:column;align-items:center;gap:7px;display:flex}.playerBar__transport{align-items:center;gap:16px;display:flex}.iconBtn{color:var(--ink-muted);cursor:pointer;background:0 0;border:0;padding:4px;line-height:1}.iconBtn:hover{color:var(--ink)}.iconBtn--muted{color:var(--ink-muted)}.iconBtn--active{color:var(--accent)}.playerBar__play{background:var(--ink);cursor:pointer;width:38px;height:38px;color:var(--canvas);border:0;border-radius:50%;place-items:center;display:grid}.playerBar__play:hover{background:#fff}.playerBar__repeatMark{font-family:var(--font-mono);color:var(--accent);font-size:10px;position:absolute;bottom:0;right:-1px}.playerBar__seekRow{align-items:center;gap:10px;width:100%;display:flex}.playerBar__time{color:var(--ink-dim);width:34px;font-size:12px}.playerBar__time:last-child{text-align:left}.playerBar__time:first-child{text-align:right}.playerBar__seek{cursor:pointer;flex:1;align-items:center;height:14px;display:flex}.playerBar__seekTrack{background:#232327;border-radius:2px;width:100%;height:3px;overflow:hidden}.playerBar__seekFill{background:var(--accent);height:100%}.playerBar__right{justify-content:flex-end;align-items:center;gap:14px;display:flex}.playerBar__gapless{letter-spacing:.1em;color:var(--ink-dimmer);border:1px solid var(--border-default);white-space:nowrap;border-radius:4px;padding:4px 8px;font-size:11px}.playerBar__volume{align-items:center;gap:8px;display:flex}.playerBar__volumeTrack{cursor:pointer;align-items:center;width:74px;height:14px;display:flex}.playerBar__volumeInner{background:#232327;border-radius:2px;width:100%;height:3px;overflow:hidden}.playerBar__volumeFill{background:var(--ink-muted);height:100%}.miniPlayer{border:1px solid var(--border-input);text-align:left;background:#141417;border-radius:12px;grid-area:2/1/auto/-1;align-items:center;gap:12px;margin:0 12px 8px;padding:9px 12px;display:flex}.miniPlayer__meta{flex:1;min-width:0}.miniPlayer__title{font-size:16px;font-weight:500}.miniPlayer__artist{color:var(--ink-dim);font-size:14px}.miniPlayer__playBtn{width:32px;height:32px;color:var(--ink);border-radius:50%;flex:none;place-items:center;display:grid}.queuePanel{border-left:1px solid var(--border-structural);background:var(--canvas-raised);flex-direction:column;flex:none;width:312px;min-height:0;display:flex}.queuePanel--narrow{width:clamp(230px,30vw,312px)}.queuePanel__head{align-items:center;padding:18px 18px 12px;display:flex}.queuePanel__title{letter-spacing:.14em;color:var(--ink-dim);text-transform:uppercase;font-size:12px}.queuePanel__clear{color:var(--ink-dimmer);background:0 0;border:0;margin-left:auto;font-size:12px}.queuePanel__close{color:var(--ink-dimmer);background:0 0;border:0;margin-left:12px;padding:2px;line-height:1}.queuePanel__close:hover{color:var(--ink)}.queuePanel__list{flex:1;min-height:0;padding:0 10px 14px;overflow-y:auto}.queuePanel__empty{color:var(--ink-dimmer);padding:20px 10px;font-size:14px}.queuePanel__row{cursor:grab;border-radius:6px;align-items:center;gap:9px;padding:8px;display:flex}.queuePanel__row:hover{background:var(--hover-nav)}.queuePanel__n{color:var(--ink-faint);width:14px;font-size:12px}.queuePanel__meta{flex:1;min-width:0}.queuePanel__title2{font-size:15px}.queuePanel__artist{color:var(--ink-dimmer);font-size:14px}.queuePanel__dur{color:var(--ink-dimmer);font-size:12px}.queuePanel__remove{color:var(--ink-faint);background:0 0;border:0;padding:2px;line-height:1}.queuePanel__remove:hover{color:var(--accent)}.tabbar{border-top:1px solid var(--border-structural);padding:6px 8px calc(env(safe-area-inset-bottom,0px) + 6px);background:var(--canvas);flex:none;display:flex}.tabbar__item{height:52px;color:var(--ink-dimmer);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;font-size:14px;display:flex}.tabbar__item--active{color:var(--ink);font-weight:600}.tabbar__dot{background:var(--border-chip);border-radius:50%;width:5px;height:5px}.tabbar__item--active .tabbar__dot{background:var(--accent)}.shell{background:var(--canvas);height:100dvh;min-height:0;color:var(--ink);grid-template-rows:minmax(0,1fr) 84px;grid-template-columns:252px minmax(0,1fr);font-size:18px;display:grid;overflow:hidden}.shell__mainRow{grid-area:1/2;min-width:0;min-height:0;display:flex}.shell__content{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}@media (width<=899px){.shell{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.shell__mainRow{grid-column:1}}.pageHeader{border-bottom:1px solid var(--border-section);flex:none;align-items:center;gap:14px;padding:20px 28px 16px;display:flex}.pageHeader__text{min-width:0}.pageHeader__crumb{letter-spacing:.14em;color:var(--ink-dimmer);text-transform:uppercase;font-size:12px}.pageHeader__heading{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:28px;font-weight:600;overflow:hidden}.pageHeader__right{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}@media (width<=720px){.pageHeader{padding:16px 20px 14px}.pageHeader__heading{font-size:24px}}.libHome{flex-direction:column;flex:1;gap:34px;min-height:0;padding:24px 28px 40px;display:flex;overflow-y:auto}.libHome__sectionHead{align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.libHome__sectionHead h2{margin:0;font-size:19px;font-weight:600}.libHome__meta{color:var(--ink-dimmer);font-size:12px}.libHome__grid{grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:18px 16px;padding-bottom:8px;display:grid}.libHome__card{cursor:pointer;min-width:0}.libHome__cardTitle{margin-top:10px;font-size:16px;font-weight:500}.libHome__cardArtist{color:var(--ink-dim);font-size:15px}.libHome__skeleton{aspect-ratio:1;background:var(--panel);border-radius:6px;animation:1.4s ease-in-out infinite pulse}.libHome__empty{color:var(--ink-dimmer);font-size:15px}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@media (width<=720px){.libHome{padding:16px 20px 24px}.libHome__grid{grid-template-columns:1fr 1fr}}.browse{flex:1;min-height:0;overflow-y:auto}.browse__toolbar{border-bottom:1px solid var(--border-section);background:var(--canvas);z-index:2;align-items:center;gap:6px;padding:12px 28px;display:flex;position:sticky;top:0}.browse__toolbarRight{color:var(--ink-dimmer);align-items:center;gap:14px;margin-left:auto;font-size:12px;display:flex}.browse__sep{color:var(--ink-faint)}.browse__sortBtn{color:var(--ink-dim);background:0 0;border:0;padding:0;font-size:12px}.browse__head{letter-spacing:.12em;color:var(--ink-dimmer);border-bottom:1px solid var(--border-section);gap:0;padding:10px 28px;font-size:11px;display:grid}.browse__row{border-bottom:1px solid var(--hairline);cursor:pointer;align-items:center;gap:0;height:52px;padding:0 28px;display:grid}.browse__row:hover{background:var(--hover-row)}.browse__rowMain{align-items:center;gap:12px;min-width:0;display:flex}.browse__rowText{min-width:0}.browse__rowTitle{font-size:16px;font-weight:500}.browse__rowSub{color:var(--ink-dimmer);font-size:14px}.browse__cell{color:var(--ink-dim);text-overflow:ellipsis;white-space:nowrap;padding-right:14px;font-size:14px;overflow:hidden}.browse__cell--right{text-align:right}@media (width<=720px){.browse__toolbar,.browse__head,.browse__row{padding-left:16px;padding-right:16px}}.detail{flex:1;min-height:0;overflow-y:auto}.detail__loading{color:var(--ink-dimmer);padding:40px 28px}.detail__hero{border-bottom:1px solid var(--border-section);flex-direction:row;gap:26px;padding:30px 28px 26px;display:flex}.detail__hero--stack{flex-direction:column;gap:16px;padding:22px 20px}.detail__heroText{flex-direction:column;min-width:0;padding-top:4px;display:flex}.detail__kind{letter-spacing:.14em;color:var(--ink-dimmer);text-transform:uppercase;font-size:12px}.detail__title{letter-spacing:-.02em;text-wrap:pretty;margin-top:8px;font-weight:700;line-height:1.08}.detail__subtitle{color:var(--ink-muted);margin-top:8px;font-size:18px}.detail__meta{color:var(--ink-dimmer);margin-top:6px;font-size:12px}.detail__actions{flex-wrap:wrap;align-items:center;gap:9px;margin-top:auto;padding-top:20px;display:flex}.detail__play{background:var(--accent);color:var(--canvas);border:0;border-radius:5px;align-items:center;gap:8px;padding:9px 16px;font-size:16px;font-weight:600;display:flex}.detail__play:hover{background:var(--accent-hover)}.detail__shuffle{background:var(--control-surface);border:1px solid var(--border-input);color:var(--ink-secondary);border-radius:5px;padding:9px 14px;font-size:16px}.detail__shuffle:hover{border-color:var(--border-hover)}.detail__offline{border:1px solid var(--border-input);color:var(--ink-dim);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;border-radius:5px;align-items:center;gap:7px;padding:9px 13px;font-size:12px;display:flex}.detail__offline--on{border-color:var(--accent);color:var(--accent)}.detail__tableHead{letter-spacing:.12em;color:var(--ink-dimmer);border-bottom:1px solid var(--border-section);grid-template-columns:34px minmax(0,2.2fr) minmax(84px,.7fr) minmax(84px,.7fr) 96px;padding:12px 28px 10px;font-size:11px;display:grid}.detail__row{border-bottom:1px solid var(--hairline);cursor:pointer;grid-template-columns:34px minmax(0,2.2fr) minmax(84px,.7fr) minmax(84px,.7fr) 96px;align-items:center;height:46px;padding:0 28px;display:grid}.detail__row:hover{background:var(--hover-row)}.detail__num{color:var(--ink-dimmer);font-size:14px}.detail__trackTitle{align-items:center;gap:9px;min-width:0;font-size:16px;display:flex}.detail__cellMuted{color:var(--ink-dimmer);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.detail__cellRight{color:var(--ink-dim);text-align:right;font-size:14px}@media (width<=720px){.detail__tableHead,.detail__row{grid-template-columns:26px minmax(0,1fr) 60px;padding-left:16px;padding-right:16px}.detail__tableHead>div:nth-child(3),.detail__tableHead>div:nth-child(4),.detail__row>.detail__cellMuted{display:none}}.searchPage{flex-direction:column;flex:1;gap:28px;min-height:0;padding:20px 28px 40px;display:flex;overflow-y:auto}.searchPage__input{background:var(--field);border:1px solid var(--border-input);color:var(--ink);border-radius:6px;outline:none;padding:12px 14px;font-size:18px}.searchPage h3{color:var(--ink-dim);margin:0 0 10px;font-size:16px}.searchPage__grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;display:grid}.searchPage__card{cursor:pointer}.searchPage__cardTitle{margin-top:8px;font-size:16px}.searchPage__cardSub{color:var(--ink-dimmer);font-size:13px}.searchPage__list{flex-direction:column;display:flex}.searchPage__row{border-bottom:1px solid var(--hairline);cursor:pointer;justify-content:space-between;gap:12px;min-width:0;padding:10px 0;display:flex}.searchPage__rowSub{color:var(--ink-dimmer);flex:none;font-size:14px}.searchPage__empty{color:var(--ink-dimmer)}.btn{border-radius:var(--r-btn);font-family:var(--font-ui);white-space:nowrap;border:1px solid #0000;align-items:center;gap:8px;padding:9px 16px;font-size:16px;display:inline-flex}.btn--primary{background:var(--accent);color:var(--canvas);border:0;font-weight:600}.btn--primary:hover{background:var(--accent-hover)}.btn--secondary{background:var(--control-surface);border-color:var(--border-input);color:var(--ink-secondary)}.btn--secondary:hover{border-color:var(--border-hover)}.btn--ghost{color:var(--ink-dimmer);background:0 0;border:0;padding:4px}.btn:disabled{opacity:.5;cursor:not-allowed}.uploadPage{flex-direction:column;flex:1;gap:26px;min-height:0;padding:24px 28px 40px;display:flex;overflow-y:auto}.uploadPage__dropzone{border:1px dashed var(--border-dropzone);background:var(--panel-alt);border-radius:10px;flex-wrap:wrap;align-items:center;gap:24px;padding:34px 28px;display:flex}.uploadPage__dropzone--over{border-color:var(--accent);background:#e8552f0f}.uploadPage__dropIcon{background:var(--accent-tint-fill);border:1px solid var(--accent);width:52px;height:52px;color:var(--accent);border-radius:9px;flex:none;place-items:center;display:grid}.uploadPage__dropText{flex:1;min-width:220px}.uploadPage__dropTitle{font-size:20px;font-weight:600}.uploadPage__dropHint{color:var(--ink-dim);margin-top:6px;font-size:13px}.uploadPage__dropActions{gap:9px;display:flex}.uploadPage__settings{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.uploadPage__settingCard{background:var(--panel);border:1px solid var(--border-card);border-radius:9px;padding:14px 16px}.uploadPage__settingKicker{letter-spacing:.12em;color:var(--ink-dimmer);font-size:12px}.uploadPage__destination{margin-top:10px;font-size:15px}.uploadPage__settingRow{align-items:center;gap:12px;margin-top:10px;font-size:16px;display:flex}.uploadPage__sectionHead{align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.uploadPage__sectionHead h2{margin:0;font-size:19px;font-weight:600}.uploadPage__sectionMeta{color:var(--ink-dimmer);font-size:13px}.uploadPage__sectionMetaWarn{color:var(--accent);font-size:13px}.uploadPage__table{border:1px solid var(--border-card);border-radius:9px;overflow-x:auto}.uploadPage__tableHead,.uploadPage__tableRow{grid-template-columns:minmax(240px,2.4fr) 92px 88px minmax(140px,1fr) 132px;align-items:center;gap:0;min-width:830px;padding:0 16px;display:grid}.uploadPage__tableHead{background:var(--panel-alt);border-bottom:1px solid var(--border-card);letter-spacing:.12em;color:var(--ink-dimmer);padding:10px 16px;font-size:12px}.uploadPage__tableRow{border-bottom:1px solid var(--hairline);height:52px;font-size:15px}.uploadPage__muted{color:var(--ink-dim);font-size:14px}.uploadPage__progressCell{padding-right:20px}.uploadPage__progressTrack{background:#232327;border-radius:2px;height:3px;overflow:hidden}.uploadPage__progressFill{height:100%}.uploadPage__status{text-align:right;font-size:14px}.uploadPage__status--ok{color:var(--success)}.uploadPage__status--warn{color:var(--accent)}.uploadPage__status--mute{color:var(--ink-dim)}.uploadPage__empty{color:var(--ink-dimmer);padding:20px 16px;font-size:15px}.uploadPage__reviewList{flex-direction:column;gap:10px;display:flex}.reviewCard{background:var(--panel);border:1px solid var(--border-card);border-radius:9px;padding:14px 16px}.reviewCard__top{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.reviewCard__info{flex:1;min-width:180px}.reviewCard__path{color:var(--ink-dim);font-size:14px}.reviewCard__guess{margin-top:4px;font-size:17px;font-weight:500}.reviewCard__actions{gap:8px;display:flex}.reviewCard__fields{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-top:14px;display:grid}.reviewCard__field{flex-direction:column;gap:5px;display:flex}.reviewCard__field span{letter-spacing:.12em;color:var(--ink-dimmer);font-size:12px}.reviewCard__field input{background:var(--field);border:1px solid var(--border-input);color:var(--ink);border-radius:6px;outline:none;padding:9px 10px;font-size:16px}.settingsPage{flex-direction:column;flex:1;gap:16px;max-width:420px;padding:24px 28px 40px;display:flex}.settingsPage__card{background:var(--panel);border:1px solid var(--border-card);border-radius:9px;padding:18px}.settingsPage__label{color:var(--ink-dimmer);letter-spacing:.1em;font-size:12px}.settingsPage__name{margin-top:8px;font-size:22px;font-weight:600}.settingsPage__email{color:var(--ink-dim);margin-top:4px;font-size:14px}.settingsPage__role{color:var(--accent);margin-top:8px;font-size:12px}.settingsPage__adminLink{font-size:16px}.settingsPage__logout{background:var(--control-surface);border:1px solid var(--border-input);color:var(--ink-secondary);border-radius:6px;padding:11px;font-size:16px}.nowPlaying{background:var(--canvas);flex-direction:column;min-height:100dvh;display:flex}.nowPlaying__topbar{align-items:center;padding:6px 8px;display:flex}.nowPlaying__back{width:44px;height:44px;color:var(--ink);background:0 0;border:0;place-items:center;display:grid}.nowPlaying__topLabel{letter-spacing:.12em;color:var(--ink-dimmer);font-size:14px}.nowPlaying__body{flex:1;padding:14px 26px 40px;overflow-y:auto}.nowPlaying__art{width:74%;box-shadow:var(--shadow-mobile-hero);margin:0 auto}.nowPlaying__meta{align-items:flex-start;gap:14px;margin-top:22px;display:flex}.nowPlaying__metaText{flex:1;min-width:0}.nowPlaying__title{letter-spacing:-.01em;font-size:28px;font-weight:600}.nowPlaying__artist{color:var(--ink-dim);margin-top:4px;font-size:18px}.nowPlaying__heart{width:44px;height:44px;color:var(--ink-dim);background:0 0;border:0;place-items:center;display:grid}.nowPlaying__heart--on{color:var(--accent)}.nowPlaying__progress{margin-top:22px}.nowPlaying__progressTrack{cursor:pointer;background:#232327;border-radius:2px;height:4px;overflow:hidden}.nowPlaying__progressFill{background:var(--accent);height:100%}.nowPlaying__times{color:var(--ink-dim);justify-content:space-between;margin-top:8px;font-size:13px;display:flex}.nowPlaying__transport{justify-content:space-between;align-items:center;margin-top:18px;display:flex}.nowPlaying__ctrl{width:48px;height:48px;color:var(--ink-dim);background:0 0;border:0;place-items:center;display:grid}.nowPlaying__ctrl--big{width:52px;height:52px;color:var(--ink)}.nowPlaying__ctrl--active{color:var(--accent)}.nowPlaying__play{background:var(--ink);width:72px;height:72px;color:var(--canvas);border:0;border-radius:50%;place-items:center;display:grid}.nowPlaying__pills{gap:8px;margin-top:18px;display:flex}.nowPlaying__pill{text-align:center;border:1px solid var(--border-input);font-family:var(--font-mono);letter-spacing:.08em;color:var(--ink-muted);cursor:pointer;background:#141417;border-radius:8px;flex:1;padding:11px 0;font-size:14px}.nowPlaying__pill:hover{border-color:var(--ink-dimmer)}.nowPlaying__pill--on{background:var(--accent-tint-fill);border-color:var(--accent);color:var(--accent)}.nowPlaying__queue{margin-top:28px}.nowPlaying__queueLabel{letter-spacing:.12em;color:var(--ink-dimmer);padding-bottom:10px;font-size:14px}.nowPlaying__queueHint{color:var(--ink-faint);letter-spacing:normal}.nowPlaying__queueRow{border-top:1px solid var(--border-section);cursor:grab;align-items:center;gap:12px;height:52px;display:flex}.nowPlaying__queueMeta{flex:1;min-width:0;font-size:16px}.nowPlaying__queueArtist{color:var(--ink-dimmer);font-size:14px}.nowPlaying__queueDur{color:var(--ink-dimmer);font-size:13px}.auth{background:var(--canvas);place-items:center;min-height:100dvh;padding:20px;display:grid}.auth__card{background:var(--panel);border:1px solid var(--border-card);border-radius:12px;flex-direction:column;gap:16px;width:100%;max-width:360px;padding:32px 28px;display:flex}.auth__logo{align-items:center;gap:10px;display:flex}.auth__mark{border:2px solid var(--accent);border-radius:4px;place-items:center;width:26px;height:26px;display:grid}.auth__mark span{background:var(--accent);border-radius:50%;width:7px;height:7px}.auth__word{letter-spacing:.16em;text-transform:uppercase;font-size:19px;font-weight:700}.auth__tagline{letter-spacing:.08em;color:var(--ink-dimmer);margin:0;font-size:12px}.auth__field{flex-direction:column;gap:6px;display:flex}.auth__field span{letter-spacing:.12em;color:var(--ink-dimmer);font-size:12px}.auth__field input{background:var(--field);border:1px solid var(--border-input);border-radius:6px;outline:none;padding:10px 12px;font-size:18px}.auth__field input:focus{border-color:var(--border-hover)}.auth__error{border:1px solid var(--accent);color:var(--accent);background:#e8552f1a;border-radius:6px;padding:8px 10px;font-size:15px}.auth__submit{background:var(--accent);color:var(--canvas);border:0;border-radius:6px;padding:11px;font-size:16px;font-weight:600}.auth__submit:hover{background:var(--accent-hover)}.auth__submit:disabled{opacity:.6}.auth__hubLink{border:1px solid var(--border-input);color:var(--ink-dimmer);letter-spacing:.08em;background:0 0;border-radius:6px;padding:4px 10px;font-size:12px}.auth__hubLink:hover{border-color:var(--border-hover);color:var(--ink)}.auth__hint{color:var(--ink-faint);text-align:center;margin:0;font-size:12px}.hub{--canvas:#17120f;--ink-dim:#a89e93;--ink-dimmer:#96897c;--ink-faint:#87796c;--border-hover:#4a3d2f;--accent:#e2694a;--success:#8fbf6f;--hub-purple:#b98fd6;--hub-purple-dim:#b98fd62b;--hub-amber:#f2a94d;--hub-amber-dim:#f2a94d29;--hub-blue:#6fa9c9;--hub-blue-dim:#6fa9c929;--hub-slate:#a89a8c;--hub-slate-dim:#a89a8c26;--hub-red:#e2694a;--hub-red-dim:#e2694a29;--hub-green:#8fbf6f;--hub-green-dim:#8fbf6f29;--hub-pink:#e88fa0;--hub-pink-dim:#e88fa02b;--hub-card:#201a16;--font-display:"Fraunces", Georgia, serif;background:var(--canvas);flex-direction:column;gap:24px;min-height:100dvh;padding:28px 28px 48px;display:flex}.hub__top{justify-content:space-between;align-items:flex-start;display:flex}.hub__homeName{font-family:var(--font-display);font-variation-settings:"opsz" 40;letter-spacing:-.01em;font-size:32px;font-weight:600}.hub__greetingSub{color:var(--ink-dim);margin-top:4px;font-size:13.5px}.hub__stats{color:var(--ink-dim);align-items:center;gap:8px;margin-top:6px;font-size:14px;display:flex}.hub__statDot{color:var(--ink-faint)}.hub__eyebrow{letter-spacing:.16em;color:var(--ink-dimmer);margin-top:4px;font-size:12px}.hub__signout,.hub__back{color:var(--ink-dimmer);background:0 0;border:0;border-radius:10px;padding:7px 12px;font-size:13px}.hub__signout:hover,.hub__back:hover{color:var(--ink);background:#ffebd212}.hub__deck{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;display:grid}@media (width>=760px){.hub__deck{grid-template-columns:repeat(4,1fr)}.hub__card--wide{grid-column:span 2}}.hub__card{background:var(--hub-card);text-align:left;border:0;border-radius:28px;flex-direction:column;justify-content:space-between;gap:16px;min-height:168px;padding:24px;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 30px #140b066b}button.hub__card{cursor:pointer}button.hub__card:hover{transform:translateY(-2px);box-shadow:0 18px 38px #140b0680}.hub__card--soon{opacity:.7}.hub__card--flat{min-height:0;box-shadow:none}.hub__card--purple,.hub__card--amber,.hub__card--blue,.hub__card--slate,.hub__card--red,.hub__card--green{background:radial-gradient(120% 100% at 100% 0%, var(--tint,transparent) 0%, transparent 55%), var(--hub-card)}.hub__card--purple{--tint:var(--hub-purple-dim)}.hub__card--amber{--tint:var(--hub-amber-dim)}.hub__card--blue{--tint:var(--hub-blue-dim)}.hub__card--slate{--tint:var(--hub-slate-dim)}.hub__card--red{--tint:var(--hub-red-dim)}.hub__card--green{--tint:var(--hub-green-dim)}button.hub__card--purple:hover{box-shadow:0 18px 38px #140b0680,0 0 0 1px #b98fd64d}button.hub__card--amber:hover{box-shadow:0 18px 38px #140b0680,0 0 0 1px #f2a94d4d}button.hub__card--blue:hover{box-shadow:0 18px 38px #140b0680,0 0 0 1px #6fa9c94d}button.hub__card--slate:hover{box-shadow:0 18px 38px #140b0680,0 0 0 1px #a89a8c47}button.hub__card--red:hover,a.hub__card--red:hover{box-shadow:0 18px 38px #140b0680,0 0 0 1px #e2694a52}button.hub__card--green:hover{box-shadow:0 18px 38px #140b0680,0 0 0 1px #8fbf6f4d}a.hub__card{color:inherit;text-decoration:none;display:flex}.hub__cardTop{justify-content:space-between;align-items:center;display:flex}.hub__cardKicker{letter-spacing:.14em;color:var(--ink-dimmer);font-size:11px}.hub__cardTitle{font-family:var(--font-display);font-variation-settings:"opsz" 30;letter-spacing:-.01em;font-size:21px;font-weight:600}.hub__cardSub{letter-spacing:.02em;color:var(--ink-dimmer);margin-top:3px;font-size:11.5px}.hub__cardFoot{justify-content:space-between;align-items:center;display:flex}.hub__cardState{letter-spacing:.1em;color:var(--ink-dim);font-size:11px}.hub__badge{border-radius:18px;place-items:center;width:50px;height:50px;transition:transform .18s;display:grid;position:relative}button.hub__card:hover .hub__badge,a.hub__card:hover .hub__badge{transform:scale(1.08)rotate(-4deg)}.hub__pulseDot{border:2px solid var(--hub-card);border-radius:50%;width:12px;height:12px;position:absolute;top:-2px;right:-2px}.hub__pulseDot--amber{background:var(--hub-amber);animation:1.8s ease-out infinite hub-pulse-amber}.hub__pulseDot--green{background:var(--hub-green);animation:1.8s ease-out infinite hub-pulse-green}@keyframes hub-pulse-amber{0%{box-shadow:0 0 #f2a94d99}70%{box-shadow:0 0 0 9px #f2a94d00}to{box-shadow:0 0 #f2a94d00}}@keyframes hub-pulse-green{0%{box-shadow:0 0 #8fbf6f99}70%{box-shadow:0 0 0 9px #8fbf6f00}to{box-shadow:0 0 #8fbf6f00}}.hub__badge--purple{background:var(--hub-purple-dim);color:var(--hub-purple);box-shadow:0 0 22px -6px var(--hub-purple)}.hub__badge--amber{background:var(--hub-amber-dim);color:var(--hub-amber);box-shadow:0 0 22px -6px var(--hub-amber)}.hub__badge--blue{background:var(--hub-blue-dim);color:var(--hub-blue);box-shadow:0 0 22px -6px var(--hub-blue)}.hub__badge--slate{background:var(--hub-slate-dim);color:var(--hub-slate);box-shadow:0 0 18px -6px var(--hub-slate)}.hub__badge--red{background:var(--hub-red-dim);color:var(--hub-red);box-shadow:0 0 22px -6px var(--hub-red)}.hub__badge--green{background:var(--hub-green-dim);color:var(--hub-green);box-shadow:0 0 22px -6px var(--hub-green)}.hub__musicArt{background:linear-gradient(135deg, var(--hub-purple), #f0a868);color:#1e1008a6;width:54px;height:54px;box-shadow:0 0 26px -6px var(--hub-purple);border-radius:50%;place-items:center;transition:transform .15s;display:grid}button.hub__card:hover .hub__musicArt{transform:scale(1.06)}.hub__weatherIconWrap{justify-content:center;align-items:center;margin:-6px -6px -2px 0;display:flex;position:relative}.hub__weatherGlow{background:radial-gradient(circle, var(--hub-blue-dim) 0%, transparent 70%);z-index:0;border-radius:50%;animation:4.5s ease-in-out infinite hub-glow-breathe;position:absolute;inset:-14px}@keyframes hub-glow-breathe{0%,to{opacity:.7;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}.hub__weatherIcon{z-index:1;color:var(--hub-blue);justify-content:center;align-items:center;display:flex;position:relative}.hub__weatherTemp{font-family:var(--font-display);font-variation-settings:"opsz" 90;background:linear-gradient(135deg, var(--ink) 30%, var(--hub-blue) 130%);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:44px;font-weight:600;line-height:1}.hub__weatherFeelsLike{color:var(--ink-faint);margin-top:4px;font-size:11.5px}.hub__iconBtn{width:32px;height:32px;color:var(--ink-dim);cursor:pointer;background:#ffebd214;border-radius:50%;place-items:center;display:grid}.hub__iconBtn--on{background:var(--hub-amber);color:#241505}.hub__error{border:1px solid var(--accent);color:var(--accent);background:#e2694a1f;border-radius:10px;max-width:480px;padding:8px 10px;font-size:15px}.hub__loading,.hub__empty{width:fit-content;max-width:100%;color:var(--ink-dimmer);background:#ffebd20d;border:1px dashed #ffebd229;border-radius:14px;align-items:center;padding:10px 16px;font-size:14px;line-height:1.5;display:inline-flex}.hub__lights{flex-direction:column;gap:12px;max-width:480px;display:flex}.hub__lightCard{background:var(--hub-card,var(--panel));border:0;border-radius:22px;flex-direction:column;gap:14px;padding:18px;display:flex;box-shadow:0 12px 26px #140b0659}.hub__lightRow{justify-content:space-between;align-items:center;display:flex}.hub__lightName{font-size:18px;font-weight:600}.hub__lightStatus{letter-spacing:.08em;color:var(--ink-dimmer);margin-top:2px;font-size:12px}.hub__lightIp{color:var(--ink-faint)}.hub__deviceMetaRow{align-items:center;gap:12px;margin-top:-4px;font-size:11px;display:flex}.hub__linkBtn{color:var(--ink-faint);letter-spacing:.04em;background:0 0;border:0;padding:2px 0;font-size:11px}.hub__linkBtn:hover:not(:disabled){color:var(--ink);text-decoration:underline}.hub__linkBtn--danger{color:var(--accent,#e2694a);opacity:.8}.hub__linkBtn--danger:hover:not(:disabled){opacity:1}.hub__confirmRow{color:var(--ink-dimmer);align-items:center;gap:10px;display:flex}.hub__deviceForm{flex-direction:column;gap:10px;display:flex}.hub__deviceFields{flex-wrap:wrap;gap:8px;display:flex}.hub__deviceFields input,.hub__deviceForm input{color:inherit;background:#ffebd214;border:0;border-radius:12px;flex:160px;min-width:0;padding:9px 12px;font-size:14px}.hub__deviceFields input:focus,.hub__deviceForm input:focus{outline:2px solid var(--hub-amber,var(--border-hover));outline-offset:1px}.hub__switch{background:#ffebd214;border:0;border-radius:14px;padding:9px 16px;font-size:14px;font-weight:600}.hub__switch--on{background:var(--hub-amber,var(--accent));color:#241505}.hub__switch:hover:not(:disabled){background:#ffebd224}.hub__switch:disabled{opacity:.5}.hub__scheduleBlock{border-top:1px solid #ffebd214;flex-direction:column;gap:10px;padding-top:14px;display:flex}.hub__scheduleLabel{letter-spacing:.1em;color:var(--ink-dimmer);font-size:12px}.hub__scheduleActive{color:var(--success)}.hub__scheduleFields{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.hub__scheduleField{flex-direction:column;gap:5px;display:flex}.hub__scheduleField span{letter-spacing:.1em;color:var(--ink-dimmer);font-size:11px}.hub__scheduleField input[type=time]{color:inherit;background:#ffebd212;border:0;border-radius:10px;padding:8px 10px;font-size:15px}.hub__scheduleField input[type=time]:focus{outline:2px solid var(--hub-amber,var(--border-hover));outline-offset:1px}.hub__scheduleEnable{align-items:center;gap:7px;padding-bottom:9px;display:flex}.hub__scheduleEnable span{letter-spacing:.08em;color:var(--ink-dimmer);font-size:12px}.hub__scheduleActions{gap:8px;display:flex}.hub__scheduleHint{color:var(--ink-faint);font-size:11px;line-height:1.4}.hub__timerEmpty{width:fit-content;max-width:100%;color:var(--ink-faint);background:#ffebd20d;border:1px dashed #ffebd229;border-radius:12px;padding:8px 12px;font-size:13px;display:inline-flex}.hub__timerList{flex-direction:column;gap:8px;display:flex}.hub__timerRow{background:#ffebd20f;border-radius:16px;align-items:center;gap:10px;padding:8px 10px;display:flex}.hub__timerRow--new{background:#ffebd217;flex-wrap:wrap}.hub__timerRow input[type=time]{color:inherit;background:#ffebd214;border:0;border-radius:10px;min-width:0;padding:7px 9px;font-size:14px}.hub__timerRow input[type=time]:focus{outline:2px solid var(--hub-amber,var(--border-hover));outline-offset:1px}.hub__timerActionToggle{background:#00000038;border-radius:10px;gap:4px;padding:2px;display:flex}.hub__timerActionBtn{letter-spacing:.06em;color:var(--ink-dimmer);background:0 0;border:0;border-radius:8px;padding:5px 9px;font-size:11px;font-weight:700}.hub__timerActionBtn:hover:not(:disabled){color:var(--ink)}.hub__timerActionBtn--on{background:var(--hub-amber);color:#241505}.hub__timerActionBtn--off{background:var(--hub-slate,#ffebd22e);color:#1c1712}.hub__timerEnable{align-items:center;padding:0 2px;display:flex}.hub__timerDelete{width:26px;height:26px;color:var(--ink-faint);background:0 0;border:0;border-radius:8px;place-items:center;margin-left:auto;font-size:13px;display:grid}.hub__timerDelete:hover:not(:disabled){color:var(--accent);background:#e2694a26}.hub__timerRow button:disabled,.hub__timerRow input:disabled{opacity:.5}.hub__addTimerBtn{letter-spacing:.06em;color:var(--ink-dimmer);background:0 0;border:1px dashed #ffebd233;border-radius:14px;align-self:flex-start;padding:8px 14px;font-size:12px}.hub__addTimerBtn:hover:not(:disabled){color:var(--ink);border-color:#ffebd25c}.hub__addTimerBtn:disabled{opacity:.4}.weather__hourly{gap:4px;padding-top:14px;display:flex;overflow-x:auto}.weather__hour{width:66px;color:var(--ink);background:0 0;border:0;border-radius:16px;flex-direction:column;flex:none;align-items:center;gap:6px;padding:8px 0 6px;transition:background .15s,transform .15s;display:flex}.weather__hour:hover{background:#ffebd20f}.weather__hour--active{background:var(--hub-blue-dim);transform:translateY(-2px)}.weather__hourTime{color:var(--ink-dimmer);font-size:11px}.weather__hourTemp{font-size:14px;font-weight:600}.weather__hourBar{background:#ffebd214;border-radius:3px;align-items:flex-end;width:5px;height:20px;display:flex;overflow:hidden}.weather__hourBarFill{background:var(--hub-blue);border-radius:3px;width:100%;transition:height .3s}.weather__hourRain{color:var(--hub-blue,var(--accent));min-height:12px;font-size:10px}.weather__hourDetail{color:var(--ink-dim);border-top:1px solid #ffebd214;align-items:center;gap:10px;margin-top:12px;padding-top:12px;font-size:13px;display:flex}.weather__hourDetail strong{color:var(--ink);font-weight:600}.hub__tomorrow{padding-top:16px}.hub__tomorrowRow{color:var(--hub-blue);align-items:center;gap:14px;margin-top:10px;display:flex}.hub__tomorrowText{flex-direction:column;gap:2px;display:flex}.hub__tomorrowLabel{font-family:var(--font-display);color:var(--ink);font-size:17px;font-weight:600}.hub__trendArrow{font-weight:700}.hub__trendArrow--up{color:var(--hub-amber)}.hub__trendArrow--down{color:var(--hub-blue)}.hub__weekSection{flex-direction:column;gap:10px;display:flex}.hub__weekPills{flex-wrap:wrap;gap:10px;display:flex}.hub__eventPill{background:var(--pill-bg,var(--hub-blue-dim));width:fit-content;max-width:100%;color:inherit;text-align:left;cursor:pointer;border:0;border-radius:16px;align-items:center;gap:9px;padding:8px 14px 8px 8px;transition:transform .15s,box-shadow .15s;display:inline-flex}.hub__eventPill:hover{transform:translateY(-1px);box-shadow:0 8px 18px #140b0659}.hub__eventPillEmoji{background:#ffffff1f;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:14px;display:grid}.hub__eventPillTitle{color:var(--pill-fg,var(--hub-blue));white-space:nowrap;font-size:13.5px;font-weight:700}.hub__eventPillWhen{color:var(--ink-dimmer);white-space:nowrap;font-size:11px}.hub__eventPill--red{--pill-bg:var(--hub-red-dim);--pill-fg:var(--hub-red)}.hub__eventPill--amber{--pill-bg:var(--hub-amber-dim);--pill-fg:var(--hub-amber)}.hub__eventPill--green{--pill-bg:var(--hub-green-dim);--pill-fg:var(--hub-green)}.hub__eventPill--blue{--pill-bg:var(--hub-blue-dim);--pill-fg:var(--hub-blue)}.hub__eventPill--purple{--pill-bg:var(--hub-purple-dim);--pill-fg:var(--hub-purple)}.hub__eventPill--pink{--pill-bg:var(--hub-pink-dim);--pill-fg:var(--hub-pink)}.hub__pinOverlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:40;background:#140d09c7;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.hub__pinCard{background:var(--hub-card);border-radius:26px;width:100%;max-width:300px;padding:24px;box-shadow:0 22px 52px #140b068c}.hub__pinForm{flex-direction:column;gap:12px;margin-top:12px;display:flex}.hub__pinInput{letter-spacing:.3em;color:inherit;text-align:center;background:#ffebd214;border:0;border-radius:14px;padding:12px 14px;font-size:20px}.hub__pinInput:focus{outline:2px solid var(--hub-amber,var(--border-hover));outline-offset:1px}.hub__pinGate{place-items:center;display:grid}.hub__pinGateCard{background:var(--hub-card);text-align:center;border-radius:26px;width:100%;max-width:320px;padding:28px;box-shadow:0 22px 52px #140b068c}.hub__pinGateCard .hub__pinForm{text-align:left}.calendar__layout{grid-template-columns:1.6fr 1fr;align-items:start;gap:20px;display:grid}@media (width<=900px){.calendar__layout{grid-template-columns:1fr}}.calendar__card{background:var(--hub-card);border-radius:28px;padding:20px;box-shadow:0 14px 30px #140b0666}.calendar__nav{align-items:center;gap:10px;margin-bottom:14px;display:flex}.calendar__navBtn{width:32px;height:32px;color:var(--ink-dim);background:#ffebd212;border:0;border-radius:10px;place-items:center;font-size:16px;display:grid}.calendar__navBtn:hover{color:var(--ink);background:#ffebd224}.calendar__monthLabel{font-family:var(--font-display);min-width:160px;font-size:19px;font-weight:600}.calendar__todayBtn{letter-spacing:.06em;color:var(--ink-dimmer);background:#ffebd212;border:0;border-radius:10px;margin-left:auto;padding:6px 12px;font-size:12px}.calendar__todayBtn:hover{color:var(--ink);background:#ffebd224}.calendar__weekdays{letter-spacing:.08em;color:var(--ink-faint);grid-template-columns:repeat(7,1fr);padding:0 2px 8px;font-size:11px;display:grid}.calendar__grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar__cell{aspect-ratio:1/.85;text-align:left;background:#ffebd209;border:1px solid #0000;border-radius:14px;flex-direction:column;align-items:flex-start;gap:3px;min-height:76px;padding:6px;display:flex;overflow:hidden}.calendar__cell:hover{background:#ffebd213}.calendar__cell--out{opacity:.32}.calendar__cell--today .calendar__cellNum{background:var(--hub-green);color:#1a2a10;border-radius:50%;place-items:center;width:20px;height:20px;font-weight:700;display:grid}.calendar__cell--selected{border-color:var(--hub-green)}.calendar__cellNum{color:var(--ink-dimmer);margin-bottom:2px;font-size:12px}.calendar__chip{background:var(--chip-bg,var(--hub-blue-dim));width:fit-content;max-width:100%;color:var(--chip-fg,var(--hub-blue));white-space:nowrap;text-overflow:ellipsis;border-radius:10px;align-items:center;gap:3px;padding:2px 7px 2px 6px;font-size:12px;font-weight:700;line-height:1.35;display:inline-flex;overflow:hidden}.calendar__chipEmoji{flex:none;font-size:12px;line-height:1}.calendar__chip--red{--chip-bg:var(--hub-red-dim);--chip-fg:var(--hub-red)}.calendar__chip--amber{--chip-bg:var(--hub-amber-dim);--chip-fg:var(--hub-amber)}.calendar__chip--green{--chip-bg:var(--hub-green-dim);--chip-fg:var(--hub-green)}.calendar__chip--blue{--chip-bg:var(--hub-blue-dim);--chip-fg:var(--hub-blue)}.calendar__chip--purple{--chip-bg:var(--hub-purple-dim);--chip-fg:var(--hub-purple)}.calendar__chip--pink{--chip-bg:var(--hub-pink-dim);--chip-fg:var(--hub-pink)}.calendar__more{color:var(--ink-faint);font-size:10px}.calendar__eventRow{background:#ffebd20d;border-radius:18px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.calendar__eventMain{align-items:center;gap:12px;min-width:0;display:flex}.calendar__eventEmoji{background:var(--badge-bg,var(--hub-blue-dim));border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-size:19px;display:grid}.calendar__eventRow--red .calendar__eventEmoji{--badge-bg:var(--hub-red-dim)}.calendar__eventRow--amber .calendar__eventEmoji{--badge-bg:var(--hub-amber-dim)}.calendar__eventRow--green .calendar__eventEmoji{--badge-bg:var(--hub-green-dim)}.calendar__eventRow--blue .calendar__eventEmoji{--badge-bg:var(--hub-blue-dim)}.calendar__eventRow--purple .calendar__eventEmoji{--badge-bg:var(--hub-purple-dim)}.calendar__eventRow--pink .calendar__eventEmoji{--badge-bg:var(--hub-pink-dim)}.calendar__eventInfo{min-width:0}.calendar__eventTitle{font-family:var(--font-display);font-size:17.5px;font-weight:600}.calendar__eventMeta{color:var(--ink-dimmer);margin-top:3px;font-size:11.5px}.calendar__pickerRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.calendar__pickerLabel{letter-spacing:.1em;color:var(--ink-dimmer);flex:none;font-size:10.5px}.calendar__emojiRow{flex-wrap:wrap;gap:4px;display:flex}.calendar__emojiBtn{background:#ffebd20f;border:1px solid #0000;border-radius:10px;place-items:center;width:32px;height:32px;font-size:15px;display:grid}.calendar__emojiBtn:hover{background:#ffebd21f}.calendar__emojiBtn--active{border-color:var(--hub-blue);background:#ffffff24}.calendar__colorRow{gap:8px;display:flex}.calendar__colorBtn{background:var(--sw,var(--hub-blue));border:2px solid #0000;border-radius:50%;width:24px;height:24px;padding:0}.calendar__colorBtn--red{--sw:var(--hub-red)}.calendar__colorBtn--amber{--sw:var(--hub-amber)}.calendar__colorBtn--green{--sw:var(--hub-green)}.calendar__colorBtn--blue{--sw:var(--hub-blue)}.calendar__colorBtn--purple{--sw:var(--hub-purple)}.calendar__colorBtn--pink{--sw:var(--hub-pink)}.calendar__colorBtn--active{border-color:#fff}.calendar__form{border-top:1px solid #ffebd214;margin-top:14px;padding-top:14px}.weatherpage__heroCard{min-height:0}.weatherpage__hero{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.weatherpage__heroMain{flex-direction:column;gap:2px;display:flex}.weatherpage__temp{font-family:var(--font-display);font-variation-settings:"opsz" 90;background:linear-gradient(135deg, var(--ink) 30%, var(--hub-blue) 130%);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:68px;font-weight:600;line-height:1}.weatherpage__condition{color:var(--ink);font-size:18px;font-weight:600}.weatherpage__meta{color:var(--ink-dim);flex-wrap:wrap;gap:16px;margin-top:8px;font-size:12.5px;display:flex}.weatherpage__metaItem strong{color:var(--ink);font-weight:700}.weatherpage__scrollHourly{padding-bottom:4px}.weatherpage__dailyList{flex-direction:column;margin-top:8px;display:flex}.weatherpage__dayRow{border-bottom:1px solid #ffebd20f;align-items:center;gap:14px;padding:12px 4px;display:flex}.weatherpage__dayRow:last-child{border-bottom:0}.weatherpage__dayLabel{width:108px;color:var(--ink);flex:none;font-weight:600}.weatherpage__dayCond{min-width:0;color:var(--ink-dim);flex:1;font-size:13px}.weatherpage__dayRain{text-align:right;width:40px;color:var(--hub-blue);flex:none;font-size:11.5px}.weatherpage__dayTemps{flex:none;justify-content:flex-end;gap:8px;min-width:64px;font-size:14px;display:flex}.weatherpage__dayHigh{color:var(--ink);font-weight:700}.weatherpage__dayLow{color:var(--ink-faint)}@media (width<=640px){.weatherpage__dayCond{display:none}}.tag{font-family:var(--font-mono);letter-spacing:.08em;border-radius:var(--r-tag);white-space:nowrap;justify-content:center;align-items:center;padding:4px 8px;font-size:12px;display:inline-flex}.tag--ok{color:var(--success);border:1px solid var(--success);background:#0003}.tag--warn{color:var(--accent);border:1px solid var(--accent);background:#0003}.tag--mute{color:var(--ink-dim);border:1px solid var(--border-input);background:0 0}.adminShell{background:var(--canvas);height:100dvh;min-height:0;color:var(--ink);grid-template-columns:252px minmax(0,1fr);font-size:18px;display:grid;overflow:hidden}.adminSidebar{border-right:1px solid var(--border-structural);flex-direction:column;min-height:0;display:flex}.adminSidebar__logo{align-items:center;gap:10px;padding:22px 20px 18px;display:flex}.adminSidebar__mark{border:2px solid var(--accent);border-radius:3px;place-items:center;width:22px;height:22px;display:grid}.adminSidebar__mark span{background:var(--accent);border-radius:50%;width:6px;height:6px}.adminSidebar__word{letter-spacing:.16em;text-transform:uppercase;font-size:16px;font-weight:700}.adminSidebar__badge{color:var(--accent);margin-left:auto;font-size:12px}.adminSidebar__section{letter-spacing:.14em;color:var(--ink-dimmer);text-transform:uppercase;padding:0 20px 10px;font-size:12px}.adminSidebar__nav{flex-direction:column;gap:2px;padding:0 10px;display:flex}.adminSidebar__navItem{text-align:left;width:100%;color:var(--ink-dim);background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:10px;font-size:16px;display:flex}.adminSidebar__navItem:hover{background:var(--hover-nav);color:var(--ink)}.adminSidebar__navItem--active{background:var(--control-active-nav);color:var(--ink);font-weight:600}.adminSidebar__dot{background:var(--border-chip);border-radius:50%;width:5px;height:5px}.adminSidebar__navItem--active .adminSidebar__dot{background:var(--accent)}.adminSidebar__tagSlot{margin-left:auto}.adminSidebar__health{border-top:1px solid var(--border-structural);margin-top:auto;padding:16px 20px}.adminSidebar__healthLabel{color:var(--ink-dimmer);letter-spacing:.1em;font-size:12px}.adminSidebar__healthList{flex-direction:column;gap:7px;margin-top:10px;display:flex}.adminSidebar__healthRow{align-items:center;gap:8px;font-size:13px;display:flex}.adminSidebar__healthDot{background:var(--success);border-radius:50%;width:5px;height:5px}.adminSidebar__healthLabel2{color:var(--ink-dim)}.adminSidebar__healthValue{color:var(--ink);margin-left:auto}.adminSidebar__back{letter-spacing:.1em;margin-top:16px;font-size:12px;display:block}.adminMain{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}@media (width<=899px){.adminShell{grid-template-columns:minmax(0,1fr)}.adminSidebar{display:none}}.usersPage{flex-direction:column;flex:1;gap:26px;min-height:0;padding:24px 28px 40px;display:flex;overflow-y:auto}.usersPage__inviteCard{background:var(--panel);border:1px solid var(--border-card);border-radius:9px;padding:16px}.usersPage__kicker{letter-spacing:.12em;color:var(--ink-dimmer);font-size:12px}.usersPage__inviteRow{flex-wrap:wrap;gap:9px;margin-top:12px;display:flex}.usersPage__inviteInput{background:var(--field);border:1px solid var(--border-input);min-width:200px;color:var(--ink);border-radius:6px;outline:none;flex:1;padding:11px 12px;font-size:16px}.usersPage__select{background:var(--field);border:1px solid var(--border-input);color:var(--ink);border-radius:6px;padding:0 12px;font-size:14px}.usersPage__link{color:var(--ink-dim);word-break:break-all;margin-top:10px;font-size:14px}.usersPage__note{color:var(--ink-dimmer);margin-top:11px;font-size:13px}.usersPage__sectionHead{align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.usersPage__sectionHead h2{margin:0;font-size:19px;font-weight:600}.usersPage__sectionMeta{color:var(--ink-dimmer);font-size:13px}.usersPage__table{border:1px solid var(--border-card);border-radius:9px;overflow-x:auto}.usersPage__tableHead,.usersPage__tableRow{grid-template-columns:minmax(250px,2fr) 108px 116px 100px 96px 120px;align-items:center;min-width:920px;padding:0 16px;display:grid}.usersPage__tableHead{background:var(--panel-alt);border-bottom:1px solid var(--border-card);letter-spacing:.12em;color:var(--ink-dimmer);padding:10px 16px;font-size:12px}.usersPage__tableRow{border-bottom:1px solid var(--hairline);height:58px}.usersPage__tableRow:hover{background:var(--hover-row)}.usersPage__userCell{align-items:center;gap:11px;min-width:0;display:flex}.usersPage__chip{border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:15px;font-weight:600;display:grid}.usersPage__userText{min-width:0}.usersPage__userName{font-size:17px;font-weight:500}.usersPage__userEmail{color:var(--ink-dimmer);font-size:14px}.usersPage__role{letter-spacing:.08em;color:var(--ink-dim);font-size:13px}.usersPage__role--admin{color:var(--accent)}.usersPage__muted{color:var(--ink-dim);font-size:14px}.usersPage__statusCell{justify-content:flex-end;display:flex}.usersPage__permGrid{grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:10px;display:grid}.usersPage__permCard{background:var(--panel);border:1px solid var(--border-card);border-radius:9px;align-items:center;gap:12px;padding:14px 16px;display:flex}.usersPage__permLabel{font-size:17px}.usersPage__permHint{color:var(--ink-dimmer);margin-top:3px;font-size:13px}.scanPage{flex-direction:column;flex:1;gap:26px;min-height:0;padding:24px 28px 40px;display:flex;overflow-y:auto}.scanPage__stats{grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:12px;display:grid}.scanPage__statCard{background:var(--panel);border:1px solid var(--border-card);border-radius:9px;padding:16px}.scanPage__statLabel{letter-spacing:.12em;color:var(--ink-dimmer);font-size:12px}.scanPage__statValue{margin-top:9px;font-size:24px;font-weight:600}.scanPage__statNote{color:var(--ink-dimmer);margin-top:6px;font-size:13px}.scanPage__sectionHead{align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.scanPage__sectionHead h2{margin:0;font-size:19px;font-weight:600}.scanPage__sectionMeta{color:var(--ink-dimmer);font-size:13px}.scanPage__sectionMetaWarn{color:var(--accent);font-size:13px}.scanPage__table{border:1px solid var(--border-card);border-radius:9px;overflow-x:auto}.scanPage__tableHead,.scanPage__tableRow{grid-template-columns:minmax(250px,2.2fr) 104px 104px 116px 100px;align-items:center;min-width:830px;padding:0 16px;display:grid}.scanPage__tableHead{background:var(--panel-alt);border-bottom:1px solid var(--border-card);letter-spacing:.12em;color:var(--ink-dimmer);padding:10px 16px;font-size:12px}.scanPage__tableRow{border-bottom:1px solid var(--hairline);height:52px;font-size:15px}.scanPage__muted{color:var(--ink-dim);font-size:14px}.scanPage__switchCell{justify-content:flex-end;display:flex}.scanPage__errorRow{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(280px,2.4fr) minmax(180px,1fr) 108px;align-items:center;gap:12px;min-width:790px;height:52px;padding:0 16px;display:grid}.scanPage__problem{color:var(--ink-dim);font-size:16px}.scanPage__errorAction{text-align:right}.scanPage__actionBtn{background:var(--control-surface);border:1px solid var(--border-input);color:var(--ink-secondary);letter-spacing:.08em;border-radius:5px;padding:7px 11px;font-size:13px}.scanPage__actionBtn:hover{border-color:var(--border-hover)}.scanPage__empty{color:var(--ink-dimmer);padding:20px 16px;font-size:15px}.serverPage{flex-direction:column;flex:1;gap:26px;min-height:0;padding:24px 28px 40px;display:flex;overflow-y:auto}.serverPage__diskCard{background:var(--panel);border:1px solid var(--border-card);border-radius:9px;padding:18px}.serverPage__diskHead{align-items:baseline;gap:12px;display:flex}.serverPage__kicker{letter-spacing:.12em;color:var(--ink-dimmer);font-size:12px}.serverPage__diskTotal{margin-left:auto;font-size:14px}.serverPage__diskBar{background:#1f1f23;border-radius:4px;height:8px;margin-top:12px;display:flex;overflow:hidden}.serverPage__diskLegend{flex-wrap:wrap;gap:16px;margin-top:12px;display:flex}.serverPage__legendItem{color:var(--ink-dim);align-items:center;gap:7px;font-size:13px;display:flex}.serverPage__legendDot{border-radius:2px;width:7px;height:7px}.serverPage__sectionHead{align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.serverPage__sectionHead h2{margin:0;font-size:19px;font-weight:600}.serverPage__sectionMeta{color:var(--ink-dimmer);font-size:13px}.serverPage__table{border:1px solid var(--border-card);border-radius:9px;overflow-x:auto}.serverPage__tableHead,.serverPage__tableRow{grid-template-columns:120px minmax(220px,1.6fr) minmax(170px,1.2fr) 116px 132px;align-items:center;min-width:900px;padding:0 16px;display:grid}.serverPage__tableHead{background:var(--panel-alt);border-bottom:1px solid var(--border-card);letter-spacing:.12em;color:var(--ink-dimmer);padding:10px 16px;font-size:12px}.serverPage__tableRow{border-bottom:1px solid var(--hairline);height:54px;font-size:16px}.serverPage__track{color:var(--ink-secondary);font-size:16px}.serverPage__muted{color:var(--ink-dim);font-size:14px}.serverPage__pipeCell{justify-content:flex-end;display:flex}.serverPage__empty{color:var(--ink-dimmer);padding:20px 16px;font-size:15px}.serverPage__profileRow{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(170px,1.4fr) minmax(230px,1.6fr) 120px 92px;align-items:center;gap:12px;min-width:740px;height:54px;padding:0 16px;font-size:16px;display:grid}.serverPage__switchCell{justify-content:flex-end;display:flex}.serverPage__opsGrid{grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:12px;display:grid}.serverPage__opCard{background:var(--panel);border:1px solid var(--border-card);border-radius:9px;padding:16px}.serverPage__opValue{margin-top:9px;font-size:19px;font-weight:600}.serverPage__opNote{color:var(--ink-dimmer);margin-top:5px;font-size:13px}.serverPage__opBtn{background:var(--control-surface);border:1px solid var(--border-input);color:var(--ink-secondary);letter-spacing:.08em;border-radius:5px;margin-top:13px;padding:8px 12px;font-size:13px}.serverPage__opBtn:hover{border-color:var(--border-hover)}:root{--canvas:#0b0b0c;--canvas-raised:#0d0d0f;--panel:#121214;--panel-alt:#101012;--field:#0e0e10;--hover-row:#121214;--hover-nav:#17171a;--control-surface:#17171a;--control-active-nav:#1a1a1e;--control-active-pill:#1e1e22;--hairline:#131315;--border-section:#161618;--border-structural:#1c1c1f;--border-card:#1d1d21;--border-default:#212125;--border-input:#26262b;--border-chip:#2e2e33;--border-dropzone:#33333a;--border-hover:#3a3a40;--ink:#edebe7;--ink-secondary:#d8d5d0;--ink-muted:#b9b6b0;--ink-dim:#9a9aa2;--ink-dimmer:#8e8e96;--ink-faint:#7e7e86;--accent:#e8552f;--accent-hover:#ff6e4c;--accent-tint-fill:#e8552f1f;--accent-tint-track:#e8552f38;--success:#5bb98b;--mp3-aac:#c97a5f;--font-ui:Archivo, system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--r-tag:4px;--r-btn:6px;--r-card:9px;--r-mobile-art:12px;--r-phone:44px;--shadow-popover:0 18px 44px #0009;--shadow-phone:0 24px 60px #00000080;--shadow-mobile-hero:0 20px 50px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@keyframes eq-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}*{box-sizing:border-box}html,body{background:var(--canvas);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;padding:0}#root{height:100dvh}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button,input{color:inherit;font-family:inherit}button{cursor:pointer}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#2a2a2d;border-radius:8px}::-webkit-scrollbar-track{background:0 0}.mono{font-family:var(--font-mono)}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eq{align-items:flex-end;gap:2px;display:flex}.eq span{background:var(--accent);width:2px;animation:.9s ease-in-out infinite eq-bar}.eq span:nth-child(2){animation-delay:.3s}.eq span:nth-child(3){animation-delay:.6s}
