:root{color-scheme:light;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.5;font-weight:400;background:radial-gradient(circle at top left,rgba(15,118,110,.08),transparent 28%),linear-gradient(180deg,#f8fafc,#f3f6f8);color:#142132;--bg: #f3f6f8;--surface: rgba(255, 255, 255, .84);--surface-strong: #ffffff;--surface-muted: #eef3f5;--border: rgba(148, 163, 184, .18);--text: #142132;--text-soft: #5b6b7f;--text-faint: #8090a3;--accent: #0f766e;--accent-strong: #115e59;--accent-soft: rgba(15, 118, 110, .12);--danger: #c2410c;--danger-soft: rgba(194, 65, 12, .1);--shadow: 0 18px 40px rgba(15, 23, 42, .08);--surface-hover: rgba(255, 255, 255, .52);--surface-panel: rgba(255, 255, 255, .76);--surface-control: rgba(255, 255, 255, .72);--surface-input: rgba(255, 255, 255, .86);--surface-card: rgba(255, 255, 255, .68)}:root[data-theme=dark]{color-scheme:dark;background:radial-gradient(circle at top left,rgba(20,184,166,.14),transparent 28%),linear-gradient(180deg,#07111a,#0b1724);color:#e6edf6;--bg: #0b1724;--surface: rgba(11, 23, 36, .82);--surface-strong: #0f1d2d;--surface-muted: #122132;--border: rgba(148, 163, 184, .16);--text: #e6edf6;--text-soft: #a4b3c4;--text-faint: #8191a4;--accent: #2dd4bf;--accent-strong: #8ff2e3;--accent-soft: rgba(45, 212, 191, .14);--danger: #ffb089;--danger-soft: rgba(251, 146, 60, .14);--shadow: 0 24px 50px rgba(0, 0, 0, .32);--surface-hover: rgba(255, 255, 255, .06);--surface-panel: rgba(15, 29, 45, .88);--surface-control: rgba(255, 255, 255, .05);--surface-input: rgba(255, 255, 255, .04);--surface-card: rgba(255, 255, 255, .04)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-width:320px;background:var(--bg)}button,input,select{font:inherit}img,video{max-width:100%;display:block}.app-shell{width:min(1520px,calc(100% - 32px));margin:0 auto;padding:20px 0 36px;display:grid;grid-template-columns:248px minmax(0,1fr);gap:20px}.sidebar,.topbar,.panel,.stat-card,.status-banner,.sidebar-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.sidebar{position:sticky;top:20px;align-self:start;display:grid;gap:20px;padding:22px 18px;border-radius:28px}.brand-block{display:flex;gap:14px;align-items:center}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--accent),#14b8a6);box-shadow:0 12px 24px #0f766e3d}.brand{display:grid;gap:2px;min-width:0}.brand strong{font-size:20px;letter-spacing:.01em}.brand span{color:var(--text-soft);font-size:13px}.sidebar-nav{display:grid;gap:8px}.nav-link{display:inline-flex;align-items:center;gap:12px;min-height:48px;border:1px solid transparent;border-radius:16px;padding:0 14px;background:transparent;color:var(--text-soft);text-decoration:none;transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease}.nav-link:hover{transform:translateY(-1px);background:var(--surface-hover);color:var(--text)}.nav-link.active{background:var(--accent-soft);border-color:#0f766e33;color:var(--accent-strong);font-weight:600}.sidebar-card{display:grid;gap:6px;padding:16px;border-radius:20px;background:var(--surface-panel)}.sidebar-card-title{display:inline-flex;align-items:center;gap:8px;color:var(--text-soft);font-size:13px}.sidebar-card strong{font-size:15px}.sidebar-card small{color:var(--text-faint)}.workspace{min-width:0}.topbar{display:flex;gap:18px;justify-content:space-between;align-items:center;padding:22px 26px;border-radius:28px}.topbar-copy{min-width:0}.topbar-copy h1{margin:0;font-size:clamp(28px,3.5vw,40px);line-height:1.08;letter-spacing:-.02em}.topbar-copy p{margin:8px 0 0;color:var(--text-soft)}.topbar-actions{display:flex;gap:14px;align-items:center}.topbar-stats{display:flex;gap:12px}.topbar-stat{min-width:90px;padding:10px 14px;border-radius:16px;background:var(--surface-card);border:1px solid var(--border);display:grid;gap:4px}.topbar-stat span{color:var(--text-soft);font-size:12px}.topbar-stat strong{font-size:18px}.page-shell{margin-top:20px}.page-single{display:grid;gap:18px}.hero,.topbar,.panel,.stat-card,.status-banner{border-radius:26px}.hero h1,.section-title h2{margin:0}.hero p,.section-desc,.player-header span,.media-meta span,.media-meta small,.empty-state,.empty-player p{color:var(--text-soft)}.stats-row,.content-grid,.button-row,.transport-row,.volume-row,.section-title,.media-card,.media-meta,.tabs{display:flex}.stats-row{gap:16px;margin:18px 0}.stats-row-page{margin:0;flex-wrap:wrap}.stat-card-total{flex:.6;justify-content:space-between}.stat-card{flex:1;padding:20px 22px;align-items:center;gap:12px}.stat-card span{color:var(--text-soft)}.stat-card strong{margin-left:auto;font-size:28px}.content-grid{gap:18px;align-items:flex-start}.left-column{flex:1.15;display:grid;gap:18px}.player-panel{flex:.95;position:sticky;top:24px}.panel{padding:22px}.section-head{display:grid;gap:8px;margin-bottom:18px}.section-title{gap:10px;align-items:center;margin-bottom:0}.section-desc{margin:0;font-size:14px}.section-note{margin:0 0 14px;color:var(--text-faint);font-size:13px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:flex;flex-direction:column;gap:8px;color:var(--text);font-size:14px}.full-span{grid-column:1 / -1}input,select{width:100%;border:1px solid var(--border);border-radius:16px;background:var(--surface-input);color:var(--text);padding:12px 14px;outline:none}input:focus,select:focus{border-color:#0f766e85;box-shadow:0 0 0 4px #0f766e1f}input[type=checkbox]{width:16px;height:16px;padding:0;border:0;border-radius:4px;background:transparent;box-shadow:none;accent-color:var(--accent)}.button-row,.transport-row,.volume-row{gap:12px;align-items:center}.button-row{margin-top:18px}.button{border:0;border-radius:16px;min-height:44px;padding:12px 16px;display:inline-flex;gap:10px;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,opacity .2s ease,background .2s ease}.button:hover,.icon-button:hover,.tab:hover,.media-card:hover{transform:translateY(-1px)}.button:disabled,.icon-button:disabled{opacity:.6;cursor:not-allowed}.button.primary{background:linear-gradient(135deg,var(--accent),#14b8a6);color:#fff}.button.danger{background:var(--danger-soft);color:var(--danger);border:1px solid rgba(194,65,12,.15)}.button.secondary,.icon-button,.tab{background:var(--surface-control);color:var(--text);border:1px solid var(--border)}.theme-toggle{min-width:96px}.theme-toggle-label{min-width:2em}.hint-card,.status-banner{display:flex;gap:10px;align-items:center}.hint-card{margin-top:16px;padding:14px 16px;border-radius:18px;background:var(--surface-muted);color:var(--text-soft)}.tabs{gap:10px;margin:14px 0 18px;flex-wrap:wrap}.library-toolbar,.batch-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.library-toolbar{margin:14px 0 10px}.search-field,.sort-field{display:flex;gap:10px;align-items:center;color:var(--text)}.search-field{flex:1;min-width:260px;padding:0 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface-input)}.search-field input{border:0;background:transparent;padding-left:0;padding-right:0;box-shadow:none}.search-field input:focus{box-shadow:none}.sort-field{min-width:180px}.sort-field span{flex-shrink:0}.sort-field select{min-width:140px}.breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 18px}.breadcrumb-item{display:inline-flex;gap:8px;align-items:center;min-width:0}.breadcrumb-link{border:0;border-radius:14px;padding:8px 12px;background:var(--surface-control);color:var(--text);cursor:pointer;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-link:disabled{opacity:.7;cursor:default}.breadcrumb-sep{color:var(--text-faint)}.folder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.folder-card{display:inline-flex;gap:10px;align-items:center;justify-content:flex-start;padding:12px 14px;border-radius:18px;border:1px solid var(--border);background:var(--surface-card);color:var(--text);cursor:pointer;text-align:left}.folder-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-create-row{display:flex;gap:12px;align-items:center;margin-top:16px;flex-wrap:wrap}.folder-create-row input{flex:1}.empty-state-sm{min-height:120px}.tab{border-radius:999px;padding:10px 14px;cursor:pointer}.tab.active{background:var(--accent-soft);border-color:#0f766e2e;color:var(--accent-strong)}.media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.media-card{gap:14px;align-items:center;border:1px solid var(--border);border-radius:20px;background:var(--surface-card);padding:12px;text-align:left;cursor:pointer;min-width:0}.selectable-card{display:grid;gap:10px}.media-card-button{border:0;padding:0;background:transparent;color:inherit;display:flex;gap:14px;align-items:center;cursor:pointer;text-align:left;min-width:0}.media-card.selected{border-color:#0f766e66;box-shadow:inset 0 0 0 1px #0f766e47}.select-toggle{display:inline-flex;gap:8px;align-items:center;color:var(--text);font-size:13px}.select-toggle input{width:16px;height:16px;margin:0}.media-thumb{width:88px;height:88px;border-radius:18px;background:var(--surface-muted);display:grid;place-items:center;flex-shrink:0;overflow:hidden}.media-thumb img{width:100%;height:100%;object-fit:cover}.image-container{width:100%;height:100%;display:grid;place-items:center;background:var(--surface-muted);border-radius:18px;overflow:hidden}.image-placeholder,.image-error{width:100%;height:100%;display:grid;place-items:center;background:var(--surface-muted);border-radius:18px}.image-error{color:var(--danger)}.image-placeholder .spin{animation:spin 1s linear infinite}.media-meta{flex-direction:column;min-width:0}.media-meta strong,.player-header strong{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-meta span,.media-meta small,.player-header span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state,.empty-player{min-height:220px;display:grid;place-items:center;text-align:center}.player-header{display:grid;gap:4px;margin-bottom:18px}.restore-card{margin-bottom:18px;padding:14px 16px;border-radius:20px;border:1px solid var(--border);background:var(--surface-card);display:grid;gap:12px}.restore-card strong{font-size:14px}.restore-actions{display:flex;gap:12px;flex-wrap:wrap}.restore-hint{color:var(--text-soft);font-size:13px;line-height:1.4}.preview-frame,.image-preview,.video-shell,.audio-shell{border-radius:24px;overflow:hidden;background:var(--surface-muted)}.image-preview img,.video-shell video{width:100%;max-height:520px;object-fit:contain;background:#e2e8f0}.preview-frame:fullscreen{width:100vw;height:100vh;display:grid;place-items:center;border-radius:0;background:#0f172a}.preview-frame:fullscreen img,.preview-frame:fullscreen video{width:100%;height:100%;max-height:none;object-fit:contain}.audio-shell{padding:20px}.audio-art{min-height:220px;display:grid;place-items:center;border-radius:20px;background:radial-gradient(circle at top,rgba(20,184,166,.16),transparent 35%),linear-gradient(135deg,#0f766e38,#ffffffe0);font-size:clamp(32px,8vw,64px);font-weight:800;letter-spacing:.12em;color:var(--accent-strong)}.player-controls{margin-top:18px;display:grid;gap:16px}.player-actions{margin:16px 0 18px;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.move-dialog{margin-bottom:18px;padding:16px;border-radius:20px;border:1px solid var(--border);background:var(--surface);display:grid;gap:12px}.move-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.move-dialog-header strong{font-size:14px}.move-dialog-section{display:grid;gap:12px}.move-dialog-title{display:inline-flex;gap:10px;align-items:center;color:var(--text)}.breadcrumbs-compact{margin:0}.folder-grid-compact{gap:10px}.move-target-preview{display:inline-flex;gap:10px;align-items:baseline;color:var(--text-soft)}.move-target-preview strong{color:var(--text)}.move-dialog-label{display:grid;gap:8px;color:var(--text);font-size:14px}.move-dialog-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}.timeline,.volume-row{flex:1;min-width:0}.timeline{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.icon-button{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--text)}input[type=range]{padding:0;height:6px;background:transparent;box-shadow:none}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,#0f766ef2,#14b8a6f2)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-6px;border-radius:50%;border:2px solid #ffffff;background:var(--accent)}.status-banner{position:fixed;right:24px;bottom:24px;z-index:20;padding:14px 16px;max-width:min(480px,calc(100vw - 32px))}.status-banner.info{color:var(--text)}.status-banner.warn{color:var(--danger)}.batch-toolbar{margin:14px 0 10px;justify-content:space-between}.batch-toolbar-meta{display:inline-flex;gap:8px;align-items:center;color:var(--text)}.batch-toolbar-actions,.load-more-row{display:flex;gap:12px;flex-wrap:wrap}.load-more-row{margin-top:16px;justify-content:center}.spin{animation:spin 1s linear infinite}.upload-drop-zone{margin-top:14px;padding:32px 20px;border:2px dashed rgba(15,118,110,.2);border-radius:22px;background:#ffffff7a;display:grid;place-items:center;gap:8px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.upload-target-card{margin-top:14px;padding:16px;border-radius:20px;border:1px solid var(--border);background:var(--surface-card);display:grid;gap:12px}.upload-target-header{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.upload-target-path{color:var(--text);font-size:13px;padding:6px 10px;border-radius:999px;background:var(--surface-control);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-drop-zone:hover,.upload-drop-zone.dragging{border-color:#0f766e6b;background:#0f766e14}.upload-drop-zone span{color:var(--text);font-size:15px}.upload-drop-zone small{color:var(--text-soft)}.upload-list{margin-top:16px;display:grid;gap:10px}.upload-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:18px;background:var(--surface-card);border:1px solid var(--border);flex-wrap:wrap}.upload-item-info{flex:1;min-width:0;display:grid;gap:2px}.upload-item-info strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-item-info small{color:var(--text-soft)}.upload-progress-bar{width:120px;height:8px;border-radius:999px;background:#94a3b829;overflow:hidden;position:relative;flex-shrink:0}.upload-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),#14b8a6);transition:width .3s ease}.upload-progress-bar span{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:10px;color:#fff}.upload-badge{padding:4px 10px;border-radius:999px;font-size:12px;flex-shrink:0}.upload-badge.done{background:#0f766e1f;color:var(--accent-strong)}.upload-badge.error{background:var(--danger-soft);color:var(--danger)}.upload-actions{display:flex;gap:12px;margin-top:4px}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1220px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}.sidebar-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.nav-link{justify-content:center;padding:12px}}@media (max-width: 1100px){.content-grid{flex-direction:column}.player-panel{position:static;width:100%}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar,.topbar-actions{flex-direction:column;align-items:stretch}.topbar-stat{flex:1}}@media (max-width: 720px){.app-shell{width:min(100% - 20px,1440px);padding-top:12px;padding-bottom:32px}.sidebar{padding:16px;border-radius:22px}.sidebar-nav{grid-template-columns:1fr}.topbar{gap:14px;padding:18px;border-radius:22px}.topbar-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.hero,.stats-row,.button-row,.folder-grid,.form-grid{display:grid}.stats-row,.media-grid,.folder-grid,.form-grid{grid-template-columns:1fr}.panel,.stat-card,.status-banner,.sidebar-card{border-radius:22px}.panel{padding:18px}.button-row,.player-actions,.upload-actions,.move-dialog-actions,.restore-actions{grid-template-columns:1fr}.button-row,.player-actions,.upload-actions{display:grid}.button-row .button,.player-actions .button,.upload-actions .button,.move-dialog-actions .button,.restore-actions .button,.topbar-actions .button{width:100%}.folder-create-row,.library-toolbar,.batch-toolbar,.batch-toolbar-actions,.upload-target-header,.move-dialog-header,.transport-row,.volume-row,.topbar-actions{flex-direction:column;align-items:stretch}.folder-create-row input,.search-field,.sort-field,.transport-row .icon-button{width:100%}.timeline{grid-template-columns:1fr;gap:8px}.timeline span{font-size:12px}.media-card{align-items:flex-start}.media-thumb{width:72px;height:72px;border-radius:16px}.preview-frame,.image-preview,.video-shell,.audio-shell{border-radius:20px}.image-preview img,.video-shell video{max-height:60vh}.audio-shell{padding:16px}.audio-art{min-height:160px}.upload-progress-bar{width:100%}.upload-badge{align-self:flex-start}.upload-target-path,.breadcrumb-link,.move-target-preview strong,.player-header span,.media-meta span,.media-meta small{white-space:normal;word-break:break-word}.breadcrumb-link{max-width:none}.move-target-preview{display:grid;gap:4px}.empty-state,.empty-player{min-height:160px}}
