:root{font-family:Segoe UI,Microsoft YaHei,sans-serif;color:#17345c;background:#f6f9ff;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #82b5ff;outline-offset:2px}#app{min-height:100vh}.boot-screen{min-height:100vh;display:grid;place-items:center;background:#f6f9ff;color:#52729f}.login-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#fff,#f5f9ff 55%,#eaf2ff)}.login-form{width:min(100%,360px);display:grid;gap:14px}.login-form input{width:100%;height:54px;border:1px solid #c9d9f0;border-radius:10px;background:#fff;color:#17345c;padding:0 18px;box-shadow:0 6px 24px #225baa0d}.login-form input::placeholder{color:#91a4bf}.login-form .primary-button{width:100%;height:50px}.login-form .error{margin:0;color:#b4233b;text-align:center}.primary-button{min-height:44px;border:1px solid #1768d6;border-radius:9px;padding:10px 18px;background:#1768d6;color:#fff;font-weight:650;transition:background .16s ease,border-color .16s ease}.primary-button:hover:not(:disabled){background:#0b55bb;border-color:#0b55bb}.app-shell{height:100vh;min-height:560px;display:grid;grid-template-columns:316px minmax(0,1fr);overflow:hidden;transition:grid-template-columns .18s ease}.app-shell.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr)}.sidebar{min-height:0;display:flex;flex-direction:column;z-index:5;border-right:1px solid #dce7f6;background:#fff}.sidebar-head{height:98px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;gap:8px}.brand{min-width:0;color:#17345c;font-size:21px;font-weight:760;white-space:nowrap}.brand small{display:block;margin-top:4px;color:#91a6c2;font-size:11px;font-weight:500}.brand-short{display:none;color:#1768d6;font-size:17px;font-weight:800}.sidebar-toggle{flex:0 0 auto;width:28px;height:28px;line-height:18px;border:1px solid #d7e5f8!important;border-radius:7px!important;font-size:23px!important}.search-box{height:44px;display:flex;align-items:center;gap:8px;margin:0 20px 28px;padding:0 11px;border:1px solid #d6e3f5;border-radius:9px;background:#f8fbff}.search-icon{color:#819bbd;font-size:27px;line-height:1}.search-box input{width:100%;border:0;outline:0;background:transparent;color:#17345c;font-size:14px}.search-box input:focus-visible{outline:0}.search-box:focus-within{outline:3px solid #b7d5ff}.list-heading{display:flex;align-items:center;justify-content:space-between;padding:0 26px 13px;color:#31517e;font-size:13px}.list-heading strong{font-weight:700}.list-heading span{color:#8196b4;font-size:12px}.video-list{flex:1;overflow:auto;padding:0 11px 20px}.video-row{display:flex;align-items:center;position:relative;border-radius:9px}.video-row:hover{background:#f0f6ff}.video-row.active{background:#e7f1ff}.video-row.active:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:4px;background:#1768d6}.video-row.disabled{opacity:.58}.video-item{min-width:0;flex:1;display:flex;align-items:center;gap:13px;border:0;border-radius:9px;padding:14px 9px 14px 13px;background:transparent;color:#24466f;text-align:left}.row-copy{flex:0 0 auto;width:32px;height:32px;margin-right:8px;border:0;border-radius:7px;background:transparent;color:#6484b0;font-size:19px}.row-copy:hover{background:#dceaff;color:#1768d6}.item-play{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;background:#e9f1fc;color:#5e84ba;font-size:11px}.active .item-play{background:#1768d6;color:#fff}.item-main{min-width:0;flex:1;display:grid;gap:4px}.item-title{overflow:hidden;color:#24466f;font-size:14px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.item-main small{color:#8298b5;font-size:11px}.list-empty{margin:24px 15px;color:#8298b5;font-size:13px}.sidebar-bottom{border-top:1px solid #e6eef9;padding:16px 20px 20px}.upload-trigger{width:100%;border:1px dashed #78a9ee;border-radius:8px;padding:12px;background:#f2f7ff;color:#1768d6;font-weight:700}.upload-trigger:hover{background:#e6f1ff}.upload-icon{font-size:17px;margin-right:4px}.account-row{display:flex;align-items:center;justify-content:space-between;margin:20px 4px 0;color:#859bb8;font-size:12px}.account-row button{border:0;padding:0;background:none;color:#1768d6}.sidebar-collapsed .sidebar-head{height:92px;flex-direction:column;justify-content:center;padding:8px 0}.sidebar-collapsed .brand-full,.sidebar-collapsed .search-box,.sidebar-collapsed .list-heading,.sidebar-collapsed .item-main,.sidebar-collapsed .upload-label,.sidebar-collapsed .account-row span{display:none}.sidebar-collapsed .brand-short{display:block}.sidebar-collapsed .video-list{padding:0 6px 18px}.sidebar-collapsed .video-row{display:grid;justify-items:center;gap:1px;padding:5px 0}.sidebar-collapsed .video-item{display:grid;place-items:center;min-width:44px;padding:4px}.sidebar-collapsed .row-copy{width:28px;height:25px;margin:0;font-size:16px}.sidebar-collapsed .sidebar-bottom{padding:10px 6px}.sidebar-collapsed .upload-trigger{padding:6px}.sidebar-collapsed .upload-icon{margin:0}.sidebar-collapsed .account-row{justify-content:center;margin:14px 0 4px}.content{position:relative;min-width:0;min-height:0;background:#f6f9ff}.stage-wrap{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:clamp(18px,3vw,42px)}.stage-content{width:min(100%,1280px,calc((100dvh - 250px)*16/9));min-width:0;max-height:100%;display:flex;flex-direction:column;justify-content:center}.stage-content.stage-editor{width:min(100%,1280px,calc((100dvh - 300px)*16/9))}.player-frame{position:relative;width:100%;aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden;border-radius:11px;background:#10213c;box-shadow:0 17px 50px #234c8721}.player-frame:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0}.player-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#0e1d35;cursor:pointer}.player-placeholder{color:#c2d3eb;font-size:14px}.player-controls{position:absolute;right:0;bottom:0;left:0;z-index:2;padding:14px 20px 12px;background:linear-gradient(transparent,#041022ad 22%,#041022e6);color:#fff}.seek-range{display:block;width:100%;height:18px;margin:0 0 5px;appearance:none;background:transparent;cursor:pointer}.seek-range::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(to right,#78b8ff var(--seek-percent),rgba(255,255,255,.45) var(--seek-percent))}.seek-range::-moz-range-track{height:4px;border-radius:4px;background:#ffffff73}.seek-range::-moz-range-progress{height:4px;background:#78b8ff}.seek-range::-webkit-slider-thumb{width:12px;height:12px;margin-top:-4px;appearance:none;border:2px solid #fff;border-radius:50%;background:#75b5ff}.seek-range::-moz-range-thumb{width:10px;height:10px;border:2px solid #fff;border-radius:50%;background:#75b5ff}.control-line{display:flex;align-items:center;gap:10px;min-height:34px}.control-spacer{flex:1}.control-icon{width:31px;height:31px;display:grid;place-items:center;flex:0 0 auto;border:0;border-radius:5px;background:transparent;color:#fff;font-size:17px}.control-icon:hover,.speed-control:hover{background:#ffffff29}.control-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.play-toggle{font-size:17px}.time-readout{white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums;color:#e8f1ff}.volume-toggle{font-size:14px;white-space:nowrap}.volume-range{width:70px;accent-color:#82bdff}.speed-control{display:flex;align-items:center;gap:3px;border-radius:5px;padding:3px 4px;white-space:nowrap;font-size:12px}.speed-control select{max-width:62px;border:0;background:transparent;color:#fff;font-size:12px;cursor:pointer}.speed-control option{color:#17345c;background:#fff}.video-detail{padding:20px 0 0}.video-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.video-heading h1{overflow-wrap:anywhere;margin:0 0 8px;font-size:clamp(21px,2.3vw,30px);letter-spacing:-.025em;line-height:1.3}.video-heading p{margin:0;color:#8196b4;font-size:13px}.detail-sep{margin:0 8px;color:#aec0d8}.disabled-pill{margin-left:8px;border-radius:4px;padding:3px 7px;background:#e6edf6;color:#657c9b;font-size:11px}.detail-actions{flex:0 0 auto}.detail-actions button,.manage-actions button,.text-button{border:1px solid #ccdbee;border-radius:7px;padding:8px 12px;background:#fff;color:#315b91;font-size:13px}.detail-actions button:hover,.manage-actions button:hover,.text-button:hover{background:#eaf3ff}.manage-actions{display:flex;gap:9px;margin-top:18px;border-top:1px solid #dce7f6;padding-top:14px}.video-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}.video-stats span{min-width:0;display:grid;gap:3px;border:1px solid #dce7f6;border-radius:8px;padding:9px 12px;background:#fff}.video-stats strong{overflow:hidden;color:#1768d6;font-size:18px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.video-stats small{color:#8196b4;font-size:11px}.edit-form{width:100%;max-width:440px;display:grid;gap:8px}.edit-form label,.upload-modal label{color:#365b89;font-size:13px;font-weight:650}.edit-form input,.upload-modal input[type=text]{width:100%;border:1px solid #cbdaf0;border-radius:7px;padding:10px 12px;background:#fff;color:#17345c}.edit-form>div{display:flex;gap:8px}.empty-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#365b89;text-align:center}.empty-symbol{width:92px;height:92px;display:grid;place-items:center;border-radius:28px;padding-left:4px;background:#e5f0ff;color:#6b9ee1;font-size:27px}.empty-stage h1{margin:24px 0 8px;font-size:24px}.empty-stage p{margin:0;color:#879dbc;font-size:14px}.message{font-size:13px;line-height:1.5}.stage-message{display:flex;justify-content:space-between;gap:16px;margin:16px 0 0;border-radius:7px;padding:12px 14px;background:#e5f0ff;color:#315b91}.stage-message button{border:0;background:transparent;color:inherit;font-size:20px;line-height:1}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#122e567a}.upload-modal{position:relative;width:min(100%,470px);border:1px solid #d7e5f8;border-radius:12px;padding:30px;background:#fff;box-shadow:0 22px 80px #14315c38}.upload-modal h2{margin:0 0 5px;font-size:24px}.upload-modal p{margin:0 0 27px;color:#8196b4;font-size:13px}.upload-modal form{display:grid;gap:12px}.upload-modal input[type=file]{width:100%;border:1px solid #cbdaf0;border-radius:7px;padding:12px;background:#f8fbff;font-size:13px}.upload-modal form .primary-button{margin-top:10px}.modal-close{position:absolute;top:18px;right:21px;border:0;background:none;color:#7790b0;font-size:24px}.progress{height:7px;overflow:hidden;margin-top:7px;border-radius:8px;background:#e1edfc}.progress div{height:100%;background:#1768d6;transition:width .15s}.upload-modal{max-height:min(88vh,820px);overflow:auto}.upload-modal p{margin-bottom:19px}.upload-dropzone{position:relative;min-height:128px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px dashed #7fa8dd;border-radius:10px;background:#f6faff;color:#315b91;text-align:center;cursor:pointer}.upload-dropzone.dragging,.upload-dropzone:hover{border-color:#1768d6;background:#e9f3ff}.upload-dropzone .drop-icon{font-size:26px;line-height:1;color:#1768d6}.upload-dropzone strong{font-size:14px}.upload-dropzone small{font-size:12px;color:#8196b4}.upload-dropzone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-dropzone:focus-within{outline:3px solid #82b5ff;outline-offset:2px}.upload-queue{max-height:300px;overflow:auto;display:grid;gap:9px;padding-right:3px}.upload-entry{display:grid;gap:6px;border:1px solid #e0eaf7;border-radius:8px;padding:10px;background:#fbfdff}.upload-entry-head{min-width:0;display:flex;justify-content:space-between;gap:10px;color:#31517e;font-size:12px}.upload-entry-head span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-entry-head small{flex:0 0 auto;color:#8196b4}.upload-entry input[type=text]{height:36px}.upload-success{color:#14845d}.upload-failure,.upload-error{color:#b4233b}.upload-modal .upload-error{margin:0;font-size:12px}.page-drop-hint{position:fixed;inset:14px;z-index:19;display:grid;place-items:center;border:2px dashed #1768d6;border-radius:16px;background:#e6f2fff0;color:#1768d6;font-size:20px;font-weight:700;pointer-events:none}.mobile-menu,.mobile-close,.mobile-overlay{display:none}.icon-button{border:0;padding:5px;background:transparent;color:#315b91;font-size:24px}@media(max-width:900px){.app-shell:not(.sidebar-collapsed){grid-template-columns:270px minmax(0,1fr)}.sidebar-head{padding:0 16px}.video-heading{flex-direction:column;gap:12px}.stage-wrap{padding:25px}.volume-range{display:none}}@media(max-width:680px){.app-shell,.app-shell.sidebar-collapsed{display:block;height:100dvh;min-height:0}.sidebar{position:fixed;inset:0 auto 0 0;width:min(84vw,320px);transform:translate(-105%);transition:transform .2s ease;box-shadow:10px 0 30px #1a3d7026}.sidebar.sidebar-open{transform:translate(0)}.sidebar-toggle{display:none}.mobile-overlay{position:fixed;inset:0;z-index:4;display:block;background:#122e5659}.mobile-menu,.mobile-close{display:block}.mobile-menu{position:absolute;top:12px;left:12px;z-index:3;width:40px;height:40px;border-radius:8px;background:#fff;box-shadow:0 3px 12px #234c871c}.content{height:100%}.stage-wrap{padding:17px}.stage-content{width:min(100%,calc((100dvh - 240px)*16/9))}.player-frame{border-radius:7px}.player-controls{padding:9px 8px 6px}.control-line{gap:2px}.time-readout{font-size:10px}.volume-toggle{display:none}.speed-control{gap:0;font-size:11px}.speed-control select{max-width:48px;font-size:11px}.video-detail{padding:16px 2px 0}}@media(max-height:700px){.stage-wrap{padding:14px}.video-detail{padding-top:12px}.video-heading h1{margin-bottom:4px;font-size:20px}.video-stats{margin-top:8px}.video-stats span{padding:6px 8px}.manage-actions{margin-top:10px;padding-top:10px}.stage-message{margin-top:10px;padding:8px 10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
