/* Focus 布局与共享组件：匹配 fullsite-preview；固定视口、分层导航，业务状态仍由 API 提供。 */
:root:not([data-theme]),[data-theme="clean-light"]{--bg:#f5f6f8;--border:#e2e6ed;--border-strong:#c7ceda;--text:#222a36;--muted:#667181;--muted-dark:#748092;--accent:#315ee7;--accent-strong:#274dc4;--radius:11px}
[hidden]{display:none!important}
html,body{overflow:hidden;font-size:14px}
button{min-height:34px;padding:7px 12px;border-color:var(--border-strong);background:var(--surface);font-size:12px;font-weight:550}
button:hover{border-color:var(--muted-dark)}
.primary{background:var(--accent);border-color:var(--accent);box-shadow:0 2px 5px #315ee71a;color:#fff}
button.danger,.danger{color:var(--danger)}
.danger-primary{background:var(--danger);border-color:var(--danger);color:var(--surface)}
a{color:var(--accent)}
.row{flex-wrap:wrap}
.badge{border:0;border-radius:6px;padding:4px 8px;font-size:11px;white-space:nowrap}
.badge.warn{color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,var(--surface))}
.badge.info{color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.notice{background:var(--surface-soft);border-color:transparent;color:var(--muted);font-size:12px}
.card,.panel{min-width:0;padding:20px}
.cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:18px}
.card h3,.panel h3{font-size:14px}
.card button,.task-line button,.section-head button{min-height:32px;font-size:12px}
.card-top{flex-wrap:wrap}
.card pre{max-height:300px;overflow:auto}
.shell{--rail-w:212px;--sidebar-w:0px;--right-w:0px;grid-template-columns:var(--rail-w) var(--sidebar-w) minmax(0,1fr) var(--right-w);grid-template-rows:60px minmax(0,1fr);height:100dvh;overflow:hidden}
.shell.is-chat{--sidebar-w:244px;--right-w:0px}
.shell.is-chat.context-open{--right-w:300px}
.shell.nav-collapsed{--rail-w:65px}
#rail{grid-column:1;grid-row:1/-1;flex-direction:column;width:auto;align-items:stretch;height:100%;padding:20px 12px 12px;gap:14px;background:color-mix(in srgb,var(--bg) 65%,var(--surface));overflow:hidden}
#rail button{flex-direction:row;justify-content:flex-start;gap:10px;width:100%;height:auto;min-height:37px;padding:8px 10px;border:1px solid transparent;border-radius:7px;font-size:12px;line-height:1.4;background:transparent;text-align:left}
#rail button.active{background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent)}
#rail button:hover{background:var(--surface-soft)}
#rail .rail-label{font-size:12px;line-height:1.5;white-space:nowrap}
#rail .rail-icon{font-size:18px;line-height:20px;flex:0 0 18px;text-align:center}
.nav-brand{display:flex;align-items:center;gap:10px;padding:0 6px}
#rail .brand-mark{width:30px;height:30px;margin:0}
.nav-brand strong{font-size:18px;letter-spacing:-.6px}
.nav-brand small{display:block;font-size:8px;letter-spacing:2px;color:var(--muted)}
.project-switch>label{padding:8px;border:1px solid var(--border);background:var(--surface);border-radius:9px;font-size:10px}
.project-shortcuts{display:flex;align-items:center;gap:2px;margin-top:5px}
#rail .project-shortcuts button{padding:5px 6px;gap:4px;min-height:29px;font-size:11px;white-space:nowrap}
#rail .project-shortcuts .rail-label{font-size:11px}
#rail .nav-new-chat{border-color:var(--border-strong);background:var(--surface);justify-content:center;color:var(--text)}
.nav-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;flex:1;scrollbar-width:thin}
.nav-label{font-size:10px;color:var(--muted);margin:19px 10px 6px}
.nav-label:first-child{margin-top:5px}
.nav-profile{display:flex;align-items:center;gap:8px;border-top:1px solid var(--border);padding:12px 4px 0}
#identity{flex:1;min-width:0;font-size:11px!important;overflow:hidden;text-overflow:ellipsis}
#rail #logout{width:28px;min-height:28px;justify-content:center;padding:3px}
.nav-collapsed #rail{padding:20px 8px 12px}
.nav-collapsed .rail-label,.nav-collapsed .nav-label,.nav-collapsed .project-shortcuts{display:none!important}
.nav-collapsed #rail button{justify-content:center;padding:8px}
.nav-collapsed .nav-brand{justify-content:center;padding:0}
.nav-collapsed .nav-profile{flex-direction:column}
.nav-collapsed .project-switch>label{font-size:0;padding:2px;border:0}
.nav-collapsed .project-switch .ui-select-trigger{font-size:0;min-width:0;justify-content:center}
.nav-collapsed .project-switch .ui-select-trigger>span:first-child{display:none}
.nav-collapsed .project-switch .ui-select-trigger>span:last-child{font-size:18px}
.workspace-topbar{grid-column:2/-1;grid-row:1;min-width:0;height:60px;padding:0 25px;gap:12px;z-index:5}
.topbar-location{display:flex;align-items:center;gap:12px;min-width:0;white-space:nowrap;font-size:12px}
.topbar-location button{border:0;background:transparent;padding:5px;color:var(--accent);max-width:240px;overflow:hidden;text-overflow:ellipsis}
#nav-toggle{color:var(--muted);font-size:20px;flex-shrink:0}
.crumb-separator{color:var(--muted)}
.header-search{width:195px;background:transparent;border-color:transparent;padding:4px;font-weight:400}
.header-search input{font-size:12px;min-width:0}
.header-tools{min-width:0;gap:8px}
.header-tools>button{border-color:transparent;background:transparent;color:var(--muted)}
.environment-label{font-size:10px;color:var(--muted);background:var(--surface-soft);padding:5px 8px;border-radius:5px}
.shell #context-panel{grid-column:2;grid-row:2;height:100%;padding:20px 12px;background:var(--surface)}
.shell:not(.is-chat) #context-panel{display:none}
.sidebar-workspace{margin:0;padding:0;border:0;min-height:0}
.sidebar-section-head{font-size:14px;margin-bottom:18px}
#sidebar-conversations{flex:1}
.sidebar-footnote{font-size:10px;padding:8px 5px 0;border-top:1px solid var(--border);margin-bottom:0}
.conversation-item{padding:11px 10px;border-color:transparent;background:transparent}
.conversation-item.active{border-color:color-mix(in srgb,var(--accent) 22%,var(--border))}
.conversation-item small{font-size:10px}
.shell>main{grid-column:3;grid-row:2;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-width:0;min-height:0}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:32px 36px 22px;width:100%;max-width:1240px;margin:0 auto}
.page-heading h1{font-size:26px;line-height:1.3;letter-spacing:-.7px;margin:0;font-weight:650}
.page-heading p{font-size:12px;margin:8px 0 0;line-height:1.6}
#page-actions{flex-wrap:wrap;justify-content:flex-end}
.workspace-content{padding:0 36px 36px;overflow:auto;scrollbar-gutter:stable}
.shell.is-chat>main{grid-template-rows:minmax(0,1fr) auto}
.shell.is-chat .page-heading{display:none}
.shell.is-chat #content{padding:0}
.shell.is-chat.chat-list-hidden{--sidebar-w:0px}
.shell.is-chat.chat-list-hidden #context-panel{display:none}
footer{font-size:10px;padding:7px 24px;background:transparent;text-align:right}
#context-toggle{display:none}
.shell.is-chat #context-toggle{display:inline-block}
.shell #right-panel{display:none;grid-column:4;grid-row:2;height:100%}
.shell.is-chat.context-open #right-panel{display:flex}
.right-panel-head [data-action="toggle-right-panel"]{transform:none!important}
.page-tabs{display:flex;gap:24px;border-bottom:1px solid var(--border);margin:0 0 22px;overflow:auto;flex-shrink:0}
.page-tabs button{border:0;border-radius:0;background:transparent;padding:12px 1px;border-bottom:2px solid transparent;white-space:nowrap;color:var(--muted)}
.page-tabs button[aria-selected="true"]{border-bottom-color:var(--accent);color:var(--accent);font-weight:650}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.filter-chips{display:flex;gap:6px;flex-wrap:wrap}
.filter-chips button{min-height:30px;border-color:transparent;background:transparent;color:var(--muted)}
.filter-chips button.active{background:var(--surface);border-color:var(--border-strong);color:var(--text)}
.toolbar label:has(input[type="checkbox"]){display:flex;align-items:center;font-size:11px}
input[type="checkbox"]{width:auto}
.home-focus-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.95fr);gap:24px;align-items:start}
.focus-card{padding:24px;background:color-mix(in srgb,var(--warning) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--warning) 30%,var(--border));border-left:3px solid var(--warning);border-radius:11px;margin-bottom:25px}
.focus-card h2{font-size:23px;line-height:1.5;margin:13px 0 7px}
.focus-card .eyebrow,.focus-card>p{color:var(--warning)}
.focus-card>p{font-size:12px;line-height:1.8}
.focus-card.calm{border-left-color:var(--accent);background:var(--surface);border-color:var(--border)}
.focus-card.calm>p{color:var(--muted)}
.focus-evidence{display:flex;gap:18px;flex-wrap:wrap;padding:13px 0;margin:18px 0;border-block:1px solid color-mix(in srgb,var(--warning) 25%,var(--border));font-size:12px}
.project-stats{display:flex;gap:10px;margin:25px 0;padding-bottom:20px;border-bottom:1px solid var(--border)}
.project-stats>div{flex:1;border-right:1px solid var(--border)}
.project-stats>div:last-child{border:0}
.project-stats strong{display:block;font-size:27px;margin-bottom:5px}
.project-stats small{color:var(--muted);font-size:11px}
.home-side{gap:18px}
.home-side .card{margin:0}
.work-list{padding:0;overflow:hidden}
.work-row{display:flex;align-items:center;gap:12px;border:0;border-bottom:1px solid var(--border);padding:18px 20px;background:transparent;text-align:left;width:100%;border-radius:0}
.work-row:last-child{border:0}
.work-row .work-copy{flex:1;min-width:0}
.work-row strong,.work-row small{display:block;overflow-wrap:anywhere}
.work-row small{color:var(--muted);font-size:11px;margin-top:6px}
.project-card h3{font-size:17px;margin-top:17px}
.project-card .row{margin-top:20px}
.project-card .project-code{font-size:11px;overflow-wrap:anywhere;color:var(--muted)}
.pending-card{border-style:dashed}
.pending-card .badge{margin-bottom:10px}
.chat-layout,.chat-main{background:var(--surface)}
.chat-header{padding:18px 24px}
.chat-title-row{gap:12px;flex-wrap:wrap}
.chat-actions{gap:6px;flex-wrap:wrap}
.chat-title-block{min-width:0;flex:1}
.chat-title-line{flex-wrap:wrap}
.chat-title-line strong{overflow-wrap:anywhere}
.chat-title-block>.small{font-size:11px;line-height:1.6}
.chat-actions button{font-size:11px}
.messages{padding:28px clamp(18px,4vw,54px);max-width:1000px}
.message .meta{flex-wrap:wrap;font-size:11px}
.message .meta button{min-height:24px}
.message:not(.mine):not(.agent):not(.system) .text{margin-left:0;background:var(--surface-soft);border-color:var(--border)}
.composer{padding:12px clamp(14px,3vw,40px) 18px;background:var(--surface);border-top:0}
.composer-toolbar{border:0;padding-bottom:0}
.composer-bottom{gap:6px;flex-wrap:wrap}
.composer-toolbar>.small,.composer-scope{display:none}
.composer textarea{min-height:76px;max-height:150px;resize:vertical}
.composer-actions{flex:1}
.model-chip{overflow:hidden;text-overflow:ellipsis;max-width:250px}
.composer .send-button{min-height:34px;flex-shrink:0}
.chat-empty{height:100%;min-height:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:30px;text-align:center;gap:12px}
.chat-empty h2{font-size:24px;margin:0}
.chat-empty p{color:var(--muted);font-size:13px;line-height:1.8}
.task-detail-title{margin-bottom:22px}
.task-detail-title h2{font-size:22px;margin:0 0 10px}
.task-detail-title .stepper{margin:20px 0}
.task-detail-panel>.card{margin-bottom:16px}
.task-detail-panel pre{max-height:60dvh;overflow:auto}
.task-line{padding:17px 0}
.fact-list dd{overflow-wrap:anywhere}
.audit-list details{border-bottom:1px solid var(--border);padding:17px 0}
.audit-list summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;font-size:12px}
.settings-panel{max-width:960px}
.settings-panel>.cards{margin-bottom:24px}
.settings-panel>h3{font-size:14px;margin:24px 0 14px}
.ui-select{display:block;position:relative;min-width:0;width:100%}
.ui-select-native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;clip-path:inset(50%);overflow:hidden;opacity:0;pointer-events:none}
.ui-select-trigger{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:38px;width:100%;text-align:left;font-weight:400;font-size:12px;background:var(--surface);border:1px solid var(--border-strong)}
.ui-select-trigger>span:first-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ui-select-trigger[aria-invalid="true"]{border-color:var(--danger)}
.ui-select-menu{position:fixed;z-index:80;padding:7px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:5px}
.ui-select-menu input{flex-shrink:0;padding:8px;font-size:12px}
.ui-select-options{overflow:auto;min-height:0;overscroll-behavior:contain}
.ui-select-options button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:9px;font-weight:400;white-space:normal}
.ui-select-options button[aria-selected="true"]{color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.select-empty{padding:15px 8px;font-size:12px;color:var(--muted)}
dialog{overflow:visible;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px)}
dialog[data-size="lg"]{width:min(760px,calc(100vw - 32px))}
dialog[data-size="sm"]{width:min(440px,calc(100vw - 32px))}
#modal-content{padding:0;overflow:hidden;max-height:calc(100dvh - 32px);border-radius:14px}
#dialog-form{display:flex!important;flex-direction:column;gap:0!important;max-height:calc(100dvh - 34px)}
.modal-head{padding:20px 24px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);gap:16px;flex-shrink:0}
#modal-title{margin:5px 0 0!important;font-size:18px}
.modal-body{display:grid;gap:16px;padding:22px 24px;min-height:0;overflow:auto;overscroll-behavior:contain}
.modal-body textarea{min-height:130px}
.modal-body .check-grid{margin:0}
.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:9px;padding:16px 24px;border-top:1px solid var(--border);flex-shrink:0;background:var(--surface)}
.modal-footer>span{margin-right:auto;font-size:11px}
.modal-body .error:empty{display:none}
.confirm-copy{line-height:1.8;margin:0}
.login-page{height:100dvh;min-height:0;overflow:auto;grid-template-columns:1fr 440px;gap:70px;padding:7vw 10vw;background:var(--bg)}
.login-story{max-width:480px}
.login-story h1{font-size:clamp(36px,5vw,64px);line-height:1.3;letter-spacing:-2px;margin:25px 0}
.login-story>p:not(.eyebrow){line-height:2;color:var(--muted)}
.login-boundary{font-size:12px;color:var(--muted);margin-top:48px}
.login-card{padding:32px;width:100%}
.login-card h2{margin:12px 0;font-size:22px}
.mfa-details summary{cursor:pointer;font-size:12px;color:var(--muted)}
.mfa-details label{margin-top:12px}
.login-pending{border-top:1px solid var(--border);padding-top:18px;font-size:11px;color:var(--muted)}
.header-search kbd{white-space:nowrap}
.text-button{border-color:transparent!important;background:transparent;color:var(--accent)}
@media(max-width:1200px){.shell{--rail-w:190px}.shell.is-chat{--sidebar-w:220px}.shell.is-chat.context-open{--right-w:0px}.shell.is-chat.context-open #right-panel{position:fixed;top:60px;right:0;bottom:0;width:310px;z-index:8;height:auto;box-shadow:var(--shadow)}.workspace-topbar{padding:0 18px}.header-search{width:155px}.page-heading{padding:26px}.workspace-content{padding:0 26px 28px}.home-focus-grid{gap:18px;grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr)}.home-side{display:flex}.chat-actions button{padding:5px 7px}.messages{padding:22px}.model-chip{max-width:170px}}
@media(max-width:900px){.shell{--rail-w:65px}.shell.is-chat{--sidebar-w:200px}#rail{padding:18px 8px 10px}.rail-label,.nav-label,.project-shortcuts{display:none!important}#rail button{justify-content:center;padding:8px}.nav-brand{justify-content:center;padding:0}.nav-profile{flex-direction:column}.project-switch>label{font-size:0;padding:2px;border:0}.project-switch .ui-select-trigger{font-size:0;min-width:0;justify-content:center}.project-switch .ui-select-trigger>span:first-child{display:none}.project-switch .ui-select-trigger>span:last-child{font-size:18px}.home-focus-grid{grid-template-columns:1fr}.home-side{display:grid;grid-template-columns:1fr 1fr}.topbar-location{gap:8px}.header-search{width:135px}.header-search kbd,.environment-label{display:none}.topbar-location button{max-width:160px}.page-heading{align-items:flex-start}.page-heading h1{font-size:23px}.login-page{grid-template-columns:1fr;padding:28px;gap:24px}.login-story{display:none}.login-card{max-width:440px}.chat-title-row{display:block}.chat-actions{margin-top:10px}.composer-hint{font-size:10px}}
@media(max-width:640px){html,body{overflow:hidden}.shell{display:grid;height:100dvh;--rail-w:0px}.shell.is-chat{--sidebar-w:0px}.shell #rail{visibility:hidden}.shell.mobile-nav-open #rail{visibility:visible;position:fixed;inset:0 auto 0 0;width:220px;z-index:15;box-shadow:var(--shadow)}.mobile-nav-open #rail .rail-label{display:inline!important}.mobile-nav-open #rail .nav-label{display:block!important}.mobile-nav-open #rail .project-shortcuts{display:flex!important}.mobile-nav-open #rail button{justify-content:flex-start}.mobile-nav-open #rail .nav-profile{flex-direction:row}.mobile-nav-open #rail .project-switch>label{font-size:10px}.mobile-nav-open #rail .project-switch .ui-select-trigger{font-size:12px}.mobile-nav-open #rail .project-switch .ui-select-trigger>span:first-child{display:inline}.workspace-topbar{padding:0 12px}.topbar-location{gap:5px}#topbar-title{display:none}.header-search{display:none}.crumb-separator{display:none}.page-heading{padding:22px 18px 18px;flex-wrap:wrap}.workspace-content{padding:0 18px 22px}.home-side{display:flex}.shell #context-panel{display:none}.shell.is-chat.chat-list-open #context-panel{display:flex;position:fixed;top:60px;bottom:0;left:0;width:min(280px,90vw);height:auto;z-index:7;box-shadow:var(--shadow)}.chat-header{padding:14px 16px}.chat-title-row{display:block}.chat-title-line strong{font-size:14px}.chat-actions{gap:5px}.messages{padding:18px}.message .meta{gap:5px}.message .meta>span:not(.avatar){font-size:9px}.message:not(.agent):not(.system) .text{max-width:92%}.composer{padding:8px 12px 12px}.composer-hint{max-width:100%;line-height:1.5}.composer textarea{min-height:64px}.composer-toolbar{padding:7px 10px 0}.composer-bottom{padding:7px}.model-chip{max-width:155px}.task-line{grid-template-columns:minmax(0,1fr) auto}.task-line .task-owner{display:none}.task-line>button{grid-column:2}.card,.panel{padding:16px}.card-top{gap:10px}.focus-card{padding:20px}.focus-card h2{font-size:20px}.two-col,.check-grid,.detail-grid{grid-template-columns:1fr}footer{font-size:9px;padding:6px 12px}.page-tabs{gap:18px}.modal-head,.modal-footer{padding:15px 18px}.modal-body{padding:18px}.modal-footer>span{max-width:110px}.audit-list summary{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media(min-width:641px) and (max-width:900px){.shell.nav-expanded{--rail-w:212px}.nav-expanded #rail .rail-label{display:inline!important}.nav-expanded #rail .nav-label{display:block!important}.nav-expanded #rail .project-shortcuts{display:flex!important}.nav-expanded #rail button{justify-content:flex-start}.nav-expanded #rail .nav-profile{flex-direction:row}.nav-expanded #rail .project-switch>label{font-size:10px}.nav-expanded #rail .project-switch .ui-select-trigger{font-size:12px}.nav-expanded #rail .project-switch .ui-select-trigger>span:first-child{display:inline}}
