:root{--ui-font-family:"PingFang SC", "Microsoft YaHei", sans-serif;--ui-font-size-badge:12px;--ui-font-size-metric-label:13px;--ui-font-size-body-compact:14px;--ui-font-size-brand:20px;--ui-font-size-title:24px;--ui-font-size-metric-value:26px;--ui-font-weight-semibold:600;--ui-font-weight-bold:700;--ui-primary:#2563eb;--ui-primary-dark:#1d4ed8;--ui-background:#f5f7fb;--ui-surface:#fff;--ui-text:#172033;--ui-muted:#667085;--ui-border:#e6eaf0;--ui-on-strong:#fff;--ui-success:#12b76a;--ui-warning:#f79009;--ui-danger:#f04438;--ui-info:#2e90fa;--ui-nav-active-background:color-mix(in srgb, var(--ui-primary) 8%, var(--ui-surface));--ui-badge-neutral-background:#f2f4f7;--ui-badge-success-background:#ecfdf3;--ui-badge-success-text:#027a48;--ui-badge-warning-background:#fffaeb;--ui-badge-warning-text:#b54708;--ui-badge-danger-background:#fef3f2;--ui-badge-danger-text:#b42318;--ui-badge-info-background:#eff8ff;--ui-badge-info-text:#175cd3;--ui-progress-background:#eaecf0;--ui-overlay-background:#10182859;--ui-border-width:1px;--ui-radius-sm:6px;--ui-radius-control:8px;--ui-radius-md:10px;--ui-radius-card:10px;--ui-radius-lg:14px;--ui-radius-pill:999px;--ui-shadow:0 1px 3px #10182814;--ui-shadow-drawer:8px 0 24px #10182824;--ui-spacing-xxs:4px;--ui-spacing-xs:8px;--ui-spacing-sm:10px;--ui-spacing-compact:12px;--ui-spacing-md:16px;--ui-spacing-lg:20px;--ui-spacing-page:24px;--ui-spacing-xl:28px;--ui-spacing-2xl:32px;--ui-padding-badge:3px 8px;--ui-padding-role-control:7px 10px;--ui-padding-button:9px 14px;--ui-padding-nav-link:10px 12px;--ui-padding-sidebar:20px 14px;--ui-padding-topbar:12px 28px;--ui-padding-toast:12px 16px;--ui-padding-tablet-sidebar:14px 20px;--ui-padding-mobile-topbar:10px 16px;--ui-padding-mobile-content:16px;--ui-padding-brand:0 12px 24px;--ui-padding-brand-tablet:0 0 10px;--ui-margin-mobile-close:0 0 18px 12px;--ui-shell-min-height:100vh;--ui-sidebar-width:232px;--ui-topbar-min-height:64px;--ui-progress-height:8px;--ui-mobile-drawer-width:min(82vw, 300px);--ui-toast-offset:24px;--ui-layer-backdrop:9;--ui-layer-drawer:10;--ui-visually-hidden-size:1px;--ui-visually-hidden-offset:-1px}
:root{font-family:var(--ui-font-family);color:var(--ui-text);background:var(--ui-background)}*{box-sizing:border-box}body{background:var(--ui-background);margin:0}a{color:inherit;text-decoration:none}button{font:inherit}.app-shell{min-height:var(--ui-shell-min-height);grid-template-columns:var(--ui-sidebar-width) 1fr;display:grid}.sidebar{width:var(--ui-sidebar-width);padding:var(--ui-padding-sidebar);background:var(--ui-surface);border-right:var(--ui-border-width) solid var(--ui-border);position:fixed;inset:0 auto 0 0}.brand{padding:var(--ui-padding-brand);font-size:var(--ui-font-size-brand);font-weight:var(--ui-font-weight-bold);color:var(--ui-primary);display:block}.nav-list{gap:var(--ui-spacing-xxs);display:grid}.nav-link{border-radius:var(--ui-radius-control);color:var(--ui-muted);padding:var(--ui-padding-nav-link);font-size:var(--ui-font-size-body-compact);display:block}.nav-link:hover,.nav-link-active{background:var(--ui-nav-active-background);color:var(--ui-primary);font-weight:var(--ui-font-weight-semibold)}.app-main{grid-column:2;min-width:0}.topbar{min-height:var(--ui-topbar-min-height);justify-content:space-between;align-items:center;gap:var(--ui-spacing-md);padding:var(--ui-padding-topbar);background:var(--ui-surface);border-bottom:var(--ui-border-width) solid var(--ui-border);display:flex}.topbar-title{font-weight:var(--ui-font-weight-semibold)}.role-switcher{align-items:center;gap:var(--ui-spacing-xs);display:flex}.role-switcher button,.menu-button{border:var(--ui-border-width) solid var(--ui-border);border-radius:var(--ui-radius-control);background:var(--ui-surface);color:var(--ui-muted);padding:var(--ui-padding-role-control);cursor:pointer}.menu-button{display:none}.page-content{padding:var(--ui-spacing-xl)}.page-header{justify-content:space-between;align-items:center;gap:var(--ui-spacing-md);display:flex}.page-header h1{margin:0}.page-header p{color:var(--ui-muted)}.ui-card{background:var(--ui-surface);border:var(--ui-border-width) solid var(--ui-border);border-radius:var(--ui-radius-md);box-shadow:var(--ui-shadow);padding:var(--ui-spacing-md)}.ui-button{border-radius:var(--ui-radius-control);background:var(--ui-primary);color:var(--ui-on-strong);padding:var(--ui-padding-button);cursor:pointer;border:0}.ui-badge{border-radius:var(--ui-radius-pill);padding:var(--ui-padding-badge);font-size:var(--ui-font-size-badge);font-weight:var(--ui-font-weight-semibold);background:var(--ui-badge-neutral-background);color:var(--ui-muted);display:inline-flex}.ui-badge-success{background:var(--ui-badge-success-background);color:var(--ui-badge-success-text)}.ui-badge-warning{background:var(--ui-badge-warning-background);color:var(--ui-badge-warning-text)}.ui-badge-danger{background:var(--ui-badge-danger-background);color:var(--ui-badge-danger-text)}.ui-badge-info{background:var(--ui-badge-info-background);color:var(--ui-badge-info-text)}.metric-card{gap:var(--ui-spacing-xs);display:grid}.metric-label,.metric-delta{color:var(--ui-muted);font-size:var(--ui-font-size-metric-label)}.metric-card strong{font-size:var(--ui-font-size-metric-value)}.progress-track{height:var(--ui-progress-height);border-radius:var(--ui-radius-pill);background:var(--ui-progress-background);overflow:hidden}.progress-track span{border-radius:inherit;background:var(--ui-primary);height:100%;display:block}.data-table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{padding:var(--ui-spacing-compact);border-bottom:var(--ui-border-width) solid var(--ui-border);text-align:left}.state-card{padding:var(--ui-spacing-2xl);color:var(--ui-muted);text-align:center}.ui-overlay{background:var(--ui-overlay-background);place-items:center;display:grid;position:fixed;inset:0}.ui-modal,.ui-drawer{background:var(--ui-surface);padding:var(--ui-spacing-page);border-radius:var(--ui-radius-md)}.ui-toast{right:var(--ui-toast-offset);bottom:var(--ui-toast-offset);padding:var(--ui-padding-toast);background:var(--ui-text);color:var(--ui-on-strong);border-radius:var(--ui-radius-control);position:fixed}.mobile-backdrop{z-index:var(--ui-layer-backdrop);background:var(--ui-overlay-background);position:fixed;inset:0}.mobile-drawer{z-index:var(--ui-layer-drawer);width:var(--ui-mobile-drawer-width);padding:var(--ui-padding-sidebar);background:var(--ui-surface);box-shadow:var(--ui-shadow-drawer);position:fixed;inset:0 auto 0 0}.mobile-drawer .mobile-close{margin:var(--ui-margin-mobile-close)}.sr-only{width:var(--ui-visually-hidden-size);height:var(--ui-visually-hidden-size);margin:var(--ui-visually-hidden-offset);clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;padding:0;position:absolute;overflow:hidden}@media (max-width:1100px){.app-shell{display:block}.sidebar{width:100%;padding:var(--ui-padding-tablet-sidebar);border-right:0;border-bottom:var(--ui-border-width) solid var(--ui-border);position:static}.brand{padding:var(--ui-padding-brand-tablet)}.nav-list{gap:var(--ui-spacing-xxs);display:flex;overflow-x:auto}.nav-link{white-space:nowrap}.app-main{width:100%}}@media (max-width:720px){.sidebar{display:none}.topbar{padding:var(--ui-padding-mobile-topbar)}.menu-button{display:inline-flex}.page-content{padding:var(--ui-padding-mobile-content)}}
.feature-page{gap:var(--ui-spacing-lg);display:grid}.metric-grid{gap:var(--ui-spacing-md);grid-template-columns:repeat(4,1fr);display:grid}.dashboard-grid{gap:var(--ui-spacing-md);grid-template-columns:1.25fr 1fr;display:grid}.feature-page h2{margin:0 0 var(--ui-spacing-md)}.pipeline-lane{gap:var(--ui-spacing-xs);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.pipeline-node{gap:var(--ui-spacing-xs);padding:var(--ui-spacing-compact);border:var(--ui-border-width) solid var(--ui-border);border-radius:var(--ui-radius-control);display:grid}.pipeline-node-header,.health-label,.model-heading,.version-row,.optimization-note,.output-item{justify-content:space-between;align-items:center;gap:var(--ui-spacing-xs);display:flex}.pipeline-node small,.version-summary,.capability-item>span,.skill-point span,.skill-point small{color:var(--ui-muted)}.health-list,.feedback-list,.todo-list,.capability-tree,.tree-children,.event-log{gap:var(--ui-spacing-md);display:grid}.feedback-list{padding-left:var(--ui-spacing-page);margin:0}.todo-link,.quick-link{padding:var(--ui-spacing-compact);border-radius:var(--ui-radius-control);background:var(--ui-background);justify-content:space-between;display:flex}.quick-link{color:var(--ui-primary);justify-content:flex-start}.model-card{gap:var(--ui-spacing-md);display:grid}.model-heading p{color:var(--ui-muted);margin:0}.model-actions{align-items:center;gap:var(--ui-spacing-xs);display:flex}.version-row{flex-wrap:wrap;justify-content:flex-start}.version-button,.tree-toggle,.workbench-tabs button{border:var(--ui-border-width) solid var(--ui-border);border-radius:var(--ui-radius-control);background:var(--ui-surface);padding:var(--ui-padding-button);cursor:pointer}.version-selected,.workbench-tabs button[aria-selected=true]{border-color:var(--ui-primary);color:var(--ui-primary);background:var(--ui-nav-active-background)}.tree-toggle{text-align:left;justify-content:space-between;width:100%;display:flex}.tree-children{padding-top:var(--ui-spacing-xs)}.capability-item{gap:var(--ui-spacing-xs);padding-left:var(--ui-spacing-md);display:grid}.skill-point{gap:var(--ui-spacing-xs);padding:var(--ui-spacing-compact);border-left:var(--ui-spacing-xxs) solid var(--ui-primary);background:var(--ui-background);display:grid}.optimization-note{padding:var(--ui-spacing-compact);background:var(--ui-badge-warning-background);flex-wrap:wrap;justify-content:flex-start}.optimization-note span{flex:1}.workbench-tabs{gap:var(--ui-spacing-xs);display:flex;overflow-x:auto}.orchestration-card{gap:var(--ui-spacing-md);display:grid}.orchestration-header{justify-content:space-between;align-items:center;display:flex}.orchestration-list{gap:var(--ui-spacing-xs);margin:0;padding:0;list-style:none;display:grid}.orchestration-step{align-items:center;gap:var(--ui-spacing-xs);padding:var(--ui-spacing-compact);border:var(--ui-border-width) solid var(--ui-border);border-radius:var(--ui-radius-control);grid-template-columns:auto 1fr auto;display:grid}.orchestration-step small{color:var(--ui-muted)}.orchestration-step button{padding:var(--ui-spacing-xs)}.orchestration-disabled{opacity:.55;background:var(--ui-background)}.role-output{gap:var(--ui-spacing-xs);display:grid}.role-output section{padding:var(--ui-spacing-compact);border-left:var(--ui-spacing-xxs) solid var(--ui-primary);background:var(--ui-background)}.role-output h3{margin:0}.role-output p{margin:var(--ui-spacing-xs) 0 0;color:var(--ui-muted)}.workbench-output-panel{min-width:0}.role-output section{overflow:hidden}.role-output h4{margin:0}.outline-tree,.outline-tree ul{gap:var(--ui-spacing-xs);margin:var(--ui-spacing-xs) 0 0;padding-left:var(--ui-spacing-lg);display:grid}.outline-tree{padding-left:var(--ui-spacing-md)}.output-card-list,.practice-stages{gap:var(--ui-spacing-xs);margin:var(--ui-spacing-xs) 0 0;padding:0;list-style:none;display:grid}.output-detail-card{gap:var(--ui-spacing-xs);padding:var(--ui-spacing-compact);border:var(--ui-border-width) solid var(--ui-border);border-radius:var(--ui-radius-control);background:var(--ui-surface);display:grid}.output-detail-card dl{gap:var(--ui-spacing-xs);margin:0;display:grid}.output-detail-card dl div{gap:var(--ui-spacing-xxs);display:grid}.output-detail-card dt{font-weight:700}.output-detail-card dd{color:var(--ui-muted);margin:0}.output-card-heading{justify-content:space-between;align-items:center;gap:var(--ui-spacing-xs);display:flex}.output-table-scroll{max-width:100%;overflow-x:auto}.role-output table{width:100%;margin-top:var(--ui-spacing-xs);border-collapse:collapse;font-size:var(--ui-font-size-body-compact)}.role-output th,.role-output td{padding:var(--ui-spacing-xs);border:var(--ui-border-width) solid var(--ui-border);text-align:left;vertical-align:top}.assessment-linkage{margin-top:var(--ui-spacing-xs);padding:var(--ui-spacing-compact);border-radius:var(--ui-radius-control);background:var(--ui-surface)}.workbench-layout{gap:var(--ui-spacing-md);grid-template-columns:repeat(3,1fr);display:grid}.workbench-panel{align-content:start;gap:var(--ui-spacing-md);display:grid}.field-label{gap:var(--ui-spacing-xs);color:var(--ui-muted);display:grid}.field-label input{width:100%;padding:var(--ui-spacing-compact);border:var(--ui-border-width) solid var(--ui-border);border-radius:var(--ui-radius-control)}.event-log{overflow:auto}.quality-gate{gap:var(--ui-spacing-xs);padding:var(--ui-spacing-compact);background:var(--ui-background);display:grid}.cancel-button{background:var(--ui-danger)}.error-card{color:var(--ui-danger)}.approval-toolbar,.approval-card,.approval-card-heading,.approval-actions,.comparison-row,.weak-point-list li{justify-content:space-between;align-items:center;gap:var(--ui-spacing-md);display:flex}.approval-tabs{gap:var(--ui-spacing-xs);display:flex}.approval-tabs button{border:0;border-bottom:var(--ui-border-width) solid transparent;padding:var(--ui-padding-button);cursor:pointer;background:0 0}.approval-tabs button[aria-selected=true]{color:var(--ui-primary);border-color:var(--ui-primary)}.approval-list{gap:var(--ui-spacing-md);display:grid}.approval-card{align-items:flex-start}.approval-card h2{margin-bottom:var(--ui-spacing-xs)}.approval-card p,.approval-card small{color:var(--ui-muted)}.approval-detail,.approval-detail dl,.rate-list,.weak-point-list{gap:var(--ui-spacing-md);display:grid}.approval-detail dl{margin:var(--ui-spacing-md) 0}.approval-detail dt{font-weight:700}.approval-detail dd{margin:var(--ui-spacing-xxs) 0 0;color:var(--ui-muted)}.danger-button{background:var(--ui-danger)}.field-label textarea{padding:var(--ui-spacing-compact);border:var(--ui-border-width) solid var(--ui-border);border-radius:var(--ui-radius-control)}.assessment-grid{gap:var(--ui-spacing-md);grid-template-columns:repeat(2,1fr);display:grid}.assessment-grid>.ui-card{align-content:start;gap:var(--ui-spacing-sm);display:grid}.weak-point-list{padding-left:var(--ui-spacing-lg);margin:0}.weak-point-list li{justify-content:flex-start}.weak-point-list li span{flex:1}.heatmap{gap:var(--ui-spacing-xs);grid-template-columns:repeat(2,1fr);display:grid}.heatmap-cell{gap:var(--ui-spacing-xs);padding:var(--ui-spacing-md);border-radius:var(--ui-radius-control);display:grid}.heatmap-cell span{font-size:var(--ui-font-size-title);font-weight:700}.heatmap-high{background:var(--ui-badge-success-background);color:var(--ui-badge-success-text)}.heatmap-medium{background:var(--ui-badge-warning-background);color:var(--ui-badge-warning-text)}.heatmap-low{background:var(--ui-badge-danger-background);color:var(--ui-badge-danger-text)}.delta-positive{color:var(--ui-success)}.delta-negative{color:var(--ui-danger)}.data-table-wrap{max-width:100%;overflow-x:auto}.market-view{gap:var(--ui-spacing-lg);display:grid}.market-toolbar{align-items:end;gap:var(--ui-spacing-md);padding:var(--ui-spacing-md);background:var(--ui-surface);border:var(--ui-border-width) solid var(--ui-border);border-radius:var(--ui-radius-card);grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr)) auto;display:grid}.market-toolbar select,.market-toolbar input{width:100%;padding:var(--ui-spacing-compact);border:var(--ui-border-width) solid var(--ui-border);border-radius:var(--ui-radius-control);background:var(--ui-surface)}.market-result-count{padding-bottom:var(--ui-spacing-compact);color:var(--ui-muted);white-space:nowrap}.market-grid{gap:var(--ui-spacing-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.market-card{align-content:start;gap:var(--ui-spacing-md);display:grid}.market-card h2{margin:0}.market-card p{color:var(--ui-muted);margin:0}.market-card-heading,.market-card-meta{justify-content:space-between;align-items:center;gap:var(--ui-spacing-xs);display:flex}.market-card-meta{color:var(--ui-muted);font-size:var(--ui-font-size-body-compact);flex-wrap:wrap}.market-collaboration,.install-request-summary{padding:var(--ui-spacing-compact);background:var(--ui-background);border-radius:var(--ui-radius-control)}.install-request-summary{gap:var(--ui-spacing-xs);margin-bottom:var(--ui-spacing-md);display:grid}.install-request-summary p{color:var(--ui-muted);margin:0}.learner-course-grid,.learner-module-grid,.training-grid{gap:var(--ui-spacing-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.learner-course-grid .ui-card,.learner-module-grid .ui-card,.training-grid .ui-card{align-content:start;gap:var(--ui-spacing-md);display:grid}.learner-button-link{justify-self:start;align-items:center;display:inline-flex}.eyebrow{color:var(--ui-muted);font-size:var(--ui-font-size-body-compact)}.course-meta,.assessment-steps,.score-gap{align-items:center;gap:var(--ui-spacing-md);flex-wrap:wrap;display:flex}.learner-list{gap:var(--ui-spacing-sm);padding-left:var(--ui-spacing-lg);margin:0;display:grid}.learner-list li span{color:var(--ui-muted);margin-left:var(--ui-spacing-sm)}.assessment-steps{padding:var(--ui-spacing-md);background:var(--ui-surface);border-radius:var(--ui-radius-card)}.learner-score{font-size:var(--ui-font-size-title);color:var(--ui-success);display:block}.learner-score-warning{color:var(--ui-danger)}.gap-card{gap:var(--ui-spacing-md);display:grid}.score-gap{font-size:var(--ui-font-size-title);justify-content:space-between}.gap-line{height:var(--ui-border-width);background:var(--ui-danger);flex:1}.score-gap strong{color:var(--ui-danger)}.learner-heading{justify-content:space-between;align-items:center;gap:var(--ui-spacing-md);display:flex}.learner-heading h2{margin:0}.learner-heading>strong{color:var(--ui-primary);font-size:var(--ui-font-size-title)}.learner-capability-tree{grid-template-columns:repeat(3,minmax(0,1fr))}.learner-capability-tree .ui-card,.score-trend{gap:var(--ui-spacing-md);display:grid}.score-trend>div{align-items:center;gap:var(--ui-spacing-md);grid-template-columns:1fr 3fr;display:grid}.login-shell{min-height:100%;padding:var(--ui-spacing-lg);background:var(--ui-background);place-items:center;display:grid}.login-card{width:90%;max-width:calc(var(--ui-spacing-2xl) * 13);gap:var(--ui-spacing-lg);padding:var(--ui-spacing-xl);display:grid}.login-header{gap:var(--ui-spacing-xs);display:grid}.login-header h1{font-size:var(--ui-font-size-title);margin:0}.login-header p{color:var(--ui-muted);margin:0}.login-brand{font-size:var(--ui-font-size-badge);font-weight:var(--ui-font-weight-bold);letter-spacing:.04em;color:var(--ui-primary)}.login-form{gap:var(--ui-spacing-md);display:grid}.login-field{gap:var(--ui-spacing-xs);display:grid}.login-field span{font-weight:600}.login-field input{padding:var(--ui-spacing-compact);border:var(--ui-border-width) solid var(--ui-border);border-radius:var(--ui-radius-control);background:var(--ui-surface);font:inherit}.login-field input:focus{outline:var(--ui-border-width) solid var(--ui-primary);outline-offset:var(--ui-spacing-xxs)}.login-error{color:var(--ui-danger);background:var(--ui-badge-danger-background);padding:var(--ui-spacing-compact);border-radius:var(--ui-radius-control)}.login-submit{justify-content:center;width:100%}.login-footer{gap:var(--ui-spacing-xs);color:var(--ui-muted);font-size:var(--ui-font-size-body-compact);display:grid}.login-footer p{margin:0}.login-hint{color:var(--ui-text);font-weight:600}@media (max-width:720px){.learner-course-grid,.learner-module-grid,.training-grid,.learner-capability-tree{grid-template-columns:1fr}.score-trend>div{gap:var(--ui-spacing-xs);grid-template-columns:1fr}.login-shell{padding:var(--ui-spacing-md)}}@media (max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.pipeline-lane{grid-template-columns:repeat(3,1fr)}.workbench-layout{grid-template-columns:1fr}.workbench-panel:last-child{grid-column:auto}.assessment-grid{grid-template-columns:1fr}.approval-toolbar,.approval-tabs{flex-wrap:wrap}.market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.market-toolbar{grid-template-columns:1fr 1fr}}@media (max-width:720px){.metric-grid,.dashboard-grid,.workbench-layout,.market-grid,.pipeline-lane{grid-template-columns:1fr}.workbench-panel:last-child{grid-column:auto}.model-heading{flex-direction:column;align-items:flex-start}.approval-toolbar,.approval-card,.comparison-row{flex-direction:column;align-items:stretch}.approval-tabs{flex-wrap:nowrap;width:100%;overflow-x:auto}.approval-tabs button{flex:none}.approval-card .ui-button{align-self:flex-start}.heatmap{grid-template-columns:1fr}.weak-point-list li{flex-wrap:wrap;align-items:flex-start}.market-toolbar{grid-template-columns:1fr}}
