@import url('/styles.css?v=portal-v3') layer(legacy);
@import url('/support.css?v=portal-v3') layer(legacy);
@font-face{font-family:Nunito;src:url('/assets/v3/Nunito-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Nunito;src:url('/assets/v3/Nunito-SemiBold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Nunito;src:url('/assets/v3/Nunito-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:WorkbenchSymbols;src:url('/assets/v3/DejaVuSans.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:WorkbenchMono;src:url('/assets/v3/DejaVuSansMono.ttf') format('truetype');font-weight:400;font-display:swap}

:root{
  font-family:var(--wb-font);font-size:14px;line-height:1.45;color:var(--wb-text);background:var(--wb-bg);
  --bg:var(--wb-bg);--text:var(--wb-text);--surface:var(--wb-surface);--soft:var(--wb-raised);
  --accent:var(--wb-accent);--on-accent:var(--wb-accent-ink);--muted:var(--wb-muted);--line:var(--wb-line);
  --focus:var(--wb-accent);--good:var(--wb-good);--good-bg:var(--wb-good-bg);--warn:var(--wb-warning);
  --warn-bg:var(--wb-warn-bg);--bad:var(--wb-error);--bad-bg:var(--wb-error-bg);--radius:var(--wb-radius);
  --control-radius:var(--wb-control-radius);--font-ui:var(--wb-font);--font-code:var(--wb-mono)
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;min-height:100%;margin:0;overflow:hidden}
body{background:var(--wb-bg);color:var(--wb-text);font-size:14px}
button,input,select,textarea{font:inherit}
button,a,summary,select,input{accent-color:var(--wb-accent)}
a{color:var(--wb-accent)}
:focus-visible{outline:2px solid var(--wb-accent)!important;outline-offset:2px!important}
::selection{background:var(--wb-selected);color:var(--wb-text)}

.wb-shell{display:grid;grid-template-columns:var(--wb-sidebar) minmax(0,1fr);grid-template-rows:minmax(0,1fr);width:100vw;height:100dvh;min-width:0;min-height:0;background:var(--wb-bg)}
.wb-icon-definitions{position:absolute;width:0;height:0;overflow:hidden}
.wb-sidebar{display:flex;flex-direction:column;min-width:0;min-height:0;padding:0;overflow:auto;background:var(--wb-nav);color:#f1f6f7;border-right:1px solid #ffffff12}
.wb-brand{display:flex;align-items:center;gap:10px;min-height:64px;padding:12px 14px;color:#f4f8f9;text-decoration:none;font-size:16px;font-weight:700;line-height:1.2}
.wb-brand:hover{color:#fff;background:#ffffff09}
.wb-brand-mark{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:8px;background:#fff}
.wb-brand-mark img{display:block;width:32px;height:32px;object-fit:contain}
.wb-brand-copy{display:flex;flex-direction:column;min-width:0}
.wb-brand .brand-sub{margin-top:4px;color:#b9c8cd;font-size:12px;line-height:1.2;font-weight:400}
.wb-workspace-label{display:none;margin:0;padding:0;color:#92a9b1;font-size:12px;letter-spacing:.08em;font-weight:700}
.wb-navigation{display:flex;width:100%;flex:1;flex-direction:column;gap:12px;padding:4px 8px 14px}
.wb-nav-group{display:grid;width:100%;gap:2px;min-width:0}
.wb-nav-heading{margin:0;padding:7px 9px 4px;color:#92a9b1;font-size:12px;line-height:1.25;letter-spacing:.07em;text-transform:uppercase;font-weight:700}
.wb-nav-link{display:flex;width:100%;align-items:center;gap:10px;min-width:0;min-height:34px;padding:5px 9px;border:1px solid transparent;border-radius:6px;color:#d9e4e7;text-decoration:none;font-size:14px;font-weight:600;transition:background-color .12s ease,color .12s ease}
.wb-navigation .wb-nav-link>span{width:auto;min-width:0;color:inherit;font-size:14px;line-height:1.4;text-align:left}
.wb-nav-link svg{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:#a9bdc3}
.wb-nav-link:hover{background:#ffffff10;color:#fff}
.wb-nav-link:hover svg{color:#d8e7e9}
.wb-nav-link.active,.wb-nav-link[aria-current="page"]{background:#244650;border-color:#3c6670;color:#fff;box-shadow:inset 2px 0 #58c7ba}
.wb-nav-link.active svg,.wb-nav-link[aria-current="page"] svg{color:#78d6ca}
.wb-sidebar-foot{margin:auto 8px 10px;padding:10px 10px 11px;border-top:1px solid #ffffff1a;color:#c1d0d4;font-size:12px;line-height:1.3}
.wb-sidebar-foot .readonly-dot{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#58c7ba;vertical-align:1px}
.wb-sidebar-foot p{margin:6px 0 0;color:#9eb1b7;font-size:12px;line-height:1.3}

.wb-workspace{display:grid;width:100%;height:100%;grid-template-rows:var(--wb-header) minmax(0,1fr) var(--wb-statusbar);min-width:0;min-height:0;background:var(--wb-bg)}
.wb-topbar{z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;min-height:0;height:52px;max-height:52px;padding:0 18px;background:var(--wb-surface);border-bottom:1px solid var(--wb-line)}
.wb-topbar-context{display:flex;align-items:center;gap:9px;min-width:0;color:var(--wb-muted);font-size:12px;font-weight:600;letter-spacing:.01em}
.wb-context-mark{width:8px;height:8px;border:2px solid var(--wb-accent);border-radius:50%}
.wb-global-search{position:relative;display:flex;align-items:center;flex:1 1 220px;width:100%;max-width:360px;min-width:190px;margin:0 auto}
.wb-global-search input{width:100%;min-width:0;min-height:34px;padding:6px 42px 6px 10px;border:1px solid var(--wb-line);border-radius:6px;background:var(--wb-raised);color:var(--wb-text);font-size:13px}
.wb-global-search input::placeholder{color:var(--wb-muted);opacity:1}
.wb-global-search button{position:absolute;right:3px;display:grid;place-items:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--wb-muted);cursor:pointer}
.wb-global-search button:hover{background:var(--wb-selected);color:var(--wb-accent)}
.wb-global-search button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wb-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.wb-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.wb-mode-label{display:inline-flex;align-items:center;min-height:28px;padding:3px 9px;border:1px solid var(--wb-line);border-radius:5px;color:var(--wb-muted);font-size:12px;font-weight:600;white-space:nowrap}
.wb-refresh{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:32px;padding:4px 10px}
.wb-refresh svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wb-top-actions .session-controls{display:flex;align-items:center;gap:7px;min-width:0;margin:0;padding:0;border:0;background:transparent}
.wb-top-actions .session-controls .subtle{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--wb-muted);font-size:12px}
.wb-top-actions .session-controls button{min-height:32px;padding:4px 9px;border:1px solid var(--wb-line);border-radius:5px;background:var(--wb-surface);color:var(--wb-text);font-size:13px;font-weight:600}
.wb-top-actions .session-controls details{position:relative}
.wb-top-actions .session-controls details>summary{display:flex;align-items:center;gap:7px;min-height:32px;padding:4px 9px;border:1px solid var(--wb-line);border-radius:5px;color:var(--wb-text);font-size:13px;font-weight:600;cursor:pointer;list-style:none}
.wb-top-actions .session-controls details>summary::-webkit-details-marker{display:none}
.wb-top-actions .session-controls details[open]>summary{border-color:var(--wb-accent)}
.wb-top-actions .session-controls details>.appearance-controls,.wb-top-actions .session-controls details>.user-menu-panel{position:absolute;z-index:8;top:calc(100% + 6px);right:0;width:min(320px,calc(100vw - 24px));padding:12px;border:1px solid var(--wb-line);border-radius:7px;background:var(--wb-surface);box-shadow:0 8px 24px #10202a24}
.wb-top-actions .session-controls .user-menu-panel{display:grid;gap:8px}
.wb-top-actions .session-controls .appearance-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding-bottom:0;border:0}
.wb-top-actions .session-controls .appearance-controls{grid-template-columns:minmax(0,1fr)}
.wb-top-actions .session-controls .appearance-field{font-size:12px}
.wb-top-actions .session-controls .appearance-field select{min-height:32px;padding:5px 8px;font-size:13px}
.wb-main{display:grid;width:100%;max-width:none;min-width:0;min-height:0;margin:0;padding:0;overflow:hidden}
.wb-content-region{width:100%;height:100%;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:14px 24px 18px}
.wb-content-region:has(.compute-layout){display:flex;flex-direction:column;padding-top:4px;padding-bottom:12px}
.wb-content-region:has(.compute-layout) .wb-page-heading{align-items:center;margin-bottom:2px;padding-bottom:2px}
.wb-content-region:has(.compute-layout) .wb-page-heading .eyebrow,.wb-content-region:has(.compute-layout) .wb-page-heading .page-description{display:none}
.wb-content-region:has(.compute-layout) .wb-page-footer{display:none}
.wb-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid var(--wb-line)}
.wb-page-heading .eyebrow{margin:0 0 2px;color:var(--wb-muted);font-size:12px;line-height:1.3;font-weight:600}
.wb-page-heading h1{margin:0;color:var(--wb-text);font-size:23px;line-height:1.23;font-weight:700;letter-spacing:-.015em}
.wb-page-heading .page-description{margin:3px 0 0;color:var(--wb-muted);font-size:13px;line-height:1.4}
.wb-updated{max-width:300px;font-size:12px;text-align:right}
.wb-page-footer{display:flex;justify-content:space-between;gap:16px;margin-top:18px;padding:9px 0 0;border-top:1px solid var(--wb-line);color:var(--wb-muted);font-size:12px}
.wb-statusbar{display:flex;align-items:center;gap:7px;min-width:0;padding:0 12px;background:var(--wb-surface);border-top:1px solid var(--wb-line);color:var(--wb-muted);font-size:12px;line-height:1}
.wb-status-indicator{width:6px;height:6px;border-radius:50%;background:var(--wb-accent)}
.wb-status-spacer{flex:1}
.wb-skip{position:fixed;z-index:20;top:-80px;left:8px;padding:8px 12px;background:var(--wb-surface);border:1px solid var(--wb-line);border-radius:5px}
.wb-skip:focus-visible{top:8px}

/* Совместимые стили для динамических страниц и классических helper-функций. */
#content{min-width:0;color:var(--wb-text);font-size:14px}
#content:has(>.compute-layout){display:flex;flex:1;min-height:0}
#content h2{font-size:16px;line-height:1.3;font-weight:700}
#content h3{font-size:14px;line-height:1.35;font-weight:700}
.card,.metric,.empty,.attention-card,.support-panel,.support-card{border-radius:var(--wb-radius);box-shadow:none}
.card{padding:16px;border-color:var(--wb-line);background:var(--wb-surface)}
.card-description,.subtle,.metric-label,.metric-note,.card-kicker,.stat-label,.updated,.catalog-count{color:var(--wb-muted)}
.metric{padding:13px 15px;border-color:var(--wb-line);background:var(--wb-surface)}
.metric-value{color:var(--wb-accent);font-size:26px;font-weight:700}
.metric-grid{gap:10px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 9px}
.section-heading h2{margin:0;font-size:15px}
.grid{gap:10px}
.button,select,.search{border:1px solid var(--wb-line);border-radius:var(--wb-control-radius);background:var(--wb-surface);color:var(--wb-text);font-size:13px;line-height:1.3;padding:7px 10px}
.button{min-height:34px;font-weight:600;white-space:normal;text-align:center}
.button:hover{background:var(--wb-raised);border-color:var(--wb-accent);color:var(--wb-accent)}
.button.primary,.button.primary:hover{background:var(--wb-accent);border-color:var(--wb-accent);color:var(--wb-accent-ink)}
.button:disabled{opacity:.52;cursor:not-allowed}
.small{min-height:32px;font-size:13px}
.badge{border-radius:5px;padding:3px 7px;font-size:12px;font-weight:700}
.badge.running,.badge.queued,.badge.pending{background:var(--wb-selected);color:var(--wb-accent)}
.badge.completed,.badge.compute_complete,.badge.succeeded,.badge.accepted{background:var(--wb-good-bg);color:var(--wb-good)}
.badge.failed,.badge.worker_lost,.badge.cancelled,.badge.rejected{background:var(--wb-error-bg);color:var(--wb-error)}
.badge.warning,.badge.paused{background:var(--wb-warn-bg);color:var(--wb-warning)}
.notice{padding:11px 13px;border:1px solid var(--wb-line);border-radius:6px;background:var(--wb-raised);color:var(--wb-text);font-size:13px;line-height:1.5}
.notice.error,.form-error{color:var(--wb-error)}
.form-success{color:var(--wb-good)}
progress{width:100%;height:7px;accent-color:var(--wb-accent)}
.progress-heading{margin-top:12px}
.empty{padding:18px;border-color:var(--wb-line);background:var(--wb-surface)}
.empty-symbol{color:var(--wb-accent)}
.empty p{color:var(--wb-muted)}
.support-stack{gap:12px}
.metadata{grid-template-columns:minmax(130px,190px) minmax(0,1fr);gap:7px 14px;font-size:13px;line-height:1.45}
.source-note{margin-top:4px;font-size:12px;color:var(--wb-muted)}
.table-scroll{max-width:100%;margin-top:9px;border-color:var(--wb-line);border-radius:6px}
table{color:var(--wb-text);font-size:12px}
th{background:var(--wb-raised);color:var(--wb-text);font-size:12px;font-weight:700;white-space:nowrap}
th,td{border-color:var(--wb-line)}
.exact-value,.mono,.technical-id{font-family:var(--wb-mono);font-variant-numeric:tabular-nums}
.exact-value{font-size:14px;white-space:nowrap}
.pager{gap:8px;margin-top:4px}
.setup-steps{line-height:1.5}
.setup-steps li{margin-bottom:8px}
dialog,.wb-dialog{width:min(1080px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:20px;border:1px solid var(--wb-line);border-radius:var(--wb-radius);background:var(--wb-surface);color:var(--wb-text);box-shadow:0 18px 60px #07171d40;overflow:auto}
dialog::backdrop{background:#08151a99;backdrop-filter:blur(2px)}
.dialog-head{position:sticky;top:-20px;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-20px -20px 14px;padding:12px 20px;background:var(--wb-surface);border-bottom:1px solid var(--wb-line)}
.dialog-head .eyebrow{margin:0;color:var(--wb-muted);font-size:12px}
.icon-button{width:32px;height:32px;border:1px solid var(--wb-line);border-radius:5px;background:var(--wb-surface);color:var(--wb-text);font-size:20px}
.detail-title{font-size:20px;font-weight:700;overflow-wrap:anywhere}

/* Контракт плотной таблицы вычислений и локального инспектора. */
.workspace-split,.compute-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,var(--wb-inspector));gap:10px;width:100%;height:min(670px,calc(100dvh - 224px));min-height:420px;min-width:0;align-items:stretch}
.workspace-split:not(:has(.inspector-panel)){grid-template-columns:minmax(0,1fr)}
.registry-panel,.inspector-panel,.data-inspector,.formats-inspector{min-width:0;min-height:0;border:1px solid var(--wb-line);border-radius:var(--wb-radius);background:var(--wb-surface)}
.registry-panel{display:flex;flex-direction:column;overflow:hidden}
.registry-panel>.toolbar{min-height:36px;margin:0;padding:4px 8px;gap:6px;border-bottom:1px solid var(--wb-line)}
.registry-toolbar,.registry-toolbar-top,.compute-toolbar{display:flex;align-items:center;gap:8px;min-height:36px;padding:5px 8px;border-bottom:1px solid var(--wb-line)}
.registry-toolbar,.registry-toolbar-top,.compute-toolbar{flex-wrap:wrap}
.registry-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.table-scroll{min-height:0;overscroll-behavior:contain}
.registry-panel>.table-scroll{flex:1;margin:0;border:0;border-radius:0}
.registry-table{width:100%;border-collapse:collapse;font-size:14px}
.registry-table thead{position:sticky;top:0;z-index:1}
.registry-table th{height:30px;padding:5px 8px;text-align:left;border-bottom:1px solid var(--wb-line);font-size:12px}
.registry-table td{height:var(--wb-row);padding:1.5px 8px;border-bottom:1px solid var(--wb-line);vertical-align:middle}
.registry-table td:first-child input[type="checkbox"]{width:32px;height:32px;margin:0;vertical-align:middle}
.registry-table tbody tr:hover{background:var(--wb-raised)}
.registry-row.selected,.registry-table tr[aria-selected="true"]{background:var(--wb-selected)}
.registry-row:focus-visible{outline-offset:-2px}
.registry-table .primary-title{display:block;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--wb-text);font-size:14px;font-weight:700}
.registry-table .registry-name .primary-title{display:flex;align-items:center;min-width:0;width:100%;min-height:32px;padding:4px 6px;border:0;border-radius:4px;background:transparent;color:var(--wb-text);font-size:14px;line-height:1.2;text-align:left}
.registry-table .technical-id{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--wb-muted);font-size:12px}
.registry-options{display:block;margin:0;padding:0;border:0;color:var(--wb-muted);font-size:12px}
.registry-options>summary{display:flex;align-items:center;min-height:32px;padding:4px 8px;border-bottom:1px solid var(--wb-line);cursor:pointer;line-height:1.25}
.registry-options>.toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0;padding:7px 8px;border-bottom:1px solid var(--wb-line)}
.row-progress{display:flex;align-items:center;gap:6px;min-width:88px;font-size:12px;font-variant-numeric:tabular-nums}
.row-progress progress{width:54px;max-width:54px;height:5px}
.compute-layout{display:flex;flex:1;flex-direction:column;gap:8px;width:100%;height:100%;min-width:0;min-height:0}
.compute-layout>.compute-capacity-strip{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:8px;flex:0 0 62px;min-width:0;min-height:62px;max-height:62px;overflow:visible;padding:6px 10px;border:1px solid var(--wb-line);border-radius:var(--wb-radius);background:var(--wb-surface)}
.compute-capacity-strip>:is(.pool-total,.pool-runtime,.pool-fit,.pool-evidence){display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;height:100%;overflow:hidden}
.compute-capacity-strip .pool-label{color:var(--wb-muted);font-size:12px;line-height:1.1}
.compute-capacity-strip :is(.pool-occupancy,.pool-available){overflow:hidden;color:var(--wb-text);font-size:14px;line-height:1.2;font-weight:700;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.compute-capacity-strip .pool-secondary{overflow:hidden;color:var(--wb-muted);font-size:12px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}
.compute-capacity-strip .pool-evidence>summary{display:flex;align-items:center;min-height:32px;max-width:100%;padding:0 4px;overflow:hidden;color:var(--wb-accent);font-size:12px;line-height:1.1;font-weight:600;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.compute-capacity-strip .pool-evidence[open]{position:absolute;z-index:4;top:calc(100% + 4px);right:8px;width:min(460px,calc(100vw - 260px));height:auto;padding:9px 11px;border:1px solid var(--wb-line);border-radius:6px;background:var(--wb-surface);box-shadow:0 8px 24px #10202a24}
.compute-capacity-stat{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;padding:0 7px;border-right:1px solid var(--wb-line)}
.compute-capacity-stat:last-child{border-right:0}
.compute-capacity-label{color:var(--wb-muted);font-size:12px;line-height:1.1}
.compute-capacity-value{overflow:hidden;color:var(--wb-text);font-size:14px;line-height:1.2;font-weight:700;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.compute-capacity-source{overflow:hidden;color:var(--wb-muted);font-size:12px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}
.compute-layout>.compute-workspace{flex:1 1 0;width:100%;height:auto;min-height:0}
.compute-layout>.compute-workspace .registry-panel{min-height:0}
.compute-layout>.compute-workspace .registry-scroll{flex:1;min-height:0}
.compute-state-tabs{flex:0 0 34px;min-height:34px;max-height:34px;overflow:auto}
.inspector-panel,.data-inspector,.formats-inspector{overflow:auto;padding:12px;overscroll-behavior:contain}
.inspector-panel h2,.inspector-panel h3{margin:0 0 7px}
.inspector-panel .metadata{grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr)}
.job-workspace{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;gap:8px}
.job-header{padding:12px;border:1px solid var(--wb-line);border-radius:var(--wb-radius);background:var(--wb-surface)}
.tab-strip{display:flex;gap:3px;min-width:0;overflow-x:auto;border-bottom:1px solid var(--wb-line)}
.tab-strip>[role="tab"]{flex:0 0 auto;min-height:34px;padding:6px 10px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--wb-muted);font-size:13px;font-weight:600}
.tab-strip>[role="tab"][aria-selected="true"],.tab-strip>[role="tab"].active{border-bottom-color:var(--wb-accent);color:var(--wb-accent)}
.tab-panel{min-width:0;min-height:0;overflow:auto;padding:10px 0}
.data-workspace,.formats-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,var(--wb-inspector));gap:10px;min-width:0;min-height:0}
.data-workspace>.table-scroll,.formats-workspace>.table-scroll{margin:0}
.backup-v2-layout>.subtle{margin:0}
.backup-v2-workspace{height:min(670px,calc(100dvh - 288px));min-height:0}
.data-workspace .registry-table td,.formats-workspace .registry-table td{height:34px}

/* Документы и журнал остаются в локальных областях прокрутки. */
.wb-library-layout{display:grid;grid-template-columns:minmax(230px,300px) minmax(0,1fr);gap:10px;min-width:0;min-height:0}
.wb-document-list,.wb-reader,.wb-log-viewer{min-width:0;border:1px solid var(--wb-line);border-radius:var(--wb-radius);background:var(--wb-surface)}
.wb-document-list{max-height:calc(100dvh - 220px);overflow:auto;padding:8px}
.wb-document-list .card,.wb-document-list .document-record{padding:10px;border:0;border-bottom:1px solid var(--wb-line);border-radius:0;box-shadow:none}
.wb-document-list :is(button,a)[aria-current="true"],.wb-document-list :is(button,a).active{background:var(--wb-selected);color:var(--wb-accent)}
.wb-reader{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-height:0;overflow:hidden}
.wb-reader-toolbar,.wb-log-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:40px;padding:7px 9px;border-bottom:1px solid var(--wb-line);background:var(--wb-surface)}
.wb-reader-body{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:0;overflow:hidden}
.wb-reader-toc{min-width:0;max-height:100%;overflow:auto;padding:10px;border-right:1px solid var(--wb-line);background:var(--wb-raised)}
.wb-reader-toc :is(button,a){display:flex;align-items:center;width:100%;min-height:32px;padding:5px 6px;border:0;border-radius:4px;background:transparent;color:var(--wb-text);text-align:left;font-size:13px;line-height:1.4}
.wb-reader-toc :is(button,a):hover,.wb-reader-toc :is(button,a)[aria-current="true"]{background:var(--wb-selected);color:var(--wb-accent)}
.wb-reader-viewport{min-width:0;min-height:420px;max-height:calc(100dvh - 278px);overflow:auto;overscroll-behavior:contain;padding:16px 20px;line-height:1.65}
.wb-reader-viewport canvas{display:block;max-width:none;height:auto;margin:0 auto;background:#fff}
.wb-pdf-page{position:relative;margin:0 auto 16px;background:#fff;box-shadow:0 2px 12px #10202a30;--user-unit:1;--total-scale-factor:calc(var(--scale-factor)*var(--user-unit))}
/* Изолированная часть текстового слоя основана на PDF.js 6.4.299 web/pdf_viewer.css (Apache-2.0; лицензия: /assets/vendor/pdfjs/6.4.299/LICENSE). */
.wb-reader-viewport .textLayer{position:absolute;inset:0;overflow:clip;z-index:0;color-scheme:only light;text-align:initial;opacity:1;line-height:1;letter-spacing:normal;word-spacing:normal;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:CanvasText;--min-font-size:1;--min-font-size-inv:calc(1 / var(--min-font-size));--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size))}
.wb-reader-viewport .textLayer :is(span,br){position:absolute;color:transparent;white-space:pre;cursor:text;transform-origin:0% 0%;user-select:text;-webkit-user-select:text}
.wb-reader-viewport .textLayer>:not(.markedContent),.wb-reader-viewport .textLayer .markedContent span:not(.markedContent){z-index:1;--font-height:0;--scale-x:1;--rotate:0deg;font-size:calc(var(--text-scale-factor) * var(--font-height));transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}
.wb-reader-viewport .textLayer .markedContent{display:contents}
.wb-reader-viewport .textLayer span[role="img"]{user-select:none;-webkit-user-select:none;cursor:default}
.wb-reader-viewport .textLayer mark{color:transparent;background:rgb(88 199 186 / .34)}
.wb-reader-viewport .textLayer ::selection{background:rgb(0 96 223 / .25);color:transparent}
.wb-reader-viewport .textLayer .endOfContent{position:absolute;inset:100% 0 0;z-index:0;display:block;cursor:default;user-select:none;-webkit-user-select:none}
.wb-reader-viewport .textLayer.selecting .endOfContent{top:0}
.wb-reader-fullscreen{position:fixed!important;inset:0!important;z-index:80!important;width:100vw!important;height:100dvh!important;max-height:100dvh!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.wb-reader-fullscreen .wb-reader-body{min-height:0;height:100%;grid-template-columns:220px minmax(0,1fr)}
.wb-reader-fullscreen .wb-reader-viewport{max-height:none;height:100%;min-height:0}
.wb-log-viewer{display:block;min-height:420px;max-height:calc(100dvh - 220px);overflow:auto;overscroll-behavior:contain;padding:7px 10px;font:12px/1.5 var(--wb-mono);font-variant-numeric:tabular-nums}
.wb-log-rows,.wb-log-lines{min-height:0;overflow:auto;overscroll-behavior:contain;padding:7px 10px;font:12px/1.5 var(--wb-mono);font-variant-numeric:tabular-nums}
.wb-log-row{display:grid;grid-template-columns:45px 130px 100px 90px minmax(240px,1fr);gap:9px;width:max-content;min-width:100%;min-height:28px;padding:4px 2px;border-bottom:1px solid var(--wb-line);white-space:nowrap}
.wb-log-row:hover{background:var(--wb-raised)}
.wb-log-viewer.wb-log-nowrap .wb-log-row{white-space:normal}
.wb-job-table{width:100%;border-collapse:collapse;font-size:14px}
.wb-job-table th{height:30px;padding:5px 8px;background:var(--wb-raised);color:var(--wb-text);font-size:12px;text-align:left}
.wb-job-table td{height:var(--wb-row);padding:4px 8px;border-bottom:1px solid var(--wb-line)}
.wb-job-table tr[aria-selected="true"]{background:var(--wb-selected)}

/* Форма входа формируется app.js внутри #content после проверки auth-gate. */
.auth-view{display:grid;place-items:center;background:var(--wb-bg)}
.auth-view .wb-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);width:100vw;height:100dvh}
.auth-view .wb-sidebar,.auth-view .wb-topbar,.auth-view .wb-statusbar,.auth-view .wb-page-footer{display:none!important}
.auth-view .wb-workspace{grid-template-rows:minmax(0,1fr);min-height:0;background:var(--wb-bg)}
.auth-view .wb-main{overflow:auto;place-items:center;padding:20px}
.auth-view .wb-content-region{width:min(100%,1180px);height:auto;max-height:100%;overflow:visible;padding:0}
.wb-auth-layout{display:grid;grid-template-columns:minmax(0,1fr) 432px;align-items:center;gap:clamp(32px,7vw,96px);min-width:0}
.wb-auth-intro{max-width:650px;color:var(--wb-text)}
.wb-auth-intro h1,.wb-auth-intro h2{margin:0 0 10px;font-size:28px;line-height:1.2}
.wb-auth-intro>p{max-width:54ch;margin:0;color:var(--wb-muted);font-size:15px;line-height:1.55}
.wb-auth-intro>p:not(.eyebrow){position:relative;margin-top:8px;padding-left:16px}
.wb-auth-intro>p:not(.eyebrow)::before{position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--wb-accent);content:""}
.wb-auth-intro ul{display:grid;gap:9px;margin:18px 0 0;padding:0;list-style:none}
.wb-auth-intro li{display:flex;align-items:flex-start;gap:9px;color:var(--wb-muted);font-size:13px;line-height:1.45}
.wb-auth-intro li::before{content:"";width:7px;height:7px;flex:0 0 7px;margin-top:6px;border-radius:50%;background:var(--wb-accent)}
.auth-view .wb-content-region:has(.wb-auth-layout) .wb-page-heading{display:none}
.auth-view .wb-page-heading{display:block;margin:0 0 16px;padding:0;border:0;text-align:center}
.auth-view .wb-page-heading .eyebrow,.auth-view .wb-page-heading .page-description{display:none}
.auth-view .wb-page-heading h1{font-size:23px}
.login-card{max-width:432px;margin:0 auto;padding:26px;border:1px solid var(--wb-line);border-radius:10px;background:var(--wb-surface);box-shadow:0 12px 36px #1d303914}
.login-emblem{display:block;width:48px;height:48px;margin:0 auto 14px;object-fit:contain}
.auth-view .login-card h1,.auth-view h1{text-align:center}
.auth-form{display:grid;gap:12px}
.form-field{display:grid;gap:5px;color:var(--wb-text);font-size:12px;font-weight:600}
.form-field input,.form-field select,.form-field textarea{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--wb-line);border-radius:5px;background:var(--wb-surface);color:var(--wb-text)}
.auth-form .button{width:100%;margin-top:4px}
.auth-view #notice{margin-bottom:8px}

@media(max-width:1100px){
  :root{--wb-sidebar:64px}
  .wb-brand{justify-content:center;padding:10px 6px}
  .wb-brand-copy,.wb-workspace-label,.wb-nav-heading,.wb-nav-link span,.wb-sidebar-foot>span:not(.readonly-dot),.wb-sidebar-foot p{display:none}
  .wb-navigation{gap:10px;padding:6px}
  .wb-nav-link{justify-content:center;min-height:40px;padding:8px}
  .wb-nav-link svg{width:19px;height:19px;flex-basis:19px}
  .wb-sidebar-foot{display:flex;justify-content:center;margin:8px 6px;padding:10px}
  .workspace-split,.compute-workspace,.data-workspace,.formats-workspace{grid-template-columns:minmax(0,1fr);height:auto;max-height:none}
  .wb-library-layout{grid-template-columns:minmax(0,1fr)}
  .wb-document-list{display:flex;gap:6px;max-height:none;overflow:auto}
  .wb-document-list .card,.wb-document-list .document-record{flex:0 0 min(260px,70vw);border:1px solid var(--wb-line);border-radius:6px}
  .wb-reader{min-height:55vh}
  .wb-reader-viewport{max-height:55vh}
  .inspector-panel,.data-inspector,.formats-inspector{max-height:42vh}
}
@media(max-width:700px){
  html,body{overflow:auto;min-height:100%;height:auto}
  .wb-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:100dvh;min-height:100dvh}
  .wb-sidebar{position:relative;z-index:3;min-height:0;max-height:56px;overflow:hidden;border-right:0;border-bottom:1px solid var(--wb-line)}
  .wb-brand{justify-content:flex-start;min-height:56px;padding:8px 12px}
  .wb-brand-copy{display:flex}.wb-workspace-label,.wb-sidebar-foot{display:none}
  .wb-navigation{position:absolute;top:56px;left:0;right:0;display:flex;flex-direction:row;gap:4px;overflow:auto;padding:4px 8px 7px;background:var(--wb-nav)}
  .wb-nav-group{display:flex;width:auto;flex:0 0 auto;flex-direction:row;gap:4px}.wb-nav-heading{display:none}
  .wb-nav-link{width:auto;flex:0 0 auto;justify-content:flex-start;min-height:36px;padding:5px 8px}.wb-nav-link span{display:inline}
  .wb-workspace{grid-row:2;grid-template-rows:44px minmax(0,1fr) 24px;min-height:0}
  .wb-topbar{height:44px;padding:0 10px}.wb-topbar-context{font-size:12px}.wb-mode-label{display:none}
  .wb-topbar-context>span:not(.wb-context-mark){display:none}
  .wb-global-search{flex:1 1 120px;max-width:none;min-width:0;margin:0 5px}
  .wb-global-search input{min-height:32px;font-size:13px}
  .wb-top-actions{gap:5px}.wb-top-actions .session-controls .subtle{display:none}
  .wb-top-actions,.wb-top-actions .session-controls{flex-wrap:nowrap}
  .wb-top-actions .user-menu{min-width:0;max-width:min(160px,calc(100vw - 232px))}
  .wb-top-actions .user-menu>summary{display:block;max-width:min(160px,calc(100vw - 232px));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .wb-content-region{padding:10px 10px 14px}
  .wb-page-heading{align-items:flex-start;padding-bottom:9px}.wb-page-heading h1{font-size:21px}.wb-page-heading .page-description{font-size:12px}
  .wb-updated{font-size:12px}.wb-page-footer{flex-direction:column;gap:3px}
  .wb-statusbar{font-size:9px}
  .metadata{grid-template-columns:minmax(110px,.8fr) minmax(0,1.2fr)}
  .wb-reader-body{grid-template-columns:minmax(0,1fr)}
  .wb-reader-toc{max-height:22vh;border-right:0;border-bottom:1px solid var(--wb-line)}
  .wb-reader-viewport{max-height:55vh;padding:12px}
  .wb-log-viewer{min-height:50vh;max-height:calc(100dvh - 205px)}
  .wb-log-row{grid-template-columns:45px 110px 80px 80px minmax(200px,1fr);gap:6px}
  .auth-view .wb-shell{grid-template-rows:minmax(0,1fr);height:100dvh}
  .auth-view .wb-workspace{grid-row:1}.auth-view .wb-main{padding:14px}
  .wb-auth-layout{grid-template-columns:minmax(0,1fr);gap:18px;max-width:480px;margin:0 auto}
  .wb-auth-intro h1,.wb-auth-intro h2{font-size:22px}.wb-auth-intro>p{font-size:13px}.wb-auth-intro ul{gap:6px;margin-top:10px}
  .login-card{padding:20px}
}
@media(max-width:700px) and (pointer:coarse){.wb-top-actions{align-self:flex-start}}
@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(pointer:coarse){
  .wb-nav-link,.button,.small,.icon-button,.tab-strip>[role="tab"],.wb-top-actions .session-controls button,.wb-top-actions .session-controls details>summary,.registry-options>summary,.compute-capacity-strip .pool-evidence>summary,.wb-reader-toc :is(button,a){min-height:44px}
  .wb-global-search button{width:44px;height:44px;min-width:44px;min-height:44px}
  .registry-table td:first-child input[type="checkbox"]{width:44px;height:44px}
}

/* Неизвестное состояние источника не обозначается успешным цветом. */
.wb-statusbar[data-source-state='unknown'] .wb-status-indicator { background: #8c929b; }
.wb-statusbar[data-source-state='error'] .wb-status-indicator { background: #c53c3c; }
.wb-statusbar[data-source-state='stale'] .wb-status-indicator { background: #c18420; }
