:root{--color-bg: #f6f8fb;--color-surface: #ffffff;--color-surface-muted: #f1f5f9;--color-border: #d6dde5;--color-border-strong: #b7c0ca;--color-text: #0f172a;--color-text-muted: #475569;--color-text-subtle: #64748b;--color-primary: #0f766e;--color-primary-hover: #115e59;--color-primary-soft: #ccfbf1;--color-accent: #2563eb;--color-warning: #f59e0b;--color-danger: #b42318;--color-danger-soft: #fee2e2;--color-success: #15803d;--color-success-soft: #dcfce7;--color-impersonate: #ea580c;--color-role-super: #7c3aed;--color-role-company: #2563eb;--color-role-editor: #0f766e;--color-role-viewer: #64748b;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 8px 24px rgba(15, 23, 42, .1);--shadow-lg: 0 24px 60px rgba(15, 23, 42, .18);--font-base: 14px;--font-h1: 22px;--font-h2: 18px;--font-h3: 15px;--line-base: 1.5;--header-height: 56px;--impersonation-height: 40px}:root{color:var(--color-text);background:var(--color-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--font-base);line-height:var(--line-base)}html,body,#app{height:100%}*{box-sizing:border-box}body{margin:0;overflow:hidden}.app-root{display:grid;grid-template-rows:var(--header-height) auto minmax(0,1fr);height:100dvh;min-height:0;overflow:hidden;background:var(--color-bg)}.app-root[data-anonymous=true] .topbar__nav,.app-root[data-anonymous=true] .topbar__user{visibility:hidden}.page-container{min-height:0;min-width:0;overflow:hidden;display:flex;flex-direction:column}.topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-4);height:var(--header-height);padding:0 var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);z-index:5}.topbar__brand{display:flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--color-text);text-decoration:none;cursor:pointer}.topbar__brand-mark{width:28px;height:28px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--color-primary),#14b8a6);display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;letter-spacing:.5px}.topbar__env{margin-left:var(--space-2);padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-subtle);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.topbar__env[data-env=prod]{background:var(--color-danger-soft);color:var(--color-danger)}.topbar__nav{display:flex;align-items:center;gap:var(--space-1);justify-content:center}.topbar__nav a{padding:6px 12px;border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-weight:500;font-size:13px;position:relative}.topbar__nav a:hover{background:var(--color-surface-muted);color:var(--color-text)}.topbar__nav a[aria-current=page]{color:var(--color-primary);background:var(--color-primary-soft)}.topbar__user{display:flex;align-items:center;gap:var(--space-3);position:relative}.topbar__user-info{display:grid;text-align:right;line-height:1.2;gap:2px}.topbar__user-info strong{font-size:13px;font-weight:600;color:var(--color-text)}.topbar__user-info span{font-size:11px;color:var(--color-text-subtle)}.topbar__menu-button{display:flex;align-items:center;gap:var(--space-2);background:transparent;border:0;padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer}.topbar__menu-button:hover{background:var(--color-surface-muted)}.topbar__menu{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:6px;display:none;z-index:30}.topbar__menu[data-open=true]{display:block}.topbar__menu button,.topbar__menu a{display:block;width:100%;text-align:left;padding:8px 10px;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--color-text);text-decoration:none;font-size:13px;cursor:pointer}.topbar__menu button:hover,.topbar__menu a:hover{background:var(--color-surface-muted)}.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#0f766e,#14b8a6);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600;text-transform:uppercase;flex-shrink:0}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;background:var(--color-surface-muted);color:var(--color-text-muted)}.badge--role-super{background:color-mix(in srgb,var(--color-role-super) 14%,#fff);color:var(--color-role-super)}.badge--role-company{background:color-mix(in srgb,var(--color-role-company) 14%,#fff);color:var(--color-role-company)}.badge--role-editor{background:color-mix(in srgb,var(--color-role-editor) 14%,#fff);color:var(--color-role-editor)}.badge--role-viewer{background:color-mix(in srgb,var(--color-role-viewer) 14%,#fff);color:var(--color-role-viewer)}.impersonation-banner{height:var(--impersonation-height);background:var(--color-impersonate);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-5);font-size:13px}.impersonation-banner[hidden]{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);padding:8px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease}.btn:hover:not(:disabled){border-color:var(--color-text-muted)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--ghost{background:transparent;border-color:transparent;color:var(--color-text-muted)}.btn--ghost:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.btn--danger{background:var(--color-surface);border-color:var(--color-danger);color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger-soft)}.btn--sm{padding:4px 10px;font-size:12px}.btn--lg{padding:10px 18px;font-size:14px}.field{display:grid;gap:4px}.field__label{font-size:12px;font-weight:500;color:var(--color-text-muted)}.field__input{padding:8px 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;color:var(--color-text)}.field__input:focus{outline:2px solid var(--color-primary-soft);outline-offset:0;border-color:var(--color-primary)}.field__error{font-size:12px;color:var(--color-danger)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.card__header,.card__footer{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.card__footer{border-top:1px solid var(--color-border);border-bottom:0}.card__body{padding:var(--space-5)}.table{width:100%;border-collapse:collapse;background:var(--color-surface)}.table__head{background:var(--color-surface-muted);color:var(--color-text-muted);font-size:12px;font-weight:600;text-align:left}.table__head th,.table__cell{padding:10px 14px;border-bottom:1px solid var(--color-border)}.table__row:hover{background:var(--color-surface-muted);cursor:pointer}.table__row[data-clickable=false]:hover{background:transparent;cursor:default}.table__cell{font-size:13px;color:var(--color-text)}.table__actions{display:flex;gap:6px;justify-content:flex-end}.modal{border:0;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:0;max-width:560px;width:calc(100vw - 32px)}.modal::backdrop{background:#0f172a6b}.modal__head,.modal__foot{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5)}.modal__head{border-bottom:1px solid var(--color-border)}.modal__foot{border-top:1px solid var(--color-border);gap:var(--space-2);justify-content:flex-end}.modal__body{padding:var(--space-5);display:grid;gap:var(--space-3)}.modal--wide{max-width:800px}.modal__tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);padding:0 var(--space-5)}.modal__tab{padding:var(--space-2) var(--space-4);background:none;border:none;border-bottom:2px solid transparent;font-size:14px;font-weight:500;color:var(--color-text-muted, #666);cursor:pointer;margin-bottom:-1px}.modal__tab--active{border-bottom-color:var(--color-primary, #2563eb);color:var(--color-primary, #2563eb);font-weight:600}.line-cfg-fieldset{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);display:grid;gap:var(--space-2)}.line-cfg-fieldset legend{font-size:13px;font-weight:600;color:var(--color-text-muted, #555);padding:0 var(--space-1)}.line-cfg-check{display:flex;align-items:center;gap:var(--space-2);font-size:14px;cursor:pointer}.line-cfg-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-2)}.line-cfg-deploy-result{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:14px}.line-cfg-guide{font-size:13px;line-height:1.7;max-height:60vh;overflow-y:auto}.line-cfg-guide h3{font-size:14px;margin-top:var(--space-4);margin-bottom:var(--space-2)}.line-cfg-guide ol,.line-cfg-guide ul{padding-left:var(--space-5);margin-bottom:var(--space-2)}.line-cfg-guide table{width:100%;border-collapse:collapse;margin:var(--space-2) 0}.line-cfg-guide th,.line-cfg-guide td{border:1px solid var(--color-border);padding:var(--space-1) var(--space-2);font-size:12px}.line-linkages-table{width:100%;font-size:12px;border-collapse:collapse;max-height:50vh;overflow-y:auto;display:block}.line-linkages-table th,.line-linkages-table td{border:1px solid var(--color-border);padding:4px 8px;text-align:left;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.toast-stack{position:fixed;right:var(--space-5);bottom:var(--space-5);display:grid;gap:var(--space-2);z-index:100;pointer-events:none}.toast{pointer-events:auto;background:var(--color-text);color:#fff;border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;box-shadow:var(--shadow-md);min-width:220px;max-width:360px;opacity:0;transform:translateY(8px);transition:opacity .16s ease,transform .16s ease}.toast[data-visible=true]{opacity:1;transform:translateY(0)}.toast--success{background:var(--color-success)}.toast--error{background:var(--color-danger)}.page{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden}.page__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.page__title{margin:0;font-size:var(--font-h1);font-weight:600}.page__actions{display:flex;gap:var(--space-2)}.page__body{padding:var(--space-6);overflow:auto;flex:1;min-height:0}.project-table-wrap{overflow:auto}.project-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.project-table th,.project-table td{padding:10px 12px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;font-size:13px}.project-table th{background:var(--color-surface-muted);color:var(--color-text-muted);font-weight:600;white-space:nowrap}.project-table tr:last-child td{border-bottom:0}.table-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.page__breadcrumb{font-size:12px;color:var(--color-text-subtle)}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border)}.tabs button{background:transparent;border:0;padding:8px 14px;font-size:13px;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent}.tabs button[aria-selected=true]{color:var(--color-primary);border-bottom-color:var(--color-primary)}.page__empty{display:grid;gap:var(--space-2);place-items:center;padding:var(--space-12) var(--space-6);color:var(--color-text-muted);text-align:center}.page__empty strong{color:var(--color-text);font-size:var(--font-h2)}.login-screen{display:grid;place-items:center;height:100%;padding:var(--space-6)}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-8);width:min(420px,100%);display:grid;gap:var(--space-4);text-align:center}.login-card h1{margin:0;font-size:var(--font-h1)}.login-card p{margin:0;color:var(--color-text-muted)}.auth-screen{align-items:start;padding-top:var(--space-10);overflow:auto}.auth-card{width:min(460px,100%);text-align:left}.auth-brand{display:grid;justify-items:center;gap:2px;margin-bottom:var(--space-2);text-align:center}.auth-brand__main{color:var(--color-text);font-size:28px;font-weight:700;line-height:1.1}.auth-brand__sub{color:var(--color-text-muted);font-size:12px;font-weight:600;letter-spacing:0;text-transform:uppercase}.auth-form{display:grid;gap:var(--space-4)}.auth-form[hidden]{display:none}.auth-form h1{text-align:center}.auth-card__lead,.auth-help,.auth-terms{color:var(--color-text-muted);font-size:13px;line-height:1.6;text-align:center}.auth-terms{text-align:left}.auth-terms a,.auth-links a{color:var(--color-primary);text-decoration:none}.auth-terms a:hover,.auth-links a:hover{text-decoration:underline}.auth-check{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:13px}.auth-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);font-size:13px}.auth-message{padding:9px 11px;border-radius:var(--radius-sm);font-size:13px;line-height:1.5}.auth-message[hidden]{display:none}.auth-message--error{background:var(--color-danger-soft);color:var(--color-danger)}.auth-message--success{background:color-mix(in srgb,var(--color-success) 13%,#fff);color:var(--color-success)}.btn-full{justify-content:center;width:100%}.btn.is-loading{position:relative}.auth-code-input{text-align:center;font-size:18px}.viewer-banner{background:color-mix(in srgb,var(--color-warning) 14%,#fff);color:var(--color-warning);padding:var(--space-2) var(--space-5);border-bottom:1px solid color-mix(in srgb,var(--color-warning) 30%,transparent);font-size:12px}.progress{width:100%;height:8px;background:var(--color-surface-muted);border-radius:var(--radius-pill);overflow:hidden}.progress__bar{height:100%;background:var(--color-primary);width:0%;transition:width .12s ease}button,input,select{font:inherit}button,.file-button{border:1px solid #b7c0ca;background:#fff;color:#17202a;border-radius:6px;padding:8px 10px;cursor:pointer}button:hover,.file-button:hover{border-color:#68788a}button.primary{background:#0f766e;color:#fff;border-color:#0f766e}button.danger{color:#b42318}button.small{padding:4px 8px;font-size:12px}.shell{display:grid;grid-template-columns:340px minmax(0,1fr);height:100%;min-height:0;overflow:hidden;flex:1}.sidebar{background:#f8fafc;border-right:1px solid #cbd5df;min-height:0;overflow-y:auto;padding:18px 18px 28px}.brand h1{margin:0;font-size:22px}.brand p{margin:4px 0 16px;color:#66788a;line-height:1.5}.panel{border-top:1px solid #d6dde5;padding:14px 0}.panel h2{margin:0 0 10px;font-size:14px}.project-lists{display:grid;gap:12px}.project-list-group{display:grid;gap:6px}.project-list-group h3{margin:0;color:#475569;font-size:12px;font-weight:600}.auth-locked .panel:not(.auth-panel),.auth-locked .workspace{display:none}.auth-status{display:grid;gap:3px;margin-bottom:10px;color:#475569;line-height:1.45}.auth-status span{font-size:12px}.panel-title-row,.canvas-toolbar,.stack-inline{display:flex;align-items:center;justify-content:space-between;gap:8px}.zoom-controls{display:flex;align-items:center;gap:6px;white-space:nowrap}.zoom-controls select{width:86px}.image-parts-list{display:grid;gap:6px}.image-part-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:stretch}.image-part-row>button:first-child{display:grid;gap:2px;min-width:0;text-align:left}.image-part-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-part-row small{color:#64748b;font-size:11px}.file-button{display:block;text-align:center}.file-button input{display:none}.file-button.secondary{background:#f1f5f9}.meta,.hint,.message{color:#64748b;font-size:12px;line-height:1.5;margin-top:8px}.message[data-tone=error]{color:#b42318}.segmented{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #b7c0ca;border-radius:7px;overflow:hidden}.segmented button{border:0;border-radius:0;border-right:1px solid #b7c0ca}.segmented button:last-child{border-right:0}.segmented button.active{background:#1f2937;color:#fff}.release-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.release-tabs label{display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 8px;font-size:12px}.checkbox-line{display:flex;align-items:center;gap:6px}.stack{display:grid;gap:8px}.list{display:grid;gap:6px}.list.empty,.box-editor.empty{color:#64748b}.list-row{display:grid;grid-template-columns:1fr auto;gap:6px}.deployment-row{align-items:start}.deployment-row__body{display:grid;gap:2px;min-width:0}.deployment-row__body .meta{margin-top:0;overflow-wrap:anywhere}.box-editor{display:grid;gap:10px}.box-editor label{display:grid;gap:4px;color:#334155}.box-editor input,.box-editor select,.panel input,.panel select{min-width:0;border:1px solid #b7c0ca;border-radius:6px;padding:7px 8px;background:#fff}.panel label{display:grid;gap:4px;color:#334155}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.workspace{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-height:0;min-width:0;overflow:hidden}.sticky-actionbar{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:#f8fafcf5;border-bottom:1px solid #cbd5df;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sticky-tools{width:min(360px,100%)}.sticky-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.sticky-actions button{white-space:nowrap}.canvas-toolbar{height:44px;padding:0 16px;background:#fff;border-bottom:1px solid #cbd5df;color:#334155}.scroll-area{min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px;background:linear-gradient(45deg,#e3e8ef 25%,transparent 25%),linear-gradient(-45deg,#e3e8ef 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e3e8ef 75%),linear-gradient(-45deg,transparent 75%,#e3e8ef 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px}.empty-state{max-width:460px;margin:20vh auto;display:grid;gap:8px;padding:24px;background:#fff;border:1px solid #cbd5df;border-radius:8px;color:#475569}.empty-state[hidden],.stage[hidden]{display:none}.empty-state strong{color:#1f2937;font-size:18px}.stage{position:relative;width:min-content;margin:0 auto;box-shadow:0 16px 50px #141d262e;background:#fff}.stage>img[hidden]{display:none}.block-stack{position:relative;display:block}.content-block{position:relative;display:block;overflow:hidden}.content-block>img.block-media{display:block;max-width:none;-webkit-user-select:none;user-select:none;pointer-events:none}.content-block[data-dragging=true]{opacity:.5;outline:2px dashed #2563eb;outline-offset:-2px}.block-stack[data-block-dragging=true] .content-block{transition:none}.content-block[data-block-kind=insert]{outline:2px solid #0ea5e9;outline-offset:-2px;background:#f0f9ff}.insert-affordance{position:absolute;left:50%;transform:translate(-50%,-50%);z-index:4}.insert-btn{display:flex;align-items:center;justify-content:center;height:24px;padding:0 12px;border:1px dashed #0ea5e9;border-radius:999px;background:#f0f9ffeb;color:#0369a1;font-size:12px;white-space:nowrap;cursor:pointer;opacity:.45}.insert-affordance:hover .insert-btn{opacity:1;background:#e0f2fe}.insert-btn span{pointer-events:none}.insert-menu{position:absolute;z-index:10;top:100%;left:50%;transform:translate(-50%);margin-top:4px;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 16px #00000026;display:flex;flex-direction:column;overflow:hidden;min-width:180px}.insert-menu[hidden]{display:none}.insert-menu-item{padding:10px 16px;background:none;border:none;text-align:left;cursor:pointer;font-size:13px;white-space:nowrap}.insert-menu-item:hover{background:#f5f5f5}.content-block[data-block-kind=video-slider]{min-height:120px;background:#111}.vs-block-preview{width:100%;height:100%;display:flex;flex-direction:column}.vs-preview{display:flex;gap:4px;overflow:hidden;padding:8px 8px 4px;flex:1;align-items:center}.vs-preview-card img{height:80px;aspect-ratio:16 / 9;object-fit:cover;border-radius:3px;display:block}.vs-empty{color:#fff6;font-size:13px;padding:0 8px}.vs-info{color:#fff9;font-size:11px;padding:0 8px 8px}.vs-block-edit-btn{display:block;width:100%;margin-top:4px;padding:3px 0;font-size:.78rem;background:var(--surface, #1a1a2e);border:1px solid var(--border, #2d2d3d);border-radius:4px;color:var(--text, #e8e8ec);cursor:pointer}.vs-block-edit-btn:hover{border-color:var(--accent, #5b8def)}.vs-editor-overlay{position:fixed;inset:0;background:#0009;z-index:1000;display:flex;align-items:center;justify-content:center}.vs-editor-modal{background:#fff;border-radius:8px;padding:24px;width:min(600px,95vw);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.vs-editor-modal h2{font-size:18px;margin:0}.vs-section h3{font-size:14px;font-weight:600;margin:0 0 8px}.vs-url-row{display:flex;gap:8px}.vs-url-input,.vs-alt-input{flex:1;width:100%;padding:6px 10px;border:1px solid #ccc;border-radius:4px;font-size:13px;box-sizing:border-box}.vs-url-add{padding:6px 14px;background:#1a73e8;color:#fff;border:none;border-radius:4px;cursor:pointer}.vs-url-error{color:#d32f2f;font-size:12px;margin:4px 0 0}.vs-video-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.vs-video-item{display:flex;align-items:center;gap:8px;border:1px solid #eee;border-radius:4px;padding:6px}.vs-video-item img.vs-thumb{width:80px;height:45px;object-fit:cover;border-radius:3px;flex-shrink:0}.vs-video-item .vs-video-id{flex:1;font-size:12px;color:#666;font-family:monospace}.vs-thumb-upload-btn{font-size:12px;cursor:pointer;color:#1a73e8;white-space:nowrap}.vs-thumb-upload-btn input{display:none}.vs-video-remove{background:none;border:none;color:#999;cursor:pointer;font-size:16px;padding:4px}.vs-bg-tabs{display:flex;gap:16px;margin-bottom:12px}.vs-bg-color-row{display:flex;gap:8px;align-items:center}.vs-bg-color-picker{width:40px;height:36px;padding:2px;border:1px solid #ccc;border-radius:4px;cursor:pointer}.vs-bg-color-text{width:90px;padding:6px 10px;border:1px solid #ccc;border-radius:4px;font-family:monospace;font-size:13px}.vs-bg-image-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vs-bg-image-btn{padding:6px 14px;background:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:13px}.vs-bg-image-btn input{display:none}.vs-bg-image-preview{width:80px;height:45px;object-fit:cover;border-radius:3px}.vs-bg-image-clear{background:none;border:none;color:#d32f2f;cursor:pointer;font-size:12px}.vs-editor-actions{display:flex;gap:8px;justify-content:flex-end}.vs-editor-delete{margin-right:auto;padding:8px 16px;background:#fff;border:1px solid #d32f2f;color:#d32f2f;border-radius:4px;cursor:pointer}.vs-editor-cancel{padding:8px 16px;background:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer}.vs-editor-save{padding:8px 16px;background:#1a73e8;color:#fff;border:none;border-radius:4px;cursor:pointer}.block-handle{position:absolute;left:0;width:22px;display:flex;align-items:flex-start;justify-content:center;padding-top:6px;border:0;margin:0;background:#2563eb1f;color:#1d4ed8;cursor:grab;touch-action:none;z-index:1}.block-handle:hover{background:#2563eb3d}.block-handle span{font-size:14px;line-height:1;writing-mode:vertical-rl;letter-spacing:2px;pointer-events:none}.overlay-layer[data-block-dragging=true],.overlay-layer[data-block-dragging=true] .block-handle{cursor:grabbing}.overlay-layer{position:absolute;inset:0;touch-action:pan-x pan-y}.overlay-layer[data-tool=select]{cursor:default}.overlay-layer[data-tool=select] .box{cursor:grab}.overlay-layer[data-tool=select][data-dragging=true],.overlay-layer[data-tool=select][data-dragging=true] .box{cursor:grabbing}.overlay-layer[data-tool=box]{cursor:crosshair}.overlay-layer[data-tool=cut]{cursor:ns-resize}.cut-line{position:absolute;left:0;width:100%;height:0;border:0;border-top:2px solid #ef4444;padding:0;background:transparent;cursor:ns-resize}.deleted-segment{position:absolute;left:0;width:100%;background:repeating-linear-gradient(-45deg,#64748b3d 0 10px,#64748b57 10px 20px);border-top:1px solid rgba(71,85,105,.5);border-bottom:1px solid rgba(71,85,105,.5);pointer-events:none}.deleted-segment span{position:sticky;top:8px;margin:8px;display:inline-block;padding:3px 8px;border-radius:999px;background:#0f172ac7;color:#fff;font-size:12px}.cut-line span{position:absolute;top:-13px;right:8px;background:#ef4444;color:#fff;border-radius:4px;padding:2px 5px;font-size:11px}.box{position:absolute;border:2px solid #2563eb;background:#2563eb1f;cursor:move;z-index:2}.box.clickable{cursor:pointer;border-color:#0f766e;background:#0f766e24}.box.selected{outline:2px solid #f59e0b;outline-offset:1px}.box img{width:100%;height:100%;display:block;pointer-events:none}.box-label{position:absolute;left:4px;top:4px;padding:2px 5px;border-radius:4px;background:#0f172ac7;color:#fff;font-size:11px}.handle{position:absolute;width:10px;height:10px;background:#fff;border:1px solid #0f172a}.handle-nw,.handle-n,.handle-ne{top:-6px}.handle-sw,.handle-s,.handle-se{bottom:-6px}.handle-nw,.handle-w,.handle-sw{left:-6px}.handle-ne,.handle-e,.handle-se{right:-6px}.handle-n,.handle-s{left:calc(50% - 5px)}.handle-w,.handle-e{top:calc(50% - 5px)}.handle-nw,.handle-se{cursor:nwse-resize}.handle-ne,.handle-sw{cursor:nesw-resize}.handle-n,.handle-s{cursor:ns-resize}.handle-e,.handle-w{cursor:ew-resize}.cut-dialog{width:min(640px,calc(100vw - 32px));border:1px solid #cbd5df;border-radius:8px;padding:0}.cut-dialog::backdrop{background:#0f172a6b}.cut-dialog form{padding:16px}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.dialog-head h2{margin:0;font-size:16px}.icon-button{width:32px;height:32px;padding:0}#cutPreview{width:100%;border:1px solid #cbd5df;background:#f8fafc}.cut-controls{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:end;margin:12px 0}.cut-controls label{display:grid;gap:4px}.cut-controls input{border:1px solid #b7c0ca;border-radius:6px;padding:8px}menu{display:flex;justify-content:flex-end;gap:8px;padding:0;margin:0}@media(max-width:900px){.shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.sidebar{max-height:46dvh;min-height:0;border-right:0;border-bottom:1px solid #cbd5df}}.ai-wizard-dialog{width:min(720px,96vw);max-height:90vh;display:flex;flex-direction:column;background:var(--surface, #1a1a2e);border:1px solid var(--border, #2d2d3d);border-radius:12px;padding:0;color:var(--text, #e8e8ec);overflow:hidden}.ai-wizard-dialog::backdrop{background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ai-wizard-header{padding:20px 24px 0;border-bottom:1px solid var(--border, #2d2d3d);flex-shrink:0}.ai-wizard-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ai-wizard-title-row h2{font-size:1.1rem;margin:0;color:var(--text, #e8e8ec)}.ai-wizard-steps{display:flex;align-items:center;gap:4px;padding-bottom:14px;flex-wrap:wrap}.ai-step{font-size:.72rem;padding:3px 10px;border-radius:20px;background:var(--surface2, #252540);color:var(--text-muted, #888);white-space:nowrap}.ai-step.active{background:var(--accent, #5b8def);color:#fff;font-weight:600}.ai-step.done{background:#1f6b3a;color:#7ee8a2}.ai-step-sep{color:var(--border, #2d2d3d);font-size:.65rem}.ai-wizard-body{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:24px}.ai-wizard-section{display:flex;flex-direction:column;gap:10px}.ai-wizard-section h3{font-size:.9rem;font-weight:600;color:var(--text, #e8e8ec);margin:0;padding-bottom:6px;border-bottom:1px solid var(--border, #2d2d3d)}.ai-wizard-section h4{font-size:.8rem;color:var(--text-muted, #888);margin:4px 0 0}.ai-wizard-section textarea,.ai-wizard-section input[type=text]{width:100%;background:var(--surface2, #252540);border:1px solid var(--border, #2d2d3d);border-radius:6px;color:var(--text, #e8e8ec);padding:8px 10px;font-size:.85rem;resize:vertical;box-sizing:border-box}.ai-wizard-info{background:var(--surface2, #252540);border-radius:8px;padding:12px 16px;font-size:.85rem;color:var(--text-muted, #888)}.ai-wizard-footer{padding:14px 24px;border-top:1px solid var(--border, #2d2d3d);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;background:var(--surface, #1a1a2e)}.ai-wizard-foot-actions{display:flex;gap:8px;margin-left:auto}.ai-wizard-credit{font-size:.78rem;color:var(--text-muted, #888)}.ai-wizard-credit-used{font-size:.78rem;color:var(--text-muted, #888);text-align:right}.ai-tone-colors{display:flex;flex-direction:column;gap:8px}.ai-color-row{display:flex;align-items:center;gap:10px}.ai-color-row>span{width:64px;font-size:.82rem;color:var(--text-muted, #888)}.ai-color-row input[type=color]{width:36px;height:36px;border:1px solid var(--border, #2d2d3d);border-radius:4px;background:none;padding:2px;cursor:pointer}.ai-color-row input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent, #5b8def)}.ai-hex-input{width:90px!important;font-family:monospace;font-size:.82rem!important}.ai-color-preview{height:20px;border-radius:4px;margin-top:4px}.ai-color-row.disabled input[type=color],.ai-color-row.disabled .ai-hex-input{opacity:.3;pointer-events:none}.ai-drop-area{border:2px dashed var(--border, #2d2d3d);border-radius:8px;padding:20px;text-align:center;font-size:.82rem;color:var(--text-muted, #888);cursor:pointer;transition:border-color .15s;min-height:64px;display:flex;align-items:center;justify-content:center}.ai-drop-area:hover,.ai-drop-area.drag-over{border-color:var(--accent, #5b8def)}.ai-tone-ref-thumb{max-height:80px;border-radius:4px;object-fit:cover}.ai-ref-list{display:flex;flex-direction:column;gap:10px}.ai-ref-card{display:grid;grid-template-columns:72px 1fr auto;align-items:start;gap:10px;background:var(--surface2, #252540);border:1px solid var(--border, #2d2d3d);border-radius:8px;padding:10px}.ai-ref-thumb{width:72px;height:72px;object-fit:cover;border-radius:4px}.ai-ref-fields{display:flex;flex-direction:column;gap:6px}.ai-ref-fields label{font-size:.78rem;color:var(--text-muted, #888);display:flex;flex-direction:column;gap:3px}.ai-ref-fields input{background:var(--surface, #1a1a2e);border:1px solid var(--border, #2d2d3d);border-radius:4px;color:var(--text, #e8e8ec);padding:4px 8px;font-size:.82rem}.ai-section-card{background:var(--surface2, #252540);border:1px solid var(--border, #2d2d3d);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.ai-section-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.ai-section-header strong{font-size:.9rem}.ai-section-thumb{height:48px;border-radius:4px;object-fit:cover}.ai-section-card label{font-size:.8rem;color:var(--text-muted, #888);display:flex;flex-direction:column;gap:4px}.ai-section-card textarea,.ai-section-card select{background:var(--surface, #1a1a2e);border:1px solid var(--border, #2d2d3d);border-radius:6px;color:var(--text, #e8e8ec);padding:7px 10px;font-size:.83rem;resize:vertical}.ai-image-previews{display:flex;gap:12px;flex-wrap:wrap}.ai-preview-block{flex:1;min-width:160px}.ai-preview-label{font-size:.75rem;color:var(--text-muted, #888);margin-bottom:6px}.ai-preview-img{width:100%;border-radius:6px;border:1px solid var(--border, #2d2d3d);display:block}.ai-preview-placeholder{height:120px;background:var(--surface2, #252540);border:1px dashed var(--border, #2d2d3d);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.82rem;color:var(--text-muted, #888)}.ai-step3-actions{display:flex;gap:8px;margin-top:4px}.ai-section-progress{display:flex;flex-direction:column;gap:12px}.ai-progress-row{display:flex;align-items:center;gap:10px;font-size:.85rem}.ai-progress-icon{font-size:1rem;width:20px}.ai-progress-name{flex:1}.ai-progress-status{color:var(--accent, #5b8def);font-size:.78rem}.ai-preview-mini{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;padding-left:30px}.ai-preview-mini-img{height:80px;border-radius:4px;object-fit:cover}.ai-section-regen{display:flex;flex-direction:column;gap:4px;flex:1;min-width:200px}.ai-regen-revision{background:var(--surface2, #252540);border:1px solid var(--border, #2d2d3d);border-radius:6px;color:var(--text, #e8e8ec);padding:6px 8px;font-size:.8rem;resize:vertical}.ai-step5-list{display:flex;flex-direction:column;gap:10px}.ai-step5-row{display:flex;align-items:center;gap:10px;background:var(--surface2, #252540);border-radius:6px;padding:8px 12px}.ai-step5-name{flex:1;font-size:.85rem}.ai-step5-thumb{height:52px;border-radius:4px;object-fit:cover}.ai-credit-total{font-size:.82rem;color:var(--text-muted, #888);text-align:right;margin-top:8px}.ai-credit-confirm-overlay{position:absolute;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;border-radius:12px;z-index:10}.ai-credit-confirm{background:var(--surface, #1a1a2e);border:1px solid var(--border, #2d2d3d);border-radius:10px;padding:24px;max-width:380px;width:90%}.ai-credit-confirm-msg{font-size:.85rem;white-space:pre-wrap;margin:0 0 20px;color:var(--text, #e8e8ec);line-height:1.6}.ai-credit-confirm-actions{display:flex;gap:10px;justify-content:flex-end}.ai-wizard-error{background:#3d1515;border:1px solid #7f2525;border-radius:6px;color:#f87171;padding:10px 14px;font-size:.83rem;margin:0 24px 12px}.error-msg{color:#f87171;font-size:.8rem}.new-image-panel{display:flex;flex-direction:column;gap:8px}.new-image-panel .btn-upload,.new-image-panel .btn-ai{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;font-size:.85rem;cursor:pointer;border:1px solid var(--border, #2d2d3d);background:var(--surface2, #252540);color:var(--text, #e8e8ec);text-align:left;width:100%;transition:border-color .15s,background .15s}.new-image-panel .btn-upload:hover{border-color:var(--accent, #5b8def)}.new-image-panel .btn-ai{border-color:var(--accent, #5b8def);background:#5b8def1f;color:var(--accent, #5b8def);font-weight:600}.new-image-panel .btn-ai:hover{background:#5b8def38}.new-image-panel .btn-icon{font-size:1.2rem;flex-shrink:0}.new-image-panel .btn-desc{font-size:.72rem;color:var(--text-muted, #888);display:block;margin-top:2px;font-weight:400}.new-image-panel .btn-ai .btn-desc{color:#5b8defcc}.ai-section-desc-ja{font-size:.85rem;color:var(--text, #e8e8ec);line-height:1.6;background:var(--surface, #1a1a2e);border-left:3px solid var(--accent, #5b8def);padding:8px 12px;border-radius:0 6px 6px 0;margin:0}.ai-section-prompt-details{margin-top:4px}.ai-section-prompt-details summary{font-size:.78rem;color:var(--text-muted, #888);cursor:pointer;padding:4px 0}.ai-section-prompt-details summary:hover{color:var(--text, #e8e8ec)}.ai-section-prompt-details[open] summary{margin-bottom:6px}
