/* Общий слой с главной страницей (токены Neverlose, шапка, pill, кнопки) */

/* Токены взяты из CSS Neverlose (app.css) */
:root{
  color-scheme:dark;
  --nd-bg:#0b0b0d; --nd-fg:rgba(255,255,255,.85); --nd-fg-solid:#f2f2f4; --nd-muted:rgba(150,150,150,.8); --nd-tertiary:rgba(255,255,255,.25);
  --nd-popover:#141417; --nd-border:rgba(255,255,255,.12); --nd-border-subtle:rgba(255,255,255,.10); --nd-divider:rgba(255,255,255,.06);
  --nd-glass-surface:rgba(0,0,0,.45); --nd-glass-pill:rgba(80,80,80,.10); --nd-surface-1:rgba(255,255,255,.045);
  --nd-primary:#4e7dff; --nd-primary-hover:#6b92ff; --nd-primary-press:#4471ef; --nd-ring:rgba(78,125,255,.6);
  --nd-pill-ring:0 0 0 1px rgba(255,255,255,.065); --nd-pill-shadow:0 8px 40px rgba(10,10,10,.40);
  --nd-pill-hover:rgba(255,255,255,.045); --nd-pill-press:rgba(255,255,255,.075); --nd-tab-sel:rgba(255,255,255,.10);
  --nd-control-fg:rgba(255,255,255,.85); --nd-control-dim:rgba(255,255,255,.5);
  --nd-card-bg:var(--nd-glass-surface); --nd-card-hover:color-mix(in srgb,var(--nd-glass-surface) 86%,#fff);
  --nd-card-shadow:0 0 0 1px rgba(255,255,255,.055),0 8px 40px rgba(10,10,10,.40);
  --nd-card-shadow-hover:0 0 0 1px rgba(255,255,255,.1),0 8px 40px rgba(10,10,10,.40);
  --nd-navbar-fade:rgba(11,11,13,.92); --nd-nav-section:rgba(255,255,255,.5);
  --nd-blue:#9eb8ff; --nd-green:#6ee7b7; --nd-prose:color-mix(in srgb,var(--nd-fg) 80%,var(--nd-bg));
  --nd-code-fg:#e6edf3; --nd-code-keyword:#ff7b72; --nd-code-string:#a5d6ff; --nd-code-function:#d2a8ff; --nd-code-number:#79c0ff;
  --nd-on-primary:#fff; --nd-art-bg:#0d0e12; --nd-art-glass-thin:rgba(10,10,12,.5); --nd-art-glass-border:rgba(255,255,255,.12);
  --nd-on-art:#fff; --nd-on-art-muted:rgba(255,255,255,.72); --nd-on-art-strong:rgba(255,255,255,.85);
  --nd-font-sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --nd-font-code:"JetBrains Mono",ui-monospace,Consolas,monospace;
  --nd-w-regular:450; --nd-w-medium:550; --nd-w-heading:650;
  --nd-radius-sm:6px; --nd-radius-md:8px; --nd-radius-lg:10px; --nd-radius-panel:16px; --nd-radius-pill:9999px;
  --nd-ease-quart:cubic-bezier(.25,1,.5,1); --nd-ease-quint:cubic-bezier(.22,1,.36,1);
  --nd-dur-fast:150ms; --nd-dur:200ms; --nd-dur-move:220ms; --nd-dur-reveal:400ms;
  --nd-max-w:1280px; --nd-gutter:20px; --nd-pill-h:44px; --site-header-height:76px;
}
:root[data-theme="light"]{
  color-scheme:light;
  --nd-bg:#fff; --nd-fg:#0a0a0c; --nd-fg-solid:#0a0a0c; --nd-muted:rgba(0,0,0,.45); --nd-tertiary:rgba(0,0,0,.25);
  --nd-popover:#fff; --nd-border:#ececf0; --nd-border-subtle:rgba(0,0,0,.08); --nd-divider:rgba(0,0,0,.05);
  --nd-glass-surface:rgba(255,255,255,.64); --nd-glass-pill:rgba(255,255,255,.64); --nd-surface-1:rgba(120,120,128,.10);
  --nd-primary:#3d6af0; --nd-primary-hover:#3560e0; --nd-primary-press:#2f55cc; --nd-ring:rgba(61,106,240,.45);
  --nd-pill-ring:inset 0 .5px 0 rgba(255,255,255,.48),0 0 0 1px rgba(20,20,20,.06); --nd-pill-shadow:0 8px 40px rgba(20,20,20,.12);
  --nd-pill-hover:color-mix(in srgb,var(--nd-glass-pill) 76%,rgba(120,120,128,.26)); --nd-pill-press:color-mix(in srgb,var(--nd-glass-pill) 64%,rgba(120,120,128,.34));
  --nd-tab-sel:rgba(120,120,128,.18); --nd-control-fg:#1a1a1a; --nd-control-dim:#727272;
  --nd-card-hover:color-mix(in srgb,var(--nd-glass-surface) 76%,rgba(120,120,128,.26));
  --nd-card-shadow:inset 0 .5px 0 rgba(255,255,255,.48),0 0 0 1px rgba(20,20,20,.07),0 8px 40px rgba(20,20,20,.10);
  --nd-card-shadow-hover:inset 0 .5px 0 rgba(255,255,255,.48),0 0 0 1px rgba(20,20,20,.12),0 8px 40px rgba(20,20,20,.10);
  --nd-navbar-fade:rgba(255,255,255,.92); --nd-nav-section:rgba(60,60,67,.6);
  --nd-blue:#1d4ed8; --nd-green:#047857;
  --nd-code-fg:#1f2328; --nd-code-keyword:#cf222e; --nd-code-string:#0a3069; --nd-code-function:#8250df; --nd-code-number:#0550ae;
}
*{margin:0;padding:0;box-sizing:inherit}
html{box-sizing:border-box;overflow-x:hidden;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--nd-muted) var(--nd-bg);scroll-behavior:smooth;scroll-padding-top:calc(var(--site-header-height) + 16px);background:var(--nd-bg)}
body{font-family:var(--nd-font-sans);font-size:14px;font-weight:var(--nd-w-regular);line-height:1.45;color:var(--nd-fg);background:var(--nd-bg);-webkit-font-smoothing:antialiased;font-optical-sizing:auto}
::selection{background:color-mix(in srgb,var(--nd-primary) 25%,transparent)}
:focus-visible{outline:2px solid var(--nd-ring);outline-offset:2px}
a{color:inherit;text-decoration:none}
.container{width:100%;max-width:calc(var(--nd-max-w) + 2*var(--nd-gutter));margin:0 auto;padding-inline:var(--nd-gutter)}
@media(max-width:640px){:root{--nd-gutter:16px}}

