/* Design tokens */
:root{color-scheme:light;--color-primary:#161823;--color-primary-hover:#2d303d;--color-primary-pressed:#161823;--color-primary-soft:#f2f3f5;--color-success:#157347;--color-success-soft:#edf8f2;--color-warning:#8a5700;--color-warning-soft:#fff6e6;--color-danger:#b42318;--color-danger-soft:#fff0f0;--color-text:#1f2329;--color-text-secondary:#646a73;--color-text-tertiary:#8f959e;--color-border:#dee0e3;--color-border-light:#eceef1;--color-surface:#ffffff;--color-surface-muted:#f2f3f5;--color-canvas:#f5f6f7;--font-sans:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:24px;--line-sm:20px;--line-md:22px;--line-lg:24px;--space-0-5:2px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--layout-page:40px;--layout-section:var(--space-12);--layout-gap:var(--space-4);--layout-group:var(--space-3);--layout-pad:var(--space-6);--radius-control:7px;--radius-card:12px;--shadow-card:none;--shadow-dialog:0 12px 40px rgb(31 35 41 / 16%);--transition-fast:150ms ease;--bg:var(--color-canvas);--panel:var(--color-surface);--ink:var(--color-text);--muted:var(--color-text-secondary);--line:var(--color-border);--brand:var(--color-primary);--soft:var(--color-primary-soft);--shadow:var(--shadow-card);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--line-md);--tool-claude:#c78063;--tool-codex:#63958a;--tool-cursor:#8292ad;--tool-gemini:#f5824e;--tool-kimi:#17beb2;--tool-opencode:#a4d44c;--tool-litellm:#ffb15a;--tool-hermes:#e06b8a;--tool-zcode:#4f6bed;--tool-newapi:#b58a2a;--tool-other:#cccccc;}
@media (max-width:640px){:root{--layout-page:var(--space-4);--layout-section:var(--space-8);--layout-gap:var(--space-3);--layout-group:var(--space-2);--layout-pad:var(--space-4);}}
:root[data-theme=dark]{color-scheme:dark;--brand:#6997ff;--color-text:#f2f3f5;--color-text-secondary:#c5c7cb;--color-text-tertiary:#8f959e;--color-border:#45474d;--color-border-light:#34363b;--color-surface:#24262b;--color-surface-muted:#2b2d33;--color-canvas:#1b1c20;--color-primary-soft:#293b68;--bg:var(--color-canvas);--panel:var(--color-surface);--ink:var(--color-text);--muted:var(--color-text-secondary);--line:var(--color-border);--soft:var(--color-primary-soft);}

/* Reset and base */
*{box-sizing:border-box;}
[hidden]{display:none!important;}
a{color:var(--brand);text-decoration:none;}
a:hover{text-decoration:underline;}
h1{font-size:24px;line-height:34px;font-weight:650;margin:0 0 4px;}
details{margin:16px 0;}
legend{font-size:13px;padding:0 var(--space-1);}
footer{padding:4px 0 24px;font-size:11px;padding-top:var(--space-2);}
html{background:var(--color-canvas);scroll-behavior:smooth;}
body{margin:0;color:var(--ink);min-width:320px;background:var(--color-canvas);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--line-md);-webkit-font-smoothing:antialiased;}
h1,h2,h3,strong{color:var(--color-text);}
h2{margin-bottom:16px;margin:0 0 16px;font-size:16px;line-height:24px;font-weight:600;}
h3{font-size:14px;line-height:22px;font-weight:600;}
p{color:var(--muted);margin:8px 0 16px;font-size:14px;line-height:22px;}

/* Layout */
aside select,#local-label{margin:8px 0 0;width:100%;background:var(--panel);font-size:13px;}
.aside-bottom button{font-size:12px;}
.period button{background:transparent;color:var(--muted);padding:var(--space-2) var(--space-2);font-size:13px;}
.period button.active{background:var(--soft);color:var(--brand);}
aside>.workspace-avatar{position:absolute;top:24px;left:16px;width:34px;height:34px;border-radius:9px;font-size:17px;}
aside select{border:0;background:transparent;padding-left:0;font-weight:500;}
.signed-out .shell{display:block;}
.signed-out aside{display:none;}
.shell{grid-template-columns:208px minmax(0,1fr);display:block;min-height:100vh;background:linear-gradient(90deg,var(--color-surface) 0 208px,var(--color-canvas) 208px);}
aside{top:0;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:20;width:208px;height:100dvh;min-height:100vh;padding:16px 12px;border-right:1px solid var(--color-border-light);background:var(--color-surface);box-shadow:none;}
main{width:calc(100% - 208px);max-width:none;min-width:0;min-height:100vh;margin-left:208px;padding:0 32px 40px;}
#dashboard{width:100%;max-width:1280px;margin:0 auto;}
.brand{line-height:34px;margin-left:44px;display:flex;align-items:center;gap:var(--space-2);height:40px;padding:0 8px;color:var(--color-text);font-size:16px;font-weight:650;letter-spacing:-.2px;text-decoration:none;}
.brand:hover{text-decoration:none;color:var(--color-text);}
.brand-mark{display:inline-flex;flex:none;width:28px;height:28px;}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain;}
.workspace-switcher{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr);gap:var(--space-2);align-items:center;min-height:76px;margin:var(--space-4) var(--space-1) var(--space-2);padding:var(--space-2) 28px var(--space-2) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);}
.workspace-switcher>div{min-width:0;}
.workspace-switcher:has(#workspace:not([hidden]))::after{content:"";position:absolute;right:12px;top:50%;width:6px;height:6px;border-right:1.5px solid var(--color-text-tertiary);border-bottom:1.5px solid var(--color-text-tertiary);transform:translateY(-70%) rotate(45deg);pointer-events:none;}
.workspace-avatar{background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;flex:none;width:32px;height:32px;border-radius:8px;font-size:15px;box-shadow:none;}
.workspace-label{flex:none;min-width:0;margin-top:16px;display:block;margin:0 0 2px;color:var(--color-text-tertiary);font-size:11px;line-height:16px;}
.workspace-name{display:-webkit-box;max-height:40px;overflow:hidden;color:var(--color-text);font-size:13px;font-weight:550;line-height:20px;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;}
.workspace-switcher select:not([hidden]){position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;}
.workspace-switcher #local-label{width:100%;height:auto;margin:0;padding:0;border:0;background-color:transparent;color:var(--color-text);font-size:13px;font-weight:550;line-height:20px;box-shadow:none;}
.workspace-switcher #bound-workspace{margin:2px 0 0;font-size:11px;line-height:16px;}
.aside-bottom{margin-top:auto;display:grid;font-size:12px;color:var(--muted);overflow-wrap:anywhere;padding:12px 8px 0;border-top:1px solid var(--color-border-light);}
.aside-bottom p{margin:0 0 4px;color:var(--color-text-secondary);font-size:12px;line-height:18px;}
header{display:flex;justify-content:space-between;gap:24px;align-items:center;min-height:56px;margin:0 0 24px;padding:8px 0;border-bottom:1px solid var(--color-border-light);border-radius:0;background:var(--color-surface);}
.workspace-heading{display:flex;gap:12px;align-items:center;min-width:0;}
.workspace-heading .eyebrow{display:block;margin:0 0 1px;color:var(--color-text-tertiary);font-size:12px;line-height:18px;}
.workspace-heading .eyebrow::after{content:" / 管理后台";}
.workspace-heading h1{margin:0;color:var(--color-text);font-size:20px;line-height:28px;font-weight:650;letter-spacing:-.3px;}
.workspace-heading p{margin:1px 0 0;color:var(--color-text-secondary);font-size:13px;line-height:20px;}
.header-actions{display:flex;align-items:center;gap:12px;padding-top:var(--space-1);}
.period{display:flex;border-radius:6px;flex-shrink:0;padding:0;border:0;background:transparent;}
.period select{min-width:122px;}
.signed-out main{max-width:none;min-height:100vh;display:grid;align-content:center;padding:32px 20px;width:100%;margin:0;background:var(--color-canvas);}

/* Components: navigation */
#main-navigation{display:flex;flex-direction:column;gap:2px;margin:12px 0 0;}
.nav-section{padding:var(--space-4) var(--space-4) var(--space-2);color:var(--color-text-tertiary);font-size:12px;font-weight:500;line-height:18px;text-align:left;}
#main-navigation button{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;height:40px;padding:0 16px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-text-secondary);font-size:14px;font-weight:400;line-height:20px;text-align:left;}
#main-navigation .nav-icon{display:block;width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;}
#main-navigation .nav-label{min-width:0;flex:1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;}
#main-navigation button:hover{background:var(--color-surface-muted);color:var(--color-text);}
#main-navigation button.active{background:var(--color-primary);color:var(--color-primary);font-weight:550;}
#main-navigation button.active::before{content:"";position:absolute;left:0;top:0;width:3px;height:100%;border-radius:3px 0 0 3px;background:var(--color-primary);}

/* Components */
button,input,select,textarea{font:inherit;}
button,a,input,select,textarea,summary{outline-offset:4px;}
button{cursor:pointer;background:var(--brand);color:#fff;border:1px solid transparent;border-radius:6px;padding:var(--space-2) var(--space-4);line-height:20px;white-space:nowrap;}
button:disabled{opacity:.5;cursor:default;}
button:hover{filter:brightness(.97);}
button.secondary{background:var(--panel);color:var(--ink);border-color:var(--line);}
button.quiet{padding:var(--space-1) 0;background:transparent;color:var(--muted);text-align:left;}
#local-label{padding:var(--space-2);border:1px solid var(--line);border-radius:6px;}
.bar-label{display:flex;justify-content:space-between;gap:16px;font-size:13px;margin-bottom:var(--space-2);overflow-wrap:anywhere;}
.bar-label span:last-child{color:var(--muted);flex-shrink:0;}
.track{height:6px;border-radius:3px;background:var(--bg);}
.track div{height:100%;background:var(--brand);border-radius:3px;}
#models .bar-label{margin:0;}
form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:var(--space-4) 0;}
label{display:grid;gap:8px;font-size:13px;color:var(--muted);flex:1;min-width:160px;}
.check input{width:auto;}
#notice.error{color:#b3261e;background:#fff0f0;}
.login form label{flex-basis:65%;}
details.panel{margin:0 0 24px;}
summary:hover{color:var(--brand);}
details[open]>summary{margin-bottom:16px;}
#feishu-account label{margin:20px 0 12px;max-width:600px;}
#local-authorization button{display:block;margin-top:var(--space-4);}
.overview-charts .panel{padding:var(--layout-pad);}
.stacked-day{display:flex;flex-direction:column-reverse;overflow:hidden;opacity:1;width:28px;background:var(--tool-other);gap:0;}
.stacked-day span{width:100%;flex:none;display:block;}
.tool-bar-label{display:flex;align-items:center;gap:8px;width:100%;margin-bottom:var(--space-2);font-weight:400;}
.tool-bar-label .muted{margin-left:auto;}
.link-button{background:none;border:0;border-radius:4px;padding:0;text-align:left;color:inherit;white-space:normal;}
.link-button:hover{color:var(--brand);filter:none;}
.stack{height:7px;background:var(--bg);border-radius:5px;overflow:hidden;display:flex;min-width:50px;}
.stack>span{display:block;flex:none;height:100%;}
.avatar{position:relative;width:36px;height:36px;border-radius:50%;background:var(--soft);color:var(--brand);display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:none;overflow:hidden;}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.badges{display:inline-flex;gap:4px;flex-wrap:wrap;margin-left:var(--space-2);vertical-align:middle;}
.badge{font-size:10px;padding:var(--space-1) var(--space-1);border-radius:4px;background:var(--bg);color:var(--muted);display:inline-flex;align-items:center;gap:var(--space-1);white-space:nowrap;}
.badge .tool-logo,.badge .tool-logo svg{width:13px;height:13px;}
.price-button{grid-column:4;border:0;background:none!important;color:var(--brand)!important;padding:0;font-size:12px;text-align:left;}
.filter-row{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-2);margin:16px 0;}
.filter-row label{flex:none;min-width:110px;font-size:11px;gap:var(--space-1);}
.filter-row input{width:150px;}
.filter-row select{max-width:220px;}
.filter-row .muted{font-size:12px;align-self:center;}
.button-link{display:inline-block;padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:6px;font-size:12px;color:var(--ink);}
.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:20px;}
.pagination button{font-size:12px;}
.action-row{display:flex;gap:var(--space-2);flex-wrap:wrap;}
.check-list{list-style:none;margin:var(--space-2) 0 0;padding:0;display:grid;gap:var(--space-1);}
.check-list li{display:flex;gap:var(--space-2);align-items:baseline;flex-wrap:wrap;}
.check-list .check-ok .check-mark,.check-summary.check-ok{color:var(--color-success);}
.check-list .check-failed .check-mark,.check-summary.check-failed{color:var(--color-danger);}
.check-summary{font-weight:600;}
.warning-text{color:var(--color-warning);}
.action-row button{font-size:12px;padding:var(--space-2) var(--space-3);}
.mapping-row select{min-width:140px;}
.error-text{color:#b3261e;font-size:13px;}
fieldset{border:1px solid var(--line);border-radius:6px;padding:16px;min-width:0;width:100%;}
#models .rank-row .stack{min-width:70px;}
.insight-card .badge{background:var(--panel);}
.insight-table-wrap{overflow-x:auto;max-width:100%;}
.insight-table{border-collapse:collapse;width:100%;font-size:12px;text-align:left;}
.insight-table td{padding:var(--space-4) var(--space-4) var(--space-4) 0;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap;}
.insight-table td:first-child{white-space:normal;min-width:130px;}
.insight-table tbody tr:last-child td{border-bottom:0;}
#project-import-form,#feishu-import-form{display:block;}
#project-import-form button,#feishu-import-form button{margin-top:12px;}
#project-import-form textarea,#feishu-import-form textarea{font-family:ui-monospace,monospace;font-size:12px;width:100%;}
.health-badges .badge{font-size:12px;}
.subscription-row .rank-identity .badge{margin-left:8px;}
#data-filters select{font-size:12px;padding:var(--space-1) var(--space-2);}
.fresh button{margin-left:auto;font-size:12px;padding:var(--space-1) var(--space-2);}
.overview-charts>.panel:last-child .bar-row{background:transparent;border-radius:0;padding:var(--space-2) 0;margin:4px 0;}
.overview-charts>.panel:last-child .stack{height:4px;margin-left:36px;background:var(--bg);}
.overview-charts>.panel:last-child .bar-row:last-child{margin-bottom:0;}
.overview-charts>.panel:last-child .tool-logo{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg);border-radius:6px;}
#department-breadcrumbs button{height:auto;display:inline;padding:4px;background:transparent;color:var(--brand);}
#department-navigation .action-row button{font-size:12px;}
#department-navigation .action-row button.active{background:var(--soft);color:var(--brand);}
.overview-charts .panel>p{margin:0 0 var(--space-2);font-size:12px;}
.heatmap-label{font-size:11px;color:var(--muted);margin-right:4px;}
#data-filters label{display:flex;align-items:center;gap:var(--space-2);font-size:12px;}
.overview-grid>.panel{margin:0;min-width:0;border:0;padding:var(--layout-pad);}
.trend-panel .stacked-day{width:36px;border-radius:3px;gap:1px;}
.overview-table-wrap{overflow-x:auto;}
.overview-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;table-layout:fixed;}
.overview-table th{background:var(--bg);padding:var(--space-2) var(--space-2);font-size:11px;font-weight:400;color:var(--muted);}
.overview-table th:first-child{width:27%;}
.overview-table th:nth-child(2){width:24%;}
.overview-table th:nth-child(3){width:16%;}
.overview-table td{padding:var(--space-4) var(--space-2);overflow-wrap:anywhere;}
.overview-table .row-name{font-size:13px;}
.overview-table .rank-identity{gap:var(--space-2);}
.overview-table .avatar{width:30px;height:30px;}
.overview-table .stack{height:5px;min-width:40px;gap:2px;background:transparent;}
.overview-table .stack>span{border-radius:2px;flex-shrink:1;}
.overview-table td>small{display:block;margin-top:4px;}
.overview-table tr:hover td{background:color-mix(in srgb,var(--bg) 55%,transparent);}
.overview-secondary>.panel{min-width:0;}
.overview-secondary .rank-figures>button:first-child{font-size:14px;}
.avatar[data-tone=0]{background:#f5e4d9;color:#9a5437;}
.avatar[data-tone=1]{background:#dfefe8;color:#367663;}
.avatar[data-tone=2]{background:#f8ecd3;color:#8a6927;}
.avatar[data-tone=3]{background:#eae3f5;color:#73569b;}
.login #legacy-account summary{font-size:13px;color:var(--muted);}
.login #legacy-account form{display:grid;grid-template-columns:1fr;gap:12px;}
.member-role-controls select{width:auto;min-width:112px;}
.member-permissions summary{cursor:pointer;color:var(--brand);padding:8px 0;}
.member-permissions form{display:grid;gap:12px;}
.member-permissions label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0;}
.member-permissions label span{overflow-wrap:anywhere;}
.member-permissions label select{min-width:90px;}
.member-permissions fieldset{border:1px solid var(--line,#e5e7eb);border-radius:8px;padding:12px;max-height:none;overflow:visible;}
.member-permissions[open] form{grid-template-columns:minmax(0,1fr) auto;align-items:start;}
.member-permissions[open] fieldset{grid-column:1/-1;}
.member-permissions[open] form>select{grid-column:1/-1;max-width:320px;}
.member-permissions[open] label:has(input[type=checkbox]){justify-content:flex-start;}
.snapshot-filters label{display:grid;gap:var(--space-2);font-size:13px;}
#snapshot-summary{margin:20px 0 28px;}
[data-source-table=subscriptions] :is(th,td):nth-child(n/**/+3){text-align:right;font-variant-numeric:tabular-nums;}
[data-source-table] details{margin:8px 0 16px;color:var(--muted);font-size:13px;}
.rank-identity small:empty,.rank-identity .badges:empty{display:none;}
.rank-figures>button:first-child{font-weight:600;font-size:16px;font-variant-numeric:tabular-nums;}
#members>.list-row>.member-permissions:not([open])>summary{padding:var(--space-2) 0;font-size:12px;white-space:nowrap;}
.settings-group>section>form{max-width:640px;}
.section-head>.button-link,.section-head>button{flex-shrink:0;white-space:nowrap;}
[data-source-table] th{background:var(--bg);color:var(--muted);font-weight:500;}
.advanced-filters>summary{color:var(--muted);font-size:12px;padding:var(--space-2) 0;width:max-content;}
.advanced-filters[open]>summary{color:var(--brand);}
.advanced-filters .filter-row{margin:8px 0 0;padding:var(--space-4);background:var(--bg);border-radius:6px;}
.settings-group form{max-width:560px;}
.insight-table th{font-weight:400;padding:var(--space-3) var(--space-4) var(--space-3) 0;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--bg);color:var(--muted);}
#snapshot-rows .link-button{color:var(--brand);font-weight:500;}
.record-summary{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);}
.trend-unavailable summary{font-size:12px;color:var(--brand);width:max-content;}
.price-history>summary::-webkit-details-marker{display:none;}
.price-history>summary>.rank-identity{flex:1;min-width:0;overflow-wrap:anywhere;}
summary:not(.price-history>summary){list-style:none;color:var(--muted);font-weight:400;}
summary::-webkit-details-marker{display:none;}
summary:not(.price-history>summary)::before{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);margin:0 var(--space-2) 2px 2px;}
details[open]>summary:not(.price-history>summary)::before{transform:rotate(45deg);}
.section-head>.secondary,.fresh button,#data-help,#view-device-list{color:var(--brand);}
#report-filters>label:has([name=q]){max-width:320px;flex:0 1 200px;}
.price-history>summary{font-size:14px;font-weight:500;display:flex;align-items:center;gap:16px;list-style:none;min-height:40px;padding:4px 0;}
.price-summary-rates{font-variant-numeric:tabular-nums;display:grid;grid-template-columns:110px 110px;gap:16px;color:var(--ink);font-size:13px;text-align:right;}
.price-history>summary>.muted{color:var(--brand);margin-left:8px;}
dialog>.section-head{position:sticky;top:-24px;z-index:1;background:var(--panel);align-items:center;margin:-24px -24px 16px;padding:16px 24px;border-bottom:1px solid var(--line);}
dialog>.section-head h2{margin:0;}
dialog>.section-head #close-detail{min-width:44px;min-height:44px;padding:0 8px;text-align:center;flex:none;}
::selection{background:var(--color-primary-soft);color:var(--color-text);}
.panel,.connection-strip{border:1px solid var(--color-border-light);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);}
.panel{background:var(--panel);border-radius:10px;border:1px solid color-mix(in srgb,var(--line) 55%,transparent);padding:var(--layout-pad);}
.enroll-entry{scroll-margin-top:16px;padding:24px;border:1px solid var(--color-primary);border-radius:var(--radius-card);background:var(--color-primary-soft);box-shadow:var(--shadow-card);}
.enroll-entry h2{margin-top:0;}
.enroll-entry form{margin-bottom:0;}
.enroll-entry #approve-status:empty{display:none;}
.form-error{flex-basis:100%;margin:0;}
.overview-column>.panel{min-width:0;margin:0;}
.settings-group .panel{padding:var(--layout-pad);}
button,.button-link,input,select,textarea{border-radius:var(--radius-control);font:inherit;transition:border-color var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast);}
button,.button-link{display:inline-flex;min-height:32px;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;box-shadow:none;appearance:none;-webkit-appearance:none;}
button:hover,.button-link:hover{filter:none;background:var(--color-primary-hover);border-color:var(--color-primary-hover);text-decoration:none;}
button:active,.button-link:active{background:var(--color-primary-pressed);border-color:var(--color-primary-pressed);}
button.secondary,.button-link.secondary{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text);}
button.secondary:hover,.button-link.secondary:hover{border-color:#b8babf;background:var(--color-surface-muted);color:var(--color-text);}
button.quiet,.button-link.quiet,.link-button{min-height:28px;padding:var(--space-1) var(--space-2);border-color:transparent;background:transparent;color:var(--color-primary);}
button.quiet:hover,.button-link.quiet:hover,.link-button:hover{background:var(--color-primary-soft);color:var(--color-primary);}
button.danger,.button-link.danger{border-color:var(--color-danger);background:var(--color-danger);color:#fff;}
button.danger:hover,.button-link.danger:hover{border-color:#d83f3b;background:#d83f3b;}
button:disabled,.button-link[aria-disabled=true]{cursor:not-allowed;opacity:.45;}
button.loading{position:relative;cursor:wait;color:transparent!important;pointer-events:none;}
button.loading::after{content:"";position:absolute;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;color:inherit;animation:spin .75s linear infinite;}
button.loading:not(.secondary):not(.quiet)::after{color:#fff;}
button.secondary.loading::after,button.quiet.loading::after{color:var(--color-primary);}
input,select,textarea{background:var(--panel);border-radius:6px;min-width:0;max-width:100%;min-height:36px;padding:var(--space-2) var(--space-2);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);font-size:13px;line-height:20px;box-shadow:none;appearance:none;-webkit-appearance:none;}
select{padding-right:var(--space-8);background-image:linear-gradient(45deg,transparent 50%,var(--color-text-tertiary) 50%),linear-gradient(135deg,var(--color-text-tertiary) 50%,transparent 50%);background-position:calc(100% - 15px) 15px,calc(100% - 10px) 15px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;}
textarea{min-height:88px;resize:vertical;}
input:hover,select:hover,textarea:hover{border-color:#b8babf;}
input:focus,select:focus,textarea:focus{outline-offset:1px;border-color:var(--color-primary);outline:0;box-shadow:0 0 0 1px var(--color-primary);}
input::placeholder,textarea::placeholder{color:var(--color-text-tertiary);}
input[type=checkbox],input[type=radio]{display:inline-grid;width:16px;height:16px;min-height:16px;place-content:center;padding:0;border:1px solid #bbbfc4;background:var(--color-surface);appearance:none;-webkit-appearance:none;}
input[type=checkbox]{border-radius:4px;}
input[type=radio]{border-radius:50%;}
input[type=checkbox]::before{content:"";width:8px;height:4px;border:0 solid #fff;border-width:0 0 2px 2px;transform:rotate(-45deg) scale(0);transition:transform var(--transition-fast);}
input[type=radio]::before{content:"";width:8px;height:8px;border-radius:50%;background:#fff;transform:scale(0);transition:transform var(--transition-fast);}
input:is([type=checkbox],[type=radio]):checked{border-color:var(--color-primary);background:var(--color-primary);}
input:is([type=checkbox],[type=radio]):checked::before{transform:rotate(-45deg) scale(1);}
input[type=radio]:checked::before{transform:scale(1);}
input[type=file]{padding:var(--space-1) var(--space-2);}
input[type=file]::file-selector-button{margin:-2px 8px -2px -4px;padding:var(--space-1) var(--space-2);border:0;border-radius:4px;background:var(--color-surface-muted);color:var(--color-text);font:inherit;cursor:pointer;}
button:focus-visible,.button-link:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}
.tab-row{flex-wrap:nowrap;overflow-x:auto;display:flex;gap:24px;margin:0 0 20px;padding:0;border-bottom:1px solid var(--color-border);background:transparent;}
.tab-row button{border-color:var(--line);flex:none;white-space:nowrap;min-height:40px;padding:8px 0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--color-text-secondary);font-weight:400;}
.tab-row button:hover{border-color:transparent;background:transparent;color:var(--color-text);}
.tab-row button.active{border-color:var(--color-primary);background:transparent;color:var(--color-primary);font-weight:550;}
.badge,.tag{display:inline-flex;align-items:center;min-height:20px;padding:1px var(--space-2);border:0;border-radius:4px;background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:11px;line-height:18px;}
.badge.info,.tag.info{background:var(--color-primary-soft);color:var(--color-primary);}
.badge.success,.tag.success{background:var(--color-success-soft);color:#239115;}
.badge.warning,.tag.warning{background:var(--color-warning-soft);color:#b85f00;}
.badge.danger,.tag.danger{background:var(--color-danger-soft);color:#c93631;}
#notice:not(:empty),.status-note{position:relative;padding:var(--space-2) var(--space-4) var(--space-2) 40px;border:1px solid #bed0ff;border-radius:var(--radius-control);background:var(--color-primary-soft);color:#2454c6;font-size:13px;line-height:20px;}
#notice{pointer-events:none;}  /* the toast never blocks the header actions it overlaps; it clears itself (notice()) */
#notice:not(:empty){padding:12px 16px;background:var(--soft);border-radius:6px;margin-bottom:20px;font-size:13px;position:fixed;z-index:60;top:72px;right:24px;width:min(420px,calc(100vw - 48px));margin:0;box-shadow:var(--shadow-dialog);}
#notice:not(:empty)::before,.status-note::before{content:"i";position:absolute;left:14px;top:10px;display:grid;width:18px;height:18px;place-items:center;border-radius:50%;background:var(--color-primary);color:#fff;font-size:11px;font-weight:700;}
#notice.error,.error-state{border-color:#ffc4c2;background:var(--color-danger-soft);color:#b52f2b;}
#notice.error::before,.error-state::before{content:"!";background:var(--color-danger);}
.warning-state{padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning);border-radius:var(--radius-control);background:var(--color-warning-soft);color:var(--color-text);}
.warning-state p{margin:0 0 var(--space-2);color:inherit;}
.error-text,.error{color:#c93631;}
.empty{display:grid;min-height:160px;place-content:center;justify-items:center;gap:8px;margin:0;padding:32px;color:var(--color-text-tertiary);font-size:13px;line-height:20px;text-align:center;}
.empty::before{content:"—";display:grid;width:40px;height:40px;place-items:center;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-muted);color:var(--color-text-tertiary);font-size:20px;}
.empty+button.secondary{display:block;margin:-24px auto 32px;}
.skeleton{display:grid;width:100%;gap:var(--space-2);padding:var(--space-2) 0;pointer-events:none;}
.skeleton-line{height:12px;border-radius:4px;background:var(--color-border-light);animation:skeleton-pulse 1.2s ease-in-out infinite;}
.skeleton-line:nth-child(2n){width:82%;}
.skeleton-line:nth-child(3n){width:64%;}
.skeleton[aria-label]{min-height:44px;}
.insight-table-wrap,.overview-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--color-border-light);border-radius:var(--radius-card);}
.insight-table,.overview-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--color-surface);table-layout:auto;}
.insight-table th,.overview-table th{position:sticky;top:0;z-index:1;height:40px;padding:0 12px;border-bottom:1px solid var(--color-border);background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:12px;font-weight:500;line-height:18px;text-align:left;white-space:nowrap;}
.insight-table td,.overview-table td{height:44px;max-width:320px;padding:8px 12px;border-bottom:1px solid var(--color-border-light);color:var(--color-text);font-size:13px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.insight-table tr:last-child td,.overview-table tr:last-child td{border-bottom:0;}
.insight-table tbody tr:hover td,.overview-table tbody tr:hover td{background:var(--color-surface-muted);}
.insight-table :is(th,td).numeric,.overview-table :is(th,td).numeric{color:var(--color-text);text-align:right;font-variant-numeric:tabular-nums;}
#seat-quota-rows :is(th,td):nth-child(3),#seat-quota-rows :is(th,td):nth-child(5),#seat-quota-rows :is(th,td):nth-child(6),#seat-quota-rows :is(th,td):nth-child(7){text-align:right;}
#seat-quota-rows td:nth-child(3),#seat-quota-rows td:nth-child(5),#seat-quota-rows td:nth-child(6){font-family:inherit;font-variant-numeric:tabular-nums;letter-spacing:normal;}
#seat-quota-rows td:nth-child(4) .badge,#seat-quota-rows td:nth-child(7) .badge{display:inline-flex;}
.overview-table :is(th,td):nth-child(n/**/+4){color:var(--color-text);text-align:right;font-variant-numeric:tabular-nums;}
.numeric .link-button,.overview-table td:nth-child(n/**/+4) .link-button{color:var(--color-text);font-variant-numeric:tabular-nums;}
.status-value,.status-value .link-button{color:var(--color-text-tertiary)!important;font-size:12px;}
.metric-value,.rank-figures,.cost-grid strong,.price-summary-rates,.day-value{font-variant-numeric:tabular-nums;}
progress.track,progress.stack,progress.day-bar{overflow:hidden;border:0;background:var(--color-surface-muted);appearance:none;-webkit-appearance:none;}
progress.track,progress.stack{display:block;width:100%;height:6px;border-radius:999px;}
progress.day-bar{flex:none;width:28px;height:160px;border-radius:3px;writing-mode:vertical-lr;direction:rtl;}
.track>progress,.stack>progress{display:block;width:100%;height:100%;border:0;border-radius:inherit;appearance:none;-webkit-appearance:none;}
.track-fill{color:var(--color-primary);}
progress::-webkit-progress-bar{background:var(--color-surface-muted);border-radius:inherit;}
progress::-webkit-progress-value{border-radius:inherit;background:currentColor;}
progress::-moz-progress-bar{border-radius:inherit;background:currentColor;}
dialog{width:min(760px,calc(100% - 32px));max-height:85vh;overflow:auto;color:var(--ink);padding:24px;overscroll-behavior:contain;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);box-shadow:var(--shadow-dialog);}
dialog::backdrop{background:rgb(31 35 41 / 45%);backdrop-filter:blur(1px);}
summary{cursor:pointer;color:var(--ink);font-weight:500;line-height:24px;border-radius:4px;}
.signed-out #notice:not(:empty){max-width:480px;width:100%;margin:0 auto 16px;position:relative;top:auto;right:auto;z-index:auto;}

@keyframes skeleton-pulse{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}

/* Pages */
html[data-theme=dark] #coverage-note{color:#ddb76c;}
:root[data-space=personal] .overview-grid{row-gap:var(--layout-gap);}
:root[data-space=personal] .overview-secondary{grid-template-columns:1fr;}
.eyebrow{display:none;}
.dot{width:6px;height:6px;border-radius:50%;background:#34a879;}
.metric strong{font-size:30px;letter-spacing:-.5px;line-height:40px;font-weight:600;overflow-wrap:anywhere;}
.section-head p,.trend-panel>p{margin:0 0 16px;font-size:12px;}
.day:last-child .day-bar,.day:hover .day-bar{opacity:1;}
.day small{font-size:10px;color:var(--muted);padding-bottom:var(--space-2);white-space:nowrap;}
#models .bar-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,30%);gap:24px;align-items:center;margin:0;padding:var(--space-4) 0;border-bottom:1px solid var(--line);}
#models .bar-row:last-child{border-bottom:0;}
.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:16px 0;}
.list-row:last-child{border-bottom:0;}
.list-row strong{font-size:14px;}
.list-row small{display:block;margin-top:var(--space-2);font-size:12px;color:var(--muted);}
.check{display:flex;align-items:center;gap:8px;min-width:100%;flex:none;}
#feishu-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;}
#issued-token{width:100%;min-height:72px;}
.login p{font-size:13px;}
.muted,footer{font-size:12px;color:var(--muted);}
.status-note{background:#fff5e5;border-radius:6px;padding:12px;color:#985c12;font-size:13px;margin-bottom:24px;}
#local-authorization{padding:16px;background:var(--soft);border-radius:6px;margin:16px 0;}
#organization-members #members p{padding:12px 0;margin:0;border-bottom:1px solid var(--line);}
.metrics{display:grid;margin-bottom:24px;gap:16px;margin:0 0 16px;background:var(--panel);padding:var(--space-4) var(--space-6) 20px;border-radius:0 0 10px 10px;grid-template-columns:repeat(4,minmax(0,1fr));}
.metric{display:flex;flex-direction:column;padding:0 0 0 12px;border:0;border-left:3px solid var(--soft);border-radius:0;min-height:68px;align-items:flex-start;justify-content:flex-start;background:transparent;gap:4px;}
.metric:first-child{border-left-color:var(--brand);}
.metric:nth-child(2){border-left-color:var(--tool-claude);}
.metric:nth-child(4){border-left-color:var(--tool-cursor);}
.metric:last-child{border-left-color:var(--tool-litellm);}
.metric strong,.metric-value{font-size:29px;line-height:36px;font-weight:650;letter-spacing:-.7px;}
.metric-value{border:0;background:none;padding:0;color:var(--ink);cursor:pointer;}
.metric-value:hover{color:var(--brand);}
.metric>span{color:var(--muted);font-size:12px;}
.metric small{color:var(--muted);text-align:left;font-size:11px;}
.square{border-radius:2px;background:var(--brand);width:8px;height:8px;}
.tool-logo{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:none;font-weight:600;font-size:14px;}
.tool-logo svg{width:18px;height:18px;}
.bar-row{margin:20px 0;}
.subscription-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.subscription-title{display:flex;align-items:center;gap:8px;font-size:13px;}
.subscription-title strong{font-weight:500;}
.subscription-card small{color:var(--muted);font-size:11px;}
.section-head .secondary{border:0;padding:4px 0;color:var(--muted);background:none;font-size:13px;}
.section-head .secondary:after{content:" ›";}
.rank-row:last-child{border-bottom:0;}
.rank-number{color:var(--muted);font-size:15px;font-weight:600;}
.rank-row:first-child .rank-number{color:var(--brand);}
.rank-identity{display:flex;gap:12px;align-items:center;min-width:0;}
.rank-identity>div{min-width:0;}
.rank-row .badges{max-width:100%;}
.rank-row .badge{max-width:100%;min-width:0;}
.rank-row .badge>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;}
.rank-identity small{display:block;color:var(--muted);font-size:11px;margin-top:var(--space-2);overflow-wrap:anywhere;}
.row-name{font-size:14px;font-weight:550;overflow-wrap:anywhere;}
.rank-figures{display:flex;flex-direction:column;gap:var(--space-1);}
.rank-figures small,.rank-figures .muted{font-size:11px;color:var(--muted);}
.row-note{grid-column:2/-1;font-size:11px;color:var(--muted);margin-top:-4px;}
.tool-legend{display:flex;flex-wrap:wrap;gap:20px;font-size:11px;color:var(--muted);margin-bottom:12px;}
.tool-legend>span{display:flex;align-items:center;gap:var(--space-2);}
.cost-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:16px;margin:20px 0;}
.cost-grid>div{display:flex;flex-direction:column;gap:8px;}
.cost-grid small{color:var(--muted);font-size:11px;}
.cost-grid strong{font-size:19px;font-weight:600;}
.price-detail{padding:20px 0;border-bottom:1px solid var(--line);}
.price-detail:last-child{border-bottom:0;}
.price-detail h3{display:inline-block;margin:0 var(--space-2) 0 0;font-size:16px;}
.price-detail p{font-size:12px;margin:12px 0;}
.price-detail a{font-size:13px;}
.connector-row{padding:12px 0 20px;border-bottom:1px solid var(--line);}
.connector-row:last-child{border-bottom:0;}
.connector-row h3{display:flex;align-items:center;gap:var(--space-2);font-size:15px;margin:8px 0;}
.connector-row p{font-size:12px;}
.mapping-row{border-top:1px solid var(--line);padding:12px 0;}
.mapping-row strong{min-width:160px;font-size:13px;}
.adoption-card{padding:16px 0;border-bottom:1px solid var(--line);}
.adoption-card h3{font-size:14px;}
.adoption-card p{display:inline-block;margin:8px 24px 8px 0;font-size:13px;}
.detail-total{font-size:30px;display:block;margin:20px 0;}
.detail-identity{display:flex;align-items:center;gap:12px;}
.detail-identity p{margin:0;font-size:12px;}
#local-source-choices{display:grid;gap:12px;margin:8px 0 16px;}
.sr-only{min-width:0;position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
#models .rank-row{margin:0;}
#report-caption{font-size:12px;}
#report-state:not(:empty){font-size:13px;color:var(--muted);padding:var(--space-2) 0;}
#pricing-panel>p,#connector-panel .section-head p{font-size:12px;}
#display-mode{min-width:100px;}
.subscription-card .subscription-accent{opacity:.8;}
#connector-job-status:not(:empty){padding:12px 0;}
#custom-period{background:var(--panel);padding:16px 24px;margin:0;border-radius:0 0 8px 8px;}
.metric,.metric:first-child,.metric:nth-child(2),.metric:nth-child(4),.metric:last-child{border-left:0;padding-left:0;}
.entity-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--muted);flex:none;}
.entity-icon svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.day-value{color:var(--muted);font-size:11px;white-space:nowrap;line-height:16px;}
.day{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:end;height:100%;gap:8px;background:none;padding:0;border:0;border-radius:0;color:var(--muted);min-width:38px;}
.trend{display:flex;align-items:end;overflow-x:auto;gap:8px;height:232px;padding-top:8px;}
.day-bar{flex:none}
.trend .day-bar{background:var(--brand);border-radius:3px 3px 0 0;width:34px;max-width:80%;min-height:2px;opacity:.68;}
.day-value,.day>small{flex:none;}
.insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px;}
.insight-card{padding:16px;background:var(--bg);border-radius:8px;min-width:0;}
.insight-card h3{font-size:14px;margin:0 0 12px;}
.insight-card .insight-value{font-size:23px;font-weight:600;display:block;margin:var(--space-2) 0;}
.insight-card p{font-size:12px;margin:8px 0;}
.import-help{font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);padding:var(--space-4);border-radius:6px;}
.health-badges{display:flex;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-4) 0;}
#feishu-ai-panel h3{font-size:15px;margin:24px 0 12px;}
.subscription-row{grid-template-columns:24px minmax(200px,1fr) minmax(200px,.8fr);}
.subscription-row .rank-figures{justify-self:end;}
#data-help{font-size:12px;margin-left:4px;}
.overview-charts{display:grid;gap:var(--layout-gap);grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:start;}
#department-navigation{margin:16px 0;}
#department-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0 0 12px;}
.monthly-chart{height:250px;margin:12px 0 20px;}
.monthly-chart .day{min-width:60px;}
.price-history>h3{font-size:16px;}
.price-history>p{font-size:12px;}
.price-history .price-detail{padding:16px 0;}
.price-history .price-detail h3{font-size:13px;color:var(--muted);}
#coverage-note{color:#946200;display:flex;align-items:center;gap:4px;}
.pending-icon{font-size:12px;}
#device-status-note:empty{display:none;}
#data-filters{justify-content:flex-start;align-items:center;border-top:1px solid var(--bg);background:none;padding:0;margin:0 0 20px;gap:12px;flex-wrap:wrap;}
.fresh{display:flex;align-items:center;color:var(--muted);margin:0 0 0 auto;font-size:11px;background:none;padding:0;gap:8px;flex-wrap:wrap;}
.fresh .dot{display:none;}
.overview-grid h2{font-size:14px;font-weight:600;margin:0 0 var(--space-4);}
.overview-grid .section-head{align-items:baseline;}
.overview-grid .section-head .secondary{color:var(--brand);font-size:12px;}
.usage-headline{display:flex;align-items:center;gap:var(--space-4);margin:4px 0 12px;min-height:52px;}
.usage-headline .metric-value{font-size:36px;line-height:1.2;font-weight:550;letter-spacing:-.8px;}
.usage-headline>.muted{font-size:12px;}
.usage-context{border-left:1px solid var(--line);padding-left:24px;margin-left:var(--space-2);display:grid;gap:var(--space-1);font-size:12px;color:var(--muted);}
.usage-context strong{font-weight:500;}
.trend-panel .trend{height:236px;padding-top:16px;background:repeating-linear-gradient(to top,transparent 0,transparent 49px,color-mix(in srgb,var(--line) 40%,transparent) 49px,color-mix(in srgb,var(--line) 40%,transparent) 50px);background-size:100% 150px;background-repeat:no-repeat;background-position:0 calc(100% - 28px);}
.trend-panel .day-value{font-size:10px;}
.trend-panel .day small{padding-bottom:var(--space-2);}
#trend-legend{margin:var(--space-4) 0 0;gap:24px;}
.heatmap{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:12px;}
.heatmap .square{background:var(--tool-codex);}
.overview-spending{display:flex;flex-direction:column;align-items:stretch;}
.overview-spending>.metric-value{font-size:30px;line-height:40px;margin:var(--space-1) 0;text-align:left;}
.overview-spending>small{font-size:11px;line-height:1.6;}
.overview-costs{border-top:1px solid var(--line);margin-top:var(--space-6);padding-top:12px;display:grid;gap:var(--space-4);}
.overview-costs>div{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);}
.overview-costs strong{font-weight:500;color:var(--ink);}
.cost-explanation{font-size:11px;line-height:1.7;padding:12px;background:var(--bg);margin:20px 0;}
.overview-link{font-size:12px;color:var(--brand);width:fit-content;}
.overview-spending>.overview-link{margin-top:auto;}
.overview-footnote{margin:12px 0 0;font-size:11px;color:var(--muted);}
.subscription-card{position:relative;grid-template-columns:minmax(0,1fr) auto;align-items:center;text-align:left;color:var(--ink);border:0;white-space:normal;display:flex;gap:12px;padding:8px 0;background:transparent;border-radius:6px;}
.subscription-card:hover{background:var(--bg);}
.subscription-copy{display:grid;gap:4px;min-width:0;font-size:11px;line-height:16px;}
.subscription-copy strong{font-size:13px;font-weight:500;}
.subscription-copy>span,.subscription-copy>small{color:var(--muted);}
.subscription-card>.tool-logo{width:36px;height:36px;border-radius:8px;background:color-mix(in srgb,currentColor 10%,var(--panel));}
.subscription-accent{height:4px;width:100%;grid-column:1/-1;border-radius:2px;margin-top:var(--space-1);display:none;}
.connection-strip{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;padding:16px;background:var(--panel);border-radius:8px;margin:20px 0;font-size:12px;color:var(--muted);}
.connection-strip strong{font-size:14px;color:var(--ink);}
.connection-strip .overview-link{margin-left:auto;}
.overview-secondary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.65fr);gap:var(--layout-gap);align-items:start;}
.overview-secondary .rank-row{grid-template-columns:20px minmax(100px,1fr) minmax(45px,.5fr) minmax(110px,.8fr);gap:var(--space-2);}
.login{width:100%;max-width:480px;margin:0 auto;padding:40px;border:1px solid var(--line);box-shadow:0 12px 40px #172b4d08;}
.login h1{margin-bottom:12px;font-size:28px;letter-spacing:-.6px;margin-top:var(--space-4);}
.login>p{line-height:1.8;}
.login #feishu-login{margin:28px 0 12px;}
.login #feishu-signin{width:100%;min-height:46px;font-size:15px;}
.login #legacy-account{border-top:1px solid var(--line);margin-top:28px;padding-top:20px;}
.login #legacy-account p{line-height:1.7;color:var(--muted);}
.login .login-privacy{margin:var(--space-6) 0 0;font-size:12px;}
.model-logo{width:28px;height:28px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);line-height:1;}
.model-logo svg{width:22px;height:22px;display:block;}
.model-logo[data-model-brand=anthropic]{color:var(--tool-claude);}
.model-monogram{font-size:13px;font-weight:600;color:var(--muted);width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:7px;}
.price-detail h3.model-brand-heading{display:inline-flex;align-items:center;gap:8px;max-width:100%;vertical-align:middle;}
.model-brand-heading>span:last-child{min-width:0;overflow-wrap:anywhere;}
.detail-identity:has(.model-logo){flex-wrap:wrap;}
.detail-identity .model-id{overflow-wrap:anywhere;min-width:0;max-width:100%;font-size:12px;color:var(--muted);}
.member-role-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;}
.member-role-controls small{flex-basis:100%;text-align:right;color:var(--muted);}
.member-permissions{margin-left:auto;max-width:640px;min-width:140px;}
.member-permissions[open]{width:min(640px,100%);}
.member-permissions p{font-size:13px;line-height:1.6;overflow-wrap:anywhere;}
.permission-department-list{max-height:260px;overflow:auto;overscroll-behavior:contain;}
#members>.list-row:has(>.member-permissions[open]){display:grid;grid-template-columns:1fr;align-items:start;gap:12px;}
#members>.list-row>.member-permissions[open]{margin:0;max-width:none;width:100%;padding:12px 16px;background:var(--bg,#f7f8fa);border-radius:8px;}
.snapshot-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:20px 0;}
.source-detail{display:grid;grid-template-columns:minmax(100px,180px) minmax(0,1fr);gap:var(--space-2) 20px;}
.source-detail dt{color:var(--muted);}
.source-detail dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap;}
#snapshot-rows td{max-width:280px;overflow-wrap:anywhere;}
.source-missing{font-size:12px;color:var(--muted);background:var(--surface-muted,#f5f6f8);border-radius:4px;padding:2px var(--space-2);}
#snapshot-rows thead{position:sticky;top:0;background:var(--surface,#fff);}
.rank-row{display:grid;grid-template-columns:24px minmax(190px,1.05fr) minmax(100px,1fr) minmax(150px,.8fr);align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:12px 0;row-gap:4px;}
.rank-row .row-note{margin:0;font-size:11px;line-height:1.4;}
#members>.list-row{padding:12px 0;align-items:center;}
#members>.list-row>.member-permissions:not([open]){margin:0;padding:0;flex:none;}
.settings-group>section>p{max-width:76ch;}
.heatmap .square.unknown{background:transparent;border:1px dashed var(--muted);opacity:.6!important;}
/* Overview and analysis: legends, result header, empty results, cost notes and activity tiles. */
.tool-legend>span>span{color:var(--color-text-secondary);font-size:12px;line-height:18px;}
.trend-panel progress.day-bar,.daily-report-chart progress.day-bar{background:transparent;}
.trend-panel progress.day-bar::-webkit-progress-bar,.daily-report-chart progress.day-bar::-webkit-progress-bar{background:transparent;}
.heatmap .heatmap-label{margin-right:8px;color:var(--color-text);font-size:12px;line-height:18px;}
.composition-text{display:block;margin-top:4px;color:var(--color-text-secondary);font-size:12px;line-height:18px;white-space:normal;}
.overview-table td.composition-cell{white-space:normal;}
.overview-table td.composition-cell .composition-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.overview-table td.numeric,.overview-table td.numeric .link-button{white-space:nowrap;font-variant-numeric:tabular-nums;}
.overview-table td:nth-child(2){max-width:200px;}
.overview-table th:nth-child(2){width:18%;}
.overview-table th:nth-child(3){width:26%;}
.cost-missing,.metric-missing{color:var(--color-text-secondary)!important;font-weight:400!important;font-size:13px!important;}
.cost-pending-note{margin:0 0 8px;padding:8px 12px;border-radius:var(--radius-control);background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:12px;line-height:18px;}
.figure-pair{display:flex;align-items:baseline;justify-content:flex-end;gap:8px;}
.figure-pair>small{flex:none;color:var(--color-text-secondary);font-size:12px;line-height:18px;white-space:nowrap;}
.figure-pair>strong,.figure-pair>.link-button{font-size:18px;line-height:26px;font-weight:600;font-variant-numeric:tabular-nums;}
.rank-figures:has(.figure-pair){gap:8px;align-items:flex-end;}
.compact-ranking .rank-row{min-height:64px;padding:8px 0;}
#distribution>.section-head{align-items:baseline;}
#view-models{margin-top:12px;}
.report-panel{padding:24px;}
.report-panel>.section-head{margin-bottom:16px;}
.result-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 0;color:var(--color-text-secondary);font-size:12px;line-height:18px;}
.sort-chip{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:0 8px;border-radius:4px;background:var(--color-primary-soft);color:var(--color-primary);font-size:12px;line-height:18px;}
.sort-chip .chip-remove{min-width:20px;min-height:20px;padding:0;border:0;background:transparent;color:var(--color-primary);font-size:14px;line-height:20px;}
.department-navigation{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;}
.department-navigation nav{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:13px;}
.segmented{display:inline-flex;padding:2px;border-radius:var(--radius-control);background:var(--color-surface-muted);}
.segmented button,.segmented button.secondary{min-height:36px;padding:0 var(--space-4);border:0;border-radius:4px;background:transparent;color:var(--color-text-secondary);font-size:13px;}
.segmented button.active,.segmented button[aria-pressed=true]{background:var(--color-surface);color:var(--color-primary);font-weight:550;box-shadow:var(--shadow-card);}
.empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:-16px 0 32px;}
#report-export.disabled{opacity:.45;pointer-events:none;}
.daily-report-chart{margin-bottom:16px;}
.daily-report-table .insight-table td{white-space:normal;}
.activity-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:12px 0 16px;}
.activity-tile{padding:16px;border:1px solid var(--color-border-light);border-radius:var(--radius-card);background:var(--color-surface);}
.activity-tile>small{display:block;color:var(--color-text-secondary);font-size:13px;line-height:20px;}
.activity-tile>strong{display:block;margin:4px 0;font-size:24px;line-height:32px;font-weight:600;font-variant-numeric:tabular-nums;}
.activity-definition{margin:0;color:var(--color-text-secondary);font-size:12px;line-height:18px;}
@media (max-width:767px){
  .overview-table-wrap{overflow:visible;}
  .overview-table-wrap .overview-table thead{display:none;}
  .overview-table-wrap .overview-table,.overview-table-wrap .overview-table tbody{display:block;min-width:0;}
  .overview-table-wrap .overview-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px;border-bottom:1px solid var(--color-border-light);}
  .overview-table-wrap .overview-table td{display:block;height:auto;max-width:none;padding:0;border:0;white-space:normal;}
  .overview-table-wrap .overview-table td:nth-child(1){grid-column:1;grid-row:1;}
  .overview-table-wrap .overview-table td:nth-child(4){grid-column:2;grid-row:1;align-self:center;font-weight:600;}
  .overview-table-wrap .overview-table td:nth-child(3){grid-column:1/-1;grid-row:2;}
  .overview-table-wrap .overview-table td:nth-child(2){grid-column:1;grid-row:3;color:var(--color-text-secondary);font-size:12px;}
  .overview-table-wrap .overview-table td:nth-child(5){grid-column:2;grid-row:3;font-size:12px;}
  .overview-table-wrap .overview-table td:nth-child(2)::before{content:"订阅 ";}
  .overview-table-wrap .overview-table td:nth-child(5)::before{content:"用量估值 ";color:var(--color-text-secondary);}
  .figure-pair>strong,.figure-pair>.link-button{font-size:16px;line-height:24px;}
  .report-panel{padding:16px;}
  .department-navigation{align-items:stretch;}
  .segmented{display:flex;width:100%;}
  .segmented button{flex:1;}
}
.mobile-nav-toggle{display:none;}
.advanced-filters{flex-basis:100%;margin:0;}
#report-filters{align-items:end;gap:12px;}
.settings-jumps{display:flex;gap:24px;margin:0 0 24px;padding:8px 0;font-size:13px;}
.settings-group{scroll-margin-top:20px;}
.settings-group p{max-width:76ch;}
.settings-group:not(:has(>section:not([hidden]))){display:none;}
.settings-jumps a{white-space:nowrap;}
.settings-jumps{position:sticky;top:0;z-index:3;background:var(--color-canvas);}
#spending-standard[data-view=pricing]>:not(#pricing-panel),#spending-standard[data-view=standard]>#pricing-panel{display:none;}
.settings-group-title{font-size:13px;color:var(--muted);font-weight:500;margin:28px 0 12px;position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
.mobile-nav-toggle::before{content:"☰";margin-right:var(--space-2);}
.mobile-nav-toggle::after{content:"⌄";float:right;}
.trend-panel .trend.trend-unavailable{display:block;height:auto;min-height:104px;padding:var(--space-4) 0;background:none;}
.trend-unavailable>p{font-size:13px;margin:var(--space-2) 0 var(--space-4);}
.unknown-days{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;min-height:84px;overflow-x:auto;}
.subscription-plan{display:flex;align-items:center;gap:var(--space-2);}
.subscription-plan .tool-logo{width:16px;height:16px;}
.section-head>div:first-child{flex:1;min-width:0;}
.section-head>.secondary::after{content:none;}
.price-history{border-bottom:1px solid var(--line);margin:0;padding:8px 0;}
.price-history:not([open]){padding:8px 0;}
#member-search{width:min(320px,100%);min-width:240px;}
#snapshot-state{font-size:13px;color:var(--muted);margin-bottom:8px;}
.overview-grid:has(.trend-unavailable){align-items:start;}
.overview-spending .metric-value[data-unknown=true]{font-size:22px;font-weight:400;color:var(--muted);}
.mobile-filter-toggle{display:none;}
.cost-grid>.metric-description{grid-column:1/-1;min-width:0;}
.cost-grid>.metric-description>p{font-size:14px;font-weight:400;line-height:1.7;margin:var(--space-2) 0 0;overflow-wrap:anywhere;}
#feishu-ai-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}
.bars{min-width:0;}
.cost-card{min-width:0;padding:16px;border:1px solid var(--color-border-light);border-radius:var(--radius-card);background:var(--color-surface);}
.governance-filter{display:grid;max-width:240px;margin:0 0 16px;}
.section-head{display:flex;justify-content:space-between;gap:12px;min-height:32px;margin-bottom:16px;align-items:flex-start;}
.section-head h2{margin:0;}
.section-head p{max-width:78ch;margin:var(--space-1) 0 0;color:var(--color-text-secondary);font-size:13px;line-height:20px;}
.overview-grid,.overview-secondary{gap:var(--layout-gap);}
.overview-grid{display:grid;grid-template-columns:minmax(0,2.24fr) minmax(280px,1fr);gap:var(--layout-gap);align-items:start;}
.overview-column{display:grid;min-width:0;gap:16px;align-content:start;}
#subscription-overview .subscription-cards{display:flex;flex-direction:column;max-height:380px;overflow-y:auto;gap:0;}
#subscription-overview .subscription-card{flex:none;width:100%;min-height:74px;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--color-border-light);border-radius:0;overflow:hidden;}
#subscription-overview .subscription-card:last-child{border-bottom:0;}
#subscription-overview .subscription-copy{flex:1;gap:1px;overflow:hidden;white-space:normal;}
#subscription-overview .subscription-copy>*{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#subscription-overview .subscription-plan{display:flex;align-items:center;gap:var(--space-2);}
#subscription-overview .subscription-plan .tool-logo{flex:none;}
#subscription-overview .subscription-copy strong{line-height:20px;}
.tool-claude{color:var(--tool-claude)!important;}
.tool-codex{color:var(--tool-codex)!important;}
.tool-cursor{color:var(--ink)!important;}
.tool-gemini{color:var(--tool-gemini)!important;}
.tool-kimi{color:var(--tool-kimi)!important;}
.tool-opencode{color:var(--tool-opencode)!important;}
.tool-litellm{color:var(--tool-litellm)!important;}
.tool-hermes{color:var(--tool-hermes)!important;}
.tool-zcode{color:var(--tool-zcode)!important;}
.tool-newapi{color:var(--tool-newapi)!important;}
.tool-other{color:var(--tool-other)!important;}
.square[data-intensity=0]{opacity:.12;}
.square[data-intensity=1]{opacity:.3;}
.square[data-intensity=2]{opacity:.5;}
.square[data-intensity=3]{opacity:.72;}
.square[data-intensity=4]{opacity:1;}
.series-primary{color:var(--color-primary)!important;}
.series-0{color:var(--tool-codex)!important;}
.series-1{color:var(--tool-claude)!important;}
.series-2{color:var(--tool-cursor)!important;}
.series-3{color:var(--tool-litellm)!important;}
.series-4{color:var(--tool-hermes)!important;}
.series-5{color:var(--tool-gemini)!important;}
.series-6{color:var(--tool-kimi)!important;}
.series-7{color:var(--tool-opencode)!important;}
.tool-legend i{width:7px;height:7px;border-radius:50%;display:block;background:currentColor!important;}
.signed-out body{background:var(--color-canvas);}
.signed-out .login{position:relative;max-width:480px;padding:40px;border:1px solid rgb(255 255 255 / 70%);box-shadow:0 16px 48px rgb(31 35 41 / 10%);}
.signed-out .login::before{content:"";display:block;width:60px;height:60px;background:url(/logo-128.png) center/contain no-repeat;background-image:image-set(url(/logo-128.png) 1x,url(/logo-256.png) 2x);}
.signed-out .login .eyebrow{display:block;margin:var(--space-4) 0 var(--space-2);color:var(--color-primary);font-size:11px;font-weight:650;letter-spacing:.08em;}
.signed-out .login h1{font-size:24px;line-height:32px;}

/* Phase 9 demo dashboard */
.shell aside{width:208px;padding:16px 12px;}
.shell main{width:calc(100% - 208px);margin-left:208px;padding:0 var(--layout-page) 40px;}
#dashboard{width:100%;max-width:1280px;margin:0 auto;}
header{min-height:56px;margin:0 -32px 24px;padding:8px 32px;}
.workspace-heading .eyebrow{font-size:11px;line-height:16px;}
.workspace-heading .eyebrow::after{content:"";}
.workspace-heading p{display:none;}
#notice:not(:empty){top:72px;right:28px;}
.panel{padding:var(--layout-pad);border-radius:8px;border-color:var(--color-border-light);box-shadow:0 1px 2px rgb(31 35 41 / 4%);}
.nav-section{padding:var(--space-4) var(--space-4) var(--space-2);font-size:11px;}
#main-navigation button{height:38px;padding:0 var(--space-4);}
#main-navigation button.active{background:#edf2ff;}

.seat-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px;}
.metric-card{position:relative;min-height:126px;padding:20px var(--space-6);border:1px solid var(--color-border-light);border-radius:8px;background:var(--color-surface);overflow:hidden;}
.metric-card::after{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#d9e2ff;}
.metric-card>span{display:block;color:var(--color-text-secondary);font-size:13px;}
.metric-card>strong{display:block;margin:12px 0 4px;font-size:28px;line-height:34px;font-weight:650;letter-spacing:-.5px;font-variant-numeric:tabular-nums;}
.metric-card>small{color:var(--color-text-tertiary);font-size:12px;}
.metric-card.metric-attention::after{background:var(--color-warning);}
.metric-card.metric-attention.has-alert{background:linear-gradient(90deg,var(--color-danger-soft),var(--color-surface) 42%);}
.metric-card.metric-attention.has-alert::after{background:var(--color-danger);}
.metric-card.metric-attention.has-alert>strong{color:var(--color-danger);}
.metric-card.has-warning{background:linear-gradient(90deg,var(--color-warning-soft),var(--color-surface) 42%);}
.metric-card.has-warning::after{background:var(--color-warning);}
.metric-card.has-warning>strong{color:#b85f00;}
.seat-main-card{padding:0;overflow:hidden;}
.seat-main-card>.section-head{margin:0;padding:20px var(--space-6) var(--space-4);border-bottom:1px solid var(--color-border-light);}
.seat-policy-toolbar{display:flex;align-items:center;gap:16px;margin:0;padding:12px 24px;border-bottom:1px solid var(--color-border-light);background:var(--color-surface-muted);}
.seat-policy-toolbar label{display:flex;min-width:0;flex:none;align-items:center;gap:8px;color:var(--color-text);}
.seat-policy-toolbar button{flex:none;}
.seat-policy-toolbar #seat-quota-status{margin-left:auto;color:var(--color-text-tertiary);font-size:12px;}
.switch-field>input{position:absolute;width:1px;height:1px;opacity:0;}
.switch-control{position:relative;width:34px;height:20px;border-radius:10px;background:#bbbfc4;transition:background var(--transition-fast);}
.switch-control::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgb(31 35 41 / 20%);transition:transform var(--transition-fast);}
.switch-field>input:checked+.switch-control{background:var(--color-primary);}
.switch-field>input:checked+.switch-control::after{transform:translateX(14px);}
.switch-field>input:focus-visible+.switch-control{outline:2px solid var(--color-primary);outline-offset:2px;}
.threshold-field{padding-left:16px;border-left:1px solid var(--color-border);}
.percent-input{display:flex;width:104px;height:40px;align-items:center;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);overflow:hidden;}
.percent-input input{width:72px;min-height:38px;padding:4px 8px;border:0;background:transparent;font-variant-numeric:tabular-nums;box-shadow:none;}
.percent-input>span{display:grid;height:100%;padding:0 var(--space-2);place-items:center;border-left:1px solid var(--color-border-light);background:var(--color-surface-muted);color:var(--color-text-tertiary);}
.seat-table-toolbar{display:flex;align-items:end;gap:12px;padding:16px 24px;}
.seat-table-toolbar label{min-width:0;flex:none;gap:var(--space-1);font-size:11px;}
.seat-table-toolbar select{min-width:130px;min-height:40px;padding-top:var(--space-1);padding-bottom:var(--space-1);}
.seat-table-toolbar #seat-filter-count{margin-left:auto;padding-bottom:var(--space-2);font-size:12px;}
#seat-quota-rows{padding:0 24px 24px;}
#seat-quota-rows .insight-table-wrap{border-radius:8px;}
#seat-quota-rows .insight-table{min-width:760px;}
#seat-quota-rows :is(th,td):nth-child(3){width:230px;text-align:left;}
#seat-quota-rows :is(th,td):nth-child(5),#seat-quota-rows :is(th,td):nth-child(6){text-align:left;}
.seat-member{display:flex;align-items:center;gap:var(--space-2);min-width:150px;}
.seat-member .avatar{width:32px;height:32px;font-size:12px;}
.seat-member>span{display:grid;min-width:0;}
.seat-member small{max-width:160px;overflow:hidden;color:var(--color-text-tertiary);font-size:11px;text-overflow:ellipsis;}
.seat-plan-claude{background:#fff0eb;color:#a24c2c;}
.seat-plan-codex{background:#eaf7f4;color:#25776a;}
.seat-plan-unknown{background:var(--color-surface-muted);color:var(--color-text-tertiary);}
.seat-usage{display:grid;grid-template-columns:minmax(88px,1fr) 44px;gap:var(--space-2);align-items:center;min-width:160px;}
.seat-usage strong{text-align:right;font-size:12px;font-weight:550;font-variant-numeric:tabular-nums;letter-spacing:normal;}
progress.seat-progress{display:block;width:100%;height:8px;border:0;border-radius:4px;background:#eef0f3;color:var(--color-primary);overflow:hidden;appearance:none;-webkit-appearance:none;}
progress.seat-progress.is-normal,progress.seat-progress.is-empty{color:var(--color-primary);}
progress.seat-progress.is-warning{color:var(--color-warning);}
progress.seat-progress.is-critical{color:var(--color-danger);}
progress.seat-progress.is-unknown{color:#d9dce1;}
.relative-time{font-family:inherit;font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:normal;}
.illustrated-empty{display:grid;min-height:280px;place-content:center;justify-items:center;padding:40px;text-align:center;}
.illustrated-empty h3{margin:var(--space-4) 0 var(--space-1);font-size:15px;}
.illustrated-empty p{max-width:420px;margin:0;font-size:13px;}
.empty-illustration{display:flex;width:96px;height:72px;align-items:flex-end;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-4);border-radius:24px;background:var(--color-primary-soft);}
.empty-illustration i{display:block;width:12px;border-radius:4px 4px 2px 2px;background:#8aa9ff;}
.empty-illustration i:nth-child(1){height:22px;}.empty-illustration i:nth-child(2){height:40px;background:var(--color-primary);}.empty-illustration i:nth-child(3){height:30px;background:#adc1ff;}
.policy-empty .empty-illustration{opacity:.72;filter:grayscale(.35);}

.overview-zero-main{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:16px;}
.overview-zero-main>.panel{margin:0;}
.summary-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:var(--space-1) 0 var(--space-6);border:1px solid var(--color-border-light);border-radius:8px;background:var(--color-border-light);overflow:hidden;}
.summary-metrics>div{display:grid;gap:var(--space-1);padding:var(--space-4) var(--space-4);background:var(--color-surface);}
.summary-metrics span{color:var(--color-text-tertiary);font-size:11px;}
.summary-metrics strong{font-size:20px;font-weight:650;font-variant-numeric:tabular-nums;}
.summary-seat-bars{display:grid;gap:12px;}
.summary-seat-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,1.2fr);gap:var(--space-4);align-items:center;}
.summary-seat-label{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.summary-seat-label strong{font-size:13px;font-weight:500;}
.overview-device-row{display:grid;grid-template-columns:minmax(120px,1fr) auto auto auto;gap:var(--space-4);align-items:center;padding:var(--space-4) 0;border-top:1px solid var(--color-border-light);font-size:12px;}
.token-reporting-note{display:flex;align-items:center;gap:var(--space-4);margin:16px 0;padding:16px 20px;}
.token-note-icon{display:grid;width:36px;height:36px;flex:none;place-items:center;border-radius:8px;background:var(--color-primary-soft);color:var(--color-primary);font-weight:700;}
.token-reporting-note p{margin:1px 0 0;font-size:12px;}

.member-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:var(--space-4);}
.member-toolbar>label{max-width:320px;gap:var(--space-1);font-size:11px;}
.member-toolbar details{margin:0;}
.member-toolbar details>summary{display:inline-flex;min-height:32px;align-items:center;padding:var(--space-1) var(--space-4);border:1px solid var(--color-primary);border-radius:6px;background:var(--color-primary);color:#fff;font-size:13px;}
.member-toolbar details>summary::before{display:none!important;}
.member-toolbar details[open]{width:100%;padding:16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-muted);}
.member-table,.device-table{overflow:auto;border:1px solid var(--color-border-light);border-radius:8px;}
.member-table-head,.member-table-row{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(86px,.6fr) minmax(90px,.7fr) minmax(120px,1fr) 70px 90px;min-width:760px;align-items:center;column-gap:12px;padding:0 var(--space-4);}
.member-table-head{height:40px;background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:12px;font-weight:500;}
.member-table-row{min-height:58px;border-top:1px solid var(--color-border-light);font-size:13px;}
.member-table-row:hover{background:var(--color-surface-muted);}
.member-table-row .avatar{width:32px;height:32px;}
.member-table-row .rank-identity>div{display:grid;}
.member-table-row .rank-identity small{color:var(--color-text-tertiary);font-size:11px;}
.role-tag,.directory-state{display:inline-flex;width:max-content;min-height:22px;align-items:center;padding:1px 8px;border-radius:4px;font-size:11px;}
.role-tag{background:var(--color-primary-soft);color:var(--color-primary);}
.role-owner,.role-admin{background:#fff4e8;color:#b85f00;}
.directory-state{background:var(--color-surface-muted);color:var(--color-text-secondary);}
.directory-state.is-active{background:var(--color-success-soft);color:#239115;}
.device-count{font-variant-numeric:tabular-nums;}
.member-table-row>.member-permissions{min-width:0;margin:0;}
.member-table-row>.member-permissions>summary{padding:var(--space-1) 0;color:var(--color-primary);font-size:12px;white-space:nowrap;}
.member-table-row:has(>.member-permissions[open]){padding-top:12px;padding-bottom:12px;}
.member-table-row>.member-permissions[open]{grid-column:1/-1;width:100%;max-width:none;margin:var(--space-2) 0 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:8px;}
.device-table-head,.device-table-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(100px,.7fr) minmax(120px,.8fr) minmax(100px,.7fr) 90px;min-width:680px;align-items:center;gap:16px;padding:0 var(--space-4);}
.device-table-head{height:40px;background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:12px;font-weight:500;}
.device-table-row{min-height:58px;border-top:1px solid var(--color-border-light);font-size:13px;}
.device-table-row:hover{background:var(--color-surface-muted);}
.device-status{display:inline-flex;align-items:center;gap:var(--space-2);}
.status-dot{width:7px;height:7px;border-radius:50%;background:var(--color-text-tertiary);}
.device-active .status-dot{background:var(--color-success);}.device-error .status-dot{background:var(--color-danger);}.device-pending .status-dot{background:var(--color-warning);}
.device-row-action{text-align:right;}
.device-actions{display:flex;max-width:72%;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;}
.device-actions #client-download-status:not(:empty){color:var(--color-text-tertiary);font-size:11px;line-height:18px;text-align:right;}
.device-actions #client-download-status.warning-state{display:flex;max-width:none;align-items:center;gap:8px;padding:var(--space-1) var(--space-2);border:0;border-radius:4px;background:var(--color-warning-soft);color:#a85700;white-space:nowrap;}
.device-actions #client-download-status.warning-state p{margin:0;color:inherit;font-size:11px;line-height:18px;}
.device-actions #client-download-status.warning-state .quiet{min-height:auto;padding:0;border:0;color:#a85700;font-size:11px;line-height:18px;}
.enroll-card{border-color:var(--color-border);}
.enroll-card h2{margin-bottom:4px;}
.enroll-card>p{margin-top:0;}
.enroll-card form{margin-bottom:0;}
/* Members & devices: add-member header, permission drawer, install hint and connection steps. */
.add-member-title{margin:0 0 4px;font-size:var(--text-lg);line-height:var(--line-lg);}
#add-member>p{margin:0 0 12px;font-size:var(--text-sm);}
.required-mark{color:var(--color-danger);font-weight:500;}
.member-drawer-backdrop{display:none;}
.member-table-row>.member-permissions[open]{grid-column:auto;width:auto;margin:0;padding:0;background:none;border:0;}
.member-permissions[open]>.member-drawer-backdrop{display:block;position:fixed;inset:0;z-index:40;background:rgb(31 35 41 / 32%);}
.member-permissions[open]>.member-drawer{position:fixed;top:0;right:0;bottom:0;z-index:41;display:flex;flex-direction:column;width:min(480px,100vw);background:var(--color-surface);box-shadow:var(--shadow-dialog);color:var(--color-text);font-size:var(--text-md);line-height:var(--line-md);white-space:normal;}
.member-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--color-border-light);}
.member-drawer-header h3{margin:0;font-size:var(--text-lg);line-height:var(--line-lg);}
.member-drawer-header small{color:var(--color-text-secondary);font-size:var(--text-xs);overflow-wrap:anywhere;}
.member-drawer-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;padding:16px 24px 0;}
#organization-members #members .member-drawer-body>.member-scope{border-bottom:0;margin:0 0 12px;padding:12px 16px;border-radius:var(--radius-card);background:var(--color-surface-muted);font-weight:500;}
.member-permissions .member-drawer-body form{flex:1;display:flex;flex-direction:column;align-items:stretch;gap:16px;max-width:none;margin:16px 0 0;}
.member-permissions .member-drawer-body form>label{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:var(--space-2);margin:0;font-weight:500;}
.member-drawer-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;margin:auto -24px 0;padding:12px 24px;border-top:1px solid var(--color-border-light);background:var(--color-surface);}
.device-actions #client-download-status.install-missing{flex-basis:100%;order:3;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:8px 12px;border-radius:var(--radius-control);white-space:normal;}
.device-actions #client-download-status.install-missing p{font-size:var(--text-md);line-height:var(--line-md);}
.device-actions #client-download-status.install-missing .quiet{font-size:var(--text-md);line-height:var(--line-md);color:var(--color-primary);}
.device-actions:has(.install-missing){flex-wrap:wrap;justify-content:flex-end;}
.enroll-steps{margin:8px 0 16px;padding-left:20px;display:grid;gap:8px;font-size:var(--text-md);line-height:var(--line-md);}
.enroll-steps li{padding-left:4px;}
.enroll-steps li>*:not(:first-child){margin-left:8px;}
.enroll-steps small:empty{display:none;}
.enroll-target{flex-basis:100%;margin:4px 0 8px;font-weight:500;color:var(--color-text);}
@media (max-width:800px){
  .member-table{overflow:visible;border:0;}
  .member-table-head{display:none;}
  .member-table-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"identity role" "department devices" "permissions permissions";min-width:0;row-gap:8px;margin-bottom:12px;padding:var(--space-4) var(--space-4);border:1px solid var(--color-border-light);border-radius:var(--radius-card);}
  .member-table-row>.rank-identity{grid-area:identity;min-width:0;}
  .member-table-row>.role-tag{grid-area:role;justify-self:end;}
  .member-table-row>.directory-state{display:none;}
  .member-table-row>.member-department{grid-area:department;color:var(--color-text-secondary);overflow-wrap:anywhere;}
  .member-table-row>.device-count{grid-area:devices;color:var(--color-text-secondary);}
  .member-table-row>.device-count::before{content:attr(data-label) " ";}
  .member-table-row .rank-identity small{display:none;}
  .member-table-row>.member-permissions{grid-area:permissions;padding-top:8px;border-top:1px solid var(--color-border-light);}
  .member-table-row>.member-permissions>summary{display:flex;justify-content:flex-start;gap:4px;min-height:32px;align-items:center;font-size:var(--text-md);}
  #devices>.section-head{flex-wrap:wrap;}
  #devices .device-actions{width:100%;justify-content:flex-start;}
  .member-permissions[open]>.member-drawer{width:100vw;}
  .member-drawer-header,.member-drawer-body{padding-left:16px;padding-right:16px;}
  .member-drawer-actions{margin:auto -16px 0;padding:12px 16px;}
  .member-drawer-actions button{flex:1;}
}
/* end members & devices */
/* Settings: secondary navigation, governance groups, health cards, resources and audit. */
.settings-subnav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;}
.settings-subnav button{min-height:32px;padding:var(--space-1) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);}
.settings-subnav button.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary);font-weight:500;}
.governance-attention{margin:0 0 20px;padding:16px;border:1px solid #ffd8a8;border-radius:var(--radius-card);background:var(--color-warning-soft);}
.governance-attention h3{margin:0 0 8px;font-size:var(--text-md);line-height:var(--line-md);}
.governance-attention ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;}
.governance-attention li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:var(--text-md);line-height:var(--line-md);}
.governance-attention p{margin:0;}
.governance-group{margin-bottom:8px;}
.governance-group-title{margin:0 0 12px;font-size:var(--text-md);line-height:var(--line-md);color:var(--color-text-secondary);font-weight:500;}
.governance-card,.health-layer{display:flex;flex-direction:column;gap:8px;background:var(--color-surface);border:1px solid var(--color-border-light);}
.governance-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);}
.governance-card-head h3{margin:0 auto 0 0;font-size:var(--text-md);line-height:var(--line-md);}
.insight-card .governance-card-head .badge.info{background:var(--color-primary-soft);}
.insight-card .governance-card-head .badge.warning{background:var(--color-warning-soft);}
.governance-primary{display:flex;flex-direction:column;gap:2px;}
.governance-primary .insight-value{margin:0;}
.governance-primary small{color:var(--color-text-secondary);font-size:var(--text-xs);line-height:18px;}
.governance-secondary{margin:0;}
.governance-basis summary{cursor:pointer;color:var(--color-primary);font-size:var(--text-sm);}
.governance-basis[open]>*:not(summary){margin-top:8px;}
.insight-card .governance-basis p{font-size:var(--text-sm);line-height:var(--line-sm);color:var(--color-text-secondary);}
#governance-summary .governance-scope{margin:0 0 4px;font-size:var(--text-sm);color:var(--color-text);}
.health-asof{grid-column:1/-1;margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);}
.info-tip{position:relative;}
.info-tip>summary{list-style:none;cursor:pointer;color:var(--color-text-tertiary);font-size:var(--text-md);line-height:1;}
.info-tip>summary::-webkit-details-marker{display:none;}
.info-tip>summary::before{display:none!important;}
.info-tip[open]>p{position:absolute;right:0;top:22px;z-index:5;width:240px;margin:0;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);box-shadow:var(--shadow-dialog);color:var(--color-text);font-size:var(--text-xs);line-height:18px;}
.health-table .insight-table th:first-child,.health-table .insight-table td:first-child{position:sticky;left:0;z-index:1;background:var(--color-surface);box-shadow:1px 0 0 var(--color-border-light);}
.health-table .insight-table thead th:first-child{background:var(--color-surface-muted);}
.health-group-row th{text-align:left;color:var(--color-text-tertiary);font-size:var(--text-xs);font-weight:500;border-bottom:0;}
.health-group-row th+th{border-left:1px solid var(--color-border-light);}
.health-more{display:none;}
.asset-summary{margin:0 0 16px;}
.asset-summary .asset-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 8px;}
.asset-summary .asset-metrics strong{font-size:var(--text-xl);line-height:28px;}
#audit-filters{margin:0 0 12px;}
/* Personal space first run: one start card and two compact summaries. */
:root[data-onboarding=personal] #overview-usage-content,:root[data-onboarding=personal] #personal-cloud-quota{display:none;}
.personal-start h2{margin:0 0 4px;font-size:var(--text-xl);line-height:28px;}
.personal-start-lead{margin:0 0 20px;color:var(--color-text-secondary);}
.start-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 20px;padding:0;list-style:none;counter-reset:start-step;}
.start-steps li{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:16px 16px 16px 52px;border:1px solid var(--color-border-light);border-radius:var(--radius-card);background:var(--color-surface);counter-increment:start-step;}
.start-steps li::before{content:counter(start-step);position:absolute;left:16px;top:16px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600;}
.start-steps li[aria-current=step]{border-color:var(--color-primary);background:var(--color-primary-soft);}
.start-steps li[aria-current=step]::before{background:var(--color-primary);color:#fff;}
.start-steps li.done::before{content:"✓";background:var(--color-success-soft);color:#239115;}
.start-steps span{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--line-sm);}
.start-steps button{margin-top:4px;}
.personal-start-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.personal-start-summary article{display:flex;flex-direction:column;gap:4px;min-height:96px;padding:16px;border-radius:var(--radius-card);background:var(--color-surface-muted);}
.personal-start-summary small{color:var(--color-text-secondary);font-size:var(--text-xs);}
.personal-start-summary strong{font-size:var(--text-lg);line-height:var(--line-lg);}
.personal-start-summary span{color:var(--color-text-secondary);font-size:var(--text-sm);}
@media (max-width:800px){
  .start-steps,.personal-start-summary{grid-template-columns:1fr;}
  .asset-summary .asset-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}
  .health-group-row{display:none;}
  .health-table .insight-table-wrap{overflow:visible;border:0;}
  .health-table .insight-table,.health-table .insight-table tbody{display:block;}
  .health-table .insight-table thead{display:none;}
  .health-table .insight-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px;margin-bottom:12px;padding:var(--space-4) var(--space-4);border:1px solid var(--color-border-light);border-radius:var(--radius-card);background:var(--color-surface);}
  .health-table .insight-table td{display:flex;flex-direction:column;gap:2px;padding:0;border:0;text-align:left;white-space:normal;overflow-wrap:anywhere;font-size:var(--text-md);}
  .health-table .insight-table td::before{content:attr(data-label);color:var(--color-text-tertiary);font-size:var(--text-xs);line-height:18px;}
  .health-table .insight-table td:first-child{grid-column:1/-1;position:static;box-shadow:none;font-weight:600;}
  .health-table .insight-table td:first-child::before{display:none;}
  .health-table .insight-table td.health-extra{display:none;}
  .health-table .insight-table tr.expanded td.health-extra{display:flex;}
  .health-table .insight-table td.health-more{display:block;grid-column:1/-1;}
  .health-table .insight-table td.health-more::before{display:none;}
}
.settings-status{margin:0 0 12px;}
.settings-status .error-text{margin:0 0 var(--space-2);}
.tech-note{margin:4px 0 0;font-size:var(--text-sm);}
.tech-note>summary{cursor:pointer;color:var(--color-text-secondary);}
.tech-note code{display:block;margin:var(--space-2) 0;padding:var(--space-2) var(--space-2);border-radius:var(--radius-control);background:var(--color-surface-muted);font-family:var(--font-mono);font-size:var(--text-xs);overflow-wrap:anywhere;white-space:pre-wrap;}
.status-info{margin:8px 0;padding:var(--space-2) var(--space-4);border-radius:var(--radius-control);background:var(--color-primary-soft);color:var(--color-text);}
.setup-state{margin:4px 0 8px;font-weight:500;}
.setup-guide>summary{cursor:pointer;color:var(--color-primary);margin:8px 0;}
.setup-steps{display:grid;gap:16px;margin:12px 0 0;padding-left:var(--space-6);font-size:var(--text-md);line-height:var(--line-md);}
.setup-steps li>*{display:block;margin-top:var(--space-2);}
.setup-steps li>strong{margin-top:0;font-weight:500;}
.setup-help{color:var(--color-text-secondary);font-size:var(--text-sm);}
.setup-steps .code-field{display:flex;align-items:center;gap:8px;max-width:640px;}
.code-field code,.code-field input{flex:1;min-width:0;padding:var(--space-2) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-muted);font-family:var(--font-mono);font-size:var(--text-sm);overflow-wrap:anywhere;}
.advanced-access>summary{cursor:pointer;font-size:var(--text-lg);font-weight:600;}
.advanced-block{padding:16px 0;border-top:1px solid var(--color-border-light);}
.advanced-access>p{margin-bottom:12px;}
.advanced-block h3{margin:0 0 4px;font-size:var(--text-md);}
/* end settings */
.devices-card #device-status-note:not(:empty){margin:0 0 var(--space-4);}

