/* Auri AppShell / AdminHeader / Table / RowList / Dialog. */
:root { color-scheme:light; --executor-gpt-bg:var(--chip-default-bg); --executor-gpt-text:var(--chip-default-text); --executor-d-bg:var(--chip-success-bg); --executor-d-text:var(--chip-success-text); --executor-glm-bg:var(--chip-warning-bg); --executor-glm-text:var(--chip-warning-text); }
/* Local monitor identity: keep the copied Auri tokens unchanged. */
:root {
  --text-accent:#047857; --accent:#047857; --accent-hover:#065f46; --accent-subtle:#ecfdf5;
  --accent-disabled:#a7f3d0; --sa-accent:#047857; --sa-accent-subtle:#ecfdf5;
  --focus-ring:#047857; --focus-input-ring:#a7f3d0; --link:#047857; --link-hover:#065f46;
}
[data-theme="dark"] {
  color-scheme:dark;
  --text-accent:#34d399; --accent:#047857; --accent-hover:#065f46; --accent-subtle:rgb(16 185 129 / 0.14);
  --accent-disabled:#14533e; --sa-accent:#34d399; --sa-accent-subtle:rgb(16 185 129 / 0.14);
  --focus-ring:#34d399; --focus-input-ring:rgb(52 211 153 / 0.35); --link:#34d399; --link-hover:#a7f3d0;
}
::selection { background:rgb(16 185 129 / 0.22); }
* { box-sizing:border-box; min-width:0; }
html { -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body { margin:0; font:var(--text-sm)/var(--text-sm-lh) var(--font-sans); color:var(--text-body); background:var(--bg-page); }
button,input,select { font:inherit; } button,a,input,select { -webkit-tap-highlight-color:transparent; } button { cursor:pointer; color:inherit; } button:disabled { cursor:default; opacity:.55; }
a { color:var(--link); text-decoration:none; } a:hover { text-decoration:underline; } svg { display:block; width:18px; height:18px; flex:none; }
[hidden] { display:none!important; } :focus-visible { outline:2px solid var(--focus-ring); outline-offset:3px; }
h1,h2,h3,p { margin:0; } h1,h2,h3 { color:var(--text-strong); } ::selection { background:var(--blue-a5); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:8px; left:8px; z-index:100; transform:translateY(-200%); padding:8px 12px; background:var(--surface-raised); border:1px solid var(--border-default); }.skip-link:focus { transform:none; }
.app-shell { display:flex; min-height:100dvh; border-top:3px solid var(--sa-accent); }
.sidebar { position:sticky; top:0; height:calc(100dvh - 3px); width:var(--shell-sidebar-width); flex:none; display:flex; flex-direction:column; background:var(--surface-panel); border-right:1px solid var(--border-default); z-index:30; }
.brand-row { height:var(--shell-header-height); display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 16px; border-bottom:1px solid var(--border-default); flex:none; }
.brand { display:flex; align-items:center; gap:10px; color:var(--text-strong); }.brand:hover { text-decoration:none; }
.brand-mark { display:inline-flex; align-items:center; justify-content:center; width:30px; height:32px; color:var(--sa-accent); flex:none; }.brand-mark svg { width:28px; height:28px; }
.brand-text { font-size:18px; font-weight:600; white-space:nowrap; }
.icon-button { border:0; border-radius:var(--radius-md); background:transparent; display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; flex:none; color:var(--text-muted); }.icon-button:hover { background:var(--surface-hover-strong); color:var(--text-strong); }
.sidebar-content { padding:20px 12px; overflow-y:auto; flex:1; }
.environment { display:flex; align-items:center; gap:10px; padding:0 12px 24px; color:var(--text-strong); font-weight:500; }.environment-note { display:block; color:var(--text-subtle); font-size:12px; font-weight:400; margin-top:2px; }.environment-dot { width:6px; height:6px; background:var(--success); border-radius:var(--radius-full); flex:none; }
.nav-group-label { padding:0 12px; margin-bottom:8px; color:var(--text-subtle); font-size:12px; font-weight:500; }
.nav-link { display:flex; align-items:center; gap:10px; padding:8px 12px; min-height:var(--shell-nav-row); margin:2px 0; border-radius:var(--radius-md); color:var(--text-muted); font-weight:500; }.nav-link:hover { background:var(--surface-panel-hover); text-decoration:none; }.nav-link[aria-current="page"] { color:var(--text-accent); background:var(--accent-subtle); }
.nav-text { flex:1; }.nav-count { font:12px var(--font-mono); min-width:20px; text-align:center; border-radius:var(--radius-sm); color:var(--text-subtle); }.nav-count.alert { color:var(--chip-error-text); background:var(--chip-error-bg); }
.nav-separator { border-top:1px solid var(--divider); margin:16px 12px; }
.sidebar-footer { padding:16px 20px; border-top:1px solid var(--border-default); display:grid; gap:10px; }.theme-label { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--text-muted); }.local-caption { display:flex; gap:8px; align-items:center; color:var(--text-subtle); font-size:11px; margin-top:4px; }
.workspace { flex:1; }
.page-header { height:var(--shell-header-height); position:sticky; top:0; z-index:20; padding:0 24px; display:flex; gap:16px; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border-default); background:var(--bg-page); }
.header-heading,.header-actions { display:flex; align-items:center; gap:12px; }.page-header h1 { font-size:16px; line-height:24px; font-weight:600; }.header-count { color:var(--text-subtle); font:12px var(--font-mono); }
.connection { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--text-subtle); white-space:nowrap; }.connection::before { content:""; width:6px; height:6px; border-radius:var(--radius-full); background:var(--text-placeholder); }.connection.online::before { background:var(--success); }.connection.offline::before { background:var(--warning); }
.button { display:inline-flex; justify-content:center; align-items:center; gap:8px; border:1px solid var(--border-input); border-radius:var(--radius-md); padding:7px 12px; min-height:36px; font-weight:500; font-size:13px; white-space:nowrap; background:var(--surface-card); color:var(--text-strong); box-shadow:var(--shadow-xs); }.button:hover { background:var(--surface-hover); }.button-quiet { border:0; box-shadow:none; background:transparent; color:var(--text-muted); }
main { padding:24px 24px 16px; max-width:1536px; margin:0 auto; }
.intro { display:flex; justify-content:space-between; gap:16px; color:var(--text-muted); margin-bottom:24px; }.intro>span { color:var(--text-subtle); font-size:12px; white-space:nowrap; }
.notice { border:1px solid var(--border-default); border-radius:var(--radius-md); padding:12px 16px; background:var(--chip-warning-bg); color:var(--chip-warning-text); margin-bottom:16px; font-size:13px; }
.summary-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }.summary-heading h2 { font-size:14px; font-weight:600; }.summary-heading span { font-size:12px; color:var(--text-subtle); }
.executor-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }.executor-card { padding:16px; border:1px solid var(--border-default); border-radius:var(--radius-lg); background:var(--surface-card); box-shadow:var(--shadow-xs); }
.executor-card-heading { display:flex; align-items:center; gap:8px; }.executor-card-heading h3 { font-size:14px; font-weight:600; }.executor-card-heading .muted { font-size:12px; margin-left:auto; }
.executor-badge,.status-badge { display:inline-flex; align-items:center; justify-content:center; gap:5px; font-size:12px; line-height:18px; font-weight:500; padding:4px 8px; border-radius:var(--radius-md); box-shadow:inset 0 0 0 1px var(--gray-a3); white-space:nowrap; width:fit-content; }
.executor-badge.GPT { color:var(--executor-gpt-text); background:var(--executor-gpt-bg); }.executor-badge.CC { color:var(--executor-gpt-text); background:var(--surface-sunken); }.executor-badge.D { color:var(--executor-d-text); background:var(--executor-d-bg); }.executor-badge.GLM { color:var(--executor-glm-text); background:var(--executor-glm-bg); }
.executor-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:16px; gap:8px; }.executor-stat span { display:block; font-size:11px; color:var(--text-subtle); margin-top:4px; white-space:nowrap; }.executor-stat strong { display:block; font-family:var(--font-sans); font-stretch:var(--display-stretch); font-size:24px; line-height:28px; font-weight:600; color:var(--text-strong); }.executor-stat:first-child strong { color:var(--text-accent); }
.capacity { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:16px 0 24px; }.capacity-card { display:grid; grid-template-columns:1fr auto; gap:6px 16px; border:1px solid var(--border-default); border-radius:var(--radius-lg); padding:12px 16px; background:var(--surface-sunken); }.capacity-title { font-size:12px; font-weight:500; color:var(--text-muted); }.capacity-value { text-align:right; color:var(--text-strong); font:14px var(--font-mono); }.capacity-note { font-size:11px; color:var(--text-subtle); grid-column:1/-1; }.capacity-card progress { grid-column:1/-1; margin:2px 0; }
progress { display:block; appearance:none; width:100%; height:4px; border:0; border-radius:var(--radius-full); background:var(--surface-strong); color:var(--text-accent); overflow:hidden; } progress::-webkit-progress-bar { background:var(--surface-strong); } progress::-webkit-progress-value { background:var(--text-accent); } progress::-moz-progress-bar { background:var(--text-accent); }.capacity-card.warning progress::-webkit-progress-value { background:var(--warning); }.capacity-card.danger progress::-webkit-progress-value { background:var(--danger); }
.registry { border:1px solid var(--border-default); border-radius:var(--radius-lg); background:var(--surface-card); box-shadow:var(--shadow-xs); overflow:clip; }.registry-heading { padding:20px 20px 16px; display:flex; align-items:center; justify-content:space-between; gap:16px; }.registry-heading h2 { font-size:14px; font-weight:600; }.registry-heading p { font-size:12px; color:var(--text-subtle); margin-top:4px; }
.filters { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:0 20px 16px; }
input,select { color:var(--text-strong); background:var(--surface-input); border:1px solid var(--border-input); border-radius:var(--radius-md); padding:8px 10px; min-height:36px; outline:none; width:100%; font-size:13px; } input:focus,select:focus { border-color:var(--focus-ring); box-shadow:0 0 0 2px var(--focus-input-ring); } input::placeholder { color:var(--text-placeholder); } select option { background:var(--surface-raised); color:var(--text-strong); }
.search-field { position:relative; flex:1 1 230px; }.search-field>span:not(.sr-only) { position:absolute; left:10px; top:9px; color:var(--text-subtle); }.search-field input { padding-left:36px; }.filter-field { flex:0 1 160px; }.filter-field select { padding-right:24px; }.custom-dates { display:flex; gap:16px; width:100%; color:var(--text-muted); font-size:12px; }.custom-dates label { display:flex; align-items:center; gap:8px; }
.muted { color:var(--text-subtle); font-size:12px; }
.task-table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:var(--text-sm); }.task-table th { text-align:left; color:var(--text-subtle); font-size:12px; font-weight:500; background:var(--surface-sunken); padding:10px 16px; border-top:1px solid var(--divider); border-bottom:1px solid var(--divider); }.task-table td { border-bottom:1px solid var(--divider); padding:16px; vertical-align:top; }.task-table tr:last-child td { border-bottom:0; }.task-table tbody tr:hover { background:var(--surface-hover); }.task-table th:first-child,.task-table td:first-child { padding-left:20px; }.task-table th:last-child,.task-table td:last-child { padding-right:20px; }
.task-table .col-task { width:39%; }.task-table .col-executor { width:22%; }.task-table .col-status { width:17%; }.task-table .col-time { width:12%; }.task-table .col-cost { width:10%; }
.task-table .cost-cell { text-align:right; font-family:var(--font-mono); white-space:nowrap; }.task-open { padding:0; border:0; background:none; text-align:left; font-weight:500; color:var(--text-strong); width:100%; line-height:20px; overflow-wrap:anywhere; }.task-open:hover { color:var(--link); }.task-subtitle { margin-top:4px; font-size:12px; color:var(--text-subtle); overflow-wrap:anywhere; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }.task-reference { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:6px; color:var(--text-subtle); font-size:11px; }.task-reference code { font:11px var(--font-mono); }.model-line { margin-top:5px; color:var(--text-subtle); font-size:11px; overflow-wrap:anywhere; }.time-cell { font-family:var(--font-mono); color:var(--text-body); font-size:12px; }.time-cell small { display:block; font:11px var(--font-sans); margin-top:5px; color:var(--text-subtle); }
.status-badge.running { color:var(--chip-default-text); background:var(--chip-default-bg); }.status-badge.queued,.status-badge.unknown { color:var(--chip-neutral-text); background:var(--chip-neutral-bg); }.status-badge.done { color:var(--chip-success-text); background:var(--chip-success-bg); }.status-badge.partial { color:var(--chip-warning-text); background:var(--chip-warning-bg); }.status-badge.error,.status-badge.limit { color:var(--chip-error-text); background:var(--chip-error-bg); }.status-dot { width:5px; height:5px; background:currentColor; border-radius:var(--radius-full); }.issue-note { color:var(--chip-warning-text); margin-top:6px; font-size:11px; overflow-wrap:anywhere; }
.empty-state { padding:48px 24px; border-top:1px solid var(--divider); display:flex; align-items:center; flex-direction:column; text-align:center; gap:12px; }.empty-icon { width:40px; height:40px; border:1px solid var(--border-default); border-radius:var(--radius-lg); color:var(--text-subtle); display:grid; place-items:center; background:var(--surface-sunken); }.empty-state h3 { font-size:14px; font-weight:500; }.empty-state p { color:var(--text-subtle); font-size:13px; max-width:390px; }
.pagination { padding:12px 20px; display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--divider); gap:12px; color:var(--text-subtle); font-size:12px; }.pagination-buttons { display:flex; gap:8px; }.page-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:16px 0; color:var(--text-subtle); font-size:11px; }
.skeleton { display:block; background:var(--surface-muted); border-radius:var(--radius-sm); animation:pulse 1.6s ease-in-out infinite; }.skeleton.title { width:55%; height:16px; }.skeleton.line { width:85%; height:12px; margin-top:12px; }.skeleton.number { width:40px; height:28px; }.skeleton-row { display:grid; grid-template-columns:2fr 1fr 1fr; gap:24px; border-top:1px solid var(--divider); padding:20px; } @keyframes pulse { 50% { opacity:.45; } }
.finance-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:24px; }.finance-number { font-size:28px; line-height:36px; font-stretch:var(--display-stretch); color:var(--text-strong); font-weight:600; margin:8px 0; }.finance-label { font-size:12px; color:var(--text-subtle); }
.executor-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:0 20px 20px; }.executor-detail { padding:16px; border:1px solid var(--border-default); border-radius:var(--radius-md); }.executor-detail h3 { display:flex; align-items:center; gap:8px; font-size:14px; }.executor-detail p { color:var(--text-subtle); font-size:12px; margin-top:12px; }.executor-detail dl { display:grid; grid-template-columns:1fr auto; gap:8px; font-size:12px; margin:16px 0; }.executor-detail dt { color:var(--text-subtle); }.executor-detail dd { margin:0; color:var(--text-strong); font-family:var(--font-mono); }.executor-detail .button { width:100%; }
.package-group { border-top:1px solid var(--divider); padding:16px 20px; }.package-heading { display:flex; justify-content:space-between; gap:12px; margin-bottom:8px; }.package-heading h3 { font-size:13px; }.package-runs { display:grid; gap:8px; }.package-run { display:flex; align-items:center; gap:10px; padding:8px; border:1px solid var(--border-default); border-radius:var(--radius-md); }.package-run .task-open { flex:1; font-size:12px; }
.modal-backdrop { position:fixed; inset:0; z-index:60; padding:24px; display:flex; align-items:center; justify-content:center; background:var(--overlay-scrim); }.task-modal { display:flex; flex-direction:column; width:52rem; max-width:100%; max-height:calc(100dvh - 48px); background:var(--surface-card); border:1px solid var(--border-default); border-radius:var(--radius-md); box-shadow:var(--shadow-lg); }
.modal-header { display:flex; justify-content:space-between; gap:16px; padding:24px; border-bottom:1px solid var(--divider); }.modal-header h2 { font-size:var(--text-lg); line-height:var(--text-lg-lh); font-weight:600; margin:8px 0; overflow-wrap:anywhere; }.task-kicker { color:var(--text-subtle); font:11px var(--font-mono); overflow-wrap:anywhere; }.task-meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; color:var(--text-subtle); font-size:12px; }
.task-tabs { display:flex; padding:0 24px; border-bottom:1px solid var(--divider); gap:20px; flex:none; }.task-tab { background:none; border:0; border-bottom:2px solid transparent; padding:12px 0 10px; font-size:13px; color:var(--text-muted); }.task-tab[aria-selected="true"] { color:var(--text-accent); border-bottom-color:var(--text-accent); }
.task-body { overflow-y:auto; padding:24px; flex:1; min-height:160px; }.task-body h3 { font-size:14px; font-weight:600; margin-bottom:12px; }.task-body section+section { margin-top:24px; }.key-values { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 24px; margin:0 0 24px; }.key-value dt { color:var(--text-subtle); font-size:12px; margin-bottom:4px; }.key-value dd { margin:0; color:var(--text-strong); font-size:13px; overflow-wrap:anywhere; }.mono { font-family:var(--font-mono); font-size:12px; }.text-block { font:13px/1.65 var(--font-sans); white-space:pre-wrap; overflow-wrap:anywhere; margin:0; color:var(--text-body); }.log-block { font-family:var(--font-mono); font-size:11px; padding:16px; background:var(--surface-sunken); border:1px solid var(--border-default); border-radius:var(--radius-md); }.detail-callout { background:var(--chip-warning-bg); color:var(--chip-warning-text); padding:12px; border-radius:var(--radius-md); margin-bottom:16px; font-size:13px; }.screenshot-list { display:grid; gap:12px; }.screenshot-list img { display:block; width:100%; border:1px solid var(--border-default); border-radius:var(--radius-md); }.screenshot-list a { font-size:12px; overflow-wrap:anywhere; }.modal-footer { display:flex; justify-content:space-between; gap:16px; align-items:center; padding:12px 24px; border-top:1px solid var(--divider); flex:none; }.modal-footer>span { font-size:11px; color:var(--text-subtle); }.modal-open { overflow:hidden; }
.mobile-only,.rail-only { display:none; }
.sidebar-collapsed .sidebar { width:var(--shell-rail-width); }.sidebar-collapsed .brand-row { padding:0 16px; }.sidebar-collapsed .brand-text,.sidebar-collapsed .environment,.sidebar-collapsed .nav-group-label,.sidebar-collapsed .nav-text,.sidebar-collapsed .nav-count,.sidebar-collapsed .footer-label,.sidebar-collapsed #theme-select,.sidebar-collapsed .local-caption { display:none; }.sidebar-collapsed .sidebar-content { padding:16px 8px; }.sidebar-collapsed .nav-link { justify-content:center; padding:10px; }.sidebar-collapsed .sidebar-footer { padding:16px; }.sidebar-collapsed .theme-label { cursor:pointer; }
@media (max-width:1100px) and (min-width:768px) { .sidebar { width:var(--shell-rail-width); }.brand-row { padding:0 16px; }.brand-text,.collapse-button,.environment,.nav-group-label,.nav-text,.nav-count,.footer-label,#theme-select,.local-caption { display:none; }.sidebar-content { padding:16px 8px; }.nav-link { justify-content:center; padding:10px; }.sidebar-footer { padding:16px; }.theme-label { cursor:pointer; }.task-table .col-task { width:35%; }.task-table .col-executor { width:24%; } }
@media (max-width:900px) { .executor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.executor-detail-grid { grid-template-columns:1fr; }.task-table th,.task-table td { padding:12px; }.executor-card { padding:12px; }.executor-card-heading .muted { display:none; }.filter-field { flex:1 1 140px; }.executor-stat span { font-size:10px; } }
@media (max-width:767px) {
  .mobile-only { display:inline-flex; }.collapse-button { display:none; }.sidebar,.sidebar-collapsed .sidebar { position:fixed; top:3px; left:0; height:calc(100dvh - 3px); width:var(--shell-sidebar-width); transform:translateX(-100%); visibility:hidden; transition:transform .18s ease,visibility .18s; }.menu-open .sidebar { transform:translateX(0); visibility:visible; }.menu-backdrop { position:fixed; inset:0; background:var(--drawer-scrim); z-index:25; }.menu-open { overflow:hidden; }
  .sidebar-collapsed .brand-text,.sidebar-collapsed .environment,.sidebar-collapsed .nav-group-label,.sidebar-collapsed .nav-text,.sidebar-collapsed .nav-count,.sidebar-collapsed .footer-label,.sidebar-collapsed #theme-select,.sidebar-collapsed .local-caption { display:revert; }.sidebar-collapsed .brand-row { padding:0 16px; }.sidebar-collapsed .nav-link { justify-content:initial; padding:8px 12px; }.sidebar-collapsed .sidebar-content { padding:20px 12px; }.sidebar-collapsed .sidebar-footer { padding:16px 20px; }
  .page-header { padding:0 16px; gap:8px; }.header-heading { gap:8px; }.header-actions { gap:8px; }.connection { display:none; }.header-actions .button { font-size:12px; padding:6px 10px; min-height:32px; }.header-actions svg { width:14px; height:14px; }.page-header h1 { font-size:15px; } main { padding:16px; }.intro { flex-direction:column; gap:6px; margin-bottom:20px; font-size:13px; }.intro>span { font-size:11px; }.summary-heading { margin-bottom:10px; }.summary-heading span { font-size:11px; }
  .executor-grid { grid-template-columns:1fr; gap:8px; }.executor-card { padding:12px 16px; }.executor-card-heading .muted { display:block; }.executor-stats { margin-top:12px; }.executor-stat strong { font-size:22px; line-height:26px; }.executor-stat span { font-size:11px; }.capacity { grid-template-columns:1fr; gap:8px; margin:12px 0 20px; }.capacity-card { padding:12px 16px; }
  .registry-heading { padding:16px; align-items:flex-start; }.registry-heading p { font-size:11px; }.filters { padding:0 16px 16px; gap:8px; }.search-field { flex-basis:100%; }.filter-field { flex:1 1 calc(50% - 8px); }.filter-field select { font-size:12px; } input { font-size:16px; }.custom-dates { flex-direction:column; gap:8px; }.custom-dates label { display:grid; grid-template-columns:24px 1fr; }.custom-dates input { width:100%; }
  .task-table,.task-table tbody { display:block; width:100%; }.task-table thead { display:none; }.task-table tbody tr { display:grid; grid-template-columns:1fr 1fr; gap:12px 8px; padding:16px; border-top:1px solid var(--divider); }.task-table td { border:0; padding:0!important; display:block; }.task-table td:first-child { grid-column:1/-1; }.task-table td:nth-child(2) { grid-column:1/-1; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }.model-line { margin:0; flex:1; }.task-table td:nth-child(3) { grid-column:1; }.task-table td:nth-child(4) { grid-column:2; grid-row:3; text-align:right; }.task-table td:nth-child(5) { grid-column:2; text-align:right; }.cost-cell::before { content:"Стоимость: "; color:var(--text-subtle); font-family:var(--font-sans); font-size:11px; }.task-subtitle { -webkit-line-clamp:2; }.task-reference { margin-top:6px; }.time-cell small { display:none; }.task-table .cost-cell { font-size:11px; }.task-open { font-size:var(--text-sm); }.skeleton-row { grid-template-columns:1fr 1fr; gap:16px; }.skeleton-row>div:first-child { grid-column:1/-1; }
  .pagination { padding:12px 16px; }.pagination-buttons .button { padding:6px 10px; }.finance-summary { grid-template-columns:1fr; gap:8px; }.finance-number { font-size:24px; }.executor-detail-grid { padding:0 16px 16px; }.empty-state { padding:32px 16px; }.page-footer { flex-direction:column; }.package-group { padding:16px; }.package-run { flex-wrap:wrap; }.package-run .task-open { flex-basis:100%; }
  .modal-backdrop { padding:0; }.task-modal { max-height:100dvh; height:100dvh; border:0; border-radius:0; }.modal-header { padding:16px; gap:8px; }.modal-header h2 { font-size:16px; line-height:24px; }.task-tabs { padding:0 16px; gap:18px; }.task-tab { font-size:12px; }.task-body { padding:16px; }.key-values { grid-template-columns:1fr; gap:12px; }.modal-footer { padding:12px 16px; }.modal-footer>span { max-width:175px; }.log-block { padding:12px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* Rail controls remain reachable by keyboard and make expanding discoverable. */
@media (min-width:1101px) {
  .sidebar-collapsed .collapse-button { position:absolute; left:16px; top:66px; display:flex; }
  .sidebar-collapsed .sidebar-content { padding-top:60px; }
}
@media (min-width:768px) and (max-width:1100px) { .rail-only { display:flex; } .theme-label { display:none; } }
@media (min-width:768px) { .sidebar-collapsed .rail-only { display:flex; } .sidebar-collapsed .theme-label { display:none; } }
.infrastructure { grid-column:1/-1; border-top:1px solid var(--divider); padding-top:16px; }
.cost-equivalent { display:block; color:var(--text-subtle); font:10px/16px var(--font-sans); white-space:normal; }
@media (max-width:767px) { .cost-equivalent { display:inline; margin-left:4px; } }

.detail-overview { display:grid; grid-template-columns:minmax(0,1fr) minmax(13rem,15rem); gap:24px; }
.detail-facts { border-left:1px solid var(--divider); padding-left:16px; }
.detail-facts .key-values { grid-template-columns:1fr; gap:16px; margin-bottom:0; }
@media (max-width:767px) { .detail-overview { grid-template-columns:1fr; gap:24px; } .detail-facts { border-left:0; border-top:1px solid var(--divider); padding:16px 0 0; } }
.cost-cell { font-size:12px; }
@media (min-width:768px) and (max-width:1100px) {
  .task-table .col-task { width:31%; }
  .task-table .col-executor { width:22%; }
  .task-table .col-status { width:18%; }
  .task-table .col-time { width:15%; }
  .task-table .col-cost { width:14%; }
  .task-table .cost-cell { padding-left:8px; padding-right:12px; }
}

.resource-card { margin-top:16px; padding:12px 16px; border:1px solid var(--border-default); border-radius:var(--radius-lg); background:var(--surface-card); }
.resource-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.resource-heading h3 { font-size:14px; font-weight:600; }
.resource-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:12px 0 8px; }
.resource-stats dt { color:var(--text-muted); font-size:11px; margin-bottom:4px; }
.resource-stats dd { margin:0; color:var(--text-strong); font:13px var(--font-mono); overflow-wrap:anywhere; }
.resource-card .capacity-note { margin:0; }
@media(max-width:767px) { .resource-card { margin-top:12px; }.resource-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Unified monitor overview and task registry. */
.nodes-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:16px; align-items:start; }
.nodes-grid .resource-card { margin:0; }
.nodes-grid .resource-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 20px; }
.resource-help,.finance-context { color:var(--text-muted); font-size:12px; line-height:1.6; margin:12px 0; }
.resource-history { border-top:1px solid var(--divider); margin-top:14px; padding-top:12px; }
.resource-history h4 { font-size:12px; font-weight:500; margin:0 0 8px; }
.resource-history svg { width:100%; height:auto; display:block; overflow:visible; }
.history-line { fill:none; stroke:var(--text-accent); stroke-width:2.2; }
.history-threshold { stroke:var(--text-subtle); stroke-width:1; stroke-dasharray:5 4; }
.history-legend { display:flex; justify-content:space-between; gap:8px; color:var(--text-subtle); font-size:10px; margin-bottom:12px; }
.node-empty { padding:12px 0; font-size:13px; line-height:1.6; color:var(--text-muted); }
.capacity { grid-template-columns:repeat(3,minmax(0,1fr)); }
.capacity-card { grid-template-columns:1fr; gap:6px; }
.capacity-value { text-align:left; font-size:16px; }
.task-controls { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding:0 20px 16px; }
.node-switch { display:inline-flex; gap:4px; padding:4px; margin:0 0 16px; border:1px solid var(--border-default); border-radius:var(--radius-md); background:var(--surface-sunken); }
.node-switch .segment-button { min-width:66px; }
.node-chip { display:inline-flex; align-items:center; border:1px solid var(--border-default); border-radius:6px; padding:1px 5px; color:var(--text-muted); font:10px/14px var(--font-mono); white-space:nowrap; }
.task-segments,.task-view { display:flex; flex-wrap:wrap; gap:4px; padding:4px; border-radius:var(--radius-md); background:var(--surface-sunken); }
.segment-button { border:0; background:transparent; padding:7px 10px; border-radius:var(--radius-md); color:var(--text-muted); font:inherit; font-size:12px; white-space:nowrap; }
.segment-button[aria-pressed="true"] { background:var(--surface-card); color:var(--text-accent); box-shadow:var(--shadow-xs); font-weight:600; }
.cost-source { display:block; max-width:160px; text-align:right; font-size:10px; line-height:1.5; white-space:normal; margin-top:5px; color:var(--text-muted); }
.cost-group-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; padding:16px 20px; background:var(--surface-sunken); border-top:1px solid var(--divider); }
.cost-group-heading h3 { font-size:13px; font-weight:600; margin:0; }.cost-group-heading p { font-size:11px; margin:0; }
.finance-summary { grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
@media(max-width:767px) { .nodes-grid { grid-template-columns:1fr; gap:12px; }.capacity { grid-template-columns:1fr; }.task-controls { padding:0 16px 12px; }.task-segments { width:100%; }.segment-button { padding:7px 8px; }.cost-source { text-align:left; max-width:none; }.cost-group-heading { padding:12px 16px; } }

.quota-window { display:grid; gap:6px; }.quota-window+.quota-window { padding-top:8px; border-top:1px solid var(--divider); }.quota-window progress { margin:2px 0; }

.resource-meter { display:block; width:100%; height:9px; margin-top:8px; overflow:visible; }
.resource-meter-track { fill:var(--surface-strong); }
.resource-meter-fill { fill:var(--text-accent); }
.resource-meter-threshold { stroke:var(--text-body); stroke-width:1.5; }

.history-point { fill:var(--text-accent); }

.task-cost-source { color:var(--text-muted); font-size:11px; line-height:1.6; margin:6px 0 0; }
.package-help { font-size:12px; line-height:1.6; color:var(--text-muted); margin:0; padding:14px 20px; border-top:1px solid var(--divider); }
.quota-heading { display:flex; align-items:baseline; flex-wrap:wrap; justify-content:space-between; gap:6px; }
.quota-heading .capacity-value { font-size:15px; }
/* General project scope and mobile owner access. */
.scope-controls {display:flex;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:24px}
.scope-controls .node-switch {margin:0}
.project-select {display:grid;gap:6px;font-size:12px;color:var(--text-muted);min-width:220px}
.project-select select {width:100%;min-height:40px}
.project-chip {color:var(--text-muted);font-size:11px;white-space:normal}
.login-page {min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--bg-page)}
.login-card {width:min(100%,400px);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:16px;padding:32px;box-shadow:0 8px 40px #00000008}
.login-brand {font-size:18px;font-weight:650;color:var(--accent);margin-bottom:32px}
.login-card h1 {font-size:26px;margin:0 0 8px}.login-card form {display:grid;gap:20px;margin:28px 0 24px}.login-card label{display:grid;gap:8px;font-size:14px}.login-card input{width:100%;font:inherit;padding:12px;border:1px solid var(--border-default);border-radius:8px;background:var(--bg-page);color:var(--text-body);min-height:48px}.login-card button{min-height:48px;justify-content:center}.login-card #login-error{color:var(--danger);font-size:14px}
@media(max-width:767px){.scope-controls{gap:12px}.project-select{width:100%}.scope-controls .node-switch{width:100%;flex-wrap:wrap}.scope-controls .segment-button{min-height:44px}.login-card{padding:24px}.header-actions .connection{max-width:100px}.sidebar-footer #logout-button{min-height:44px}.task-reference{flex-wrap:wrap}.login-card input,.project-select select{font-size:16px}}