/* анимация смены темы */
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}
.theme-fade,.theme-fade *{transition:background-color .4s,color .4s,border-color .4s,box-shadow .4s!important}

/* pill: общий стеклянный элемент */
.nd-pill{display:inline-flex;align-items:center;height:var(--nd-pill-h);border:0;border-radius:var(--nd-radius-pill);color:var(--nd-control-fg);background:var(--nd-glass-pill);box-shadow:var(--nd-pill-ring),var(--nd-pill-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:color var(--nd-dur-fast) ease-out,background-color var(--nd-dur-fast) ease-out;font-family:inherit;cursor:pointer}
a.nd-pill:hover,button.nd-pill:hover{background-color:var(--nd-pill-hover)}
.site-footer .nd-pill{-webkit-backdrop-filter:none;backdrop-filter:none}
.nd-pill:active{background-color:var(--nd-pill-press)}
.nd-pill--primary{gap:8px;padding-inline:16px;font-size:14px;font-weight:var(--nd-w-medium);color:var(--nd-on-primary);background:var(--nd-primary)}
a.nd-pill--primary:hover{background-color:var(--nd-primary-hover);color:var(--nd-on-primary)}
.nd-pill--primary:active{background-color:var(--nd-primary-press)}
.tools-link{gap:7px;padding-inline:16px;font-size:14px;font-weight:var(--nd-w-medium);white-space:nowrap}
.tools-link span{color:var(--nd-blue);transition:transform var(--nd-dur-move) var(--nd-ease-quint)}
.tools-link:hover span{transform:translate(2px,-2px)}

.nd-iconpill{justify-content:center;width:var(--nd-pill-h);padding:0;color:var(--nd-control-dim)}
.nd-iconpill:hover{color:var(--nd-control-fg)}
.nd-iconpill svg{width:18px;height:18px}
.nd-iconpill svg.dc{width:20px;height:20px}
.ic-moon{display:none}:root[data-theme="light"] .ic-sun{display:none}:root[data-theme="light"] .ic-moon{display:block}

/* шапка */
.site-header{position:fixed;inset:0 0 auto;z-index:999;padding:16px var(--nd-gutter);pointer-events:none}
.site-header::before{content:"";position:absolute;inset:0 0 -28px;z-index:-1;background:linear-gradient(to bottom,var(--nd-navbar-fade),transparent 78%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 30%,rgba(0,0,0,.5) 62%,transparent);mask-image:linear-gradient(to bottom,#000 0,#000 30%,rgba(0,0,0,.5) 62%,transparent);opacity:0;visibility:hidden;transition:opacity var(--nd-dur-reveal) var(--nd-ease-quart),visibility 0s var(--nd-dur-reveal)}
.site-header[data-scrolled=true]::before{opacity:1;visibility:visible;transition-delay:0s}
.site-header__row{display:flex;align-items:center;gap:8px;max-width:var(--nd-max-w);margin-inline:auto}
.site-header__row>*{pointer-events:auto}
.site-header__spacer{flex:1;pointer-events:none!important}
.logo{justify-content:center;gap:9px;padding-inline:14px;font-weight:var(--nd-w-heading);font-size:15px;color:var(--nd-fg-solid)}
.logo i{width:22px;height:22px;border-radius:7px;background:var(--nd-primary);color:#fff;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:700}
.nd-tabs{position:relative;gap:2px;padding-inline:4px;overflow-x:auto;scrollbar-width:none;min-width:0}
.nd-tabs::-webkit-scrollbar{display:none}
.nd-tab{position:relative;z-index:1;display:inline-flex;flex:none;align-items:center;height:36px;padding-inline:18px;font-size:14px;line-height:1;white-space:nowrap;color:var(--nd-control-fg);border-radius:var(--nd-radius-pill)}
.nd-tab.is-active{-webkit-text-stroke:.25px currentColor;color:var(--nd-fg-solid)}
.nd-track-indicator{position:absolute;top:0;left:0;z-index:0;border-radius:var(--nd-radius-pill);background:var(--nd-tab-sel);opacity:0;pointer-events:none}
.nd-track-indicator.go{transition:transform var(--nd-dur-move) var(--nd-ease-quint),width var(--nd-dur-move) var(--nd-ease-quint),opacity 90ms}
@media(max-width:1023px){:root{--site-header-height:128px}.site-header__row{flex-wrap:wrap}.nd-tabs{order:10;flex:1 1 100%}}
@media(max-width:640px){.site-header .dl span{display:none}}

/* кнопки */
.nd-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding-inline:22px;font:var(--nd-w-medium) 15px var(--nd-font-sans);white-space:nowrap;color:var(--nd-control-fg);border:1px solid transparent;border-radius:var(--nd-radius-pill);background:var(--nd-glass-pill);box-shadow:var(--nd-pill-ring),var(--nd-pill-shadow);cursor:pointer;transition:color var(--nd-dur-fast) ease-out,background-color var(--nd-dur-fast) ease-out}
.nd-btn:hover{background-color:var(--nd-pill-hover);color:var(--nd-fg-solid)}
.nd-btn:active{background-color:var(--nd-pill-press)}
.nd-btn--primary{color:var(--nd-on-primary);background:var(--nd-primary);box-shadow:none}
.nd-btn--primary:hover{background:var(--nd-primary-hover);color:var(--nd-on-primary)}
.nd-btn--primary:active{background:var(--nd-primary-press)}
.nd-btn--md{height:32px;padding-inline:12px;font-size:13px;gap:6px}
.nd-btn--lg{height:40px;padding-inline:18px;font-size:14px}
.nd-btn svg,.nd-pill svg.dc{flex:none;width:18px;height:18px;fill:currentColor}
.actions{display:flex;flex-wrap:wrap;gap:8px}


/* ===================== Инструменты: компоненты поверх общей системы ===================== */
:root{
  --nd-search-bg:rgba(120,120,128,.16);--nd-scrim:rgba(0,0,0,.55);
  --nd-popover-glass:rgba(20,20,23,.88);--nd-popover-border:rgba(255,255,255,.10);
  --nd-red:#ff8f8f;--nd-amber:#f5c26b;--nd-violet:#b7a1ff;
}
:root[data-theme=light]{
  --nd-search-bg:rgba(120,120,128,.12);--nd-scrim:rgba(20,22,30,.38);
  --nd-popover-glass:rgba(255,255,255,.92);--nd-popover-border:rgba(0,0,0,.08);
  --nd-red:#c62828;--nd-amber:#92600a;--nd-violet:#6d4fd8;
}
.ico{width:18px;height:18px;flex:none}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.tools-link{gap:7px;padding-inline:16px;font-size:14px;font-weight:var(--nd-w-medium);white-space:nowrap}
.tools-link .ico{width:15px;height:15px;color:var(--nd-blue)}
.tools-link[aria-current=page]{background:var(--nd-tab-sel);color:var(--nd-fg-solid)}
.nd-tabs button.nd-tab{border:0;background:none;font:inherit;font-size:14px;cursor:pointer}
.nd-btn--md{height:40px;padding-inline:18px;font-size:14px}
.nd-btn--sm{height:32px;padding-inline:12px;font-size:13px}
.nd-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.nd-btn .ico{width:16px;height:16px}

/* карточка */
.nd-card{position:relative;border-radius:var(--nd-radius-panel);background:var(--nd-card-bg);box-shadow:var(--nd-card-shadow);transition:background-color var(--nd-dur-fast) ease-out,box-shadow var(--nd-dur-fast) ease-out,transform var(--nd-dur-move) var(--nd-ease-quint)}

/* верх страницы */
.t-hero{padding:calc(var(--site-header-height) + 56px) 0 28px}
.nd-chip{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 12px;border-radius:9999px;font-size:12.5px;font-weight:var(--nd-w-medium);color:var(--nd-control-dim);background:var(--nd-glass-pill);box-shadow:var(--nd-pill-ring)}
.pulse{width:7px;height:7px;border-radius:50%;background:var(--nd-green);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--nd-green) 55%,transparent)}70%,100%{box-shadow:0 0 0 8px transparent}}
.t-hero h1{margin:18px 0 0;font-size:clamp(32px,4.6vw,48px);font-weight:var(--nd-w-heading);line-height:1.06;letter-spacing:-.035em;color:var(--nd-fg-solid)}
.t-hero .nd-lead{margin:14px 0 0;max-width:560px;font-size:16px;line-height:1.55;color:var(--nd-muted);text-wrap:pretty}
.t-hero>.container>*{animation:rise .7s var(--nd-ease-quint) both}
.t-hero>.container>:nth-child(2){animation-delay:.06s}.t-hero>.container>:nth-child(3){animation-delay:.12s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}}