/* Responsive */
@media (min-width:801px){
  #report-rows .rank-row{column-gap:16px;grid-template-columns:24px minmax(210px,1.2fr) minmax(120px,.8fr) minmax(180px,.8fr);}
  #report-rows .rank-identity{align-self:center;}
  #report-rows .rank-figures{grid-column:4;grid-row:1/3;}
  #report-rows .row-note{grid-column:2/4;grid-row:2;}
  #members>.list-row{flex-direction:row;}
}
@media (max-width:1100px){
  .overview-charts{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);}
  .metric strong{font-size:27px;}
  #feishu-fields{grid-template-columns:1fr;}
  .header-actions{gap:8px;}
  .rank-row{grid-template-columns:20px minmax(160px,1fr) minmax(70px,.6fr) minmax(120px,.8fr);gap:12px;}
  .rank-figures>button:first-child{font-size:16px;}
  .subscription-cards{grid-template-columns:repeat(2,minmax(0,1fr));}
  .metric strong,.metric-value{font-size:25px;}
  .metrics{gap:var(--space-2);padding:16px;}
  .overview-grid{grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);}
  .overview-table{min-width:570px;}
  .usage-headline{gap:8px;}
  .usage-context{padding-left:12px;margin-left:0;}
  .usage-headline .metric-value{font-size:30px;}
  .overview-secondary{grid-template-columns:1fr;}
  main{padding:0 24px 40px;}
  header{margin:0 -24px 20px;padding:16px 24px;}
}
@media (max-width:800px){
  .workspace-label,.aside-bottom p{display:none;}
  aside select,#local-label{margin:0;}
  .aside-bottom{display:none;}
  .metric strong{font-size:23px;}
  .metric>span{font-size:12px;}
  .metric small{font-size:10px;}
  .list-row{align-items:start;}
  .list-row button{font-size:12px;padding:var(--space-2);}
  #models .bar-row{grid-template-columns:1fr;gap:12px;}
  .login{margin:var(--space-4) auto;padding:24px;}
  form button{white-space:normal;}
  #local-sync label{font-size:12px;}
  .metric{padding:16px 8px;min-height:65px;}
  .overview-charts{gap:0;grid-template-columns:1fr;}
  .subscription-cards{grid-template-columns:1fr;}
  .rank-row{grid-template-columns:18px minmax(130px,1fr) minmax(110px,.8fr);gap:12px;padding:16px 0;}
  .rank-row>.stack{grid-column:2/-1;grid-row:2;}
  .rank-figures{grid-column:3;grid-row:1;}
  .row-note{grid-row:3;}
  .price-button{grid-column:3;}
  .rank-identity{gap:8px;}
  .avatar{width:32px;height:32px;}
  .badges{margin:4px 0 0;display:flex;}
  .rank-figures>button:first-child{font-size:15px;}
  .filter-row input{width:135px;}
  .cost-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .metrics .metric small{font-size:10px;}
  .header-actions{justify-content:space-between;width:100%;}
  .workspace-avatar{width:40px;height:40px;}
  .price-detail h3{font-size:14px;overflow-wrap:anywhere;}
  .mapping-row select{min-width:120px;max-width:100%;}
  .pagination{gap:12px;}
  .day-value{font-size:10px;}
  .insight-grid{grid-template-columns:1fr;}
  .insight-table th,.insight-table td{padding:var(--space-3) var(--space-2) var(--space-3) 0;}
  .subscription-row{grid-template-columns:18px minmax(130px,1fr) minmax(120px,.8fr);}
  .subscription-row .rank-identity .badge{margin:var(--space-1) 0 0;display:flex;}
  .subscription-row .rank-figures{grid-column:3;grid-row:1;}
  .subscription-row .rank-figures>button:first-child{font-size:14px;}
  .workspace-heading h1{font-size:20px;}
  .fresh{padding:0 20px;margin-left:0;flex-wrap:wrap;}
  #data-filters{align-items:start;padding:12px 20px;gap:8px;}
  #data-help{margin-left:auto;}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);padding-top:12px;}
  .trend{height:232px;}
  .trend-panel .trend{gap:4px;}
  .trend-panel .day{min-width:0;}
  aside>.workspace-avatar{top:16px;left:20px;}
  aside select{padding:var(--space-2);margin:0;}
  .overview-grid{grid-template-columns:1fr;}
  .usage-headline .metric-value{font-size:32px;}
  .usage-context{padding-left:var(--space-4);}
  .overview-table{min-width:570px;}
  .overview-secondary .rank-row{grid-template-columns:20px minmax(100px,1fr) minmax(40px,.4fr) minmax(105px,.8fr);}
  .connection-strip{gap:var(--space-2);}
  #scope-note{order:3;width:100%;}
  #data-filters .fresh{margin:0;}
  #data-filters #data-help{margin-left:0;}
  .tab-row button{padding:var(--space-2) var(--space-2);font-size:13px;}
  #members>.list-row{align-items:flex-start;}
  #members>.list-row>.member-permissions{align-self:flex-end;}
  .section-head{flex-wrap:wrap;}
  .rank-row .row-note{grid-column:2/-1;}
  .advanced-filters .filter-row>label{flex:1;min-width:120px;}
  .settings-jumps{gap:16px;flex-wrap:nowrap;overflow-x:auto;margin-bottom:16px;}
  .price-history>summary{flex-wrap:wrap;gap:8px;}
  #report-filters>label{flex:1 1 calc(50% - 12px);min-width:0;}
  #report-filters>label:has([name=q]){max-width:none;flex-basis:100%;flex:1 1 100%;}
  #report-filters>label>input{width:100%;}
  #member-search{min-width:0;width:100%;}
  .price-summary-rates{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));text-align:left;}
  .price-history>summary>.rank-identity{flex-basis:100%;flex-wrap:wrap;}
  .mobile-filter-toggle{display:block;margin:12px 0;}
  .mobile-filter-toggle[aria-expanded=false]+form{display:none;}
  .tab-row{gap:var(--space-4);mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 12px),transparent);padding-right:16px;scroll-padding-inline:16px;}
  .shell{display:block;background:var(--color-canvas);}
  aside{border-right:0;position:relative;width:100%;height:auto;padding:12px 16px;border:0;border-bottom:1px solid var(--color-border-light);display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,auto);gap:var(--space-2);}
  .brand{margin-left:44px;padding:0;}
  .brand-mark{width:26px;height:26px;}
  .workspace-switcher{margin:0;}
  .workspace-label,.nav-section,.aside-bottom{display:none;}
  .mobile-nav-toggle{width:100%;text-align:left;margin-top:8px;display:block;grid-column:1/-1;margin:0;}
  .mobile-nav-toggle[aria-expanded=false]~nav{display:none;}
  .mobile-nav-toggle[aria-expanded=true]~nav{overflow:visible;gap:4px;display:grid;grid-template-columns:1fr 1fr;grid-column:1/-1;margin:0;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);}
  main{width:100%;margin:0;padding:0 20px 20px;}
  header{flex-direction:column;gap:16px;align-items:flex-start;margin:0 -20px 20px;padding:16px 20px;}
  .overview-column{display:contents;}
  .trend-panel{order:1;}
  .overview-spending{gap:0;order:2;}
  .overview-people{order:3;}
  #subscription-overview{order:4;}
}
@media (max-width:640px){
  .member-permissions[open] form{grid-template-columns:1fr;}
  .member-permissions[open] form>button{width:100%;}
}
@media (max-width:600px){
  .source-detail{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);column-gap:16px;}
  .source-detail dt{overflow-wrap:anywhere;}
}
@media (max-width:520px){
  .login{padding:28px 24px;}
  .login h1{font-size:25px;}
  #members .list-row{flex-direction:column;align-items:stretch;gap:12px;}
  #members .rank-identity{width:100%;}
  .member-role-controls{justify-content:flex-start;padding-left:44px;}
  aside{grid-template-columns:1fr;}
  .workspace-switcher{display:none;}
  .header-actions{width:auto;}
  .header-actions>button{display:none;}
  .period select{min-width:108px;}
  .tab-row{gap:var(--space-4);}
  .insight-table td,.overview-table td{max-width:220px;}
}
@media (max-width:480px){
  #report-rows .rank-row{grid-template-columns:18px minmax(0,1fr);}
  #report-rows .rank-figures{grid-column:2;grid-row:auto;min-width:0;}
  #report-rows .rank-row>.stack{grid-column:2;grid-row:auto;}
  #report-rows .rank-figures button{white-space:normal;text-align:left;overflow-wrap:anywhere;}
  header{flex-direction:row;gap:var(--space-2);margin-bottom:12px;}
  header>div:first-child{min-width:0;}
  header .header-actions{width:auto;flex-shrink:0;}
  .tool-legend{column-gap:var(--space-4);row-gap:var(--space-2);margin-bottom:8px;}
  #report-state:not(:empty){padding:var(--space-2) 0;}
  #report-state p{margin:4px 0 8px;font-size:12px;}
  :is(#source-spending,[data-page=records]:has(#snapshot-table option[value=subscriptions]:checked) #snapshot-rows) .insight-table-wrap::before{content:"↔ 左右滑动，查看完整表格";display:block;position:sticky;left:0;width:fit-content;max-width:100%;margin-bottom:8px;padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--muted);font-size:12px;line-height:18px;}
}
@media (max-width:420px){
  .metrics{grid-template-columns:1fr;}
  .metric{min-height:95px;}
  .period button{padding:var(--space-2) var(--space-2);}
  .header-actions>button{padding:var(--space-2) var(--space-2);}
  main{padding:var(--space-4);}
  .usage-headline{flex-wrap:wrap;}
  .usage-context{font-size:11px;}
  .overview-secondary .rank-row{grid-template-columns:18px minmax(0,1fr) minmax(105px,.8fr);}
  .overview-secondary .rank-row>.stack{grid-column:2;grid-row:2;}
  .overview-secondary .rank-figures{grid-column:3;grid-row:1/3;}
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme=light]){color-scheme:dark;--bg:#18191c;--panel:#232428;--ink:#ebebed;--muted:#b0b3b8;--line:#404247;--brand:#6997ff;--soft:#273553;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;}
}
@media (max-width:1100px){
  .shell main{padding:0 24px 40px;}
  header{margin:0 -24px 20px;padding:8px 24px;}
  .seat-metrics{gap:12px;}
  .metric-card{padding:var(--space-4);}
  #seat-quota-rows .insight-table{min-width:0;table-layout:fixed;}
  #seat-quota-rows :is(th,td){padding-right:8px;padding-left:8px;}
  #seat-quota-rows :is(th,td):nth-child(1){width:20%;}
  #seat-quota-rows :is(th,td):nth-child(2){width:16%;}
  #seat-quota-rows :is(th,td):nth-child(3){width:21%;}
  #seat-quota-rows :is(th,td):nth-child(4){width:10%;}
  #seat-quota-rows :is(th,td):nth-child(5){width:20%;}
  #seat-quota-rows :is(th,td):nth-child(6){width:13%;}
  .seat-member{min-width:0;gap:var(--space-2);}
  .seat-usage{grid-template-columns:minmax(38px,1fr) 34px;min-width:0;gap:var(--space-2);}
}
@media (max-width:800px){
  .shell main{width:100%;margin:0;padding:0 20px 24px;}
  header{margin:0 -20px 20px;padding:12px 20px;}
  #notice:not(:empty){top:16px;right:16px;width:calc(100vw - 32px);}
  .seat-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}
  .overview-zero-main{grid-template-columns:1fr;}
  .seat-policy-toolbar,.seat-table-toolbar{align-items:flex-start;flex-wrap:wrap;}
  .seat-policy-toolbar #seat-quota-status,.seat-table-toolbar #seat-filter-count{width:100%;margin-left:0;}
  .summary-seat-row{grid-template-columns:1fr;gap:var(--space-2);}
}
@media (max-width:520px){
  .seat-metrics{grid-template-columns:1fr;}
  .metric-card{min-height:112px;}
  .seat-main-card>.section-head,.seat-policy-toolbar,.seat-table-toolbar,#seat-quota-rows{padding-left:16px;padding-right:16px;}
  .threshold-field{width:100%;padding:12px 0 0;border-top:1px solid var(--color-border);border-left:0;}
  .summary-metrics{grid-template-columns:1fr;}
  .overview-device-row{grid-template-columns:1fr 1fr;}
}

