:root{color:#1d1d1f;font-synthesis:none;text-rendering:optimizelegibility;--bg:#f5f5f7;--surface:#fff;--surface-subtle:#fafafa;--sidebar:#ececef;--text:#1d1d1f;--muted:#737378;--soft:#a2a2a8;--line:#dedee2;--line-soft:#e9e9ec;--accent:#2864dc;--accent-dark:#1f55bf;--accent-soft:#e8effc;--green:#2f8060;--green-soft:#e9f4ef;--amber:#96642e;--amber-soft:#f7eee3;--shadow:0 16px 50px #1d1d1f1f;--sidebar-width:224px;background:#f5f5f7;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{min-width:320px;overflow:hidden}button,input,select,textarea{font:inherit;letter-spacing:0}button{cursor:pointer;border:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:2px solid #2864dc66}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);background:var(--bg);height:100%;transition:grid-template-columns .22s;display:grid}.app-shell.sidebar-collapsed{--sidebar-width:72px}.app-body{grid-template-rows:56px minmax(0,1fr);min-width:0;display:grid}.app-content{min-width:0;min-height:0;overflow:hidden}.app-sidebar{z-index:20;background:var(--sidebar);border-right:1px solid #d8d8dc;flex-direction:column;min-width:0;height:100%;transition:width .22s,transform .22s;display:flex;position:relative}.brand-row{align-items:center;gap:10px;height:56px;padding:0 14px;display:flex}.brand-mark{color:#fff;background:#202124;border-radius:8px;flex:none;place-items:center;width:31px;height:31px;display:grid}.brand-name{white-space:nowrap;font-size:17px;font-weight:700}.sidebar-content{flex:1;padding:18px 10px;overflow-y:auto}.nav-group+.nav-group{margin-top:25px}.nav-label{color:#87878d;padding:0 9px 8px;font-size:11px;font-weight:600}.nav-item{color:#55555a;text-align:left;white-space:nowrap;background:0 0;border-radius:7px;align-items:center;gap:10px;width:100%;height:38px;margin:2px 0;padding:0 10px;display:flex}.nav-item:hover{color:var(--text);background:#ffffff8c}.nav-item.active{color:#171719;background:#ffffffe0;box-shadow:0 1px 2px #0000000f}.nav-item span:not(.nav-badge){flex:1;font-size:13px;font-weight:520}.nav-badge{color:#55555a;background:#dedee2;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:10px;display:grid}.collapsed .nav-item{justify-content:center;padding:0}.sidebar-footer{border-top:1px solid #d7d7da;align-items:center;gap:9px;min-height:64px;padding:11px 12px;display:flex}.user-avatar{color:#fff;background:#6c716c;border-radius:50%;flex:none;place-items:center;width:31px;height:31px;font-size:12px;font-weight:650;display:grid}.user-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.user-copy strong{font-size:12px;font-weight:650}.user-copy span{color:var(--muted);font-size:10px}.collapse-button{width:27px;height:27px;color:var(--muted);background:0 0;border-radius:6px;flex:none;place-items:center;display:grid}.collapse-button:hover{color:var(--text);background:#dddde1}.collapsed .collapse-button svg{transform:rotate(180deg)}.collapsed .sidebar-footer{justify-content:center;padding:11px 8px}.collapsed .collapse-button{border:1px solid var(--line);background:#fff;position:absolute;bottom:19px;right:-12px;box-shadow:0 2px 8px #00000014}.mobile-close,.mobile-menu,.sidebar-backdrop{display:none}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffd1;justify-content:space-between;align-items:center;height:56px;padding:0 18px 0 22px;display:flex}.topbar-title{align-items:center;gap:8px;min-width:0;font-size:12px;display:flex}.topbar-title strong{font-weight:620}.breadcrumb-muted,.breadcrumb-separator{color:var(--soft)}.topbar-actions{align-items:center;gap:8px;display:flex}.global-search{color:#86868b;background:#f1f1f3;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;width:240px;height:34px;padding:0 8px 0 10px;display:flex}.global-search:focus-within{background:#fff;border-color:#b9c9ed;box-shadow:0 0 0 3px #2864dc17}.global-search input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:12px}.global-search kbd{color:#929298;background:#fff;border:1px solid #dedee2;border-radius:4px;padding:2px 5px;font-size:9px;box-shadow:0 1px #d4d4d8}.icon-button{color:#5e5e64;background:0 0;border-radius:7px;flex:none;place-items:center;width:34px;height:34px;display:grid;position:relative}.icon-button:hover{color:var(--text);background:#eeeef1}.icon-button.compact{width:29px;height:29px}.mobile-close.icon-button,.mobile-menu.icon-button{display:none}.notification-button span{background:#e55e57;border-radius:50%;width:5px;height:5px;position:absolute;top:7px;right:7px;box-shadow:0 0 0 2px #fff}.workspace-shell{background:var(--surface);grid-template-columns:224px minmax(430px,1fr) 282px;height:100%;display:grid}.workspace-shell.inspector-hidden{grid-template-columns:224px minmax(430px,1fr)}.scene-rail{border-right:1px solid var(--line);background:#f7f7f8;flex-direction:column;min-width:0;display:flex}.scene-rail-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:flex-start;min-height:96px;padding:18px 14px 15px 16px;display:flex}.overline{color:var(--muted);margin-bottom:7px;font-size:10px;font-weight:600;display:block}.episode-select{color:var(--text);background:0 0;align-items:center;gap:5px;padding:0;font-size:15px;font-weight:680;display:flex}.scene-list-label{color:#8b8b91;justify-content:space-between;padding:14px 16px 6px;font-size:10px;font-weight:600;display:flex}.scene-list{padding:0 8px}.scene-item{width:100%;min-height:58px;color:var(--text);text-align:left;background:0 0;border-radius:7px;align-items:center;gap:9px;padding:8px;display:flex}.scene-item:hover{background:#ededf0}.scene-item.selected{background:#e6e6e9}.scene-number{color:#929298;font-variant-numeric:tabular-nums;width:25px;font-size:10px}.scene-copy{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.scene-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:620;overflow:hidden}.scene-copy span{color:var(--muted);font-size:10px}.scene-chevron{color:#a0a0a5;opacity:0}.scene-item.selected .scene-chevron,.scene-item:hover .scene-chevron{opacity:1}.add-scene-button{color:#66666c;background:0 0;border:1px dashed #c9c9ce;border-radius:7px;justify-content:center;align-items:center;gap:6px;height:35px;margin:8px;font-size:11px;display:flex}.add-scene-button:hover{color:var(--text);background:#fff;border-style:solid}.shot-editor{background:#fff;min-width:0;overflow:auto}.editor-heading{justify-content:space-between;align-items:flex-end;gap:20px;min-height:112px;padding:20px 24px 16px;display:flex}.editor-kicker{color:#85858b;margin-bottom:5px;font-size:10px;font-weight:600}.editor-heading h1{margin:0;font-size:22px;font-weight:700;line-height:1.22}.editor-heading p{color:var(--muted);margin:6px 0 0;font-size:11px}.heading-actions{flex:none;gap:8px;display:flex}.button{white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:7px;height:34px;padding:0 13px;font-size:11px;font-weight:620;display:inline-flex}.button.primary{color:#fff;background:var(--accent);box-shadow:0 1px 2px #1b4aa640}.button.primary:hover{background:var(--accent-dark)}.button.primary:disabled{cursor:not-allowed;opacity:.45}.button.secondary{color:#48484e;background:#fff;border:1px solid #d6d6da;box-shadow:0 1px 2px #0000000a}.button.secondary:hover{background:#f6f6f7}.editor-toolbar{z-index:5;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fafafbf0;align-items:center;gap:7px;height:48px;padding:0 18px 0 24px;display:flex;position:sticky;top:0}.segmented{background:#eaeaed;border-radius:6px;height:29px;padding:2px;display:flex}.segmented button{color:#818187;background:0 0;border-radius:4px;place-items:center;width:30px;height:25px;display:grid}.segmented button.active{color:var(--text);background:#fff;box-shadow:0 1px 3px #0000001f}.toolbar-button{color:#65656b;white-space:nowrap;background:0 0;border-radius:6px;align-items:center;gap:6px;height:29px;padding:0 8px;font-size:10px;font-weight:550;display:inline-flex}.toolbar-button:hover{color:var(--text);background:#ededf0}.toolbar-divider{background:#d9d9dd;width:1px;height:18px}.selection-label{color:#96969c;font-size:10px}.toolbar-spacer{flex:1}.shots-table-wrap{min-width:680px}.shots-table{border-collapse:collapse;table-layout:fixed;width:100%}.shots-table th{color:#929298;border-bottom:1px solid var(--line-soft);text-align:left;background:#fafafa;height:36px;padding:0 10px;font-size:9px;font-weight:650}.shots-table th:nth-child(2){width:58px}.shots-table th:nth-child(3){width:88px}.shots-table th:nth-child(5){width:52px}.shots-table th:nth-child(6){width:58px}.shots-table th:nth-child(7){width:82px}.shots-table th:nth-child(8){width:38px}.shots-table th:last-child,.shots-table td:last-child{padding-left:4px;padding-right:4px}.shots-table .drag-column{text-align:center;width:26px;padding:0 4px}.shots-table td{border-bottom:1px solid var(--line-soft);vertical-align:middle;height:76px;padding:9px 10px}.shots-table tbody tr{cursor:pointer;transition:background .12s}.shots-table tbody tr:hover{background:#fafafa}.shots-table tbody tr.selected{box-shadow:inset 2px 0 0 var(--accent);background:#f0f5ff}.drag-handle{color:#b7b7bc;font-size:15px}.shot-number{font-variant-numeric:tabular-nums;font-size:11px}.shot-size{margin-bottom:4px;font-size:11px;font-weight:620;display:block}.cell-meta{color:var(--muted);font-size:9px;display:block}.description-cell strong{color:#303034;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;font-weight:520;line-height:1.45;display:-webkit-box;overflow:hidden}.description-cell span{color:#85858b;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;max-width:100%;margin-top:5px;font-size:9px;display:flex;overflow:hidden}.duration-value{color:#55555a;font-variant-numeric:tabular-nums;font-size:10px}.assignee{color:#fff;border-radius:50%;place-items:center;width:25px;height:25px;font-size:9px;font-weight:650;display:grid}.status-pill{color:#707076;white-space:nowrap;align-items:center;gap:5px;font-size:9px;display:inline-flex}.status-pill i{background:#a3a3a8;border-radius:50%;width:6px;height:6px}.status-pill.success{color:var(--green)}.status-pill.success i{background:#58a582}.status-pill.progress{color:#426dbd}.status-pill.progress i{background:#5a83d6}.status-pill.review{color:var(--amber)}.status-pill.review i{background:#c28b4b}.row-action{opacity:0;width:28px;height:28px}tr:hover .row-action,tr.selected .row-action{opacity:1}.table-add-row{color:#85858b;background:0 0;border:1px dashed #d5d5d9;border-radius:7px;justify-content:center;align-items:center;gap:6px;width:calc(100% - 42px);height:38px;margin:10px 21px 22px;font-size:10px;display:flex}.table-add-row:hover{color:var(--text);background:#fafafa;border-style:solid}.no-results{color:var(--muted);text-align:center;padding:55px 20px;font-size:12px}.storyboard-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;padding:18px 20px 30px;display:grid}.storyboard-card,.storyboard-add{border:1px solid var(--line);text-align:left;background:#fff;border-radius:7px;min-height:220px;padding:0;overflow:hidden}.storyboard-card:hover,.storyboard-card.selected{border-color:#9db5ea;box-shadow:0 4px 16px #314e821a}.storyboard-card.selected{box-shadow:0 0 0 2px #2864dc1f}.frame-placeholder{aspect-ratio:16/9;border-bottom:1px solid var(--line);background:#ececef;place-items:center;display:grid}.frame-label{color:#8a8a90;text-align:center}.frame-label span{font-size:18px;font-weight:700;display:block}.frame-label small{font-size:9px}.storyboard-card-copy{flex-direction:column;gap:7px;padding:11px 12px;display:flex}.storyboard-card-copy strong{font-size:10px;font-weight:520;line-height:1.5}.storyboard-card-copy span{color:var(--muted);font-size:9px}.storyboard-add{color:#929298;border-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:220px;display:flex}.storyboard-add:hover{color:var(--text);background:#fafafa;border-style:solid}.storyboard-add span{font-size:10px}.inspector{border-left:1px solid var(--line);background:#fafafa;flex-direction:column;min-width:0;display:flex;overflow-y:auto}.inspector-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:55px;padding:0 14px 0 16px;display:flex}.inspector-head>div{align-items:center;gap:8px;display:flex}.inspector-head span{color:var(--muted);font-size:10px}.inspector-head strong{font-size:11px}.inspector-section{border-bottom:1px solid var(--line-soft);padding:15px 16px}.inspector-grid{border-bottom:1px solid var(--line-soft);grid-template-columns:1fr 1fr;gap:10px;padding:13px 16px;display:grid}.inspector label{min-width:0;display:block}.field-label{color:#77777d;margin-bottom:7px;font-size:9px;font-weight:620;display:block}.inspector textarea,.inspector input,.inspector select{color:#343438;background:#fff;border:1px solid #d9d9dd;border-radius:6px;outline:0;width:100%;font-size:10px}.inspector textarea{resize:vertical;padding:9px;line-height:1.55}.inspector input,.inspector select{height:32px;padding:0 8px}.inspector textarea:focus,.inspector input:focus,.inspector select:focus{border-color:#9cb4e6;box-shadow:0 0 0 3px #2864dc14}.inspector-footer{color:#96969b;border-top:1px solid var(--line-soft);justify-content:flex-end;align-items:center;gap:5px;min-height:42px;margin-top:auto;padding:0 16px;font-size:9px;display:flex}.page-view{background:#fff;height:100%;padding:32px clamp(24px,4vw,58px);overflow:auto}.page-title-row{justify-content:space-between;align-items:flex-end;gap:20px;max-width:1180px;margin:0 auto 27px;display:flex}.page-title-row h1{margin:0;font-size:25px;font-weight:720;line-height:1.2}.page-title-row p{max-width:620px;color:var(--muted);margin:7px 0 0;font-size:12px;line-height:1.55}.project-controls{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1180px;height:48px;margin:0 auto;display:flex}.project-tabs{align-items:stretch;gap:24px;height:100%;display:flex}.project-tabs button{color:#7b7b81;background:0 0;padding:0 2px;font-size:11px;font-weight:560;position:relative}.project-tabs button.active{color:var(--text)}.project-tabs button.active:after{content:"";background:#252528;height:2px;position:absolute;bottom:-1px;left:0;right:0}.project-list{max-width:1180px;margin:0 auto}.project-list-head,.project-row{grid-template-columns:minmax(260px,1.8fr) minmax(130px,1fr) 120px 100px 90px 68px;align-items:center;column-gap:20px;display:grid}.project-list-head{color:#96969b;border-bottom:1px solid var(--line-soft);height:40px;padding:0 14px;font-size:9px;font-weight:620}.project-row{border-bottom:1px solid var(--line-soft);min-height:76px;padding:9px 14px}.project-row:hover{background:#fafafa}.project-identity{min-width:0;color:inherit;text-align:left;background:0 0;align-items:center;gap:12px;display:flex}.project-thumb{border-radius:7px;flex:none;place-items:center;width:46px;height:46px;display:grid}.project-thumb span{color:#55555a;background:#ffffffad;border-radius:3px;place-items:center;width:22px;height:28px;font-size:12px;font-weight:700;display:grid;box-shadow:0 2px 8px #00000014}.project-identity>span:last-child{flex-direction:column;gap:5px;min-width:0;display:flex}.project-identity strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;overflow:hidden}.project-identity small{color:var(--muted);font-size:9px}.progress-cell{align-items:center;gap:8px;display:flex}.progress-cell>div{background:#e5e5e8;border-radius:2px;width:76px;height:4px;overflow:hidden}.progress-cell>div span{border-radius:inherit;background:#60646e;height:100%;display:block}.progress-cell strong{color:#68686e;font-size:9px;font-weight:600}.project-owner{color:#5b5b61;align-items:center;gap:7px;font-size:10px;display:flex}.project-owner i{color:#5f6167;background:#e7e7ea;border-radius:50%;place-items:center;width:25px;height:25px;font-size:9px;font-style:normal;display:grid}.project-updated{color:var(--muted);font-size:9px}.project-actions{gap:2px;display:flex}.empty-list{color:var(--muted);flex-direction:column;align-items:center;gap:8px;padding:70px 20px;display:flex}.empty-list strong{color:var(--text);font-size:12px}.empty-list span{font-size:10px}.placeholder-page{flex-direction:column;display:flex}.placeholder-surface{width:100%;max-width:1180px;min-height:360px;color:var(--muted);border-top:1px solid var(--line);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;margin:0 auto;display:flex}.placeholder-icon{color:#616167;background:#ececef;border-radius:8px;place-items:center;width:46px;height:46px;display:grid}.placeholder-surface h2{color:var(--text);margin:16px 0 7px;font-size:16px}.placeholder-surface p{max-width:400px;margin:0;font-size:11px;line-height:1.65}.text-button{color:var(--accent);background:0 0;align-items:center;gap:5px;margin-top:15px;padding:7px;font-size:10px;font-weight:620;display:inline-flex}.dialog-layer{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#1616183d;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{width:min(440px,100%);box-shadow:var(--shadow);background:#fff;border:1px solid #ffffffa6;border-radius:8px;overflow:hidden}.dialog-head{justify-content:space-between;align-items:flex-start;padding:20px 20px 15px;display:flex}.dialog h2{margin:0;font-size:17px}.dialog p{color:var(--muted);margin:6px 0 0;font-size:10px}.dialog-fields{flex-direction:column;gap:14px;padding:4px 20px 18px;display:flex}.dialog-fields label{color:#606066;flex-direction:column;gap:7px;font-size:10px;font-weight:600;display:flex}.dialog-fields input,.dialog-fields select{width:100%;height:36px;color:var(--text);background:#fff;border:1px solid #d6d6da;border-radius:6px;outline:0;padding:0 10px;font-size:11px;font-weight:400}.dialog-fields input:focus,.dialog-fields select:focus{border-color:#94afe9;box-shadow:0 0 0 3px #2864dc14}.form-split{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dialog-actions{border-top:1px solid var(--line-soft);background:#f8f8f9;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}@media (width<=1120px){.workspace-shell,.workspace-shell.inspector-hidden{grid-template-columns:205px minmax(430px,1fr)}.inspector{z-index:10;width:290px;position:absolute;top:56px;bottom:0;right:0;box-shadow:-12px 0 35px #1d1d1f17}.project-list-head,.project-row{grid-template-columns:minmax(250px,1.6fr) 120px 110px 90px 70px}.project-list-head>:nth-child(4),.project-row>:nth-child(4){display:none}}@media (width<=820px){.app-shell,.app-shell.sidebar-collapsed{display:block}.app-body{height:100%}.app-sidebar{width:230px;position:fixed;top:0;bottom:0;left:0;transform:translate(-102%);box-shadow:20px 0 50px #00000024}.app-sidebar.mobile-open{transform:translate(0)}.sidebar-backdrop{z-index:19;background:#0003;position:fixed;inset:0}.sidebar-backdrop.show{display:block}.mobile-close.icon-button{margin-left:auto;display:grid}.mobile-menu.icon-button{display:grid}.collapse-button{display:none}.topbar{padding:0 12px}.breadcrumb-muted,.breadcrumb-separator{display:none}.global-search{width:min(220px,46vw)}.workspace-shell,.workspace-shell.inspector-hidden{height:100%;display:block;position:relative}.scene-rail{display:none}.shot-editor{height:100%}.inspector{width:min(310px,88vw);top:0}.page-view{padding:24px 20px}.project-list{min-width:650px}.page-view:has(.project-list){overflow-x:auto}}@media (width<=560px){.global-search{justify-content:center;width:35px;padding:0}.global-search input,.global-search kbd{display:none}.editor-heading{flex-direction:column;align-items:flex-start;gap:12px;min-height:126px;padding:16px}.editor-heading h1{font-size:20px}.heading-actions{width:100%}.heading-actions .button{flex:1}.editor-toolbar{padding:0 10px 0 16px}.selection-label,.toolbar-divider,.toolbar-button:nth-of-type(3){display:none}.shots-table-wrap{min-width:660px}.page-title-row{flex-direction:column;align-items:flex-start}.page-title-row .button{width:100%}.project-controls{min-width:610px}.project-list-head,.project-row{grid-template-columns:250px 120px 110px 90px 70px}.dialog-layer{padding:12px}.form-split{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