.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:8px 0 48px}
.metric{display:flex;flex-direction:column;gap:2px;padding:16px 18px}
.metric span{font-size:13px;color:var(--nd-muted)}
.metric b{font-size:28px;font-weight:var(--nd-w-heading);letter-spacing:-.03em;line-height:1.2;color:var(--nd-fg-solid);font-variant-numeric:tabular-nums}

/* панель инструментов */
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.cat-tabs{max-width:100%}
.search{display:flex;align-items:center;gap:8px;height:44px;width:min(300px,100%);padding:0 16px;border-radius:9999px;background:var(--nd-search-bg);box-shadow:inset 0 0 0 1px var(--nd-border-subtle);color:var(--nd-muted);transition:box-shadow var(--nd-dur-fast) ease-out}
.search:focus-within{box-shadow:inset 0 0 0 1px var(--nd-ring),0 0 0 3px color-mix(in srgb,var(--nd-ring) 16%,transparent)}
.search input{flex:1;min-width:0;border:0;outline:0;background:none;color:var(--nd-fg);font:inherit;font-size:14px}
.search input::placeholder{color:var(--nd-muted)}
.tool-section{margin-top:36px;scroll-margin-top:100px}
.sec-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-bottom:14px}
.sec-head h2{font-size:20px;font-weight:var(--nd-w-heading);letter-spacing:-.02em;color:var(--nd-fg)}
.sec-head p{font-size:14px;color:var(--nd-muted)}
.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.tool-card{display:flex;flex-direction:column;gap:6px;min-height:152px;padding:16px;border:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.tool-card:hover{background:var(--nd-card-hover);box-shadow:var(--nd-card-shadow-hover);transform:translateY(-2px)}
.tool-card:active{transform:scale(.99)}
.tool-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.tool-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:var(--nd-blue);background:color-mix(in srgb,var(--nd-primary) 14%,transparent)}
.tool-title{font-size:15px;font-weight:var(--nd-w-heading);color:var(--nd-fg)}
.tool-desc{font-size:13px;line-height:1.5;color:var(--nd-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tool-file{margin-top:auto;padding-top:8px;font:12px var(--nd-font-code);color:var(--nd-tertiary)}
.nd-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:9999px;font-size:12px;font-weight:var(--nd-w-medium);white-space:nowrap;color:var(--tone,var(--nd-green));background:color-mix(in srgb,var(--tone,var(--nd-green)) 11%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tone,var(--nd-green)) 22%,transparent)}
.nd-badge.is-cli{--tone:var(--nd-violet)}.nd-badge.is-off{--tone:var(--nd-amber)}
.empty{padding:40px 16px;text-align:center;color:var(--nd-muted)}