/* mt-self-signup: platform signup and target-label email verification (reuses the signed-out .login card). */
.signed-out .login.signup{max-width:560px;}
.signup-steps{display:flex;gap:8px;margin:20px 0 24px;padding:0;list-style:none;counter-reset:step;}
.signup-steps li{flex:1;display:flex;align-items:center;gap:8px;padding:var(--space-2) var(--space-2);border-radius:var(--radius-control);background:var(--color-surface-muted);color:var(--color-text-tertiary);font-size:var(--text-sm);counter-increment:step;}
.signup-steps li::before{content:counter(step);display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--color-border);color:var(--color-surface);font-size:12px;font-weight:600;flex:none;}
.signup-steps li[aria-current=step]{background:var(--color-primary-soft);color:var(--color-primary);font-weight:500;}
.signup-steps li[aria-current=step]::before,.signup-steps li.done::before{background:var(--color-primary);}
.signup-steps li.done{color:var(--color-text-secondary);}
.signup form{display:grid;gap:16px;}
.signup label{min-width:0;color:var(--color-text);font-weight:500;}
.signup label small{color:var(--color-text-tertiary);font-weight:400;font-size:var(--text-xs);line-height:18px;}
.signup-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.signup-address{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--panel);overflow:hidden;}
.signup-address:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-soft);}
.signup-address input{flex:1;min-width:0;border:0;border-radius:0;box-shadow:none;}
.signup-address input:focus{outline:none;box-shadow:none;}
.signup-suffix{display:flex;align-items:center;padding:0 12px;background:var(--color-surface-muted);border-left:1px solid var(--line);color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap;}
.signup button[type=submit]{min-height:44px;font-size:15px;}
.signup #signup-sent{margin:0;color:var(--color-text-secondary);}
.signup .signup-resend{margin:0;font-size:12px;}
.signup #signup-done .primary-link{display:block;text-align:center;padding:var(--space-3) var(--space-3);background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-size:15px;}
.signup #signup-status:empty{display:none;}
.signup-entry{margin:12px 0 0;font-size:13px;text-align:center;}
@media (max-width:560px){.signup-row{grid-template-columns:1fr;}.signup-steps li{font-size:12px;padding:var(--space-2) var(--space-2);}}
/* uiux-c: 投入与席位 / 席位利用率 / 项目与代码 / 来源记录 */
.grouped-form{display:grid;gap:24px;margin:16px 0 0;}
.grouped-form .form-group{display:grid;align-items:start;grid-template-columns:repeat(auto-fit,minmax(max(240px,calc((100% - 48px) / 3)),1fr));gap:16px 24px;margin:0;padding:20px 24px 24px;border:1px solid var(--color-border-light);border-radius:var(--radius-card);background:var(--color-surface);}
.grouped-form legend{display:inline-flex;align-items:center;gap:8px;padding:0 8px;color:var(--color-text);font-size:var(--text-lg);font-weight:600;line-height:var(--line-lg);}
.grouped-form label{min-width:0;align-content:start;gap:var(--space-2);color:var(--color-text);font-size:var(--text-md);line-height:var(--line-md);}
.grouped-form label.check{grid-column:1/-1;}
.grouped-form :is(input,select){width:100%;min-height:40px;}
.grouped-form .field-hint{color:var(--color-text-secondary);font-size:var(--text-xs);line-height:18px;}
.grouped-form .form-note{grid-column:1/-1;margin:0;color:var(--color-text-secondary);font-size:var(--text-xs);line-height:18px;}
.grouped-form .form-actions{display:flex;flex-wrap:wrap;gap:12px;}
.grouped-form .optional-group,.grouped-form .allocation-block{grid-column:1/-1;margin:0;}
.optional-group>summary{font-size:var(--text-sm);}
.optional-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(max(220px,calc((100% - 48px) / 3)),1fr));gap:16px 24px;}
.allocation-block h4{margin:0 0 4px;font-size:var(--text-md);}
.allocation-block #finance-allocations .filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:end;margin:12px 0;}
.step-index{display:inline-grid;width:20px;height:20px;place-items:center;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--text-xs);font-weight:600;}
.fx-input,.money-input{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap;}
.fx-input input,.money-input input{flex:1;min-width:0;}
.money-input .currency-suffix{min-width:32px;color:var(--color-text-secondary);}
.finance-steps{display:flex;flex-wrap:wrap;gap:8px 0;margin:8px 0 16px;padding:0;list-style:none;}
.finance-steps li{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary);font-size:var(--text-md);}
.finance-steps li+li::before{content:"";width:40px;height:1px;margin:0 12px;background:var(--color-border);}
.finance-steps li>span{display:inline-grid;width:24px;height:24px;place-items:center;border:1px solid var(--color-border);border-radius:50%;font-size:var(--text-xs);}
.finance-steps li.current{color:var(--color-text);font-weight:600;}
.finance-steps li.current>span{border-color:var(--color-primary);background:var(--color-primary);color:#fff;}
.finance-steps li.done>span{border-color:var(--color-primary);color:var(--color-primary);}
.finance-headline{margin:0 0 4px;color:var(--color-text);font-weight:500;}
#finance-status .muted{margin:0;font-size:var(--text-xs);line-height:18px;}
.metric-unit{margin:16px 0 4px;font-size:var(--text-xs);}
.finance-metrics .metric-reason{display:block;margin-top:4px;color:var(--color-text-secondary);font-size:var(--text-xs);line-height:18px;}
#finance-entries td:nth-child(n+3):not(:last-child),#finance-entries th:nth-child(n+3):not(:last-child){text-align:right;font-variant-numeric:tabular-nums;}
.pricing-tools{display:flex;flex-wrap:wrap;align-items:end;gap:12px 16px;margin:16px 0 8px;}
.pricing-search{flex:0 1 320px;min-width:200px;gap:var(--space-2);color:var(--color-text);}
.filter-chips{display:flex;flex-wrap:wrap;gap:8px;}
.filter-chips .chip{min-height:28px;padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);color:var(--color-text);font-weight:400;}
.filter-chips .chip:hover{border-color:var(--color-primary);background:var(--color-surface);color:var(--color-primary);}
.filter-chips .chip.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary);}
#pricing-count{margin-left:auto;font-size:var(--text-xs);}
.price-history>summary{display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,auto) auto;gap:16px;}
.price-identity{align-items:center;}
.price-names{display:grid;min-width:0;}
.price-names strong{overflow:hidden;font-size:var(--text-md);font-weight:500;text-overflow:ellipsis;white-space:nowrap;}
.price-raw-id{overflow:hidden;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:400;line-height:18px;text-overflow:ellipsis;white-space:nowrap;}
.price-source{justify-content:center;width:56px;font-size:var(--text-xs);}
.price-source-official{background:var(--color-success-soft);color:#237804;}
.price-source-manual{background:var(--color-primary-soft);color:var(--color-primary);}
.price-detail .price-group{margin-top:24px;}
.price-detail .price-group h4{margin:0 0 8px;color:var(--color-text);font-size:var(--text-md);font-weight:600;}
.price-detail .price-group p{margin:4px 0;font-size:var(--text-sm);line-height:var(--line-sm);color:var(--color-text-secondary);}
.price-modes{overflow-x:auto;border:1px solid var(--color-border-light);border-radius:var(--radius-card);}
.price-mode-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);}
.price-mode-table :is(th,td){padding:8px 12px;border-bottom:1px solid var(--color-border-light);text-align:left;white-space:nowrap;}
.price-mode-table th{background:var(--color-surface-muted);color:var(--color-text-secondary);font-weight:500;}
.price-mode-table td.numeric{text-align:right;font-variant-numeric:tabular-nums;}
.price-mode-table tr:last-child td{border-bottom:0;}
.feishu-empty{display:grid;justify-items:start;gap:8px;margin:16px 0;padding:24px;border:1px dashed var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-muted);}
.feishu-empty h3{margin:0;font-size:var(--text-lg);line-height:var(--line-lg);}
.feishu-empty p{margin:0;color:var(--color-text-secondary);}
.feishu-toc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:0;list-style:none;}
.feishu-toc li{padding:2px var(--space-2);border-radius:4px;background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-sm);}
.feishu-block{margin-top:24px;}
.feishu-block h3{margin:0 0 12px;}
.feishu-block .empty{min-height:96px;padding:16px;}
.feishu-block .empty::before{display:none;}
.input-tabs{display:flex;width:fit-content;margin:16px 0 0;padding:2px;border-radius:var(--radius-control);background:var(--color-surface-muted);}
.input-tabs button{min-height:28px;padding:var(--space-1) var(--space-4);border:0;background:transparent;color:var(--color-text-secondary);font-weight:400;}
.input-tabs button:hover{background:transparent;color:var(--color-text);}
.input-tabs button.active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-card);}
.input-pane{margin:12px 0;}
.replace-notice{margin:16px 0 8px;padding:8px 12px;border-left:3px solid var(--color-warning);border-radius:4px;background:var(--color-warning-soft);color:var(--color-text);font-size:var(--text-md);}
#feishu-import-form .check{display:flex;align-items:flex-start;gap:8px;color:var(--color-text);}
.seat-head-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px;}
.seat-head-actions #seat-quota-status{color:var(--color-text-secondary);font-size:var(--text-xs);}
#seat-policy-toggle.active{border-color:var(--color-primary);color:var(--color-primary);}
.seat-policy-toolbar{flex-wrap:wrap;}
.seat-policy-note{flex-basis:100%;margin:0;color:var(--color-text-secondary);font-size:var(--text-xs);line-height:18px;}
#seat-policy-empty button{margin-top:8px;}
.seat-stale{display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap;}
.seat-stale-time{color:var(--color-text-secondary);font-size:var(--text-xs);}
#seat-quota-rows .insight-table{min-width:990px;}
#seat-quota-rows :is(th,td):nth-child(1){min-width:120px;}
#seat-quota-rows :is(th,td):nth-child(2){min-width:140px;}
#seat-quota-rows :is(th,td):nth-child(3){min-width:180px;}
#seat-quota-rows :is(th,td):nth-child(4){min-width:150px;}
#seat-quota-rows :is(th,td):nth-child(5){min-width:140px;}
#seat-quota-rows :is(th,td):nth-child(6),#seat-quota-rows :is(th,td):nth-child(7){min-width:120px;}
.seat-cards{display:none;}
.project-jumps{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;}
.project-jumps a{display:inline-flex;align-items:center;min-height:32px;padding:var(--space-1) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);text-decoration:none;}
.project-jumps a:hover{border-color:var(--color-primary);color:var(--color-primary);}
.project-block{scroll-margin-top:16px;}
.project-block .section-head p{margin:4px 0 0;}
.block-scope{color:var(--color-text-secondary);font-size:var(--text-xs);line-height:18px;}
.project-block .empty{min-height:120px;padding:16px;}
.import-panel>summary{color:var(--color-text);font-weight:500;}
.field-notes{margin:8px 0;padding-left:20px;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--line-sm);}
.field-notes li+li{margin-top:4px;}
.records-empty{display:grid;justify-items:center;gap:8px;margin:24px 0;padding:40px 24px;border:1px dashed var(--color-border);border-radius:var(--radius-card);text-align:center;}
.records-empty h3{margin:0;font-size:var(--text-lg);}
.records-empty p{margin:0;color:var(--color-text-secondary);}
@media (max-width:767px){
  .grouped-form .form-group,.optional-fields{grid-template-columns:1fr;gap:16px;}
  .grouped-form .form-group{padding:16px;}
  .grouped-form :is(input,select),#feishu-import-form :is(input,select),#project-import-form :is(input,select),.pricing-search input{min-height:44px;}
  .grouped-form .form-actions button{min-height:44px;flex:1;}
  .finance-steps{display:grid;gap:8px;}
  .finance-steps li+li::before{display:none;}
  .price-history>summary{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;}
  .price-history>summary .price-summary-rates{grid-column:1/-1;}
  .price-history>summary>.muted{display:none;}
  .pricing-search{flex-basis:100%;}
  #pricing-count{margin-left:0;}
  .input-tabs{display:flex;}
  .input-tabs button{flex:1;min-height:40px;}
  .seat-main-card>.section-head{flex-direction:column;align-items:stretch;gap:12px;padding:16px;}
  .seat-head-actions{justify-content:flex-start;}
  .input-tabs{width:auto;}
  #seat-quota-rows{padding:0 16px 16px;}
  #seat-quota-rows .insight-table-wrap{display:none;}
  .seat-cards{display:grid;gap:12px;}
  .seat-card{display:grid;gap:var(--space-2);padding:var(--space-4) var(--space-4);border:1px solid var(--color-border-light);border-radius:var(--radius-card);background:var(--color-surface);}
  .seat-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;}
  .seat-card-head strong{font-size:var(--text-md);}
  .seat-card-account{min-width:0;color:var(--color-text-secondary);font-size:var(--text-xs);overflow-wrap:anywhere;}
  .seat-card-head .badge{margin-left:auto;}
  .seat-card-usage{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;}
  .seat-card-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;color:var(--color-text-secondary);font-size:var(--text-sm);}
  .seat-card-more{margin:0;}
  .seat-card-more>summary{min-height:32px;display:flex;align-items:center;font-size:var(--text-sm);}
  .seat-card-more p{margin:4px 0;color:var(--color-text-secondary);font-size:var(--text-xs);}
  .seat-table-toolbar{flex-wrap:wrap;padding:12px 16px;}
  .seat-table-toolbar label{flex:1 1 140px;}
  .seat-table-toolbar #seat-filter-count{margin-left:0;flex-basis:100%;}
  .project-jumps a{flex:1;justify-content:center;min-height:44px;}
}

