:root{color-scheme:light;--brand:#006fa8;--brand-bright:#0086c9;--brand-soft:#e8f5fc;--spark:#c73b64;--spark-soft:#fff0f4;--page:#f5f7fa;--surface:#fff;--text:#18212f;--muted:#586477;--border:#dde3eb;--success:#157447;--danger:#b42318;--radius:12px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.55;color:var(--text);background:var(--page)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #67bce6;outline-offset:3px}button{border:0;background:none;color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.3;letter-spacing:-.5px;margin-bottom:12px}h2{font-size:20px;line-height:1.4;margin-bottom:18px}h3{font-size:16px;line-height:1.45;margin-bottom:10px}img,video{max-width:100%}svg{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-60px;left:20px;z-index:100;background:white;padding:12px}.skip-link:focus{top:10px}.topbar{height:80px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.98);position:sticky;top:0;z-index:20}.header-inner{height:100%;max-width:1440px;padding:0 40px;margin:auto;display:flex;align-items:center;gap:40px}.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-size:20px;font-weight:800;white-space:nowrap;letter-spacing:.3px}.brand small{display:block;font-size:10px;line-height:1;letter-spacing:3px;color:var(--muted);font-weight:500;margin-top:2px}.brand-mark{display:grid;place-items:center;background:var(--brand-bright);color:white;border-radius:12px;width:41px;height:41px;font-size:31px}.global-search{display:flex;align-items:center;gap:10px;background:var(--page);border:1px solid transparent;border-radius:24px;max-width:450px;flex:1;padding:0 8px 0 16px}.global-search:focus-within{border-color:var(--brand-bright);background:white}.global-search>span{font-size:27px;color:var(--muted);line-height:1}.global-search input{width:100%;min-width:0;border:0;background:transparent;height:42px;outline:none}.global-search button{color:var(--muted);padding:8px;min-height:40px;white-space:nowrap}.header-nav{margin-left:auto;display:flex;align-items:center;gap:26px;white-space:nowrap}.header-nav>a:not(.button){color:var(--muted);min-height:44px;display:flex;align-items:center}.header-nav a.active{color:var(--brand);font-weight:700}.account-button{min-height:44px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--brand);font-weight:600}.page{max-width:1440px;min-height:calc(100vh - 210px);padding:36px 40px 60px;margin:0 auto}.page.narrow{max-width:980px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}.page-heading p,.muted{color:var(--muted)}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--brand);text-transform:uppercase;margin-bottom:10px}.button{min-height:44px;padding:10px 18px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--brand);color:white;font-weight:600;border:1px solid transparent;line-height:1.4;white-space:nowrap}.button:hover{filter:brightness(.97)}.button-spark{background:var(--spark)}.button-secondary{background:white;border-color:var(--border);color:var(--text)}.button-quiet{background:var(--brand-soft);color:var(--brand)}.button-danger{background:#fff0ee;border-color:#f8d2cc;color:var(--danger)}.button.small{font-size:12px;min-height:38px;padding:8px 12px}.hero{border:1px solid #dce9f1;border-radius:16px;background:#edf5fa;display:flex;justify-content:space-between;align-items:center;gap:32px;padding:30px 36px;margin-bottom:30px;overflow:hidden}.hero h1{font-size:30px;margin-bottom:8px}.hero p{color:var(--muted);margin:0;max-width:550px}.hero-art{flex-shrink:0;display:flex;align-items:center;gap:14px;color:var(--brand);font-size:55px;transform:rotate(-8deg);margin-right:14px}.hero-art span{display:grid;place-items:center;border-radius:18px;background:#fff;width:76px;height:76px;box-shadow:0 4px 16px #275d7510}.hero-art span:last-child{background:var(--spark-soft);color:var(--spark);font-size:45px;transform:translateY(-6px) rotate(15deg)}.channel-row{display:flex;align-items:center;gap:9px;margin:0 0 26px;overflow-x:auto;padding:0 0 5px;scrollbar-width:thin}.chip{border:1px solid transparent;background:white;border-radius:999px;padding:9px 20px;min-height:42px;white-space:nowrap;color:var(--muted)}.chip.active{background:var(--brand);color:#fff;font-weight:600}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.section-heading h2{margin:0;display:flex;gap:9px;align-items:center}.section-heading h2:before{content:"";width:4px;height:20px;border-radius:2px;background:var(--brand-bright)}.sort-select{background:transparent;border:0;color:var(--muted);padding:8px;min-height:40px}.video-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:27px 20px}.video-card{min-width:0}.video-card>a{display:block;color:inherit}.cover{aspect-ratio:16/9;background:#e8edf2;border-radius:10px;overflow:hidden;position:relative;display:grid;place-items:center;color:#8595a6}.cover img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.video-card a:hover .cover img{transform:scale(1.025)}.cover-placeholder{font-size:36px;color:#a9bac9}.cover .duration,.cover .source-badge{position:absolute;border-radius:4px;color:white;font-size:11px;padding:2px 6px;background:#142334bf;line-height:1.5}.cover .duration{right:8px;bottom:8px}.cover .source-badge{left:8px;top:8px;background:var(--spark)}.video-card h3{font-size:15px;margin:11px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:43px;font-weight:600}.card-meta{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);overflow:hidden}.card-meta>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-stats{font-size:12px;color:#758196;margin-top:4px;display:flex;gap:12px}.avatar{display:inline-grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:12px;font-weight:600;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.large{width:60px;height:60px;font-size:22px}.empty-state{background:white;border:1px dashed var(--border);border-radius:14px;padding:55px 25px;text-align:center;grid-column:1/-1}.empty-state .empty-icon{font-size:38px;line-height:1.2;color:#a4b6c6;margin-bottom:18px}.empty-state h2{font-size:18px;margin-bottom:9px}.empty-state p{max-width:500px;margin:0 auto 22px;color:var(--muted)}.loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:80px 20px;color:var(--muted)}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.panel{background:white;border:1px solid var(--border);border-radius:var(--radius);padding:26px}.panel+.panel{margin-top:22px}.stack{display:grid;gap:20px}.two-col{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.form-group{margin-bottom:22px}.form-group>label,.form-label{display:block;font-weight:600;margin-bottom:8px}.form-group small,.help{font-size:12px;color:var(--muted);display:block;margin-top:7px}.form-input,textarea,select.form-input{border:1px solid var(--border);border-radius:8px;background:white;color:var(--text);width:100%;min-height:44px;padding:10px 12px}textarea{min-height:130px;resize:vertical}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding-top:8px}.error-message{color:var(--danger);font-size:13px;margin:10px 0;white-space:pre-wrap}.notice{padding:15px 18px;background:var(--brand-soft);color:#225772;border-radius:9px;margin-bottom:22px;line-height:1.7}.notice.warning{background:#fff5dd;color:#856016}.notice.danger{background:#fff0ee;color:var(--danger)}.notice p:last-child{margin-bottom:0}.upload-zone{border:2px dashed #c9d9e7;border-radius:12px;text-align:center;padding:36px 22px;display:block;background:#fafcfe;cursor:pointer;transition:border-color .15s}.upload-zone:hover,.upload-zone.dragover{border-color:var(--brand-bright);background:var(--brand-soft)}.upload-zone input{max-width:100%;margin-top:15px;font-size:12px}.upload-zone .upload-icon{display:block;font-size:38px;color:var(--brand);margin-bottom:12px;line-height:1}.upload-zone strong{display:block;font-size:16px}.upload-zone small{color:var(--muted);display:block;margin-top:7px}.file-list{margin:16px 0 0;display:grid;gap:8px}.file-row{display:flex;align-items:center;gap:12px;padding:12px;background:var(--page);border-radius:8px;min-width:0}.file-info{min-width:0;flex:1}.file-info strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-info small{color:var(--muted);font-size:12px}.progress{height:6px;background:#e0e8ef;border-radius:4px;overflow:hidden;margin-top:9px}.progress>span{display:block;background:var(--brand-bright);height:100%;transition:width .15s}.text-button{min-height:44px;padding:8px;color:var(--brand)}.creation-options{display:grid;grid-template-columns:1fr 1fr;gap:24px}.creation-option{padding:36px 30px;background:white;border:1px solid var(--border);border-radius:14px;color:var(--text);display:block;transition:border-color .15s,transform .15s}.creation-option:hover{border-color:#8ac4e2;transform:translateY(-2px)}.creation-option .option-icon{width:60px;height:60px;background:var(--brand-soft);border-radius:14px;display:grid;place-items:center;font-size:30px;color:var(--brand);margin-bottom:26px}.creation-option.ai .option-icon{background:var(--spark-soft);color:var(--spark)}.creation-option h2{margin-bottom:12px}.creation-option p{color:var(--muted);min-height:44px;margin-bottom:24px}.creation-option .link{color:var(--brand);font-weight:600}.creation-option.ai .link{color:var(--spark)}.watch-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px}.player-shell{background:#111a26;border-radius:12px;overflow:hidden;min-height:200px;aspect-ratio:16/9;display:grid;place-items:center;color:#ced8e6}.player-shell video{display:block;width:100%;height:100%;max-height:75vh;object-fit:contain}.player-shell p{text-align:center;padding:25px;margin:0}.watch-title{margin-top:23px;font-size:24px}.watch-meta{color:var(--muted);font-size:13px;display:flex;gap:16px;flex-wrap:wrap}.watch-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:20px 0;border-bottom:1px solid var(--border);margin-bottom:20px}.watch-actions .button{background:white;color:var(--muted);border-color:var(--border);font-weight:500}.watch-actions .button.selected{background:var(--brand-soft);color:var(--brand);border-color:#aed7ed}.description{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);line-height:1.8}.author-line{display:flex;align-items:center;gap:10px;margin-bottom:15px}.author-line small{display:block;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.tag,.badge{font-size:11px;border-radius:5px;background:#eef2f6;color:var(--muted);padding:4px 8px;display:inline-flex;align-items:center;line-height:1.4}.badge.ai{background:var(--spark-soft);color:var(--spark)}.badge.success{background:#eaf7ef;color:var(--success)}.badge.warning{background:#fff5dd;color:#856016}.badge.danger{background:#fff0ee;color:var(--danger)}.comments{margin-top:32px}.comment-form{display:flex;gap:12px;margin-bottom:26px}.comment-form textarea{min-height:92px}.comment-form>div{flex:1}.comment-form .form-actions{justify-content:flex-end}.comment{display:flex;align-items:flex-start;gap:12px;padding:22px 0;border-top:1px solid var(--border)}.comment-content{min-width:0;flex:1}.comment-head{display:flex;align-items:center;gap:10px;font-size:13px}.comment-head time{font-size:11px;color:var(--muted)}.comment p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0;font-size:14px;line-height:1.8}.comment-footer{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:12px}.comment-footer button{min-height:35px;padding:4px 0}.summary-comment{border:1px solid #f0d6e0;border-radius:12px;background:#fff9fb;padding:22px;margin-bottom:15px}.summary-comment .avatar{background:var(--spark-soft);color:var(--spark)}.related-list{display:grid;gap:20px}.related-list .video-card h3{font-size:13px;min-height:0}.aside-title{font-size:16px;margin-bottom:16px}.profile-card{display:flex;align-items:center;gap:18px;margin-bottom:30px}.profile-card h1{margin-bottom:4px;font-size:26px}.profile-card p{margin:0;color:var(--muted)}.profile-card .profile-actions{margin-left:auto;display:flex;gap:12px}.tabs{display:flex;gap:25px;border-bottom:1px solid var(--border);margin-bottom:25px;overflow-x:auto}.tab{border-bottom:3px solid transparent;border-radius:0;padding:12px 2px;min-height:48px;color:var(--muted);white-space:nowrap}.tab.active{border-color:var(--brand-bright);color:var(--brand);font-weight:600}.library-list{display:grid;gap:14px}.library-item{display:grid;grid-template-columns:160px minmax(0,1fr) auto;gap:20px;align-items:center;background:white;border:1px solid var(--border);border-radius:12px;padding:16px}.library-item h3{margin-bottom:6px}.library-item .item-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;max-width:240px}.item-meta{font-size:12px;color:var(--muted);margin:7px 0}.item-reason{font-size:12px;color:#976010;margin:7px 0;overflow-wrap:anywhere}.job-timeline{list-style:none;margin:26px 0;padding:0;display:grid;gap:0}.job-timeline li{display:flex;gap:15px;padding-bottom:25px;position:relative;color:var(--muted)}.job-timeline li:not(:last-child):before{content:"";position:absolute;left:13px;top:28px;bottom:2px;width:2px;background:var(--border)}.step-dot{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--border);border-radius:50%;background:white;flex-shrink:0;font-size:11px;z-index:1}.job-timeline .done .step-dot{background:var(--brand-soft);color:var(--brand);border-color:var(--brand-soft)}.job-timeline .current{color:var(--brand);font-weight:600}.job-timeline .current .step-dot{background:var(--brand);border-color:var(--brand);color:#fff}.job-timeline strong{font-weight:500;display:block;padding-top:3px}.job-timeline small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.job-header{display:flex;gap:20px;align-items:center;justify-content:space-between}.job-header h2{margin-bottom:5px}.key-values{display:grid;gap:14px;font-size:13px}.key-value{display:flex;justify-content:space-between;gap:16px}.key-value>span:first-child{color:var(--muted)}.key-value>span:last-child{text-align:right;overflow-wrap:anywhere}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}.stat-box{background:white;border:1px solid var(--border);border-radius:10px;padding:18px}.stat-box strong{display:block;font-size:25px;color:var(--brand)}.stat-box span{font-size:12px;color:var(--muted)}.admin-filter{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.admin-filter .form-input{max-width:220px}.audit-list{display:grid;gap:12px}.audit-row{padding:16px;background:white;border:1px solid var(--border);border-radius:8px;font-size:13px;overflow-wrap:anywhere}.audit-row time{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.footer{max-width:1440px;padding:26px 40px 35px;margin:auto;border-top:1px solid var(--border);display:flex;gap:20px;justify-content:space-between;font-size:12px;color:#758196}.footer>span:first-child{font-weight:600}.bottom-nav{display:none}.toasts{position:fixed;z-index:100;right:24px;bottom:24px;max-width:400px;display:grid;gap:10px}.toast{padding:14px 20px;border-radius:10px;color:white;background:#233345;box-shadow:0 4px 18px #18212f26;font-size:13px}.toast.error{background:var(--danger)}dialog{padding:0;border:1px solid var(--border);border-radius:16px;max-width:min(92vw,460px);width:460px;box-shadow:0 20px 80px #18212f33;color:var(--text)}dialog::backdrop{background:#12263c66}#dialog-content{padding:28px}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.dialog-heading h2{margin:0}.dialog-close{width:36px;height:36px;font-size:25px;color:var(--muted)}.dialog-body{color:var(--muted);line-height:1.8}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.status-banner{background:#fff5dd;color:#856016;padding:10px 40px;text-align:center;font-size:12px}.load-more{text-align:center;margin-top:30px}.inline-divider{height:1px;background:var(--border);margin:22px 0}.check-row{display:flex;align-items:flex-start;gap:10px}.check-row input{margin-top:5px;width:17px;height:17px;accent-color:var(--brand)}.check-row label{font-size:13px;color:var(--muted)}.provider-note{font-size:12px;line-height:1.8;color:var(--muted)}.page-back{display:inline-flex;align-items:center;min-height:40px;color:var(--muted);margin-bottom:14px}.subtle-count{font-size:13px;color:var(--muted);font-weight:400}.nowrap{white-space:nowrap}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.break-word{overflow-wrap:anywhere}
.notice-top{margin-top:26px}#ai-prompt{min-height:170px}.progress>span{width:0}#dev-login-form>button,#dialog-content>a.button{width:100%}
.generation-warning{min-width:0;margin:20px 0;overflow-wrap:anywhere}
.generation-warning p{margin:5px 0 0}
.generation-warning.compact{font-size:13px;padding:12px 14px;margin:16px 0 0}
.form-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.form-label-row label{font-weight:600}
.form-label-row .text-button{padding:5px 0}
#ai-instructions{min-height:240px;line-height:1.7}
.voice-select-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.voice-select-row select{flex:1 1 180px;min-width:0}
.voice-select-row button{flex:0 0 auto}
#voice-preview-audio{display:block;width:100%;margin-top:14px;max-width:100%}
#voice-preview-audio[hidden]{display:none}
.material-report{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.material-report details{margin-top:5px}
.material-report summary{cursor:pointer}
.material-report ul{margin:5px 0;padding-left:18px}
.job-workspace{margin-top:22px}
.job-status-panel .form-actions:empty,.job-status-panel .error-message:empty{display:none}
.job-workspace .stack{align-content:start}
.job-workspace .panel+.panel{margin-top:0}
.job-composer-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.job-composer-meta .help:first-child{flex:1;min-width:0}
.job-composer-meta .help:last-child{flex-shrink:0}
#job-message{min-height:130px;line-height:1.7}
#job-message:read-only{background:#f7f9fb}
.job-details{margin-top:24px;min-width:0}
.job-details>summary,.job-script>summary{font-weight:600;cursor:pointer;min-height:44px;display:list-item;padding:10px 0}
.panel>.job-details:first-child{margin-top:0}
.job-messages,.job-events,.job-revisions,.story-scenes{list-style:none;padding:0;margin:12px 0 0;min-width:0}
.job-messages{display:grid;gap:12px}
.job-message{padding:15px;border:1px solid var(--border);border-radius:10px;background:#f8fafc}
.job-message.from-user{background:var(--brand-soft);border-color:#d7eaf5}
.job-message-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.job-message-heading time,.job-events time{font-size:11px;color:var(--muted)}
.job-message p,.job-script p,.story-scenes p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;line-height:1.8}
.job-events{max-height:420px;overflow-y:auto;scrollbar-width:thin}
.job-events li{display:grid;grid-template-columns:1fr;gap:5px;border-left:2px solid var(--border);padding:0 0 18px 15px;margin-left:4px;overflow-wrap:anywhere}
.job-events p{margin:3px 0 0;white-space:pre-wrap}
.job-revisions li{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:12px 0;border-top:1px solid var(--border);overflow-wrap:anywhere}
.job-revisions li>div{min-width:0}
.job-revisions small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.job-revisions .current-revision>div>a{font-weight:700}
.job-revisions .text-button{flex-shrink:0}
.story-scenes li{padding:16px 0;border-top:1px solid var(--border);overflow-wrap:anywhere}
.story-scenes .tags{margin-bottom:0}
.job-workspace [hidden],.job-status-panel [hidden]{display:none}
@media(max-width:480px){.job-composer-meta{flex-wrap:wrap;gap:4px}.job-composer-meta .help:first-child{flex-basis:100%}.job-composer-meta .help:last-child{margin-left:auto}.job-workspace .form-actions .button{white-space:normal;overflow-wrap:anywhere}}
.cover>img,.cover-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cover>img[hidden]{display:none}
.cover-preview{opacity:0;pointer-events:none;transition:opacity .16s;background:transparent}
.cover.preview-playing .cover-preview{opacity:1}
.cover .duration,.cover .source-badge{z-index:1;pointer-events:none}
@media(prefers-reduced-motion:reduce){.cover img,.cover-preview{transition:none}.video-card a:hover .cover img{transform:none}}
@media(min-width:1440px){.video-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hero{padding:36px 40px}}@media(max-width:1199px){.header-inner{gap:24px;padding:0 24px}.header-nav{gap:18px}.page{padding:28px 24px 48px}.video-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.watch-layout{grid-template-columns:minmax(0,1fr) 260px;gap:22px}.two-col{grid-template-columns:minmax(0,1fr) 270px}.footer{padding-left:24px;padding-right:24px}}@media(max-width:900px){.header-nav>a:not(.button){display:none}.header-inner{gap:20px}.global-search{max-width:none}.watch-layout{grid-template-columns:1fr}.watch-aside{padding-top:25px;border-top:1px solid var(--border)}.related-list{grid-template-columns:repeat(3,minmax(0,1fr))}.two-col{grid-template-columns:1fr}.two-col>aside{order:2}.library-item{grid-template-columns:140px minmax(0,1fr)}.library-item .item-actions{grid-column:2;justify-content:flex-start;max-width:none}.hero-art{font-size:44px;margin-right:0}.hero-art span{width:60px;height:60px}}
/* Allow user names, titles and form controls to shrink inside flex/grid tracks. */
.header-inner,.global-search,.header-nav,.profile-identity,.job-header>div,
.author-line>div,.comment-form>div,.two-col>*,.watch-layout>*,.form-row>*{min-width:0}
h1,h2,h3,.profile-card p,.author-line strong,.job-header,.item-meta,.toast{overflow-wrap:anywhere}
.tab,.chip{flex:0 0 auto}
.card-stats{flex-wrap:wrap}
.dialog-close{flex-shrink:0;min-width:44px;min-height:44px}
dialog{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
html:has(dialog[open]){overflow:hidden}
.profile-identity{flex:1}
.comment-footer{flex-wrap:wrap}
.login-required .global-search,.login-required .header-nav>a,.login-required .bottom-nav{display:none}
.login-required .header-inner{justify-content:space-between}
.login-required .page{display:grid;place-items:center}
.login-required .empty-state{width:min(100%,560px)}

@media(max-width:767px){
  :root{--mobile-nav-height:64px}
  html{scroll-padding-top:132px;scroll-padding-bottom:calc(var(--mobile-nav-height) + 16px + env(safe-area-inset-bottom))}
  body{padding-bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom))}
  body.login-required{padding-bottom:env(safe-area-inset-bottom)}
  h1{font-size:24px}
  .topbar{height:auto;padding-top:env(safe-area-inset-top)}
  .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:8px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left))}
  .brand{font-size:17px;gap:7px;min-height:44px}
  .brand-mark{width:33px;height:33px;border-radius:10px;font-size:27px;flex-shrink:0}
  .brand small{font-size:8px;letter-spacing:2px}
  .header-nav{grid-column:2;grid-row:1;gap:0;margin-left:0;justify-content:flex-end}
  .header-nav>.button{display:none}
  .account-button{font-size:14px;min-width:44px;max-width:min(40vw,160px);min-height:44px;padding:8px 12px;background:var(--brand-soft);border-radius:22px}
  .global-search{grid-column:1/-1;grid-row:2;width:100%;max-width:none;padding:0 4px 0 12px;gap:6px}
  .global-search input{height:44px;font-size:16px}
  .global-search>span{font-size:24px;flex-shrink:0}
  .global-search button{font-size:14px;min-width:56px;min-height:44px;padding:8px 10px;color:var(--brand);flex-shrink:0}
  .page{padding:22px max(16px,env(safe-area-inset-right)) 32px max(16px,env(safe-area-inset-left));min-height:calc(100dvh - 270px)}
  .page-heading{margin-bottom:24px;gap:12px;flex-wrap:wrap}
  .page-heading>div{min-width:0;flex:1 1 200px}
  .page-heading p{font-size:14px;margin-bottom:0}
  .page-heading .button{font-size:13px;padding:9px 12px}
  .hero{padding:22px;margin-bottom:24px;gap:15px}
  .hero h1{font-size:25px}
  .hero p{font-size:13px;line-height:1.8}
  .hero-art{display:none}
  .eyebrow{font-size:10px;margin-bottom:9px}
  .channel-row{gap:7px;margin-bottom:20px}
  .chip{padding:8px 16px;font-size:14px;min-height:44px}
  .section-heading{margin-bottom:16px;flex-wrap:wrap}
  .section-heading h2{font-size:18px;min-width:0}
  .section-heading h2:before{flex-shrink:0}
  .video-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}
  .video-card h3{font-size:14px;line-height:1.6;min-height:44px;margin:8px 0 5px}
  .cover{border-radius:8px}
  .card-meta,.card-stats{font-size:12px;gap:5px}
  .card-stats{gap:3px 8px}
  .card-meta .avatar{width:22px;height:22px;font-size:10px}
  .cover .source-badge,.cover .duration{font-size:10px;left:5px;top:5px}
  .cover .duration{left:auto;top:auto;right:5px;bottom:5px}
  .panel{padding:20px}
  .two-col{gap:20px}
  .form-row{gap:12px}
  .form-input,textarea,select.form-input,.sort-select{font-size:16px}
  .form-actions>.button{flex:1 1 auto}
  .button.small,.watch-actions .button{min-height:44px;font-size:13px}
  .creation-options{grid-template-columns:1fr;gap:18px}
  .creation-option{padding:24px}
  .creation-option .option-icon{width:48px;height:48px;margin-bottom:16px;font-size:25px}
  .creation-option h2{font-size:18px;margin-bottom:8px}
  .creation-option p{font-size:14px;min-height:0;margin-bottom:17px}
  .creation-option .link{display:block}
  .footer{margin-bottom:0;padding:22px max(16px,env(safe-area-inset-right)) 22px max(16px,env(safe-area-inset-left));display:grid;gap:6px;font-size:12px}
  .bottom-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border-top:1px solid var(--border);background:white;z-index:30}
  .bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:12px;min-height:var(--mobile-nav-height)}
  .bottom-nav a>span{font-size:24px;line-height:1.1}
  .bottom-nav a.active{color:var(--brand);font-weight:700}
  .bottom-nav a[data-nav=create]>span{background:var(--spark);color:white;border-radius:9px;padding:1px 13px;font-size:22px}
  .toasts{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:calc(var(--mobile-nav-height) + 16px + env(safe-area-inset-bottom));max-width:none;pointer-events:none}
  .toast{padding:12px 16px}
  .watch-layout{gap:20px}
  .player-shell{min-height:0}
  .watch-title{font-size:21px;margin-top:19px}
  .watch-meta{font-size:12px;gap:8px 12px}
  .watch-actions{gap:8px;padding:17px 0}
  .watch-actions .button{padding:8px 12px;flex:1 1 auto}
  .related-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .comment-form{gap:8px}
  .comment-form>.avatar{display:none}
  .comment{gap:9px;padding:18px 0}
  .summary-comment{padding:17px}
  .comment-head{flex-wrap:wrap;gap:6px}
  .comment-head strong{overflow-wrap:anywhere}
  .comment p{font-size:14px}
  .comment-footer{gap:4px 14px}
  .comment-footer button{min-height:44px}
  .profile-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center}
  .profile-card h1{font-size:23px}
  .profile-card .profile-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;margin:0;padding:0;gap:10px}
  .profile-actions>.button{flex:1 1 120px}
  .profile-card p{font-size:13px}
  .library-item{grid-template-columns:100px minmax(0,1fr);gap:12px;padding:12px;min-width:0}
  .library-item>div{min-width:0}
  .library-item h3{font-size:14px}
  .library-item .item-actions{grid-column:1/-1;gap:8px}
  .library-item .item-actions .button{flex:1 1 auto;font-size:12px;padding:8px 10px}
  .item-meta{font-size:12px}
  .tabs{gap:20px;margin-bottom:20px;scroll-padding-inline:4px}
  .tab{font-size:14px}
  .admin-stats{gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}
  .stat-box{padding:12px}
  .stat-box strong{font-size:21px}
  .stat-box span{font-size:12px}
  .admin-filter{gap:10px}
  .admin-filter .form-input{max-width:none;flex:1 1 160px;min-width:0}
  .status-banner{padding:10px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));text-align:left}
  .job-header{align-items:flex-start;gap:12px;flex-wrap:wrap}
  .job-header>div{flex:1 1 180px}
  .empty-state{padding:36px 18px}
  .upload-zone{padding:24px 12px}
  dialog{max-width:calc(100% - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
  #dialog-content{padding:20px}
  .dialog-heading{gap:12px;align-items:flex-start}
  .dialog-heading h2{font-size:20px;padding-top:7px}
  .dialog-actions{flex-wrap:wrap}
  .dialog-actions .button{flex:1 1 100px;white-space:normal}
}
@media(max-width:480px){
  .form-row{grid-template-columns:minmax(0,1fr);gap:0}
  .admin-filter{display:grid;grid-template-columns:minmax(0,1fr)}
}
@media(max-width:359px){
  .video-grid,.related-list{grid-template-columns:minmax(0,1fr)}
  .hero{padding:20px}
  .hero h1{font-size:23px}
}
@media(max-width:900px) and (max-height:500px){
  .topbar{position:static}
  .header-inner,.page,.footer,.status-banner{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}
  .toasts{left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right))}
}
/* Constrain portrait videos to the stage so intrinsic grid sizing cannot clip native controls. */
.player-shell{position:relative;width:100%;max-height:75vh}
.player-shell video{position:absolute;inset:0;min-width:0;min-height:0;max-height:none}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition:none!important;scroll-behavior:auto!important}}