/* живые данные */
.live{margin:48px 0 0;padding:20px}
.live-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.live-head h2{font-size:18px;font-weight:var(--nd-w-heading);letter-spacing:-.02em;color:var(--nd-fg)}
.live-actions{display:flex;align-items:center;gap:8px}
.nd-tabs.sm{--nd-pill-h:36px;padding:3px}
.nd-tabs.sm .nd-tab{height:30px;padding-inline:14px;font-size:13px}
.ic-btn{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;color:var(--nd-control-dim);background:var(--nd-glass-pill);box-shadow:var(--nd-pill-ring);cursor:pointer;transition:color var(--nd-dur-fast),background-color var(--nd-dur-fast)}
.ic-btn:hover{color:var(--nd-control-fg);background:var(--nd-pill-hover)}
.ic-btn.is-spin .ico{animation:spin .8s linear infinite}

/* таблицы */
.tbl{overflow:auto;max-height:min(52vh,520px);border-radius:14px;box-shadow:inset 0 0 0 1px var(--nd-border-subtle);scrollbar-width:thin}
.tbl table{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{position:sticky;top:0;z-index:1;padding:10px 14px;text-align:left;font-size:12px;font-weight:var(--nd-w-medium);color:var(--nd-muted);white-space:nowrap;background:var(--nd-popover);border-bottom:1px solid var(--nd-border-subtle)}
.tbl td{padding:10px 14px;color:var(--nd-fg);border-bottom:1px solid var(--nd-divider);overflow-wrap:anywhere}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr:hover td{background:var(--nd-surface-1)}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl .mono{font:12.5px var(--nd-font-code);color:var(--nd-control-dim)}
.live .tbl{max-height:none}

/* диалог */
html:has(dialog[open]){overflow:hidden}
.nd-dialog{width:min(560px,calc(100vw - 24px));max-width:none;max-height:none;margin:auto;padding:0;border:0;background:transparent;color:inherit;overflow:visible}
.nd-dialog.is-wide{width:min(920px,calc(100vw - 24px))}
.nd-dialog::backdrop{background:var(--nd-scrim);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.nd-dialog[open]{animation:dlg-in .3s var(--nd-ease-quint)}
.nd-dialog[open]::backdrop{animation:fade-in .22s ease-out}
.nd-dialog.is-closing{animation:dlg-out .16s ease-in forwards}
.nd-dialog.is-closing::backdrop{animation:fade-out .16s ease-in forwards}
@keyframes dlg-in{from{opacity:0;transform:translateY(14px) scale(.975)}}
@keyframes dlg-out{to{opacity:0;transform:translateY(8px) scale(.985)}}
@keyframes fade-in{from{opacity:0}}@keyframes fade-out{to{opacity:0}}
.dlg-panel{display:flex;flex-direction:column;max-height:min(88dvh,840px);border-radius:24px;overflow:hidden;background:var(--nd-popover-glass);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);box-shadow:0 0 0 1px var(--nd-popover-border),0 24px 80px rgba(0,0,0,.45)}
.dlg-head{display:flex;gap:14px;align-items:flex-start;padding:20px 20px 4px}
.dlg-ico{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:14px;color:var(--nd-blue);background:color-mix(in srgb,var(--nd-primary) 14%,transparent)}
.dlg-ico .ico{width:22px;height:22px}
.dlg-title{flex:1;min-width:0}
.dlg-title h2{font-size:18px;font-weight:var(--nd-w-heading);letter-spacing:-.02em;line-height:1.3;color:var(--nd-fg-solid)}
.dlg-title p{margin-top:2px;font-size:13px;line-height:1.5;color:var(--nd-muted)}
.dlg-body{flex:1;min-height:0;overflow:auto;padding:16px 20px;scrollbar-width:thin}
.dlg-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;border-top:1px solid var(--nd-divider)}
.dlg-foot code{font:12px var(--nd-font-code);color:var(--nd-tertiary);overflow-wrap:anywhere}
.dlg-btns{display:flex;gap:8px;margin-left:auto}