/* UI/UX A: shell, mobile header and drawer, tabs, hit areas, contrast, dialogs. */
:root{--color-text-tertiary:#6b7079;--color-icon-tertiary:#8f959e;--color-link:#245bdb;--mobile-bar-height:56px;--hit-target:44px;}
:root[data-theme=dark]{--color-text-tertiary:#8f959e;--color-icon-tertiary:#6f747c;--color-link:#7aa2ff;}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-text-tertiary:#8f959e;--color-icon-tertiary:#6f747c;--color-link:#7aa2ff;}}
main a:not([class]),main .link-button:not(.muted){color:var(--color-link);}
.empty{color:var(--color-text-secondary);font-size:14px;line-height:22px;}
.empty::before{color:var(--color-icon-tertiary);}
.status-dot{background:var(--color-icon-tertiary);}
.workspace-switcher:has(#workspace:not([hidden]))::after{border-color:var(--color-icon-tertiary);}
:is(footer,.workspace-label,.workspace-switcher #bound-workspace,.workspace-heading .eyebrow,.nav-section,.badge,.tag,.filter-row label,.rank-identity small,.rank-figures small,.rank-figures .muted,.row-note,.rank-row .row-note,.tool-legend,.cost-grid small,.fresh,.metric small,.metrics .metric small,.usage-context,.cost-explanation,.overview-footnote,.subscription-card small,.role-tag,.directory-state,.member-toolbar>label,.seat-table-toolbar label,.seat-member small,.summary-metrics span){font-size:12px;}
:is(footer,.row-note,.rank-row .row-note,.cost-explanation,.overview-footnote){line-height:18px;}

/* Desktop keeps the fixed sidebar; the drawer wrapper is transparent to its layout. */
.mobile-bar{display:none;}
.nav-drawer{display:contents;}
.nav-backdrop{display:none;}

/* Tabs: 44px targets, visible overflow hint, selected tab scrolled into view by app.js. */
.tab-row{--tab-gap:24px;gap:var(--tab-gap);padding-inline:0;scroll-padding-inline:0;scrollbar-width:none;mask-image:none;}
.tab-row::-webkit-scrollbar{display:none;}
.tab-row button{min-height:44px;}
.tab-row.more-after::after,.tab-row.more-before::before{content:"›";position:sticky;right:0;z-index:1;display:flex;flex:none;align-items:center;justify-content:flex-end;width:32px;margin-left:calc(-32px - var(--tab-gap));background:linear-gradient(to right,transparent,var(--color-canvas) 45%);color:var(--color-text-secondary);font-size:18px;pointer-events:none;}
.tab-row.more-before::before{content:"‹";order:-1;right:auto;left:0;justify-content:flex-start;margin:0 calc(-32px - var(--tab-gap)) 0 0;background:linear-gradient(to left,transparent,var(--color-canvas) 45%);}

/* Dialogs: locked page, sticky header, one scrolling body. */
html:has(dialog[open]){overflow:hidden;}
dialog{max-height:calc(100dvh - 64px);overflow:hidden;padding:0;}
dialog[open]{display:flex;flex-direction:column;}
dialog>.section-head{position:sticky;top:0;flex:none;min-height:56px;margin:0;padding:8px 16px 8px 24px;}
dialog>#detail-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px 24px 24px;}
.price-basis-group{margin:12px 0 20px;}
.price-basis-group h4{margin:0 0 8px;color:var(--color-text-secondary);font-size:13px;font-weight:500;line-height:20px;}
.price-basis-list{border:1px solid var(--color-border-light);border-radius:var(--radius-card);}
.price-basis-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;row-gap:2px;padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border-light);}
.price-basis-row:first-child{border-top:0;}
.price-basis-row strong{min-width:0;font-weight:500;overflow-wrap:anywhere;}
.price-basis-amount{color:var(--color-text);font-variant-numeric:tabular-nums;text-align:right;}
.price-basis-row small{grid-column:1/-1;color:var(--color-text-secondary);font-size:12px;line-height:18px;}
.price-basis-note{margin:8px 0;font-size:12px;line-height:18px;}
.price-basis-detail>summary{font-size:13px;}
.missing-info ul{margin:4px 0 8px;padding-left:20px;color:var(--color-text);}
.missing-info li{margin:2px 0;line-height:22px;}
.tech-details>summary{color:var(--color-text-secondary);font-size:13px;}
.tech-details pre{margin:8px 0 0;padding:8px 12px;border-radius:var(--radius-control);background:var(--color-surface-muted);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:12px;line-height:18px;white-space:pre-wrap;overflow-wrap:anywhere;}
.record-ids h3{margin:16px 0 8px;}
.record-id{display:flex;align-items:center;gap:8px;margin:var(--space-2) 0;}
.record-id-label{flex:none;min-width:56px;color:var(--color-text-secondary);font-size:12px;line-height:18px;}
.record-id code{flex:1;min-width:0;padding:var(--space-2) var(--space-2);border-radius:var(--radius-control);background:var(--color-surface-muted);font-family:var(--font-mono);font-size:12px;line-height:18px;overflow-wrap:anywhere;}
.enroll-target{margin:4px 0 12px;padding:8px 12px;border-radius:var(--radius-control);background:var(--color-primary-soft);color:var(--color-text);font-size:13px;line-height:20px;}
.enroll-target:empty{display:none;}

@media (max-width:800px),(pointer:coarse){
  main :is(button,.button-link,summary,select,input:not([type=checkbox],[type=radio],[type=range],[type=file])):not(.day,.square){min-height:var(--hit-target);}
  main .link-button:not(.day,.square,.tool-bar-label){min-height:var(--hit-target);padding-inline:8px;margin-inline:-8px;}
}
@media (max-width:800px){
  .tab-row{--tab-gap:var(--space-4);}
  .shell aside{position:fixed;inset:0 0 auto 0;z-index:60;display:block;width:100%;height:var(--mobile-bar-height);min-height:0;padding:0;border:0;border-bottom:1px solid var(--color-border-light);background:var(--color-surface);}
  .mobile-bar{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;height:100%;padding:0 var(--space-2);}
  .shell .mobile-nav-toggle{display:grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-text);grid-column:auto;}
  .mobile-nav-toggle::before,.mobile-nav-toggle::after{content:none;}
  .mobile-nav-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;}
  .mobile-page-title{overflow:hidden;color:var(--color-text);font-size:16px;font-weight:600;line-height:24px;text-align:center;text-overflow:ellipsis;white-space:nowrap;}
  .mobile-space{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;}
  .mobile-space .workspace-avatar{width:30px;height:30px;border-radius:8px;font-size:14px;}
  .nav-drawer{position:fixed;inset:0 auto 0 0;z-index:2;display:flex;flex-direction:column;width:min(300px,86vw);padding:16px 12px;background:var(--color-surface);box-shadow:var(--shadow-dialog);overflow-y:auto;overscroll-behavior:contain;transform:translateX(-105%);visibility:hidden;transition:transform var(--transition-fast),visibility 0s linear 150ms;}
  .nav-open .nav-drawer{transform:none;visibility:visible;transition:transform var(--transition-fast);}
  .nav-backdrop{position:fixed;inset:0;z-index:55;display:block;background:rgb(31 35 41 / 45%);}
  html.nav-open{overflow:hidden;}
  .nav-drawer .brand{margin-left:0;padding:0 8px;}
  .nav-drawer .workspace-switcher{display:grid;margin:16px 4px 8px;}
  .nav-drawer :is(.workspace-label,.nav-section,.aside-bottom p){display:block;}
  .nav-drawer .aside-bottom{display:grid;}
  .nav-drawer #main-navigation{display:flex;flex-direction:column;gap:2px;margin:8px 0 0;padding:0;border:0;}
  .nav-drawer #main-navigation button{height:44px;}
  .shell main{padding-top:var(--mobile-bar-height);}
  #notice:not(:empty){top:calc(var(--mobile-bar-height) + 8px);}
  dialog{width:min(760px,calc(100vw - 32px));max-width:calc(100vw - 32px);}
}
@media (max-width:640px){
  dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;}
  dialog>.section-head{height:56px;min-height:56px;padding:0 4px 0 16px;}
  dialog>#detail-body{padding:16px;}
  .settings-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible;border-bottom:0;}
  .settings-tabs::before,.settings-tabs::after{content:none!important;}
  .settings-tabs button{padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);text-align:center;}
  .settings-tabs button.active{border-color:var(--color-primary);background:var(--color-primary-soft);}
}

