:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Roboto, Helvetica, Arial, sans-serif;--font-display: "Iowan Old Style", Georgia, "Songti SC", "Source Han Serif SC", "Noto Serif SC", serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--ink: #1f1e1d;--ink-soft: #6c6a66;--paper: #faf9f7;--paper-deep: #f0eee9;--white: #ffffff;--surface-hover: #f4f2ee;--surface-active: #eceae4;--line: #e7e4de;--line-strong: #d6d2ca;--accent: #c96442;--accent-deep: #a8482a;--accent-wash: #f7ede8;--danger: #b3402f;--shadow: 0 1px 2px rgba(20, 20, 19, .04), 0 10px 30px rgba(20, 20, 19, .08);--shadow-sm: 0 1px 2px rgba(20, 20, 19, .05);--radius: 10px;--radius-card: 14px;--radius-pill: 999px;--color-surface: var(--white);--color-surface-muted: var(--paper);--color-surface-subtle: var(--paper-deep);--color-text: var(--ink);--color-text-muted: var(--ink-soft);--color-border: var(--line);--color-border-strong: var(--line-strong);--color-focus: var(--accent);--color-success: #2f7d5b;--color-danger: var(--danger);--color-control-disabled: var(--paper-deep);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--control-height: 42px;--control-height-sm: 36px;--radius-control: 8px;--transition-fast: .16s ease}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}a{color:inherit;text-decoration:none}code{font-family:var(--font-mono);font-size:.78rem}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.app-frame{min-height:100vh}.topbar{align-items:center;background:var(--paper);border-bottom:1px solid var(--line);display:flex;gap:36px;justify-content:space-between;min-height:60px;padding:0 28px;position:sticky;top:0;z-index:20}.brand{align-items:center;display:flex;gap:11px;letter-spacing:0}.brand-mark{align-items:center;background:var(--accent);border-radius:9px;color:var(--white);display:inline-flex;font-size:.95rem;font-weight:600;height:32px;justify-content:center;width:32px}.brand strong,.brand small{display:block}.brand strong{font-size:.98rem;font-weight:600;letter-spacing:-.01em}.brand small{color:var(--ink-soft);font-size:.62rem;margin-top:1px}.main-nav{display:flex;gap:2px;margin-right:auto}.main-nav a{border-radius:var(--radius-pill);color:var(--ink-soft);font-size:.82rem;padding:7px 12px;transition:background var(--transition-fast),color var(--transition-fast)}.main-nav a:hover{background:var(--surface-hover);color:var(--ink)}.main-nav a.router-link-active{background:var(--surface-active);color:var(--ink);font-weight:600}.account-bar{align-items:center;display:flex;gap:18px}.locale-control select{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--ink);font-size:.78rem;min-height:34px;padding:0 26px 0 10px}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.account-role{background:var(--paper-deep);border-radius:var(--radius-pill);color:var(--ink-soft);font-size:.66rem;padding:4px 9px;text-transform:uppercase}.quiet-button{background:none;border:0;border-radius:var(--radius-control);color:var(--ink-soft);font-size:.8rem;padding:7px 10px}.quiet-button:hover{background:var(--surface-hover);color:var(--ink)}.page-shell{margin:0 auto;max-width:1180px;padding:40px 28px 72px}.login-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.8fr);min-height:calc(100vh - 100px)}.login-intro{background:var(--paper-deep);color:var(--ink);display:flex;flex-direction:column;justify-content:center;padding:6vw;position:relative}.login-intro:after{display:none}.eyebrow,.page-kicker{font-size:.66rem;letter-spacing:0;text-transform:uppercase}.eyebrow{color:var(--accent);margin-bottom:28px}.login-intro h1{font-size:clamp(2.1rem,4vw,3rem);font-weight:600;letter-spacing:-.02em;line-height:1.14;margin:0;position:relative;z-index:1}.login-intro h1 em{color:var(--accent);font-style:normal}.intro-copy{color:var(--ink-soft);font-size:.98rem;line-height:1.7;margin:22px 0 0;max-width:380px;position:relative;z-index:1}.intro-rule{background:var(--line-strong);height:1px;margin:40px 0 18px;max-width:270px;position:relative;z-index:1}.intro-rule span{background:var(--accent);display:block;height:3px;margin-top:-1px;width:68px}.intro-note{color:var(--ink-soft);font-size:.8rem;line-height:1.65;max-width:300px;position:relative;z-index:1}.login-panel{align-self:center;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);margin:8vh 5vw 8vh -8vw;padding:clamp(28px,4vw,46px);position:relative;z-index:2}.panel-heading{align-items:center;color:var(--ink-soft);display:flex;font-size:.67rem;gap:8px;letter-spacing:0}.status-dot{background:var(--accent);border-radius:50%;box-shadow:0 0 0 5px #e3ad4526;display:inline-block;height:7px;width:7px}.login-panel h2{font-size:1.75rem;font-weight:600;letter-spacing:-.02em;margin:20px 0 8px}.panel-copy{color:var(--ink-soft);font-size:.88rem;margin:0 0 26px}.panel-copy code{overflow-wrap:anywhere}.login-form{display:grid;gap:20px}.login-form label{display:grid;gap:8px}.login-form label span{color:var(--ink-soft);font-size:.76rem}.login-form input{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--ink);outline:0;padding:10px 12px;width:100%}.login-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.login-form input:disabled{color:var(--ink-soft);cursor:not-allowed}.challenge-summary{align-items:center;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);display:grid;gap:4px 12px;grid-template-columns:1fr auto;min-height:54px;padding:10px 12px}.challenge-summary span{color:var(--ink-soft);font-size:.68rem}.challenge-summary strong{font-size:.82rem;font-weight:600}.challenge-summary button{background:transparent;border:0;color:var(--accent-deep);font-size:.74rem;grid-column:2;grid-row:1 / 3;padding:6px;white-space:nowrap}.challenge-summary button:disabled{color:var(--ink-soft)}.auth-divider{align-items:center;color:var(--ink-soft);display:flex;font-size:.68rem;gap:12px;margin:22px 0}.auth-divider:before,.auth-divider:after{background:var(--line);content:"";flex:1;height:1px}.auth-mode{border-bottom:1px solid var(--line);display:flex;gap:18px;margin-bottom:16px}.auth-mode button{background:none;border:0;border-bottom:2px solid transparent;color:var(--ink-soft);font-size:.68rem;margin-bottom:-1px;padding:8px 0}.auth-mode button.active{border-bottom-color:var(--accent-deep);color:var(--ink);font-weight:700}.wechat-button{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--ink);display:flex;justify-content:space-between;margin:0 0 20px;padding:12px 14px;width:100%}.wechat-button:hover{background:var(--surface-hover);border-color:var(--line-strong)}.wechat-button:disabled{background:var(--paper-deep);border-color:var(--line);color:var(--ink-soft);cursor:not-allowed}.primary-button,.outline-button{align-items:center;display:inline-flex;justify-content:center;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}.primary-button{background:var(--ink);border:1px solid var(--ink);border-radius:var(--radius-control);color:var(--white);gap:14px;justify-content:space-between;margin-top:12px;padding:12px 16px;text-align:left}.primary-button:hover{background:#38352f;border-color:#38352f}.error-message{color:var(--danger);font-size:.82rem;margin:18px 0 0}.connection-meta{border-top:1px solid var(--line);display:grid;gap:6px;margin-top:38px;padding-top:18px}.connection-meta span,.workspace-footer span{color:var(--ink-soft);font-size:.72rem}.connection-meta code{overflow-wrap:anywhere}.development-access{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.development-access summary{color:var(--ink-soft);cursor:pointer;font-size:.76rem}.development-access .login-form{margin-top:18px}.workspace-page{padding-top:4px}.page-kicker{color:var(--accent-deep);margin-bottom:24px}.page-heading-row{align-items:end;display:flex;gap:24px;justify-content:space-between}.page-heading-row h1,.placeholder-page h1{font-size:1.85rem;font-weight:600;letter-spacing:-.02em;line-height:1.22;margin:0}.page-heading-row p,.placeholder-page p{color:var(--ink-soft);margin:10px 0 0;max-width:560px}.outline-button{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--ink);gap:8px;padding:9px 14px;white-space:nowrap}.outline-button:hover{background:var(--surface-hover);border-color:var(--line-strong);color:var(--ink)}.refresh-glyph{display:inline-block;font-size:1.15rem;line-height:1}.spinning{animation:spin .8s linear infinite}.signal-grid{display:grid;gap:14px;grid-template-columns:1.15fr .85fr;margin-top:30px}.signal-grid--compact{margin-top:40px}.signal-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);min-height:150px;padding:22px}.signal-card--wide{background:var(--paper-deep);color:var(--ink)}.signal-card-head{align-items:center;display:flex;justify-content:space-between}.signal-label{color:var(--ink-soft);font-size:.72rem}.signal-card--wide .signal-label{color:var(--ink-soft)}.status-chip{border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--accent-deep);font-size:.66rem;padding:3px 9px}.signal-card--wide .status-chip{border-color:var(--line-strong);color:var(--accent-deep)}.status-chip--error{color:var(--danger)!important}.signal-value{display:block;font-family:var(--font-mono);font-size:1.15rem;font-weight:400;margin-top:26px;overflow-wrap:anywhere}.signal-card p{color:var(--ink-soft);font-size:.8rem;margin:11px 0 0}.signal-card--wide p{color:var(--ink-soft)}.route-preview{align-items:center;border-top:1px solid var(--line);display:grid;gap:30px;grid-template-columns:.8fr 1.2fr;margin-top:44px;padding:30px 0 0}.route-preview h2{font-size:1.35rem;font-weight:600;letter-spacing:-.01em;margin:8px 0 0}.route-list{display:grid}.route-list a{align-items:center;border-radius:var(--radius);display:grid;gap:16px;grid-template-columns:40px 1fr 20px;padding:12px}.route-list a:hover{background:var(--surface-hover)}.route-list a span{color:var(--accent-deep);font-family:var(--font-mono);font-size:.72rem}.route-list a b{font-size:1.1rem;font-weight:400;opacity:.45}.route-list a:hover b{opacity:1;transform:translate(4px)}.catalog-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:28px;padding-bottom:14px}.catalog-toolbar button{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);font-size:.78rem;padding:7px 13px}.catalog-toolbar button.active,.catalog-toolbar button:hover{background:var(--surface-active);border-color:var(--line-strong);color:var(--ink)}.catalog-toolbar span{color:var(--ink-soft);font-size:.76rem;margin-left:auto}.catalog-mode-toggle{display:inline-flex}.catalog-mode-toggle button+button{margin-left:2px}.catalog-mode-toggle button{min-width:88px}.lesson-grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px}.lesson-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);display:flex;flex-direction:column;min-height:226px;padding:20px;transition:border-color .16s ease,box-shadow .16s ease}.lesson-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}.lesson-card-index{color:var(--accent-deep);font-family:var(--font-mono);font-size:.72rem}.lesson-card-subject{color:var(--ink-soft);font-size:.72rem;margin-top:20px}.lesson-card h2{font-size:1.15rem;font-weight:600;letter-spacing:-.01em;line-height:1.35;margin:6px 0 0}.lesson-card p{color:var(--ink-soft);font-size:.82rem;line-height:1.55;margin:10px 0 20px}.lesson-card-foot{align-items:center;border-top:1px solid var(--line);display:flex;justify-content:space-between;margin-top:auto;padding-top:13px}.lesson-card-foot b{color:var(--accent-deep);font-size:.72rem;font-weight:500}.lesson-card-foot b.pending{color:var(--ink-soft)}.lesson-card-foot strong{color:var(--accent-deep);font-size:1rem;font-weight:600}.lesson-card-badge{color:var(--accent-deep);font-size:.68rem;margin:4px 0 14px}.lesson-card-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.primary-button--compact{border-radius:var(--radius-pill);font-size:.76rem;min-height:34px;padding:7px 14px}.text-button{color:var(--ink);font-size:.68rem;text-decoration:underline;text-underline-offset:3px}.text-button:hover{color:var(--accent-deep)}.text-button--disabled{color:var(--ink-soft);cursor:not-allowed;text-decoration:none}.empty-state,.loading-line{color:var(--ink-soft);padding:32px 0}.detail-page{padding-top:4px}.detail-topline{align-items:center;border-bottom:1px solid var(--line);color:var(--ink-soft);display:flex;font-size:.76rem;justify-content:space-between;padding-bottom:14px}.detail-topline a:hover{color:var(--ink)}.detail-layout{display:grid;gap:56px;grid-template-columns:minmax(0,1fr) minmax(240px,.42fr);padding-top:40px}.detail-layout h1{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:0;max-width:720px}.detail-lede{color:var(--ink-soft);font-size:1rem;line-height:1.7;margin:20px 0 0;max-width:560px}.detail-action{margin-top:30px;min-width:210px}.detail-aside{align-self:end;border-top:1px solid var(--line-strong);padding-top:16px}.detail-aside>strong{display:block;font-size:1.15rem;font-weight:600;margin:8px 0 22px}.detail-aside dl{border-top:1px solid var(--line);margin:0}.detail-aside dl>div{align-items:baseline;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:12px 0}.detail-aside dt,.detail-aside dd{font-size:.76rem;margin:0}.detail-aside dt{color:var(--ink-soft)}.detail-aside dd{color:var(--ink);max-width:150px;overflow-wrap:anywhere;text-align:right}.detail-error{align-items:center;display:flex;gap:18px;justify-content:space-between;padding:14vh 0}.runtime-page{display:flex;flex-direction:column;height:calc(100vh - 156px);min-height:0}.runtime-header{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:20px;min-height:48px;padding-bottom:12px}.runtime-title{font-size:1rem;font-weight:600;margin-right:auto}.runtime-status{color:var(--ink-soft);font-size:.74rem}.runtime-status--active{color:var(--accent-deep)}.runtime-frame-wrap{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-card);flex:1 1 auto;margin-top:16px;min-height:0;overflow:hidden;position:relative}.runtime-frame{background:var(--white);border:0;display:block;height:100%;min-height:0;width:100%}.runtime-placeholder,.runtime-loading{align-items:center;color:var(--ink-soft);display:flex;flex:1 1 auto;gap:10px;justify-content:center;min-height:0}.runtime-loading{inset:0;position:absolute}.profile-grid{display:grid;gap:14px;grid-template-columns:1fr 1fr;margin-top:30px}.profile-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);min-height:170px;padding:22px}.profile-panel--dark{background:var(--paper-deep);color:var(--ink);display:flex;flex-direction:column}.profile-panel--dark>strong{font-family:var(--font-mono);font-size:.88rem;margin-top:auto;overflow-wrap:anywhere}.profile-role{color:var(--accent-deep);font-size:.72rem;margin-top:8px;text-transform:uppercase}.identity-panel-head{align-items:start;display:flex;gap:18px;justify-content:space-between}.identity-summary{color:var(--ink-soft);font-size:.76rem;margin:5px 0 0}.identity-toggle{align-items:center;background:transparent;border:0;border-radius:var(--radius-control);color:var(--accent-deep);display:inline-flex;flex:0 0 auto;font-size:.76rem;gap:8px;padding:4px 6px}.identity-toggle:hover{color:var(--ink)}.identity-toggle-icon{border-bottom:1px solid currentColor;border-right:1px solid currentColor;display:inline-block;height:7px;transform:rotate(45deg) translateY(-2px);transition:transform .16s ease;width:7px}.identity-toggle-icon.is-open{transform:rotate(225deg) translateY(-1px)}.identity-complete{color:var(--accent-deep)}.identity-list{list-style:none;margin:18px 0 0;padding:0}.identity-list li{align-items:center;border-bottom:1px solid var(--line);display:flex;font-size:.8rem;gap:16px;justify-content:space-between;padding:13px 0}.identity-item-copy{display:grid;gap:4px;min-width:0}.identity-list li span:first-child{color:var(--ink-soft)}.identity-list li b{font-weight:500;overflow-wrap:anywhere}.identity-status{color:var(--color-success);flex:0 0 auto;font-size:.74rem}.identity-status.is-unbound{color:var(--danger)}.identity-bindings{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);margin-top:18px;padding:16px}.identity-bindings-copy{color:var(--ink-soft);font-size:.78rem;margin:0 0 14px}.binding-form{border-top:1px solid var(--line);display:grid;gap:13px;margin-top:22px;padding-top:18px}.binding-form label{display:grid;gap:5px}.binding-form label span{color:var(--ink-soft);font-size:.74rem}.binding-form input{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-control);padding:9px 11px}.binding-form .outline-button{justify-self:start;margin-top:3px}.wechat-button--profile{margin-top:12px}.identity-panel{min-height:260px}.submission-review-copy{display:grid;gap:5px;min-width:0}.submission-review-copy p,.submission-review-copy span{color:var(--ink-soft);font-size:.74rem;line-height:1.5;margin:0;overflow-wrap:anywhere}.submission-review-copy b{color:var(--danger);font-weight:600}.record-section{margin-top:36px}.section-heading{align-items:center;border-bottom:1px solid var(--line-strong);display:flex;justify-content:space-between;padding-bottom:12px}.section-heading>span:last-child{color:var(--ink-soft);font-size:.76rem}.record-list{display:grid}.record-row{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:20px;grid-template-columns:1.2fr 1fr 100px;padding:16px 0}.record-row>div:first-child{display:flex;flex-direction:column;gap:3px}.record-row strong{font-size:.9rem;font-weight:600}.record-row div span,.record-row em{color:var(--ink-soft);font-size:.74rem;font-style:normal}.record-progress{align-items:center;display:flex;gap:10px}.record-progress>span{background:var(--paper-deep);border-radius:var(--radius-pill);display:block;height:6px;overflow:hidden;width:100%}.record-progress i{background:var(--accent);border-radius:var(--radius-pill);display:block;height:100%}.record-progress b{font-size:.74rem;font-weight:500}.workspace-footer{align-items:center;display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:25px}.footer-separator{color:var(--accent-deep)!important}.placeholder-page{max-width:700px;padding-top:5vh}.placeholder-page p{font-size:1rem;line-height:1.75}.outline-button--inline{margin-top:38px}.studio-page-header{align-items:end;display:flex;gap:24px;justify-content:space-between;margin-bottom:22px}.studio-page-header .page-kicker{display:block;margin-bottom:12px}.studio-page-header h1{font-size:1.55rem;font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:0}.studio-new-button,.studio-composer .primary-button,.import-dialog .primary-button,.settings-savebar .primary-button{margin-top:0}.studio-shell{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);display:grid;grid-template-columns:248px minmax(0,1fr);min-height:700px}.studio-page--sidebar-collapsed .studio-shell{grid-template-columns:64px minmax(0,1fr)}.studio-page--artifact-open .studio-shell{grid-template-columns:240px minmax(0,1fr) minmax(340px,44%)}.studio-page--sidebar-collapsed.studio-page--artifact-open .studio-shell{grid-template-columns:64px minmax(0,1fr) minmax(340px,44%)}.project-rail{background:var(--paper);border-radius:var(--radius-card) 0 0 var(--radius-card);border-right:1px solid var(--line);min-width:0;padding:8px 10px 18px}.project-rail-head{align-items:center;display:flex;height:44px;justify-content:space-between;padding:0 4px}.project-rail-head span{color:var(--ink-soft);font-size:.72rem}.project-rail-head-actions{align-items:center;display:flex;gap:7px}.project-rail-head button,.studio-feedback button{background:none;border:0;border-radius:var(--radius-control);color:var(--ink-soft);font-size:.74rem;padding:5px 7px}.project-rail-head button:hover,.studio-feedback button:hover{background:var(--surface-hover);color:var(--ink)}.project-rail-toggle{align-items:center;border-radius:var(--radius-control);display:inline-flex;justify-content:center;min-height:30px;min-width:30px;padding:4px!important}.project-rail-create{align-items:center;background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink);display:flex;font-size:.82rem;gap:8px;justify-content:center;margin:4px 0 10px;min-height:38px;padding:8px 12px;width:100%}.project-rail-create:hover{background:var(--surface-hover);color:var(--ink)}.project-rail-create>span:first-child{color:var(--accent);font-size:1.1rem;line-height:1}.project-rail-create:hover>span:first-child{color:var(--accent-deep)}.studio-page--sidebar-collapsed .project-rail{padding-left:8px;padding-right:8px}.studio-page--sidebar-collapsed .project-rail-head{justify-content:center}.studio-page--sidebar-collapsed .project-rail-title,.studio-page--sidebar-collapsed .project-rail-create-label{display:none}.studio-page--sidebar-collapsed .project-rail-create{margin-top:12px;padding-left:4px;padding-right:4px}.project-row{background:transparent;border:0;border-radius:var(--radius);color:var(--ink);display:grid;gap:5px;padding:10px;text-align:left;width:100%}.project-row:hover{background:var(--surface-hover)}.project-row.active{background:var(--surface-active);color:var(--ink)}.project-row-title{font-size:.85rem;font-weight:500;line-height:1.35;overflow-wrap:anywhere}.project-row-meta{align-items:center;display:flex;justify-content:space-between}.project-row-meta b,.project-row-meta em{font-size:.66rem;font-style:normal;font-weight:500}.project-row-meta b,.project-row.active .project-row-meta b{color:var(--accent-deep)}.project-row-meta em{opacity:.62}.project-rail-empty{color:var(--ink-soft);font-size:.8rem;padding:24px 8px}.studio-stage{min-width:0;padding:0 18px;position:relative}.studio-feedback{align-items:center;background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius);display:flex;font-size:.8rem;justify-content:space-between;margin-top:10px;min-height:40px;padding:7px 12px}.studio-feedback--error{background:#fdeeea;border-color:#f0cec6;color:var(--danger)}.studio-stage-empty{align-items:center;color:var(--ink-soft);display:flex;justify-content:center;min-height:580px}.studio-stage-empty--action{flex-direction:column;gap:24px}.studio-stage-empty strong{color:var(--ink);font-size:1.25rem;font-weight:600}.project-status{color:var(--ink-soft);font-size:.68rem}.project-status--published,.project-status--approved{color:var(--color-success)}.project-status--changes_requested,.quiet-button--danger:hover{color:var(--danger)}.studio-topbar{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;min-height:54px;padding:8px 0}.studio-topbar-lead{min-width:0;position:relative}.project-title-button{align-items:center;background:none;border:0;border-radius:var(--radius-pill);color:var(--ink);display:inline-flex;font-size:.95rem;font-weight:600;gap:6px;max-width:100%;padding:6px 10px}.project-title-button:hover{background:var(--surface-hover)}.project-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-title-caret{color:var(--ink-soft);font-size:.8rem}.project-title-menu{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:grid;gap:2px;left:0;min-width:230px;padding:6px;position:absolute;top:calc(100% + 6px);z-index:4}.project-title-menu-meta{border-bottom:1px solid var(--line);display:grid;gap:4px;margin:0 0 4px;padding:6px 10px 9px}.project-title-menu-meta span{color:var(--ink-soft);font-size:.68rem}.project-title-menu-item{background:transparent;border:0;border-radius:7px;color:var(--ink);font-size:.82rem;padding:9px 10px;text-align:left}.project-title-menu-item:hover:not(:disabled){background:var(--surface-hover)}.project-title-menu-item:disabled{color:var(--ink-soft)}.project-title-menu-item--danger:hover:not(:disabled){color:var(--danger)}.studio-topbar-actions{align-items:center;display:flex;gap:8px}.topbar-icon-button{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-control);color:var(--ink-soft);display:inline-flex;font-size:.74rem;justify-content:center;line-height:1;min-height:34px;min-width:34px;padding:4px 6px}.topbar-icon-button:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}.topbar-icon-button[aria-pressed=true]{background:var(--surface-active);border-color:var(--line);color:var(--ink)}.studio-review-button{border-radius:var(--radius-pill);font-size:.8rem;min-height:34px;padding:7px 15px}.studio-conversation{display:grid;grid-template-rows:minmax(280px,1fr) auto;margin:0 auto;max-width:740px;min-height:540px;width:100%}.message-stream{display:flex;flex-direction:column;gap:22px;overflow-y:auto;padding:24px 4px 24px 0}.message-empty{align-items:center;color:var(--ink-soft);display:flex;flex:1;font-size:.82rem;justify-content:center;min-height:180px}.studio-message{display:grid;gap:2px}.studio-thinking{gap:4px}.studio-thinking-line{align-items:center;display:flex;flex-wrap:wrap;font-size:.9rem;gap:10px;line-height:1.68;margin:0}.studio-thinking-stage{animation:studio-thinking-shimmer 2.4s linear infinite;background:linear-gradient(90deg,var(--ink) 0%,var(--ink) 35%,var(--ink-soft) 50%,var(--ink) 65%,var(--ink) 100%);background-clip:text;background-size:220% 100%;color:transparent;-webkit-background-clip:text}.studio-thinking-elapsed{color:var(--ink-soft);font-size:.74rem;font-variant-numeric:tabular-nums}.studio-thinking-hint{color:var(--ink-soft);font-size:.74rem;margin:0}.studio-thinking-dots{display:inline-flex;gap:4px}.studio-thinking-dots i{animation:studio-thinking-pulse 1.2s ease-in-out infinite;background:var(--ink-soft);border-radius:50%;height:6px;opacity:.3;width:6px}.studio-thinking-dots i:nth-child(2){animation-delay:.16s}.studio-thinking-dots i:nth-child(3){animation-delay:.32s}@keyframes studio-thinking-pulse{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@keyframes studio-thinking-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media(prefers-reduced-motion:reduce){.studio-thinking-dots i{animation:none;opacity:.5}.studio-thinking-stage{animation:none;background:none;background-clip:border-box;color:var(--ink);-webkit-background-clip:border-box}}.studio-message--user{justify-items:end}.studio-message-body{font-size:.9rem;line-height:1.68;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.studio-message--user .studio-message-body{background:var(--paper-deep);border-radius:16px 16px 5px;max-width:82%;padding:11px 15px}.studio-message-meta{align-items:center;display:flex;gap:12px;min-height:22px;opacity:0;transition:opacity .14s ease}.studio-message--user .studio-message-meta{justify-content:flex-end}.studio-message:hover .studio-message-meta,.studio-message:focus-within .studio-message-meta{opacity:1}.studio-message-meta time,.message-meta-tag{color:var(--ink-soft);font-size:.7rem}.studio-message-meta time{cursor:help}.message-meta-action{background:none;border:0;border-radius:6px;color:var(--ink-soft);font-size:.7rem;padding:2px 5px}.message-meta-action:hover{background:var(--surface-hover);color:var(--ink)}.artifact-card{align-items:center;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);display:flex;gap:14px;padding:14px 16px;position:relative}.artifact-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}.artifact-card-icon{align-items:center;border:1px solid var(--line);border-radius:9px;color:var(--accent-deep);display:flex;flex:0 0 42px;font-family:var(--font-mono);font-size:.78rem;height:42px;justify-content:center}.artifact-card-copy{display:grid;gap:3px;min-width:0}.artifact-card-copy b{font-size:.9rem;font-weight:600;overflow-wrap:anywhere}.artifact-card-copy small,.artifact-card-hint{color:var(--ink-soft);font-size:.72rem}.artifact-card-hint{margin-left:auto;text-align:right}.artifact-card-hit{background:transparent;border:0;border-radius:inherit;inset:0;position:absolute}.artifact-card-hit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.artifact-panel{border-left:1px solid var(--line);border-radius:0 var(--radius-card) var(--radius-card) 0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0}.artifact-panel-head{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:10px;min-height:52px;padding:8px 14px}.artifact-panel-tabs{background:var(--paper-deep);border-radius:var(--radius-control);display:flex;gap:2px;padding:2px}.artifact-panel-tabs button{background:transparent;border:0;border-radius:6px;color:var(--ink-soft);font-size:.72rem;min-height:28px;padding:4px 11px}.artifact-panel-tabs button:hover{color:var(--ink)}.artifact-panel-tabs button.active{background:var(--white);box-shadow:var(--shadow-sm);color:var(--ink)}.artifact-panel-title{color:var(--ink-soft);flex:1;font-size:.76rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artifact-panel-actions{align-items:center;display:flex;gap:6px}.artifact-more-wrap{position:relative}.artifact-more-menu{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:grid;gap:2px;min-width:200px;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:4}.artifact-more-item{background:transparent;border:0;border-radius:7px;color:var(--ink);font-size:.8rem;padding:9px 10px;text-align:left;white-space:nowrap}.artifact-more-item:hover:not(:disabled){background:var(--surface-hover)}.artifact-more-item:disabled{color:var(--ink-soft)}.artifact-panel-body{min-height:0;overflow:auto;padding:14px}.artifact-panel-body .draft-preview-surface{aspect-ratio:auto;height:100%;min-height:430px}.artifact-code{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-mono);font-size:.72rem;line-height:1.6;margin:0;overflow:auto;padding:14px;white-space:pre-wrap;word-break:break-all}.artifact-code-empty{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:320px;text-align:center}.artifact-code-empty strong{font-size:1.15rem;font-weight:600}.artifact-code-empty span{color:var(--ink-soft);font-size:.78rem;margin-top:7px}.artifact-panel-foot{align-items:center;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 14px;padding:10px 14px}.artifact-panel-foot span{color:var(--ink-soft);font-size:.68rem}.review-dialog{max-width:min(520px,calc(100vw - 32px))}.studio-composer{padding-top:10px}.tool-panel-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px;min-height:34px}.tool-panel-head div{display:grid;gap:3px}.tool-panel-head span{color:var(--ink-soft);font-size:.7rem}.tool-panel-head strong{font-size:.82rem;font-weight:600}.draft-hash{font-family:var(--font-mono)}.draft-preview-surface{aspect-ratio:16 / 10;background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-card);min-height:0;overflow:hidden;position:relative}.draft-preview-frame{background:var(--white);border:0;display:block;height:100%;width:100%}.draft-preview-empty{align-items:center;display:flex;flex-direction:column;inset:0;justify-content:center;position:absolute}.draft-preview-empty strong{font-size:1.2rem;font-weight:600}.draft-preview-empty span{color:var(--ink-soft);font-size:.78rem;margin-top:7px}.preview-open-button{margin-top:18px;min-width:150px}.import-mode{border-bottom:1px solid var(--line);display:flex;gap:16px}.import-mode button{background:none;border:0;border-bottom:2px solid transparent;color:var(--ink-soft);font-size:.78rem;margin-bottom:-1px;padding:8px 2px}.import-mode button.active{border-bottom-color:var(--accent);color:var(--ink);font-weight:600}.studio-composer textarea{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-card);color:var(--ink);display:block;margin-top:10px;min-height:92px;padding:14px;resize:vertical;width:100%}.studio-composer textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:0}.composer-foot{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:8px}.composer-foot-meta{display:grid;gap:4px;min-width:0}.composer-foot-meta>span{color:var(--ink-soft);font-size:.7rem}.composer-upload-state{color:var(--color-success)!important;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.composer-add-wrap{position:relative}.composer-add-button{align-items:center;background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);display:inline-flex;font-size:1.1rem;justify-content:center;line-height:1;min-height:38px;min-width:38px;padding:8px}.composer-add-button:hover{background:var(--surface-hover);color:var(--ink)}.composer-add-menu{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);bottom:calc(100% + 8px);box-shadow:var(--shadow);display:grid;gap:2px;min-width:196px;padding:6px;position:absolute;right:0;z-index:3}.composer-add-menu-item{background:transparent;border:0;border-radius:7px;color:var(--ink);font-size:.8rem;padding:9px 10px;text-align:left;white-space:nowrap}.composer-add-menu-item:hover{background:var(--surface-hover)}.composer-upload-button{border-radius:var(--radius-pill);font-size:.78rem;min-height:38px;padding:8px 14px}.composer-foot .primary-button{border-radius:var(--radius-pill);font-size:.8rem;padding:9px 16px}.import-dialog{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);color:var(--ink);max-width:min(620px,calc(100vw - 32px));padding:0;width:100%}.import-dialog::backdrop{background:#1414136b}.import-dialog-form{padding:30px}.import-dialog-form>header{align-items:start;display:flex;justify-content:space-between}.import-dialog-form h2{font-size:1.4rem;font-weight:600;letter-spacing:-.01em;margin:5px 0 0}.import-dialog-form .page-kicker{margin-bottom:0}.import-mode{margin-top:26px}.import-fields{display:grid;gap:20px;padding:26px 0 12px}.import-fields>label{display:grid;gap:7px}.import-fields>label>span{color:var(--ink-soft);font-size:.76rem}.import-fields input:not([type=file]),.import-fields select{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--ink);min-width:0;padding:10px 12px;width:100%}.upload-target-control{border:0;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;min-width:0;padding:0}.upload-target-control legend{color:var(--ink-soft);font-size:.76rem;margin-bottom:7px;padding:0}.upload-target-control label{position:relative}.upload-target-control input{height:1px;opacity:0;position:absolute;width:1px}.upload-target-control label span{align-items:center;background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--ink-soft);cursor:pointer;display:flex;font-size:.78rem;justify-content:center;min-height:42px;padding:8px 12px}.upload-target-control label:hover span{background:var(--surface-hover)}.upload-target-control input:checked+span{background:var(--surface-active);border-color:var(--ink);color:var(--ink);font-weight:600}.upload-target-control input:focus-visible+span{outline:2px solid var(--color-focus);outline-offset:3px}.upload-target-control input:disabled+span,.upload-target-control:disabled span{cursor:not-allowed;opacity:.5}.upload-target-summary{border-bottom:1px solid var(--line);display:grid;gap:4px;padding:2px 0 12px}.upload-target-summary span,.upload-target-summary small{color:var(--ink-soft);font-size:.72rem}.upload-target-summary strong{font-size:.9rem;overflow-wrap:anywhere}.file-field{background:var(--paper);border:1px dashed var(--line-strong);border-radius:var(--radius);min-height:108px;padding:18px;position:relative}.file-field input{cursor:pointer;inset:0;opacity:0;position:absolute;width:100%}.file-field-copy{color:var(--ink);display:grid;gap:6px;margin-top:10px;pointer-events:none;text-transform:none}.file-field-copy b{font-size:.82rem;font-weight:600;overflow-wrap:anywhere}.file-field-copy small{color:var(--ink-soft);font-size:.74rem}.upload-file-summary{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto auto;padding:2px 0 12px}.upload-file-summary>span{display:-webkit-box;font-size:.76rem;line-height:1.35;overflow:hidden;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.upload-file-summary>b{color:var(--ink-soft);font-size:.72rem;font-weight:500;white-space:nowrap}.upload-file-summary .quiet-button{min-height:44px;padding:8px}.upload-progress{background:var(--paper);border-left:2px solid var(--accent);border-radius:var(--radius);color:var(--ink-soft);font-size:.78rem;margin:0;min-height:40px;padding:10px 12px}.import-dialog-form>footer{align-items:center;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;margin-top:16px;padding-top:18px}.settings-header{align-items:end;display:flex;gap:24px;justify-content:space-between;padding:8px 0 26px}.settings-header .page-kicker{display:block;margin-bottom:12px}.settings-header h1{font-size:1.75rem;font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:0}.success-message{color:var(--color-success);font-size:.82rem}.settings-form{border-top:1px solid var(--line-strong)}.settings-group{border-bottom:1px solid var(--color-border);display:grid;gap:40px;grid-template-columns:minmax(190px,.38fr) minmax(0,1fr);padding:30px 0}.settings-group>header{display:flex;gap:16px}.settings-group>header>span{color:var(--accent-deep);font-family:var(--font-mono);font-size:.72rem;margin-top:4px}.settings-group h2{font-size:1.15rem;font-weight:600;margin:0}.settings-group header p{color:var(--color-text-muted);font-size:.78rem;margin:5px 0 0}.settings-fields{display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-field{display:grid;gap:var(--space-2);min-width:0}.form-label{color:var(--color-text-muted);font-size:.78rem;font-weight:500}.form-help{color:var(--color-text-muted);font-size:.76rem;margin:0}.form-error{color:var(--color-danger);font-size:.72rem;margin:0}.form-control{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);color:var(--color-text);min-height:var(--control-height);min-width:0;padding:10px 12px;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.form-control::placeholder{color:var(--color-text-muted);opacity:.72}.form-control:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:0}.form-control:disabled{background:var(--color-control-disabled);color:var(--color-text-muted);cursor:not-allowed;opacity:1}.form-control:user-invalid,.form-control[aria-invalid=true]{border-color:var(--color-danger);box-shadow:0 0 0 2px #a343371f}.form-control--multiline{min-height:96px;resize:vertical}.setting-field{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);display:grid;gap:12px;min-height:132px;padding:20px}.setting-field>span{color:var(--color-text-muted);font-size:.76rem}.setting-control{align-items:end;display:flex;gap:10px}.setting-control input{background:transparent;border:0;border-bottom:1px solid var(--color-border-strong);border-radius:0;color:var(--color-text);font-family:var(--font-mono);font-size:1.2rem;min-width:0;padding:5px 0;width:100%}.setting-control input:focus-visible{border-bottom-color:var(--color-focus);box-shadow:0 1px 0 var(--color-focus)}.setting-control b{color:var(--color-text-muted);font-size:.72rem;font-weight:500;padding-bottom:8px}.toggle-row{align-items:center;color:var(--color-text-muted);cursor:pointer;display:flex;font-size:.78rem;gap:8px;min-height:var(--control-height)}.toggle-row input{accent-color:var(--color-focus);height:18px;width:18px}.setting-field--toggle{align-content:start}.switch-control{align-items:center;cursor:pointer;display:flex;gap:10px;margin-top:10px;min-height:var(--control-height)}.switch-control input{height:1px;opacity:0;position:absolute;width:1px}.switch-control>span{background:var(--color-surface-subtle);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);display:block;height:26px;position:relative;transition:background var(--transition-fast),border-color var(--transition-fast);width:46px}.switch-control>span:after{background:var(--color-text-muted);border-radius:50%;content:"";height:18px;left:3px;position:absolute;top:3px;transition:transform var(--transition-fast),background var(--transition-fast);width:18px}.switch-control input:checked+span{background:var(--accent);border-color:var(--accent)}.switch-control input:checked+span:after{background:var(--white);transform:translate(20px)}.switch-control input:focus-visible+span{outline:2px solid var(--color-focus);outline-offset:3px}.switch-control b{font-size:.78rem;font-weight:500}.settings-savebar{align-items:center;display:flex;justify-content:space-between;padding:22px 0}.settings-savebar>span{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.74rem}.admin-subnav{border-bottom:1px solid var(--color-border);border-top:1px solid var(--color-border);display:flex;gap:var(--space-5);margin-bottom:28px;overflow-x:auto;scrollbar-width:thin}.admin-subnav a{align-items:center;border-bottom:2px solid transparent;color:var(--color-text-muted);display:inline-flex;flex:0 0 auto;font-size:.82rem;margin-bottom:-1px;min-height:var(--control-height);padding:0 var(--space-2);transition:border-color var(--transition-fast),color var(--transition-fast)}.admin-subnav a:hover{color:var(--color-text)}.admin-subnav a.router-link-active{border-bottom-color:var(--accent);color:var(--color-text);font-weight:600}.studio-overview-toolbar{align-items:center;display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-4)}.studio-overview-toolbar>span{color:var(--color-text-muted);font-size:.7rem}.studio-overview-table-wrap{overflow-x:auto}.studio-overview-table{border-collapse:collapse;min-width:1060px;table-layout:fixed;width:100%}.studio-overview-table thead{border-bottom:1px solid var(--color-border-strong)}.studio-overview-table th{color:var(--color-text-muted);font-size:.72rem;font-weight:600;padding:12px 10px;text-align:left}.studio-overview-table th:nth-child(1){width:86px}.studio-overview-table th:nth-child(2){width:220px}.studio-overview-table th:nth-child(3){width:180px}.studio-overview-table th:nth-child(4){width:130px}.studio-overview-table th:nth-child(5){width:120px}.studio-overview-table th:nth-child(6){width:140px}.studio-overview-table td{border-bottom:1px solid var(--color-border);font-size:.78rem;overflow-wrap:anywhere;padding:15px 10px;vertical-align:top}.studio-overview-table tbody tr:hover{background:var(--surface-hover)}.capability-badge{align-items:center;border:1px solid currentColor;border-radius:var(--radius-pill);display:inline-flex;font-family:var(--font-mono);font-size:.7rem;font-weight:600;justify-content:center;min-height:26px;padding:0 10px;white-space:nowrap}.capability-badge--a{color:var(--color-success)}.capability-badge--b{color:var(--color-focus)}.capability-badge--c{color:#42648a}.capability-badge--d{color:var(--color-danger)}.overview-project-cell,.overview-user-cell,.overview-ai-cell{display:grid;gap:5px}.overview-project-cell strong{font-size:.88rem;font-weight:600;line-height:1.3}.overview-project-cell code,.overview-user-cell code{color:var(--color-text-muted);font-size:.68rem}.overview-project-cell time,.overview-user-cell span,.overview-ai-cell span{color:var(--color-text-muted);font-size:.72rem}.source-type-label{border-bottom:1px solid var(--color-border-strong);display:inline-block;padding-bottom:4px}.numeric-cell strong,.overview-ai-cell strong{font-family:var(--font-mono);font-size:.78rem;font-weight:600}.overview-quota-list{display:grid;gap:5px;margin:0}.overview-quota-list>div{align-items:baseline;display:flex;gap:10px;justify-content:space-between}.overview-quota-list dt,.overview-quota-list dd{font-size:.72rem;margin:0}.overview-quota-list dt{color:var(--color-text-muted)}.overview-quota-list dd{font-family:var(--font-mono);font-weight:600;text-align:right}.admin-review-header{align-items:end;display:flex;gap:30px;justify-content:space-between;padding:8px 0 26px}.admin-review-header .page-kicker{display:block;margin-bottom:12px}.admin-review-header h1{font-size:1.75rem;font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:0}.admin-review-header p{color:var(--ink-soft);margin:10px 0 0;max-width:520px}.admin-review-metrics{border-left:1px solid var(--line);display:flex;gap:28px;padding-left:28px}.admin-review-metrics span{color:var(--ink-soft);display:grid;font-size:.7rem;gap:3px}.admin-review-metrics b{color:var(--ink);font-size:1.35rem;font-weight:600}.admin-review-toolbar{align-items:end;display:flex;gap:12px;margin-bottom:20px}.admin-review-toolbar label{display:grid;gap:5px;min-width:150px}.admin-review-toolbar label span{color:var(--color-text-muted);font-size:.72rem}.admin-review-toolbar select,.review-action-row select{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);color:var(--color-text);min-height:var(--control-height);padding:9px 32px 9px 10px}.admin-review-toolbar .outline-button{margin-left:auto}.admin-review-shell{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);display:grid;grid-template-columns:285px minmax(0,1fr);min-height:740px}.review-queue{background:var(--paper);border-radius:var(--radius-card) 0 0 var(--radius-card);border-right:1px solid var(--line);min-width:0;padding:10px}.review-queue-row{background:transparent;border:0;border-radius:var(--radius);color:var(--ink);display:grid;gap:6px;padding:12px 10px;text-align:left;width:100%}.review-queue-row:hover{background:var(--surface-hover)}.review-queue-row.active{background:var(--surface-active);color:var(--ink)}.review-queue-row-head{align-items:center;display:flex;justify-content:space-between}.review-queue-row-head b,.review-queue-row-head em,.review-queue-row-meta{font-size:.68rem;font-style:normal;font-weight:500}.review-queue-row-head b,.review-queue-row.active .review-queue-row-head b{color:var(--accent-deep)}.review-queue-row-head em{color:var(--ink-soft)}.review-queue-row.active .review-queue-row-head em,.review-queue-row.active .review-queue-row-meta{color:var(--ink-soft)!important}.review-queue-row>strong{font-size:.86rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.review-snapshot-meta{color:var(--ink-soft);font-size:.72rem;line-height:1.4;overflow-wrap:anywhere}.review-latest-badge{border:1px solid currentColor;border-radius:var(--radius-pill);color:var(--accent-deep);display:inline-block;font-size:.64rem;padding:2px 8px;vertical-align:middle}.review-queue-row.active .review-snapshot-meta,.review-queue-row-meta{color:var(--ink-soft)}.queue-more-button{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);margin:12px 0 4px;padding:9px;width:100%}.review-detail{min-width:0;padding:0 20px 32px}.review-detail-empty{align-items:center;color:var(--ink-soft);display:flex;justify-content:center;min-height:620px}.review-detail-header{align-items:end;border-bottom:1px solid var(--line);display:flex;gap:30px;justify-content:space-between;padding:22px 0}.review-detail-header h2{font-size:1.4rem;font-weight:600;letter-spacing:-.01em;line-height:1.25;margin:8px 0 0;overflow-wrap:anywhere}.review-detail-header p{color:var(--ink-soft);font-size:.74rem;margin:7px 0 0;overflow-wrap:anywhere}.review-detail-header dl{border-top:1px solid var(--line);margin:0;min-width:250px}.review-detail-header dl>div{align-items:baseline;border-bottom:1px solid var(--line);display:flex;gap:18px;justify-content:space-between;padding:7px 0}.review-detail-header dt,.review-detail-header dd{font-size:.7rem;margin:0}.review-detail-header dt{color:var(--ink-soft)}.review-detail-header dd{max-width:170px;overflow-wrap:anywhere;text-align:right}.review-access--allowed{color:var(--color-success);font-weight:600}.review-preview{padding-top:20px}.review-preview .draft-preview-surface{max-height:520px}.review-submission-context{border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;gap:4px;margin-top:20px;padding:15px 0}.review-submission-context strong{font-size:.95rem;font-weight:600}.review-submission-context p{color:var(--ink-soft);font-size:.78rem;margin:2px 0 0}.review-action-panel,.review-publish-panel{border-bottom:1px solid var(--line);padding:24px 0}.review-action-panel>header,.review-publish-panel>header{display:grid;gap:4px}.review-action-panel>header strong,.review-publish-panel>header strong{font-size:1.05rem;font-weight:600}.review-action-panel>textarea{margin-top:15px}.review-action-row{align-items:center;display:flex;gap:10px;margin-top:10px}.review-action-row .primary-button{margin:0}.review-action-row select{margin-left:auto}.outline-button--danger{color:var(--danger)}.outline-button--danger:hover{background:var(--danger);border-color:var(--danger);color:var(--white)}.publish-fields{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.publish-fields label{display:grid;gap:5px}.publish-fields label>span{color:var(--color-text-muted);font-size:.72rem}.publish-fields input,.publish-fields textarea,.setting-field>input{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);color:var(--color-text);min-width:0;padding:10px 12px;width:100%}.publish-fields textarea{resize:vertical}.publish-field-wide{grid-column:1 / -1}.review-publish-panel footer{align-items:center;display:flex;gap:20px;justify-content:space-between;padding-top:18px}.review-publish-panel footer>span{color:var(--ink-soft);font-size:.74rem}.review-publish-panel footer a{color:var(--accent-deep);text-decoration:underline}.review-publish-panel .primary-button{margin:0}.settings-fields--single{grid-template-columns:minmax(0,1fr)}.ai-key-controls{display:grid;gap:16px}.ai-key-status{background:var(--paper-deep);border-radius:var(--radius-card);color:var(--ink);display:grid;gap:10px;padding:20px}.ai-key-status .signal-label{color:var(--ink-soft)}.ai-key-status strong{color:var(--accent-deep);font-family:var(--font-mono);font-size:1rem;font-weight:500;overflow-wrap:anywhere}.segmented-control{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.segmented-control label{position:relative}.segmented-control input{height:1px;opacity:0;position:absolute;width:1px}.segmented-control span{align-items:center;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);color:var(--color-text-muted);cursor:pointer;display:flex;font-size:.78rem;justify-content:center;min-height:var(--control-height);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.segmented-control label:hover span{background:var(--surface-hover)}.segmented-control input:checked+span{background:var(--surface-active);border-color:var(--color-text);color:var(--color-text);font-weight:600}.segmented-control input:focus-visible+span{outline:2px solid var(--color-focus);outline-offset:3px}.ai-key-input{min-height:0}.ai-key-warning{background:#fdeeea;border-left:2px solid var(--danger);border-radius:var(--radius);color:var(--danger);font-size:.78rem;margin:0;padding:10px 12px}.connection-test-panel{border-left:1px solid var(--line);display:grid;gap:18px;padding:4px 0 4px 20px}.connection-test-command{align-items:center;display:flex;gap:20px;justify-content:space-between}.connection-test-command>div{display:grid;gap:4px}.connection-test-command strong{font-size:1.05rem;font-weight:600}.connection-test-error{background:#fdeeea;border-left:3px solid var(--danger);border-radius:var(--radius);color:var(--danger);font-size:.78rem;margin:0;padding:11px 13px}.connection-test-result{border:1px solid var(--line);border-radius:var(--radius-card);display:grid;gap:24px;grid-template-columns:minmax(150px,.7fr) minmax(240px,1.3fr);padding:18px}.connection-test-result--success{background:#f1f7f3;border-color:#cee0d5}.connection-test-result--failure{background:#fdeeea;border-color:#f0cec6}.connection-test-state{align-items:center;display:flex;gap:12px}.connection-state-mark{background:var(--danger);border-radius:50%;display:block;flex:0 0 10px;height:10px;width:10px}.connection-test-result--success .connection-state-mark{background:var(--color-success)}.connection-test-state>div{display:grid;gap:3px}.connection-test-state span,.connection-test-result dt{color:var(--ink-soft);font-size:.7rem}.connection-test-state strong{font-size:1.05rem;font-weight:600}.connection-test-result dl{display:grid;gap:8px;margin:0}.connection-test-result dl>div{align-items:baseline;border-bottom:1px solid var(--line);display:grid;gap:12px;grid-template-columns:105px minmax(0,1fr);padding-bottom:7px}.connection-test-result dt,.connection-test-result dd{margin:0}.connection-test-result dd{font-family:var(--font-mono);font-size:.76rem;overflow-wrap:anywhere;text-align:right}.connection-test-result dd strong{display:block;font-family:inherit;font-weight:600}.connection-test-result dd code{color:var(--ink-soft);display:block;font-size:.68rem;margin-top:2px}.submission-list{display:grid}.submission-row{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:20px;grid-template-columns:minmax(180px,1fr) minmax(180px,1.2fr) 130px;padding:16px 0}.submission-row>div{display:grid;gap:3px}.submission-row strong{font-size:.9rem;font-weight:600}.submission-row div span,.submission-row p,.submission-row em{color:var(--ink-soft);font-size:.74rem;font-style:normal;margin:0;overflow-wrap:anywhere}.submission-row em{text-align:right}.review-state--published,.review-state--approved{color:var(--color-success)!important}.review-state--changes-requested,.review-state--changes_requested,.review-state--rejected{color:var(--danger)!important}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:840px){.topbar{gap:16px;padding:0 18px}.main-nav{gap:15px}.account-role{display:none}.page-shell{padding-left:24px;padding-right:24px}.login-layout{display:block}.login-intro{min-height:58vh;padding:60px 12vw}.login-intro h1{font-size:2.2rem}.login-panel{margin:-40px 24px 40px}.page-heading-row h1,.placeholder-page h1{font-size:1.6rem}.signal-grid,.route-preview{grid-template-columns:1fr}.lesson-grid,.profile-grid{grid-template-columns:1fr 1fr}.detail-layout{gap:48px;grid-template-columns:1fr}.route-preview{align-items:start}.studio-shell,.studio-page--artifact-open .studio-shell{grid-template-columns:190px minmax(0,1fr)}.studio-page--sidebar-collapsed.studio-page--artifact-open .studio-shell{grid-template-columns:64px minmax(0,1fr)}.studio-page--artifact-open .studio-stage{display:none}.artifact-panel{border-left:0}.settings-group{gap:22px;grid-template-columns:1fr}.admin-review-shell{grid-template-columns:220px minmax(0,1fr)}.review-detail-header{align-items:start;flex-direction:column}.review-detail-header dl{width:100%}.studio-overview-table{display:block;min-width:0}.studio-overview-table thead{display:none}.studio-overview-table tbody{display:grid;gap:var(--space-4)}.studio-overview-table tr{border-top:1px solid var(--line-strong);display:block}.studio-overview-table td{align-items:start;display:grid;gap:var(--space-3);grid-template-columns:130px minmax(0,1fr);padding:12px 4px}.studio-overview-table td:before{color:var(--color-text-muted);content:attr(data-label);font-size:.61rem;font-weight:600}.studio-overview-table tbody tr:hover{background:transparent}.overview-project-cell,.overview-user-cell,.overview-ai-cell{align-items:start}}@media(max-width:560px){.topbar{gap:9px;min-height:68px;overflow-x:auto;padding:0 12px}.brand>span:last-child,.account-role{display:none}.main-nav{gap:9px;margin-left:auto;margin-right:0}.main-nav a,.quiet-button{font-size:.62rem}.account-bar{gap:7px}.locale-control select{min-height:32px;padding-left:7px;width:64px}.page-heading-row{align-items:start;flex-direction:column}.page-heading-row .outline-button{align-self:stretch}.login-intro{padding:48px 44px}.login-intro h1{font-size:1.9rem}.login-panel{margin:-26px 12px 30px;padding:30px 24px}.login-panel h2,.page-heading-row h1,.placeholder-page h1{font-size:1.5rem}.signal-value{font-size:1.15rem}.lesson-grid,.profile-grid{grid-template-columns:1fr}.catalog-toolbar span{margin-left:0;width:100%}.runtime-page{height:calc(100vh - 136px)}.record-row{gap:10px;grid-template-columns:1fr 100px}.record-row em{grid-column:2;grid-row:1;text-align:right}.studio-page-header,.settings-header{align-items:start;flex-direction:column}.studio-page-header h1,.settings-header h1{font-size:1.4rem}.studio-shell,.studio-page--sidebar-collapsed .studio-shell{display:block}.project-rail{border-bottom:1px solid var(--line);border-radius:var(--radius-card) var(--radius-card) 0 0;border-right:0;display:flex;gap:8px;overflow-x:auto;padding:8px}.project-rail-head{min-width:90px}.project-row{border:1px solid var(--line);flex:0 0 170px}.project-rail-empty{min-width:150px}.studio-stage{padding:0}.studio-topbar{gap:10px}.studio-conversation{min-height:460px}.artifact-panel-title,.artifact-card-hint{display:none}.studio-message-meta{opacity:1}.message-stream{max-height:360px}.import-dialog-form{padding:22px}.import-dialog-form>footer{align-items:stretch}.import-dialog-form>footer .outline-button,.import-dialog-form>footer .primary-button{flex:1;min-width:0}.upload-file-summary{grid-template-columns:minmax(0,1fr) auto}.upload-file-summary .quiet-button{grid-column:1 / -1;justify-self:start}.studio-page--sidebar-collapsed .project-rail-head{min-width:40px}.studio-page--sidebar-collapsed .project-rail-create{flex:0 0 40px;margin:0;min-height:40px;padding-left:4px;padding-right:4px;width:40px}.composer-foot{align-items:stretch;flex-direction:column}.composer-actions{justify-content:stretch;width:100%}.composer-add-wrap{flex:0 0 auto}.composer-upload-button,.composer-actions .primary-button{flex:1;min-width:0}.composer-upload-state{max-width:100%}.composer-add-menu{left:0;right:auto}.settings-fields{grid-template-columns:1fr}.admin-review-header{align-items:start;flex-direction:column}.admin-review-header h1{font-size:1.45rem}.admin-review-metrics{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:14px;width:100%}.admin-review-toolbar{align-items:stretch;display:grid;grid-template-columns:1fr 1fr}.admin-review-toolbar label,.admin-review-toolbar select{min-width:0;width:100%}.admin-review-toolbar .outline-button{grid-column:1 / -1;margin-left:0}.admin-review-shell{display:block}.studio-overview-header .admin-review-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.studio-overview-header .admin-review-metrics b{font-size:1.25rem;overflow-wrap:anywhere}.studio-overview-toolbar{align-items:stretch;flex-direction:column}.studio-overview-table td{grid-template-columns:96px minmax(0,1fr)}.review-queue{border-bottom:1px solid var(--line);border-radius:var(--radius-card) var(--radius-card) 0 0;border-right:0;display:flex;gap:8px;overflow-x:auto;padding:8px}.review-queue-row{border:1px solid var(--line);flex:0 0 210px}.review-queue .empty-state{min-width:220px}.queue-more-button{flex:0 0 130px}.review-detail{padding:0 0 24px}.review-detail-empty{min-height:240px}.review-detail-header dl{min-width:0}.review-action-row{align-items:stretch;flex-direction:column}.review-action-row .primary-button,.review-action-row .outline-button,.review-action-row select{margin-left:0;width:100%}.publish-fields{grid-template-columns:1fr}.publish-field-wide{grid-column:auto}.review-publish-panel footer{align-items:stretch;flex-direction:column}.review-publish-panel footer .primary-button{width:100%}.settings-savebar{align-items:stretch;flex-direction:column;gap:14px}.settings-savebar .primary-button{width:100%}.connection-test-panel{padding-left:14px}.connection-test-command{align-items:stretch;flex-direction:column}.connection-test-command .outline-button{width:100%}.connection-test-result{grid-template-columns:1fr}.submission-row{gap:8px;grid-template-columns:1fr auto}.submission-row>.submission-review-copy{grid-column:1 / -1;grid-row:2}.submission-row em{grid-column:2;grid-row:1}}@media(hover:none){.studio-message-meta{opacity:1}}@media(prefers-reduced-motion:reduce){.studio-message-meta{transition:none}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.project-state--published{color:var(--color-success)}.project-state--notPublished,.project-state--rejected{color:var(--danger)}.project-state--sent,.project-state--pending{color:var(--accent-deep)}.project-rail-works{color:var(--ink-soft);display:block;font-size:.78rem;padding:8px 10px;text-decoration:none}.project-rail-works:hover{color:var(--ink);text-decoration:underline}.project-rail-group{display:grid;gap:2px}.project-rail-group-head{color:var(--ink-soft);font-size:.68rem;letter-spacing:.08em;margin:12px 0 2px;padding:0 10px;text-transform:uppercase}.project-rail-group-toggle{align-items:center;background:none;border:0;display:flex;justify-content:space-between;text-align:left;width:100%}.project-row-pin{color:var(--accent-deep)}.project-rail-menu{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 14px 34px #1c191429;display:grid;gap:2px;padding:6px;position:fixed;width:176px;z-index:40}.project-rail-menu-item{background:transparent;border:0;border-radius:7px;color:var(--ink);font-size:.82rem;padding:9px 10px;text-align:left}.project-rail-menu-item:hover{background:var(--surface-hover)}.studio-timeline-entry{border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:6px;margin:12px 0;padding:14px 16px}.studio-timeline-entry--notPublished{border-color:#f0cec6}.studio-timeline-head{align-items:baseline;display:flex;gap:12px;justify-content:space-between}.studio-timeline-head strong{font-size:.86rem}.studio-timeline-head time,.studio-timeline-note{color:var(--ink-soft);font-size:.78rem}.works-list,.unpublish-list{display:grid;gap:14px;list-style:none;margin:20px 0 0;padding:0}.works-row,.unpublish-row{border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:10px;padding:18px 20px}.works-row--tombstone{background:var(--surface-hover)}.works-row-head,.unpublish-row-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:12px}.works-row-head time,.unpublish-row-head time,.unpublish-row-meta{color:var(--ink-soft);font-size:.78rem}.works-tombstone-badge{color:var(--ink-soft);font-size:.72rem}.works-layers{display:flex;flex-wrap:wrap;gap:24px;margin:0}.works-layers dt{color:var(--ink-soft);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}.works-layers dd{font-size:.84rem;margin:4px 0 0}.works-unpublish-state{color:var(--accent-deep);font-size:.8rem}.works-row-actions,.unpublish-row-actions{display:flex;flex-wrap:wrap;gap:10px}.works-unpublish-form{border-top:1px solid var(--line);display:grid;gap:10px;padding-top:14px}.works-unpublish-help,.unpublish-row-note{color:var(--ink-soft);font-size:.78rem}.review-published-line{font-size:.8rem;padding-top:12px}.review-lesson-id-inherited{align-items:center;display:flex;flex-wrap:wrap;gap:8px;font-size:.88rem}.review-lesson-id-inherited small{color:var(--ink-soft);font-size:.72rem}.review-relist-warning{background:var(--surface-active);border-left:2px solid var(--accent-deep);border-radius:var(--radius);color:var(--accent-deep);font-size:.8rem;margin:14px 0 0;padding:10px 12px}.review-publish-buttons{display:flex;gap:10px}.project-rail-upload{align-items:center;background:none;border:0;border-radius:var(--radius);color:var(--ink-soft);display:flex;font-size:.8rem;gap:8px;padding:8px 10px;text-align:left;width:100%}.project-rail-upload:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}.upload-project-view{display:grid;gap:14px;padding:8px 0 24px}.upload-project-note,.upload-project-empty{color:var(--ink-soft);font-size:.82rem}.upload-project-head{align-items:center;color:var(--ink-soft);display:flex;flex-wrap:wrap;font-size:.78rem;gap:16px}.upload-file-tree{border:1px solid var(--line);border-radius:var(--radius);display:grid;list-style:none;margin:0;padding:0}.upload-file-tree li{align-items:center;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px;padding:10px 14px}.upload-file-tree li:last-child{border-bottom:0}.upload-file-path{flex:1 1 220px;font-size:.84rem;overflow-wrap:anywhere}.upload-file-size{color:var(--ink-soft);font-size:.74rem}.upload-file-replace{color:var(--accent-deep);cursor:pointer;font-size:.78rem;position:relative}.upload-file-replace input{inset:0;opacity:0;position:absolute;width:100%}.upload-file-add{align-items:end;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:14px;padding-top:14px}