/* формы */
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}
.f{display:flex;flex-direction:column;gap:6px;grid-column:1/-1;min-width:0}
.f.half{grid-column:span 1}
.f label{font-size:13px;font-weight:var(--nd-w-medium);color:var(--nd-control-fg)}
.f small{font-size:12px;color:var(--nd-muted)}
.nd-input{width:100%;height:44px;padding:0 16px;border:0;border-radius:12px;outline:0;color:var(--nd-fg);font:inherit;font-size:14px;background:var(--nd-search-bg);box-shadow:inset 0 0 0 1px var(--nd-border-subtle);transition:box-shadow var(--nd-dur-fast) ease-out}
.nd-input::placeholder{color:var(--nd-muted)}
.nd-input:focus{box-shadow:inset 0 0 0 1px var(--nd-ring),0 0 0 3px color-mix(in srgb,var(--nd-ring) 16%,transparent)}
select.nd-input{appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}
select.nd-input option{background:var(--nd-popover);color:var(--nd-fg)}
.pw{position:relative}.pw .nd-input{padding-right:46px}
.pw button{position:absolute;right:6px;top:6px;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;color:var(--nd-control-dim);background:none;cursor:pointer}
.pw button:hover{color:var(--nd-control-fg);background:var(--nd-pill-hover)}
.inline-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-bottom:14px}
.inline-form.two{grid-template-columns:1fr 160px auto}
.pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;color:var(--nd-muted);font-size:13px}