/* Kitcarry shell (saas-semi-shell): DESIGN.md 2026-10-15 tokens with Semi-style aliases, sidebar, N01, S01 states, H01. */
:root{--k-primary:#161823;--k-primary-hover:#2D303D;--k-surface:#FFFFFF;--k-subtle:#F2F3F5;--k-text:#1F2329;--k-muted:#646A73;--k-border:#DEE0E3;--k-divider:#ECEEF1;--k-chart-api:#25C7C2;--k-danger:#B42318;--k-success-bg:#EDF8F2;--k-success-text:#157347;--k-warning-bg:#FFF6E6;--k-warning-text:#8A5700;--k-error-bg:#FFF0F0;--k-canvas:#F5F6F7;--k-chart-subscription-history:#A9AFBA;--k-chart-api-history:#B9E9E6;--k-radius-control:7px;--k-radius-panel:12px;--k-radius-status:5px;--k-font:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --semi-color-primary:var(--k-primary);--semi-color-primary-hover:var(--k-primary-hover);--semi-color-bg-0:var(--k-surface);--semi-color-bg-1:var(--k-canvas);--semi-color-fill-0:var(--k-subtle);--semi-color-text-0:var(--k-text);--semi-color-text-2:var(--k-muted);--semi-color-border:var(--k-border);--semi-color-danger:var(--k-danger);--semi-color-success:var(--k-success-text);--semi-color-warning:var(--k-warning-text);--semi-border-radius-medium:var(--k-radius-control);
  --color-link:var(--k-primary);--shell-aside:240px;}
body{font-family:var(--k-font);color:var(--k-text);background:var(--k-canvas);}
html,.shell main{background:var(--k-canvas);}
/* Sidebar */
.shell{background:var(--k-canvas);}
/* The fixed sidebar is one viewport tall; paint its white column down the whole document so long pages and
   full-page captures never show canvas under it. */
