:root{--bg: #F7F4F2;--surface: #FFFFFF;--surface-2: #F5F1EE;--surface-hover: #FAF7F5;--border: #ECE5E0;--border-strong: #DDD3CC;--text: #1C1B1A;--text-2: #57534E;--text-3: #6B6460;--text-4: #8A837E;--accent: #EA580C;--accent-strong: #D0490C;--accent-strong-hover: #B83F0B;--on-accent: #FFFFFF;--accent-soft: #FFE4D6;--accent-soft-hover: #FFD8C4;--on-accent-soft: #A3390F;--link: #C2410C;--link-hover: #A3390F;--success-soft: #E3F2E6;--on-success-soft: #166534;--success: #16A34A;--danger-soft: #FDE2E1;--on-danger-soft: #991B1B;--danger: #B91C1C;--shadow-sm: 0 1px 2px rgba(28, 25, 23, .05);--shadow-md: 0 10px 28px rgba(28, 25, 23, .1);--shadow-lg: 0 24px 64px rgba(28, 25, 23, .22);--hover-tint: rgba(28, 25, 23, .05);--telemetry-bg: #FFFFFF;--telemetry-text-2: #616161;--telemetry-track: #E0E0E0;--telemetry-fill: #F4511E;--telemetry-host: #263238;--art-l: 92%;--art-ink-l: 30%}.dark{--bg: #161412;--surface: #211E1C;--surface-2: #2A2724;--surface-hover: #2A2724;--border: #34302C;--border-strong: #46403B;--text: #F5F1EE;--text-2: #D6D0CB;--text-3: #B3ACA6;--text-4: #948C86;--accent: #F97316;--accent-strong: #F97316;--accent-strong-hover: #FB8A3C;--on-accent: #1C1B1A;--accent-soft: #3D2516;--accent-soft-hover: #4A2D1A;--on-accent-soft: #FDBA8C;--link: #FB923C;--link-hover: #FDBA74;--success-soft: #16301F;--on-success-soft: #86EFAC;--success: #22C55E;--danger-soft: #3B1A1A;--on-danger-soft: #FCA5A5;--danger: #F87171;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 10px 28px rgba(0, 0, 0, .45);--shadow-lg: 0 24px 64px rgba(0, 0, 0, .6);--hover-tint: rgba(255, 255, 255, .06);--telemetry-bg: #211E1C;--telemetry-text-2: #B3ACA6;--telemetry-track: #3A3532;--telemetry-fill: #F4511E;--telemetry-host: #37474F;--art-l: 22%;--art-ink-l: 82%}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Figtree,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.45}body{overflow-x:hidden}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,h4,p{margin:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}::-webkit-scrollbar-track{background:transparent}.mono{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}app-root{display:block}.shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);max-width:100vw;overflow-x:hidden}.topbar{position:sticky;top:0;z-index:20;height:72px;display:flex;align-items:center;gap:16px;padding:0 20px 0 12px;background:var(--bg)}.brand{display:flex;align-items:center;gap:12px;width:212px;flex:0 0 auto;font-size:20px;font-weight:600;letter-spacing:-.02em;color:var(--text)}.brand:hover{color:var(--text)}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.icon-btn{width:44px;height:44px;flex:0 0 44px;border:0;background:transparent;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--text-2)}.icon-btn:hover{background:var(--hover-tint);color:var(--text)}.round-btn{width:44px;height:44px;border:0;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 1px var(--border-strong);display:inline-flex;align-items:center;justify-content:center;color:var(--text-2)}.round-btn:hover{background:var(--surface-hover);color:var(--text)}.avatar{width:40px;height:40px;border-radius:50%;border:0;background:#4f46e5;color:#fff;font-size:15px;font-weight:500}.search{position:relative;flex:1 1 auto;max-width:720px;min-width:0}.search-box{height:48px;background:var(--surface);border-radius:999px;box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--border);display:flex;align-items:center;gap:12px;padding:0 18px;color:var(--text-4)}.search-box input{flex:1 1 auto;min-width:0;border:0;background:transparent;font-size:15px;color:var(--text);outline:none}.search-box input::placeholder{color:var(--text-4)}.search-box:focus-within{box-shadow:var(--shadow-sm),inset 0 0 0 2px var(--accent)}.kbd{font-size:12px;font-weight:500;color:var(--text-4);border:1px solid var(--border-strong);border-radius:6px;padding:1px 7px}.search-results{position:absolute;top:56px;left:0;right:0;background:var(--surface);border-radius:20px;box-shadow:var(--shadow-lg);padding:8px;max-height:60vh;overflow-y:auto}.search-group{padding:8px 12px 4px;font-size:12px;font-weight:500;color:var(--text-4)}.search-item{width:100%;display:flex;align-items:center;gap:12px;padding:8px 12px;border:0;border-radius:14px;background:transparent;text-align:left;color:var(--text)}.search-item:hover,.search-item.active{background:var(--surface-2);color:var(--text)}.search-item .search-item-title{font-size:15px;font-weight:500}.search-item .search-item-sub{font-size:13px;color:var(--text-3)}.menu-anchor{position:relative}.menu{position:absolute;right:0;top:52px;min-width:240px;background:var(--surface);border-radius:20px;box-shadow:var(--shadow-lg);padding:8px;z-index:30}.menu-header{padding:10px 14px 12px;display:flex;flex-direction:column;gap:2px}.menu-header strong{font-weight:500}.menu-header span{font-size:13px;color:var(--text-3)}.menu-item{width:100%;display:flex;align-items:center;gap:12px;height:44px;padding:0 14px;border:0;border-radius:12px;background:transparent;color:var(--text);font-size:15px;text-align:left}.menu-item:hover{background:var(--surface-2);color:var(--text)}.menu-item.danger,.menu-item.danger:hover{color:var(--danger)}.menu-item.danger:hover{background:var(--danger-soft)}.menu-sep{height:1px;background:var(--border);margin:6px 8px}.layout{flex:1 1 auto;display:flex;align-items:flex-start}.nav{position:sticky;top:72px;flex:0 0 248px;padding:8px 12px 24px;display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:16px;height:48px;padding:0 18px;border-radius:999px;color:var(--text-2);font-size:15px;font-weight:500}.nav-item:hover{background:var(--hover-tint);color:var(--text)}.nav-item.nav-active{background:var(--accent-soft);color:var(--on-accent-soft)}.nav-item.nav-active:hover{background:var(--accent-soft-hover)}.nav-item .nav-label{flex:1 1 auto}.count{min-width:24px;height:24px;border-radius:12px;background:var(--accent);color:#fff;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;padding:0 7px}.count.soft{background:var(--accent-soft);color:var(--on-accent-soft)}.nav-active .count.soft{background:var(--surface)}.nav-sep{height:1px;background:var(--border);margin:10px 18px}.nav-scrim{display:none}.page{flex:1 1 auto;min-width:0;padding:8px 32px 48px 16px;display:flex;flex-direction:column;gap:32px}.page-head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.page-title{font-size:32px;font-weight:600;letter-spacing:-.025em;line-height:1.15}.page-sub{margin-top:6px;font-size:15px;color:var(--text-3);max-width:680px}.page-actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:500}.btn{height:44px;padding:0 22px;border-radius:999px;border:0;font-size:14px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;text-decoration:none}.btn:disabled{opacity:.55;cursor:default}.btn.sm{height:36px;padding:0 16px}.btn-primary{background:var(--accent-strong);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-strong-hover);color:var(--on-accent)}.btn-tonal{background:var(--accent-soft);color:var(--on-accent-soft)}.btn-tonal:hover:not(:disabled){background:var(--accent-soft-hover);color:var(--on-accent-soft)}.btn-outline{background:var(--surface);color:var(--text-2);box-shadow:inset 0 0 0 1px var(--border-strong)}.btn-outline:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--hover-tint);color:var(--text)}.btn-link{background:transparent;color:var(--link)}.btn-link:hover:not(:disabled){background:var(--accent-soft);color:var(--on-accent-soft)}.btn-danger{background:var(--danger-soft);color:var(--on-danger-soft)}.btn-danger:hover:not(:disabled){filter:brightness(.97)}.panel{background:var(--surface);border-radius:24px;box-shadow:var(--shadow-sm)}.panel-pad{padding:22px}.panel-head{display:flex;align-items:center;gap:10px;padding:14px 14px 8px;flex-wrap:wrap}.panel-head h2{font-size:18px;font-weight:600;letter-spacing:-.01em}.panel-head .panel-head-end{margin-left:auto}.panel-title{font-size:18px;font-weight:600;letter-spacing:-.01em}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap;background:var(--surface-2);color:var(--text-2)}.chip.accent{background:var(--accent-soft);color:var(--on-accent-soft)}.chip.success{background:var(--success-soft);color:var(--on-success-soft)}.chip.danger{background:var(--danger-soft);color:var(--on-danger-soft)}.dot{width:8px;height:8px;border-radius:50%;background:currentColor}.see-all{display:inline-flex;align-items:center;gap:2px;font-size:14px;font-weight:500}.shelf-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.shelf-title{font-size:20px;font-weight:600;letter-spacing:-.015em}.seg{display:inline-flex;align-self:flex-start;gap:4px;padding:4px;background:var(--surface);border-radius:999px;box-shadow:var(--shadow-sm);flex-wrap:wrap}.seg-btn{height:40px;padding:0 18px;border:0;border-radius:999px;background:transparent;font-size:14px;font-weight:500;color:var(--text-2)}.seg-btn:hover{background:var(--hover-tint)}.seg-btn.active{background:var(--text);color:var(--bg)}a.seg-btn{display:inline-flex;align-items:center}.tab-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin-top:-12px}.tab-note{font-size:14px;color:var(--text-3)}.container-filter{display:flex;flex-wrap:wrap;gap:8px}.panel>.container-filter{padding:0 14px 10px}.found-section{display:flex;flex-direction:column;gap:14px}.found-section-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px}a.container-row{color:inherit;text-decoration:none}.container-row>.chip,.container-row>.tab-note,.container-more{flex:0 0 auto}.container-row .row-title{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.container-row .row-sub{font-size:12px;color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.container-row .grow{min-width:0}.container-art{background:var(--surface-2);color:var(--text-3)}.banner{padding:12px 16px;border-radius:16px;font-size:14px;background:var(--surface-2);color:var(--text-2)}.banner.success{background:var(--success-soft);color:var(--on-success-soft)}.banner.error{background:var(--danger-soft);color:var(--on-danger-soft)}.banner.info{background:var(--accent-soft);color:var(--on-accent-soft)}.empty{padding:40px 20px;text-align:center;color:var(--text-3);font-size:15px;display:flex;flex-direction:column;align-items:center;gap:8px}.empty strong{font-weight:500;color:var(--text);font-size:16px}.field{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:13px;font-weight:500;color:var(--text-3)}.field input,.field select,.field textarea{height:44px;border:0;border-radius:12px;padding:0 14px;font-size:15px;font-weight:400;color:var(--text);background:var(--surface-2);min-width:0;outline:none}.field input:focus,.field select:focus,.field textarea:focus{box-shadow:inset 0 0 0 2px var(--accent)}.field .hint{font-weight:400;font-size:12px;color:var(--text-4)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:18px}.card{position:relative;background:var(--surface);border-radius:20px;padding:10px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;color:var(--text);min-width:0;transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);color:var(--text)}.card.dragging{opacity:.45}.card.drag-over{box-shadow:0 0 0 2px var(--accent),var(--shadow-md)}.card-main{display:block;color:inherit;border-radius:14px}.card-main:hover{color:inherit}.card-more{width:36px;height:36px;flex:0 0 36px;margin-right:-4px}.card-meta{padding:12px 6px 4px;display:flex;align-items:center;gap:6px;min-width:0}.card-text{color:inherit;flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.card-title{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-sub{font-size:13px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.art{position:relative;aspect-ratio:1/1;border-radius:14px;display:flex;align-items:center;justify-content:center;overflow:hidden}.art img{width:52%;height:52%;object-fit:contain}.art .art-mono{font-size:40px;font-weight:600;letter-spacing:-.03em}.art.stopped img,.art.stopped .art-mono{filter:grayscale(1);opacity:.45}.badge{position:absolute;top:10px;right:10px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;background:#fffffff2;color:#a3390f;box-shadow:0 1px 3px #0000001f}.badge.left{right:auto;left:10px}.badge.stopped{background:#991b1b;color:#fff}.badge.ping{background:#10b98126;color:#047857;font-size:11px;font-weight:600;letter-spacing:-.01em;backdrop-filter:blur(8px);border:1px solid rgba(16,185,129,.25)}.dark .badge.ping{background:#10b98138;color:#34d399;border-color:#34d39959}.drag-handle{position:absolute;top:16px;left:16px;width:32px;height:32px;border:0;border-radius:10px;background:#ffffffeb;color:#57534e;display:none;align-items:center;justify-content:center;cursor:grab;z-index:2}.card:hover .drag-handle,.card:focus-within .drag-handle{display:inline-flex}.add-btn-round{width:40px;height:40px;flex:0 0 40px;border-radius:50%;border:0;background:var(--accent-soft);color:var(--on-accent-soft);display:inline-flex;align-items:center;justify-content:center}.add-btn-round:hover{background:var(--accent-soft-hover)}.add-tile{border:1.5px dashed var(--border-strong);background:transparent;border-radius:20px;color:var(--text-2);font-size:15px;font-weight:500;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:200px}.add-tile:hover{background:var(--surface);color:var(--text)}.fill{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.fill .art-mono{font-size:15px;font-weight:600}.mini-art{width:44px;height:44px;flex:0 0 44px;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden}.mini-art img{width:60%;height:60%;object-fit:contain}.mini-art .art-mono{font-size:16px;font-weight:600}.pill-row{display:flex;flex-wrap:wrap;gap:12px}.site-pill{position:relative;display:inline-flex;align-items:center;gap:12px;height:56px;padding:0 20px 0 8px;background:var(--surface);border-radius:999px;box-shadow:var(--shadow-sm);color:var(--text);max-width:320px}.site-pill:hover{box-shadow:var(--shadow-md);color:var(--text)}.site-pill .site-icon{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}.site-pill .site-icon img{width:24px;height:24px}.site-pill .site-icon .art-mono{font-size:15px;font-weight:600}.site-pill .site-text{display:flex;flex-direction:column;min-width:0}.site-pill .site-title{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-pill .site-host{font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add-pill{height:56px;padding:0 22px;border:1.5px dashed var(--border-strong);background:transparent;border-radius:999px;color:var(--text-2);font-size:14px;font-weight:500}.add-pill:hover{background:var(--surface);color:var(--text)}.site-card{position:relative;background:var(--surface);border-radius:20px;box-shadow:var(--shadow-sm);padding:16px;display:flex;align-items:center;gap:14px;min-width:0;color:var(--text)}.site-card:hover{box-shadow:var(--shadow-md);color:var(--text)}.site-card .site-icon{width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}.site-card .site-icon img{width:28px;height:28px}.site-card .site-icon .art-mono{font-weight:600}.site-card .site-actions{margin-left:auto;display:flex;gap:2px;opacity:0}.site-card:hover .site-actions,.site-card:focus-within .site-actions{opacity:1}.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.home-top{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:20px}.home-top.solo{grid-template-columns:minmax(0,1fr)}.hero{position:relative;overflow:hidden;background:#ea580c;color:#fff;border-radius:28px;padding:36px 40px;display:flex;align-items:center;gap:32px;min-height:240px}.hero .hero-ring-deco{position:absolute;right:-120px;top:-140px;width:420px;height:420px;border-radius:50%;border:56px solid rgba(255,255,255,.07);pointer-events:none}.hero .hero-blob-deco{position:absolute;right:120px;bottom:-180px;width:260px;height:260px;border-radius:50%;background:#ffffff0f;pointer-events:none}.hero .hero-body{position:relative;flex:1 1 auto;display:flex;flex-direction:column;gap:22px}.hero .hero-eyebrow{font-size:15px;font-weight:500;color:#ffffffe6;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.hero .hero-eyebrow .hero-dot{opacity:.6}.hero .hero-eyebrow .hero-time{font-variant-numeric:tabular-nums;font-weight:600;color:#fff}.hero .hero-title{margin-top:8px;font-size:40px;font-weight:600;letter-spacing:-.03em;line-height:1.08}.hero .hero-text{margin-top:10px;font-size:17px;font-weight:500;color:#fff;max-width:480px}.hero .hero-actions{display:flex;flex-wrap:wrap;gap:10px}.hero .btn-hero{background:#fff;color:#a3390f}.hero .btn-hero:hover{background:#fff4ee;color:#a3390f}.hero .btn-hero-ghost{background:#fff3;color:#fff}.hero .btn-hero-ghost:hover{background:#ffffff38;color:#fff}.hero .hero-ring{position:relative;flex:0 0 150px;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:14px;font-weight:500;color:#fff}.attention-list{display:flex;flex-direction:column;gap:4px}.attention-item{display:flex;align-items:center;gap:14px;padding:8px;margin:0 -8px;border-radius:14px;color:var(--text)}.attention-item:hover{background:var(--surface-2);color:var(--text)}.attention-item .attention-text{flex:1 1 auto;min-width:0}.attention-item .attention-name{font-size:15px;font-weight:500}.attention-item .attention-detail{font-size:13px;color:var(--text-3)}.list{padding:0 8px 8px}.list-row{display:grid;grid-template-columns:36px 44px minmax(0,2fr) minmax(0,2fr) minmax(0,1.2fr) 132px;align-items:center;gap:16px;min-height:68px;padding:0 14px;border-radius:16px}.list-row:hover{background:var(--surface-hover)}.list-row.head{min-height:32px;font-size:12px;font-weight:500;color:var(--text-4)}.list-row.head:hover{background:transparent}.list-row .num{font-size:15px;font-weight:500;color:var(--text-4);text-align:center}.list-row .row-title{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-row .row-sub{font-size:13px;color:var(--text-3)}.list-row .row-end{justify-self:end}.code{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:13px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.simple-row{display:flex;align-items:center;gap:16px;min-height:60px;padding:8px 14px;border-radius:14px}.simple-row:hover{background:var(--surface-hover)}.simple-row .grow{flex:1 1 auto;min-width:0}.found-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(460px,1fr));gap:18px}.found-card{display:flex;gap:18px;padding:14px;align-items:stretch}.found-card .found-art{width:120px;flex:0 0 120px;aspect-ratio:auto}.found-card .found-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:12px;padding:4px 4px 0 0}.found-card .found-name{font-size:17px;font-weight:600;letter-spacing:-.01em}.found-card .found-name-input{border:0;background:transparent;font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--text);padding:2px 6px;margin:-2px -6px;border-radius:8px;width:100%;outline:none}.found-card .found-name-input:hover{background:var(--surface-2)}.found-card .found-name-input:focus{background:var(--surface-2);box-shadow:inset 0 0 0 2px var(--accent)}.found-card .found-fields{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:10px}.detail-hero{position:relative;overflow:hidden;padding:28px;display:flex;gap:36px;flex-wrap:wrap;align-items:center}.detail-hero .detail-deco{position:absolute;right:-160px;top:-200px;width:520px;height:520px;border-radius:50%;opacity:.55;pointer-events:none}.detail-hero .detail-art{position:relative;width:216px;height:216px;flex:0 0 216px;border-radius:28px;box-shadow:var(--shadow-md)}.detail-hero .detail-art .art-mono{font-size:76px}.detail-hero .detail-body{position:relative;flex:1 1 360px;min-width:0;display:flex;flex-direction:column;gap:14px}.detail-hero .detail-title{font-size:48px;font-weight:600;letter-spacing:-.035em;line-height:1.02}.detail-hero .detail-desc{font-size:16px;color:var(--text-2)}.detail-hero .detail-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:6px}.detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px;align-items:start}.fact-row{display:grid;grid-template-columns:36px minmax(0,1fr) minmax(0,2fr);align-items:center;gap:16px;min-height:52px;padding:0 14px;border-radius:14px;font-size:14px}.fact-row:hover{background:var(--surface-hover)}.fact-row .fact-n{color:var(--text-4);text-align:center;font-weight:500}.fact-row .fact-k{color:var(--text-3)}.detail-hero .container-detail-art{display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-3)}.detail-hero .detail-title{overflow-wrap:anywhere}.detail-chips{display:flex;gap:8px;flex-wrap:wrap}.btn.remove-btn.confirming{border-color:var(--danger);color:var(--danger)}.detail-warning{font-size:13px;color:var(--text-3);max-width:560px}.mount-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:0 14px;border-radius:14px;font-size:13px}.mount-row:hover{background:var(--surface-hover)}.mount-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.mount-arrow{color:var(--text-4)}.logs-panel{margin-top:20px;padding-bottom:12px}.logs-tools{display:flex;align-items:center;gap:8px}.log-box{margin:0 12px;max-height:480px;overflow:auto;padding:12px 14px;border-radius:14px;background:var(--surface-2);font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;line-height:1.55}.log-line{display:flex;gap:12px;white-space:pre-wrap;overflow-wrap:anywhere}.log-line.err .log-text{color:var(--danger)}.log-time{flex:0 0 auto;color:var(--text-4);font-variant-numeric:tabular-nums}@media(max-width:600px){.mount-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"src rw" "dst dst";gap:2px 10px;padding:8px 10px}.mount-row>:nth-child(1){grid-area:src}.mount-row>:nth-child(2){display:none}.mount-row>:nth-child(3){grid-area:dst;color:var(--text-3)}.mount-row>:nth-child(4){grid-area:rw}.log-box{margin:0 6px;padding:10px;font-size:11px}.log-line{flex-direction:column;gap:0}}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stat{background:var(--surface-2);border-radius:16px;padding:14px 16px}.stat .stat-value{font-size:24px;font-weight:600;letter-spacing:-.02em}.stat .stat-label{font-size:13px;color:var(--text-3)}.stat.accent{background:var(--accent-soft)}.stat.accent .stat-value{color:var(--on-accent-soft)}.bar{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}.bar-fill{height:8px;background:var(--accent);border-radius:4px}.bar-fill.warn{background:#dc2626}.bar-label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px}.bar-label span:first-child{color:var(--text-3)}.bar-label span:last-child{font-weight:500}.system-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}.disk-panel{display:flex;flex-direction:column;gap:16px}.disk-head{display:flex;align-items:baseline;gap:12px}.disk-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:-6px}.disk-temp{margin-left:auto;flex-shrink:0;font-size:15px;font-weight:500;color:var(--text-2)}.disk-temp.hot{color:var(--danger)}.disk-problems{margin:0;padding:10px 14px 10px 30px;border-radius:12px;background:var(--danger-soft);color:var(--on-danger-soft);font-size:14px;line-height:1.5}.kv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:10px 16px;font-size:14px}.kv dt{color:var(--text-3)}.kv dd{margin:0;font-weight:500;text-align:right;overflow:hidden;text-overflow:ellipsis}.kv dd.mono{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:13px}.settings-stack{display:flex;flex-direction:column;gap:20px;max-width:880px}.setting-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.setting-row .setting-text{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:4px}.setting-row .setting-title{font-size:15px;font-weight:500}.setting-row .setting-desc{font-size:14px;color:var(--text-3)}.theme-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.theme-choice{border:0;border-radius:20px;padding:12px;background:var(--surface-2);display:flex;flex-direction:column;gap:12px;text-align:left;color:var(--text)}.theme-choice.selected{box-shadow:inset 0 0 0 2px var(--accent)}.theme-choice .theme-preview{height:84px;border-radius:14px;display:flex;align-items:flex-end;gap:8px;padding:12px}.theme-choice .theme-preview.light{background:#f7f4f2;box-shadow:inset 0 0 0 1px #ece5e0}.theme-choice .theme-preview.dark{background:#161412}.theme-choice .theme-preview span{width:36px;height:36px;border-radius:10px}.theme-choice .theme-name{font-size:15px;font-weight:500;padding:0 4px 4px}.twofa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.step{background:var(--surface-2);border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:10px}.step.wide{grid-column:1/-1}.step .step-num{font-size:12px;font-weight:500;color:var(--on-accent-soft)}.step .step-title{font-size:16px;font-weight:600}.step p{font-size:14px;color:var(--text-3)}.qr-frame{align-self:center;width:196px;height:196px;padding:10px;background:#fff;border-radius:16px}.qr-frame svg{width:100%;height:100%}.secret{display:flex;align-items:center;gap:8px;background:var(--surface);border-radius:12px;padding:6px 6px 6px 12px}.secret code{flex:1 1 auto;min-width:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;overflow:hidden;text-overflow:ellipsis}.backup-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.backup-codes span{background:var(--surface);border-radius:10px;padding:8px;text-align:center;font-family:JetBrains Mono,ui-monospace,monospace;font-size:14px}.inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.inline-form .field{flex:1 1 220px}.user-avatar{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--accent-soft);color:var(--on-accent-soft);display:flex;align-items:center;justify-content:center;font-weight:500}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#14100e73;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .15s ease}.modal{width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow-y:auto;background:var(--surface);border-radius:28px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:rise .2s cubic-bezier(.16,1,.3,1)}.modal-head{display:flex;align-items:center;gap:12px;padding:22px 24px 8px}.modal-head h2{flex:1 1 auto;font-size:20px;font-weight:600;letter-spacing:-.015em}.modal-body{padding:12px 24px;display:flex;flex-direction:column;gap:14px}.modal-foot{padding:12px 24px 22px;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.modal-foot .modal-foot-start{margin-right:auto}.icon-preview{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-3)}.icon-preview .site-icon{width:48px;height:48px;border-radius:14px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-preview .site-icon img{width:28px;height:28px}.install-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:15px;color:var(--text-2)}.telemetry{position:sticky;bottom:0;z-index:15;background:var(--telemetry-bg);box-shadow:0 -1px 4px #00000024;color:var(--text)}.telemetry-line{height:3px;background:var(--telemetry-track)}.telemetry-line div{height:3px;background:var(--telemetry-fill);transition:width .6s ease}.telemetry-row{min-height:72px;display:flex;align-items:center;gap:32px;padding:8px 24px;flex-wrap:wrap}.telemetry-host{display:flex;align-items:center;gap:14px;min-width:220px}.telemetry-host .host-icon{width:48px;height:48px;background:var(--telemetry-host);color:#fff;border-radius:2px;display:flex;align-items:center;justify-content:center}.telemetry-host .host-name{font-size:15px;font-weight:500}.telemetry-host .host-sub,.telemetry-host .host-compact{font-size:13px;color:var(--telemetry-text-2)}.telemetry-host .host-compact{display:none}.telemetry-meters{flex:1 1 auto;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:28px;max-width:760px}.t-meter{display:flex;flex-direction:column;gap:6px}.t-meter .t-meter-top{display:flex;justify-content:space-between;gap:8px;font-size:12px}.t-meter .t-meter-k{font-weight:600;letter-spacing:.06em;color:var(--telemetry-text-2)}.t-meter .t-meter-v{font-weight:500;white-space:nowrap}.meter{height:4px;background:var(--telemetry-track);border-radius:2px;overflow:hidden}.meter-fill{height:4px;background:var(--telemetry-fill);transition:width .6s ease}.telemetry-end{margin-left:auto;display:flex;align-items:center;gap:20px;font-size:13px;color:var(--telemetry-text-2)}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg);position:relative}.login .login-theme{position:absolute;top:16px;right:16px}.login-card{width:100%;max-width:400px;padding:32px;display:flex;flex-direction:column;gap:18px}.login-card .login-brand{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:600;letter-spacing:-.02em}.login-card .login-title{font-size:15px;color:var(--text-3)}.login-card .btn{width:100%}.toast{position:fixed;left:50%;bottom:104px;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:14px;padding:10px 10px 10px 20px;border-radius:999px;background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);font-size:14px;white-space:nowrap;max-width:calc(100vw - 32px);animation:toastIn .2s cubic-bezier(.16,1,.3,1)}.toast .toast-message,.toast span{white-space:nowrap}.toast .toast-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.toast .toast-later{color:inherit}@media(max-width:600px){.toast{bottom:84px;width:calc(100vw - 32px);max-width:420px;border-radius:18px;padding:12px 14px 12px 18px;gap:12px;justify-content:space-between;white-space:normal}.toast .toast-message,.toast span{white-space:normal;font-size:13.5px;line-height:1.35;flex:1 1 auto;min-width:0}.toast .toast-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.toast .btn.sm{height:36px;padding:0 14px;font-size:13px}}.btn.restart-confirm{border-color:var(--danger);color:var(--danger)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media(max-width:1100px){.home-top,.detail-grid{grid-template-columns:minmax(0,1fr)}.telemetry-end span{display:none}}@media(max-width:900px){.brand{width:auto}.brand span{display:none}.nav{position:fixed;top:0;bottom:0;left:0;z-index:40;width:280px;padding-top:20px;background:var(--bg);box-shadow:var(--shadow-lg);transform:translate(-105%);transition:transform .2s ease;overflow-y:auto}.shell.nav-open .nav{transform:translate(0)}.shell.nav-open .nav-scrim{display:block;position:fixed;inset:0;z-index:35;background:#14100e66}.page{padding:8px 16px 40px}.list-row{grid-template-columns:44px minmax(0,1fr) auto}.list-row>.num,.list-row>.hide-sm{display:none}.hide-sm{display:none}.container-row{gap:10px;padding:8px 6px}.found-grid{grid-template-columns:minmax(0,1fr)}.telemetry-meters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}}@media(min-width:901px){.shell.nav-collapsed .nav{display:none}}@media(max-width:600px){.topbar{gap:8px;padding:0 12px 0 4px}.search-box .kbd{display:none}.hero{flex-direction:column;align-items:flex-start;padding:26px 24px}.hero .hero-title{font-size:30px}.hero .hero-ring{display:none}.card-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.form-grid,.twofa-grid,.theme-choices{grid-template-columns:minmax(0,1fr)}.found-card{flex-direction:column}.found-card .found-art{width:100%;height:120px;flex:0 0 auto}.found-card .found-fields{grid-template-columns:minmax(0,1fr)}.detail-hero .detail-art{width:140px;height:140px;flex:0 0 140px}.detail-hero .detail-title{font-size:34px}.telemetry-host{min-width:0;flex:1 1 auto}.telemetry-host .host-icon{width:40px;height:40px}.telemetry-host .host-sub,.telemetry-host .telemetry-meters{display:none}.telemetry-host .host-compact{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.telemetry-host>div:last-child{min-width:0}.telemetry-meters{display:none}.telemetry-row{min-height:60px;gap:8px;padding:6px 8px 6px 12px;flex-wrap:nowrap}}.status-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}.status-metric-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-sm)}.status-metric-title{font-size:11px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}.status-metric-val{font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.status-metric-val.success{color:var(--success)}.status-metric-val.danger{color:var(--danger)}.status-metric-sub{font-size:13px;color:var(--text-2)}.status-list .monitor-row{display:flex;align-items:center;gap:14px;padding:12px 18px;transition:background .15s ease}.status-list .monitor-row.monitor-down{background:var(--danger-soft)}.status-list .monitor-row.monitor-paused{opacity:.65}.status-list .monitor-art{width:36px;height:36px;flex:0 0 36px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-2);border-radius:10px}.status-list .monitor-info{flex:1 1 200px;min-width:0}.status-list .monitor-info .row-title{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--text);min-width:0}.status-list .monitor-info .monitor-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-list .monitor-info .row-sub{font-size:12.5px;color:var(--text-3);display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:2px}.status-list .monitor-info .url-text,.status-list .monitor-info .error-msg{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-list .type-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;background:var(--surface-2);color:var(--text-3);border:1px solid var(--border);letter-spacing:.04em}.status-list .push-copy-btn{display:inline-flex;align-items:center;gap:5px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:11px;font-weight:500;color:var(--text-2);cursor:pointer;transition:all .15s}.status-list .push-copy-btn:hover{background:var(--surface-hover);color:var(--text)}.status-list .monitor-sparkline{display:flex;align-items:center;flex:0 0 auto}.status-list .monitor-sparkline .sparkline-bars{display:flex;align-items:flex-end;gap:2.5px;height:20px;padding:0 4px}.status-list .monitor-sparkline .spark-bar{width:4px;height:14px;border-radius:2px;background:var(--border-strong);transition:height .15s,background .15s}.status-list .monitor-sparkline .spark-bar.bar-up{background:#10b981}.status-list .monitor-sparkline .spark-bar.bar-down{background:#ef4444;height:20px}.status-list .monitor-sparkline .no-heartbeats{font-size:12px;color:var(--text-4)}.status-list .monitor-status-cell{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:78px;flex:0 0 auto}.status-list .monitor-status-cell .status-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.status-list .monitor-status-cell .status-pill.up{background:var(--success-soft);color:var(--on-success-soft)}.status-list .monitor-status-cell .status-pill.up .status-dot{background:var(--success)}.status-list .monitor-status-cell .status-pill.down{background:var(--danger-soft);color:var(--on-danger-soft)}.status-list .monitor-status-cell .status-pill.down .status-dot{background:var(--danger)}.status-list .monitor-status-cell .status-pill.paused{background:var(--surface-2);color:var(--text-3)}.status-list .monitor-status-cell .status-pill.paused .status-dot{background:var(--text-4)}.status-list .monitor-status-cell .status-dot{width:6px;height:6px;border-radius:50%}.status-list .monitor-status-cell .uptime-val{font-size:11px;font-weight:500;color:var(--text-3)}.status-list .monitor-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.status-list .action-delete-confirm{color:var(--danger)}.status-down-text{color:var(--danger);font-weight:600}.monitor-type-field{margin-bottom:12px}.monitor-modal-note{margin-top:12px}@media(max-width:600px){.status-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px}.status-metric-card{padding:12px;border-radius:12px}.status-metric-title{font-size:10px}.status-metric-val{font-size:18px}.status-metric-sub{display:none}.status-list .monitor-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"art info status" "art spark actions";gap:6px 12px;padding:10px 8px}.status-list .monitor-row>:first-child{grid-area:art;align-self:start}.status-list .monitor-info{grid-area:info}.status-list .monitor-status-cell{grid-area:status;min-width:0}.status-list .monitor-actions{grid-area:actions}.status-list .monitor-sparkline{grid-area:spark;min-width:0;overflow:hidden}.status-list .monitor-sparkline .sparkline-bars{justify-content:flex-end;width:100%;padding:0}.status-list .monitor-sparkline .spark-bar{flex:0 0 4px}.status-list .monitor-info .url-text,.status-list .monitor-info .error-msg{max-width:100%}}.push-banner{margin-top:12px}.push-actions{display:flex;gap:8px;flex-wrap:wrap}.push-topics-grid{margin-top:16px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);padding-top:16px}.push-topics-grid .topic-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;border-radius:10px;background:var(--surface-2)}.push-topics-grid .topic-row .topic-info{display:flex;flex-direction:column;gap:2px;min-width:0}.push-topics-grid .topic-row .topic-title{font-size:13.5px;font-weight:600;color:var(--text)}.push-topics-grid .topic-row .topic-desc{font-size:12px;color:var(--text-3)}.ha-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.ha-card{padding:16px;border-radius:16px;display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--border);transition:all .15s ease}.ha-card.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.ha-card.clickable:hover{background:var(--surface-hover);border-color:var(--border-strong);transform:translateY(-1px)}.ha-card.on{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 1px var(--accent-soft)}.ha-card-top{display:flex;align-items:center;justify-content:space-between}.ha-icon-wrap{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-2);transition:all .15s ease}.ha-icon-wrap.on{background:var(--accent-soft);color:var(--accent)}.ha-toggle-btn{width:44px;height:26px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border-strong);position:relative;cursor:pointer;padding:0;transition:all .2s cubic-bezier(.16,1,.3,1)}.ha-toggle-btn.active{background:var(--accent);border-color:var(--accent)}.ha-toggle-btn .ha-toggle-knob{width:20px;height:20px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .2s cubic-bezier(.16,1,.3,1);box-shadow:0 1px 3px #0003}.ha-toggle-btn.active .ha-toggle-knob{transform:translate(18px)}.ha-value-badge{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text);display:inline-flex;align-items:baseline}.ha-value-badge .ha-unit{font-size:12px;font-weight:500;color:var(--text-3);margin-left:3px}.ha-action-btn{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border-radius:8px;font-size:12px;font-weight:600;border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);cursor:pointer;transition:all .15s ease}.ha-action-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover)}.ha-action-btn.triggered{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.ha-card.active-action{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.ha-card-info{display:flex;flex-direction:column;gap:2px;min-width:0}.ha-card-name{font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ha-card-meta{font-size:12.5px;color:var(--text-3);text-transform:capitalize}.ha-empty-shelf{padding:24px;display:flex;flex-direction:column;gap:6px}.ha-form{display:flex;flex-direction:column;gap:16px;margin-top:16px}.ha-form .form-help{font-size:12px;color:var(--text-3);margin-top:4px}.ha-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.ha-entities-panel{display:flex;flex-direction:column;gap:16px}.empty-state-card,.loading-state-card{padding:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;color:var(--text-3);background:var(--surface-2);border-radius:12px;font-size:14px}.entity-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.entity-toolbar .entity-search{height:38px;flex:1 1 240px;max-width:100%}.entity-toolbar .refresh-entities-btn{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;font-size:13px;white-space:nowrap;border-radius:8px}.domain-chips{display:flex;align-items:center;gap:6px;overflow-x:auto;padding-bottom:2px;flex-wrap:wrap}.entity-picker-list{display:flex;flex-direction:column;gap:4px;max-height:440px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;padding:6px;background:var(--surface-2)}.entity-picker-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;background:var(--surface);cursor:pointer;transition:all .15s ease}.entity-picker-row:hover{background:var(--surface-hover)}.entity-picker-row.selected{border-left:3px solid var(--accent)}.entity-picker-row .entity-checkbox{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.entity-picker-row .entity-icon-wrap{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-2)}.entity-picker-row .entity-icon-wrap.on{background:var(--accent-soft);color:var(--accent)}.entity-picker-row .entity-details{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.entity-picker-row .entity-details .entity-name{font-size:13.5px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-picker-row .entity-details .entity-sub{font-size:11.5px;color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-picker-row .entity-state-pill{padding:3px 8px;border-radius:6px;font-size:11.5px;font-weight:500;background:var(--surface-2);color:var(--text-3)}.entity-picker-row .entity-state-pill.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.empty-entity-notice{padding:32px 20px;text-align:center;font-size:13.5px;color:var(--text-3);display:flex;flex-direction:column;align-items:center;gap:12px}.entity-save-bar{display:flex;justify-content:flex-end;margin-top:12px}.smarthome-hero{margin-bottom:24px}.smarthome-hero-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#0f172a,#1e293b,#0f172a);color:#fff;border:1px solid rgba(255,255,255,.08);border-radius:28px;padding:32px 36px;box-shadow:0 10px 30px #0003}.smarthome-hero-card .smarthome-hero-decor{position:absolute;right:-100px;top:-100px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,#ea580c26,#ea580c00 70%);pointer-events:none}.smarthome-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;gap:20px}.smarthome-eyebrow{font-size:13.5px;font-weight:500;color:#ffffffb3;display:inline-flex;align-items:center;gap:8px}.smarthome-eyebrow .sep{opacity:.4}.smarthome-eyebrow .sync-label{color:var(--accent);font-weight:600}.live-pulse-dot{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 #10b981b3;animation:pulse-green 2s infinite}.live-pulse-dot.syncing{background:var(--accent);animation:pulse-orange .8s infinite}@keyframes pulse-green{0%{transform:scale(.95);box-shadow:0 0 #10b981b3}70%{transform:scale(1);box-shadow:0 0 0 6px #10b98100}to{transform:scale(.95);box-shadow:0 0 #10b98100}}@keyframes pulse-orange{0%{transform:scale(.95);box-shadow:0 0 #ea580cb3}70%{transform:scale(1);box-shadow:0 0 0 6px #ea580c00}to{transform:scale(.95);box-shadow:0 0 #ea580c00}}.smarthome-hero-row{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.smarthome-title{font-size:28px;font-weight:600;letter-spacing:-.02em;margin:0;color:#fff}.smarthome-subtitle{font-size:14.5px;color:#ffffffa6;margin:4px 0 0}.smarthome-master-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn-hero-master{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px;border-radius:12px;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.btn-hero-master.goodnight-btn{background:#ffffff1f;color:#fff;border-color:#ffffff26}.btn-hero-master.goodnight-btn:hover{background:#fff3;transform:translateY(-1px)}.btn-hero-master.goodnight-btn.triggered{background:#8b5cf6;border-color:#a78bfa;color:#fff}.btn-hero-master.lights-off-btn{background:#ef444426;color:#fca5a5;border-color:#ef444440}.btn-hero-master.lights-off-btn:hover{background:#ef444440;color:#fff;transform:translateY(-1px)}.btn-hero-master.lights-off-btn.triggered{background:#ef4444;border-color:#f87171;color:#fff}.smarthome-metrics-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:6px;border-top:1px solid rgba(255,255,255,.08)}.metric-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);font-size:13px;color:#ffffffd9}.metric-chip .metric-val{font-weight:600;color:#fff}.metric-chip .metric-lbl{font-size:12px;color:#fff9}.metric-chip.highlight{background:#f59e0b26;border-color:#f59e0b4d;color:#fcd34d}.metric-chip.highlight .metric-val{color:#fde68a}.metric-chip.cleaning{background:#10b98126;border-color:#10b9814d;color:#6ee7b7}.metric-chip.cleaning .metric-val{color:#a7f3d0}.smarthome-nav-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.room-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.room-tab-btn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.room-tab-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover)}.room-tab-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.room-tab-btn.active .tab-badge{background:#ffffff40;color:#fff}.room-tab-btn .tab-badge{padding:1px 6px;border-radius:999px;font-size:11px;font-weight:700;background:var(--accent-soft);color:var(--accent)}.smarthome-search-box{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:12px;background:var(--surface);border:1px solid var(--border);min-width:220px;transition:border-color .15s ease}.smarthome-search-box:focus-within{border-color:var(--accent)}.smarthome-search-box input{border:none;background:transparent;color:var(--text);font-size:13px;width:100%;outline:none}.smarthome-search-box input::placeholder{color:var(--text-3)}.smarthome-search-box .clear-search-btn{border:none;background:transparent;color:var(--text-3);cursor:pointer;display:flex;align-items:center;padding:2px}.smarthome-search-box .clear-search-btn:hover{color:var(--text)}.atmospheres-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.atmosphere-btn{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;transition:all .18s cubic-bezier(.16,1,.3,1)}.atmosphere-btn:hover{background:var(--surface-hover);border-color:var(--border-strong);transform:translateY(-1px)}.atmosphere-btn.active{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.atmosphere-btn.active .atm-icon-box{background:var(--accent);color:#fff}.atmosphere-btn.active .atm-room{color:var(--accent);font-weight:600}.atmosphere-btn .atm-icon-box{width:36px;height:36px;border-radius:10px;background:var(--surface-2);color:var(--text-2);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.atmosphere-btn .atm-text{display:flex;flex-direction:column;min-width:0;gap:2px}.atmosphere-btn .atm-name{font-size:13.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.atmosphere-btn .atm-room{font-size:11.5px;color:var(--text-3)}.vacuum-status-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:12.5px;font-weight:500;color:var(--text-2)}.vacuum-status-pill .status-indicator{width:7px;height:7px;border-radius:50%;background:#10b981}.vacuum-status-pill .battery-tag{font-size:11.5px;color:var(--text-3);font-weight:600}.vacuum-status-pill.cleaning{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.vacuum-status-pill.cleaning .status-indicator{background:var(--accent);animation:pulse-orange 1s infinite}.vacuum-command-panel{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:20px}.vacuum-primary-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.vacuum-avatar{display:flex;align-items:center;gap:14px}.vacuum-avatar .vacuum-ring{width:52px;height:52px;border-radius:14px;background:var(--surface-2);color:var(--accent);display:flex;align-items:center;justify-content:center;border:1px solid var(--border)}.vacuum-avatar .vacuum-details{display:flex;flex-direction:column;gap:3px}.vacuum-avatar .vacuum-name{font-size:17px;font-weight:600;color:var(--text)}.vacuum-avatar .vacuum-state-desc{font-size:13px;color:var(--text-3)}.vacuum-master-buttons{display:flex;align-items:center;gap:10px}.btn-vacuum-main{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px;border-radius:12px;background:var(--accent);color:#fff;border:none;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-vacuum-main:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-vacuum-main.cleaning{background:#f59e0b}.btn-vacuum-dock{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:12px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);font-size:13.5px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-vacuum-dock:hover:not(:disabled){background:var(--surface-hover);color:var(--text);border-color:var(--border-hover)}.btn-vacuum-dock:disabled{opacity:.5;cursor:not-allowed}.vacuum-presets-header{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid var(--border);padding-top:16px}.vacuum-presets-header .presets-title{font-size:13.5px;font-weight:600;color:var(--text-2)}.vacuum-presets-header .presets-hint{font-size:12px;color:var(--text-3)}.vacuum-presets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.preset-action-chip{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);cursor:pointer;text-align:left;transition:all .15s ease}.preset-action-chip:hover{background:var(--surface-hover);border-color:var(--border-strong);transform:translateY(-1px)}.preset-action-chip.active{background:var(--accent-soft);border-color:var(--accent)}.preset-action-chip.active .preset-icon{background:var(--accent);color:#fff}.preset-action-chip.active .preset-feedback{color:var(--accent);font-weight:600}.preset-action-chip .preset-icon{width:32px;height:32px;border-radius:8px;background:var(--surface);color:var(--text-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.preset-action-chip .preset-icon.mop{color:#38bdf8}.preset-action-chip .preset-text{display:flex;flex-direction:column;min-width:0;gap:2px}.preset-action-chip .preset-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preset-action-chip .preset-feedback{font-size:11px;color:var(--text-3)}.room-section{margin-top:24px}.room-quick-stats{display:flex;align-items:center;gap:8px}.stat-badge{padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600}.stat-badge.on{background:var(--accent-soft);color:var(--accent)}.stat-badge.off{background:var(--surface-2);color:var(--text-3);font-weight:500}.stat-badge.temp{background:#ea580c1a;color:var(--accent)}.stat-badge.humidity{background:#38bdf81f;color:#0284c7}.card-controls-right{display:flex;align-items:center;gap:8px}.ha-brightness-badge-btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);border-radius:8px;padding:2px 7px;font-size:11.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.ha-brightness-badge-btn:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.card-brightness-quick{display:flex;align-items:center;gap:4px;margin-top:6px;padding-top:8px;border-top:1px dashed var(--border)}.bright-pill{flex:1;border:1px solid var(--border);background:var(--surface-2);color:var(--text-3);font-size:11px;font-weight:500;border-radius:6px;padding:4px 0;cursor:pointer;transition:all .12s ease}.bright-pill:hover{background:var(--surface-hover);color:var(--text)}.bright-pill.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.sensor-card{-webkit-user-select:none;user-select:none;cursor:default!important}.sensor-card:hover{transform:none!important}.sensor-wrap{background:#38bdf81a!important;color:#0284c7!important}.brightness-modal{max-width:420px;width:100%}.brightness-dialog-body{padding:24px;display:flex;flex-direction:column;align-items:center;gap:20px}.brightness-value-display{display:flex;flex-direction:column;align-items:center;gap:2px}.brightness-value-display .b-val{font-size:38px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}.brightness-value-display .b-label{font-size:12.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}.brightness-slider{width:100%;accent-color:var(--accent);cursor:pointer}.brightness-preset-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:100%}.btn-preset{border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);font-size:12px;font-weight:500;padding:8px 4px;border-radius:8px;cursor:pointer;transition:all .15s ease}.btn-preset:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}@media(max-width:768px){.smarthome-hero{margin-bottom:16px;width:100%;max-width:100%}.smarthome-hero-card{padding:22px 18px;border-radius:20px;width:100%;max-width:100%;box-sizing:border-box}.smarthome-hero-card .smarthome-hero-decor{display:none}.smarthome-title{font-size:24px}.smarthome-subtitle{font-size:13.5px}.smarthome-hero-row{flex-direction:column;align-items:stretch;gap:16px}.smarthome-master-actions{width:100%;display:flex;flex-wrap:wrap;gap:8px}.smarthome-master-actions .btn-hero-master{flex:1 1 calc(50% - 4px);height:40px;padding:0 12px;font-size:12.5px;justify-content:center}.smarthome-master-actions .btn-hero-ghost{flex:1 1 100%;height:38px;justify-content:center;font-size:12.5px}.smarthome-metrics-strip{gap:6px;padding-top:12px}.smarthome-metrics-strip .metric-chip{padding:5px 10px;font-size:12px;border-radius:8px}.smarthome-metrics-strip .metric-chip .metric-val{font-size:12px}.smarthome-metrics-strip .metric-chip .metric-lbl{font-size:11px}.smarthome-nav-bar{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:20px;width:100%;max-width:100%;min-width:0;overflow:hidden}.room-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px;width:100%;max-width:100%;min-width:0;gap:6px}.room-tabs::-webkit-scrollbar{display:none}.room-tab-btn{flex:0 0 auto;white-space:nowrap;height:36px;padding:0 12px;font-size:12.5px}.smarthome-search-box{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.vacuum-command-panel{padding:16px;border-radius:16px;gap:16px}.vacuum-primary-actions{flex-direction:column;align-items:stretch;gap:14px}.vacuum-master-buttons{width:100%;display:flex;gap:8px}.vacuum-master-buttons button{flex:1;height:38px;padding:0 12px;font-size:12.5px;justify-content:center}.room-section{margin-top:20px}}@media(max-width:600px){.ha-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ha-card{padding:12px;border-radius:14px;gap:10px;min-width:0}.ha-card-top{gap:6px}.ha-icon-wrap{width:32px;height:32px;border-radius:8px;flex-shrink:0}.ha-toggle-btn{width:38px;height:22px}.ha-toggle-btn .ha-toggle-knob{width:16px;height:16px;top:2px;left:2px}.ha-toggle-btn.active .ha-toggle-knob{transform:translate(16px)}.card-controls-right{gap:4px}.ha-brightness-badge-btn{padding:1px 5px;font-size:10.5px}.ha-card-name{font-size:13px}.ha-card-meta{font-size:11px}.card-brightness-quick{gap:3px;margin-top:4px;padding-top:6px}.bright-pill{padding:3px 0;font-size:10px;border-radius:5px}.atmospheres-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.atmosphere-btn{padding:10px 12px;gap:10px}.atmosphere-btn .atm-icon-box{width:32px;height:32px;border-radius:8px}.atmosphere-btn .atm-name{font-size:12.5px}.atmosphere-btn .atm-room{font-size:11px}.vacuum-presets-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.preset-action-chip{padding:8px 10px;gap:8px}.preset-action-chip .preset-icon{width:28px;height:28px;border-radius:6px}.preset-action-chip .preset-name{font-size:12px}.preset-action-chip .preset-feedback{font-size:10.5px}.room-quick-stats{flex-wrap:wrap;gap:4px}}@media(max-width:360px){.ha-card-grid,.atmospheres-grid,.vacuum-presets-grid{grid-template-columns:minmax(0,1fr)}}app-smart-home-page{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding-bottom:96px}.icon-btn.sm{width:36px;height:36px;flex:0 0 36px}.chip-btn{height:36px;padding:0 16px;border:0;border-radius:999px;display:inline-flex;align-items:center;gap:6px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--text-2);font-size:14px;font-weight:500}.chip-btn:hover{background:var(--surface-hover);color:var(--text)}.chip-btn.active{background:var(--accent-soft);box-shadow:none;color:var(--on-accent-soft)}.seg-btn{position:relative}.seg-count{position:absolute;top:1px;right:1px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center;pointer-events:none}.active-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#fff;color:var(--accent);font-size:11px;font-weight:700;line-height:1;margin-left:4px}.seg-count.danger{background:var(--danger)}.seg-count.soft{background:var(--surface-2);color:var(--text-2);box-shadow:inset 0 0 0 1px var(--border-strong)}.dl-ring{--p: 0;width:18px;height:18px;flex:0 0 18px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--p) * 1%),var(--border-strong) 0);-webkit-mask:radial-gradient(circle,transparent 5px,#000 5.5px);mask:radial-gradient(circle,transparent 5px,#000 5.5px)}.mini-art.cover{background:var(--surface-2)}.mini-art.cover img{width:100%;height:100%;object-fit:cover}.mini-art.cover.round{border-radius:50%}.user-row{flex-wrap:wrap}.emby-link{height:36px;padding:0 4px 0 12px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);color:var(--text-4)}.emby-link.linked{background:var(--accent-soft);color:var(--on-accent-soft)}.emby-link select{height:36px;max-width:180px;border:0;background:transparent;color:var(--text);font-size:14px;outline:none;cursor:pointer}.emby-link:focus-within{box-shadow:inset 0 0 0 2px var(--accent)}.music-page section{min-width:0}.music-actions{align-items:center}.music-search{height:44px;width:300px;max-width:100%;padding:0 6px 0 16px}.music-search input::-webkit-search-cancel-button{display:none}.music-search.sm{height:36px;width:240px}.music-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.music-banner .btn{margin-left:auto}.music-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.music-filter .music-search{margin-left:auto}.music-filter-count{margin-left:auto;font-size:14px;color:var(--text-3)}.back-btn{align-self:flex-start;margin:-16px 0 -16px -12px}.see-all.btn-link{border:0;padding:6px 4px 6px 10px;border-radius:999px}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:18px}.album-row{display:flex;flex-direction:row;flex-wrap:nowrap;gap:18px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding:4px 2px 14px;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.album-row::-webkit-scrollbar{height:6px}.album-row::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}.album-row::-webkit-scrollbar-track{background:transparent}.album-row .album-card{flex:0 0 168px;width:168px;scroll-snap-align:start}.album-card{cursor:pointer}.album-card .card-meta{padding-bottom:2px}.album-card.artist .album-art{border-radius:50%}.album-card.artist .card-text{text-align:center}.album-art{position:relative;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:var(--surface-2)}.album-art img{width:100%;height:100%;object-fit:cover;display:block}.album-play{position:absolute;right:10px;bottom:10px;width:48px;height:48px;border:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-strong);color:var(--on-accent);box-shadow:var(--shadow-md);opacity:0;transform:translateY(6px);transition:opacity .15s,transform .15s}.album-play:hover{background:var(--accent-strong-hover)}.album-card:hover .album-play,.album-play:focus-visible{opacity:1;transform:translateY(0)}@media(hover:none){.album-play{opacity:1;transform:none;right:8px;bottom:8px;width:36px;height:36px}.album-play app-icon svg{width:18px;height:18px}}.music-hero{display:flex;align-items:flex-end;gap:28px}.music-hero-art{width:200px;height:200px;flex:0 0 200px;border-radius:18px;overflow:hidden;background:var(--surface-2);box-shadow:var(--shadow-md)}.music-hero-art.round{border-radius:50%}.music-hero-art img{width:100%;height:100%;object-fit:cover;display:block}.music-hero-body{min-width:0;display:flex;flex-direction:column;gap:6px}.music-hero-eyebrow{font-size:13px;font-weight:500;color:var(--link)}.music-hero-title{font-size:32px;font-weight:600;letter-spacing:-.025em;line-height:1.15;overflow-wrap:anywhere}.music-hero-sub{font-size:15px;color:var(--text-3)}.music-hero-actions{margin-top:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.music-hero-actions .chip{height:44px;padding:0 18px;font-size:14px}.track-list{padding:8px}.track-row{display:grid;grid-template-columns:40px minmax(0,2fr) minmax(0,1.4fr) 52px auto;align-items:center;gap:12px;min-height:60px;padding:0 8px 0 10px;border-radius:14px;cursor:pointer}.track-row:hover{background:var(--surface-hover)}.track-row.current{background:var(--accent-soft)}.track-row.current .track-name,.track-row.current .track-num{color:var(--on-accent-soft)}.track-list.no-album .track-row{grid-template-columns:40px minmax(0,1fr) 52px auto}.track-list.no-album .track-row .track-album{display:none}.track-num{display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:500;color:var(--text-4);font-variant-numeric:tabular-nums}.track-num .track-play{display:none!important;color:var(--text)}.track-row:hover .track-num .track-n{display:none}.track-row:hover .track-num .track-play{display:inline-flex!important}.track-main{min-width:0;display:flex;flex-direction:column;gap:1px}.track-name{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-sub,.track-album{font-size:13px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artist-link,.sub-link{cursor:pointer;transition:color .15s ease}.artist-link:hover,.artist-link:focus-visible,.sub-link:hover,.sub-link:focus-visible{color:var(--text);text-decoration:underline}.artist-link:focus-visible,.sub-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.track-sub{display:flex;align-items:center;gap:4px}.track-offline{color:var(--success)}.track-dur{font-size:13px;color:var(--text-3);text-align:right;font-variant-numeric:tabular-nums}.track-actions{display:flex;justify-content:flex-end;gap:2px}.track-actions .icon-btn{color:var(--text-4)}.track-actions .icon-btn:hover{color:var(--text)}.track-actions .icon-btn.fav,.track-actions .icon-btn.on{color:var(--accent)}.pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:-16px}.pager .round-btn:disabled{opacity:.45;cursor:default}.pager-info{margin-right:8px;font-size:14px;color:var(--text-3);font-variant-numeric:tabular-nums}.storage-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}.storage-stat{display:flex;flex-direction:column;gap:4px;min-width:0}.storage-label{font-size:13px;font-weight:500;color:var(--text-3)}.storage-value{font-size:22px;font-weight:600;letter-spacing:-.015em}.storage-sub{font-size:13px;color:var(--text-3)}.storage-meter{height:6px;margin:4px 0;border-radius:999px;background:var(--surface-2);overflow:hidden}.storage-meter span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.storage-link{align-self:flex-start;border:0;padding:2px 0;font-size:13px;font-weight:500}.storage-link:hover{background:transparent;text-decoration:underline}@media(max-width:760px){.music-actions{margin-left:0;width:100%}.music-actions .music-search{flex:1 1 100%;width:auto}.music-actions>.btn{flex:1 1 0}.music-filter .music-search{order:5;width:100%;margin-left:0}.music-hero{flex-direction:column;align-items:flex-start;gap:18px}.music-hero-art{width:160px;height:160px;flex-basis:160px}.music-hero-title{font-size:26px}.music-page .seg{flex-wrap:nowrap;max-width:100%;overflow-x:auto;scrollbar-width:none}.music-page .seg::-webkit-scrollbar{display:none}.seg-btn{flex:0 0 auto;padding:0 16px}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.album-row{gap:12px;padding:4px 0 10px;scrollbar-width:none}.album-row::-webkit-scrollbar{display:none}.album-row .album-card{flex:0 0 144px;width:144px}.album-card{padding:8px}.album-card .card-meta{padding:10px 4px 2px}.track-row,.track-list.no-album .track-row{grid-template-columns:28px minmax(0,1fr) auto;gap:8px;padding:0 2px 0 6px}.track-row .track-album,.track-row .track-dur,.track-list.no-album .track-row .track-album,.track-list.no-album .track-row .track-dur{display:none}}.row-menu-scrim{position:fixed;inset:0;z-index:29}.row-menu{position:fixed;top:auto;right:auto;width:240px}.player-bar{position:sticky;bottom:0;z-index:25;background:var(--surface);box-shadow:0 -1px 4px #00000024;-webkit-user-select:none;user-select:none}.player-timeline{position:absolute;top:-7px;left:0;right:0;height:14px;display:flex;align-items:center;cursor:pointer;touch-action:none}.player-timeline-track{position:relative;width:100%;height:3px;background:var(--telemetry-track);transition:height .15s}.player-timeline-fill{height:100%;background:var(--accent)}.player-timeline-handle{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:var(--accent);box-shadow:var(--shadow-sm);transform:translate(-50%,-50%) scale(0);transition:transform .15s}.player-timeline:hover .player-timeline-track,.player-timeline.dragging .player-timeline-track{height:5px}.player-timeline:hover .player-timeline-handle,.player-timeline.dragging .player-timeline-handle{transform:translate(-50%,-50%) scale(1)}.player-content{position:relative;min-height:72px;display:flex;align-items:center;gap:16px;padding:8px 16px 8px 24px}.player-track{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:12px;max-width:calc(50% - 150px)}.player-art{width:48px;height:48px;flex:0 0 48px;border-radius:10px;overflow:hidden;background:var(--surface-2)}.player-art img{width:100%;height:100%;object-fit:cover;display:block}.player-text{min-width:0;display:flex;flex-direction:column;gap:1px}.player-title{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-title.link{cursor:pointer}.player-title.link:hover{text-decoration:underline}.player-artist{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-artist-link{cursor:pointer}.player-artist-link:hover{color:var(--text);text-decoration:underline}.player-offline{color:var(--success)}.player-controls{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px}.player-btn{position:relative;width:40px;height:40px;flex:0 0 40px;border:0;border-radius:50%;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--text-2)}.player-btn:hover{background:var(--hover-tint);color:var(--text)}.player-btn.on,.player-btn.fav{color:var(--accent)}.repeat-one{position:absolute;top:5px;right:5px;font-size:10px;font-weight:600;line-height:1}.play-fab{width:48px;height:48px;margin:0 4px;border:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-strong);color:var(--on-accent);box-shadow:var(--shadow-sm);transition:background .15s,transform .15s}.play-fab:hover{background:var(--accent-strong-hover)}.play-fab:active{transform:scale(.95)}.player-extra{margin-left:auto;display:flex;align-items:center;gap:4px}.player-time{margin-right:8px;font-size:13px;color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}.player-volume{display:flex;align-items:center;gap:2px}.player-volume input[type=range]{width:84px;accent-color:var(--accent)}.narrow-only{display:none}.player-menu-scrim{position:fixed;inset:0;z-index:29}.player-menu{top:auto;bottom:calc(100% + 8px);right:12px}.player-menu .menu-item-end{margin-left:auto;font-size:13px;color:var(--text-3)}@media(max-width:1100px){.player-time{display:none}}@media(max-width:900px){.player-volume{display:none}}@media(max-width:760px){.wide-only{display:none}.narrow-only{display:inline-flex}.player-content{min-height:64px;gap:8px;padding:6px 8px 6px 12px}.player-track{max-width:calc(50% - 78px);gap:10px}.player-art{width:40px;height:40px;flex-basis:40px}.player-title{font-size:14px}.player-controls{gap:0}.player-btn{width:36px;height:36px;flex-basis:36px}.play-fab{width:44px;height:44px}}.queue-scrim{position:fixed;inset:0;z-index:44;background:#00000052;animation:fadeIn .15s ease}.queue-sheet{position:fixed;top:0;right:0;bottom:0;z-index:45;width:400px;max-width:100vw;display:flex;flex-direction:column;background:var(--bg);box-shadow:var(--shadow-lg);animation:queueIn .2s cubic-bezier(.16,1,.3,1)}@keyframes queueIn{0%{transform:translate(100%)}to{transform:translate(0)}}.queue-head{display:flex;align-items:center;gap:8px;padding:20px 12px 12px 24px}.queue-head .grow{flex:1 1 auto;min-width:0}.queue-count{font-size:13px;color:var(--text-3)}.queue-list{flex:1 1 auto;overflow-y:auto;padding:0 8px 16px}.queue-row{display:flex;align-items:center;gap:12px;min-height:60px;padding:6px 4px 6px 12px;border-radius:14px;cursor:pointer}.queue-row:hover{background:var(--surface-hover)}.queue-row:hover .queue-remove{opacity:1}.queue-row.current{background:var(--accent-soft)}.queue-row.current .queue-title{color:var(--on-accent-soft)}.queue-handle{width:32px;height:44px;flex:0 0 32px;margin:0 -6px 0 -8px;border:0;border-radius:10px;background:transparent;display:flex;align-items:center;justify-content:center;color:var(--text-4);cursor:grab;touch-action:none}.queue-handle:hover{color:var(--text)}.queue-list.reordering{-webkit-user-select:none;user-select:none;cursor:grabbing}.queue-list.reordering .queue-row:hover{background:transparent}.queue-row.dragging{background:var(--surface);box-shadow:var(--shadow-md)}.queue-art{position:relative;width:44px;height:44px;flex:0 0 44px;border-radius:10px;overflow:hidden;background:var(--surface-2)}.queue-art img{width:100%;height:100%;object-fit:cover;display:block}.queue-now{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000073;color:#fff}.queue-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.queue-title{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-sub{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-3);white-space:nowrap;overflow:hidden}.queue-sub app-icon{color:var(--success)}.queue-dur{font-size:13px;color:var(--text-3);font-variant-numeric:tabular-nums}.queue-remove{width:36px;height:36px;flex:0 0 36px;opacity:0}@media(hover:none){.queue-remove{opacity:1}}.eq-modal{max-width:620px}.eq-off .eq-basic,.eq-off .eq-bands,.eq-off .eq-curve,.eq-off .eq-basic-row{opacity:.55}.eq-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.eq-toolbar .seg{background:var(--surface-2);box-shadow:none}.eq-toolbar .seg-btn{height:36px}.eq-preset{flex:1 1 180px}.eq-preset select{height:40px}.eq-basic{display:flex;flex-direction:column;gap:4px}.eq-basic-row{display:grid;grid-template-columns:110px minmax(0,1fr) 64px;align-items:center;gap:14px;min-height:52px}.eq-basic-row input[type=range]{width:100%;accent-color:var(--accent)}.eq-basic-name{display:flex;flex-direction:column;font-size:15px;font-weight:500}.eq-basic-name span{font-size:12px;font-weight:400;color:var(--text-4)}.eq-db{font-size:13px;color:var(--text-3);text-align:right;font-variant-numeric:tabular-nums}.eq-curve{width:100%;height:72px;border-radius:14px;background:var(--surface-2)}.eq-curve line{stroke:var(--border-strong);stroke-dasharray:4 4}.eq-curve path{fill:none;stroke:var(--accent);stroke-width:2.5;vector-effect:non-scaling-stroke}.eq-bands{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}.eq-band{display:flex;flex-direction:column;align-items:center;gap:8px}.eq-band input[type=range]{writing-mode:vertical-lr;direction:rtl;width:28px;height:150px;accent-color:var(--accent)}.eq-band-gain,.eq-band-freq{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.eq-band-freq{color:var(--text-4)}.eq-save{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.eq-save .field{flex:1 1 220px}@media(max-width:520px){.eq-basic-row{grid-template-columns:76px minmax(0,1fr) 56px;gap:10px}.eq-bands{gap:0}.eq-band input[type=range]{height:130px}}.add-notice{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.add-notice>span{flex:1 1 200px}.add-search{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px}.add-search-box{flex:1 1 360px;max-width:none}.add-search-end{display:flex;align-items:center;gap:12px}.album-card.no-open{cursor:default}.add-album{padding:20px}.add-album-head{display:flex;align-items:flex-end;gap:20px}.add-album-art{width:160px;height:160px;flex:0 0 160px;border-radius:16px;object-fit:cover;background:var(--surface-2);box-shadow:var(--shadow-sm)}.add-album-text{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.add-album-text h2{font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.add-album-text p{color:var(--text-3);font-size:14px}.add-album-text .btn{margin-top:8px}.add-tracks{list-style:none;margin:16px 0 0;padding:0}.add-track{display:grid;grid-template-columns:32px minmax(0,1fr) auto 40px;align-items:center;gap:12px;min-height:48px;padding:0 8px;border-radius:12px}.add-track:hover{background:var(--surface-hover)}.add-track-num{color:var(--text-4);font-size:14px;text-align:center}.add-track-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.add-track-dur{color:var(--text-4);font-size:13px;font-variant-numeric:tabular-nums}.add-rows{padding:0 8px 8px}.add-panel-banner{margin:0 14px 10px}.add-row{display:flex;align-items:center;gap:14px;min-height:64px;padding:8px;border-radius:14px}.add-row:hover{background:var(--surface-hover)}.add-row-art{width:48px;height:48px;flex:0 0 48px;border-radius:10px;object-fit:cover;background:var(--surface-2)}.add-row-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.add-row-title,.add-row-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-row-title{font-size:15px;font-weight:500}.add-row-sub{font-size:13px;color:var(--text-3)}.add-row-error{font-size:12px;color:var(--danger)}.add-row>.chip,.add-row>.btn,.add-row>.icon-btn{flex:0 0 auto}.add-progress{display:flex;align-items:center;gap:10px;margin-top:4px;font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.add-progress .meter{flex:1 1 auto;max-width:280px}@media(max-width:600px){.add-search-box{flex-basis:100%}.add-search-end{width:100%;justify-content:space-between}.add-album{padding:16px}.add-album-head{gap:14px}.add-album-art{width:96px;height:96px;flex-basis:96px;border-radius:12px}.add-album-text h2{font-size:19px}.add-track{grid-template-columns:24px minmax(0,1fr) auto 36px;gap:8px;padding:0 4px}.add-rows{padding:0 4px 8px}.add-row{gap:10px;padding:8px 6px}}.news-page{display:flex;flex-direction:column;padding:8px 32px 32px 16px;gap:16px;height:calc(100vh - 72px);overflow:hidden}@media(max-width:768px){.news-page{padding:8px 16px 24px;height:auto;min-height:calc(100vh - 72px);overflow:visible}}.news-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:8px;border-bottom:1px solid var(--border);flex-shrink:0}.news-title-area{min-width:0}.news-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}.news-search{height:40px;width:260px;max-width:100%;padding:0 10px 0 14px}.news-search input{font-size:14px}.news-search input::-webkit-search-cancel-button{display:none}@media(max-width:640px){.news-search{width:100%;order:10}}.view-switcher{display:inline-flex;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:2px}.view-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:0;background:transparent;color:var(--text-3);font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s ease}.view-btn:hover{color:var(--text)}.view-btn.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.mobile-pane-tabs{display:none;grid-template-columns:repeat(3,1fr);background:var(--surface-2);border-radius:8px;padding:2px;gap:4px;flex-shrink:0}@media(max-width:1023px){.mobile-pane-tabs{display:grid}}.mobile-tab-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;border:0;background:transparent;color:var(--text-3);font-size:13px;font-weight:500;border-radius:6px;cursor:pointer}.mobile-tab-btn.active{background:var(--surface);color:var(--accent);font-weight:600}.mobile-tab-btn:disabled{opacity:.4;cursor:not-allowed}.tab-badge{background:var(--accent);color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px}.news-3pane-container{display:flex;flex:1;min-height:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm)}.news-pane{display:flex;flex-direction:column;min-height:0;overflow-y:auto}.pane-feeds{width:260px;flex-shrink:0;background:var(--surface-2);border-right:1px solid var(--border);padding:12px;gap:16px}@media(max-width:1023px){.pane-feeds{width:100%}.pane-feeds.mobile-hidden{display:none!important}}.nav-filters{display:flex;flex-direction:column;gap:2px}.feed-nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;border:0;background:transparent;color:var(--text-2);font-size:13.5px;font-weight:500;text-align:left;cursor:pointer;transition:all .15s ease}.feed-nav-item:hover{background:var(--surface-hover);color:var(--text)}.feed-nav-item.active{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:var(--shadow-sm)}.feed-nav-item .nav-text{flex:1}.feed-nav-item .nav-count{font-size:12px;color:var(--text-3)}.feed-nav-item .nav-count.highlight{background:var(--accent);color:#fff;font-weight:600;padding:1px 6px;border-radius:10px}.unread-dot-icon{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.feeds-header-row{display:flex;align-items:center;justify-content:space-between;padding:12px 8px 4px;margin-top:8px;border-top:1px solid var(--border)}.feeds-heading{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}.btn-icon-tiny{background:transparent;border:0;color:var(--text-3);padding:4px;border-radius:4px;cursor:pointer}.btn-icon-tiny:hover{color:var(--text);background:var(--surface-hover)}.feeds-list{display:flex;flex-direction:column;gap:8px}.category-group{display:flex;flex-direction:column;gap:2px}.category-title{display:flex;align-items:center;gap:6px;padding:6px 8px;font-size:12px;font-weight:600;color:var(--text-3);cursor:pointer;border-radius:6px}.category-title:hover{color:var(--text)}.category-title.active{color:var(--accent)}.feed-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;font-size:13px;color:var(--text-2);cursor:pointer;transition:all .15s ease}.feed-item:hover{background:var(--surface-hover);color:var(--text)}.feed-item:hover .feed-del-btn{opacity:1}.feed-item.active{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:var(--shadow-sm)}.feed-item .feed-icon{width:16px;height:16px;border-radius:4px;flex-shrink:0;object-fit:cover}.feed-item .feed-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-item .feed-badge{font-size:11px;color:var(--text-3);background:var(--border);padding:1px 5px;border-radius:8px}.feed-item .feed-del-btn{opacity:0;border:0;background:transparent;color:var(--text-4);padding:2px;cursor:pointer;border-radius:4px}.feed-item .feed-del-btn:hover{color:var(--danger)}.pane-stream{width:380px;flex-shrink:0;border-right:1px solid var(--border);background:var(--surface)}@media(max-width:1023px){.pane-stream{width:100%}.pane-stream.mobile-hidden{display:none!important}}.stream-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:2}.stream-title{font-size:15px;font-weight:600;color:var(--text);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stream-meta{font-size:12px;color:var(--text-3)}.stream-list{display:flex;flex-direction:column}.stream-loading,.stream-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;text-align:center;color:var(--text-3);gap:12px}.stream-loading .empty-title,.stream-empty .empty-title{font-size:16px;font-weight:600;color:var(--text);margin:0}.stream-loading .empty-sub,.stream-empty .empty-sub{font-size:13px;color:var(--text-3);margin:0}.stream-card{position:relative;display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s ease}.stream-card:hover{background:var(--surface-hover)}.stream-card:hover .card-star-btn{opacity:1}.stream-card.active{background:var(--accent-soft);border-color:var(--accent-soft-hover)}.stream-card.active .card-headline{color:var(--accent)}.stream-card.unread .card-headline{font-weight:600}.stream-card .card-left{padding-top:6px}.stream-card .unread-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:transparent}.stream-card .unread-dot.visible{background:var(--accent)}.stream-card .card-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.stream-card .card-header-meta{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-3)}.stream-card .card-source{font-weight:500;color:var(--text-2)}.stream-card .meta-dot{color:var(--text-4)}.stream-card .card-date{color:var(--text-3)}.stream-card .card-headline{font-size:14px;font-weight:500;color:var(--text);margin:0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stream-card .card-snippet{font-size:12.5px;color:var(--text-3);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stream-card .card-thumb{width:60px;height:60px;flex-shrink:0;border-radius:8px;overflow:hidden;background:var(--surface-2)}.stream-card .card-thumb img{width:100%;height:100%;object-fit:cover}.stream-card .card-star-btn{opacity:0;position:absolute;bottom:12px;right:12px;border:0;background:var(--surface);color:var(--text-4);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm)}.stream-card .card-star-btn.starred{opacity:1;color:#eab308}.stream-card .card-star-btn:hover{color:#eab308;transform:scale(1.1)}.pane-reader{flex:1;background:var(--surface);position:relative}@media(max-width:1023px){.pane-reader{width:100%}.pane-reader.mobile-hidden{display:none!important}}.reader-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:32px;text-align:center;color:var(--text-3);gap:12px}.reader-placeholder .placeholder-title{font-size:20px;font-weight:600;color:var(--text);margin:0}.reader-placeholder .placeholder-sub{font-size:14px;line-height:1.6;color:var(--text-3);max-width:440px}.reader-placeholder .placeholder-sub kbd{display:inline-block;padding:2px 6px;font-size:11px;font-family:monospace;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;color:var(--text-2)}.reader-container{display:flex;flex-direction:column;max-width:760px;margin:0 auto;padding:24px 32px 64px;width:100%}.reader-toolbar{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;margin-bottom:24px;border-bottom:1px solid var(--border);gap:8px}.mobile-back-btn{display:none}@media(max-width:1023px){.mobile-back-btn{display:inline-flex}}.reader-toolbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.reader-action-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;transition:all .15s ease}.reader-action-btn:hover{background:var(--surface-hover);color:var(--text)}.reader-action-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.reader-action-btn.starred{color:#eab308}.reader-article-header{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.reader-meta-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-3)}.reader-feed-tag{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text);text-decoration:none}.reader-feed-tag:hover{color:var(--accent)}.reader-feed-icon{width:18px;height:18px;border-radius:4px}.reader-title{font-size:28px;font-weight:700;color:var(--text);line-height:1.3;margin:0;letter-spacing:-.01em}.reader-author{font-size:14px;color:var(--text-3);font-style:italic}.reader-lead-image{margin-bottom:24px;border-radius:12px;overflow:hidden}.reader-lead-image img{width:100%;max-height:420px;object-fit:cover;display:block}.reader-loading{display:flex;align-items:center;gap:12px;padding:32px;color:var(--text-3);font-size:14px}.reader-body{font-size:16px;line-height:1.75;color:var(--text)}.reader-body p{margin-bottom:1.3em}.reader-body h1,.reader-body h2,.reader-body h3,.reader-body h4{margin-top:1.8em;margin-bottom:.6em;font-weight:600;color:var(--text)}.reader-body img{max-width:100%;height:auto;border-radius:8px;margin:1.5em 0;display:block}.reader-body blockquote{border-left:3px solid var(--accent);padding-left:16px;margin:1.5em 0;color:var(--text-2);font-style:italic}.reader-body pre{background:var(--surface-2);padding:16px;border-radius:8px;overflow-x:auto;font-size:13.5px}.reader-body a{color:var(--link);text-decoration:underline}.reader-body a:hover{color:var(--link-hover)}.news-magazine-container{display:flex;flex-direction:column;gap:16px;flex:1 1 auto;min-height:0;overflow-y:auto;padding-bottom:32px}.magazine-filters-row{display:flex;align-items:center;gap:8px;overflow-x:auto;flex-shrink:0;min-height:44px;padding:4px 2px 8px;scrollbar-width:thin}.filter-chips{display:flex;align-items:center;gap:8px;flex-shrink:0}.chip-btn{height:36px;padding:0 16px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:13.5px;font-weight:500;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;flex-shrink:0;transition:all .15s ease}.chip-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-strong)}.chip-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;box-shadow:0 2px 8px #0000001f}.magazine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.magazine-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.magazine-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.magazine-card.unread .magazine-card-title{font-weight:700}.magazine-card .magazine-card-image{width:100%;height:180px;background:var(--surface-2);overflow:hidden}.magazine-card .magazine-card-image img{width:100%;height:100%;object-fit:cover}.magazine-card .magazine-card-body{display:flex;flex-direction:column;padding:16px;flex:1;gap:8px}.magazine-card .magazine-card-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-3)}.magazine-card .mini-feed-icon{width:14px;height:14px;border-radius:3px;vertical-align:middle}.magazine-card .magazine-card-title{font-size:16px;font-weight:600;color:var(--text);line-height:1.35;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.magazine-card .magazine-card-snippet{font-size:13px;color:var(--text-3);line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.magazine-card .magazine-card-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.magazine-card .magazine-card-footer button,.magazine-card .magazine-card-footer a{background:transparent;border:0;color:var(--text-4);padding:4px;cursor:pointer;border-radius:4px}.magazine-card .magazine-card-footer button:hover,.magazine-card .magazine-card-footer a:hover{color:var(--text)}.magazine-card .magazine-card-footer button.starred,.magazine-card .magazine-card-footer a.starred{color:#eab308}.reader-modal-overlay{position:fixed;inset:0;z-index:50;background:#0009;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px)}.reader-modal-dialog{background:var(--surface);border-radius:14px;width:100%;max-width:840px;height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.modal-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface-2)}.dialog-header-left{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-3)}.dialog-header-actions{display:flex;align-items:center;gap:8px}.modal-close-btn{background:transparent;border:0;color:var(--text-3);padding:4px;cursor:pointer;border-radius:6px}.modal-close-btn:hover{color:var(--text);background:var(--surface-hover)}.modal-dialog-body{flex:1;overflow-y:auto;padding:32px 40px}.modal-article-title{font-size:26px;font-weight:700;color:var(--text);margin:0 0 8px;line-height:1.3}.modal-article-author{font-size:14px;color:var(--text-3);margin-bottom:20px}.modal-lead-img{margin-bottom:24px;border-radius:10px;overflow:hidden}.modal-lead-img img{width:100%;max-height:380px;object-fit:cover}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:60;padding:16px}.modal-card{width:100%;max-width:480px;background:var(--surface);border-radius:12px;border:1px solid var(--border);box-shadow:var(--shadow-lg)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-title{font-size:18px;font-weight:600;color:var(--text);margin:0}.modal-sub{font-size:13px;color:var(--text-3);margin-bottom:16px;line-height:1.5}.modal-sub code{background:var(--surface-2);padding:2px 4px;border-radius:4px;font-size:12px}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-label{font-size:13px;font-weight:500;color:var(--text-2)}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:20px}.alert-box{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px}.alert-box.error{background:var(--danger-soft);color:var(--danger)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.spinner.sm{width:12px;height:12px;border-width:1.5px}@keyframes spin{to{transform:rotate(360deg)}}.spinning{animation:spin .8s linear infinite}