/* сообщения */
.nd-callout{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px;padding:12px 14px;border-radius:12px;font-size:13.5px;line-height:1.55;color:var(--nd-fg);overflow-wrap:anywhere;background:color-mix(in srgb,var(--tone,var(--nd-blue)) 9%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tone,var(--nd-blue)) 24%,transparent)}
.nd-callout .ico{margin-top:2px;color:var(--tone,var(--nd-blue))}
.nd-callout.is-ok{--tone:var(--nd-green)}.nd-callout.is-err{--tone:var(--nd-red)}.nd-callout.is-warn{--tone:var(--nd-amber)}
.nd-callout code{font:12.5px var(--nd-font-code)}
.nd-callout p+p{margin-top:6px}
.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.kv div{display:flex;justify-content:space-between;gap:10px;padding:11px 14px;border-radius:12px;font-size:13px;background:var(--nd-surface-1);box-shadow:inset 0 0 0 1px var(--nd-border-subtle)}
.kv span{color:var(--nd-muted)}.kv b{font-weight:var(--nd-w-heading);font-variant-numeric:tabular-nums;color:var(--nd-fg-solid)}
.sub-h{margin:20px 0 10px;font-size:14px;font-weight:var(--nd-w-heading);color:var(--nd-fg)}
.sub-h small{margin-left:6px;font-weight:var(--nd-w-regular);color:var(--nd-muted)}
.secret{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:10px 12px 10px 14px;border-radius:12px;background:var(--nd-surface-1);box-shadow:inset 0 0 0 1px var(--nd-border-subtle)}
.secret div{flex:1;min-width:0}.secret span{display:block;font-size:12px;color:var(--nd-muted)}
.secret code{display:block;font:12.5px var(--nd-font-code);color:var(--nd-fg);overflow-wrap:anywhere}
.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--nd-border);border-top-color:var(--nd-primary);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-3px}
.loading{padding:28px;text-align:center;color:var(--nd-muted)}.loading .spinner{margin-right:8px}
@keyframes spin{to{transform:rotate(360deg)}}

