:root{color-scheme:light dark;--paper:#fafafa;--surface:#ffffff;--sunken:#f4f4f5;--ink:#09090b;--muted:#52525b;--faint:#6b6b74;--line:#e4e4e7;--line-strong:#d4d4d8;--accent:#18181b;--accent-ink:#fafafa;--nav-active:var(--accent);--nav-active-ink:var(--accent-ink);--accent-soft:#f4f4f5;--good:#10b981;--good-text:#12693a;--good-ink:#04301f;--good-soft:#e7f6ee;--warn:#f59e0b;--warn-text:#8d5506;--warn-ink:#2a1c05;--warn-soft:#fdf1dc;--danger:#dc2626;--danger-text:#b91c1c;--danger-ink:#ffffff;--danger-soft:#fce9e7;--radius:8px;--radius-sm:6px;--radius-xs:4px;--scrim:rgba(9,9,11,.5);--shadow:0 1px 2px rgba(9,9,11,.05);--shadow-lift:0 1px 3px rgba(9,9,11,.1),0 12px 32px -18px rgba(9,9,11,.35);--side-w:240px;--top-h:64px;--page-max:1440px;--page-pad:32px;--block-gap:24px;--ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,"SFMono-Regular","JetBrains Mono",Menlo,Consolas,monospace;--fs:14px;--lh:1.5;--density:1}@media (prefers-color-scheme:dark){:root:not([data-mode=light]){--paper:#09090b;--surface:#18181b;--sunken:#27272a;--ink:#fafafa;--muted:#a1a1aa;--faint:#8f8f99;--line:#27272a;--line-strong:#3f3f46;--accent:#fafafa;--accent-ink:#18181b;--accent-soft:#27272a;--good:#10b981;--good-text:#5ec98a;--good-ink:#04301f;--good-soft:#10301f;--warn:#f59e0b;--warn-text:#e0b463;--warn-ink:#2a1c05;--warn-soft:#2f2410;--danger:#ef4444;--danger-text:#f08a7c;--danger-ink:#2a0a0a;--danger-soft:#331a19;--scrim:rgba(0,0,0,.66);--shadow:0 1px 2px rgba(0,0,0,.4);--shadow-lift:0 1px 3px rgba(0,0,0,.5),0 12px 32px -18px rgba(0,0,0,.9)}}:root[data-mode=light]{color-scheme:light}:root[data-mode=dark]{--paper:#09090b;--surface:#18181b;--sunken:#27272a;--ink:#fafafa;--muted:#a1a1aa;--faint:#8f8f99;--line:#27272a;--line-strong:#3f3f46;--accent:#fafafa;--accent-ink:#18181b;--accent-soft:#27272a;--good:#10b981;--good-text:#5ec98a;--good-ink:#04301f;--good-soft:#10301f;--warn:#f59e0b;--warn-text:#e0b463;--warn-ink:#2a1c05;--warn-soft:#2f2410;--danger:#ef4444;--danger-text:#f08a7c;--danger-ink:#2a0a0a;--danger-soft:#331a19;--scrim:rgba(0,0,0,.66);--shadow:0 1px 2px rgba(0,0,0,.4);--shadow-lift:0 1px 3px rgba(0,0,0,.5),0 12px 32px -18px rgba(0,0,0,.9);color-scheme:dark}:root{--brand-vk:#0077ff;--brand-vk-soft:#e0efff;--brand-vk-strong:#0062d1;--brand-tg:#229ed9;--brand-tg-soft:#e4f3fa;--brand-tg-strong:#186f98;--brand-max:#ff5c2b;--brand-max-soft:#ffebe6;--brand-max-strong:#b2401e}@media (prefers-color-scheme:dark){:root:not([data-mode=light]){--brand-vk-soft:#132b49;--brand-vk-strong:#3d98ff;--brand-tg-soft:#1a3341;--brand-tg-strong:#2fa4db;--brand-max-soft:#46261e;--brand-max-strong:#ff6638}}:root[data-mode=dark]{--brand-vk-soft:#132b49;--brand-vk-strong:#3d98ff;--brand-tg-soft:#1a3341;--brand-tg-strong:#2fa4db;--brand-max-soft:#46261e;--brand-max-strong:#ff6638}.brand-tag{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;border-radius:var(--radius-sm,6px);padding:1px 8px;font-size:.82em;font-weight:600;line-height:1.45}.brand-tag.vk{background:var(--brand-vk-soft);color:var(--brand-vk-strong)}.brand-tag.tg{background:var(--brand-tg-soft);color:var(--brand-tg-strong)}.brand-tag.max{background:var(--brand-max-soft);color:var(--brand-max-strong)}.made{display:inline-flex;align-items:center;gap:5px;padding:0 4px;color:var(--faint);font-size:calc(var(--fs) * .78);opacity:.75;transition:opacity .15s,color .15s}.made,.made:hover{text-decoration:none}.made:hover{opacity:1;color:var(--muted)}.made-mark{height:calc(var(--fs) * .72);width:auto;aspect-ratio:743.74/114.91;flex:none;display:block}:root{--data-1:#2a78d6;--data-2:#eb6834;--data-3:#1baf7a;--data-4:#eda100;--data-5:#e87ba4;--data-6:#008300;--data-ramp-1:#86b6ef;--data-ramp-2:#5598e7;--data-ramp-3:#2a78d6;--data-ramp-4:#1c5cab;--data-ramp-5:#104281;--data-grid:var(--line);--data-axis:var(--line-strong)}@media (prefers-color-scheme:dark){:root:not([data-mode=light]){--data-1:#3987e5;--data-2:#d95926;--data-3:#199e70;--data-4:#c98500;--data-5:#d55181;--data-6:#008300;--data-ramp-1:#1c5cab;--data-ramp-2:#2a78d6;--data-ramp-3:#5598e7;--data-ramp-4:#86b6ef;--data-ramp-5:#b7d3f6}}:root[data-mode=dark]{--data-1:#3987e5;--data-2:#d95926;--data-3:#199e70;--data-4:#c98500;--data-5:#d55181;--data-6:#008300;--data-ramp-1:#1c5cab;--data-ramp-2:#2a78d6;--data-ramp-3:#5598e7;--data-ramp-4:#86b6ef;--data-ramp-5:#b7d3f6}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}.legend-item{display:inline-flex;align-items:center;gap:7px;font-size:calc(var(--fs) * .92);color:var(--muted)}.legend-dot{width:10px;height:10px;border-radius:3px;flex:none}*,:after,:before{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ui);font-size:var(--fs);line-height:var(--lh);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{margin:0;letter-spacing:-.025em}h1{font-size:calc(var(--fs) * 1.714);font-weight:700}h2{font-size:calc(var(--fs) * 1.429)}h2,h3{font-weight:600}h3{font-size:calc(var(--fs) * 1.143)}p{margin:0 0 calc(12px * var(--density))}p:last-child{margin-bottom:0}a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent)}a:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}td a,th a{text-decoration:none}td a:hover,th a:hover{text-decoration:underline}:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}code,kbd,samp{font-family:var(--mono);font-size:.88em;background:var(--sunken);border:1px solid var(--line);border-radius:4px;padding:1px 5px}hr{border:0;border-top:1px solid var(--line);margin:calc(20px * var(--density)) 0}.shell{display:grid;grid-template-columns:var(--side-w) 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:hidden}.brand{display:flex;align-items:center;gap:10px;min-height:var(--top-h);padding:0 24px;border-bottom:1px solid var(--line);flex:none}.brand-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:none}.brand-logo{width:24px;height:24px;flex:none;display:block;object-fit:contain;border-radius:6px}.brand-name{font-size:var(--fs);font-weight:600;letter-spacing:-.025em}.brand-sub{font-size:calc(var(--fs) * .857);color:var(--muted)}.nav-scroll{flex:1 1;overflow-y:auto;padding:12px}.nav-foot{border-top:1px solid var(--line);padding:12px}.nav{display:flex;flex-direction:column;gap:4px}.nav-group{font-size:calc(var(--fs) * .786);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;padding:14px 12px 6px}.nav-item{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--muted);font-size:var(--fs);font-weight:500;text-decoration:none;transition:background-color .12s ease,color .12s ease}.nav-item>.badge,.nav-item>.right{margin-left:auto}.nav-item:hover{background:var(--sunken);color:var(--ink);text-decoration:none}.nav-item.active,.nav-item[aria-current=page]{background:var(--nav-active);color:var(--nav-active-ink);font-weight:500}.nav-who{padding:0 12px 8px;font-size:calc(var(--fs) * .857);color:var(--muted)}.nav-who b{color:var(--ink);font-weight:500}.content{display:flex;flex-direction:column;min-width:0}.main{padding:calc(var(--page-pad) * var(--density)) var(--page-pad) 64px;width:100%;max-width:var(--page-max)}.main.narrow{max-width:1000px}.prose{max-width:70ch}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-height:var(--top-h);padding:0 var(--page-pad);background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar .right{margin-left:auto}.search-wrap{position:relative;display:flex;align-items:center;flex:1 1 260px;max-width:560px}.search-wrap>.ico{position:absolute;left:11px;color:var(--faint);pointer-events:none;transition:color .12s ease}.search-wrap:focus-within>.ico{color:var(--accent)}.search-wrap>.search{width:100%;padding-left:36px}.topbar .search,.topbar .search-wrap{flex:1 1 260px;max-width:560px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:calc(var(--block-gap) * var(--density))}.sub{color:var(--muted);font-size:calc(var(--fs) * .95);margin:4px 0 0;max-width:64ch}.page-head .sub{font-size:calc(var(--fs) * .97)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:calc(24px * var(--density))}.card+.card{margin-top:calc(var(--block-gap) * var(--density))}.cards>.card+.card,.stack-lg>.card+.card,.stack>.card+.card{margin-top:0}.card-title,.card>h2{font-size:calc(var(--fs) * 1.286);font-weight:600;letter-spacing:-.025em}.card>h2+.sub{margin-top:6px}.card.flush{padding:0}.card-head{display:flex;flex-direction:column;gap:6px;padding:calc(24px * var(--density))}.card-body,.card-foot{padding:0 calc(24px * var(--density)) calc(24px * var(--density))}.card-foot{display:flex;align-items:center;gap:10px}.card-head+.card-body{padding-top:0}.card.flush>.table-scroll{border-radius:inherit;overflow:hidden}.card .sub{color:var(--muted);font-size:calc(var(--fs) * .95);margin:0 0 calc(14px * var(--density))}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:14px;gap:14px}.cards+*{margin-top:calc(20px * var(--density))}.stat .label{font-size:calc(var(--fs) * .78);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}.stat .value{font-size:calc(var(--fs) * 1.85);font-weight:600;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .hint{font-size:calc(var(--fs) * .88);color:var(--muted);margin-top:3px}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:var(--fs)}th{height:48px;padding:0 16px;font-weight:500;color:var(--muted);white-space:nowrap}td{padding:16px}td,th{text-align:left;vertical-align:middle}tbody tr,thead tr{border-bottom:1px solid var(--line)}tbody tr:last-child{border-bottom:0}tbody tr:hover{background:color-mix(in srgb,var(--sunken) 55%,transparent)}tbody tr{transition:background-color .12s ease}.card-body>.table-wrap,.card>.table-scroll>.table-wrap,.card>.table-wrap{border:0;box-shadow:none;border-radius:0;background:transparent}.table-wrap.dense th{height:36px;padding:0 12px}.table-wrap.dense td{padding:8px 12px}.table-wrap.dense table{font-size:calc(var(--fs) * .95)}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td.mono,th.mono{font-family:var(--mono);font-size:calc(var(--fs) * .88);overflow-wrap:anywhere}td.actions,th.actions{white-space:nowrap;text-align:right;width:1%}td.actions .flex{justify-content:flex-end;flex-wrap:nowrap}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:calc(14px * var(--density))}.field>label{font-size:calc(var(--fs) * .9);color:var(--muted)}.field .hint{color:var(--faint);line-height:1.45}.field .error,.field .hint{font-size:calc(var(--fs) * .86)}.field .error{color:var(--danger)}.input,input:not([type]),input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{width:100%;font:inherit;font-size:calc(var(--fs) * .97);min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);outline:none}.input:hover,input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}.input:focus,input:focus,select:focus,textarea:focus{border-color:var(--accent)}input:disabled,select:disabled,textarea:disabled{background:var(--sunken);color:var(--muted);cursor:not-allowed}.input.invalid,input[aria-invalid=true]{border-color:var(--danger)}textarea{min-height:110px;resize:vertical;line-height:1.5}.input.sm,input.sm,select.sm{min-height:36px;padding:6px 10px;font-size:calc(var(--fs) * .95)}input.mono,textarea.mono{font-family:var(--mono);font-size:calc(var(--fs) * .88)}.checkbox{display:flex;align-items:center;gap:8px;font-size:calc(var(--fs) * .97);margin-bottom:10px}.checkbox input{width:auto}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:0 16px;gap:0 16px}.row.six{grid-template-columns:repeat(6,1fr)}.row .span-2{grid-column:span 2}.row .span-3{grid-column:span 3}.row .span-6{grid-column:span 6}@media (max-width:720px){.row.six{grid-template-columns:1fr}.row [class*=span-]{grid-column:auto}}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:calc(16px * var(--density))}.toolbar input[type=search],.toolbar input[type=text]{max-width:320px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:var(--fs);font-weight:500;min-height:40px;padding:8px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;white-space:nowrap;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.btn,.btn:hover{color:var(--ink);text-decoration:none}.btn:hover{background:var(--sunken)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;background:var(--surface);border-color:var(--line)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:color-mix(in srgb,var(--accent) 88%,var(--paper));border-color:color-mix(in srgb,var(--accent) 88%,var(--paper));color:var(--accent-ink)}.btn.danger{background:var(--danger);border-color:var(--danger);color:var(--danger-ink)}.btn.danger:hover{background:color-mix(in srgb,var(--danger) 88%,var(--paper));border-color:color-mix(in srgb,var(--danger) 88%,var(--paper));color:var(--danger-ink)}.btn.good{background:var(--good);border-color:var(--good);color:var(--good-ink)}.btn.good:hover{background:color-mix(in srgb,var(--good) 88%,var(--paper));border-color:color-mix(in srgb,var(--good) 88%,var(--paper));color:var(--good-ink)}.btn.secondary{background:var(--sunken);border-color:transparent;color:var(--ink)}.btn.secondary:hover{background:var(--line);color:var(--ink)}.btn.muted{background:var(--sunken);border-color:transparent;color:var(--muted)}.btn.muted:hover{background:var(--sunken);color:var(--ink)}.btn.quiet{background:none;border-color:transparent;color:var(--ink)}.btn.quiet:hover{background:var(--sunken);color:var(--ink)}.btn.quiet.danger{background:none;border-color:transparent;color:var(--danger-text)}.btn.quiet.danger:hover{background:var(--danger-soft);color:var(--danger-text)}.btn.link{background:none;border-color:transparent;color:var(--accent);padding:4px 6px;min-height:0;text-decoration:underline;text-underline-offset:3px;-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent)}.btn.link:hover{background:var(--accent-soft);color:var(--accent);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.btn.sm{min-height:36px;padding:6px 12px;font-size:calc(var(--fs) * .92);gap:6px}.btn.lg{min-height:44px;padding:10px 20px}.btn.icon{width:40px;padding:0;flex:none}.btn.icon.sm{width:36px}.btn.icon.lg{width:44px}.badge{display:inline-flex;align-items:center;white-space:nowrap;font-size:calc(var(--fs) * .857);font-weight:600;line-height:1.45;color:var(--muted);background:var(--sunken);border:1px solid transparent;border-radius:var(--radius-sm);padding:2px 10px}.badge.ok{background:var(--good);color:var(--good-ink)}.badge.warn{background:var(--warn);color:var(--warn-ink)}.badge.bad{background:var(--danger);color:var(--danger-ink)}.badge.info{background:var(--accent);color:var(--accent-ink)}.badge.soft.ok{background:var(--good-soft);color:var(--good-text)}.badge.soft.warn{background:var(--warn-soft);color:var(--warn-text)}.badge.soft.bad{background:var(--danger-soft);color:var(--danger-text)}.badge.quiet{background:none;border-color:transparent;padding:1px 0;font-weight:500;color:var(--faint);font-size:calc(var(--fs) * .9)}.note{border:1px solid var(--line);border-left:3px solid var(--muted);background:var(--surface);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:11px 14px;font-size:calc(var(--fs) * .97);margin-bottom:calc(16px * var(--density))}.note.ok{border-left-color:var(--good);background:var(--good-soft)}.note.warn{border-left-color:var(--warn);background:var(--warn-soft)}.note.bad{border-left-color:var(--danger);background:var(--danger-soft)}.empty{text-align:center;padding:48px 20px;color:var(--muted)}.empty b{display:block;color:var(--ink);margin-bottom:4px;font-size:calc(var(--fs) * 1.05)}.spinner{display:inline-block;width:15px;height:15px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:fd-spin .7s linear infinite}@keyframes fd-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.skeleton{background:var(--sunken);border-radius:var(--radius-sm);animation:fd-pulse 1.4s ease-in-out infinite}@keyframes fd-pulse{0%,to{opacity:1}50%{opacity:.55}}.modal-back{position:fixed;inset:0;z-index:50;background:var(--scrim);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow-y:auto}.modal{width:100%;max-width:640px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lift);padding:calc(20px * var(--density))}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:calc(16px * var(--density))}.modal-foot{display:flex;gap:10px;justify-content:flex-end;margin-top:calc(20px * var(--density))}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:380px}.ico{width:16px;height:16px;flex:none}.ico.lg{width:20px;height:20px}.ico.xl{width:24px;height:24px}.badge>svg:not([class]),.brand>svg:not([class]),.btn>svg:not([class]),.nav-item>svg:not([class]),.note>svg:not([class]),.stat>svg:not([class]){width:16px;height:16px;flex:none}.empty>svg:not([class]){width:24px;height:24px;flex:none}.nav-item .ico{opacity:.9}.nav-item.active .ico,.nav-item[aria-current=page] .ico{opacity:1}.meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-family:var(--mono);font-size:calc(var(--fs) * .86);color:var(--faint)}.meta>:not(:first-child):before{content:"\00b7";margin-right:6px;color:var(--line-strong)}.stack{gap:12px}.stack,.stack-lg{display:flex;flex-direction:column}.stack-lg{gap:calc(var(--block-gap) * var(--density))}.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spacer{flex:1 1}.right{margin-left:auto}.muted{color:var(--muted)}.faint{color:var(--faint)}.good-text{color:var(--good-text)}.warn-text{color:var(--warn-text)}.danger-text{color:var(--danger-text)}.small{font-size:calc(var(--fs) * .88)}.mono{font-family:var(--mono);overflow-wrap:anywhere}.mono,.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (max-width:860px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;overflow:visible;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;border-right:0;border-bottom:1px solid var(--line)}.nav-scroll{overflow:visible;padding:0;display:contents}.nav-foot{border:0;padding:0}.nav{flex-direction:row;flex-wrap:wrap}.nav-group,.nav-who{display:none}.brand{padding:0 12px 0 0;border-bottom:0}.main{padding:20px 16px 56px}}.col-form{max-width:640px}.col-wide{max-width:960px}.nav-logout{width:100%;font:inherit;background:none;border:0;cursor:pointer;text-align:left}.pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:calc(var(--block-gap) * var(--density));font-size:calc(var(--fs) * .95);color:var(--muted)}