@media (min-width:801px){.shell{min-height:100vh;background:linear-gradient(to right,var(--k-surface) var(--shell-aside),var(--k-canvas) var(--shell-aside));}}
.shell aside{width:var(--shell-aside);padding:16px;border-right:0;background:var(--k-surface);}
.shell main{width:calc(100% - var(--shell-aside));margin-left:var(--shell-aside);padding:0 var(--layout-page) 40px;}
#dashboard{max-width:1160px;margin:0;}
.brand{height:36px;margin:2px 0 0;padding:0 4px;gap:var(--space-2);font-size:22px;font-weight:700;line-height:30px;letter-spacing:0;}
.brand-mark{width:28px;height:28px;}
.workspace-switcher{position:relative;display:block;min-height:0;margin:24px 0 12px;padding:0;border:0;}
.workspace-switcher::after{content:none!important;}
.space-trigger{display:grid;grid-template-columns:28px minmax(0,1fr) 16px;gap:8px;align-items:center;width:100%;min-height:44px;padding:4px 8px;border:0;border-radius:var(--k-radius-control);background:transparent;color:var(--k-text);text-align:left;white-space:normal;}
.space-trigger:hover{background:var(--k-subtle);border-color:transparent;color:var(--k-text);}
.space-trigger:disabled{opacity:1;cursor:default;}
.space-trigger:disabled .space-chevron{display:none;}
.space-trigger .workspace-avatar{width:28px;height:28px;border-radius:var(--k-radius-control);background:var(--k-primary);font-size:14px;}
.space-text{display:grid;min-width:0;}
.space-text .workspace-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.space-text .workspace-name{color:var(--k-text);font-size:14px;font-weight:500;line-height:22px;-webkit-line-clamp:1;}
.space-role{color:var(--k-muted);font-size:12px;line-height:18px;}
.space-role:empty{display:none;}
.space-chevron{width:16px;height:16px;fill:none;stroke:var(--k-muted);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.workspace-switcher #workspace{display:none!important;}
.workspace-switcher #local-label,.workspace-switcher #bound-workspace{margin:4px 8px 0;color:var(--k-muted);font-size:12px;line-height:18px;}
.space-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:30;display:grid;gap:4px;width:248px;padding:12px;border:1px solid var(--k-border);border-radius:var(--k-radius-panel);background:var(--k-surface);box-shadow:0 8px 24px rgb(22 24 35 / 8%);}
.space-option{display:grid;justify-items:start;justify-content:stretch;gap:2px;width:100%;min-height:56px;padding:8px 12px;border:0;border-radius:var(--k-radius-control);background:transparent;color:var(--k-text);text-align:left;white-space:normal;}
.space-option strong{font-size:14px;font-weight:500;line-height:22px;overflow-wrap:anywhere;}
.space-option small{color:var(--k-muted);font-size:12px;line-height:18px;}
.space-option:hover,.space-option[aria-checked=true]{background:var(--k-subtle);border-color:transparent;color:var(--k-text);}
.space-option:focus-visible,.space-create:focus-visible{outline:2px solid var(--k-primary);outline-offset:0;}
.space-create{width:100%;margin-top:4px;}
.legacy-nav{display:none!important;}
.shell-modules{display:grid;gap:var(--space-2);}
#main-navigation{margin:0;}
#main-navigation .shell-module{position:relative;display:flex;align-items:center;gap:12px;width:100%;height:44px;padding:0 var(--space-4);border:0;border-radius:var(--k-radius-control);background:transparent;color:var(--k-muted);font-size:14px;font-weight:400;line-height:22px;}
#main-navigation .shell-module:hover{background:var(--k-subtle);color:var(--k-text);}
#main-navigation .shell-module.active{background:var(--k-primary);color:var(--k-surface);font-weight:500;}
#main-navigation .shell-module.active::before{content:none;}
#main-navigation .shell-module .nav-icon{width:16px;height:16px;}
.aside-bottom{gap:8px;padding:12px 0 0;border-top:0;}
.aside-bottom>p{padding-inline:var(--space-4);}
.source-status{display:flex;align-items:center;gap:8px;margin:0;color:var(--k-muted);font-size:12px;line-height:18px;}
.source-status::before{content:"";width:6px;height:6px;flex:none;border-radius:50%;background:var(--k-success-text);}
.shell-connect{width:100%;}
.shell-connect::before{content:"+";font-size:16px;line-height:1;}
.aside-bottom #account{margin:4px 0 0;color:var(--k-muted);}
/* Top bar, page header, sub-navigation */
.shell-topbar{display:flex;align-items:center;justify-content:space-between;height:64px;margin:0 calc(-1 * var(--layout-page)) var(--space-8);padding:0 var(--layout-page);background:var(--k-surface);}
.shell-breadcrumb{display:flex;flex-wrap:wrap;gap:var(--space-2);color:var(--k-muted);font-size:13px;line-height:20px;}
.crumb-current{color:var(--k-text);}
.topbar-avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--k-subtle);color:var(--k-text);font-size:13px;font-weight:500;}
.topbar-avatar:empty{display:none;}
.demo-badge{margin-left:auto;margin-right:var(--space-3);padding:2px var(--space-2);border-radius:999px;background:#fff4e5;color:#9a5b00;border:1px solid #f3c98b;font-size:12px;line-height:20px;font-weight:600;white-space:nowrap;}
.demo-badge[hidden]{display:none;}
/* Below 800px the top bar is hidden; the mobile bar carries the same synthetic-data marker beside the page title. */
.mobile-bar:has(.mobile-demo-badge:not([hidden])){grid-template-columns:44px minmax(0,1fr) auto 44px;}
.mobile-demo-badge{margin:0;}
#dashboard>header{min-height:0;margin:0 0 24px;padding:0;border:0;background:transparent;}
.workspace-heading .eyebrow{display:none;}
.workspace-heading h1{font-size:26px;line-height:36px;font-weight:700;letter-spacing:0;}
.workspace-heading p{margin-top:2px;color:var(--k-muted);font-size:14px;line-height:22px;}
.shell-subnav{display:flex;gap:24px;margin:0 0 24px;overflow-x:auto;border-bottom:1px solid var(--k-divider);scrollbar-width:none;}
.shell-subnav::-webkit-scrollbar{display:none;}
.shell-subnav-item{flex:none;min-height:44px;padding:0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--k-muted);font-size:14px;font-weight:400;line-height:22px;}
.shell-subnav-item:hover{border-color:transparent;border-bottom-color:var(--k-border);background:transparent;color:var(--k-text);}
.shell-subnav-item.active{border-bottom-color:var(--k-primary);color:var(--k-text);font-weight:500;}
.shell-more-bar{display:none;}
.shell-module-items{display:none;}
/* The shell sub-navigation replaces the page-internal tab rows; the rows stay in the DOM for the page functions. */
[data-page=analysis]>#report-tabs,[data-page=spending]>.tab-row:first-child,[data-page=settings]>.settings-tabs{display:none;}
/* S01: buttons, inputs, alerts, tables. Zero-specificity size rules: colours come from the remapped tokens, and
   component rules (tabs, chips, rows) keep precedence over these defaults. */