/* уведомление */
.toast{position:fixed;left:50%;bottom:24px;z-index:2000;display:flex;align-items:center;gap:10px;max-width:min(440px,calc(100vw - 32px));padding:12px 16px;border-radius:9999px;font-size:13.5px;color:var(--nd-fg);background:var(--nd-popover-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 0 0 1px var(--nd-popover-border),0 12px 40px rgba(0,0,0,.35);opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:opacity .2s,transform .25s var(--nd-ease-quint)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast .ico{color:var(--nd-green)}.toast.is-err .ico{color:var(--nd-red)}

.tools-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:64px;padding:24px 0 36px;border-top:1px solid var(--nd-divider);font-size:13px;color:var(--nd-muted)}

@media(max-width:1023px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){
  .t-hero{padding-top:calc(var(--site-header-height) + 36px)}
  .tool-grid,.kv{grid-template-columns:1fr}
  .toolbar{align-items:stretch}.search{width:100%}
  .cat-tabs{order:2;width:100%}
  .fgrid{grid-template-columns:1fr}.f.half{grid-column:1/-1}
  .inline-form,.inline-form.two{grid-template-columns:1fr}
  .dlg-panel{border-radius:20px}.dlg-foot{flex-wrap:wrap}.dlg-foot code{display:none}
  .toast{bottom:16px}
}
@media(prefers-reduced-motion:reduce){.pulse,.spinner,.ic-btn.is-spin .ico{animation:none}}
