:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans JP,sans-serif;line-height:1.5;--bg: #0f172a;--bg-soft: #1e293b;--bg-deep: #111827;--border: #334155;--border-soft: #1e293b;--text: #e2e8f0;--text-strong: #f1f5f9;--text-muted: #94a3b8;--text-faint: #64748b;--accent: #2563eb;--accent-hover: #1d4ed8;--link: #38bdf8;--header-bg: rgba(15, 23, 42, .9);--player-bg: rgba(15, 23, 42, .95);color-scheme:dark;color:var(--text);background-color:var(--bg)}:root[data-theme=light]{--bg: #eef1f5;--bg-soft: #e6eaef;--bg-deep: #dfe4eb;--border: #c2ccd6;--border-soft: #d5dce4;--text: #1f2937;--text-strong: #111827;--text-muted: #525c68;--text-faint: #6b7684;--accent: #2563eb;--accent-hover: #1d4ed8;--link: #026aa2;--header-bg: rgba(230, 234, 239, .9);--player-bg: rgba(230, 234, 239, .95);color-scheme:light}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,var(--bg) 0%,var(--bg-soft) 100%)}a{color:var(--link)}button{font-family:inherit;cursor:pointer}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.25rem;border-bottom:1px solid var(--border-soft);background:var(--header-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20;gap:1rem}.app-brand{margin:0;font-size:1.15rem;font-weight:700;color:var(--text-strong);letter-spacing:.02em;white-space:nowrap}.app-current-source{flex:1;text-align:center;color:var(--text-muted);font-size:.875rem;font-weight:500}.app-header-actions{display:flex;align-items:center;gap:.75rem}.theme-segment{display:inline-flex;align-items:center;gap:0;background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;padding:.15rem}.theme-segment-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--text-muted);border-radius:999px;padding:0}.theme-segment-btn svg{width:14px;height:14px}.theme-segment-btn:hover{color:var(--text);background:var(--border)}.theme-segment-btn-active{background:var(--accent);color:#fff}.theme-segment-btn-active:hover{background:var(--accent-hover);color:#fff}.app-user-menu{position:relative}.user-menu-button{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:none;color:var(--text);padding:.25rem;border-radius:999px}.user-menu-button:hover{background:var(--bg-soft)}.user-dropdown{position:absolute;right:0;top:calc(100% + .4rem);min-width:160px;background:var(--bg-soft);border:1px solid var(--border);border-radius:.5rem;padding:.35rem;box-shadow:0 10px 30px #0006;z-index:30}.dropdown-item{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text);padding:.5rem .75rem;border-radius:.35rem;font-size:.875rem;white-space:nowrap}.dropdown-item:hover{background:var(--border)}.app-body{flex:1;display:flex;min-height:0}.app-sidebar{width:220px;flex-shrink:0;border-right:1px solid var(--border-soft);background:var(--bg-deep);padding:1rem .75rem;overflow-y:auto}.side-nav{display:flex;flex-direction:column;gap:.25rem}.side-group{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text);font-size:.875rem;font-weight:700;padding:.5rem;border-radius:.4rem}.side-group:hover{background:var(--bg-soft)}.side-sub{padding-left:.75rem;margin-bottom:.5rem;display:flex;flex-direction:column;gap:.2rem}.side-item{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text-muted);font-size:.8125rem;padding:.35rem .5rem;border-radius:.35rem}.side-item:hover{background:var(--bg-soft);color:var(--text)}.side-item-dragover{background:var(--accent);color:#fff}.side-attention{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:.35rem;border-radius:50%;background:#d97706;color:#fff;font-size:.7rem;font-weight:700;line-height:1;vertical-align:middle}.side-divider{height:1px;background:var(--border-soft);margin:.5rem 0}.app-main{flex:1;padding:1.5rem;min-width:0}.library{display:flex;flex-direction:column;gap:1rem}.library-toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.library-search{background:var(--bg-soft);border:1px solid var(--border);color:var(--text);border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem;min-width:220px}.filter-chips{display:flex;gap:.5rem}.chip{background:var(--bg-soft);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:.3rem .8rem;font-size:.8rem}.chip-active{background:var(--accent);border-color:var(--accent);color:#fff}.library-tree{background:var(--bg-deep);border:1px solid var(--border-soft);border-radius:.75rem;padding:1.5rem;min-height:300px}.muted{color:var(--text-faint);font-size:.875rem}.player-bar{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;gap:1rem;padding:.6rem 1.25rem;border-top:1px solid var(--border-soft);background:var(--player-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap}.player-track{display:flex;align-items:center;gap:.75rem;min-width:200px;flex:1}.player-art{width:40px;height:40px;border-radius:.4rem;background:var(--bg-soft);display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--text-muted)}.player-meta{display:flex;flex-direction:column;min-width:0}.player-title{font-size:.875rem;font-weight:600;color:var(--text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-artist{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-controls{display:flex;align-items:center;gap:.4rem}.player-btn{background:transparent;border:none;color:var(--text);width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.player-btn:hover{background:var(--bg-soft)}.player-btn-primary{background:var(--accent)}.player-btn-primary:hover,.player-btn-active{background:var(--accent-hover)}.player-target{display:flex;align-items:center;gap:.5rem}.player-target-label{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.player-target-select{background:var(--bg-soft);border:1px solid var(--border);color:var(--text);border-radius:.4rem;padding:.35rem .5rem;font-size:.8rem}.player-rating{display:flex;gap:.3rem}.player-video{position:fixed;right:16px;bottom:88px;width:320px;height:180px;background:#000;border:1px solid var(--border);border-radius:.5rem;object-fit:contain;z-index:40;display:none}.player-video-visible{display:block}.player-seek{display:flex;align-items:center;gap:.5rem;flex:1;min-width:180px}.player-time{font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.player-seek-range{flex:1;accent-color:var(--accent);height:4px;cursor:pointer}.player-video-controls{display:flex;align-items:center;gap:.6rem}.video-scale-segment{display:inline-flex;align-items:center;gap:0;background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;padding:.15rem}.video-scale-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:24px;border:none;background:transparent;color:var(--text-muted);border-radius:999px;padding:0 .5rem;font-size:.75rem;font-weight:600;cursor:pointer}.video-scale-btn:hover{color:var(--text);background:var(--border)}.video-scale-btn-active{background:var(--accent);color:#fff}.video-scale-btn-active:hover{background:var(--accent-hover);color:#fff}.video-scale-btn:disabled,.player-btn:disabled{opacity:.4;cursor:not-allowed}.player-volume{display:flex;align-items:center;gap:.4rem}.player-volume-range{width:80px;accent-color:var(--accent);cursor:pointer}.media-kind-tabs{display:inline-flex;background:var(--bg-soft);border:1px solid var(--border);border-radius:.5rem;padding:.15rem;gap:.15rem}.kind-tab{background:transparent;border:none;color:var(--text-muted);font-size:.875rem;font-weight:600;padding:.35rem 1rem;border-radius:.35rem}.kind-tab-active{background:var(--accent);color:#fff}.hidden-input{display:none}.library-tree-dragover{border-color:var(--accent);outline:2px dashed var(--accent);outline-offset:-4px}.tree-group-label-draggable{cursor:grab}.tree-group-label-draggable:hover{color:var(--accent)}.tree-count{color:var(--text-faint);font-weight:600;font-size:.75rem}.tree-album-block{margin-bottom:.5rem}.tree-album-label{margin:0 0 .15rem .75rem;font-size:.8125rem;font-weight:600;color:var(--text-muted);display:flex;align-items:center;gap:.35rem;cursor:grab}.tree-album-label:hover{color:var(--accent)}.tree-album-block .tree-list{margin-left:1.5rem}.library-tree-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.library-browser{display:flex;gap:1rem;min-height:0}.browser-side{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto}.browser-pane{background:var(--bg-soft);border:1px solid var(--border-soft);border-radius:.5rem;padding:.6rem;display:flex;flex-direction:column;min-height:0}.browser-pane-head{display:flex;align-items:center;justify-content:space-between;padding:0 .4rem .5rem;color:var(--text-strong);font-size:.8125rem;font-weight:700}.browser-list{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:40vh;display:flex;flex-direction:column;gap:.15rem}.browser-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;text-align:left;background:transparent;border:none;color:var(--text-muted);padding:.4rem .5rem;border-radius:.35rem;font-size:.8125rem}.browser-item:hover{background:var(--bg-deep);color:var(--text)}.browser-item-active{background:var(--accent);color:#fff;font-weight:600}.browser-item-active:hover{background:var(--accent-hover);color:#fff}.browser-item-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.browser-count{color:var(--text-faint);font-size:.75rem;font-variant-numeric:tabular-nums;flex-shrink:0}.browser-item-active .browser-count{color:#fffc}.browser-tracks{flex:1;min-width:0;overflow:visible}.library-track-pagination{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;margin-bottom:.5rem}.tree-group{margin-bottom:1rem}.tree-group-label{margin:0 0 .35rem;font-size:.875rem;font-weight:700;color:var(--text-strong);display:flex;align-items:center;gap:.35rem}.tree-sep{color:var(--text-faint)}.tree-album{color:var(--text-muted);font-weight:500}.tree-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}.tree-row{position:relative;display:flex;align-items:center;gap:.75rem;width:100%;color:var(--text);padding:0;border-radius:.4rem;font-size:.875rem}.tree-row:hover{background:var(--bg-soft)}.tree-row-active{background:var(--border)}.tree-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:.75rem;background:transparent;border:none;color:inherit;padding:.4rem .5rem;border-radius:.4rem;font-size:inherit;text-align:left;cursor:pointer}.tree-thumb{width:36px;height:24px;flex-shrink:0;border-radius:.25rem;overflow:hidden;background:var(--bg-soft);display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--text-muted);border:1px solid var(--border)}.tree-thumb img{width:100%;height:100%;object-fit:cover}.tree-thumb-placeholder{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%}.tree-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-sub{color:var(--text-muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.tree-duration{color:var(--text-muted);font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}.audio-extract-status{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:.65rem;line-height:1;font-weight:700;flex-shrink:0}.audio-extract-status-processing{color:#7c3aed;background:#7c3aed24}.audio-extract-status-completed{color:#059669;background:#05966924}.audio-extract-status-skipped{color:var(--text-faint);background:var(--border)}.audio-extract-status-failed{color:#d97706;background:#d9770624}.audio-extract-flow{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.audio-extract-flow-node{display:flex;flex-direction:column;align-items:center;gap:.1rem;min-width:84px;padding:.6rem .75rem;border-radius:.5rem;background:var(--bg-deep);border:1px solid var(--border)}.audio-extract-flow-node-active{border-color:#7c3aed;background:#7c3aed24}.audio-extract-flow-node-done{border-color:#059669;background:#0596691f}.audio-extract-flow-count{font-size:1.5rem;font-weight:700;line-height:1;color:var(--text-strong);font-variant-numeric:tabular-nums}.audio-extract-flow-label{font-size:.7rem;color:var(--text-muted);white-space:nowrap}.audio-extract-flow-arrow{color:var(--text-faint);font-size:1.25rem}.tree-status{background:#d97706;color:#fff;font-size:.7rem;padding:.1rem .5rem;border-radius:999px}.tree-play{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--text-strong);flex-shrink:0}.tree-play:hover{background:var(--accent)}.tree-options{position:relative;flex-shrink:0;margin-right:.25rem}.tree-options-btn{background:transparent;border:none;color:var(--text-muted);width:32px;height:32px;border-radius:50%;font-size:1.1rem;line-height:1;cursor:pointer}.tree-options-btn:hover{background:var(--border);color:var(--text)}.tree-options-menu{position:absolute;right:0;top:calc(100% + .25rem);min-width:220px;background:var(--bg-soft);border:1px solid var(--border);border-radius:.5rem;padding:.35rem;box-shadow:0 10px 30px #0006;z-index:30}.dropdown-item-submenu{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.submenu-arrow{color:var(--text-faint)}.dropdown-item-submenu{position:relative}.submenu{position:absolute;left:calc(100% + .25rem);top:-.35rem;min-width:160px;max-height:260px;overflow-y:auto;background:var(--bg-soft);border:1px solid var(--border);border-radius:.5rem;padding:.35rem;box-shadow:0 10px 30px #0006;z-index:40}.submenu-left{left:auto;right:calc(100% + .25rem)}.submenu-bottom{top:auto;bottom:-.35rem}.submenu-muted{display:block;padding:.5rem .75rem;font-size:.8rem;color:var(--text-faint);white-space:nowrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:60;padding:1rem}.modal{background:var(--bg-soft);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;width:100%;max-width:560px;max-height:80vh;overflow-y:auto}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.modal-head h3{margin:0;color:var(--text-strong)}.modal-head-actions{display:flex;align-items:center;gap:.5rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.info-list{display:grid;grid-template-columns:120px 1fr;gap:.5rem .75rem;margin:0}.info-list dt{color:var(--text-muted);font-weight:600}.info-list dd{margin:0;color:var(--text);word-break:break-all}.user-chip{display:flex;align-items:center;gap:.5rem}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--border);background:var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700;color:var(--text);flex-shrink:0}.user-avatar-placeholder{background:var(--border)}.user-name{font-size:.875rem;font-weight:500;color:var(--text)}.center-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem;text-align:center}.badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.badge-admin{background:#7c3aed;color:#fff}.badge-user{background:#059669;color:#fff}.badge-pending{background:#d97706;color:#fff}.clip-status-badge{border:none;cursor:pointer;font:inherit}.clip-status-badge:hover{filter:brightness(1.15)}.card{background:var(--bg-soft);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem}.card h2,.card h3{margin-top:0;color:var(--text-strong)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem 1.25rem;border-radius:.5rem;border:1px solid transparent;font-size:.875rem;font-weight:600;transition:all .15s ease}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--border);color:var(--text)}.btn-secondary:hover{background:var(--text-faint)}.btn-danger{background:#b91c1c;color:#fff}.btn-danger:hover{background:#991b1b}.btn:disabled{opacity:.5;cursor:not-allowed}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.75rem .5rem;border-bottom:1px solid var(--border);font-size:.875rem}th{color:var(--text-muted);font-weight:600}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.stat-box{background:var(--bg-deep);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem}.stat-box .stat-value{font-size:2rem;font-weight:700;color:var(--link)}.stat-box .stat-label{color:var(--text-muted);font-size:.8rem}.alert{padding:1rem 1.25rem;border-radius:.5rem;margin-bottom:1rem;font-size:.875rem;white-space:pre-line}.alert-warning{background:#451a03;border:1px solid #92400e;color:#fcd34d}.bulk-import{max-width:1100px}.bulk-import h2{margin:0;color:var(--text-strong)}.bulk-import-head,.bulk-job-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.bulk-import-head{margin-bottom:1rem}.bulk-import-actions,.bulk-selection-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.bulk-import-head p{margin-bottom:0}.bulk-import code{background:var(--bg-deep);border:1px solid var(--border);border-radius:.25rem;padding:.05rem .35rem;word-break:break-all}.bulk-file-list{max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:.5rem}.bulk-selection-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.bulk-selection-head h3{margin:0}.bulk-file-select{display:flex;align-items:center;min-width:0;gap:.6rem}.bulk-file-select input{flex-shrink:0}.bulk-file-list-row,.bulk-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.6rem .75rem;border-bottom:1px solid var(--border-soft);font-size:.875rem}.bulk-file-list-row:last-child{border-bottom:none}.bulk-file-list-row>span:first-child,.bulk-path{overflow-wrap:anywhere}.bulk-status,.bulk-item-status{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;white-space:nowrap}.bulk-status-queued,.bulk-item-status-queued{background:#475569;color:#f8fafc}.bulk-status-processing,.bulk-item-status-processing{background:#1d4ed8;color:#dbeafe}.bulk-status-completed,.bulk-item-status-completed{background:#047857;color:#d1fae5}.bulk-status-failed,.bulk-item-status-failed{background:#b91c1c;color:#fee2e2}.bulk-item-status-skipped{background:#92400e;color:#fef3c7}.bulk-progress-track{height:.65rem;margin-top:1rem;overflow:hidden;background:var(--bg-deep);border:1px solid var(--border);border-radius:999px}.bulk-progress-value{height:100%;background:var(--accent);transition:width .25s ease}.bulk-progress-label{margin:.4rem 0 1rem;color:var(--text-muted);font-size:.8rem;text-align:right}.bulk-stats{margin-bottom:1rem}.bulk-stats .stat-box{padding:.8rem 1rem}.bulk-stats .stat-value{font-size:1.5rem}.bulk-items-table-wrap{max-height:520px;overflow-y:auto;overflow-x:auto}.bulk-items-table{min-width:700px}.bulk-items-table th{position:sticky;top:0;z-index:1;background:var(--bg-soft)}.bulk-items-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.bulk-items-pagination{display:flex;align-items:center;gap:.5rem}.bulk-error{color:var(--text-muted);max-width:280px;overflow-wrap:anywhere}.bulk-history-list{display:flex;flex-direction:column;gap:.25rem}.bulk-history-row{width:100%;grid-template-columns:minmax(160px,1fr) auto auto auto;border:1px solid transparent;border-radius:.4rem;background:transparent;color:var(--text);text-align:left;cursor:pointer}.bulk-history-row:hover,.bulk-history-row-active{background:var(--bg-deep);border-color:var(--border)}.settings{display:flex;flex-direction:column;gap:1rem;max-width:860px}.settings h2{margin:0;color:var(--text-strong)}.settings-back{align-self:flex-start}.settings code{background:var(--bg-deep);border:1px solid var(--border);border-radius:.25rem;padding:.05rem .35rem;font-size:.8rem}.settings-patterns{display:flex;flex-direction:column;gap:.5rem;margin:1rem 0}.settings-pattern-row{display:flex;align-items:center;gap:.5rem}.settings-pattern-input{flex:1;background:var(--bg-deep);border:1px solid var(--border);color:var(--text);border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem;font-family:ui-monospace,SFMono-Regular,JetBrains Mono,Menlo,Consolas,monospace}.settings-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.settings-checkbox{display:flex;align-items:center;gap:.5rem;margin:.75rem 0;color:var(--text);font-size:.875rem}.settings-field-label{display:block;color:var(--text-muted);font-size:.8rem;font-weight:600}.settings-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.settings-sample-input{width:100%;background:var(--bg-deep);border:1px solid var(--border);color:var(--text);border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem;margin:.75rem 0}.settings-samples{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.btn-sm{padding:.3rem .75rem;font-size:.8rem;background:var(--bg-deep);border:1px solid var(--border);color:var(--text-muted);border-radius:.5rem}.btn-sm:hover{background:var(--border);color:var(--text)}.settings-preview{display:grid;grid-template-columns:auto 1fr;gap:.4rem .75rem;margin:.75rem 0 0;font-size:.875rem}.settings-preview dt{color:var(--text-muted);font-weight:600}.settings-preview dd{margin:0;color:var(--text);word-break:break-all}.settings-preview-item{display:contents}.side-item-active{color:var(--text-strong);background:var(--bg-soft);font-weight:600}.side-add{color:var(--link)}.card-list,.preset-layout{display:flex;flex-direction:column;gap:1rem}.preset-pane{background:var(--bg-deep);border:1px solid var(--border);border-radius:.75rem;padding:1rem 1.25rem}.preset-pane-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.preset-pane-head h3{margin:0;color:var(--text-strong);font-size:1rem}.preset-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.preset-list-item{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:transparent;border:none;color:var(--text-muted);padding:.5rem .75rem;border-radius:.4rem;font-size:.875rem}.preset-list-item:hover{background:var(--bg-soft);color:var(--text)}.preset-list-item-active{background:var(--bg-soft);color:var(--text-strong);font-weight:600}.preset-list-name{font-weight:600}.json-collapsible{margin-top:1rem;border:1px solid var(--border);border-radius:.5rem;overflow:hidden}.json-toggle{display:block;width:100%;text-align:left;background:var(--bg-deep);border:none;color:var(--text-muted);padding:.6rem .85rem;font-size:.875rem;font-weight:600}.json-toggle:hover{background:var(--bg-soft);color:var(--text)}.json-body{padding:.75rem;border-top:1px solid var(--border)}.json-mode-tabs{display:inline-flex;gap:.15rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;padding:.15rem;margin-bottom:.75rem}.json-mode-tab{border:none;background:transparent;color:var(--text-muted);font-size:.8rem;font-weight:600;padding:.25rem .75rem;border-radius:999px}.json-mode-tab-active{background:var(--accent);color:#fff}.json-editor{width:100%;background:var(--bg-deep);border:1px solid var(--border);color:var(--text);border-radius:.5rem;padding:.75rem;font-family:ui-monospace,SFMono-Regular,JetBrains Mono,Menlo,Consolas,monospace;font-size:.75rem;line-height:1.5;resize:vertical}.json-editor+.btn-sm{margin-top:.5rem}.preset-config{background:var(--bg-deep);border:1px solid var(--border);border-radius:.5rem;padding:.75rem 1rem;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,JetBrains Mono,Menlo,Consolas,monospace;font-size:.75rem;color:var(--text-muted);margin:.75rem 0 0}.form-field{margin-bottom:.75rem}.form-field label{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem;color:var(--text-muted)}.form-field input,.form-field select{background:var(--bg-deep);border:1px solid var(--border);color:var(--text);border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem}.form-field .form-check{flex-direction:row;align-items:center;gap:.5rem}.form-check input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.form-fieldset{border:1px solid var(--border);border-radius:.5rem;padding:.75rem 1rem;margin:1rem 0}.form-fieldset legend{color:var(--text-muted);font-size:.8rem;padding:0 .5rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:.75rem}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spinner-rotate .8s linear infinite;flex-shrink:0}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.export-progress{height:8px;background:var(--bg-deep);border-radius:999px;overflow:hidden;margin:.25rem 0 0}.export-progress-bar{height:100%;background:var(--accent);transition:width .3s ease}.export-progress-bar-output{background:#22c55e}.export-progress-label{font-size:.75rem;color:var(--text-muted);margin-top:.75rem}.badge-muted{background:var(--border);color:var(--text-muted)}.track-progress-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.15rem}.track-progress-row{display:flex;align-items:center;gap:.75rem;padding:.25rem 0;border-bottom:1px solid var(--border-soft);font-size:.8125rem}.track-progress-title{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text)}.track-progress-badges{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}.loudness-table-card{padding:.5rem}.loudness-table{display:flex;flex-direction:column}.loudness-row{display:flex;align-items:center;gap:.75rem;padding:.25rem .5rem;border-bottom:1px solid var(--border-soft);font-size:.8125rem}.loudness-row:last-child{border-bottom:none}.loudness-row-head{color:var(--text-muted);font-size:.75rem;border-bottom:1px solid var(--border)}.loudness-col-title{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:.5rem}.loudness-title-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.loudness-col-artist{flex:0 0 10rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text-muted)}.loudness-col-num{flex:0 0 4.5rem;text-align:right;font-variant-numeric:tabular-nums}.loudness-col-state{flex:0 0 6rem;display:flex;justify-content:flex-end}.clip-layout{display:flex;flex-direction:column;gap:1rem}.clip-pane-preview{order:-1}.clip-pane{background:var(--bg-deep);border:1px solid var(--border);border-radius:.75rem;padding:1rem 1.25rem}.clip-pane-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.clip-pane-head h3{margin:0;color:var(--text-strong);font-size:1rem}.clip-tool-title{display:inline-flex;align-items:center;gap:.35rem}.clip-shortcut-info{position:relative}.clip-shortcut-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:none;border-radius:50%;background:transparent;color:var(--text-muted);cursor:help;font-size:1rem}.clip-shortcut-icon:hover,.clip-shortcut-info:focus-within .clip-shortcut-icon{background:var(--border);color:var(--text)}.clip-shortcut-pop{display:none;position:absolute;top:calc(100% + .35rem);left:0;width:max-content;min-width:320px;max-width:min(92vw,440px);padding:.45rem .6rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 10px 30px #0006;z-index:60}.clip-shortcut-info:hover .clip-shortcut-pop,.clip-shortcut-info-open .clip-shortcut-pop{display:block}.clip-shortcut-pop table{width:100%}.clip-shortcut-pop th,.clip-shortcut-pop td{padding:.2rem .4rem;border-bottom:1px solid var(--border-soft);font-size:.75rem;white-space:nowrap}.clip-shortcut-pop tr:last-child td{border-bottom:none}.clip-shortcut-pop kbd{display:inline-block;min-width:1.2rem;padding:.05rem .25rem;border:1px solid var(--border);border-radius:.25rem;background:var(--bg-deep);color:var(--text-strong);font-family:inherit;font-size:.7rem;text-align:center}.clip-recording-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;max-height:50vh;overflow-y:auto}.clip-recording-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;border-radius:.4rem;border:1px solid transparent}.clip-recording-row:hover{background:var(--bg-soft)}.clip-recording-row-selected{border-color:var(--accent);background:#2563eb2e;box-shadow:inset 4px 0 0 var(--accent)}.clip-recording-row-selected:hover{background:#2563eb3d}.clip-recording-row-selected .clip-recording-name{color:var(--text-strong);font-weight:700}.clip-recording-info{display:flex;flex-direction:column;min-width:0;gap:.1rem}.clip-recording-name{color:var(--text);font-size:.875rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.clip-recording-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.clip-recording-selected-label{white-space:nowrap}.epgstation-delete-toggle{margin-top:.75rem}.epgstation-delete-section{margin-top:1.25rem;padding:1rem;border:1px solid rgba(185,28,28,.55);border-radius:.5rem;background:#b91c1c0f}.epgstation-delete-section h3{margin:0}.epgstation-delete-help{margin:.4rem 0 0;font-size:.8rem}.recording-delete-modal{max-width:520px}.recording-delete-target{display:flex;flex-direction:column;gap:.2rem;padding:.75rem;margin:1rem 0;background:var(--bg-deep);border:1px solid var(--border);border-radius:.5rem;color:var(--text-strong);font-weight:600;overflow-wrap:anywhere}.recording-delete-target .muted{font-size:.8rem;font-weight:400}.recording-delete-confirm{display:flex;align-items:flex-start;gap:.5rem;color:var(--text);line-height:1.5}.recording-delete-confirm input{flex:0 0 auto;margin-top:.25rem}.clip-preview{display:flex;flex-direction:column;gap:.75rem}.clip-preview video{background:#000;border-radius:.5rem;max-height:62vh;object-fit:contain}.clip-job-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.clip-source-group{list-style:none;border:1px solid var(--border-soft);border-radius:.35rem;overflow:visible}.clip-source-group-head{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;background:var(--bg-soft);border-bottom:1px solid var(--border-soft);font-size:.8125rem}.clip-source-group-title{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:var(--text-muted);text-align:left}button.clip-source-group-title{padding:0;border:none;background:transparent;cursor:pointer}button.clip-source-group-title:hover{color:var(--text);text-decoration:underline}.clip-source-group-toggle{flex:0 0 auto;padding:.05rem .25rem;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1}.clip-source-group-toggle:hover{color:var(--text)}.clip-source-item-list{list-style:none;margin:0;padding:.25rem;display:flex;flex-direction:column;gap:.2rem}.clip-job-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.15rem .5rem;border:1px solid var(--border-soft);border-radius:.25rem;font-size:.8125rem}.clip-retry-all-check{display:flex;align-items:center;gap:.35rem;color:var(--text-muted);font-size:.75rem;white-space:nowrap}.clip-retry-all-check input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.clip-def-label{font-weight:600;color:var(--text-strong);flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0;border:0;background:transparent;text-align:left;font:inherit;cursor:pointer}.clip-def-label:hover{color:var(--accent);text-decoration:underline}.clip-info{position:relative}.clip-info-icon{background:transparent;border:none;color:var(--text-muted);font-size:.9rem;cursor:pointer;padding:.1rem .3rem;border-radius:50%}.clip-info-icon:hover{background:var(--border);color:var(--text)}.clip-info-pop{display:none;position:absolute;right:0;top:calc(100% + .35rem);width:min(640px,calc(100vw - 2rem));min-width:min(480px,calc(100vw - 2rem));max-width:calc(100vw - 2rem);box-sizing:border-box;background:var(--bg-soft);border:1px solid var(--border);border-radius:.5rem;padding:.6rem .75rem;box-shadow:0 10px 30px #0006;z-index:50}.clip-info:hover .clip-info-pop,.clip-info-pop-open{display:block}.clip-info-row{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.35rem .5rem;font-size:.8rem;margin-bottom:.3rem}.clip-info-row>.muted{white-space:nowrap}.clip-info-row>:last-child{min-width:0;overflow-wrap:anywhere}.clip-info-row:last-child{margin-bottom:0}.clip-info-link{background:transparent;border:none;padding:0;color:var(--link);text-align:left;font-size:.8rem;cursor:pointer;word-break:break-all}.clip-info-link:hover{text-decoration:underline}.clip-info-output-path{word-break:break-all}.clip-preview-timebar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.5rem .75rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:.5rem;font-variant-numeric:tabular-nums}.clip-metadata-row{display:flex;align-items:flex-end;gap:.5rem;margin:0}.clip-metadata-field{flex:1 1 0;min-width:0}.clip-metadata-field>label{display:block;margin-bottom:.2rem;color:var(--text-muted);font-size:.75rem}.clip-metadata-field .autocomplete input{width:100%;background:var(--bg-deep);border:1px solid var(--border);border-radius:.35rem;color:var(--text);padding:.35rem .6rem;font-size:.8rem}.clip-add-button{flex:0 0 auto;padding:.4rem .8rem;white-space:nowrap}.clip-time-main{font-size:1rem;font-weight:700;color:var(--text-strong)}.clip-time-frame{color:var(--text-muted);font-size:.85rem}.clip-fps{display:inline-flex;align-items:center;gap:.35rem;margin-left:auto;font-size:.8rem;color:var(--text-muted)}.clip-fps input{width:4.5rem}.clip-time-summary{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .75rem;padding:.35rem .6rem;background:var(--bg-soft);border:1px solid var(--border-soft);border-radius:.4rem;color:var(--text-muted);font-size:.8rem;font-variant-numeric:tabular-nums}.clip-time-summary>label{display:inline-flex;align-items:center;gap:.25rem}.clip-time-label{color:var(--text-faint);font-size:.72rem}.clip-time-summary input{width:4.75rem;padding:.2rem .35rem;background:var(--bg-deep);border:1px solid var(--border);border-radius:.3rem;color:var(--text);font-size:.8rem;font-variant-numeric:tabular-nums}.clip-time-separator{color:var(--text-faint)}.clip-frame-value{min-width:2.5rem;color:var(--text-muted);text-align:right}.clip-time-length{color:var(--text-muted)}@media (max-width: 640px){.bulk-import-head,.bulk-job-head{flex-direction:column}.bulk-import-head .btn{width:100%}.bulk-history-row{grid-template-columns:1fr 1fr}.clip-metadata-row{align-items:stretch;flex-wrap:wrap}.clip-metadata-field{flex-basis:calc(50% - .25rem)}.clip-add-button{flex:1 1 100%}}.autocomplete{position:relative}.autocomplete input{width:100%;padding-right:2rem}.autocomplete-clear{position:absolute;top:50%;right:.45rem;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:0;border:none;border-radius:50%;background:transparent;color:var(--text-muted);font-size:1.1rem;line-height:1;transform:translateY(-50%)}.autocomplete-clear:hover{background:var(--border);color:var(--text)}.autocomplete-list{position:absolute;top:calc(100% + .25rem);left:0;right:0;margin:0;padding:.25rem;list-style:none;background:var(--bg-soft);border:1px solid var(--border);border-radius:.5rem;max-height:240px;overflow-y:auto;z-index:50;box-shadow:0 10px 30px #0006}.autocomplete-item{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text);padding:.4rem .6rem;border-radius:.35rem;font-size:.85rem;cursor:pointer}.autocomplete-item:hover{background:var(--accent);color:#fff}
