/* Shared studio2 shell, catalog rail, service cards and ordered workflow.
   No viewport-scaled type, negative text margins or fixed text heights. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.65}
small{font-size:var(--fs-caption);line-height:1.6}
button,input,select,textarea{font-family:var(--font-sans)}
button{line-height:1.5}p{line-height:1.75}h1,h2,h3,h4,h5,h6{line-height:1.45;overflow-wrap:anywhere}
img,video,canvas{max-width:100%}svg{flex-shrink:0}
:where(button,a,input,textarea,select,summary):focus-visible{outline:2px solid var(--pri);outline-offset:3px}
.app{height:100dvh;min-height:0}
.sidebar{width:240px;min-width:240px;background:var(--sb)}
.brand{padding:0 22px;gap:12px}.brand-mark{background:var(--pri);box-shadow:none;width:34px;height:34px;border-radius:11px;font-size:var(--fs-section)}
.brand-name{font-size:var(--fs-section);letter-spacing:0;line-height:1.4}.brand-sub{font-size:var(--fs-caption);line-height:1.5}
.sb-scroll{padding:14px 14px 4px}.sb-side{padding:4px 14px}.nav-item{min-height:42px;padding:9px 12px;gap:10px;font-size:var(--fs-control);border-radius:10px}
.nav-item.active{font-weight:650}.nav-item.active::before{display:none}.nav-label{letter-spacing:0;line-height:1.5}.nav-ico svg{width:18px;height:18px}
.nav-group{margin-top:10px}.nav-group-title{min-height:34px;font-size:var(--fs-caption);letter-spacing:.5px;padding:6px 12px}.nav-group-title .chev{font-size:var(--fs-caption)}
.local-badge{background:transparent;border:0;font-size:var(--fs-caption);line-height:1.5}.dot-live{box-shadow:none}
.topbar{padding:0 28px;gap:20px;backdrop-filter:none}.tb-title{font-size:var(--fs-control);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-right{gap:12px;min-width:0;flex-wrap:nowrap;flex-shrink:0}
.ts-breadcrumb{display:flex;align-items:center;gap:12px;min-width:0}.ts-breadcrumb>span{color:var(--ink3);font-size:var(--fs-caption)}
.ts-runtime{position:relative;font-size:var(--fs-caption)}.ts-runtime>summary{cursor:pointer;list-style:none;padding:8px;white-space:nowrap}.ts-runtime>summary::-webkit-details-marker{display:none}
.ts-runtime-panel{position:absolute;top:42px;right:0;z-index:45;width:280px;max-width:calc(100vw - 32px);padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);line-height:1.9}
.ts-runtime-panel .chip-state{margin-top:8px;white-space:normal;border:0;border-radius:0;padding:0;background:transparent}.ts-runtime-panel .text-btn{display:block}
.theme-toggle{width:36px;height:36px;flex-shrink:0;background:var(--surface2);border-radius:10px}.theme-toggle svg{width:18px;height:18px}.avatar{border:0;background:var(--pri-soft);color:var(--pri-d);width:34px;height:34px;border-radius:11px;font-size:var(--fs-control)}
.content{padding:28px 32px 48px;scrollbar-gutter:stable;min-width:0;outline:none}.content>:first-child{max-width:var(--ts-container);width:100%;margin-inline:auto}
.page-head{align-items:center;gap:16px;margin-bottom:22px}.page-head>div{min-width:0;max-width:100%}.page-title,.page-head h1{font-size:var(--fs-title);line-height:1.4;font-weight:700;letter-spacing:-.3px}.page-q{font-size:var(--fs-control);line-height:1.65;margin-top:6px}.page-q::before{display:none}
.card{box-shadow:var(--shadow);min-width:0}.card-head{padding:20px 22px 0;align-items:flex-start;flex-wrap:wrap;gap:12px}.card-title{font-size:var(--fs-section);line-height:1.5;flex-wrap:wrap}.card-sub{font-size:var(--fs-caption);line-height:1.65}.card-body{padding:16px 22px 22px;min-width:0}.section-gap{margin-bottom:20px}.grid{gap:20px}.grid>*{min-width:0}
.btn,.chip,.tab,.text-btn{font-size:var(--fs-control);line-height:1.5;font-weight:600;letter-spacing:0}
.btn{height:auto;min-height:40px;padding:8px 14px;border-radius:var(--ts-radius-control);justify-content:center;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal;transition:background var(--ts-duration-fast),border-color var(--ts-duration-fast),transform var(--ts-duration-fast)}
.btn:active:not(:disabled){transform:translateY(1px)}.btn-sm{min-height:34px;height:auto;padding:6px 11px;font-size:var(--fs-control)}.btn-pri{color:#fff}.btn-pri:hover{background:var(--pri-d)}[data-theme="dark"] .btn-pri{color:var(--bg)}
.text-btn{min-height:34px;padding:4px 0;text-decoration:none}.text-btn:hover{text-decoration:underline}.chip{min-height:36px;border-radius:9px;padding:7px 12px;white-space:normal}.tab{flex-shrink:0;min-height:42px;padding:10px 16px;font-size:var(--fs-control)}.tabs{overflow:auto;max-width:100%;white-space:nowrap}.chips{gap:8px}
.badge{font-size:var(--fs-caption);line-height:1.5;white-space:normal;max-width:100%;overflow-wrap:anywhere;word-break:normal;border-radius:7px;padding:4px 8px;font-weight:500}.badge .sdot{flex-shrink:0}.mono{font-size:var(--fs-caption);overflow-wrap:anywhere}
.input,select.input,textarea.input{font-size:16px;line-height:1.5;min-height:42px;max-width:100%;min-width:0;border-radius:10px;padding:9px 12px;background:var(--surface)}.input:focus{box-shadow:0 0 0 3px var(--pri-soft)}.input-sm{min-height:36px;font-size:var(--fs-control)}
.field label,.field>span,.ana-label{font-size:var(--fs-control);line-height:1.6}.mini-note,.empty,.kv-row,.signal-line,.ai-meta{font-size:var(--fs-caption);line-height:1.7}.empty{overflow-wrap:anywhere}.callout{font-size:var(--fs-control);line-height:1.75;gap:12px;padding:14px 16px}.callout>span:first-child{flex-shrink:0}.callout>span:last-child{min-width:0;overflow-wrap:anywhere}
.stat-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stat{padding:16px;background:var(--surface2);border:0;border-radius:12px}.stat-v{font-size:var(--fs-metric);line-height:1.3;margin-top:6px}.stat-v small{font-size:var(--fs-caption)}.stat-l{font-size:var(--fs-control)}
.ts-workbench .action-item{border:0;border-bottom:1px solid var(--line2);border-radius:0;border-left:0;margin:0;padding:16px 0;gap:14px}.ts-workbench .action-item:last-child{border:0}.ai-title{font-size:var(--fs-body);line-height:1.6}.ai-tag{font-size:var(--fs-caption)}
.ts-workbench .chat-log{max-height:360px}.msg{font-size:var(--fs-body);line-height:1.75;padding:14px 16px;max-width:100%;width:auto}.msg.bot{width:auto;max-width:100%}.chat-input{flex-wrap:wrap}.chat-input .input{min-width:160px;height:auto}.cmd-chips{gap:8px}.intent-line{font-size:var(--fs-caption);overflow-wrap:anywhere}
.kv-row{gap:10px;flex-wrap:wrap;align-items:flex-start}.kv-row>span:first-child{flex:1;min-width:min(100%,11em)}.kv-row>.badge{flex-shrink:0}.dl{gap:16px 24px}.dl .dt,.dl .dd{font-size:var(--fs-control);line-height:1.7}.dd,.creation-goal-text{overflow-wrap:anywhere}
.ts-table-scroll{max-width:100%;overflow:auto;overscroll-behavior-inline:contain}.tbl{display:table;min-width:560px;font-size:var(--fs-control)}.tbl th,.tbl td{padding:12px;font-size:var(--fs-control);line-height:1.6}.tbl th{white-space:nowrap}.team-table th,.team-table td{font-size:var(--fs-control)}
.board{gap:16px;max-width:100%;padding-bottom:12px}.bcol{min-width:230px;padding:12px;border-radius:12px}.bcol-h{font-size:var(--fs-control);padding:2px 2px 12px}.kcard{padding:14px;margin-bottom:10px;border-radius:10px;font-size:var(--fs-control)}.kcard .kt{line-height:1.6;overflow-wrap:anywhere}.kcard .km{font-size:var(--fs-caption);line-height:1.6;gap:8px}.cal{grid-template-columns:repeat(7,minmax(130px,1fr));overflow:auto;max-width:100%}.cal-day h6,.cal-ev{font-size:var(--fs-caption)}
.steps{gap:8px;max-width:100%;padding:6px 0 10px;overscroll-behavior-inline:contain}.step{flex-shrink:0;font-size:var(--fs-control);line-height:1.6;padding-right:16px}.step i{width:22px;height:22px;font-size:var(--fs-caption);flex-shrink:0}.ctx-bar{background:var(--surface2);color:var(--ink2);border-color:var(--line);font-size:var(--fs-caption);line-height:1.7}.draft-area{font-size:16px;line-height:1.85;min-height:320px;max-width:100%}.src-chain{gap:6px;max-width:100%;flex-wrap:wrap}.src-chain .node{font-size:var(--fs-caption);white-space:normal;overflow-wrap:anywhere}
.creation-head-actions{max-width:100%;min-width:0}.creation-quality-layout .kv-row>span:first-child{min-width:100%}.draft-history-row{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:12px 0}.draft-history-row.active{background:var(--pri-soft)}.draft-history-main b,.draft-history-main span,.draft-history-main small{font-size:var(--fs-caption);line-height:1.65;white-space:normal}.quality-score-row p,.quality-score-row span{font-size:var(--fs-caption)}
.ts-directions>summary{padding:16px 22px;cursor:pointer;font-size:var(--fs-control);line-height:1.65;font-weight:600}.ts-directions>summary .mini-note{font-weight:400;margin-left:8px}.ts-directions .card-head{padding-top:0}.ts-directions .empty{padding:16px}.ts-context{padding:12px 16px;margin-bottom:16px}.ts-context>summary{cursor:pointer;font-weight:600}.ts-context>div{padding-top:8px;font-weight:400}.ts-context details{margin-top:6px}
.struct{overflow-x:auto;gap:8px;padding-bottom:6px}.struct .seg{min-width:110px;background:var(--pri-soft)!important;color:var(--ink);padding:12px;overflow:visible;text-align:left;line-height:1.65}.struct .seg b{font-size:var(--fs-control);line-height:1.6}.struct .seg span{font-size:var(--fs-caption);opacity:1}
.auth-shell{background:var(--bg)}.auth-card{background:var(--surface);padding:32px;border-radius:20px;box-shadow:var(--shadow);gap:18px}.auth-card h1{font-size:var(--fs-title)}.auth-card p,.platform-config p{color:var(--ink2);font-size:var(--fs-body)}.auth-card small{font-size:var(--fs-caption);color:var(--ink3)}.auth-error{color:var(--err)!important}.auth-note{color:var(--ok)!important}.auth-card .btn{min-height:44px}.platform-config{background:var(--surface)}.workspace-inline .input{min-width:0}.workspace-member{min-width:0}.workspace-member>span:first-child{overflow-wrap:anywhere;min-width:0}.topbar select.workspace-selector{font-size:var(--fs-control);max-width:220px;min-height:36px}
.team-toolbar label,.team-assignment-note,.team-card-owner{font-size:var(--fs-control)}.team-member-card{background:var(--surface2);font-size:var(--fs-control);padding:18px}.team-member-card strong{font-size:var(--fs-body)}.team-view-banner{background:var(--warn-soft);border-color:var(--warn-line);color:var(--ink);font-size:var(--fs-control);gap:12px}.platform-section-grid{align-items:start}
.account-meta{flex-wrap:wrap;row-gap:4px!important}.account-meta>span{white-space:nowrap}
.account-actions{flex-wrap:wrap}.account-actions>.btn{flex-shrink:0}
.account-avatar{background:var(--pri);color:var(--surface)}[data-theme="dark"] .account-avatar{color:var(--bg)}
.stat-v.ts-metric-text{font-size:var(--fs-section);line-height:1.65}.pattern-card .badge{flex-shrink:0}
.radar-modebar>button{font-size:var(--fs-control);white-space:nowrap;flex-shrink:0}
@media(max-width:850px){.radar-modebar{flex-wrap:wrap}}
.account-sync-control,.advisor-local-summary,.task-row{flex-wrap:wrap}.account-sync-control>.btn,.advisor-local-summary>.btn,.task-row>.btn,.settings-actions>.btn{flex:0 0 auto}
.tbl .btn{white-space:nowrap}
.creation-empty-form{flex-wrap:wrap}.creation-empty-form>.btn{flex:0 0 auto}
div.empty:has(>b){display:flex;flex-direction:column;align-items:center;gap:10px}div.empty>b{font-size:var(--fs-section);line-height:1.5;color:var(--ink)}div.empty>span{font-size:var(--fs-control);line-height:1.75}
@media(max-width:520px){.task-row>.tr-body{flex-basis:100%}.task-row>.tr-prog{flex-basis:100%}}
[data-theme="dark"] .step.done i,[data-theme="dark"] .step.cur i{color:var(--bg)}
[data-theme="dark"] .brand-mark,[data-theme="dark"] .visual-step,[data-theme="dark"] .settings-mode-card.active .settings-mode-check{color:var(--bg)}
[data-theme="dark"] .visual-v3-section-head>span,[data-theme="dark"] .visual-template-picker em{color:var(--bg)}
.callout b{color:inherit}
.modal{padding:20px}.modal-card{display:flex;flex-direction:column;border-radius:18px;max-height:calc(100dvh - 40px);max-width:min(960px,calc(100vw - 40px));overflow:hidden}.modal-title{font-size:var(--fs-section);line-height:1.5;flex-wrap:wrap}.modal-head{gap:16px;align-items:flex-start;flex-shrink:0;padding-bottom:16px;border-bottom:1px solid var(--line2)}.modal-x{width:34px;height:34px;min-width:34px;font-size:var(--fs-section)}.modal-foot{flex-wrap:wrap;gap:10px;flex-shrink:0}.modal-body{line-height:1.7;min-height:0;overflow:auto;overscroll-behavior:contain}.modal-body .field label{white-space:normal}.ui-technical-details{overflow-wrap:anywhere}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
.mobile-menu-toggle,.mobile-menu-close,.ts-nav-scrim{display:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1180px){.sidebar{width:216px;min-width:216px}.content{padding:24px}.brand{padding-inline:16px}.brand-name{font-size:var(--fs-body)}.ts-breadcrumb>span{display:none}.topbar{padding-inline:24px}.topbar select.workspace-selector{max-width:180px}}
@media(max-width:980px){.g2,.g3,.g4,.g21,.g12,.g31{grid-template-columns:minmax(0,1fr)}.creation-quality-layout{grid-template-columns:minmax(0,1fr)}.account-kpis{max-width:100%}.grid>*{max-width:100%}.card-head{padding:18px 18px 0}.card-body{padding:16px 18px 18px}}
@media(max-width:850px){
 .mobile-menu-toggle{display:flex}.mobile-menu-close{display:flex;align-self:flex-end;margin:10px 12px 0;min-height:36px}
 .sidebar{display:none;position:fixed;inset:0 auto 0 0;width:min(300px,86vw);min-width:0;z-index:101;transform:none;transition:none}
 .menu-open .sidebar{display:flex}.ts-nav-scrim{display:block;position:fixed;inset:0;background:rgb(12 28 19 / 40%);border:0;z-index:100}
 .content{padding:22px 20px 40px}.topbar{padding:0 16px;gap:8px}.tb-right{gap:8px}.ts-breadcrumb{gap:8px}.topbar select.workspace-selector{max-width:165px}.avatar{display:none}
 .page-head{align-items:flex-start}.page-head>div{max-width:100%;width:100%}.page-head>div:last-child{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.page-head .mini-note{text-align:left!important}
 .ts-workbench .action-item{flex-wrap:wrap;align-items:flex-start}.ai-body{flex:1;min-width:160px}.ts-workbench .action-item>.btn{margin-left:auto}
 .callout{flex-direction:column;gap:6px}.chips{flex-wrap:wrap}.team-view-banner{margin:0 16px;flex-wrap:wrap}.team-toolbar label{min-width:0;flex:1 1 180px}
 .modal{padding:12px}.modal-card{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.modal-head{padding:16px 16px 0}.modal-body{padding:16px}.modal-foot{padding:14px 16px}.g2,.g3,.g4,.dl{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:520px){
 .content{padding:20px 16px 36px}.topbar{padding-inline:12px}.tb-title{font-size:var(--fs-control)}.ts-breadcrumb{gap:6px}.tb-right{gap:6px}.topbar select.workspace-selector{max-width:114px;font-size:var(--fs-control)}.ts-runtime{display:none}
 .ts-runtime>summary{padding:6px 2px;font-size:var(--fs-caption)}.ts-runtime-panel{right:-40px}.theme-toggle{width:32px;min-width:32px}.page-title,.page-head h1{font-size:26px}.page-q{font-size:var(--fs-control)}
 .brand-name{font-size:var(--fs-section)}.brand{padding:0 20px}.nav-item{min-height:42px}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-v{font-size:var(--fs-metric)}.stat{padding:14px}
 .card-head{padding:18px 16px 0}.card-body{padding:14px 16px 18px}.card-title{font-size:var(--fs-section)}.ai-body{min-width:0;flex:1 1 100%}.ai-tag{margin-bottom:2px}.ts-workbench .action-item>.btn{margin-left:0;min-width:100px}.chat-input .input{flex-basis:100%;min-width:0}.chat-input>.btn:last-child{flex:1}.msg{padding:12px}
 .btn{min-height:42px}.btn-sm{min-height:36px}.theme-toggle{min-height:36px}.creation-head-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%;gap:8px}.creation-head-actions select{grid-column:1/-1;width:100%!important;margin:0!important}.creation-head-actions .btn{width:100%}
 .own-work-wall,.benchmark-work-wall,.benchmark-work-wall.platform-bilibili{grid-template-columns:repeat(2,minmax(0,1fr))}.own-work-buttons{grid-template-columns:1fr}.platform-section-grid{grid-template-columns:1fr}.workspace-member{align-items:flex-start}.workspace-member>span:first-child{flex-basis:100%}.workspace-inline{align-items:stretch}.workspace-inline .input{flex-basis:100%}.team-toolbar label{flex-basis:100%}
 .modal-card .modal-foot>.btn{flex:1}.modal-title .badge{font-size:var(--fs-caption)}.field-cand{align-items:flex-start;flex-wrap:wrap}.fc-body{flex-basis:100%}.diff-card{padding:16px}.source-toolbar-actions,.account-kpis{max-width:100%}
 .struct{display:grid;grid-template-columns:minmax(0,1fr);overflow:visible}.struct .seg{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px}.struct .seg b{margin:0}.ts-directions>summary{padding:14px 16px}.ts-directions>summary .mini-note{display:block;margin:4px 0 0}.asset-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:980px){.ts-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ts-metric-grid>.ts-permission-stat{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