:where(main) button,:where(main) .button-link{min-height:36px;padding:0 16px;border-radius:var(--k-radius-control);font-size:14px;font-weight:500;line-height:22px;}
button:disabled,.button-link[aria-disabled=true]{opacity:.45;}
button:focus-visible,.button-link:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--k-primary);outline-offset:2px;}
:where(main) input:where(:not([type=checkbox],[type=radio],[type=range],[type=file])),:where(main) select{min-height:40px;padding:0 12px;border-radius:var(--k-radius-control);font-size:14px;line-height:22px;}
:where(main) select{padding-right:32px;}
:where(main) textarea{padding:8px 12px;border-radius:var(--k-radius-control);font-size:14px;line-height:22px;}
:where(main) :is(input,select,textarea):focus{border-color:var(--k-primary);box-shadow:0 0 0 1px var(--k-primary);outline:0;}
:where(main) :is(input,select,textarea):is([aria-invalid=true],:user-invalid){border-color:var(--k-danger);box-shadow:none;}
:where(input,select,textarea):disabled{opacity:.45;cursor:not-allowed;}
input:is([type=checkbox],[type=radio]):checked{border-color:var(--k-primary);background:var(--k-primary);}
.status-note{border-radius:var(--k-radius-control);background:var(--k-warning-bg);color:var(--k-warning-text);}
.status-info{border-radius:var(--k-radius-control);background:var(--k-subtle);color:var(--k-text);}
#notice.error,.error-state{border-color:transparent;background:var(--k-error-bg);color:var(--k-danger);}
#notice:not(:empty){border-radius:var(--k-radius-control);background:var(--k-surface);border:1px solid var(--k-border);color:var(--k-text);}
#notice.error:not(:empty){border-color:transparent;background:var(--k-error-bg);color:var(--k-danger);}
.error-text,.error{color:var(--k-danger);}
.panel{border:0;border-radius:var(--k-radius-panel);background:var(--k-surface);box-shadow:none;}
.insight-table th,.overview-table th,[data-source-table] th{background:var(--k-subtle);color:var(--k-muted);font-size:13px;font-weight:400;}
.tab-row button.active{border-color:var(--k-primary);color:var(--k-text);font-weight:500;}
.tab-row.more-after::after{background:linear-gradient(to right,transparent,var(--k-canvas) 45%);}
/* S01Drawer: right side 480px, square, no shadow, 16% black backdrop; full width on mobile. */
dialog#detail-dialog{position:fixed;inset:0 0 0 auto;width:480px;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;box-shadow:none;}
dialog#detail-dialog::backdrop{background:rgb(0 0 0 / 16%);backdrop-filter:none;}
dialog#detail-dialog>.section-head{padding:16px 16px 16px 24px;border-bottom:1px solid var(--k-divider);}
dialog#detail-dialog>.section-head h2{font-size:18px;font-weight:500;line-height:24px;}
/* Not yet open modules */
.shell-pending-panel{max-width:744px;}
.shell-pending-panel h2{margin:12px 0 8px;font-size:20px;font-weight:500;line-height:24px;}
.shell-pending-panel ul{margin:8px 0 16px;padding-left:20px;color:var(--k-text);line-height:22px;}
.status-tag{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:var(--k-radius-status);background:var(--k-warning-bg);color:var(--k-warning-text);font-size:12px;line-height:18px;}
/* H01 投入总览 */
#overview[data-view=home]>:not(#home){display:none!important;}
.home-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 var(--space-4);}
.home-month{display:flex;align-items:center;gap:8px;color:var(--k-muted);font-size:14px;white-space:nowrap;}
.home-month input{width:180px;}
#home-scope{font-size:12px;line-height:18px;}
.home-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:var(--layout-section);}
.home-kpi{display:grid;align-content:start;gap:4px;min-width:0;}
.home-kpi-label{color:var(--k-muted);font-size:14px;line-height:22px;}
.home-kpi-value{display:flex;flex-wrap:wrap;align-items:center;gap:12px;}
.home-kpi-value strong{color:var(--k-text);font-size:36px;font-weight:700;line-height:46px;font-variant-numeric:tabular-nums;}
.home-kpi small{color:var(--k-muted);font-size:12px;line-height:18px;}
.home-gap{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:var(--k-radius-status);background:var(--k-warning-bg);color:var(--k-warning-text);font-size:12px;line-height:18px;}
.home-bases{display:grid;gap:2px;margin:4px 0 0;}
.home-base{display:flex;gap:8px;color:var(--k-muted);font-size:12px;line-height:18px;}
.home-base dt{min-width:0;}
.home-base dd{margin:0;color:var(--k-text);font-variant-numeric:tabular-nums;}
.home-grid{display:grid;grid-template-columns:minmax(0,744fr) minmax(0,396fr);gap:var(--layout-gap);}
.home-grid>.panel{margin:0;min-width:0;}
.home-grid .section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;}
.home-grid h2{margin:0;font-size:16px;font-weight:500;line-height:24px;}
.home-more{color:var(--k-muted)!important;font-size:12px!important;font-weight:400!important;}
.home-more::after{content:" ›";}
.home-legend{display:flex;gap:20px;margin-bottom:12px;color:var(--k-muted);font-size:12px;line-height:18px;}
.home-legend-item::before{content:"";display:inline-block;width:8px;height:8px;margin-right:var(--space-2);border-radius:2px;background:var(--k-primary);}
.home-legend-api::before{background:var(--k-chart-api);}
.home-trend-chart{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;align-items:end;min-height:180px;padding-bottom:4px;border-bottom:1px solid var(--k-divider);}
.home-month-column{display:grid;justify-items:center;gap:8px;}
.home-month-column small{color:var(--k-muted);font-size:12px;line-height:18px;}
.home-month-column.current small{color:var(--k-text);font-weight:500;}
.home-month-bars{display:flex;align-items:flex-end;gap:4px;height:140px;}
progress.home-bar{width:16px;height:140px;border:0;background:transparent;writing-mode:vertical-lr;direction:rtl;appearance:none;-webkit-appearance:none;}
progress.home-bar.tool-other{color:var(--k-chart-subscription-history)!important;}
progress.home-bar::-webkit-progress-bar{background:transparent;}
progress.home-bar-api.tool-other{color:var(--k-chart-api-history)!important;}
.current progress.home-bar-subscription.tool-other{color:var(--k-primary)!important;}
.current progress.home-bar-api.tool-other{color:var(--k-chart-api)!important;}
.home-bar-unknown{align-self:flex-end;color:var(--k-muted);font-size:11px;line-height:16px;white-space:nowrap;}
.home-trend-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:12px;color:var(--k-muted);font-size:12px;line-height:18px;}
.home-list{display:grid;}
.home-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;min-height:64px;padding:12px 0;border:0;border-bottom:1px solid var(--k-divider);border-radius:0;background:transparent;color:var(--k-text);text-align:left;white-space:normal;}
.home-row:last-child{border-bottom:0;}
.home-row strong{display:block;font-size:14px;font-weight:500;line-height:22px;}
.home-row small{display:block;color:var(--k-muted);font-size:12px;line-height:18px;}
.home-row-icon{width:36px;height:36px;border-radius:9px;background:var(--k-subtle);}
.home-row-icon.home-status-verified{background:var(--k-success-bg);}
.home-status{font-size:12px;line-height:18px;}
.home-status-verified{color:var(--k-success-text);}
.home-status-pending{color:var(--k-warning-text);}
.home-status-rejected{color:var(--k-danger);}
.home-chevron{color:var(--k-muted);}
main .home-todo{min-height:64px;padding:12px 0;}
main .home-todo:hover{background:transparent;}
.home-caption{margin:0 0 12px;color:var(--k-muted);font-size:12px;line-height:18px;}
.home-team{display:grid;grid-template-columns:72px minmax(0,1fr) 56px;gap:12px;align-items:center;min-height:40px;}
.home-team-name{font-size:13px;line-height:22px;overflow-wrap:anywhere;}
progress.home-team-bar{display:block;width:100%;height:10px;border:0;border-radius:var(--k-radius-status);background:var(--k-subtle);color:var(--k-primary);appearance:none;-webkit-appearance:none;}
progress.home-team-bar.tool-other{color:var(--k-primary)!important;}
progress.home-team-bar::-webkit-progress-bar{background:var(--k-subtle);border-radius:var(--k-radius-status);}
.home-team-value{color:var(--k-text);font-size:12px;line-height:18px;text-align:right;font-variant-numeric:tabular-nums;}
.home-footnote{margin:16px 0 0;color:var(--k-muted);font-size:12px;line-height:18px;}
@media (max-width:800px){
  .shell main{width:100%;margin-left:0;padding:var(--mobile-bar-height) var(--layout-page) var(--space-8);}
  .shell-topbar{display:none;}
  #dashboard{padding-top:20px;}
  .shell aside{width:100%;padding:0;background:var(--k-surface);}
  .mobile-bar{grid-template-columns:44px minmax(0,1fr) 44px;}
  .mobile-page-title{font-size:18px;font-weight:700;}
  .mobile-space .workspace-avatar{background:var(--k-primary);border-radius:var(--k-radius-control);}
  .nav-drawer{width:min(296px,86vw);padding:16px 20px;}
  .nav-drawer>*{flex-shrink:0;}
  /* The open drawer covers the menu button's spot: the button stays on top as the close control and the brand moves past it (prod walk D9). */
  .nav-open .shell .mobile-nav-toggle{position:relative;z-index:3;}
  .nav-open .nav-drawer .brand{margin-left:36px;}
  .nav-drawer .workspace-switcher{display:block;margin:16px 0 12px;}
  .space-menu{position:static;width:100%;margin-top:8px;}
  .nav-drawer #main-navigation .shell-module{height:44px;justify-content:center;border:1px solid var(--k-border);}
  .nav-drawer #main-navigation .shell-module.active{border-color:var(--k-primary);}
  .nav-drawer #main-navigation .shell-module .nav-icon{display:none;}
  .shell-module-items:not([hidden]){display:grid;gap:4px;margin:-2px 0 4px;padding:4px 0 4px 12px;border-left:2px solid var(--k-divider);}
  .shell-module-item{min-height:44px;justify-content:flex-start;padding:0 12px;border:0;border-radius:var(--k-radius-control);background:transparent;color:var(--k-muted);font-size:14px;font-weight:400;text-align:left;}
  .shell-module-item[aria-current=page]{background:var(--k-subtle);color:var(--k-text);font-weight:500;}
  .nav-backdrop{background:rgb(0 0 0 / 32%);}
  .workspace-heading h1{font-size:26px;line-height:36px;}
  .shell-subnav{display:none;}
  .shell-more-bar:not([hidden]){display:grid;gap:12px;margin:0 0 20px;}
  .shell-more-toggle{width:100%;min-height:44px;white-space:normal;}
  .shell-more{display:grid;gap:12px;margin:0;padding:20px;}
  .shell-more[hidden]{display:none!important;}
  .shell-more h2{margin:0;font-size:16px;font-weight:500;}
  .shell-more p{margin:0;font-size:12px;}
  .shell-more-list{display:grid;gap:12px;}
  .shell-more button{min-height:44px;width:100%;}
  .shell-more button[aria-current=page]{border-color:var(--k-primary);}
  :where(main) button,:where(main) .button-link{min-height:44px;}
  :where(main) input:where(:not([type=checkbox],[type=radio],[type=range],[type=file])),:where(main) select{min-height:44px;}
  dialog#detail-dialog{width:100vw;}
  .percent-input{height:44px;}
  .home-toolbar{margin-top:0;}
  .home-month input{flex:1;min-width:0;width:auto;}
  .home-month{width:100%;}
  .home-kpis{grid-template-columns:1fr 1fr;gap:16px;}
  .home-kpi-cost{grid-column:1/-1;padding-bottom:16px;border-bottom:1px solid var(--k-divider);}
  .home-kpi-value strong{font-size:26px;line-height:36px;}
  .home-kpi-cost .home-kpi-value strong{font-size:36px;line-height:46px;}
  .home-grid{grid-template-columns:1fr;}
  .home-month-bars{height:110px;}
  progress.home-bar{width:12px;height:110px;}
}
/* saas-shell-prod-fixes (prod walk 2026-10-17) */
.space-platform{text-decoration:none;}
.space-platform:hover{text-decoration:none;}
/* D2: the top bar's white band runs to the viewport edge when the window is wider than the content column. */
@media (min-width:801px){.shell-topbar{box-shadow:0 0 0 100vmax var(--k-surface);clip-path:inset(0 -100vmax 0 0);}}
/* D7: on a phone the device card stacks its header and shows each device as a card with every field in view. */
@media (max-width:800px){
  #devices>.section-head{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;}
  #devices>.section-head h2{white-space:nowrap;}
  #devices .device-actions{max-width:none;}
  .device-table{overflow:visible;}
  .device-table-head{display:none;}
  .device-table-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name status" "platform platform" "last last" "action action";min-width:0;gap:4px 12px;padding:var(--space-3) var(--space-4);}
  .device-table-row>strong{grid-area:name;overflow-wrap:anywhere;}
  .device-table-row>:nth-child(2){grid-area:platform;color:var(--k-muted);}
  .device-table-row>:nth-child(3){grid-area:last;color:var(--k-muted);}
  .device-table-row>.device-status{grid-area:status;}
  .device-table-row>.device-row-action{grid-area:action;text-align:left;}
  .device-table-row>[data-label]::before{content:attr(data-label) " ";}
}
/* F04 enterprise budget + M01 budget grant panel (saas-budget-min). */
.budget-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;}
.budget-kpis{padding:24px;}
.budget-alert{margin:0;}
.budget-alert[data-level=over]{background:var(--k-error-bg);color:var(--k-danger);}
#budget-share[data-alert=over],#home-budget[data-alert=over],.costs-trend-foot [data-alert=over]{color:var(--k-danger);}
#budget-share[data-alert=near],#home-budget[data-alert=near],.costs-trend-foot [data-alert=near]{color:var(--k-warning-text);}
.budget-other{margin:0;color:var(--k-warning-text);font-size:13px;line-height:20px;}
.budget-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--layout-gap);align-items:start;}
.budget-edit h2,.budget-rights h2,.budget-grants h2{margin:0 0 20px;font-size:16px;line-height:24px;}
.budget-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;}
.budget-fields label{display:grid;gap:8px;color:var(--k-text);font-size:14px;font-weight:500;}
.budget-basis{display:grid;gap:4px;margin:20px 0;padding:16px;border-radius:var(--k-radius-control);background:var(--k-subtle);}
.budget-basis span{color:var(--k-muted);font-size:13px;line-height:20px;}
.budget-actions{display:flex;flex-wrap:wrap;gap:12px;}
.budget-actions button{min-width:96px;}
.budget-rights dl{display:grid;gap:0;margin:0;}
.budget-rights dl>div{display:grid;gap:4px;padding:12px 0;border-bottom:1px solid var(--k-divider);}
.budget-rights dt{color:var(--k-muted);font-size:13px;}
.budget-rights dd{margin:0;color:var(--k-text);font-size:14px;}
.budget-history-table{width:100%;border-collapse:collapse;font-size:14px;}
.budget-history-table th{padding:var(--space-2) var(--space-3);background:var(--k-subtle);color:var(--k-muted);font-weight:400;text-align:left;}
.budget-history-table td{padding:var(--space-4) var(--space-3);border-bottom:1px solid var(--k-divider);overflow-wrap:anywhere;}
.budget-history-table th:last-child,.budget-history-table td:last-child{text-align:right;}
.budget-grants form{display:grid;gap:12px;max-width:none;margin-bottom:12px;}
.budget-grants form>label:first-child{display:grid;gap:8px;}
.budget-grants form>button{justify-self:start;min-width:160px;}
.budget-grant-list{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none;}
.budget-grant-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:8px 0;border-bottom:1px solid var(--k-divider);}
.home-budget{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;}
@media (max-width:800px){
  .budget-grid{grid-template-columns:1fr;gap:0;}
  .budget-fields{grid-template-columns:1fr;}
  .budget-kpis{padding:20px;}
  /* F04-M1/M2 (390): one KPI per row, label and note left, value right, divider between; actions stacked full width. */
  .budget-kpis.home-kpis{grid-template-columns:1fr;gap:0;}
  .budget-kpis .home-kpi{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label value" "note value";align-items:center;column-gap:16px;row-gap:2px;padding:16px 0;border-bottom:1px solid var(--k-divider);}
  .budget-kpis .home-kpi:first-child{padding-top:0;}
  .budget-kpis .home-kpi:last-child{padding-bottom:0;border-bottom:0;}
  .budget-kpis .home-kpi-label{grid-area:label;}
  .budget-kpis .home-kpi-value{grid-area:value;justify-content:flex-end;text-align:right;}
  .budget-kpis .home-kpi small{grid-area:note;}
  #budget-form{display:block;}
  .budget-actions{flex-direction:column;}
  .budget-actions button{width:100%;}
  .budget-history-table th,.budget-history-table td{padding:var(--space-2) var(--space-2);font-size:13px;}
}
/* saas-outcome-revision: O02 row actions wrap inside the cell; the outcomes panel never widens the page. */
#personal-outcomes-panel,#personal-outcomes-rows{min-width:0;max-width:100%;}
.outcome-actions{display:flex;flex-wrap:wrap;gap:4px 8px;white-space:normal;}
#outcome-history-rows{min-width:0;max-width:100%;}
.outcome-version{margin:8px 0;}
.outcome-version a{word-break:break-all;}
#personal-outcome-share,#outcome-request-form .check{min-width:0;max-width:100%;}
#outcome-request-form,#outcome-decision-form{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start;margin-top:16px;}
#outcome-request-form .outcome-correction-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;}
#outcome-request-form .outcome-correction-fields[hidden]{display:none;}
#outcome-request-form>button,.outcome-form-buttons{justify-self:start;}
.outcome-form-buttons{display:flex;flex-wrap:wrap;gap:8px;}
#outcome-request-form label:not(.check),#outcome-decision-form label{display:grid;gap:var(--space-2);min-width:0;}
#outcome-request-form fieldset .check{display:flex;align-items:center;gap:8px;}
#outcome-request-form textarea,#outcome-decision-form textarea{width:100%;box-sizing:border-box;}
/* X01 优化行动 / X02 行动复查 (saas-actions-min); tokens come from style.css (DESIGN.md). */
.action-page-head{display:flex;justify-content:flex-end;gap:12px;}
.actions-page{display:grid;gap:var(--layout-section);}
.actions-page .panel{margin:0;}
@media (max-width:800px){
  #dashboard>header:has(>.header-actions>:is(.action-page-head,.home-month):not([hidden])){flex-direction:column;align-items:stretch;}
  #dashboard>header>.header-actions:has(>:is(.action-page-head,.home-month):not([hidden])){width:100%;}
  .header-actions>.action-page-head{flex:1;}
  .header-actions>.action-page-head>*{flex:none;box-sizing:border-box;width:calc(50% - 6px);min-width:0;}
}
.action-page-head input{width:160px;min-height:40px;}
.action-page-head .primary{min-height:40px;padding:0 28px;}
.actions-list .section-head,.action-compare .section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.action-tabs{margin:12px 0 16px;}
.action-filters,.action-compare-filters{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 16px;}
.action-filters select,.action-compare-filters select,.action-compare-filters input{width:180px;min-height:36px;}
.actions-table th.action-col-1,.actions-table td:nth-child(2){text-align:center;}
.actions-table th.action-col-2,.actions-table td:nth-child(3),.actions-table th.action-col-3,.actions-table td:nth-child(4){text-align:right;}
.actions-table .action-title{font-weight:500;color:var(--k-text,var(--color-text));text-align:left;white-space:normal;}
.action-evidence{white-space:normal;text-align:right;}
.action-status{height:22px;margin-left:4px;}
.action-status-done{background:var(--k-success-bg,var(--color-success-soft));color:var(--k-success-text,var(--color-success));}
.action-overdue{margin-left:var(--space-2);color:var(--k-danger,var(--color-danger));font-size:12px;}
.action-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;color:var(--k-muted,var(--color-text-secondary));font-size:12px;}
.action-pager>span:last-child{display:flex;gap:12px;align-items:center;}
.action-footnote{margin:16px 0 0;font-size:12px;}
.action-lower{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(0,1fr);gap:var(--layout-gap);align-items:stretch;}
.action-form{display:block;margin:0;}
.action-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;margin-bottom:16px;}
.action-field{display:flex;flex-direction:column;gap:8px;font-weight:500;}
.action-field input,.action-field select,.action-field textarea{width:100%;min-height:40px;font-weight:400;}
.action-form>.action-field{margin-bottom:16px;}
.action-buttons{display:flex;gap:12px;}
.action-buttons .primary{min-width:144px;}
.action-guide-item,.action-history-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) 0;border-bottom:1px solid var(--k-divider,var(--color-border-light));}
.action-guide-item small,.action-history-item small{color:var(--k-muted,var(--color-text-secondary));font-size:12px;}
.action-history{list-style:none;margin:0;padding:0;}
.action-history-link{font-size:12px;}
.action-head .status-tag{margin:4px 0 8px;}
.action-head .action-latest-note{margin:8px 0 0;}
.action-head .action-mark-done{margin-top:12px;}
.action-compare-table td:first-child{font-weight:500;}
.action-note{display:flex;flex-direction:column;gap:var(--space-2);margin-top:16px;padding:16px;border-radius:8px;background:var(--k-subtle,var(--color-surface-muted));}
.action-note small{color:var(--k-muted,var(--color-text-secondary));}
.action-adjustment-check{display:flex;flex-direction:column;gap:var(--space-2);margin-top:12px;padding:var(--space-4) var(--space-4);border:1px solid var(--k-divider,var(--color-border-light));border-radius:8px;font-size:13px;}
.home-action .home-status-rejected{color:var(--k-danger,var(--color-danger));}
@media (max-width:800px){
  .action-page-head{flex-wrap:wrap;justify-content:stretch;}
  .action-page-head input,.action-page-head .primary{flex:1 1 140px;width:auto;}
  .action-filters select,.action-compare-filters select,.action-compare-filters input{flex:1 1 140px;width:auto;}
  .action-lower,.action-form-grid{grid-template-columns:minmax(0,1fr);}
  .actions-table thead{display:none;}
  .actions-table,.actions-table tbody,.actions-table tr,.actions-table td{display:block;width:100%;}
  .actions-table tr{padding:12px 0;border-bottom:1px solid var(--k-divider,var(--color-border-light));}
  .actions-table td{height:auto;max-width:none;padding:2px 0;border:0;text-align:left!important;white-space:normal;}
  .action-evidence{text-align:left;}
  .actions-table-wrap{overflow:visible;border:0;border-radius:0;}
  .action-compare-table th,.action-compare-table td{padding:8px;white-space:normal;}
  .action-compare-table td:nth-child(2),.action-compare-table td:nth-child(4){white-space:nowrap;}
}
/* ── saas-pages-adoption begin ── 团队采用 U01–U03 (+ sub-views); enterprise space only. */
[data-page][data-adopt-design=on]>:not(#adoption){display:none!important;}
:root[data-adopt-design=on] #subtitle,:root[data-adopt-design=on] .header-actions .period,:root[data-adopt-design=on] #connect-device,:root[data-adopt-design=on] #data-filters,:root[data-adopt-design=on] #custom-period{display:none!important;}
.adopt-actions{display:flex;align-items:center;gap:12px;}
.adopt-actions[hidden],.adopt-month[hidden],#adopt-primary[hidden],.adopt-legacy-bar[hidden],.adoption[hidden]{display:none!important;}
.adopt-month input{width:160px;min-height:36px;height:36px;background:var(--k-surface);}
#adopt-primary{min-width:160px;}
.adopt-view{display:grid;gap:var(--layout-section);}
.adopt-card,.adopt-kpis{margin:0;padding:var(--layout-pad);}
.adopt-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;}
.adopt-card-head h2{margin:0;font-size:16px;font-weight:500;line-height:24px;}
.adopt-export{color:var(--k-muted);font-size:12px;line-height:18px;text-decoration:none;}
.adopt-export:hover{color:var(--k-text);}
a.adopt-export-button{display:inline-flex;align-items:center;justify-content:center;justify-self:start;min-width:184px;margin-top:16px;color:var(--k-text);font-size:14px;}
a.adopt-export-primary{background:var(--k-primary);border-color:var(--k-primary);color:#fff;}
.adopt-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.adopt-kpi{display:grid;align-content:start;gap:4px;min-width:0;}
.adopt-kpi-label,.adopt-kpi-note,.adopt-caption{color:var(--k-muted);font-size:12px;line-height:18px;}
/* Record keys and model names are long unbroken strings; they wrap so the card never widens the page (prod walk D1). */
.adopt-view>*,.adopt-card{min-width:0;}
.adopt-caption,.adopt-facts dd,main .adopt-row-link{overflow-wrap:anywhere;}
.adopt-kpi-value{color:var(--k-text);font-size:36px;font-weight:700;line-height:46px;font-variant-numeric:tabular-nums;}
.adopt-scope p{margin:0 0 12px;color:var(--k-muted);font-size:12px;line-height:18px;}
.adopt-actions-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px;}
.adopt-actions-col{display:grid;justify-items:start;gap:4px;}
main .adopt-button{min-width:184px;margin-top:16px;justify-self:start;}
main .adopt-actions-row .adopt-button{margin-top:0;}
main .adopt-wide{min-width:260px;}
.adopt-grid{display:grid;grid-template-columns:minmax(0,744fr) minmax(0,396fr);gap:var(--layout-gap);align-items:stretch;}
main .adopt-more,main .adopt-link{min-height:auto;padding:0;color:var(--k-muted);font-size:12px;font-weight:400;}
main .adopt-scope .adopt-link{font-size:13px;}
.adopt-bars{display:grid;gap:16px;}
.adopt-bar-row{display:grid;grid-template-columns:72px minmax(0,1fr) 64px;align-items:center;gap:16px;font-size:14px;line-height:22px;}
.adopt-days .adopt-bar-row{grid-template-columns:80px minmax(0,1fr) 48px;font-size:12px;}
.adopt-bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.adopt-bar-count,.adopt-bar-row>.adopt-num{color:var(--k-muted);font-size:12px;text-align:right;font-variant-numeric:tabular-nums;}
progress.adopt-bar{display:block;width:100%;height:8px;border:0;border-radius:var(--k-radius-status);background:var(--k-subtle);color:var(--k-primary);appearance:none;-webkit-appearance:none;}
progress.adopt-bar.tool-other{color:var(--k-primary)!important;}
progress.adopt-bar::-webkit-progress-bar{background:var(--k-subtle);border-radius:var(--k-radius-status);}
.adopt-tool-list{display:grid;}
.adopt-tool-row{display:grid;gap:4px;padding:12px 0 20px;border-bottom:1px solid var(--k-divider);}
.adopt-tool-line{display:flex;justify-content:space-between;gap:12px;font-size:14px;line-height:22px;}
.adopt-tool-line strong{font-weight:500;}
.adopt-tabs{display:flex;gap:20px;margin:0 0 20px;overflow-x:auto;border-bottom:1px solid var(--k-divider);scrollbar-width:none;}
main .adopt-tab{flex:none;min-height:40px;padding:0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--k-muted);font-size:14px;font-weight:400;}
main .adopt-tab:hover{border-color:transparent;background:transparent;color:var(--k-text);}
main .adopt-tab.active{border-bottom-color:var(--k-primary);color:var(--k-text);font-weight:500;}
.adopt-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;}
.adopt-filters .adopt-field-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.adopt-filters :is(select,input){width:180px;min-height:36px;height:36px;font-size:12px;}
.adopt-form{display:grid;gap:16px;margin-bottom:20px;}
.adopt-field{position:relative;display:grid;align-content:start;gap:8px;min-width:0;}
.adopt-field-label{color:var(--k-text);font-size:14px;font-weight:500;line-height:22px;}
.adopt-field :is(input,select){width:100%;}
.adopt-field p{margin:0;}
.adopt-table-wrap{max-width:100%;overflow-x:auto;}
.adopt-table{width:100%;border-collapse:collapse;}
.adopt-table th{height:40px;padding:0 12px;background:var(--k-subtle);color:var(--k-muted);font-size:12px;font-weight:400;line-height:18px;text-align:left;white-space:nowrap;}
.adopt-table td{height:57px;padding:8px 12px;border-bottom:1px solid var(--k-divider);color:var(--k-text);font-size:14px;line-height:22px;overflow-wrap:anywhere;}
.adopt-table td:first-child{font-weight:500;}
.adopt-table .num{text-align:right;font-variant-numeric:tabular-nums;}
main .adopt-row-link{min-height:auto;padding:0;color:var(--k-text);font-size:14px;font-weight:500;text-align:left;}
main .adopt-row-link.active{text-decoration:underline;}
.adopt-table-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:8px;color:var(--k-muted);font-size:12px;line-height:18px;}
.adopt-pager{display:flex;align-items:center;gap:8px;}
main .adopt-pager .link-button{min-height:auto;padding:0;color:var(--k-muted);font-size:12px;font-weight:400;}
.adopt-note{margin:12px 0 0;color:var(--k-muted);font-size:12px;line-height:18px;}
.adopt-strong{margin:0 0 8px;font-size:14px;font-weight:500;line-height:22px;}
.adopt-empty{margin:16px 0 0;}
.adopt-more-list{display:grid;justify-items:start;gap:20px;margin-top:8px;}
main .adopt-more-item{width:260px;}
.adopt-facts{display:grid;margin:0 0 20px;}
.adopt-fact{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;padding:16px 0;border-bottom:1px solid var(--k-divider);}
.adopt-fact dt{color:var(--k-muted);font-size:12px;line-height:18px;}
.adopt-fact dd{margin:0;color:var(--k-text);font-size:14px;line-height:22px;overflow-wrap:anywhere;}
.adopt-callout{margin:0 0 16px;padding:12px 16px;border-radius:var(--k-radius-control);background:var(--k-success-bg);color:var(--k-success-text);font-size:13px;}
.adopt-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin:24px 0 0;color:var(--k-muted);font-size:12px;line-height:18px;}
.adopt-legacy-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:12px 16px;border-radius:var(--k-radius-control);background:var(--k-subtle);font-size:13px;}
@media (max-width:800px){
  .adopt-actions{width:100%;}
  .adopt-month{flex:1;min-width:0;}
  .adopt-month input{width:100%;}
  #adopt-primary{flex:1;min-width:0;}
  .adopt-kpis{grid-template-columns:1fr;gap:0;}
  .adopt-kpi{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label value" "note value";column-gap:12px;padding:16px 0;border-bottom:1px solid var(--k-divider);}
  .adopt-kpi:last-child{border-bottom:0;}
  .adopt-kpi-label{grid-area:label;}
  .adopt-kpi-value{grid-area:value;align-self:center;font-size:24px;line-height:32px;text-align:right;}
  .adopt-kpi-note{grid-area:note;}
  .adopt-grid{grid-template-columns:1fr;}
  .adopt-bar-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label count" "bar bar";gap:8px;}
  .adopt-bar-row .adopt-bar-label{grid-area:label;}
  .adopt-bar-row progress{grid-area:bar;}
  .adopt-bar-row>:last-child{grid-area:count;}
  .adopt-tabs .adopt-tab:nth-child(n+3):not(.adopt-tab-more){display:none;}
  .adopt-filters :is(select,input){flex:1;width:auto;min-width:0;}
  .adopt-filters .adopt-field{flex:1;min-width:0;}
  .adopt-table thead{display:none;}
  .adopt-table,.adopt-table tbody,.adopt-table tr,.adopt-table td{display:block;width:100%;}
  .adopt-table tr{padding:12px 0;border-bottom:1px solid var(--k-divider);}
  .adopt-table td{display:flex;justify-content:space-between;gap:12px;height:auto;padding:4px 0;border:0;font-size:13px;text-align:right;}
  .adopt-table td::before{content:attr(data-label);flex:none;max-width:45%;color:var(--k-muted);font-size:12px;font-weight:400;text-align:left;}
  .adopt-table td:first-child{display:block;padding-bottom:8px;font-size:14px;text-align:left;}
  .adopt-table td:first-child::before{content:none;}
  .adopt-fact{grid-template-columns:1fr;gap:4px;}
  main .adopt-button,main .adopt-more-item,a.adopt-export-button{width:100%;min-width:0;}
  .adopt-more-list{justify-items:stretch;}
}
@media (max-width:480px){
  :root[data-adopt-design=on] header{flex-direction:column;align-items:stretch;}
  :root[data-adopt-design=on] header .header-actions{width:100%;}
}
/* ── saas-pages-adoption end ── */
/* ==== saas-pages-outcomes: O01–O03 成果与场景 (Figma 6i4k0Lqr22rEvU5XxCFYn1, 1440 / 390) ==== */
html[data-outcomes-page=outcomes] #subtitle,html[data-outcomes-page=rd] #subtitle{display:none;}
.o-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.o-month{display:block;margin:0;}
.o-month[hidden]{display:none;}
.o-month input{width:160px;min-height:36px;text-align:center;}
#o-submit-open{width:160px;}
.o-page{min-width:0;}
.o-view{display:grid;gap:var(--layout-section);min-width:0;}
.o-view>.panel,.o-split>.panel{margin:0;}
.o-panel{min-width:0;padding:var(--layout-pad);}
.o-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px;}
.o-panel-head h2{margin:0;font-size:16px;font-weight:500;line-height:24px;}
.o-export,main .o-export{min-height:18px!important;padding:0!important;color:var(--k-muted)!important;font-size:12px!important;font-weight:400!important;line-height:18px!important;background:transparent!important;border:0!important;}
.o-scope{margin:24px 0 0;color:var(--k-muted);font-size:12px;line-height:18px;}
.o-tag{display:inline-flex;align-items:center;height:24px;padding:0 var(--space-2);border-radius:var(--k-radius-status);font-size:12px;line-height:18px;white-space:nowrap;}
.o-tag-success{background:var(--k-success-bg);color:var(--k-success-text);}
.o-tag-warning{background:var(--k-warning-bg);color:var(--k-warning-text);}
.o-tag-danger{background:var(--k-error-bg);color:var(--k-danger);}
/* O01 */
.o-summary{display:flex;justify-content:space-between;gap:16px;}
.o-summary h2{margin:0;font-size:16px;font-weight:500;line-height:24px;}
.o-big{display:flex;align-items:center;gap:12px;margin-top:8px;}
.o-big-number{font-size:36px;font-weight:700;line-height:46px;font-variant-numeric:tabular-nums;}
.o-summary-side{margin:0;color:var(--k-muted);font-size:14px;line-height:22px;}
.o-tabs{display:flex;gap:20px;margin:20px 0 0;padding:0;border-bottom:1px solid var(--k-divider);overflow-x:auto;scrollbar-width:none;}
main .o-tab{flex:none;min-height:34px;min-width:28px;padding:0 0 var(--space-2);border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--k-muted);font-size:14px;font-weight:400;line-height:22px;}
main .o-tab:hover{background:transparent;border-color:transparent;border-bottom-color:var(--k-border);color:var(--k-text);}
main .o-tab.active{border-bottom-color:var(--k-primary);color:var(--k-text);font-weight:500;}
.o-filters{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0;}
main select.o-filter{width:180px;min-height:36px;font-size:13px;}
.o-cards{display:grid;}
.o-card{display:grid;grid-template-columns:minmax(0,714fr) minmax(0,378fr);gap:20px;padding:0 0 20px;margin:0 0 20px;border-bottom:1px solid var(--k-divider);}
.o-card-facts{min-width:0;}
.o-card-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.o-card-title h3{margin:0;font-size:18px;font-weight:500;line-height:24px;overflow-wrap:anywhere;}
.o-card-meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:var(--space-4);color:var(--k-muted);font-size:12px;line-height:18px;}
.o-card-text{margin:var(--space-4) 0 0;color:var(--k-text);font-size:14px;line-height:22px;overflow-wrap:anywhere;}
.o-card-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--space-4);}
.o-card-links>*{width:160px;}
.o-card-foot{display:flex;flex-wrap:wrap;align-items:center;margin:var(--space-4) 0 0;color:var(--k-muted);font-size:12px;line-height:18px;}
main .o-inline-link{min-height:18px;padding:0;color:var(--k-muted);font-size:12px;font-weight:400;line-height:18px;}
.o-preview{display:grid;align-content:start;gap:12px;min-width:0;padding:16px;border-radius:var(--k-radius-control);background:var(--k-subtle);color:var(--k-muted);font-size:12px;line-height:18px;overflow-wrap:anywhere;}
.o-preview strong{color:var(--k-text);font-size:12px;font-weight:500;}
.o-pager{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;color:var(--k-muted);font-size:12px;line-height:18px;}
.o-pager-controls{display:flex;align-items:center;gap:12px;}
main .o-page-button{min-height:18px;padding:0;border:0;background:transparent;color:var(--k-muted);font-size:12px;font-weight:400;line-height:18px;}
main .o-page-button:hover{background:transparent;color:var(--k-text);}
.o-library .o-pager{margin-top:0;}
.o-note{margin:20px 0 0;color:var(--k-muted);font-size:12px;line-height:18px;}
.o-table .insight-table-wrap{border:0;border-radius:0;}
.o-table .insight-table{table-layout:fixed;}
.o-table .insight-table th{height:40px;}
.o-table .insight-table td{vertical-align:middle;}
.o-form-single>button{justify-self:start;min-width:200px;}
.o-table .insight-table td{height:57px;font-size:14px;}
.o-table .insight-table :is(th,td):not(:first-child){text-align:right;}
.o-table .insight-table tbody tr:last-child td{border-bottom:1px solid var(--k-divider);}
.o-table-link{color:var(--k-text)!important;}
.o-table-panel .o-filters{margin-top:0;}
/* O02 */
.o-split{display:grid;grid-template-columns:minmax(0,744fr) minmax(0,396fr);gap:20px;align-items:start;}
.o-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.o-form-single{display:grid;gap:20px;margin-top:20px;}
.o-field{display:grid;align-content:start;gap:var(--space-2);min-width:0;color:var(--k-text);font-size:14px;font-weight:500;line-height:22px;}
.o-field>span{font-weight:500;}
.o-field :is(input,select,textarea){width:100%;font-weight:400;}
.o-field-wide{grid-column:1/-1;}
.o-consent{grid-column:1/-1;display:flex;align-items:center;gap:var(--space-2);color:var(--k-text);font-size:13px;line-height:18px;}
.o-consent input{width:18px;height:18px;margin:0;}
.o-form>.o-note{grid-column:1/-1;margin:0;}
.o-actions-row{grid-column:1/-1;display:flex;gap:12px;}
#o02-submit{width:144px;}
.o-actions-row .secondary{width:96px;}
.o-banner{display:grid;gap:var(--space-2);margin:0 0 20px;padding:16px;border-radius:var(--k-radius-control);background:var(--k-subtle);color:var(--k-muted);font-size:12px;line-height:18px;}
.o-banner strong{color:var(--k-text);font-size:14px;font-weight:500;line-height:22px;}
.o-facts{display:grid;margin:0;}
.o-fact{display:grid;gap:var(--space-2);padding:0 0 20px;margin:0 0 20px;border-bottom:1px solid var(--k-divider);}
.o-fact dt{color:var(--k-muted);font-size:12px;line-height:18px;}
.o-fact dd{margin:0;color:var(--k-text);font-size:14px;font-weight:500;line-height:22px;overflow-wrap:anywhere;}
#o02r .o-fact,#o02w .o-fact{grid-template-columns:260px minmax(0,1fr);}
#o02r .o-fact dd,#o02w .o-fact dd{font-weight:400;}
.o-stack{display:grid;justify-items:start;gap:20px;}
.o-stack>*{min-width:184px;}
.o-submitted{display:grid;justify-items:start;gap:4px;}
.o-submitted>h3{margin:16px 0 8px;font-size:20px;font-weight:500;line-height:24px;}
.o-submitted .o-muted{margin:0;}
.o-submitted .o-stack{margin-top:16px;}
.o-muted{color:var(--k-muted);font-size:12px;line-height:18px;}
.o-subhead{margin:8px 0 0;font-size:16px;font-weight:500;}
.o-notice{display:grid;gap:var(--space-2);margin-top:20px;padding:16px;border-radius:var(--k-radius-control);background:var(--k-warning-bg);color:var(--k-warning-text);font-size:12px;line-height:18px;}
.o-notice strong{color:var(--k-warning-text);font-size:14px;font-weight:500;}
.o-export-button{margin-top:20px;min-width:184px;}
.o-versions{margin-top:12px;}
/* O03 */
.o-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.o-metric{display:grid;align-content:start;gap:8px;min-width:0;}
.o-metric-label{color:var(--k-muted);font-size:12px;line-height:18px;}
.o-metric-value,main .o-metric-value{justify-content:flex-start;min-height:46px;padding:0;border:0;background:transparent;color:var(--k-text);font-size:36px;font-weight:700;line-height:46px;font-variant-numeric:tabular-nums;}
main button.o-metric-value:hover{background:transparent;color:var(--k-text);text-decoration:underline;}
.o-metric small{color:var(--k-muted);font-size:12px;line-height:18px;}
#o03 .o-notice{background:var(--k-subtle);color:var(--k-muted);}
#o03 .o-notice strong{color:var(--k-text);}
.o-wide-button{margin-top:20px;width:184px;}
@media (max-width:800px){
  html[data-outcomes-page=outcomes] #dashboard>header,html[data-outcomes-page=rd] #dashboard>header{flex-direction:column;align-items:stretch;gap:12px;}
  html[data-outcomes-page=outcomes] .header-actions,html[data-outcomes-page=rd] .header-actions{width:100%;}
  .o-table .insight-table-wrap{overflow:visible;}
  .o-table .insight-table,.o-table .insight-table tbody{display:block;}
  .o-table .insight-table thead{display:none;}
  .o-table .insight-table tr{display:grid;gap:8px;padding:16px 0;border-bottom:1px solid var(--k-divider);}
  .o-table .insight-table td{display:flex;justify-content:space-between;gap:12px;height:auto;max-width:none;padding:0;border:0!important;font-size:13px;text-align:right!important;white-space:normal;}
  .o-table .insight-table td::before{content:attr(data-label);color:var(--k-muted);text-align:left;}
  .o-table .insight-table td:first-child{font-size:14px;font-weight:500;text-align:left!important;}
  .o-table .insight-table td:first-child::before{content:none;}
  .o-table .insight-table tbody tr:hover td{background:transparent;}
  .o-form-single>button{width:100%;}
  .o-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .o-month input,#o-submit-open{width:100%;}
  .o-summary{display:grid;gap:12px;}
  .o-card{grid-template-columns:1fr;gap:16px;}
  .o-card-title{display:grid;justify-items:start;gap:8px;}
  .o-card-links{display:grid;}
  .o-card-links>*{width:100%;}
  .o-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  main select.o-filter{width:100%;min-height:44px;}
  .o-split{grid-template-columns:1fr;gap:16px;}
  .o-form{grid-template-columns:1fr;}
  .o-actions-row{display:grid;grid-template-columns:1fr 1fr;}
  #o02-submit,.o-actions-row .secondary{width:100%;}
  #o02r .o-fact,#o02w .o-fact{grid-template-columns:1fr;}
  .o-stack{justify-items:stretch;}
  .o-stack>*{width:100%;}
  .o-metrics{grid-template-columns:1fr;gap:0;}
  .o-metric{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label value" "caption value";padding:16px 0;border-bottom:1px solid var(--k-divider);}
  .o-metric:first-child{padding-top:0;}
  .o-metric:last-child{padding-bottom:0;border-bottom:0;}
  .o-metric-label{grid-area:label;}
  .o-metric small{grid-area:caption;}
  .o-metric-value,main .o-metric-value{grid-area:value;align-self:center;font-size:26px;line-height:36px;}
  .o-wide-button,.o-export-button{width:100%;}
  .o-table .insight-table td{white-space:normal;}
}
/* ==== /saas-pages-outcomes ==== */
/* ── saas-pages-costs begin ── 费用与订阅 F01–F03, F05 (+ sub-views); enterprise space only. */
[data-page=spending][data-cost-design=on]>:not(#costs){display:none!important;}
:root[data-cost-design=on] #subtitle,:root[data-cost-design=on] .header-actions .period,:root[data-cost-design=on] #data-filters,:root[data-cost-design=on] #custom-period{display:none!important;}
.costs-actions{display:flex;align-items:center;gap:12px;}
.costs-actions[hidden],.costs-month[hidden],#costs-primary[hidden],.costs-legacy-bar[hidden],.costs[hidden]{display:none!important;}
.costs-month input{width:160px;min-height:36px;height:36px;background:var(--k-surface);}
#costs-primary{min-width:160px;}
.costs-view{display:grid;gap:var(--layout-section);}
.costs-card,.costs-kpis{margin:0;padding:var(--layout-pad);}
.costs-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;}
.costs-card-head h2{margin:0;font-size:16px;font-weight:500;line-height:24px;}
.costs-export{color:var(--k-muted);font-size:12px;line-height:18px;text-decoration:none;}
.costs-export:hover{color:var(--k-text);}
a.costs-export.button-link{display:inline-flex;align-items:center;justify-content:center;min-width:184px;color:var(--k-text);font-size:14px;}
.costs-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.costs-kpi{display:grid;align-content:start;gap:4px;min-width:0;}
.costs-kpi-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.costs-kpi-label,.costs-kpi-note{color:var(--k-muted);font-size:12px;line-height:18px;}
.costs-kpi-value{color:var(--k-text);font-size:36px;font-weight:700;line-height:46px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.costs-tag{display:inline-flex;align-items:center;width:max-content;height:24px;padding:0 8px;border-radius:var(--k-radius-status);background:var(--k-warning-bg);color:var(--k-warning-text);font-size:12px;line-height:18px;}
.costs-grid,.costs-form-layout{display:grid;grid-template-columns:minmax(0,744fr) minmax(0,396fr);gap:var(--layout-gap);align-items:stretch;}
.costs-legend{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:12px;color:var(--k-muted);font-size:12px;line-height:18px;}
.costs-legend-item::before{content:"";display:inline-block;width:8px;height:8px;margin-right:var(--space-2);border-radius:2px;background:var(--k-primary);}
.costs-legend-api::before{background:var(--k-chart-api);}
.costs-trend{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;align-items:end;min-height:180px;padding-bottom:4px;border-bottom:1px solid var(--k-divider);}
.costs-trend-column{display:grid;justify-items:center;gap:8px;}
.costs-trend-column small{color:var(--k-muted);font-size:12px;line-height:18px;}
.costs-trend-column.current small{color:var(--k-text);font-weight:500;}
.costs-trend-bars{display:flex;align-items:flex-end;gap:4px;height:140px;}
progress.costs-bar{width:16px;height:140px;border:0;background:transparent;writing-mode:vertical-lr;direction:rtl;appearance:none;-webkit-appearance:none;}
progress.costs-bar::-webkit-progress-bar{background:transparent;}
progress.costs-bar-subscription.tool-other{color:var(--k-chart-subscription-history)!important;}
progress.costs-bar-api.tool-other{color:var(--k-chart-api-history)!important;}
.current progress.costs-bar-subscription.tool-other{color:var(--k-primary)!important;}
.current progress.costs-bar-api.tool-other{color:var(--k-chart-api)!important;}
.costs-bar-unknown{align-self:flex-end;color:var(--k-muted);font-size:11px;line-height:16px;writing-mode:vertical-lr;}
.costs-trend-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:12px;color:var(--k-muted);font-size:12px;line-height:18px;}
main .costs-more{min-height:auto;padding:0;color:var(--k-muted);font-size:12px;font-weight:400;}
main .costs-more::after{content:" ›";}
.costs-caption{margin:-8px 0 12px;color:var(--k-muted);font-size:12px;line-height:18px;}
.costs-origin{display:grid;gap:16px;}
.costs-origin-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:14px;line-height:22px;}
.costs-origin-head strong{font-weight:500;font-variant-numeric:tabular-nums;}
progress.costs-origin-bar{display:block;width:100%;height:8px;border:0;border-radius:var(--k-radius-status);background:var(--k-subtle);color:var(--k-primary);appearance:none;-webkit-appearance:none;}
progress.costs-origin-bar.tool-other{color:var(--k-primary)!important;}
progress.costs-origin-bar::-webkit-progress-bar{background:var(--k-subtle);border-radius:var(--k-radius-status);}
.costs-gap{display:grid;justify-items:start;gap:8px;margin-top:20px;padding-top:20px;border-top:1px solid var(--k-divider);}
.costs-gap-first{margin:4px 0 0;color:var(--k-muted);font-size:12px;line-height:18px;}
.costs-tabs{display:flex;gap:20px;margin:0 0 20px;overflow-x:auto;border-bottom:1px solid var(--k-divider);scrollbar-width:none;}
main .costs-tab{flex:none;min-height:40px;padding:0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--k-muted);font-size:14px;font-weight:400;}
main .costs-tab:hover{border-color:transparent;background:transparent;color:var(--k-text);}
main .costs-tab.active{border-bottom-color:var(--k-primary);color:var(--k-text);font-weight:500;}
.costs-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;}
.costs-filters :is(select,input){width:180px;min-height:36px;height:36px;font-size:12px;}
.costs-table-wrap{max-width:100%;overflow-x:auto;}
.costs-table{width:100%;border-collapse:collapse;}
.costs-table th{height:40px;padding:0 12px;background:var(--k-subtle);color:var(--k-muted);font-size:12px;font-weight:400;line-height:18px;text-align:left;white-space:nowrap;}
.costs-table td{height:57px;padding:8px 12px;border-bottom:1px solid var(--k-divider);color:var(--k-text);font-size:14px;line-height:22px;overflow-wrap:anywhere;}
.costs-table td:first-child{font-weight:500;}
.costs-table .num{text-align:right;font-variant-numeric:tabular-nums;}
.costs-table-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:8px;color:var(--k-muted);font-size:12px;line-height:18px;}
.costs-pager{display:flex;align-items:center;gap:8px;}
main .costs-pager .link-button,main .costs-link{min-height:auto;padding:0;font-weight:500;}
main .costs-pager .link-button{color:var(--k-muted);font-size:12px;font-weight:400;}
.costs-detail-links{margin-top:12px;}
.costs-note{margin:12px 0 0;color:var(--k-muted);font-size:12px;line-height:18px;}
.costs-subhead{margin:24px 0 12px;font-size:16px;font-weight:500;line-height:24px;}
.costs-actions-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;}
main .costs-wide-button,main .costs-primary-button{min-width:184px;margin-top:16px;}
.costs-callout{margin-top:16px;padding:16px;border-radius:var(--k-radius-control);}
.costs-callout strong{display:block;font-size:14px;font-weight:500;line-height:22px;}
.costs-callout p{margin:4px 0 0;font-size:12px;line-height:18px;}
.costs-callout-warning{background:var(--k-warning-bg);color:var(--k-warning-text);}
.costs-callout-success{background:var(--k-success-bg);color:var(--k-success-text);}
.costs-callout-info{margin:0 0 16px;background:var(--k-subtle);color:var(--k-text);}
.costs-facts{display:grid;margin:0;}
.costs-fact{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;padding:16px 0;border-bottom:1px solid var(--k-divider);}
.costs-fact dt{color:var(--k-muted);font-size:12px;line-height:18px;}
.costs-fact dd{margin:0;color:var(--k-text);font-size:14px;line-height:22px;overflow-wrap:anywhere;}
.costs-side .costs-fact{grid-template-columns:1fr;gap:4px;}
.costs-form{display:grid;gap:16px;}
.costs-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;}
.costs-field{display:grid;align-content:start;gap:8px;min-width:0;}
.costs-field.wide{grid-column:1/-1;}
.costs-field-label{color:var(--k-text);font-size:14px;font-weight:500;line-height:22px;}
.costs-field :is(input,select,textarea){width:100%;}
.costs-pair{display:flex;gap:8px;min-width:0;}
.costs-pair>*{flex:1;min-width:0;}
.costs-form-section{margin:8px 0 0;font-size:16px;font-weight:500;line-height:24px;}
.costs-form-actions{display:flex;flex-wrap:wrap;gap:12px;}
.costs-form-actions button{min-width:144px;}
.costs-optional summary{color:var(--k-muted);font-size:13px;cursor:pointer;}
.costs-optional .costs-form-grid{margin-top:12px;}
.costs-receipt:empty{display:none;}
.costs-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin:24px 0 0;color:var(--k-muted);font-size:12px;line-height:18px;}
main .costs-foot .costs-link{color:var(--k-muted);font-size:12px;font-weight:400;}
.costs-legacy-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:12px 16px;border-radius:var(--k-radius-control);background:var(--k-subtle);font-size:13px;}
@media (max-width:800px){
  .costs-actions{width:100%;}
  .costs-month{flex:1;min-width:0;}
  .costs-month input{width:100%;}
  #costs-primary{flex:1;min-width:0;}
  .costs-kpis{grid-template-columns:1fr;gap:0;}
  .costs-kpi{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head value" "note value";column-gap:12px;padding:16px 0;border-bottom:1px solid var(--k-divider);}
  .costs-kpi:last-child{border-bottom:0;}
  .costs-kpi-head{grid-area:head;}
  .costs-kpi-value{grid-area:value;align-self:center;font-size:24px;line-height:32px;text-align:right;}
  .costs-kpi-note{grid-area:note;}
  .costs-grid,.costs-form-layout,.costs-form-grid{grid-template-columns:1fr;}
  .costs-filters :is(select,input){flex:1;width:auto;min-width:0;}
  .costs-table thead{display:none;}
  .costs-table,.costs-table tbody,.costs-table tr,.costs-table td{display:block;width:100%;}
  .costs-table tr{padding:12px 0;border-bottom:1px solid var(--k-divider);}
  .costs-table td{display:flex;justify-content:space-between;gap:12px;height:auto;padding:4px 0;border:0;font-size:13px;text-align:right;}
  .costs-table td::before{content:attr(data-label);flex:none;max-width:45%;color:var(--k-muted);font-size:12px;font-weight:400;text-align:left;}
  .costs-table td:first-child{display:block;padding-bottom:8px;font-size:14px;text-align:left;}
  .costs-table td:first-child::before{content:none;}
  .costs-fact{grid-template-columns:1fr;gap:4px;}
  main .costs-wide-button,main .costs-primary-button,a.costs-export.button-link{width:100%;}
}
/* ── saas-pages-costs end ── */
/* saas-pages-costs: inline links in forms keep their width */
.costs-form>.costs-link,.costs-card>.costs-link{justify-self:start;}
/* A day without a combined total shows its largest single-source total as a lower bound. */
progress.day-bar-floor{opacity:.45;}
progress.day-bar-floor::-webkit-progress-value{background:repeating-linear-gradient(45deg,currentColor 0 4px,transparent 4px 7px);}
progress.day-bar-floor::-moz-progress-bar{background:repeating-linear-gradient(45deg,currentColor 0 4px,transparent 4px 7px);}
/* ── saas-visual-prod-fixes (production visual acceptance 9c4e134) ── */
/* A-V32: numeric cells never break a short word such as 未提供 into two lines. */
@media (min-width:801px){.adopt-table td.num{white-space:nowrap;overflow-wrap:normal;}}
/* A-V33: an overlapping day shows the lower bound plus one marker; the per-source split rides in its title. */
.adopt-overlap-tag{display:inline-block;margin-left:var(--space-2);padding:0 var(--space-2);border-radius:4px;background:var(--k-warning-bg,#fff6e6);color:var(--k-muted);font-size:12px;font-weight:400;line-height:20px;white-space:nowrap;vertical-align:1px;cursor:help;}
/* A-V1/V2: on a phone the cost H1 owns its line; month and primary action share the next one, half each. */
@media (max-width:480px){
  :root[data-cost-design=on] header{flex-direction:column;align-items:stretch;}
  :root[data-cost-design=on] header .header-actions{width:100%;}
  :root[data-cost-design=on] .costs-actions:has(#costs-primary:not([hidden])) :is(.costs-month,#costs-primary){flex:none;box-sizing:border-box;width:calc(50% - 6px);}
}
/* B-V11: the global `form{align-items:end}` pushed a column down whenever its neighbour carried helper text. */
.o-form,form:is(.ka-grid,.costs-form-grid){align-items:start;}
/* A-V7: a 44px touch-target link in a phone table row keeps its label on the same line, centred. */
@media (max-width:800px){.costs-table td:has(>button){align-items:center;}}
/* A-V5: the phone link-button bleed (-8px) collapsed 「上一页 1 / N 下一页」 into one word; pager links keep their gap. */
main :is(.costs-pager,.adopt-pager) .link-button{margin:0;}
/* The overlap tag is focusable so keyboard and touch users reach its per-source split. */
.adopt-overlap-tag:focus-visible{outline:2px solid var(--k-primary);outline-offset:1px;}
/* saas-visual-prod-fixes R2-V7: a source CSV above the export limit is shown but cannot be opened. */
a.export-disabled{opacity:.5;cursor:not-allowed;pointer-events:none;}
/* saas-visual-polish (production visual polish, 2026-10-18) */
/* A-V8: empty states are text only; the grey box with a dash read as a missing value. */
.empty::before{content:none;display:none;}
/* A-V10: the native file picker keeps its behaviour and keyboard access; only its frame matches the text inputs. */
main input[type=file]{min-height:40px;padding:8px 12px;font-size:14px;line-height:22px;color:var(--k-muted);}
main input[type=file]::file-selector-button{margin:0 12px 0 0;padding:0 12px 0 0;border:0;border-right:1px solid var(--k-divider);border-radius:0;background:transparent;color:var(--k-text);font-weight:500;}
/* A-V18: the optional payment block keeps the form's 16px rhythm. */
.costs-form>details.costs-optional{margin:0;}
.costs-form>details.costs-optional+.costs-note{margin-top:0;}
/* A-V26: with more than six tools the two adoption cards stack and the tool list flows into columns; every tool stays listed. */
.adopt-grid:has(.adopt-tool-row:nth-child(7)){grid-template-columns:minmax(0,1fr);}
.adopt-grid:has(.adopt-tool-row:nth-child(7)) .adopt-tool-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));column-gap:24px;}
/* A-V27: the active-day bars leave 16px before the growth groups. */
.adopt-days{margin-bottom:16px;}
/* A-V24: the account block reads left aligned, name and 退出登录 alike. */
.aside-bottom #logout{justify-self:start;justify-content:flex-start;width:auto;padding:0 var(--space-4);}
/* B-V24: 导出 CSV on X01 reads like the other pages' export links. */
main .actions-export{min-height:auto;padding:0;color:var(--k-muted);font-size:12px;font-weight:400;}
/* H01: the row icon carries the shell's semantic icon for its kind. */
.home-row-icon{display:grid;place-items:center;color:var(--k-muted);}
.home-row-icon.home-status-verified{color:var(--k-success-text);}
.home-row-icon .nav-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
@media (max-width:800px){
  main input[type=file]{min-height:44px;padding:var(--space-2) var(--space-3);}
  /* A-V9 / A-V14: form actions full width, one above the other. */
  .costs-form-actions{flex-direction:column;}
  .costs-form-actions>:is(button,.button-link){width:100%;min-width:0;}
  /* A-V21: a field / value table shows each value once under its field name. */
  :is(.costs-kv .costs-table,.adopt-kv .adopt-table) td:last-child{display:block;text-align:left;}
  :is(.costs-kv .costs-table,.adopt-kv .adopt-table) td:last-child::before{content:none;}
  /* A-V27: the bar track spans the card; the count sits above its right end. */
  .adopt-days .adopt-bar-row{grid-template-columns:minmax(0,1fr) auto;}
  /* A-V23: drawer navigation in the text colour, weight 500, centred. */
  .nav-drawer #main-navigation .shell-module:not(.active){color:var(--k-text);}
  .nav-drawer #main-navigation .shell-module{font-weight:500;}
  .nav-drawer #main-navigation .shell-module .nav-label{flex:none;}
}
/* saas-spacing-scale: one spacing scale for every page. Stacked sections are --layout-section apart (48/32), sibling
   cards in a grid --layout-gap (16/12), an element attached to the block above --layout-group (12/8), card padding
   --layout-pad (24/16). Zero-specificity stack rule: grids, flex rows and component rules keep their own spacing. */
:where(.panel:not([hidden]) ~ .panel){margin-top:var(--layout-section);}
details.panel{margin:0;}
:where(.panel:not([hidden])) ~ details.panel{margin-top:var(--layout-section);}
.panel.legal-danger-zone{margin-top:var(--layout-section);}
:where(.overview-column,.overview-secondary,.overview-grid,.home-grid,.budget-grid,.costs-view,.costs-grid,.costs-form-layout,.adopt-view,.adopt-grid,.o-view,.actions-page,.action-lower,.insight-grid)>.panel{margin:0;}
/* 使用概况: the column grid, coverage strip, tools/departments row and model ranking are four stacked sections. */
#overview-usage-content>*{margin-block:0;}
#overview-usage-content>:not([hidden])~:not([hidden]){margin-top:var(--layout-section);}
/* 企业预算: the alert belongs to the KPI band above it; on desktop 预算权限 spans the 企业预算 card and the change
   log so the short read-only card leaves no hole beside it. */
#budget-page>*{margin-block:0;}
#budget-page>.budget-toolbar{margin-bottom:var(--layout-group);}
#budget-page>:is(.budget-alert,.budget-other){margin-top:var(--layout-group);}
#budget-page>.budget-alert{padding:var(--space-4) var(--layout-pad);}
#budget-page .budget-grid>.panel,#budget-page>.budget-history{margin-top:var(--layout-section);}
#budget-page>.home-footnote{margin-top:var(--layout-group);}
@media (min-width:801px){
  #budget-page:not([hidden]){display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);column-gap:var(--layout-gap);align-items:start;}
  #budget-page>*{grid-column:1/-1;}
  #budget-page>.budget-grid{display:contents;}
  #budget-page .budget-edit{grid-column:1;}
  #budget-page .budget-rights{grid-column:2;grid-row:span 2;}
  #budget-page>.budget-history{grid-column:1;margin-top:var(--layout-gap);}
}
@media (max-width:800px){.budget-grid{gap:0;}}
/* 个人成果 核验: status and review time on one line, the note on one line, row actions beside them. */
#personal-outcomes-rows td:last-child>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:var(--space-2);}
#personal-outcomes-rows td:last-child>div>.outcome-status{grid-column:1;grid-row:1;}
#personal-outcomes-rows td:last-child>div>small{grid-column:2;grid-row:1;color:var(--k-muted);font-size:12px;line-height:18px;white-space:nowrap;}
#personal-outcomes-rows td:last-child>div>p{grid-column:1/3;grid-row:2;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#personal-outcomes-rows td:last-child>div>.outcome-actions{grid-column:3;grid-row:1/3;flex-wrap:nowrap;white-space:nowrap;}
#personal-outcomes-rows td:nth-child(2){white-space:normal;overflow:visible;text-overflow:clip;}
/* 数据来源状态: the covered range stays on one line in a wider column. */
.ah-sources .ka-table th:nth-child(2){width:156px;}
.ah-sources .ka-table th:nth-child(3){width:220px;}
.ah-sources .ka-table th:nth-child(4){width:120px;}
.ah-sources .ka-table th:nth-child(6){width:96px;}
.ah-sources .ka-table td:nth-child(3) .ah-lines>span{white-space:nowrap;}
/* 研发项目专项: the 1120px column (240 sidebar, 40 page edges) keeps the project name on one line. */
#rd-view .o-table .insight-table th:first-child{width:36%;}
@media (max-width:640px){
  /* Rankings: identity, bar, then figures, each at full width; figures never break inside a number. */
  #dashboard .rank-row{grid-template-columns:18px minmax(0,1fr);column-gap:var(--space-3);row-gap:var(--space-2);}
  #dashboard .rank-row>.rank-identity{grid-column:2;grid-row:1;min-width:0;}
  #dashboard .rank-row>.stack{grid-column:2;grid-row:2;min-width:0;}
  #dashboard .rank-row>.rank-figures{grid-column:2;grid-row:3;justify-self:stretch;align-items:stretch;min-width:0;}
  #dashboard .rank-row>.rank-number{grid-column:1;grid-row:1;}
  #dashboard .rank-row .figure-pair{justify-content:space-between;}
  #dashboard .rank-row>.rank-figures>:not(.figure-pair){justify-content:flex-start;align-self:flex-start;text-align:left;}
  #dashboard .rank-row :is(.figure-pair>strong,.figure-pair>.link-button,.rank-figures>button:first-child){white-space:nowrap;}
  #dashboard .rank-row .badges{margin-left:0;}
  /* Every plain data table becomes label / value cards (column names come from data-label). Tables with their own
     phone layout keep it: 优化行动 list, 研发 o-table, health tables, 席位额度 cards. */
  #dashboard :is(.insight-table-wrap,.price-modes,.costs-table-wrap,.adopt-table-wrap):not(.o-table *,.health-table *,#seat-quota-rows *){overflow:visible;border:0;}
  #dashboard :is(#source-spending,#snapshot-rows) .insight-table-wrap::before{content:none;}
  #dashboard :is(.insight-table,.budget-history-table,.price-mode-table):not(.actions-table,.o-table *,.health-table *,#seat-quota-rows *) thead{display:none;}
  #dashboard :is(.insight-table,.budget-history-table,.price-mode-table):not(.actions-table,.o-table *,.health-table *,#seat-quota-rows *),#dashboard :is(.insight-table,.budget-history-table,.price-mode-table):not(.actions-table,.o-table *,.health-table *,#seat-quota-rows *) :is(tbody,tr){display:block;width:100%;min-width:0;}
  #dashboard :is(.insight-table,.budget-history-table,.price-mode-table):not(.actions-table,.o-table *,.health-table *,#seat-quota-rows *) tr{padding:var(--space-3) 0;border-bottom:1px solid var(--k-divider);}
  #dashboard :is(.insight-table,.budget-history-table,.price-mode-table):not(.actions-table,.o-table *,.health-table *,#seat-quota-rows *) td{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);width:100%;min-width:0;max-width:none;height:auto;padding:var(--space-1) 0;border:0;text-align:right;white-space:normal;overflow-wrap:anywhere;}
  #dashboard :is(.insight-table,.budget-history-table,.price-mode-table):not(.actions-table,.o-table *,.health-table *,#seat-quota-rows *) td::before{content:attr(data-label);flex:none;max-width:45%;color:var(--k-muted);font-size:12px;font-weight:400;text-align:left;}
  #dashboard :is(.insight-table,.budget-history-table,.price-mode-table):not(.actions-table,.o-table *,.health-table *,#seat-quota-rows *) td:first-child{display:block;padding-bottom:var(--space-2);font-weight:600;text-align:left;}
  #dashboard :is(.insight-table,.budget-history-table,.price-mode-table):not(.actions-table,.o-table *,.health-table *,#seat-quota-rows *) td:first-child::before{content:none;}
  #dashboard :is(.insight-table,.budget-history-table,.price-mode-table):not(.actions-table,.o-table *,.health-table *,#seat-quota-rows *) td.numeric{white-space:nowrap;}
  #personal-outcomes-rows td:last-child>div{flex:1;min-width:0;grid-template-columns:auto minmax(0,1fr);row-gap:var(--space-1);text-align:left;}
  #personal-outcomes-rows td:last-child>div>small{text-align:right;}
  #personal-outcomes-rows td:last-child>div>.outcome-actions{grid-column:1/-1;grid-row:3;justify-content:flex-end;}
}

.topbar-avatar>.avatar{width:100%;height:100%;font-size:inherit;}
