:root{--primary:#007f89;--primary-dark:#005d64;--primary-light:#4db6ac;--accent:#ff4081;--bg-color:#121212;--surface-color:#1e1e1e;--surface-color-variant:#252525;--surface-border:#333;--text-primary:#ffffffde;--text-secondary:#fff9;--text-disabled:#ffffff61;--divider:#ffffff1f;--ripple:#ffffff14;--progress-track-bg:#ffffff1a;--code-bg:#0000004d;--success:#4caf50;--warning:#fb8c00;--error:#ff5252;--card-shadow:0 3px 1px -2px #0003, 0 2px 2px 0 #00000024, 0 1px 5px 0 #0000001f;--appbar-shadow:0 2px 4px -1px #0003, 0 4px 5px 0 #00000024, 0 1px 10px 0 #0000001f;--drawer-shadow:0 8px 10px -5px #0003, 0 16px 24px 2px #00000024, 0 6px 30px 5px #0000001f;--genre-0-border:#42a5f5;--genre-0-bg:#42a5f51f;--genre-1-border:#ff7043;--genre-1-bg:#ff70431f;--genre-2-border:#66bb6a;--genre-2-bg:#66bb6a1f;--genre-3-border:#ec407a;--genre-3-bg:#ec407a1f;--genre-4-border:#ab47bc;--genre-4-bg:#ab47bc1f;--genre-5-border:#fbc02d;--genre-5-bg:#fbc02d1f;--genre-6-border:#8d6e63;--genre-6-bg:#8d6e631f;--genre-7-border:#ffa726;--genre-7-bg:#ffa7261f;--genre-8-border:#26a69a;--genre-8-bg:#26a69a1f;--genre-9-border:#7e57c2;--genre-9-bg:#7e57c21f;--genre-10-border:#5c6bc0;--genre-10-bg:#5c6bc01f;--genre-11-border:#9ccc65;--genre-11-bg:#9ccc651f;--genre-default-border:#ffffff1f;--genre-default-bg:#1e1e1e}:root[data-theme=dark]{--bg-color:#121212;--surface-color:#1e1e1e;--surface-color-variant:#252525;--surface-border:#333;--text-primary:#ffffffde;--text-secondary:#fff9;--text-disabled:#ffffff61;--divider:#ffffff1f;--ripple:#ffffff14;--progress-track-bg:#ffffff1a;--code-bg:#0000004d;--card-shadow:0 3px 1px -2px #0003, 0 2px 2px 0 #00000024, 0 1px 5px 0 #0000001f}:root[data-theme=light]{--bg-color:#f5f5f5;--surface-color:#fff;--surface-color-variant:#f8f9fa;--surface-border:#e0e0e0;--text-primary:#000000de;--text-secondary:#0009;--text-disabled:#00000061;--divider:#0000001a;--ripple:#0000000d;--progress-track-bg:#00000014;--code-bg:#0000000d;--card-shadow:0 2px 4px #0000000f, 0 1px 2px #0000000a;--genre-0-border:#1976d2;--genre-0-bg:#1976d214;--genre-1-border:#e64a19;--genre-1-bg:#e64a1914;--genre-2-border:#388e3c;--genre-2-bg:#388e3c14;--genre-3-border:#d81b60;--genre-3-bg:#d81b6014;--genre-4-border:#8e24aa;--genre-4-bg:#8e24aa14;--genre-5-border:#f57f17;--genre-5-bg:#f57f1714;--genre-6-border:#6d4c41;--genre-6-bg:#6d4c4114;--genre-7-border:#e65100;--genre-7-bg:#e6510014;--genre-8-border:#00897b;--genre-8-bg:#00897b14;--genre-9-border:#5e35b1;--genre-9-bg:#5e35b114;--genre-10-border:#3949ab;--genre-10-bg:#3949ab14;--genre-11-border:#7cb342;--genre-11-bg:#7cb34214;--genre-default-border:#0000001f;--genre-default-bg:#fff}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]),:root[data-theme=system]{--bg-color:#f5f5f5;--surface-color:#fff;--surface-color-variant:#f8f9fa;--surface-border:#e0e0e0;--text-primary:#000000de;--text-secondary:#0009;--text-disabled:#00000061;--divider:#0000001a;--ripple:#0000000d;--progress-track-bg:#00000014;--code-bg:#0000000d;--card-shadow:0 2px 4px #0000000f, 0 1px 2px #0000000a;--genre-0-border:#1976d2;--genre-0-bg:#1976d214;--genre-1-border:#e64a19;--genre-1-bg:#e64a1914;--genre-2-border:#388e3c;--genre-2-bg:#388e3c14;--genre-3-border:#d81b60;--genre-3-bg:#d81b6014;--genre-4-border:#8e24aa;--genre-4-bg:#8e24aa14;--genre-5-border:#f57f17;--genre-5-bg:#f57f1714;--genre-6-border:#6d4c41;--genre-6-bg:#6d4c4114;--genre-7-border:#e65100;--genre-7-bg:#e6510014;--genre-8-border:#00897b;--genre-8-bg:#00897b14;--genre-9-border:#5e35b1;--genre-9-bg:#5e35b114;--genre-10-border:#3949ab;--genre-10-bg:#3949ab14;--genre-11-border:#7cb342;--genre-11-bg:#7cb34214;--genre-default-border:#0000001f;--genre-default-bg:#fff}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Meiryo,sans-serif;line-height:1.5;transition:background-color .25s,color .25s;overflow-x:hidden}.app-container{flex-direction:column;min-height:100vh;display:flex}.app-bar{background-color:var(--primary);color:#fff;z-index:100;height:56px;box-shadow:var(--appbar-shadow);-webkit-user-select:none;user-select:none;align-items:center;padding:0 16px;display:flex;position:sticky;top:0;left:0;right:0}@media (min-width:600px){.app-bar{height:64px;padding:0 24px}}.nav-icon-btn{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin-right:12px;transition:background-color .2s;display:inline-flex}.nav-icon-btn:hover{background-color:#ffffff1f}.nav-icon-btn:active{background-color:#ffffff3d}.nav-icon-btn svg{fill:currentColor;width:24px;height:24px}.app-title{letter-spacing:.0125em;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:1.25rem;font-weight:500;overflow:hidden}.app-bar-actions{align-items:center;gap:8px;display:flex}.icon-button{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .2s;display:inline-flex}.icon-button:hover{background-color:#ffffff1f}.icon-button svg{fill:currentColor;width:20px;height:20px}.icon-button.is-spinning svg{animation:1s linear infinite spin-refresh}@keyframes spin-refresh{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.drawer-overlay{z-index:200;opacity:0;visibility:hidden;background-color:#00000080;transition:opacity .3s cubic-bezier(.4,0,.2,1),visibility .3s cubic-bezier(.4,0,.2,1);position:fixed;inset:0}.nav-drawer{background-color:var(--surface-color);width:280px;max-width:80vw;color:var(--text-primary);z-index:210;box-shadow:var(--drawer-shadow);flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1),background-color .25s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.drawer-header{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);color:#fff;flex-direction:column;justify-content:flex-end;height:140px;padding:24px 20px;display:flex}.drawer-brand{letter-spacing:.05em;align-items:center;gap:8px;font-size:1.35rem;font-weight:700;display:flex}.drawer-subtitle{opacity:.8;margin-top:4px;font-size:.8rem}.drawer-list{flex:1;padding:8px 0;list-style:none;overflow-y:auto}.drawer-item{margin:4px 8px}.drawer-link{color:var(--text-primary);-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:8px;align-items:center;gap:16px;padding:12px 16px;font-size:.9375rem;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.drawer-link:hover{background-color:var(--ripple)}.drawer-link.active{color:var(--primary);background-color:#007f8926}:root[data-theme=dark] .drawer-link.active,:root:not([data-theme=light]) .drawer-link.active{color:var(--primary-light)}.drawer-link svg{fill:currentColor;opacity:.8;width:24px;height:24px}.drawer-link.active svg{opacity:1;fill:var(--primary)}:root[data-theme=dark] .drawer-link.active svg,:root:not([data-theme=light]) .drawer-link.active svg{fill:var(--primary-light)}.badge-dot{background-color:var(--accent);border-radius:50%;width:8px;height:8px;margin-left:auto;display:inline-block}.drawer-footer{border-top:1px solid var(--divider);color:var(--text-disabled);padding:12px 16px;font-size:.75rem}.main-content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:16px;transition:margin-left .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1)}@media (min-width:600px){.main-content{padding:24px}}@media (max-width:959px){.drawer-overlay.open{opacity:1;visibility:visible}.nav-drawer.open{transform:translate(0)}.main-content{width:100%!important;margin-left:auto!important}}@media (min-width:960px){.nav-drawer{height:calc(100vh - 64px);box-shadow:none;border-right:1px solid var(--divider);z-index:90;top:64px}.drawer-header{display:none}.drawer-overlay{display:none!important}.app-container.drawer-open .nav-drawer{transform:translate(0)}.app-container.drawer-open .main-content{width:calc(100% - 280px);max-width:1680px;margin-left:280px}.app-container:not(.drawer-open) .nav-drawer{transform:translate(-100%)}.app-container:not(.drawer-open) .main-content{width:100%;max-width:1400px;margin-left:auto}}.tabs-container{border-bottom:1px solid var(--divider);scrollbar-width:none;margin-bottom:20px;display:flex;overflow-x:auto}.tabs-container::-webkit-scrollbar{display:none}.tab-button{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:12px 20px;font-size:.9375rem;font-weight:500;transition:color .2s;position:relative}.tab-button:hover{color:var(--text-primary)}.tab-button.active{color:var(--primary)}:root[data-theme=dark] .tab-button.active,:root:not([data-theme=light]) .tab-button.active{color:var(--primary-light)}.tab-button.active:after{content:"";background-color:var(--primary);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}:root[data-theme=dark] .tab-button.active:after,:root:not([data-theme=light]) .tab-button.active:after{background-color:var(--primary-light)}.onair-grid{grid-template-columns:1fr;gap:16px;display:grid}@media (min-width:680px){.onair-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1080px){.onair-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1440px){.onair-grid{grid-template-columns:repeat(4,1fr)}}.onair-card{background-color:var(--surface-color);border:1px solid var(--surface-border);box-shadow:var(--card-shadow);cursor:pointer;border-radius:8px;flex-direction:column;padding:16px;transition:transform .2s,box-shadow .2s,border-color .2s,background-color .25s;display:flex;position:relative;overflow:hidden}.onair-card:hover{border-color:#007f8966;transform:translateY(-2px);box-shadow:0 6px 16px #0000002e}.card-header{border-bottom:1px solid var(--divider);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;display:flex}.channel-info{align-items:center;gap:8px;min-width:0;display:flex}.channel-type-badge{background-color:var(--surface-color-variant);color:var(--text-primary);border:1px solid var(--divider);border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.6875rem;font-weight:700}.channel-type-badge.GR{color:#1976d2;background-color:#2196f326;border-color:#2196f34d}:root[data-theme=dark] .channel-type-badge.GR,:root:not([data-theme=light]) .channel-type-badge.GR{color:#64b5f6}.channel-type-badge.BS{color:#388e3c;background-color:#4caf5026;border-color:#4caf504d}:root[data-theme=dark] .channel-type-badge.BS,:root:not([data-theme=light]) .channel-type-badge.BS{color:#81c784}.channel-type-badge.CS{color:#f57c00;background-color:#ff980026;border-color:#ff98004d}:root[data-theme=dark] .channel-type-badge.CS,:root:not([data-theme=light]) .channel-type-badge.CS{color:#ffb74d}.channel-name{white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:700;overflow:hidden}.channel-key-badge{background-color:var(--surface-color-variant);color:var(--text-secondary);border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.75rem;font-weight:600}.card-time{color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:.8125rem}.card-title-row{align-items:flex-start;gap:6px;margin-bottom:8px;display:flex}.genre-tag{color:var(--primary);white-space:nowrap;background-color:#007f891f;border-radius:4px;flex-shrink:0;margin-top:2px;padding:2px 6px;font-size:.6875rem}:root[data-theme=dark] .genre-tag,:root:not([data-theme=light]) .genre-tag{color:#80cbc4;background-color:#007f8940}.card-program-title{-webkit-line-clamp:2;color:var(--text-primary);-webkit-box-orient:vertical;font-size:1rem;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.card-program-desc{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;margin-bottom:12px;font-size:.8125rem;line-height:1.45;display:-webkit-box;overflow:hidden}.progress-container{margin-bottom:12px}.progress-header{color:var(--text-disabled);justify-content:space-between;margin-bottom:4px;font-size:.6875rem;display:flex}.progress-track{background-color:var(--progress-track-bg);border-radius:3px;height:6px;position:relative;overflow:hidden}.progress-fill{background-color:var(--primary);border-radius:3px;height:100%;transition:width .4s}.card-next-program{color:var(--text-secondary);border-top:1px dashed var(--divider);align-items:center;gap:6px;padding-top:8px;font-size:.75rem;display:flex}.next-label{color:var(--text-disabled);flex-shrink:0;font-weight:700}.next-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.card-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.btn-small{border:1px solid var(--surface-border);background-color:var(--surface-color-variant);color:var(--text-primary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:500;transition:background-color .2s;display:inline-flex}.btn-small:hover{background-color:var(--ripple)}.btn-small.primary{background-color:var(--primary);border-color:var(--primary);color:#fff}.btn-small.primary:hover{background-color:var(--primary-light)}.btn:disabled,.btn-small:disabled,.guide-chip:disabled,.icon-button:disabled{opacity:.38!important;cursor:not-allowed!important;pointer-events:none!important}.settings-container{flex-direction:column;gap:20px;max-width:860px;margin:0 auto;display:flex}.settings-card{background-color:var(--surface-color);border:1px solid var(--surface-border);box-shadow:var(--card-shadow);border-radius:8px;padding:20px;transition:background-color .25s,border-color .25s}.settings-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.settings-card-title{align-items:center;gap:8px;font-size:1.125rem;font-weight:600;display:flex}.status-badge{border-radius:12px;padding:2px 8px;font-size:.75rem;font-weight:600}.status-badge.ok{color:#2e7d32;background-color:#4caf5026}:root[data-theme=dark] .status-badge.ok,:root:not([data-theme=light]) .status-badge.ok{color:#81c784;background-color:#4caf5033}.status-badge.warning{color:#e65100;background-color:#ff980026}:root[data-theme=dark] .status-badge.warning,:root:not([data-theme=light]) .status-badge.warning{color:#ffb74d;background-color:#ff980033}.status-badge:not(.ok):not(.warning){background-color:var(--ripple);color:var(--text-secondary)}.settings-card-desc{color:var(--text-secondary);margin-bottom:16px;font-size:.875rem;line-height:1.6}.theme-options-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:12px;display:grid}.theme-option-card{border:2px solid var(--surface-border);cursor:pointer;background-color:var(--surface-color-variant);-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;transition:border-color .2s,background-color .2s,transform .15s;display:flex}.theme-option-card:hover{border-color:var(--primary-light);transform:translateY(-1px)}.theme-option-card.selected{border-color:var(--primary);background-color:#007f8914}.theme-option-icon{width:24px;height:24px;fill:var(--text-secondary);flex-shrink:0}.theme-option-card.selected .theme-option-icon{fill:var(--primary)}.theme-option-title{color:var(--text-primary);font-size:.9375rem;font-weight:600}.form-group{margin-bottom:16px}.form-label{color:var(--text-secondary);margin-bottom:6px;font-size:.8125rem;font-weight:600;display:block}.form-select,.form-input{background-color:var(--surface-color-variant);border:1px solid var(--surface-border);width:100%;color:var(--text-primary);border-radius:4px;outline:none;padding:10px 12px;font-size:.875rem;transition:border-color .2s}.form-select:focus,.form-input:focus{border-color:var(--primary)}.checkbox-group{flex-wrap:wrap;gap:16px;margin-top:8px;display:flex}.checkbox-label{cursor:pointer;align-items:center;gap:8px;font-size:.875rem;display:flex}.drop-zone{border:2px dashed var(--surface-border);text-align:center;background-color:var(--surface-color-variant);cursor:pointer;border-radius:8px;padding:24px;transition:border-color .2s,background-color .2s}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--primary-light);background-color:#007f8914}.btn{cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:.875rem;font-weight:500;transition:background-color .2s,opacity .2s;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-light)}.btn-secondary{background-color:var(--surface-color-variant);border:1px solid var(--surface-border);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--ripple)}.btn:disabled{opacity:.4;cursor:not-allowed}.scan-progress-box{background-color:var(--surface-color-variant);border:1px solid var(--surface-border);border-radius:8px;margin-top:16px;padding:16px}.scan-overall-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.scan-overall-title{color:var(--text-primary);align-items:center;gap:8px;min-width:0;font-size:.875rem;font-weight:600;display:flex}.scan-overall-count{color:var(--text-secondary);background-color:var(--progress-track-bg);white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:.75rem;font-weight:500}.scan-overall-pct{font-variant-numeric:tabular-nums;color:var(--primary-light);flex-shrink:0;margin-left:8px;font-size:.9375rem;font-weight:700}:root[data-theme=light] .scan-overall-pct{color:var(--primary)}.scan-dual-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;margin-bottom:12px;display:grid}@media (max-width:600px){.scan-dual-grid{grid-template-columns:1fr}}.scan-lane-card{background-color:var(--surface-color);border:1px solid var(--surface-border);border-radius:6px;flex-direction:column;gap:8px;padding:12px;transition:border-color .2s;display:flex;box-shadow:0 1px 3px #0000001a}.scan-lane-card.gr{border-left:4px solid #1e88e5}.scan-lane-card.sat{border-left:4px solid #43a047}.scan-lane-header{justify-content:space-between;align-items:center;display:flex}.scan-lane-badge{border:1px solid var(--divider);letter-spacing:.02em;border-radius:4px;padding:2px 6px;font-size:.6875rem;font-weight:700}.scan-lane-badge.gr,.scan-lane-badge.GR{color:#1976d2;background-color:#2196f326;border-color:#2196f34d}:root[data-theme=dark] .scan-lane-badge.gr,:root[data-theme=dark] .scan-lane-badge.GR,:root:not([data-theme=light]) .scan-lane-badge.gr,:root:not([data-theme=light]) .scan-lane-badge.GR{color:#64b5f6}.scan-lane-badge.sat,.scan-lane-badge.BS{color:#388e3c;background-color:#4caf5026;border-color:#4caf504d}:root[data-theme=dark] .scan-lane-badge.sat,:root[data-theme=dark] .scan-lane-badge.BS,:root:not([data-theme=light]) .scan-lane-badge.sat,:root:not([data-theme=light]) .scan-lane-badge.BS{color:#81c784}.scan-lane-badge.CS{color:#f57c00;background-color:#ff980026;border-color:#ff98004d}:root[data-theme=dark] .scan-lane-badge.CS,:root:not([data-theme=light]) .scan-lane-badge.CS{color:#ffb74d}.scan-lane-found{color:var(--text-secondary);font-size:.75rem;font-weight:600}.scan-lane-body{justify-content:space-between;align-items:center;min-height:28px;display:flex}.scan-lane-channel{color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:1.0625rem;font-weight:700;overflow:hidden}.scan-lane-status{flex-shrink:0;align-items:center;font-size:.75rem;display:flex}.scan-status-pill{border-radius:4px;align-items:center;padding:1px 6px;font-size:.6875rem;font-weight:600;display:inline-flex}.scan-status-pill.locked{color:var(--success);background-color:#4caf5026}.scan-status-pill.unlocked{color:var(--text-disabled);background-color:#ffffff0f}:root[data-theme=light] .scan-status-pill.unlocked{background-color:#0000000d}.scan-status-pill.tuning{color:#1976d2;background-color:#2196f326}:root[data-theme=dark] .scan-status-pill.tuning,:root:not([data-theme=light]) .scan-status-pill.tuning{color:#64b5f6}.scan-status-pill.done{color:var(--success);background-color:#4caf5033}.scan-wave-pill{border-radius:3px;align-items:center;padding:1px 5px;font-size:.625rem;font-weight:700;line-height:1.2;display:inline-flex}.scan-wave-pill.BS{color:#388e3c;background-color:#4caf5033;border:1px solid #4caf5066}:root[data-theme=dark] .scan-wave-pill.BS,:root:not([data-theme=light]) .scan-wave-pill.BS{color:#81c784}.scan-wave-pill.CS{color:#f57c00;background-color:#ff980033;border:1px solid #ff980066}:root[data-theme=dark] .scan-wave-pill.CS,:root:not([data-theme=light]) .scan-wave-pill.CS{color:#ffb74d}.scan-lane-progress{align-items:center;gap:8px;display:flex}.scan-lane-mini-track{background-color:var(--progress-track-bg);border-radius:3px;flex:1;height:5px;overflow:hidden}.scan-lane-mini-fill{border-radius:3px;height:100%;transition:width .3s}.scan-lane-mini-fill.gr{background-color:#1e88e5}.scan-lane-mini-fill.sat{background-color:#43a047}.scan-lane-mini-text{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.6875rem}.scan-log{max-height:160px;color:var(--text-secondary);background-color:var(--code-bg);border-radius:4px;margin-top:12px;padding:8px 12px;font-family:monospace;font-size:.75rem;line-height:1.6;overflow-y:auto}.about-container{flex-direction:column;gap:20px;max-width:800px;margin:0 auto;display:flex}.about-card{background-color:var(--surface-color);border:1px solid var(--surface-border);box-shadow:var(--card-shadow);border-radius:8px;padding:24px;transition:background-color .25s}.about-card-title{border-bottom:1px solid var(--divider);align-items:center;gap:8px;margin-bottom:16px;padding-bottom:8px;font-size:1.125rem;font-weight:600;display:flex}.about-kv-table{border-collapse:collapse;width:100%}.about-kv-table th,.about-kv-table td{border-bottom:1px solid var(--divider);text-align:left;padding:10px 8px;font-size:.875rem}.about-kv-table th{color:var(--text-secondary);width:40%;font-weight:500}.about-kv-table td{color:var(--text-primary)}.about-status-pill{border-radius:12px;align-items:center;gap:6px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.about-status-pill.supported{color:#2e7d32;background-color:#4caf5026}:root[data-theme=dark] .about-status-pill.supported,:root:not([data-theme=light]) .about-status-pill.supported{color:#81c784}.about-status-pill.unsupported{color:#c62828;background-color:#ff525226}:root[data-theme=dark] .about-status-pill.unsupported,:root:not([data-theme=light]) .about-status-pill.unsupported{color:#ff8a80}.dialog-overlay{z-index:300;opacity:0;visibility:hidden;background-color:#000000a6;justify-content:center;align-items:center;padding:16px;transition:opacity .2s,visibility .2s;display:flex;position:fixed;inset:0}.dialog-overlay.open{opacity:1;visibility:visible}.dialog-box{background-color:var(--surface-color);color:var(--text-primary);border-radius:8px;flex-direction:column;width:100%;max-width:600px;max-height:90vh;transition:transform .2s cubic-bezier(.4,0,.2,1),background-color .25s;display:flex;overflow:hidden;transform:scale(.95);box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.dialog-overlay.open .dialog-box{transform:scale(1)}.dialog-header{border-bottom:1px solid var(--divider);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.dialog-title{font-size:1.125rem;font-weight:600}.dialog-close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.dialog-close-btn:hover{background-color:var(--ripple);color:var(--text-primary)}.dialog-body{flex:1;padding:20px;overflow-y:auto}.dialog-footer{border-top:1px solid var(--divider);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.dialog-footer.program-dialog-footer{justify-content:space-between}.channel-toolbar{background-color:var(--surface-color-variant);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;display:flex}.channel-btn-group{flex-wrap:wrap;gap:8px;display:flex}.channel-table-container{border:1px solid var(--surface-border);background-color:var(--surface-color-variant);border-radius:6px;max-height:420px;overflow-y:auto}.channel-table{border-collapse:collapse;text-align:left;width:100%;font-size:.8125rem}.channel-table th{background-color:var(--surface-color);color:var(--text-secondary);border-bottom:1px solid var(--divider);white-space:nowrap;z-index:10;padding:10px 12px;font-weight:600;position:sticky;top:0}.channel-table td{border-bottom:1px solid var(--divider);color:var(--text-primary);vertical-align:middle;padding:8px 12px}.channel-table tr:hover td{background-color:var(--ripple)}.channel-table tr.sub-row td{opacity:.75}.channel-table tr.sub-row:hover td{opacity:1}.channel-sub-badge{color:var(--text-secondary);background-color:#ffffff14;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:.6875rem}.channel-primary-badge{color:#81c784;background-color:#4caf5026;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:.6875rem}.watch-container{width:100%;max-width:1100px;margin:0 auto}.watch-top-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.watch-back-btn{background:var(--surface-color);border:1px solid var(--surface-border);color:var(--text-primary);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:6px 12px;font-size:.8125rem;transition:background-color .15s,border-color .15s;display:inline-flex}.watch-back-btn:hover{background-color:var(--ripple);border-color:var(--primary-light)}.watch-channel-badge-row{align-items:center;gap:8px;display:flex}.watch-player-wrapper{background:#000;border-radius:8px;width:100%;position:relative;overflow:hidden;box-shadow:0 4px 20px #00000059}.video-player-container{aspect-ratio:16/9;-webkit-user-select:none;user-select:none;background-color:#000;outline:none;width:100%;position:relative;overflow:hidden}.video-player-media{object-fit:contain;width:100%;height:100%;display:block}.video-subtitle-overlay{pointer-events:none;z-index:10;justify-content:center;align-items:flex-end;padding-bottom:56px;display:flex;position:absolute;inset:0}.video-subtitle-text{color:#ffeb3b;letter-spacing:.05em;text-align:center;background-color:#000000c7;border:1px solid #ffffff26;border-radius:4px;max-width:86%;padding:6px 14px;font-family:Hiragino Sans,Meiryo,sans-serif;font-size:clamp(14px,2.2vw,22px);font-weight:700;line-height:1.4;box-shadow:0 2px 8px #00000080}.video-controls-bar{z-index:20;opacity:1;visibility:visible;background:linear-gradient(#0000 0%,#00000073 25%,#000000e6 100%);justify-content:space-between;align-items:center;height:48px;padding:0 12px;transition:opacity .25s,visibility .25s;display:flex;position:absolute;bottom:0;left:0;right:0}.video-controls-bar.hidden{opacity:0;visibility:hidden}.video-controls-group{align-items:center;gap:8px;display:flex}.player-btn{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:5px;padding:6px 8px;font-size:.75rem;font-weight:600;transition:background-color .15s,color .15s;display:inline-flex}.player-btn:hover{background-color:#ffffff26}.player-btn.active{color:#4db6ac;background-color:#007f8947}.player-btn.sub{color:#ffb74d}.player-live-badge{color:#ff5252;letter-spacing:.05em;background-color:#ff525229;border-radius:4px;align-items:center;gap:4px;margin-right:4px;padding:2px 6px;font-size:.6875rem;font-weight:700;display:flex}.live-dot{background-color:#ff5252;border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite live-pulse}@keyframes live-pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.player-volume-slider{width:65px;accent-color:var(--primary);cursor:pointer}.watch-details-section{margin-top:16px}.watch-program-header{background-color:var(--surface-color);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:12px;padding:18px}.watch-time-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.watch-live-tag{color:var(--error);font-size:.75rem;font-weight:700}.watch-time-text{color:var(--text-secondary);font-size:.8125rem}.watch-program-title{color:var(--text-primary);font-size:1.25rem;font-weight:700;line-height:1.4}.watch-program-desc{color:var(--text-secondary);white-space:pre-line;font-size:.875rem;line-height:1.6}.watch-extended-info{background-color:var(--surface-color);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:12px;padding:14px 18px;font-size:.8125rem}.extended-item{margin-bottom:6px;line-height:1.5}.extended-key{color:var(--primary-light);margin-right:8px;font-weight:700}.extended-val{color:var(--text-primary)}.watch-next-card{background-color:var(--surface-color);border:1px solid var(--surface-border);border-radius:8px;align-items:center;gap:10px;margin-bottom:12px;padding:12px 18px;font-size:.8125rem;display:flex}.watch-channel-selector-box{background-color:var(--surface-color);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:12px;padding:14px 18px}.watch-channel-chips{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.channel-chip{border:1px solid var(--surface-border);background:var(--surface-color-variant);color:var(--text-primary);cursor:pointer;white-space:nowrap;border-radius:16px;align-items:center;gap:6px;padding:6px 12px;font-size:.8125rem;transition:border-color .15s,background-color .15s;display:inline-flex}.channel-chip:hover{border-color:var(--primary-light)}.channel-chip.current{border-color:var(--primary);background-color:#007f892e;font-weight:700}.watch-signal-card{background-color:var(--surface-color);border:1px solid var(--surface-border);border-radius:8px;padding:14px 18px}.watch-signal-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.signal-item{background-color:var(--surface-color-variant);border-radius:6px;padding:10px 12px}.signal-label{color:var(--text-secondary);font-size:.6875rem;display:block}.signal-val{color:var(--text-primary);margin-top:2px;font-size:.875rem;font-weight:700;display:block}.signal-val.ok{color:var(--success)}.toggle-control-row{justify-content:space-between;align-items:center;gap:20px;display:flex}.toggle-label-group{flex:1}.toggle-main-label{color:var(--text-primary);font-size:.9375rem;font-weight:600}.toggle-switch{cursor:pointer;flex-shrink:0;width:50px;height:28px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{background-color:var(--surface-border);border-radius:28px;transition:background-color .25s;position:absolute;inset:0}.toggle-slider:before{content:"";background-color:#fff;border-radius:50%;width:22px;height:22px;transition:transform .25s cubic-bezier(.4,0,.2,1);position:absolute;bottom:3px;left:3px;box-shadow:0 2px 5px #0000004d}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.toggle-switch input:focus-visible+.toggle-slider{outline:2px solid var(--primary-light);outline-offset:2px}.main-content:has(.guide-view){max-width:100%;padding:16px 20px}.guide-view{flex-direction:column;gap:14px;width:100%;min-width:0;display:flex}.guide-toolbar{flex-direction:column;gap:12px;display:flex}.guide-nav-bar{background-color:var(--surface-color);border:1px solid var(--surface-border);box-shadow:var(--card-shadow);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.guide-nav-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.guide-select{border:1px solid var(--surface-border);background-color:var(--surface-color-variant);color:var(--text-primary);cursor:pointer;border-radius:4px;outline:none;padding:6px 12px;font-size:.8125rem;font-weight:500;transition:border-color .2s}.guide-select:focus{border-color:var(--primary)}.guide-btn-group{align-items:center;gap:4px;display:flex}.guide-time-chips{align-items:center;gap:4px;margin-left:4px;display:flex}.guide-chip{border:1px solid var(--surface-border);background-color:var(--surface-color-variant);color:var(--text-secondary);cursor:pointer;border-radius:4px;padding:4px 8px;font-size:.75rem;font-weight:500;transition:all .2s}.guide-chip:hover{background-color:var(--ripple);color:var(--text-primary);border-color:var(--primary-light)}.guide-meta-group{flex-wrap:wrap;align-items:center;gap:12px;font-size:.8125rem;display:flex}.guide-range-text{color:var(--text-primary);font-weight:600}.guide-fetched-text{color:var(--text-secondary);font-size:.75rem}.guide-status-pill{color:var(--primary-light);background-color:#007f8926;border-radius:12px;align-items:center;gap:6px;padding:3px 10px;font-size:.75rem;font-weight:500;display:inline-flex}.guide-status-dot{background-color:var(--primary-light);border-radius:50%;width:6px;height:6px;animation:1.2s infinite pulse-dot}@keyframes pulse-dot{0%{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}to{opacity:.5;transform:scale(.8)}}.guide-grid-wrapper{background-color:var(--surface-color);border:1px solid var(--surface-border);box-shadow:var(--card-shadow);border-radius:8px;position:relative;overflow:hidden}.guide-grid-scroll{scrollbar-width:thin;scrollbar-color:var(--surface-border) transparent;-webkit-overflow-scrolling:touch;cursor:grab;min-height:480px;max-height:calc(100vh - 210px);position:relative;overflow:auto}.guide-grid-scroll.is-dragging,.guide-grid-scroll.is-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}body.guide-dragging-active{-webkit-user-select:none!important;user-select:none!important;cursor:grabbing!important}.guide-grid-scroll::-webkit-scrollbar{width:8px;height:8px}.guide-grid-scroll::-webkit-scrollbar-thumb{background-color:var(--surface-border);border-radius:4px}.guide-grid-table{-webkit-user-select:none;user-select:none;flex-direction:column;min-width:-moz-fit-content;min-width:fit-content;display:flex;position:relative}.guide-header-row{z-index:100;background-color:var(--surface-color);border-bottom:2px solid var(--divider);min-width:-moz-fit-content;min-width:fit-content;display:flex;position:sticky;top:0;box-shadow:0 2px 6px #0000001f}.guide-corner-cell{z-index:110;background-color:var(--surface-color);border-right:1px solid var(--divider);width:56px;min-width:56px;color:var(--text-secondary);flex:0 0 56px;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex;position:sticky;left:0}.guide-header-channels{display:flex}.guide-channel-header-cell{border-right:1px solid var(--divider);box-sizing:border-box;background-color:var(--surface-color);flex-direction:column;flex:0 0 200px;gap:4px;width:200px;min-width:200px;padding:8px 10px;display:flex}.guide-channel-header-top{align-items:center;gap:6px;display:flex}.guide-channel-header-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:700;overflow:hidden}.guide-body-row{min-width:-moz-fit-content;min-width:fit-content;display:flex;position:relative}.guide-time-column{z-index:50;background-color:var(--surface-color-variant);border-right:1px solid var(--divider);box-sizing:border-box;-webkit-user-select:none;user-select:none;flex:0 0 56px;width:56px;min-width:56px;position:sticky;left:0}.guide-hour-cell{box-sizing:border-box;border-bottom:1px solid var(--divider);flex-direction:column;align-items:center;padding-top:4px;display:flex;position:absolute;left:0;right:0}.guide-hour-num{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:1.125rem;font-weight:700;line-height:1}.guide-hour-min{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:.625rem;font-weight:500}.guide-half-hour-line{border-bottom:1px dashed var(--divider);opacity:.5;position:absolute;top:50%;left:10px;right:10px}.guide-channels-container{display:flex;position:relative}.guide-channel-column{border-right:1px solid var(--divider);box-sizing:border-box;background-image:repeating-linear-gradient(to bottom, var(--divider), var(--divider) 1px, transparent 1px, transparent 150px);flex:0 0 200px;width:200px;min-width:200px;position:relative}.guide-program-card{box-sizing:border-box;border-left:3.5px solid var(--genre-default-border);background-color:var(--genre-default-bg);color:var(--text-primary);cursor:pointer;border-radius:4px;flex-direction:column;padding:4px 6px;transition:transform .15s,box-shadow .15s;display:flex;position:absolute;left:2px;right:2px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.guide-program-card:hover{transform:translateY(-1px);box-shadow:0 4px 14px #00000040;z-index:10!important}.guide-program-card.is-onair{outline:2px solid var(--primary);outline-offset:-1px}.guide-program-card[data-genre="0"]{border-left-color:var(--genre-0-border);background-color:var(--genre-0-bg)}.guide-program-card[data-genre="1"]{border-left-color:var(--genre-1-border);background-color:var(--genre-1-bg)}.guide-program-card[data-genre="2"]{border-left-color:var(--genre-2-border);background-color:var(--genre-2-bg)}.guide-program-card[data-genre="3"]{border-left-color:var(--genre-3-border);background-color:var(--genre-3-bg)}.guide-program-card[data-genre="4"]{border-left-color:var(--genre-4-border);background-color:var(--genre-4-bg)}.guide-program-card[data-genre="5"]{border-left-color:var(--genre-5-border);background-color:var(--genre-5-bg)}.guide-program-card[data-genre="6"]{border-left-color:var(--genre-6-border);background-color:var(--genre-6-bg)}.guide-program-card[data-genre="7"]{border-left-color:var(--genre-7-border);background-color:var(--genre-7-bg)}.guide-program-card[data-genre="8"]{border-left-color:var(--genre-8-border);background-color:var(--genre-8-bg)}.guide-program-card[data-genre="9"]{border-left-color:var(--genre-9-border);background-color:var(--genre-9-bg)}.guide-program-card[data-genre="10"]{border-left-color:var(--genre-10-border);background-color:var(--genre-10-bg)}.guide-program-card[data-genre="11"]{border-left-color:var(--genre-11-border);background-color:var(--genre-11-bg)}.guide-program-card[data-genre="15"]{border-left-color:var(--genre-default-border);background-color:var(--genre-default-bg)}.guide-card-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:4px;margin-bottom:2px;display:flex}.guide-card-time{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.6875rem;font-weight:600}.guide-onair-tag{color:#fff;white-space:nowrap;background-color:#e53935;border-radius:3px;align-items:center;gap:3px;padding:1px 4px;font-size:.625rem;font-weight:700;display:inline-flex}.guide-card-title{color:var(--text-primary);-webkit-line-clamp:2;word-break:break-all;-webkit-box-orient:vertical;font-size:.8125rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.guide-card-desc{color:var(--text-secondary);-webkit-line-clamp:3;word-break:break-all;-webkit-box-orient:vertical;margin-top:3px;font-size:.75rem;line-height:1.3;display:-webkit-box;overflow:hidden}.guide-card-genre{margin-top:auto;padding-top:2px}.guide-genre-badge{color:var(--text-secondary);background-color:#00000014;border-radius:3px;padding:1px 5px;font-size:.625rem;font-weight:600;display:inline-block}:root[data-theme=dark] .guide-genre-badge,:root:not([data-theme=light]) .guide-genre-badge{background-color:#ffffff1a}.guide-program-card.compact{padding:1px 4px}.guide-program-card.compact .guide-card-header{margin-bottom:0}.guide-program-card.compact .guide-card-title{-webkit-line-clamp:1;font-size:.6875rem}.guide-now-line{z-index:60;pointer-events:none;background-color:#e53935;height:2px;position:absolute;left:0;box-shadow:0 0 4px #e53935b3}.guide-now-time-badge{color:#fff;text-align:center;z-index:70;background-color:#e53935;border-radius:3px;padding:1px 2px;font-size:.6875rem;font-weight:700;position:absolute;left:2px;right:2px;transform:translateY(-50%);box-shadow:0 2px 4px #0000004d}.guide-empty-column-slot{color:var(--text-disabled);text-align:center;justify-content:center;align-items:center;padding:20px;font-size:.8125rem;display:flex;position:absolute;inset:0}.guide-no-programs-banner{color:#fb8c00;background-color:#ff98001f;border:1px solid #ff98004d;border-radius:6px;margin-bottom:12px;padding:10px 16px;font-size:.875rem}.guide-empty-state{text-align:center;background-color:var(--surface-color);border:1px solid var(--surface-border);box-shadow:var(--card-shadow);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;margin-top:8px;padding:48px 24px;display:flex}.guide-empty-icon{color:var(--text-secondary);margin-bottom:16px}.guide-empty-state h3{margin:0 0 8px;font-size:1.125rem;font-weight:600}.guide-empty-state p{color:var(--text-secondary);max-width:480px;margin:0 0 20px;font-size:.875rem}@media (max-width:600px){.guide-channel-header-cell,.guide-channel-column{flex:0 0 170px;width:170px;min-width:170px}}
