/* =============================================================
   FLX — style.css
   Палитра — красный / зелёный / бирюзовый на графите.
   Заголовки — Oswald, текст — Manrope, идентификаторы — JetBrains Mono.
   ============================================================= */

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --scp-red: #e5534b;
    --scp-green: #31c48b;
    --scp-cyan: #4fe3cf;
    --scp-mint: #b9ffdf;
    --scp-salmon: #fea79b;
    --scp-orange: #f2994a;
    --scp-yellow: #ecd547;
    --brand-stripe: linear-gradient(90deg, var(--scp-red) 0 20%, var(--scp-orange) 20% 40%, var(--scp-yellow) 40% 60%, var(--scp-green) 60% 80%, var(--scp-cyan) 80% 100%);

    --bg-4: #282832;
    --line: rgba(255, 255, 255, 0.065);
    --line-2: rgba(255, 255, 255, 0.11);
    --line-3: rgba(255, 255, 255, 0.2);

    --text: #dedee4;
    --text-hi: #ffffff;
    --text-dim: #9b9ba8;
    --text-mute: #676774;

    --accent: #4fe3cf;
    --accent-light: #8ff0e2;
    --accent-dark: #22a896;
    --accent-ink: #05201c;
    --accent-soft: rgba(79, 227, 207, 0.12);
    --accent-glow: rgba(79, 227, 207, 0.28);

    --danger: #e5534b;
    --danger-light: #ff8a80;
    --danger-soft: rgba(229, 83, 75, 0.13);
    --success: #31c48b;
    --success-soft: rgba(49, 196, 139, 0.13);
    --warn: #f2b84b;
    --warn-soft: rgba(242, 184, 75, 0.13);
    --info: #4fe3cf;

    --input-bg: #101015;
    --input-bg-hover: #14141a;
    --input-border: rgba(255, 255, 255, 0.12);
    --input-text: #eeeef2;

    --radius-sm: 6px;
    --radius-md: 9px;
    --radius-lg: 14px;

    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.35);
    --shadow-md: 0 10px 30px rgba(0, 0, 0, 0.45);
    --shadow-lg: 0 24px 70px rgba(0, 0, 0, 0.6);

    --transition-fast: 0.15s ease;
    --transition-mid: 0.25s cubic-bezier(.2, .8, .2, 1);

    --font-body: 'Manrope', system-ui, sans-serif;
    --font-mono: 'JetBrains Mono', ui-monospace, monospace;

    --sidebar-w: 268px;
}

body {
    --accent-grad: linear-gradient(135deg, var(--accent), var(--accent-light));
}

body[data-theme="kuratorka"] {
    --accent: #31c48b;
    --accent-light: #7fe0b6;
    --accent-dark: #1d8a5f;
    --accent-ink: #04190f;
    --accent-soft: rgba(49, 196, 139, 0.13);
    --accent-glow: rgba(49, 196, 139, 0.3);
}

body[data-theme="eventology"] {
    --accent: #b388ff;
    --accent-light: #ffb8dd;
    --accent-dark: #7e4fd6;
    --accent-ink: #1b0b2e;
    --accent-soft: rgba(179, 136, 255, 0.14);
    --accent-glow: rgba(255, 158, 207, 0.32);
    --accent-grad: linear-gradient(135deg, #a77bff, #ff9ecf);
}

body[data-theme="hr"] {
    --accent: #4fe3cf;
    --accent-light: #b9ffdf;
    --accent-dark: #22a896;
    --accent-ink: #05201c;
    --accent-soft: rgba(79, 227, 207, 0.12);
}

html,
body {
    min-height: 100dvh;
    background: var(--bg-0);
    color: var(--text);
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color-scheme: dark;
}

body {
    background:
        radial-gradient(900px 500px at 8% -10%, rgba(229, 83, 75, 0.08), transparent 60%),
        radial-gradient(700px 420px at 50% -15%, rgba(242, 153, 74, 0.06), transparent 60%),
        radial-gradient(800px 500px at 95% 0%, rgba(49, 196, 139, 0.07), transparent 60%),
        radial-gradient(900px 600px at 20% 110%, rgba(236, 213, 71, 0.04), transparent 60%),
        radial-gradient(900px 600px at 80% 110%, rgba(79, 227, 207, 0.06), transparent 60%),
        var(--bg-0);
    background-attachment: fixed;
}

body.reader-open {
    overflow: hidden;
}

a {
    color: var(--accent-light);
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

code {
    font-family: var(--font-mono);
    font-size: 0.9em;
    padding: 1px 6px;
    border-radius: 4px;
    background: var(--bg-3);
    border: 1px solid var(--line);
    color: var(--accent-light);
}



[hidden],
.hidden {
    display: none !important;
}

.mono {
    font-family: var(--font-mono);
    font-size: 0.9em;
    letter-spacing: -0.01em;
}

.muted { color: var(--text-dim); }
.small { font-size: 13px; }
.pos { color: var(--scp-green); }
.neg { color: var(--danger-light); }
.na, .zero { color: var(--text-mute); }



::-webkit-scrollbar {   }

::-webkit-scrollbar-track { background: transparent; }

/* =============================================================
   Лоадер
   ============================================================= */
#boot-loader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: var(--bg-0);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    transition: opacity 0.35s ease, visibility 0.35s;
}

#boot-loader.hidden {
    display: flex !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.boot-mark {
    font-family: var(--font-head);
    font-size: 44px;
    letter-spacing: 0.32em;
    padding-left: 0.32em;
    color: #fff;
}

.boot-bar {
    width: 180px;
    height: 3px;
    background: var(--bg-3);
    border-radius: 2px;
    overflow: hidden;
}

.boot-bar span {
    display: block;
    width: 45%;
    height: 100%;
    background: var(--brand-stripe);
    animation: bootSlide 1.1s ease-in-out infinite;
}

@keyframes bootSlide {
    from { transform: translateX(-100%); }
    to { transform: translateX(230%); }
}

/* =============================================================
   Вход
   ============================================================= */
#auth-screen {
    min-height: 100dvh;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.auth-frame {
    width: 100%;
    max-width: 920px;
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    border: 1px solid var(--line-2);
    border-radius: 18px;
    overflow: hidden;
    background: var(--bg-1);
    box-shadow: var(--shadow-lg);
    position: relative;
}

.auth-frame::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: var(--brand-stripe);
}

.auth-side {
    padding: 52px 44px;
    border-right: 1px solid var(--line);
    background:
        radial-gradient(420px 260px at 0% 100%, rgba(229, 83, 75, 0.16), transparent 70%),
        radial-gradient(420px 260px at 100% 0%, rgba(79, 227, 207, 0.14), transparent 70%),
        var(--bg-1);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.auth-kicker {
    font-family: var(--font-mono);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--scp-cyan);
}

.auth-logo {
    font-family: var(--font-head);
    font-size: 96px;
    line-height: 0.9;
    letter-spacing: 0.1em;
    color: #fff;
}

.auth-text {
    color: var(--text-dim);
    max-width: 360px;
}

.auth-meta {
    margin-top: auto;
    display: flex;
    gap: 16px;
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--text-dim);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.auth-meta span::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 2px;
    margin-right: 7px;
    background: var(--scp-red);
}

.auth-meta span:nth-child(2)::before { background: var(--scp-green); }
.auth-meta span:nth-child(3)::before { background: var(--scp-cyan); }

.auth-card {
    padding: 52px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
}

.auth-card h1 {
    font-family: var(--font-head);
    font-weight: 500;
    font-size: 28px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #fff;
}

.auth-card .subtitle {
    color: var(--text-dim);
    margin-bottom: 16px;
}

.auth-btn {
    display: flex;
    align-items: center;
    gap: 14px;
    height: 52px;
    padding: 0 18px;
    border: 1px solid var(--line-2);
    border-radius: 11px;
    background: var(--bg-2);
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    transition: border-color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast);
}

.auth-btn:hover {
    text-decoration: none;
    border-color: var(--accent);
    background: var(--bg-3);
    transform: translateX(3px);
}

.auth-btn svg { width: 22px; height: 22px; flex-shrink: 0; }
.auth-btn.steam svg { color: #c7d5e0; }
.auth-btn.discord svg { color: #8c9eff; }

.error-msg {
    display: none;
    margin-top: 10px;
    padding: 11px 14px;
    border-left: 3px solid var(--danger);
    border-radius: 0 8px 8px 0;
    background: var(--danger-soft);
    color: var(--danger-light);
    font-size: 14px;
}

.error-msg.visible { display: block; }

/* =============================================================
   Каркас и сайдбар
   ============================================================= */
.app-shell {
    display: none;
    min-height: 100dvh;
}

.app-shell.visible { display: flex; }

.topbar { display: none; }

.sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: var(--sidebar-w);
    background: rgba(16, 16, 21, 0.92);
    backdrop-filter: blur(10px);
    border-right: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    z-index: 50;
}

.sidebar::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--brand-stripe);
}

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 24px 22px 20px;
}

.brand-mark {
    font-family: var(--font-head);
    font-size: 30px;
    line-height: 1;
    letter-spacing: 0.16em;
    color: #fff;
}

.brand-sub {
    display: inline-flex;
    gap: 4px;
}

.brand-sub i {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background: var(--scp-red);
}

.brand-sub i:nth-child(2) { background: var(--scp-orange); }
.brand-sub i:nth-child(3) { background: var(--scp-yellow); }
.brand-sub i:nth-child(4) { background: var(--scp-green); }
.brand-sub i:nth-child(5) { background: var(--scp-cyan); }

#sidebar-nav {
    flex: 1;
    overflow-y: auto;
    padding: 6px 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.nav-link {
    display: flex;
    align-items: center;
    gap: 13px;
    width: 100%;
    height: 44px;
    padding: 0 14px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--text-dim);
    font: 600 14.5px var(--font-body);
    text-align: left;
    cursor: pointer;
    position: relative;
}

.nav-link .ico {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    flex-shrink: 0;
}

.nav-link:hover {
    color: #fff;
}

.nav-link.active {
    color: #fff;
}

.nav-link.active::before {
    content: '';
    position: absolute;
    left: -12px;
    top: 9px;
    bottom: 9px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--accent);
    box-shadow: 0 0 12px var(--accent-glow);
}

.nav-link.active .ico { color: var(--accent); }

.nav-sep {
    height: 1px;
    background: var(--line);
    margin: 12px 6px;
}

.nav-category { margin-top: 14px; }

.nav-category-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 14px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--text-mute);
    cursor: pointer;
    font: 700 12px var(--font-body);
    text-transform: uppercase;
    letter-spacing: 0.14em;
}

.nav-category-toggle:hover { color: var(--text-dim); background: rgba(255, 255, 255, 0.025); }

.nav-category-title { flex: 1; text-align: left; }

.nav-category-count {
    min-width: 20px;
    height: 18px;
    padding: 0 6px;
    border-radius: 9px;
    background: var(--bg-3);
    font-size: 12px;
    line-height: 18px;
    text-align: center;
    color: var(--text-dim);
    letter-spacing: 0;
}

.nav-category-arrow {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    transition: transform var(--transition-mid);
}

.nav-category.open .nav-category-arrow { transform: rotate(90deg); }

.nav-category:not(.open) .nav-category-items { display: none; }
.nav-category.open .nav-category-items { display: flex; flex-direction: column; gap: 3px; margin-top: 4px; }

.sidebar-footer {
    border-top: 1px solid var(--line);
    align-items: center;
    gap: 10px;
}

.user-chip {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 11px;
}

.user-chip img,
.user-chip .avatar-ph {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    object-fit: cover;
    flex-shrink: 0;
}

.user-chip-text { min-width: 0; }

.user-chip .name {
    font-weight: 700;
    font-size: 14px;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-chip .class-label {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 3px;
}

.role-line {
    font-size: 12px;
    color: var(--text-dim);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.logout-btn {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: transparent;
    color: var(--text-dim);
    cursor: pointer;
    transition: color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}

.logout-btn svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.logout-btn:hover {
    color: var(--danger-light);
    border-color: var(--danger);
    background: var(--danger-soft);
}

.mark {
    place-items: center;
    width: 18px;
    height: 18px;
    margin-left: 4px;
    border-radius: 5px;
    background: var(--accent-soft);
    color: var(--accent-light);
    font: 700 12px var(--font-mono);
    vertical-align: 1px;
}

.nav-backdrop { display: none; }

.content {
    flex: 1;
    min-width: 0;
    margin-left: var(--sidebar-w);
    padding: 34px 40px 70px;
    animation: contentIn 0.25s ease;
}

@keyframes contentIn {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: none; }
}

/* =============================================================
   Заголовки страниц
   ============================================================= */
.page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}

.page-kicker { display: none; }

.section-title {
    font-family: var(--font-head);
    font-weight: 500;
    line-height: 1.1;
    text-transform: uppercase;
    margin-bottom: 18px;
    position: relative;
    padding-bottom: 12px;
}

.section-title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 64px;
    height: 3px;
    border-radius: 2px;
    background: var(--brand-stripe);
}

.page-head .section-title { margin-bottom: 0; }

.page-head-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* =============================================================
   Кнопки
   ============================================================= */
.btn-primary,
.btn-outline,
.btn-ghost,
.btn-danger,
.btn-danger-ghost,
.btn-details,
.tab-btn,
.date-clear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 40px;
    padding: 0 18px;
    border-radius: 10px;
    border: 1px solid transparent;
    font: 700 14px var(--font-body);
    white-space: nowrap;
    cursor: pointer;
    text-decoration: none;
    user-select: none;
    transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

.btn-primary {
    background: var(--accent-grad);
    border-color: transparent;
    color: var(--accent-ink);
}

.btn-primary:hover {
    background: var(--accent-grad);
    filter: brightness(1.1);
    text-decoration: none;
    box-shadow: 0 10px 26px -6px var(--accent-glow);
    transform: translateY(-1px);
}

.btn-primary:active { transform: translateY(1px); }

.btn-primary .plus {
    font-size: 18px;
    line-height: 1;
    font-weight: 600;
    margin-top: -2px;
}

.btn-primary svg,
.btn-outline svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.btn-lg {
    height: 46px;
    padding: 0 22px;
    font-size: 15px;
    border-radius: 12px;
}

.btn-outline,
.date-clear {
    background: var(--bg-2);
    border-color: var(--line-2);
    color: var(--text);
}

.btn-outline:hover,
.date-clear:hover {
    border-color: var(--line-3);
    background: var(--bg-3);
    color: #fff;
    text-decoration: none;
}

.btn-details {
    border-color: color-mix(in srgb, var(--accent) 35%, transparent);
}



.btn-ghost {
    background: transparent;
    color: var(--text-dim);
}

.btn-ghost:hover {
    background: var(--bg-3);
    color: #fff;
}

.btn-danger {
    background: var(--danger);
    border-color: var(--danger);
    color: #fff;
}

.btn-danger:hover { background: #f06a62; }

.btn-danger-ghost,
.btn-outline.danger {
    background: transparent;
    border-color: rgba(229, 83, 75, 0.35);
    color: var(--danger-light);
}

.btn-danger-ghost:hover,
.btn-outline.danger:hover {
    background: var(--danger-soft);
    border-color: var(--danger);
}

.btn-sm,
.btn-outline.mini,
.btn-primary.mini {
    height: 32px;
    padding: 0 12px;
    font-size: 13px;
    border-radius: 8px;
}

button:disabled,
.btn-primary:disabled,
.btn-outline:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
    box-shadow: none;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.icon-btn {
    width: 32px;
    height: 32px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--line-2);
    border-radius: 8px;
    background: var(--bg-2);
    color: var(--text-dim);
    cursor: pointer;
    flex-shrink: 0;
    transition: color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}

.icon-btn svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.icon-btn:hover {
    color: #fff;
    border-color: var(--line-3);
    background: var(--bg-3);
}

.icon-btn.danger:hover {
    color: var(--danger-light);
    border-color: var(--danger);
    background: var(--danger-soft);
}

.link-btn {
    font-size: 12px;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.link-btn:hover { color: var(--danger-light); }

.add-row-btn {
    display: block;
    width: 100%;
    margin-top: 8px;
    padding: 11px;
    border: 1px dashed var(--line-2);
    border-radius: 10px;
    background: transparent;
    color: var(--text-dim);
    font: 700 13.5px var(--font-body);
    cursor: pointer;
    transition: color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}

.add-row-btn:hover {
    color: var(--accent-light);
    border-color: var(--accent);
    border-style: solid;
    background: var(--accent-soft);
}

/* =============================================================
   Вкладки / сегменты / полосы
   ============================================================= */
.tabs-row {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 24px;
    padding: 5px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--bg-1);
    width: fit-content;
    max-width: 100%;
}

.tabs-row .tab-btn,
.tabs-row .btn-outline {
    height: 38px;
    padding: 0 16px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--text-dim);
    font-weight: 600;
}

.tabs-row .tab-btn:hover,
.tabs-row .btn-outline:hover {
    color: #fff;
    background: var(--bg-3);
}

.tabs-row .active-sub,
.tabs-row .tab-btn.active {
    color: var(--accent-ink);
    background: var(--accent-grad);
    box-shadow: 0 4px 14px -6px var(--accent-glow);
}

.tab-count {
    font-family: var(--font-mono);
    font-size: 12px;
    padding: 1px 6px;
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.25);
}

.tab-count:empty { display: none; }

.seg {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--bg-1);
}

.seg-btn {
    height: 32px;
    padding: 0 12px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--text-dim);
    font: 600 13px var(--font-body);
    cursor: pointer;
}

.seg-btn:hover { color: #fff; background: var(--bg-3); }

.seg-btn.active {
    background: var(--accent-soft);
    color: var(--accent-light);
}

.week-strip,
.dept-strip {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.week-chip,
.dept-tab {
    --dept-color: var(--accent);
    display: inline-flex;
    align-items: center;
    gap: 9px;
    height: 42px;
    padding: 0 16px;
    border: 1px solid var(--line-2);
    border-radius: 11px;
    background: var(--bg-1);
    color: var(--text-dim);
    font: 700 14px var(--font-body);
    cursor: pointer;
    transition: color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}

.week-chip {
    font-family: var(--font-mono);
    font-weight: 500;
    font-size: 13px;
    height: 38px;
}

.week-chip:hover,
.dept-tab:hover {
    color: #fff;
    border-color: var(--line-3);
}

.week-chip.active {
    color: var(--accent-ink);
    border-color: var(--accent);
    background: var(--accent);
}

.dept-tab.active {
    color: #fff;
    border-color: var(--dept-color);
    background: color-mix(in srgb, var(--dept-color) 14%, var(--bg-1));
    box-shadow: 0 6px 20px -10px var(--dept-color);
}

.dept-dot {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    background: var(--dept-color);
    box-shadow: 0 0 10px var(--dept-color);
}

.dept-tab-count {
    font-family: var(--font-mono);
    font-size: 12px;
    padding: 1px 7px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-dim);
}

/* =============================================================
   Карточки и панели
   ============================================================= */
.cards-grid {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    align-items: start;
}

.card,
.panel {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.025), transparent 120px), var(--bg-1);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 20px 22px;
    min-width: 0;
}

.card h3,
.panel h3 {
    font-family: var(--font-head);
    font-weight: 500;
    font-size: 17px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #fff;
    margin-bottom: 14px;
}

.card-text {
    color: var(--text-dim);
    margin-bottom: 14px;
}

.panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.panel-head h3 { margin-bottom: 14px; }

.panel-meta {
    font-size: 13px;
    color: var(--text-dim);
    margin-bottom: 14px;
}

.panel-sub,
.sub-title {
    margin: 16px 0 8px;
    font: 700 12px var(--font-body);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--text-mute);
}

.field-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--line);
    min-width: 0;
}

.field-row:last-child { border-bottom: 0; }

.field-row .label {
    min-width: 0;
}

.field-row .value {
    font-weight: 700;
    text-align: right;
}

.inline-date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.big-number {
    font-family: var(--font-head);
    font-size: 40px;
    font-weight: 500;
    color: #fff;
    line-height: 1;
    margin: 2px 0 14px;
}

.big-number small {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--text-dim);
    margin-left: 8px;
}

.placeholder-panel,
.empty-state,
.doc-empty {
    padding: 40px 24px;
    text-align: center;
    color: var(--text-dim);
    border: 1px dashed var(--line-2);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.015);
}

.empty-state {
    padding: 22px;
    font-size: 14px;
}



@keyframes spin { to { transform: rotate(360deg); } }

.notice,
.inline-alert {
    padding: 14px 16px;
    margin-bottom: 16px;
    border: 1px solid var(--line-2);
    border-left: 3px solid var(--accent);
    border-radius: 0 10px 10px 0;
    background: var(--bg-1);
}

.notice.warn,
.inline-alert {
    border-left-color: var(--warn);
    background: linear-gradient(90deg, var(--warn-soft), transparent 70%), var(--bg-1);
}

.inline-alert {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 14px 0 0;
    font-size: 14px;
}

.hint-small {
    font-size: 12.5px;
    color: var(--text-mute);
    line-height: 1.5;
    margin-top: 8px;
}

.hint-inline {
    font-weight: 500;
    font-size: 12px;
    color: var(--text-mute);
    text-transform: none;
    letter-spacing: 0;
    margin-left: 4px;
}

.toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
}

.toolbar select {
    width: auto;
    min-width: 240px;
}

.toolbar-count {
    margin-left: auto;
    font: 13px var(--font-mono);
    color: var(--text-mute);
}

.search-box {
    flex: 1 1 280px;
    max-width: 460px;
}

.search-box svg {
    position: absolute;
    left: 13px;
    top: 50%;
    width: 17px;
    height: 17px;
    margin-top: -8.5px;
    fill: none;
    stroke: var(--text-mute);
    stroke-width: 1.9;
    stroke-linecap: round;
    pointer-events: none;
}

.search-box input,
.search-box input[type="search"] { padding-left: 40px; }

.rules-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rules-strip .rule {
    display: flex;
    gap: 12px;
    align-items: baseline;
    padding: 12px 16px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--bg-1);
    color: var(--text-dim);
}

.rules-strip .rule b {
    font-family: var(--font-mono);
    color: var(--accent-light);
}

.total-line {
    display: flex;
    justify-content: space-between;
    padding: 14px 0 0;
    margin-top: 14px;
    border-top: 1px solid var(--line-2);
}

/* =============================================================
   Формы
   ============================================================= */
label {
    display: block;
    margin: 16px 0 7px;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-dim);
}

input[type="text"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="date"],
input[type="url"],
input:not([type]),
select,
textarea {
    width: 100%;
    min-height: 42px;
    padding: 9px 13px;
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    border-radius: 10px;
    color: var(--input-text);
    font: 500 14.5px var(--font-body);
    outline: none;
    transition: border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}

textarea { resize: vertical; line-height: 1.5; }

input:hover,
select:hover,
textarea:hover { border-color: var(--line-3); }

input:focus,
select:focus,
textarea:focus {
    border-color: var(--accent);
    background: var(--input-bg-hover);
    box-shadow: 0 0 0 3px var(--accent-soft);
    outline: none;
}

input::placeholder,
textarea::placeholder { color: var(--text-mute); }

input:disabled,
select:disabled,
textarea:disabled { opacity: 0.45; cursor: not-allowed; }

select {
    appearance: none;
    padding-right: 34px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239b9ba8' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 11px center;
    background-size: 15px;
}

select option { background: var(--bg-2); color: var(--text); }

input[type="checkbox"],
input[type="radio"] {
    accent-color: var(--accent);
    width: 16px;
    height: 16px;
    vertical-align: -3px;
}

input[type="color"] {
    width: 42px;
    height: 42px;
    padding: 4px;
    border: 1px solid var(--input-border);
    border-radius: 10px;
    background: var(--input-bg);
    cursor: pointer;
    flex-shrink: 0;
}

.label-disabled { opacity: 0.45; }

.form-grid {
    column-gap: 16px;
}

.form-grid .span-2 { grid-column: span 2; }

.form-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.admin-row-line {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 8px;
}

.admin-row-line select,
.admin-row-line input { flex: 1; min-width: 0; }

.dmy-field {
    position: relative;
    display: flex;
    gap: 8px;
}

.dmy-field input[type="text"] { font-family: var(--font-mono); }

.dmy-pick {
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border: 1px solid var(--input-border);
    border-radius: 10px;
    background: var(--bg-2);
    color: var(--text-dim);
    cursor: pointer;
}

.dmy-pick:hover { color: var(--accent-light); border-color: var(--accent); }

.dmy-pick svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.dmy-native {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 42px;
    height: 42px;
    opacity: 0;
    pointer-events: none;
}

.chip-picker {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.chip-toggle {
    --chip-color: var(--accent);
    height: 36px;
    padding: 0 15px;
    border: 1px solid var(--line-2);
    border-radius: 18px;
    background: var(--bg-2);
    color: var(--text-dim);
    font: 700 13.5px var(--font-body);
    cursor: pointer;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.chip-toggle:hover { color: #fff; border-color: var(--line-3); }

.chip-toggle.on {
    color: #fff;
    border-color: var(--chip-color);
    background: color-mix(in srgb, var(--chip-color) 20%, transparent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--chip-color) 12%, transparent);
}

.chip-toggle.on::before {
    content: '✓ ';
    color: var(--chip-color);
}

.edit-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 10px;
}

.edit-list-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.edit-list-row input[type="text"] { flex: 1; min-width: 0; }

.edit-list-num {
    width: 18px;
    font: 12px var(--font-mono);
    color: var(--text-mute);
    text-align: right;
}

.color-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.swatch {
    width: 26px;
    height: 26px;
    border-radius: 7px;
    border: 2px solid rgba(255, 255, 255, 0.12);
    cursor: pointer;
    transition: transform var(--transition-fast);
}

.swatch:hover { transform: scale(1.12); border-color: #fff; }

.col-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.col-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px 6px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--bg-2);
    opacity: 0.55;
}

.col-row.on {
    opacity: 1;
    border-color: color-mix(in srgb, var(--accent) 40%, transparent);
}

.col-check {
    flex: 1;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--text);
    font-weight: 600;
    cursor: pointer;
}

/* =============================================================
   Бейджи и чипы
   ============================================================= */
.class-badge {
    display: inline-grid;
    place-items: center;
    min-width: 22px;
    height: 21px;
    padding: 0 7px;
    border-radius: 6px;
    font: 700 12px var(--font-mono);
    border: 1px solid currentColor;
}

.class-badge.A {
    color: #fff;
    border-color: #7b2ff7;
    background: linear-gradient(135deg, #4f12a4, #7b2ff7);
    box-shadow: 0 0 12px rgba(123, 47, 247, 0.45);
}
.class-badge.B { color: #ff3d2c; background: rgba(255, 61, 44, 0.12); }
.class-badge.C { color: #ecd547; background: rgba(236, 213, 71, 0.12); }
.class-badge.D { color: #e67e22; background: rgba(230, 126, 34, 0.12); }

.status-badge {
    display: inline-flex;
    align-items: center;
    height: 26px;
    padding: 0 11px;
    border-radius: 13px;
    font-size: 12.5px;
    font-weight: 700;
    white-space: nowrap;
    background: var(--bg-3);
    color: var(--text-dim);
    border: 1px solid var(--line-2);
}

.status-badge.success,
.status-badge.status-head { background: var(--success-soft); color: #5fe0aa; border-color: rgba(49, 196, 139, 0.35); }
.status-badge.pending,
.status-badge.warn,
.status-badge.status-deputy { background: var(--warn-soft); color: var(--warn); border-color: rgba(242, 184, 75, 0.35); }
.status-badge.danger,
.status-badge.rejected { background: var(--danger-soft); color: var(--danger-light); border-color: rgba(229, 83, 75, 0.35); }
.status-badge.status-participant { background: var(--accent-soft); color: var(--accent-light); border-color: transparent; }
.status-badge.status-absent,
.status-badge.none { color: var(--text-mute); }

.position-badge {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 9px;
    border-radius: 11px;
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
}

.position-badge.eventolog { background: rgba(240, 100, 90, 0.14); color: #ff9b92; }
.position-badge.eventmaster { background: rgba(255, 212, 121, 0.14); color: #ffd479; }

.tag-mini {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 8px;
    margin-left: 4px;
    border-radius: 6px;
    background: var(--bg-3);
    border: 1px solid var(--line);
    color: var(--text-dim);
    font: 700 12px var(--font-body);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.chip,
.mrp-status-chip {
    --chip-color: #9b9ba8;
    display: inline-flex;
    align-items: center;
    margin: 2px 4px 2px 0;
    font-size: 12.5px;
    font-weight: 700;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chip-strong {
    background: color-mix(in srgb, var(--chip-color) 26%, transparent);
    color: #fff;
}

.chip-hotline { --chip-color: #e5534b; }
.chip-ивентолог { --chip-color: #f0645a; }
.chip-ивентмастер { --chip-color: #ffd479; }
.chip-помощник { --chip-color: #6fb6ff; }
.chip-куратор { --chip-color: #31c48b; }
.chip-жандарм { --chip-color: #4fe3cf; }

.mrp-status-chip { --chip-color: var(--accent); }

.role-pill {
    display: inline-flex;
    align-items: center;
    height: 26px;
    padding: 0 12px;
    border-radius: 13px;
    font-weight: 800;
    font-size: 13px;
}

.dept-pill {
    --chip-color: var(--accent);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 12px;
    border-radius: 9px;
    border: 1px solid color-mix(in srgb, var(--chip-color) 40%, transparent);
    background: color-mix(in srgb, var(--chip-color) 12%, transparent);
    font-weight: 700;
    font-size: 13px;
    color: #fff;
}

.dept-pill i {
    font-style: normal;
    font-weight: 600;
    color: color-mix(in srgb, var(--chip-color) 70%, white);
}

.org-degree-badge {
    --degree-color: #01bbaa;
    height: 30px;
    padding: 0 12px;
    margin: 3px 6px 3px 0;
    border-radius: 8px;
    border-left: 4px solid var(--degree-color);
    background: color-mix(in srgb, var(--degree-color) 16%, transparent);
    color: color-mix(in srgb, var(--degree-color) 60%, white);
    font-size: 13px;
    font-weight: 700;
}

.org-degree-badge small {
    font: 11.5px var(--font-mono);
    color: var(--text-mute);
}



.degree-dot {
}

.badge-x {
    border: 0;
    background: none;
    color: inherit;
    opacity: 0.6;
    cursor: pointer;
    font-size: 17px;
    line-height: 1;
    padding: 0 2px;
}

.badge-x:hover { opacity: 1; color: var(--danger-light); }

.tag-badge {
    --tag-color: #4fe3cf;
    height: 22px;
}

.tag-badge .tag-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--tag-color);
}


/* =============================================================
   Таблицы
   ============================================================= */


.table-wrap.scroll-x {  }

.data-table {
    width: 100%;
}

.data-table.fit { table-layout: fixed; }

.data-table th {
    text-align: left;
    border-bottom: 1px solid var(--line-2);
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.data-table td {
    vertical-align: middle;
    color: var(--text);
    min-width: 0;
}



.data-table tbody tr { transition: background var(--transition-fast); }


.data-table td.ellipsis,
.data-table .ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.data-table td.wrap {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.data-table td.num {
    font-family: var(--font-mono);
    text-align: center;
}

.data-table td.na {
    color: var(--text-mute);
    font-family: var(--font-mono);
}

.data-table td.mono {
    font-size: 13px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.data-table .chips-cell { line-height: 1; }

.data-table .cell-actions {
    white-space: nowrap;
}

.cell-actions > * + * { margin-left: 6px; }

.cell-strong {
    font-weight: 700;
    color: #fff;
}

.cell-sub {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cell-select {
    width: 100%;
    min-height: 32px;
    height: 32px;
    padding: 0 26px 0 10px;
    font-size: 13.5px;
    font-weight: 700;
    background-position: right 8px center;
    background-size: 13px;
    border-color: transparent;
    background-color: rgba(255, 255, 255, 0.03);
    border-radius: 8px;
}

.cell-select:hover,
.cell-select:focus {
    border-color: var(--line-2);
    background-color: var(--input-bg);
}

.cell-select.activity-Активный { color: #5fe0aa; }
.cell-select.activity-Редкий { color: var(--warn); }
.cell-select.activity-Труп { color: var(--text-mute); }

.role-text { font-weight: 700; color: #fff; }

.empty-row {
    text-align: center;
    padding: 24px !important;
    color: var(--text-mute) !important;
}

.group-row td {
    font: 800 12px var(--font-body);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--accent-light);
    padding: 9px 12px;
}

.group-row td span {
    color: var(--text-mute);
    margin-left: 6px;
}

.person-cell {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.avatar-xs {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    object-fit: cover;
    flex-shrink: 0;
}

.avatar-ph {
    display: inline-grid;
    place-items: center;
    background: linear-gradient(135deg, var(--bg-4), var(--bg-3));
    color: var(--text);
    font: 700 13px var(--font-body);
    text-transform: uppercase;
}

.overdue {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 6px;
    background: var(--danger-soft);
    color: var(--danger-light);
    font-weight: 700;
}

.status-edit {
    width: 100%;
    min-height: 32px;
    color: inherit;
    font: inherit;
    text-align: left;
}



.status-edit-ico {
    margin-left: auto;
    padding-left: 4px;
    color: var(--text-mute);
    transition: opacity var(--transition-fast);
}



.norm-total {
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--warn);
    white-space: nowrap;
}

.norm-total.ok { color: #5fe0aa; }

.norms-table td,
.norms-table th {
    padding-left: 8px;
    padding-right: 8px;
}

.norm-role { font-size: 12px; color: var(--text-dim); }

/* Листы отделов */
.dept-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    margin-bottom: 24px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background:
        radial-gradient(500px 160px at 0% 0%, color-mix(in srgb, var(--dept-color, var(--accent)) 18%, transparent), transparent 70%),
        var(--bg-1);
    position: relative;
    overflow: hidden;
}

.dept-banner::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--dept-color, var(--accent));
}

.dept-banner-title {
    font-family: var(--font-head);
    font-size: 28px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #fff;
    margin-bottom: 8px;
}

.dept-banner-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    color: var(--text-dim);
}

.dept-banner-stats b {
    font-family: var(--font-head);
    font-size: 20px;
    font-weight: 500;
    color: #fff;
    margin-right: 4px;
}

.dept-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px;
}

.legend-sep {
    width: 1px;
    height: 20px;
    background: var(--line-2);
    margin: 0 10px;
}

.dept-tools {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.sheet-section {
    --section-color: var(--dept-color, var(--accent));
}

.sheet-section-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.sheet-section-head h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-head);
    font-weight: 500;
    font-size: 19px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #fff;
}

.sheet-section-head h3::before {
    content: '';
    width: 4px;
    height: 20px;
    border-radius: 2px;
    background: var(--section-color);
    box-shadow: 0 0 12px var(--section-color);
}

.sheet-section-head .count {
    font: 700 12px var(--font-mono);
    padding: 2px 8px;
    border-radius: 7px;
    background: color-mix(in srgb, var(--section-color) 16%, transparent);
    color: color-mix(in srgb, var(--section-color) 70%, white);
}

.sheet-section-actions {
    margin-left: auto;
    display: flex;
    gap: 6px;
}

.sheet-section .table-wrap {
    border-top: 2px solid color-mix(in srgb, var(--section-color) 55%, transparent);
}

.muted-sheet td { color: var(--text-dim); }

.sheet-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.sheet-title {
    font-family: var(--font-head);
    font-size: 20px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #fff;
}

.sheet-sub { font-size: 13px; color: var(--text-mute); }



/* =============================================================
   Карты
   ============================================================= */
.card-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.legend-chip {
    --card-color: #888;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    padding: 0 12px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: var(--bg-1);
    color: var(--text);
    font: 700 13.5px var(--font-body);
    cursor: pointer;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.legend-chip b {
    font-family: var(--font-mono);
    font-size: 12.5px;
}

.legend-chip:hover { border-color: var(--card-color); }

.legend-chip.active {
    border-color: var(--card-color);
    color: #fff;
    background: color-mix(in srgb, var(--card-color) 20%, var(--bg-1));
    box-shadow: 0 6px 18px -10px var(--card-color);
}

.legend-square {
    width: 13px;
    height: 17px;
    border-radius: 3px;
    background: var(--card-color);
    flex-shrink: 0;
}

.card-squares {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.lc-card-square {
    --card-color: #888;
    position: relative;
    width: 28px;
    height: 36px;
    border-radius: 5px;
    background: var(--card-color);
    box-shadow: inset 0 12px 18px rgba(255, 255, 255, 0.16), 0 4px 12px -4px var(--card-color);
}

.lc-card-square.sm { width: 24px; height: 31px; }

.lc-card-count {
    position: absolute;
    right: -6px;
    bottom: -6px;
    min-width: 19px;
    height: 19px;
    padding: 0 4px;
    border-radius: 6px;
    background: var(--bg-0);
    border: 1px solid var(--line-3);
    color: #fff;
    font: 700 12px/17px var(--font-mono);
    text-align: center;
}

.lc-card-dot {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    flex-shrink: 0;
    display: inline-block;
}

.legend-square,
.lc-card-square,
.lc-card-dot,
.degree-swatch {
    outline: 1px solid rgba(255, 255, 255, 0.14);
    outline-offset: -1px;
}

.cards-table tr.cards-person { cursor: pointer; }
.cards-table tr.cards-person.left td { color: var(--text-dim); }

.row-chevron {
    display: block;
}

tr.cards-person.open .row-chevron { transform: rotate(90deg); stroke: var(--accent); }
tr.cards-person.open td { background: var(--bg-2); }

tr.cards-detail > td {
    padding: 0 !important;
    background: var(--bg-0) !important;
}

.cards-detail-box {
    padding: 14px 16px 16px 46px;
    border-left: 3px solid var(--accent);
    animation: contentIn 0.2s ease;
}

.data-table.inner {
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
}

.data-table.inner th { height: 36px; background: var(--bg-1); }
.data-table.inner tr.inactive td { opacity: 0.45; }

.card-name {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    color: #fff;
}

.card-name .pos,
.card-name .neg { font-family: var(--font-mono); font-size: 12.5px; }



.card-type-option {
    font-weight: 700;
}


.card-type-option input {  }

.card-type-option b { font: 600 13px var(--font-mono); }



.person-picker .picked { margin-bottom: 8px; }

.picked-chip {
    height: 38px;
    color: #fff;
    font-weight: 700;
}

.picker-results {
    margin-top: 8px;
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    max-height: 280px;
    overflow-y: auto;
}

.picker-results:empty { display: none; }
.picker-results .muted { padding: 12px 14px; }

.picker-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 14px;
    border: 0;
    border-bottom: 1px solid var(--line);
    background: var(--bg-2);
    color: var(--text);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.picker-item:last-child { border-bottom: 0; }
.picker-item:hover { background: var(--bg-3); }

/* =============================================================
   Личный кабинет
   ============================================================= */
.profile-hero {
    position: relative;
    border: 1px solid var(--line);
    overflow: hidden;
    margin-bottom: 20px;
    background: var(--bg-1);
}

.profile-hero-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(500px 220px at 0% 0%, rgba(229, 83, 75, 0.22), transparent 70%),
        radial-gradient(500px 220px at 55% -20%, rgba(49, 196, 139, 0.16), transparent 70%),
        radial-gradient(500px 240px at 100% 10%, rgba(79, 227, 207, 0.2), transparent 70%);
    pointer-events: none;
}

.profile-hero::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: var(--brand-stripe);
    z-index: 1;
}

.profile-hero-main {
    position: relative;
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 34px 32px 26px;
    flex-wrap: wrap;
}

.hero-avatar {
    width: 104px;
    height: 104px;
    border-radius: 22px;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 14px 40px -12px rgba(0, 0, 0, 0.8);
    font-size: 40px;
}

.hero-text {
    flex: 1;
    min-width: 220px;
}

.hero-name {
    font-family: var(--font-head);
    font-size: 40px;
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: 0.02em;
    color: #fff;
}

.hero-tags {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    flex-wrap: wrap;
}

.hero-tags .class-badge {
    height: 26px;
    padding: 0 10px;
    font-size: 12.5px;
}

.hero-statuses {
    margin-top: 10px;
    display: flex;
    flex-wrap: wrap;
}

.hero-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: stretch;
}

.hero-stats {
    position: relative;
    display: grid;
    border-top: 1px solid var(--line);
    background: rgba(0, 0, 0, 0.2);
}

.hero-stats .stat {
    padding: 18px 24px;
    border-right: 1px solid var(--line);
    min-width: 0;
}

.hero-stats .stat:last-child { border-right: 0; }

.hero-stats .stat > span {
    display: block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-mute);
}

.hero-stats .stat > b {
    display: block;
    margin-top: 6px;
    font-family: var(--font-head);
    font-size: 26px;
    font-weight: 500;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hero-stats .stat:first-child b { color: var(--scp-cyan); font-size: 34px; }

.hero-stats .stat > small {
    display: block;
    margin-top: 2px;
    font-size: 12.5px;
    color: var(--text-dim);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.profile-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: start;
}

.profile-grid .span-2 { grid-column: span 2; }

.apply-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.card-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 16px;
}

.card-tile {
    --card-color: #888;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px 10px 12px;
    border-radius: 12px;
    border: 1px solid color-mix(in srgb, var(--card-color) 35%, transparent);
    background: color-mix(in srgb, var(--card-color) 10%, var(--bg-2));
}

.card-tile b { display: block; color: #fff; font-size: 14px; }
.card-tile small { color: var(--text-dim); font-family: var(--font-mono); }

.card-feed {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.card-feed-row {
    --card-color: #888;
    display: flex;
    gap: 14px;
    align-items: stretch;
    padding: 12px 16px 12px 0;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--bg-2);
    overflow: hidden;
}

.card-feed-bar {
    width: 4px;
    flex-shrink: 0;
    background: var(--card-color);
    border-radius: 0 3px 3px 0;
}

.card-feed-main { flex: 1; min-width: 0; }

.card-feed-title {
    font-weight: 800;
    color: #fff;
}

.card-feed-title span {
    font-family: var(--font-mono);
    margin-left: 8px;
}

.card-feed-sub {
    color: var(--text-dim);
    font-size: 13.5px;
    margin-top: 3px;
}

.card-feed-meta {
    text-align: right;
    font: 12.5px var(--font-mono);
    color: var(--text-dim);
    white-space: nowrap;
}

.reward-feed {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.reward-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--bg-2);
}

.reward-cost {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--accent-soft);
    color: var(--accent-light);
    font: 500 20px var(--font-head);
}

.reward-main { flex: 1; min-width: 0; }
.reward-name { font-weight: 800; color: #fff; }
.reward-sub { font-size: 13px; color: var(--text-dim); margin-top: 2px; }

.wallet-line {
    display: flex;
    gap: 10px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.wallet-line > div {
    flex: 1;
    min-width: 130px;
    padding: 12px 16px;
    border-radius: 12px;
    background: var(--bg-2);
    border: 1px solid var(--line);
}

.wallet-line > div:first-child {
    border-color: color-mix(in srgb, var(--accent) 45%, transparent);
    background: var(--accent-soft);
}

.wallet-line span {
    display: block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-dim);
}

.wallet-line b {
    font: 500 28px var(--font-head);
    color: #fff;
}

.reward-grid {
    display: grid;
}

.reward-option {
    position: relative;
    display: flex;
    flex-direction: column;
    margin: 0;
    border: 1px solid var(--line-2);
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.reward-option input { display: none; }
.reward-option:hover { border-color: var(--accent); transform: translateY(-1px); }

.reward-option-cost {
    font: 500 30px var(--font-head);
    line-height: 1;
    color: var(--accent-light);
}

.reward-option-cost small {
    font: 700 12px var(--font-body);
    color: var(--text-dim);
    margin-left: 3px;
}

.reward-option-name {
    font-weight: 800;
    color: #fff;
    font-size: 14.5px;
}

.reward-option-need {
    font-size: 12px;
    color: var(--danger-light);
}

.reward-option.locked {
    opacity: 0.45;
    cursor: not-allowed;
}

.reward-option.locked:hover { transform: none; border-color: var(--line-2); }

.reward-option:has(input:checked) {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 14%, var(--bg-2));
    box-shadow: 0 0 0 3px var(--accent-soft), 0 10px 30px -14px var(--accent-glow);
}

.catalog-strip {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 8px;
    margin-bottom: 22px;
}

.catalog-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--bg-1);
}

.catalog-item b {
    font: 500 22px var(--font-head);
    color: var(--accent-light);
    min-width: 30px;
}

.catalog-item span { font-weight: 700; color: #fff; font-size: 13.5px; }

.request-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.request-card {
    display: flex;
    gap: 20px;
    align-items: stretch;
    padding: 18px 20px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--bg-1);
    transition: border-color var(--transition-fast);
}

.request-card:hover { border-color: var(--line-3); }

.request-cost {
    width: 76px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: var(--accent-soft);
    border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent);
}

.request-cost b { font: 500 30px var(--font-head); color: var(--accent-light); line-height: 1; }
.request-cost span { font-size: 12px; font-weight: 700; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.08em; }

.request-main { flex: 1; min-width: 0; }

.request-title {
    font-family: var(--font-head);
    font-size: 20px;
    font-weight: 500;
    color: #fff;
    letter-spacing: 0.02em;
}

.request-who {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
    flex-wrap: wrap;
}

.request-comment {
    margin-top: 10px;
    padding: 10px 14px;
    border-radius: 10px;
    background: var(--bg-2);
    color: var(--text);
    white-space: pre-wrap;
}

.request-side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: space-between;
    gap: 6px;
}

.request-meta { font-size: 13px; color: var(--text-dim); }

.request-actions {
    display: flex;
    gap: 8px;
    margin-top: 6px;
}

/* =============================================================
   «Подробно» — карточка человека
   ============================================================= */
.person-head {
    display: flex;
    gap: 16px;
    align-items: center;
    margin-bottom: 18px;
    padding-right: 34px;
}

.person-head h2 { margin: 0 0 6px !important; }

.person-avatar,
.profile-avatar {
    width: 60px;
    height: 60px;
    border-radius: 14px;
    object-fit: cover;
    flex-shrink: 0;
    font-size: 22px;
}

.person-sub {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}

.person-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 18px;
}

.kv {
    background: var(--bg-2);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 14px;
    min-width: 0;
}

.kv.wide { grid-column: 1 / -1; }

.kv > span {
    display: block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-mute);
    margin-bottom: 4px;
}

.kv > b {
    display: block;
    font-weight: 700;
    color: #fff;
    overflow-wrap: anywhere;
}

.person-block {
    padding: 16px 0;
    border-top: 1px solid var(--line);
}

.person-block-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.person-block-head h3 {
    font-family: var(--font-head);
    font-weight: 500;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #fff;
}

.person-block-head h3 .pos,
.person-block-head h3 .neg {
    font-family: var(--font-mono);
    margin-left: 6px;
}

.degree-list { display: flex; flex-wrap: wrap; }

.note {
    padding: 11px 14px;
    margin-bottom: 8px;
    border-left: 3px solid var(--warn);
    background: var(--bg-2);
    border-radius: 0 10px 10px 0;
}

.note-text { white-space: pre-wrap; }

.note-meta {
    margin-top: 5px;
    font: 12px var(--font-mono);
    color: var(--text-mute);
}

.degree-picker {
    flex-direction: column;
}

.degree-option {
    font-weight: 700;
}



.degree-swatch {
}



.apply-card { border-style: dashed; }

/* =============================================================
   Администрирование
   ============================================================= */
.user-admin-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.user-admin-row {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--bg-1);
    overflow: hidden;
    transition: border-color var(--transition-fast);
}

.user-admin-row:hover,
.user-admin-row.open { border-color: var(--line-3); }

.user-admin-head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 18px;
    cursor: pointer;
}

.user-avatar {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    object-fit: cover;
    flex-shrink: 0;
}

.user-admin-name {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.user-admin-name strong {
    font-weight: 800;
    color: #fff;
    font-size: 15px;
}

.user-admin-sub {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-dim);
    flex-wrap: wrap;
}

.user-admin-chevron {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: var(--text-mute);
    stroke-width: 2.2;
    transition: transform var(--transition-mid);
}

.user-admin-row.open .user-admin-chevron { transform: rotate(90deg); stroke: var(--accent); }

.user-admin-body {
    display: none;
    padding: 6px 20px 20px 70px;
    border-top: 1px solid var(--line);
    background: rgba(0, 0, 0, 0.18);
}

.user-admin-row.open .user-admin-body { display: block; animation: contentIn 0.2s ease; }

.user-admin-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px;
    padding-top: 10px;
}

.mrp-block {
    margin-top: 18px;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    background: var(--bg-1);
    overflow: hidden;
}

.mrp-block-title {
    padding: 10px 16px;
    border-bottom: 1px solid var(--line);
    font: 800 12px var(--font-body);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-light);
    background: linear-gradient(90deg, var(--accent-soft), transparent 70%);
}

.mrp-gate {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px;
}

.mrp-gate-title { font-weight: 800; color: #fff; }

.mrp-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mrp-cell {
    padding: 16px;
    border-right: 1px solid var(--line);
}

.mrp-cell:last-child { border-right: 0; }

.mrp-cell-title {
    font: 800 12px var(--font-body);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-mute);
    margin-bottom: 10px;
}

.mrp-cell-state {
    color: var(--text-dim);
    margin-bottom: 10px;
}

.mrp-cell-state.on { color: #5fe0aa; font-weight: 800; }

.mrp-foot {
    padding: 10px 16px;
    border-top: 1px solid var(--line);
    text-align: right;
}

.heads-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
    gap: 16px;
}

.person-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 0;
    border-bottom: 1px solid var(--line);
}

.person-line + .admin-row-line,
.panel .muted.small + .admin-row-line { margin-top: 10px; }

.db-table td {
    white-space: nowrap;
    max-width: 240px;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: var(--font-mono);
    font-size: 12.5px;
}

/* =============================================================
   Модалки
   ============================================================= */


.modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 6vh 16px 24px;
    overflow-y: auto;
    animation: fadeIn 0.18s ease;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal {
    position: relative;
    width: 100%;
    max-width: 520px;
    padding: 28px 30px 24px;
    background: var(--bg-1);
    border: 1px solid var(--line-2);
    overflow: hidden;
}

.modal::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--brand-stripe);
}

.modal.modal-wide { max-width: 820px; }
.modal.modal-xl { max-width: 1120px; }

@keyframes modalIn {
    from { opacity: 0; transform: translateY(12px) scale(0.98); }
    to { opacity: 1; transform: none; }
}

.modal h2 {
    font-family: var(--font-head);
    font-weight: 500;
    font-size: 24px;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 16px;
    padding-right: 34px;
}

.modal-x {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 10px;
    background: var(--bg-3);
    color: var(--text-dim);
    font-size: 15px;
    cursor: pointer;
}

.modal-x:hover { background: var(--danger-soft); color: var(--danger-light); }

.modal-text {
    color: var(--text-dim);
    line-height: 1.6;
    margin-bottom: 8px;
}

.modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.modal-actions.spread { justify-content: space-between; }

.actions-left {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.modal-error {
    color: var(--danger-light);
    font-size: 13.5px;
    margin-top: 10px;
}

.modal-error:not(:empty) {
    border-left: 3px solid var(--danger);
}

.modal .draft-hint {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: -4px 0 16px;
    padding: 9px 12px;
    border: 1px dashed var(--line-3);
    border-radius: 10px;
    font-size: 13px;
    color: var(--text-dim);
}

.modal .draft-hint .draft-clear {
    border: 0;
    background: none;
    color: var(--accent-light);
    font: 700 13px var(--font-body);
    cursor: pointer;
}

/* =============================================================
   Тосты
   ============================================================= */
#toast-container {
    position: fixed;
    right: 22px;
    bottom: 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
}

.toast {
    min-width: 260px;
    max-width: 400px;
    padding: 13px 16px;
    background: var(--bg-2);
    border: 1px solid var(--line-2);
    border-left: 4px solid var(--info);
    border-radius: 12px;
    color: #fff;
    font-weight: 600;
    pointer-events: auto;
    animation: toastIn 0.22s ease;
}

.toast.success { border-left-color: var(--scp-green); }
.toast.error { border-left-color: var(--scp-red); }
.toast.fade-out { opacity: 0; transform: translateX(10px); transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease, opacity 0.25s ease; }

@keyframes toastIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
}

/* =============================================================
   Полезная информация — список и полноэкранный документ
   ============================================================= */
.info-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 26px;
}

.info-hero p {
    color: var(--text-dim);
    max-width: 560px;
    margin-top: -4px;
}

.doc-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
}

.doc-tile {
    --tile-accent: var(--scp-cyan);
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 200px;
    padding: 22px 22px 18px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background:
        radial-gradient(360px 160px at 100% 0%, color-mix(in srgb, var(--tile-accent) 16%, transparent), transparent 70%),
        var(--bg-1);
    cursor: pointer;
    overflow: hidden;
    transition: transform var(--transition-mid), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.doc-tile::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--tile-accent);
    transform: scaleX(0.2);
    transform-origin: left;
    transition: transform var(--transition-mid);
}

.doc-tile:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--tile-accent) 50%, transparent);
    box-shadow: 0 20px 40px -24px var(--tile-accent);
}

.doc-tile:hover::before { transform: scaleX(1); }

.doc-tile-num {
    font: 500 15px var(--font-mono);
    color: var(--tile-accent);
}

.doc-tile-body h3 {
    font-family: var(--font-head);
    font-weight: 500;
    font-size: 24px;
    line-height: 1.15;
    color: #fff;
    letter-spacing: 0.02em;
    margin-bottom: 8px;
}

.doc-tile-body p {
    color: var(--text-dim);
    font-size: 14px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.doc-tile-foot {
    margin-top: auto;
    display: flex;
    align-items: center;
    gap: 10px;
}

.doc-tile-access {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-mute);
}

.doc-tile-tools {
    display: flex;
    gap: 4px;
    opacity: 0;
    transition: opacity var(--transition-fast);
}

.doc-tile:hover .doc-tile-tools,
.doc-tile:focus-within .doc-tile-tools { opacity: 1; }

.doc-tile-open {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 800;
    font-size: 14px;
    color: var(--tile-accent);
}

.doc-tile-open svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    transition: transform var(--transition-fast);
}

.doc-tile:hover .doc-tile-open svg { transform: translateX(4px); }

.doc-reader {
    --origin-x: 50vw;
    --origin-y: 50vh;
    position: fixed;
    inset: 0;
    z-index: 900;
    overflow-y: auto;
    clip-path: circle(150% at var(--origin-x) var(--origin-y));
    transition: clip-path 0.45s cubic-bezier(.4, 0, .2, 1), opacity 0.25s ease;
}

.doc-reader.opening {
    clip-path: circle(0 at var(--origin-x) var(--origin-y));
}

.doc-reader.closing {
    opacity: 0;
    transform: scale(0.99);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.doc-topbar {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 16px;
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--line);
}

.doc-topbar::after {
    content: '';
    position: absolute;
    inset: auto 0 -1px 0;
    height: 2px;
    background: var(--brand-stripe);
    opacity: 0.8;
}

.doc-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 38px;
    padding: 0 14px 0 10px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: var(--bg-2);
    color: var(--text);
    font: 700 14px var(--font-body);
    cursor: pointer;
}

.doc-back:hover { border-color: var(--accent); color: #fff; }

.doc-back svg,
.doc-close svg,
.doc-copy svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.doc-topbar-title {
    font-family: var(--font-head);
    font-size: 18px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.doc-topbar-tools {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.doc-close {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    margin-left: 6px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: var(--bg-2);
    color: var(--text-dim);
    cursor: pointer;
}

.doc-close:hover { color: var(--danger-light); border-color: var(--danger); background: var(--danger-soft); }

.doc-reader-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 40px 32px 90px;
}

.doc-hero {
    animation: docRise 0.5s 0.1s both cubic-bezier(.2, .8, .2, 1);
}

@keyframes docRise {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: none; }
}

.doc-hero h1 {
    font-family: var(--font-head);
    font-weight: 500;
    line-height: 1.05;
    text-transform: uppercase;
    color: #fff;
}

.doc-hero > p {
    margin-top: 12px;
}

.doc-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 26px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);
}

.doc-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 42px;
    padding: 0 18px;
    border: 1px solid var(--line-2);
    border-radius: 11px;
    background: var(--bg-1);
    color: var(--text-dim);
    font: 700 14.5px var(--font-body);
    cursor: pointer;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.doc-tab:hover { color: #fff; border-color: var(--line-3); }

.doc-tab.active {
    color: var(--accent-ink);
    background: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 8px 22px -10px var(--accent-glow);
}

.doc-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.doc-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    height: 38px;
    padding: 0 14px 0 6px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: var(--bg-1);
    color: var(--text);
    font-weight: 700;
    font-size: 14px;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.doc-chip b {
    display: inline-grid;
    place-items: center;
    height: 26px;
    padding: 0 8px;
    border-radius: 7px;
    background: var(--accent-soft);
    color: var(--accent-light);
    font: 600 12.5px var(--font-mono);
}

.doc-chip:hover {
    text-decoration: none;
    border-color: var(--accent);
    color: #fff;
    transform: translateY(-1px);
}

.doc-layout {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 40px;
    align-items: start;
}

.doc-layout.no-toc { grid-template-columns: minmax(0, 1fr); }

.doc-toc {
    position: sticky;
    top: 90px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: calc(100dvh - 120px);
    overflow-y: auto;
    padding-right: 6px;
}

.doc-toc-title {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--text-mute);
    margin-bottom: 10px;
}

.doc-toc a {
    display: flex;
    gap: 10px;
    padding: 8px 12px;
    border-left: 2px solid var(--line);
    color: var(--text-dim);
    font-weight: 600;
    font-size: 14px;
    line-height: 1.35;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.doc-toc a span {
    font: 500 12.5px var(--font-mono);
    color: var(--text-mute);
    padding-top: 1px;
}

.doc-toc a:hover { color: #fff; text-decoration: none; border-left-color: var(--line-3); }

.doc-toc a.active {
    color: #fff;
    border-left-color: var(--accent);
    background: linear-gradient(90deg, var(--accent-soft), transparent);
}

.doc-toc a.active span { color: var(--accent-light); }

.doc-content {
    animation: docRise 0.5s 0.18s both cubic-bezier(.2, .8, .2, 1);
}

.doc-rule {
    position: relative;
    transition: border-color 0.6s ease, box-shadow 0.6s ease;
}

.doc-rule.flash {
    border-color: var(--accent);
}

.doc-rule-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.doc-num {
    display: inline-grid;
    place-items: center;
    padding: 0 10px;
    background: var(--accent);
    color: var(--accent-ink);
    font: 700 15px var(--font-mono);
}

.doc-num.sm {
    min-width: 42px;
    height: 26px;
    font-size: 12.5px;
    background: var(--accent-soft);
    color: var(--accent-light);
    box-shadow: none;
}

.doc-rule h2 {
    flex: 1;
    min-width: 200px;
    font-family: var(--font-head);
    font-weight: 500;
    font-size: 26px;
    line-height: 1.2;
    letter-spacing: 0.02em;
    color: #fff;
}

.doc-block-tools {
    display: flex;
    gap: 6px;
    opacity: 0;
    transition: opacity var(--transition-fast);
}

.doc-rule:hover .doc-block-tools,
.doc-table-block:hover .doc-block-tools { opacity: 1; }

.doc-rule-body {
    display: flex;
    flex-direction: column;
}

.doc-text {
    position: relative;
    padding-right: 40px;
    color: var(--text);
}



.doc-text.note {
    border-left: 3px solid var(--warn);
    background: var(--warn-soft);
}

.doc-copy {
    position: absolute;
    top: 2px;
    right: 0;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line-2);
    border-radius: 8px;
    background: var(--bg-2);
    color: var(--text-mute);
    cursor: pointer;
    opacity: 0;
    transition: opacity var(--transition-fast), color var(--transition-fast);
}

.doc-text:hover .doc-copy { opacity: 1; }
.doc-copy:hover { color: var(--accent-light); border-color: var(--accent); }

.doc-sub {
    scroll-margin-top: 90px;
}



.doc-sub-head h3 {
    font-family: var(--font-head);
    letter-spacing: 0.02em;
}

.doc-table-block {
    margin-bottom: 18px;
}

.doc-table-block .doc-block-tools {
    position: absolute;
    top: -14px;
    right: 10px;
    z-index: 2;
}

/* =============================================================
   Мини-ивенты
   ============================================================= */
.mini-event-class-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 22px;
    padding: 0 9px;
    border-radius: 11px;
    font: 800 12px var(--font-body);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border: 1px solid currentColor;
}

.mini-event-class-badge::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
}

.mini-event-class-badge.cls-safe { color: #5fe0aa; }
.mini-event-class-badge.cls-euclid { color: #f2b84b; }
.mini-event-class-badge.cls-keter { color: #ff7a70; }
.mini-event-class-badge.cls-thaumiel { color: #c3c3d0; background: rgba(0, 0, 0, 0.4); }

.q-score-line {
    font-size: 13px;
    color: var(--text-dim);
    margin-top: 6px;
}


/* =============================================================
   Виджеты разделов (Полезная информация, Ивентология, опросники)
   ============================================================= */
/* ===== Date row ===== */
.date-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.date-row input[type="date"] {
    flex: 1;
}

.date-clear {
    padding: 0 12px;
    min-height: 40px;
    font-size: 14px;
}


/* ===== Недели ===== */
.week-accordion {
    margin-top: 10px;
}



.week-item:hover {
}

.week-header {
    font-weight: 600;
    transition: background var(--transition-fast);
}

.week-header:hover {
    background: rgba(255, 255, 255, 0.04);
}

.week-header .week-label {
    color: rgba(255, 255, 255, 0.8);
}

.week-header .week-points {
    color: var(--accent-light);
    font-weight: 700;
}

.week-header .week-toggle {
    margin-left: 10px;
    color: rgba(255, 255, 255, 0.4);
    transition: transform var(--transition-fast);
    display: inline-block;
}



.week-body {
    display: none;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    background: rgba(255, 255, 255, 0.015);
}

.week-item.open .week-body {
    display: block;
    animation: weekSlide 0.2s ease;
}

@keyframes weekSlide {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.week-breakdown {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 8px;
}

.week-breakdown .item {
    display: flex;
    justify-content: space-between;
    padding: 6px 10px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: var(--radius-md);
    font-size: 12px;
}

.week-breakdown .item .label {
    color: rgba(255, 255, 255, 0.5);
}

.week-breakdown .item .value {
    font-weight: 700;
    color: var(--accent-light);
}

/* ===== Анкеты ===== */
.anketa-box {
    border-radius: var(--radius-sm);
    padding: 12px 14px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    margin-bottom: 10px;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.anketa-box.overdue {
    background: linear-gradient(90deg, var(--danger-soft), transparent);
    border-color: var(--danger);
    animation: anketaPulse 2s ease-in-out infinite;
}

@keyframes anketaPulse {

    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(232, 72, 60, 0.35);
    }

    50% {
        box-shadow: 0 0 0 6px rgba(232, 72, 60, 0);
    }
}

.anketa-box.overdue .anketa-title {
    color: var(--danger-light);
    font-weight: 800;
}

.anketa-title {
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 6px;
    color: rgba(255, 255, 255, 0.7);
}

.anketa-info {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 8px;
    line-height: 1.5;
}

.card.anketa-overdue {
    border-color: var(--danger);
    box-shadow: 0 0 0 1px rgba(232, 72, 60, 0.2), var(--shadow-sm);
}

/* ===== Оценки ===== */
.score-group {
    display: inline-flex;
    gap: 4px;
    flex-wrap: wrap;
    margin-top: 6px;
}

.score-btn {
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--radius-md);
    background: transparent;
    color: rgba(255, 255, 255, 0.7);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.score-btn:hover {
    background: rgba(255, 255, 255, 0.06);
    border-color: var(--accent);
}

.score-btn.active {
    background: var(--accent-soft);
    border-color: var(--accent);
    color: var(--accent-light);
    box-shadow: 0 0 0 2px var(--accent-soft);
}

/* ===== Панель опросников ===== */
.q-editor {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.q-row {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 8px;
    background: rgba(255, 255, 255, 0.02);
    border-radius: var(--radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.06);
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.q-row:hover {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.035);
}

.q-row .q-handle {
    cursor: grab;
    color: rgba(255, 255, 255, 0.3);
    padding: 8px 4px;
    font-size: 16px;
    user-select: none;
    font-weight: 700;
    min-width: 24px;
    text-align: center;
}

.q-row .q-inputs {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.q-row .q-actions {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.q-row input,
.q-row textarea {
    padding: 8px 10px;
    font-size: 13px;
}

/* ===== Таблица редактора (ивенты) ===== */
.editor-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
    padding: 8px 10px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: var(--radius-sm);
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.editor-toolbar button {
    padding: 6px 10px;
    font-size: 12px;
}

.editor-table-wrap {
    overflow-x: auto;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(0, 0, 0, 0.15);
}

.editor-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 400px;
}

.editor-table th,
.editor-table td {
    padding: 8px 10px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    text-align: left;
    vertical-align: top;
    min-width: 60px;
}

.editor-table th {
    background: rgba(255, 255, 255, 0.05);
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: rgba(255, 255, 255, 0.75);
}

.editor-table td[contenteditable="true"] {
    outline: none;
    cursor: text;
    transition: background var(--transition-fast);
}

.editor-table td[contenteditable="true"]:hover {
    background: rgba(255, 255, 255, 0.04);
}

.editor-table td[contenteditable="true"]:focus {
    background: var(--accent-soft);
    box-shadow: inset 0 0 0 2px var(--accent);
}

/* ===== Записи ученика ===== */
.record-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    margin: 6px 0;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--radius-sm);
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.record-row:hover {
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.045);
}

.record-row .record-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.record-row .record-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-hi);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.record-row .record-sub {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.55);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.record-row .record-actions {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

.record-row .record-actions .btn-outline.mini {
    padding: 5px 9px;
    font-size: 12px;
    min-width: 30px;
    min-height: 28px;
    border-radius: var(--radius-md);
}

/* ===== Заметки ===== */
.notes-list {
    max-height: 320px;
    overflow-y: auto;
    padding-right: 4px;
    margin-bottom: 10px;
}

.notes-list .field-row {
    align-items: flex-start;
}

.note-input-row {
    display: flex;
    gap: 8px;
    align-items: stretch;
    margin-top: 8px;
}

.note-input-row textarea {
    flex: 1;
    resize: vertical;
    min-height: 42px;
    padding: 10px 12px;
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    border-radius: var(--radius-md);
    color: var(--input-text);
    font-family: var(--font-body);
    font-size: 13px;
    outline: none;
    color-scheme: dark;
}

.note-input-row textarea:focus {
    border-color: var(--accent);
    background: var(--input-bg-hover);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.btn-note-add {
    flex-shrink: 0;
    align-self: stretch;
    padding: 0 20px;
}


/* =============================================================
   CMS-таблица
   ============================================================= */


.cms-head {
    display: grid;
    grid-template-columns: 1fr 1fr 46px;
    gap: 10px;
    padding: 10px 14px;
    background: rgba(255, 255, 255, 0.02);
    border-radius: var(--radius-sm);
    font-size: 12px;
    font-weight: 700;
}

.cms-row {
    display: grid;
    grid-template-columns: 1fr 1fr 46px;
    gap: 10px;
    padding: 12px 14px;
    cursor: pointer;
    align-items: center;
}



.cms-cell {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cms-cell.cms-name {
    font-weight: 700;
    color: var(--text-hi);
    font-size: 14px;
}

.cms-cell.cms-muted {
    color: rgba(255, 255, 255, 0.55);
    font-size: 13px;
}

.cms-toggle {
    display: flex;
    justify-content: flex-end;
}

.cms-expand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    transition: background var(--transition-fast);
}

.cms-expand:hover {
    background: var(--accent-soft);
}

.cms-body {
    border-top: none;
    margin-top: -6px;
}

.cms-grid {
    margin-bottom: 10px;
}



.cms-field.cms-field-full {
    grid-column: 1 / -1;
}

.cms-field .label {
    font-size: 12px;
    font-weight: 600;
}

.cms-field .value {
    color: var(--text-hi);
    font-weight: 600;
}



.cms-chip {
    color: var(--accent-light);
    font-weight: 700;
    border: 1px solid var(--accent);
}

.cms-actions {
    flex-wrap: wrap;
}

/* =============================================================
   Горизонтальная диаграмма
   ============================================================= */
.chart {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}

.chart-row {
    display: grid;
    grid-template-columns: 140px 1fr 44px;
    align-items: center;
    gap: 10px;
    font-size: 13px;
}

.chart-name {
    color: rgba(255, 255, 255, 0.85);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chart-bar-wrap {
    height: 20px;
    background: rgba(255, 255, 255, 0.04);
    border-radius: var(--radius-sm);
    overflow: hidden;
    position: relative;
}

.chart-bar {
    height: 100%;
    background: linear-gradient(90deg, var(--accent), var(--accent-light));
    border-radius: var(--radius-sm);
    transition: width 0.4s ease;
    min-width: 2px;
}

.chart-count {
    text-align: right;
    color: var(--accent-light);
    font-weight: 800;
    font-size: 14px;
}

/* =============================================================
   Полезная информация — общие блоки
   ============================================================= */
.info-section-card {
    cursor: default;
}

.info-section-card h3 {
    text-transform: none;
    letter-spacing: 0.2px;
    color: var(--text-hi);
    font-size: 15px;
}

.info-block {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 16px;
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    margin-bottom: 10px;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.info-block:hover {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.04);
}

.info-block.info-heading {
    padding: 16px 18px;
    background: linear-gradient(180deg, var(--accent-soft), transparent);
    border-color: var(--accent);
}

.info-block.info-table {
    padding: 14px;
}

.info-block-actions {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

.info-block-actions .btn-outline.mini {
    padding: 4px 8px;
    font-size: 12px;
    min-width: 28px;
    min-height: 28px;
    border-radius: var(--radius-sm);
}

/* =============================================================
   Полезная информация — большая страница
   ============================================================= */
.info-page {
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 8px;
    animation: contentFade 0.3s ease;
}

.info-page-section {
    max-width: 100%;
}

.info-page-header {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.info-page-header .section-title {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}

.info-page-header #info-back-btn,
.info-page-header>.btn-outline {
    flex-shrink: 0;
}

.info-page-header-right {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-left: auto;
}

.info-page-desc {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.55;
    margin-bottom: 8px;
    max-width: 100%;
}

/* =============================================================
   Ряд кнопок управления разделом
   ============================================================= */
.info-controls-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 12px;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}

.info-controls-row .btn-primary,
.info-controls-row .btn-outline {
    flex-shrink: 0;
}

#info-access-btn {
    border-color: var(--accent);
    color: var(--accent-light);
    background: linear-gradient(135deg, var(--accent-soft), transparent);
}

#info-access-btn:hover {
    background: var(--accent-soft);
}

.info-tabs-row {
    margin-top: 0;
    margin-bottom: 20px;
    padding-top: 4px;
    row-gap: 10px;
}

.info-tabs-row .btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.info-page-section #info-blocks-box {
    width: 100%;
    margin-top: 4px;
}

.info-page-section .info-block {
    width: 100%;
}

.info-page-section .editor-table-wrap {
    max-width: 100%;
}

.info-page-section .editor-table {
    min-width: 100%;
}

/* Блок-заголовок v2 (аккордеон) */
.info-block.info-heading-v2 {
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015));
    border-radius: var(--radius-sm);
    margin-bottom: 10px;
    display: block;
    overflow: hidden;
    transition: border-color var(--transition-fast);
}

.info-block.info-heading-v2:hover {
    border-color: var(--accent);
}

.info-heading-block {
    display: flex;
    flex-direction: column;
}

.info-heading-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 14px 16px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--text-hi);
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 700;
    text-align: left;
    transition: background var(--transition-fast);
}

.info-heading-toggle:hover {
    background: rgba(255, 255, 255, 0.03);
}

.info-heading-arrow {
    font-size: 12px;
    color: var(--accent-light);
    transition: transform var(--transition-fast);
    flex-shrink: 0;
    width: 14px;
    display: inline-block;
    text-align: center;
}

.info-heading-title {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.info-heading-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.6);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
}

.info-heading-body {
    padding: 4px 16px 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    animation: contentFade 0.2s ease;
}

.info-heading-empty {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.4);
    font-style: italic;
    padding: 6px 0;
}

/* Строка текста под заголовком + кнопка «копировать» */
.info-text-row {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px 12px;
    margin: 6px 0;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: var(--radius-md);
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.info-text-row:hover {
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.04);
}

.info-text-content {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-word;
}

.info-copy-btn {
    flex-shrink: 0;
    padding: 6px 10px !important;
    font-size: 13px !important;
    min-height: 30px !important;
    border-radius: var(--radius-md) !important;
}

.info-heading-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed rgba(255, 255, 255, 0.06);
}

/* =============================================================
   Вложенные подзаголовки внутри заголовка
   ============================================================= */
.info-subheadings {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 10px;
    padding-left: 14px;
    border-left: 2px solid var(--accent-soft);
}

.info-subheading {
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.02);
    overflow: hidden;
    transition: border-color var(--transition-fast);
}

.info-subheading:hover {
    border-color: rgba(255, 255, 255, 0.12);
}

.info-subheading-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 12px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: rgba(255, 255, 255, 0.9);
    font-family: var(--font-body);
    font-size: 13.5px;
    font-weight: 700;
    text-align: left;
    transition: background var(--transition-fast);
}

.info-subheading-toggle:hover {
    background: rgba(255, 255, 255, 0.03);
}

.info-subheading-arrow {
    font-size: 12px;
    color: var(--accent-light);
    transition: transform var(--transition-fast);
    flex-shrink: 0;
    width: 12px;
    display: inline-block;
    text-align: center;
}

.info-subheading-title {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.info-subheading-body {
    padding: 2px 12px 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    animation: contentFade 0.2s ease;
}

.info-subheading-body .info-text-row {
    padding: 8px 10px;
    margin: 4px 0;
    background: rgba(255, 255, 255, 0.02);
}

.info-subheading-empty {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.4);
    font-style: italic;
    padding: 4px 0;
}

/* =============================================================
   Редактор подзаголовков в модалке
   ============================================================= */
.info-child-editor {
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.02);
    padding: 12px;
    margin-bottom: 10px;
}

.info-child-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.info-child-header input {
    flex: 1;
}

.info-child-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: var(--radius-md);
    background: var(--accent-soft);
    color: var(--accent-light);
    font-size: 12px;
    font-weight: 800;
    flex-shrink: 0;
}

.info-child-texts {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 6px;
}

.info-child-texts .info-text-editor-row {
    margin-bottom: 0;
    padding: 8px;
}

/* =============================================================
   Улучшенная таблица «Полезной информации»
   ============================================================= */
.info-table-wrap {
    width: 100%;
}

.info-table {
    border-spacing: 0;
    min-width: 100%;
}

.info-table thead th {
    padding: 12px 16px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.025));
    text-align: left;
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: rgba(255, 255, 255, 0.75);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 1;
}

.info-table thead th:not(:last-child) {
    border-right: 1px solid rgba(255, 255, 255, 0.06);
}

.info-table tbody td {
    padding: 12px 16px;
    color: rgba(255, 255, 255, 0.88);
    line-height: 1.55;
    vertical-align: top;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    border-right: 1px solid rgba(255, 255, 255, 0.04);
    word-break: break-word;
}

.info-table tbody tr:last-child td {
    border-bottom: none;
}



.info-table tbody td:last-child {
    border-right: none;
}

.info-table-cell.has-link {
    padding: 0;
}

.info-table-link {
    display: block;
    padding: 12px 16px;
    color: var(--accent-light);
    text-decoration: none;
    font-weight: 600;
    transition: color var(--transition-fast), background var(--transition-fast);
    position: relative;
}

.info-table-link::after {
    content: ' ↗';
    font-size: 12px;
    opacity: 0.6;
    transition: opacity var(--transition-fast);
}

.info-table-link:hover {
    color: var(--text-hi);
    background: var(--accent-soft);
}

.info-table-link:hover::after {
    opacity: 1;
}

/* Редактор таблицы */
.info-table-editor-wrap {
    width: 100%;
    overflow-x: auto;
    background: rgba(0, 0, 0, 0.18);
    margin-top: 8px;
}

.info-table-editor {
    border-spacing: 0;
    font-size: 13px;
}

.info-table-editor th {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    border-right: 1px solid rgba(255, 255, 255, 0.05);
    font-weight: 600;
    text-align: left;
}

.info-table-editor th:last-child {
    border-right: none;
}

.info-table-editor th input {
    width: 100%;
    padding: 8px 10px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    color: var(--text-hi);
    font-family: var(--font-body);
    font-size: 12.5px;
    outline: none;
    transition: background var(--transition-fast), border-color var(--transition-fast);
}

.info-table-editor th input:focus {
    background: var(--input-bg-hover);
    border-color: var(--accent);
}

.info-table-editor td.info-table-editor-cell-wrap {
    padding: 8px 10px;
    vertical-align: top;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    border-right: 1px solid rgba(255, 255, 255, 0.04);
    min-width: 160px;
}

.info-table-editor td.info-table-editor-cell-wrap:last-child {
    border-right: none;
}

.info-table-editor-cell {
    display: flex;
    align-items: stretch;
    gap: 6px;
}

.info-table-editor-cell input[type="text"] {
    flex: 1;
    min-width: 0;
    padding: 8px 10px;
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    border-radius: var(--radius-md);
    color: var(--input-text);
    font-family: var(--font-body);
    font-size: 13px;
    outline: none;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.info-table-editor-cell input[type="text"]:focus {
    border-color: var(--accent);
    background: var(--input-bg-hover);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.info-table-editor-link {
    flex-shrink: 0;
    width: 36px;
    min-height: 36px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--radius-md);
    background: transparent;
    color: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.info-table-editor-link:hover {
    background: rgba(255, 255, 255, 0.05);
    border-color: var(--accent);
    color: var(--accent-light);
}

.info-table-editor-link.has-link {
    background: var(--accent-soft);
    border-color: var(--accent);
    color: var(--accent-light);
    box-shadow: 0 0 0 2px var(--accent-soft);
}

.info-table-editor-link-preview {
    margin-top: 4px;
    font-size: 12px;
    color: var(--accent-soft);
    text-decoration: underline;
    text-decoration-style: dotted;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: help;
}

/* =============================================================
   Блок «Дополнения к ивенту»
   ============================================================= */
.additions-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 6px;
}

.additions-list .report-row {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015));
    border-color: rgba(255, 255, 255, 0.08);
}

.additions-list .report-row:hover {
    border-color: var(--accent);
}

/* =============================================================
   Управление доступом
   ============================================================= */
.access-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 260px;
    overflow-y: auto;
    padding-right: 4px;
}

.access-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--radius-md);
    font-size: 13px;
}

.access-row span:first-child {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.access-row span:last-child {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.access-level {
    display: inline-flex;
    align-items: center;
    letter-spacing: 0.3px;
}

.access-level.viewer {
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.7);
}

.access-level.editor {
    background: var(--accent-soft);
    color: var(--accent-light);
    border: 1px solid var(--accent);
}

/* =============================================================
   Отчёты
   ============================================================= */
.report-row {
    margin: 6px 0;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.report-row:hover {
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.045);
}

.report-main {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.report-title {
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.report-sub {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.report-actions {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

.report-actions .btn-outline.mini {
    padding: 5px 9px;
    font-size: 12px;
    min-width: 30px;
    min-height: 28px;
    border-radius: var(--radius-md);
}

/* =============================================================
   Участники в форме отчёта
   ============================================================= */
.participant-row {
    padding: 8px 10px;
    border-radius: var(--radius-md);
    transition: background var(--transition-fast);
}

.participant-row:hover {
    background: rgba(255, 255, 255, 0.03);
}

.participant-row label {
    font-size: 13px;
    color: var(--text-hi);
    cursor: pointer;
    margin: 0;
}

.participant-row .rep-participant-activity {
    margin-top: 6px;
    font-size: 13px;
    padding: 8px 10px;
}

/* =============================================================
   Мини-бейдж класса мини-ивента
   ============================================================= */
.mini-event-class-badge {
    line-height: 1;
}

/* =============================================================
   Бейдж тега
   ============================================================= */
.tag-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px 3px 8px;
    border-radius: var(--radius-lg);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.2px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid color-mix(in srgb, var(--tag-color, var(--accent)) 50%, transparent);
    color: rgba(255, 255, 255, 0.9);
    white-space: nowrap;
    line-height: 1;
}

/* =============================================================
   Палитра цветов тега
   ============================================================= */
.tag-color-picker {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--radius-sm);
    margin-top: 6px;
}

.tag-color-presets {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(38px, 1fr));
    gap: 8px;
}

.tag-color-preset {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: var(--radius-md);
    border: 2px solid transparent;
    background: var(--tag-color);
    cursor: pointer;
    position: relative;
    padding: 0;
    transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
    box-shadow: inset 0 -6px 12px rgba(0, 0, 0, 0.18);
}

.tag-color-preset:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35), inset 0 -6px 12px rgba(0, 0, 0, 0.18);
}

.tag-color-preset.selected {
    border-color: var(--text-hi);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.18);
}

.tag-color-preset.selected::after {
    content: '✓';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 900;
    color: var(--text-hi);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}

.tag-color-custom-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.tag-color-custom-row input[type="color"] {
    width: 44px;
    height: 40px;
    padding: 2px;
    border-radius: var(--radius-md);
    cursor: pointer;
    flex-shrink: 0;
}

.tag-color-custom-row input[type="text"] {
    flex: 1;
    font-family: 'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace;
    letter-spacing: 0.5px;
    text-transform: lowercase;
}

/* =============================================================
   Менеджер тегов раздела
   ============================================================= */
.tags-manager-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 4px;
}

.tags-manager-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 28px minmax(0, auto);
    align-items: center;
    column-gap: 16px;
    row-gap: 6px;
    padding: 12px 16px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015));
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--radius-sm);
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.tags-manager-row:hover {
    border-color: rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.045);
}

.tags-manager-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-hi);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tags-manager-color-square {
    width: 22px;
    height: 22px;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: inset 0 -3px 6px rgba(0, 0, 0, 0.18);
    flex-shrink: 0;
    justify-self: center;
}

.tags-manager-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
}

.tags-manager-actions .btn-outline.mini {
    padding: 6px 12px !important;
    font-size: 12px !important;
    min-height: 30px;
    border-radius: var(--radius-md);
}

/* =============================================================
   Менеджер вкладок раздела
   ============================================================= */
.tabs-manager-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 4px;
}

.tabs-manager-row {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, auto);
    align-items: center;
    column-gap: 16px;
    row-gap: 8px;
    padding: 12px 16px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015));
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: var(--radius-sm);
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.tabs-manager-row:hover {
    border-color: rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.045);
}

.tabs-manager-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-hi);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tabs-manager-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.tabs-manager-no-tag {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.35);
    font-style: italic;
}

.tabs-manager-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
}

.tabs-manager-actions .btn-outline.mini {
    padding: 6px 12px !important;
    font-size: 12px !important;
    min-height: 30px;
    border-radius: var(--radius-md);
}

.tabs-manager-default {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.05);
    color: rgba(255, 255, 255, 0.5);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.3px;
    border: 1px dashed rgba(255, 255, 255, 0.15);
}

/* =============================================================
   МЕДИА в текстах (просмотр)
   ============================================================= */
.info-text-line {
    white-space: pre-wrap;
    word-break: break-word;
}

.info-text-media {
    flex-wrap: wrap;
}

.info-media-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}



.info-media-item img,
.info-media-item video {
    display: block;
    max-width: 100%;
    height: auto;
}

.info-media-item img {
    max-height: 260px;
    object-fit: cover;
    cursor: zoom-in;
}

.info-media-item video {
    max-height: 280px;
    cursor: pointer;
}

.info-media-item a {
    display: block;
    line-height: 0;
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.info-media-name {
    font-size: 12px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

/* =============================================================
   МЕДИА в редакторе текста
   ============================================================= */
.info-text-editor-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.info-text-editor-media-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.info-media-add-btn {
    padding: 6px 12px !important;
    font-size: 12px !important;
    min-height: 30px;
    border-radius: var(--radius-md);
}

.info-text-media-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.info-media-preview {
    position: relative;
    width: 120px;
    height: 90px;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(0, 0, 0, 0.25);
    overflow: hidden;
    flex-shrink: 0;
    transition: border-color var(--transition-fast);
}

.info-media-preview:hover {
    border-color: var(--accent);
}

.info-media-preview img,
.info-media-preview video {
    display: block;
}

.info-media-preview.is-video::after {
    content: '▶';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: rgba(255, 255, 255, 0.85);
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.7);
    pointer-events: none;
}

.info-media-remove {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.4);
    background: rgba(0, 0, 0, 0.65);
    color: var(--text-hi);
    font-size: 12px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    transition: background var(--transition-fast), border-color var(--transition-fast);
    z-index: 2;
}

.info-media-remove:hover {
    background: var(--danger);
    border-color: var(--text-hi);
}

.info-media-preview .info-media-name {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 3px 6px;
    font-size: 12px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85), transparent);
    color: rgba(255, 255, 255, 0.85);
    z-index: 1;
}


/* =============================================================
   Апостолы
   ============================================================= */
.apostles-table {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.apostles-head,
.apostles-row {
    display: grid;
    grid-template-columns: 1.6fr 120px 160px 160px 120px;
    gap: 10px;
    align-items: center;
    padding: 12px 16px;
}

.apostles-head {
    background: rgba(255, 255, 255, 0.02);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: rgba(255, 255, 255, 0.45);
    font-weight: 700;
}

.apostles-row {
    border: 1px solid rgba(255, 255, 255, 0.07);
}

.apostles-row:hover {
    border-color: rgba(255, 255, 255, 0.15);
}

.apostle-name {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.apostle-name img {
    width: 34px;
    height: 34px;
    border-radius: var(--radius-md);
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.apostle-name strong {
    color: var(--text-hi);
    font-size: 14px;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.apostle-sub {
    display: flex;
    gap: 6px;
    align-items: center;
    margin-top: 3px;
}

.apostle-role {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.45);
}

.apostle-mini-input {
    padding: 8px 10px;
    font-size: 13px;
}

.apostle-actions {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
}

/* =============================================================


/* =============================================================
   Таблицы — по центру, просторно
   ============================================================= */
.data-table th,
.data-table td {
    text-align: center;
}

.data-table th:first-child,
.data-table td:first-child {
    text-align: left;
    padding-left: 20px;
}

.data-table th:last-child,
.data-table td:last-child { padding-right: 18px; }

.data-table td {
    padding: 16px 14px;
}

.data-table th {
    padding: 0 14px;
}

.data-table .cell-actions { text-align: center; }

.data-table td.wrap { text-align: left; }

.data-table .chips-cell .chip,
.data-table td > .chip { margin: 3px 2px; }

.data-table .chips-cell { text-align: center; }

.data-table .status-edit { justify-content: center; }
.data-table .status-edit-ico { margin-left: 4px; }

.data-table .person-cell { justify-content: flex-start; }
.data-table .card-squares { justify-content: center; }
.data-table .degree-dots { justify-content: center; }

.data-table.sheet td { padding: 15px 6px; }
.data-table.sheet th { padding: 0 6px; }
.data-table.sheet th:first-child,
.data-table.sheet td:first-child { padding-left: 18px; }

.data-table.inner td { padding: 12px 12px; }

.table-wrap {
    animation: tableIn 0.4s cubic-bezier(.2, .8, .2, 1) both;
}

@keyframes tableIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
}

.data-table tbody tr {
    animation: rowIn 0.35s ease both;
}

.data-table tbody tr:nth-child(1) { animation-delay: 0.02s; }
.data-table tbody tr:nth-child(2) { animation-delay: 0.04s; }
.data-table tbody tr:nth-child(3) { animation-delay: 0.06s; }
.data-table tbody tr:nth-child(4) { animation-delay: 0.08s; }
.data-table tbody tr:nth-child(5) { animation-delay: 0.10s; }
.data-table tbody tr:nth-child(6) { animation-delay: 0.12s; }
.data-table tbody tr:nth-child(7) { animation-delay: 0.14s; }
.data-table tbody tr:nth-child(n+8) { animation-delay: 0.16s; }

@keyframes rowIn {
    from { opacity: 0; transform: translateX(-6px); }
    to { opacity: 1; transform: none; }
}


/* Цвет должности — полоса слева и в выпадающем списке */
.role-row td:first-child { box-shadow: inset 3px 0 0 var(--role-color, transparent); }

.cell-select.role-select {
    color: #fff;
    border-left: 3px solid var(--role-color, var(--line-3));
    background-color: color-mix(in srgb, var(--role-color, #888) 12%, transparent);
}

.role-pill {
    background: var(--role-color, var(--accent));
    color: #0b0b0e;
}

/* Кнопки «Подробно» и действия */
.btn-details {
    height: 34px;
    padding: 0 16px;
    font-size: 13px;
    border-radius: 9px;
    background: var(--accent-soft);
    border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
    color: var(--accent-light);
}

.btn-details:hover {
    background: var(--accent-grad);
    border-color: transparent;
    color: var(--accent-ink);
    transform: translateY(-1px);
    box-shadow: 0 8px 20px -10px var(--accent-glow);
}

.data-table.sheet .btn-details {
    height: 32px;
    padding: 0 9px;
    font-size: 12px;
}

.btn-outline:hover,
.btn-ghost:hover,
.icon-btn:hover { transform: translateY(-1px); }

.btn-outline:active,
.btn-primary:active,
.btn-details:active { transform: translateY(1px); }

/* Значок «Г / З» больше не показываем */
.mark { display: none !important; }

/* =============================================================
   Карточки подотделов (Кураторка, Ивентология) — живее и крупнее
   ============================================================= */
.cards-grid > .card,
.cards-grid > .panel {
    position: relative;
    overflow: hidden;
    transition: transform var(--transition-mid), border-color var(--transition-fast), box-shadow var(--transition-fast);
    animation: cardIn 0.4s cubic-bezier(.2, .8, .2, 1) both;
}

.cards-grid > .card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--accent-grad);
    opacity: 0.55;
    transition: opacity var(--transition-fast);
}

.cards-grid > .card:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--accent) 40%, transparent);
    box-shadow: 0 18px 40px -24px var(--accent-glow);
}

.cards-grid > .card:hover::before { opacity: 1; }

.cards-grid > *:nth-child(2) { animation-delay: 0.04s; }
.cards-grid > *:nth-child(3) { animation-delay: 0.08s; }
.cards-grid > *:nth-child(4) { animation-delay: 0.12s; }
.cards-grid > *:nth-child(5) { animation-delay: 0.16s; }
.cards-grid > *:nth-child(n+6) { animation-delay: 0.2s; }

@keyframes cardIn {
    from { opacity: 0; transform: translateY(12px) scale(0.99); }
    to { opacity: 1; transform: none; }
}

.card strong { font-size: 16px; color: #fff; }

.card .field-row { padding: 11px 0; }

.card .btn-outline,
.card .btn-primary,
.card .btn-details {
    height: 36px;
    padding: 0 14px;
    font-size: 13.5px;
}

.card img[style*="border-radius"] {
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
}

.panel { animation: cardIn 0.4s cubic-bezier(.2, .8, .2, 1) both; }

.tabs-row { animation: contentIn 0.3s ease both; }

/* =============================================================
   Личный кабинет — персональные статусы
   ============================================================= */


.stat-btn {
    position: relative;
    border: 0;
    border-right: 1px solid var(--line);
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background var(--transition-fast);
}

.stat-btn:hover,
.stat-btn.open { background: rgba(255, 255, 255, 0.03); }

.stat-btn b { color: var(--scp-yellow) !important; }

.stat-chevron {
    position: absolute;
    right: 18px;
    top: 50%;
    width: 18px;
    height: 18px;
    margin-top: -9px;
    fill: none;
    stroke: var(--text-dim);
    stroke-width: 2.2;
    transition: transform var(--transition-mid);
}

.stat-btn.open .stat-chevron { transform: rotate(180deg); stroke: var(--accent); }

.status-drawer {
    position: relative;
    border-top: 1px solid var(--line);
    padding: 20px 24px 24px;
    background: rgba(0, 0, 0, 0.25);
    animation: drawerIn 0.3s cubic-bezier(.2, .8, .2, 1);
}

@keyframes drawerIn {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: none; }
}

.status-drawer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
}

.status-group {
    --dept-color: var(--accent);
    padding: 14px 16px;
    border-radius: 14px;
    border: 1px solid color-mix(in srgb, var(--dept-color) 35%, transparent);
    background: color-mix(in srgb, var(--dept-color) 7%, var(--bg-2));
}

.status-group-head {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-head);
    font-size: 17px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 10px;
}

.status-group-role {
    font-size: 13px;
    color: var(--text-dim);
    margin-bottom: 8px;
}

.status-group .dept-dot {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    background: var(--dept-color);
    box-shadow: 0 0 10px var(--dept-color);
}

/* =============================================================
   Доступ к отделам, структура MRP
   ============================================================= */
.access-add {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.access-add .search-box { max-width: none; }
.access-add select { width: 200px; }

.access-grants {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.access-grant {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto auto;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--bg-2);
    animation: rowIn 0.25s ease both;
}

.access-level {
    padding: 3px 10px;
    border-radius: 10px;
    font-size: 12.5px;
    font-weight: 700;
    background: var(--bg-3);
    color: var(--text-dim);
}

.access-level.edit {
    background: rgba(242, 153, 74, 0.15);
    color: #f8b97e;
}

.locked-name {
    opacity: 0.7;
    cursor: default;
}

.builtin-mark {
    width: 32px;
    text-align: center;
    color: var(--text-mute);
    font-size: 12px;
}

/* Оформление листов отделов — больше воздуха */
.sheet-section { margin-bottom: 36px; }
.dept-banner { padding: 26px 28px; }
.dept-tab { height: 44px; }

/* Мягкий отклик на клик по плиткам и вкладкам */
.dept-tab:active,
.doc-tile:active,
.week-chip:active { transform: scale(0.98); }

.data-table.sheet .chip { height: 24px; font-size: 12px; padding: 0 9px; }
.data-table.sheet td.mono { font-size: 12.5px; }

@media (max-width: 1600px) {
    .data-table.sheet .avatar-xs { display: none; }
}

@media (max-width: 1400px) {
    .hero-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .hero-stats .stat { border-bottom: 1px solid var(--line); }
}

.rank-num {
    min-width: 26px;
    height: 26px;
    display: inline-grid;
    place-items: center;
    border-radius: 8px;
    background: var(--bg-3);
    color: var(--text-dim);
    font: 600 12px var(--font-mono);
}

tbody tr:nth-child(1) .rank-num { background: rgba(236, 213, 71, 0.18); color: #ecd547; }
tbody tr:nth-child(2) .rank-num { background: rgba(200, 200, 215, 0.15); color: #dcdce6; }
tbody tr:nth-child(3) .rank-num { background: rgba(242, 153, 74, 0.18); color: #f2994a; }

.tabs-row .tab-btn.active-sub,
.tabs-row .tab-btn.active-sub:hover,
.tabs-row .btn-outline.active-sub,
.tabs-row .btn-outline.active-sub:hover {
    color: var(--accent-ink);
    background: var(--accent-grad);
}

.dept-tab.active:hover { border-color: var(--dept-color); color: #fff; }
.week-chip.active:hover { color: var(--accent-ink); border-color: var(--accent); }



/* =============================================================
   v6 — единый стиль: фон, таблицы-строки, панели разделов
   ============================================================= */

/* ---------- Фон: сетка терминала, кольца радара, свечение ---------- */
body::before,
body::after {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}



body::after {
    transform-origin: 88% 82%;
}

@keyframes radarSpin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
    body::after { animation: none; }
}

.app-shell,
.login-screen,
#modal-root { position: relative; z-index: 1; }

.content::before {
    position: fixed;
    right: 26px;
    top: 18px;
    font: 600 12px var(--font-mono);
    letter-spacing: 0.3em;
    color: rgba(255, 255, 255, 0.12);
    pointer-events: none;
}

/* ---------- Таблицы как на сайте: каждая строка — карточка ---------- */
.table-wrap {
    border: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
    border-radius: 0;
}

.table-wrap.scroll-x { overflow-x: auto; }

.data-table {
    border-collapse: separate;
    border-spacing: 0 6px;
    margin: -6px 0;
    font-size: 14.5px;
}

.data-table th {
    height: 38px;
    background: transparent;
    border: 0;
    font: 700 12px var(--font-body);
    letter-spacing: 0.09em;
    color: var(--text-mute);
}

.data-table td {
    background: var(--bg-1);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    transition: background var(--transition-fast), border-color var(--transition-fast);
    overflow-wrap: anywhere;
}

.data-table tbody tr:last-child td { border-bottom: 1px solid var(--line); }

.data-table td:first-child {
    border-left: 1px solid var(--line);
    border-radius: 14px 0 0 14px;
}

.data-table td:last-child {
    border-right: 1px solid var(--line);
    border-radius: 0 14px 14px 0;
}

.data-table td:only-child { border-radius: 14px; }

/* Ровный отклик без «бликов» */
.data-table tbody tr:hover td {
    background: var(--bg-2);
    border-color: var(--line-2);
}

.data-table.inner { border-spacing: 0 4px; margin: -4px 0; }
.data-table.inner td { background: var(--bg-2); }
.data-table.inner tbody tr:hover td { background: var(--bg-3); }

.data-table td.mono,
.data-table td.ellipsis { overflow-wrap: normal; }

.cell-sub {
    margin-top: 3px;
    font-size: 13px;
    color: var(--text-dim);
    overflow-wrap: anywhere;
}

/* ---------- Панель раздела (Кураторка / Ивентология / Админка) ---------- */
.command-panel {
    position: relative;
    margin-bottom: 26px;
    overflow: hidden;
    animation: cardIn 0.4s cubic-bezier(.2, .8, .2, 1) both;
}

.command-panel::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    background: var(--accent-grad);
}

.command-panel::after {
    content: '';
    position: absolute;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    border: 1px dashed color-mix(in srgb, var(--accent) 30%, transparent);
    box-shadow: 0 0 0 26px color-mix(in srgb, var(--accent) 4%, transparent), 0 0 0 27px color-mix(in srgb, var(--accent) 14%, transparent);
    animation: radarSpin 60s linear infinite;
    pointer-events: none;
}

.command-head { margin-bottom: 18px; position: relative; z-index: 1; }
.command-head .section-title { margin-bottom: 0; }

.command-eyebrow {
    text-transform: uppercase;
    margin-bottom: 6px;
}

.command-nav {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 10px;
}

.cmd-tile {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 64px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    color: var(--text);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform var(--transition-mid), border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
    animation: tileIn 0.4s cubic-bezier(.2, .8, .2, 1) both;
    animation-delay: calc(var(--i, 0) * 35ms);
}

@keyframes tileIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
}

.cmd-tile:hover {
    transform: translateY(-2px);
    border-color: var(--line-3);
    background: rgba(255, 255, 255, 0.035);
}

.cmd-tile:active { transform: scale(0.98); }

.cmd-ico {
    flex: none;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    background: var(--accent-soft);
    transition: background var(--transition-fast), transform var(--transition-mid);
}

.cmd-ico svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: var(--accent-light);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cmd-tile:hover .cmd-ico { transform: rotate(-6deg) scale(1.05); }

.cmd-text { display: flex; flex-direction: column; min-width: 0; }

.cmd-label {
    font-weight: 800;
    font-size: 14.5px;
    color: #fff;
    line-height: 1.25;
}

.cmd-hint {
    margin-top: 2px;
    font-size: 12.5px;
    color: var(--text-dim);
    overflow: hidden;
    text-overflow: ellipsis;
}

.cmd-tile.active {
    border-color: color-mix(in srgb, var(--accent) 60%, transparent);
    background: color-mix(in srgb, var(--accent) 11%, rgba(0, 0, 0, 0.2));
    box-shadow: 0 14px 30px -20px var(--accent-glow), inset 0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent);
}

.cmd-tile.active .cmd-ico { background: var(--accent-grad); }
.cmd-tile.active .cmd-ico svg { stroke: var(--accent-ink); }
.cmd-tile.active:hover { transform: none; }
.tabs-row .cmd-tile.active-sub { color: inherit; }

.section-body { animation: contentIn 0.3s ease both; }

/* ---------- Заголовок списка, панели кнопок ---------- */
.list-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.list-title {
    font: 500 22px var(--font-head);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #fff;
}

.list-sub { font-size: 13.5px; color: var(--text-dim); margin-top: 2px; }

.action-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.section-actions {
    margin-bottom: 18px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--bg-1);
    width: fit-content;
    max-width: 100%;
}

.act-btn {
    width: 36px;
    height: 36px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: var(--bg-2);
    color: var(--text-dim);
    cursor: pointer;
}

.act-btn svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.act-btn:hover { color: #fff; border-color: var(--accent); background: var(--accent-soft); transform: translateY(-1px); }
.act-btn.danger:hover { border-color: var(--danger); background: rgba(229, 83, 75, 0.14); color: var(--danger-light); }
.act-btn.sm { width: 30px; height: 30px; border-radius: 8px; }
.act-btn.sm svg { width: 14px; height: 14px; }

.btn-details svg,
.btn-ghost svg,
.btn-danger-ghost svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    vertical-align: -3px;
}

.btn-ghost svg,
.btn-danger-ghost svg { margin-right: 6px; }
.btn-details svg { margin-left: 4px; }

.link-btn {
    border: 0;
    background: none;
    padding: 0;
    margin-left: 8px;
    font: 700 12.5px var(--font-body);
    color: var(--accent);
    cursor: pointer;
}

.link-btn:hover { text-decoration: underline; }

.empty-state.big {
    padding: 46px 20px;
    border: 1px dashed var(--line-2);
    border-radius: 18px;
    text-align: center;
    font-size: 15px;
    color: var(--text-dim);
    background: rgba(0, 0, 0, 0.15);
}

/* ---------- Строки людей (ученики, сотрудники) ---------- */
.trainee-list { display: flex; flex-direction: column; gap: 10px; }

.trainee-row {
    position: relative;
    display: grid;
    grid-template-columns: minmax(210px, 1.3fr) minmax(260px, 1.3fr) auto minmax(190px, 1fr) auto;
    align-items: center;
    gap: 22px;
    padding: 16px 20px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--bg-1);
    transition: border-color var(--transition-fast), transform var(--transition-mid), box-shadow var(--transition-fast);
    animation: tileIn 0.38s cubic-bezier(.2, .8, .2, 1) both;
    animation-delay: calc(var(--i, 0) * 30ms);
}

.trainee-row::before {
    content: '';
    position: absolute;
    left: 0;
    top: 16px;
    bottom: 16px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--accent);
    opacity: 0.6;
}

.trainee-row:hover {
    border-color: var(--line-3);
    transform: translateY(-1px);
    box-shadow: 0 16px 34px -26px rgba(0, 0, 0, 0.9);
}

.trainee-row.overdue::before { background: var(--danger); opacity: 1; }
.trainee-row.overdue { border-color: rgba(229, 83, 75, 0.3); }
.trainee-row.archived { opacity: 0.72; }
.trainee-row.archived::before { background: var(--text-mute); }

.staff-row { grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(120px, 0.8fr)) auto; }

.tr-person { display: flex; align-items: center; gap: 13px; min-width: 0; }

.tr-avatar {
    flex: none;
    width: 46px;
    height: 46px;
    border-radius: 13px;
    object-fit: cover;
    border: 1px solid var(--line-2);
}

.tr-avatar.ph {
    display: grid;
    place-items: center;
    background: var(--accent-soft);
    color: var(--accent-light);
    font: 600 20px var(--font-head);
}

.tr-name { display: flex; flex-direction: column; min-width: 0; }
.tr-name strong { font-size: 16px; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tr-name span { font-size: 13px; color: var(--text-dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.tr-cell { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; font-size: 14px; }
.tr-cell-label { font: 700 12px var(--font-body); letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-mute); }
.tr-cell-sub { font-size: 12.5px; color: var(--text-dim); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tr-level-num { font-size: 12.5px; color: var(--text-dim); }

.tr-activity { display: flex; gap: 6px; }

.tr-count {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 58px;
    padding: 6px 8px;
    border-radius: 11px;
    background: var(--bg-2);
    border: 1px solid var(--line);
    font-size: 12px;
    color: var(--text-dim);
}

.tr-count b { font: 500 19px var(--font-head); color: #fff; line-height: 1.1; }
.tr-count.warn b { color: var(--danger-light); }

.tr-promo { display: flex; flex-direction: column; gap: 5px; align-items: flex-start; font-size: 14px; }
.tr-promo-date { font-weight: 700; color: #fff; }
.tr-promo-left { font-size: 13px; color: var(--text-dim); }

.tr-actions { justify-content: flex-end; flex-wrap: nowrap; }

/* Ступени обучения */
.level-track { display: flex; align-items: flex-start; }

.lt-step {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.lt-step::before {
    content: '';
    position: absolute;
    top: 7px;
    left: -50%;
    right: 50%;
    height: 2px;
    background: var(--line-2);
}

.lt-step:first-child::before { display: none; }
.lt-step.done::before,
.lt-step.current::before { background: var(--accent); }

.lt-step i {
    position: relative;
    z-index: 1;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--bg-3);
    border: 2px solid var(--line-3);
}

.lt-step.done i { background: var(--accent); border-color: var(--accent); }

.lt-step.current i {
    background: var(--bg-0);
    border-color: var(--accent);
    box-shadow: 0 0 0 4px var(--accent-soft), 0 0 14px var(--accent-glow);
    animation: pulseDot 2.4s ease-in-out infinite;
}

@keyframes pulseDot {
    50% { box-shadow: 0 0 0 7px transparent, 0 0 20px var(--accent-glow); }
}

.lt-step b { font-size: 12px; font-weight: 700; color: var(--text-mute); white-space: nowrap; }
.lt-step.current b { color: #fff; }
.lt-step.done b { color: var(--text-dim); }

.trainee-group { margin-bottom: 22px; }

.trainee-group-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 10px 4px;
    font: 500 17px var(--font-head);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #fff;
}

.trainee-group-dot { width: 9px; height: 9px; border-radius: 3px; background: var(--accent); box-shadow: 0 0 10px var(--accent-glow); }

.trainee-group-count {
    padding: 1px 9px;
    border-radius: 9px;
    background: var(--bg-3);
    font: 600 12px var(--font-mono);
    color: var(--text-dim);
}

/* ---------- Полноэкранные окна (досье, опросники) ---------- */
.modal-overlay:has(.modal-full) { padding: 0; overflow: hidden; }

.modal.modal-full {
    position: fixed;
    max-width: none;
    width: auto;
    padding: 24px 28px 20px;
    display: flex;
    flex-direction: column;
    animation: fullIn 0.28s cubic-bezier(.2, .8, .2, 1);
}

@keyframes fullIn {
    from { opacity: 0; transform: scale(0.985) translateY(10px); }
    to { opacity: 1; transform: none; }
}

.modal.modal-full .modal-x { top: 18px; right: 18px; z-index: 3; }

.dossier { display: flex; flex-direction: column; flex: 1; min-height: 0; gap: 18px; }

.dossier-head {
    display: flex;
    align-items: center;
    gap: 18px;
    padding-right: 48px;
    flex-wrap: wrap;
}

.dossier-avatar {
    width: 72px;
    height: 72px;
    border-radius: 20px;
    object-fit: cover;
    border: 2px solid color-mix(in srgb, var(--accent) 50%, transparent);
    box-shadow: 0 0 0 5px var(--accent-soft);
}

.dossier-avatar.ph { display: grid; place-items: center; background: var(--accent-soft); color: var(--accent-light); font: 600 30px var(--font-head); }

.dossier-title { flex: 1; min-width: 220px; }
.dossier-title h2 { margin: 0; font: 500 32px var(--font-head); letter-spacing: 0.04em; text-transform: uppercase; color: #fff; }
.dossier-meta { display: flex; align-items: center; gap: 12px; margin-top: 6px; font-size: 14px; color: var(--text-dim); flex-wrap: wrap; }
.dossier-meta b { color: #fff; }

.dossier-actions {
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(0, 0, 0, 0.25);
}

.dossier-grid {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(290px, 340px) 1fr 1fr;
    grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
    gap: 14px;
}

.dossier-side {
    grid-row: 1 / span 2;
    display: flex;
    flex-direction: column;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(0, 0, 0, 0.22);
    overflow: auto;
    min-height: 0;
}

.ds-label { font: 700 12px var(--font-body); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-mute); margin-bottom: 8px; }
.ds-value { font-size: 15px; font-weight: 700; color: #fff; }

.ds-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }

.ds-stats > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 10px 6px;
    border-radius: 12px;
    background: var(--bg-2);
    border: 1px solid var(--line);
    font-size: 12px;
    color: var(--text-dim);
}

.ds-stats b { font: 500 24px var(--font-head); color: #fff; line-height: 1.1; }
.ds-stats .warn b { color: var(--danger-light); }

.ds-promo {
    padding: 14px;
    border-radius: 14px;
    border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent);
    background: color-mix(in srgb, var(--accent) 8%, transparent);
}

.ds-promo.overdue { border-color: rgba(229, 83, 75, 0.45); background: rgba(229, 83, 75, 0.09); }
.ds-promo-date { font: 500 24px var(--font-head); color: #fff; }
.ds-promo-date span { margin-left: 8px; font: 700 14px var(--font-body); color: var(--accent-light); }
.ds-promo-note { font-size: 13px; color: var(--text-dim); margin-top: 2px; }
.ds-promo.overdue .ds-promo-note { color: var(--danger-light); }
.ds-promo-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }

.ds-link {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 0;
    border-bottom: 1px solid var(--line);
    font-size: 14px;
}

.ds-link:last-child { border-bottom: 0; }
.ds-link > span { flex: 1; color: var(--text-dim); }
.ds-link a { color: var(--accent-light); font-weight: 700; }
.ds-link em { color: var(--text-mute); font-style: normal; }

.dossier-panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--bg-2);
    overflow: hidden;
    animation: tileIn 0.4s cubic-bezier(.2, .8, .2, 1) both;
}

.dossier-panel.p-tests { animation-delay: 0.05s; }
.dossier-panel.p-viol { animation-delay: 0.1s; }
.dossier-panel.p-asg { animation-delay: 0.15s; }

.dossier-panel > header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--line);
}

.dossier-panel > header > div { flex: 1; min-width: 0; }
.dossier-panel h3 { margin: 0; font: 500 17px var(--font-head); letter-spacing: 0.05em; text-transform: uppercase; color: #fff; }
.dossier-panel header span { font-size: 12.5px; color: var(--text-dim); }
.dossier-panel.p-viol h3 { color: #f8b4ae; }

.dp-count {
    min-width: 28px;
    height: 26px;
    display: inline-grid;
    place-items: center;
    padding: 0 8px;
    border-radius: 8px;
    background: var(--bg-3);
    font: 600 13px var(--font-mono) !important;
    color: var(--text) !important;
}

.dp-body { flex: 1; min-height: 0; overflow: auto; padding: 10px; display: flex; flex-direction: column; gap: 6px; }

.rec {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 11px 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--bg-1);
    color: inherit;
    font: inherit;
    text-align: left;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.rec:hover { border-color: var(--line-3); }
.rec.warn { border-left: 3px solid var(--danger); }
.rec-link { cursor: pointer; }
.rec-link:hover { background: var(--bg-3); }
.rec-main { flex: 1; min-width: 0; }
.rec-title { font-weight: 700; color: #fff; font-size: 14.5px; overflow-wrap: anywhere; }
.rec-sub { font-size: 13px; color: var(--text-dim); margin-top: 2px; overflow-wrap: anywhere; }
.rec-tools { display: flex; gap: 4px; opacity: 0.55; transition: opacity var(--transition-fast); }
.rec:hover .rec-tools { opacity: 1; }

.rec-grade {
    flex: none;
    min-width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: var(--accent-soft);
    color: var(--accent-light);
    font: 500 18px var(--font-head);
}

.rec-empty { margin: auto; padding: 20px; font-size: 14px; color: var(--text-mute); }

/* Опросники: вопрос и ответ */
.qa-page { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.qa-head { padding-right: 48px; margin-bottom: 14px; }
.qa-head h2 { margin: 0; font: 500 30px var(--font-head); letter-spacing: 0.04em; text-transform: uppercase; color: #fff; }
.qa-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 8px; font-size: 14px; color: var(--text-dim); }
.qa-meta b { color: #fff; }

.qa-status {
    padding: 2px 10px;
    border-radius: 9px;
    font-weight: 700;
    font-size: 13px;
    background: var(--bg-3);
    color: var(--text);
}

.qa-status.submitted { background: rgba(236, 213, 71, 0.15); color: #ecd547; }
.qa-status.graded { background: rgba(49, 196, 139, 0.15); color: #5fe0aa; }

.qa-desc { margin: 0 0 14px; font-size: 15px; color: var(--text-dim); max-width: 900px; }

.qa-list {
    flex: 1;
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 2px 6px 10px 2px;
}

.qa-item {
    display: grid;
    grid-template-columns: 46px 1fr;
    gap: 16px;
    padding: 18px 20px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--bg-2);
    animation: tileIn 0.35s cubic-bezier(.2, .8, .2, 1) both;
    animation-delay: calc(min(var(--i, 0), 12) * 30ms);
    transition: border-color var(--transition-fast);
}

.qa-item.scored { border-color: color-mix(in srgb, var(--accent) 35%, transparent); }

.qa-num {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: var(--accent-grad);
    color: var(--accent-ink);
    font: 600 20px var(--font-head);
}

.qa-body { min-width: 0; display: flex; flex-direction: column; gap: 12px; }

.qa-q {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.5;
    color: #fff;
    overflow-wrap: anywhere;
}

.qa-q::before {
    content: 'Вопрос';
    display: block;
    margin-bottom: 4px;
    font: 700 12px var(--font-body);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent);
}

.qa-answers { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.qa-answers.one { grid-template-columns: 1fr; }

.qa-a {
    padding: 12px 14px;
    border-radius: 13px;
    border: 1px solid var(--line-2);
    background: var(--bg-1);
    font-size: 15px;
    line-height: 1.55;
    color: var(--text);
    overflow-wrap: anywhere;
}

.qa-a em { color: var(--text-mute); font-style: normal; }

.qa-a-label {
    display: block;
    margin-bottom: 4px;
    font: 700 12px var(--font-body);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    white-space: normal;
}

.qa-a.student { border-color: rgba(90, 169, 255, 0.35); background: rgba(90, 169, 255, 0.07); }
.qa-a.student .qa-a-label { color: #8cc4ff; }
.qa-a.correct { border-color: rgba(49, 196, 139, 0.35); background: rgba(49, 196, 139, 0.07); }
.qa-a.correct .qa-a-label { color: #5fe0aa; }

.qa-a textarea {
    width: 100%;
    margin: 2px 0 0;
    min-height: 54px;
    background: rgba(0, 0, 0, 0.25);
    font-size: 15px;
    resize: vertical;
}

.qa-grade { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--text-dim); }

.qa-grade-num {
    min-width: 38px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--accent-soft);
    color: var(--accent-light);
    font: 500 18px var(--font-head);
}

.qa-item .score-group { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.score-label { font: 700 12px var(--font-body); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-mute); margin-right: 6px; }

.qa-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 14px;
    margin-top: 6px;
    border-top: 1px solid var(--line);
}

.qa-foot .modal-error { margin: 0 auto 0 0; }

.mode-pick { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

.mode-opt {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 12px 14px;
    border: 1px solid var(--line-2);
    border-radius: 13px;
    background: var(--bg-2);
    color: var(--text);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.mode-opt b { color: #fff; font-size: 14.5px; }
.mode-opt span { font-size: 12.5px; color: var(--text-dim); }
.mode-opt.active { border-color: var(--accent); background: var(--accent-soft); box-shadow: 0 0 0 3px var(--accent-soft); }

/* Список опросников */
.q-list { display: flex; flex-direction: column; gap: 8px; }

.q-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 16px;
    padding: 14px 18px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--bg-1);
    animation: tileIn 0.35s cubic-bezier(.2, .8, .2, 1) both;
    animation-delay: calc(min(var(--i, 0), 12) * 30ms);
    transition: border-color var(--transition-fast);
}

.q-item:hover { border-color: var(--line-3); }

.q-item-ico {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--accent-soft);
}

.q-item-ico svg { width: 20px; height: 20px; fill: none; stroke: var(--accent-light); stroke-width: 1.8; stroke-linecap: round; }
.q-item-title { font-weight: 800; font-size: 15.5px; color: #fff; overflow-wrap: anywhere; }
.q-item-sub { font-size: 13px; color: var(--text-dim); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- Ивентология: старые блоки в общем стиле ---------- */
body[data-theme="eventology"] .card,
body[data-theme="kuratorka"] .card {
    padding: 20px 22px;
    border-radius: 18px;
    background: var(--bg-1);
}

.card h3 {
    font: 500 18px var(--font-head) !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    color: #fff !important;
    margin-bottom: 14px;
}

.field-row { font-size: 14.5px; gap: 14px; }
.field-row .label { color: var(--text-dim); }
.field-row .value { color: var(--text); overflow-wrap: anywhere; min-width: 0; }

.week-accordion { display: flex; flex-direction: column; gap: 6px; }

.week-item {
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--bg-2);
    overflow: hidden;
    transition: border-color var(--transition-fast);
}

.week-item:hover { border-color: var(--line-3); }

.week-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 16px;
    cursor: pointer;
    font-size: 15px;
}

.week-label strong { color: #fff; }
.week-points { font-size: 13px; color: var(--accent-light); margin-right: 10px; }
.week-toggle { display: inline-block; color: var(--text-mute); font-size: 12px; transition: transform var(--transition-mid); }
.week-item.open .week-toggle { transform: rotate(90deg); color: var(--accent); }
.week-body { padding: 4px 16px 16px; font-size: 14.5px; line-height: 1.6; overflow-wrap: anywhere; }

.cms-table { display: flex; flex-direction: column; gap: 6px; }

.cms-head,
.cms-row {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 52px;
    align-items: center;
    gap: 12px;
    padding: 0 16px;
}

.cms-head { height: 34px; font: 700 12px var(--font-body); letter-spacing: 0.09em; text-transform: uppercase; color: var(--text-mute); }

.cms-row {
    min-height: 54px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--bg-1);
    font-size: 14.5px;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.cms-row:hover { background: var(--bg-2); border-color: var(--line-2); }
.cms-name { font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cms-muted { color: var(--text-dim); font-family: var(--font-mono); font-size: 13px; overflow: hidden; text-overflow: ellipsis; }

.cms-expand {
    width: 34px;
    height: 34px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: var(--bg-2);
    color: var(--text-dim);
    cursor: pointer;
}

.cms-expand:hover { border-color: var(--accent); color: #fff; }

.cms-body {
    margin: -2px 0 4px;
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: rgba(0, 0, 0, 0.2);
    animation: drawerIn 0.25s ease;
}

.cms-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }

.cms-field {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 12px;
    border-radius: 11px;
    background: var(--bg-2);
    font-size: 14px;
}

.cms-field .label { font: 700 12px var(--font-body); letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-mute); }
.cms-field .value { overflow-wrap: anywhere; }
.cms-field-full { grid-column: 1 / -1; }
.cms-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.cms-chip { padding: 4px 10px; border-radius: 10px; background: var(--bg-3); font-size: 13px; }
.cms-actions { display: flex; gap: 8px; margin-top: 14px; }

.report-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--bg-2);
    margin-bottom: 6px;
}

.report-main { flex: 1; min-width: 0; }
.report-title { font-weight: 700; color: #fff; overflow-wrap: anywhere; }
.report-sub { font-size: 13px; color: var(--text-dim); overflow-wrap: anywhere; }

/* ---------- Личный кабинет ---------- */
.hero-eyebrow {
    font: 600 12px var(--font-mono);
    letter-spacing: 0.24em;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.hero-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.activity-drawer {
    border-top: 1px solid var(--line);
    padding: 20px 24px 24px;
    background: rgba(0, 0, 0, 0.25);
    animation: drawerIn 0.3s cubic-bezier(.2, .8, .2, 1);
}

.activity-drawer[hidden] { display: none; }

.activity-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 12px;
}

.activity-item {
    --dept-color: var(--accent);
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 18px 14px;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--dept-color) 30%, var(--line));
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--dept-color) 10%, transparent), transparent 60%),
        var(--bg-2);
    overflow: hidden;
    animation: tileIn 0.35s cubic-bezier(.2, .8, .2, 1) both;
}

.activity-item::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--dept-color);
}

.activity-dept {
    display: flex;
    align-items: center;
    gap: 9px;
    font: 500 17px var(--font-head);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #fff;
}

.activity-dept .dept-dot {
    width: 9px;
    height: 9px;
    border-radius: 3px;
    background: var(--dept-color);
    box-shadow: 0 0 10px var(--dept-color);
}

.activity-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.activity-label {
    width: 112px;
    flex: none;
    font: 700 12px var(--font-body);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-mute);
}

.activity-row .chips { display: flex; flex-wrap: wrap; gap: 5px; }
.activity-since { font-size: 12.5px; color: var(--text-dim); text-align: right; margin-top: -4px; }

/* Переключатель */
.switch-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 6px 0 0;
    padding: 12px 14px;
    border: 1px solid var(--line-2);
    border-radius: 13px;
    background: var(--bg-2);
    cursor: pointer;
    text-transform: none;
    letter-spacing: normal;
    font-size: 14px;
    transition: border-color var(--transition-fast);
}

.switch-row:hover { border-color: var(--line-3); }
.switch-row input { display: none; }
.switch-row > span:last-child { display: flex; flex-direction: column; }
.switch-row b { color: #fff; font-size: 14.5px; }
.switch-row small { font-size: 12.5px; color: var(--text-dim); font-weight: 500; }

.switch {
    position: relative;
    flex: none;
    width: 42px;
    height: 24px;
    border-radius: 12px;
    background: var(--bg-4);
    transition: background var(--transition-fast);
}

.switch::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    transition: transform var(--transition-mid);
}

.switch-row input:checked + .switch { background: var(--accent); }
.switch-row input:checked + .switch::after { transform: translateX(18px); }

/* Награды за баллы */
.reward-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.reward-head h2 { margin-bottom: 4px; }

.reward-wallet {
    flex: none;
    min-width: 150px;
    padding: 12px 16px;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--scp-yellow) 40%, transparent);
    background: linear-gradient(135deg, rgba(236, 213, 71, 0.14), rgba(242, 153, 74, 0.06));
    text-align: right;
}

.reward-wallet span { display: block; font: 700 12px var(--font-body); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-dim); }
.reward-wallet b { display: block; font: 500 38px var(--font-head); line-height: 1.05; color: var(--scp-yellow); }
.reward-wallet small { font-size: 12.5px; color: var(--text-dim); }
.reward-wallet .neg { color: var(--danger-light); }

.reward-grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; margin-bottom: 16px; }

.reward-option {
    --tier: 0.3;
    gap: 8px;
    padding: 16px;
    border-radius: 16px;
    background:
        linear-gradient(160deg, color-mix(in srgb, var(--scp-orange) calc(var(--tier) * 18%), transparent), transparent 70%),
        var(--bg-2);
    animation: tileIn 0.35s cubic-bezier(.2, .8, .2, 1) both;
    cursor: pointer;
}

.reward-option-top { display: flex; align-items: baseline; gap: 6px; }
.reward-option-unit { font-size: 12.5px; color: var(--text-dim); font-weight: 700; }
.reward-option-name { line-height: 1.35; min-height: 2.7em; }

.reward-progress {
    display: block;
    height: 5px;
    border-radius: 3px;
    background: var(--bg-4);
    overflow: hidden;
}

.reward-progress i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--scp-orange), var(--scp-yellow));
    transition: width 0.6s ease;
}

.reward-option:not(.locked) .reward-option-need { color: #5fe0aa; }

/* ---------- Администрирование: отделы пользователя ---------- */
.user-admin-depts {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 5px;
    margin-left: auto;
    max-width: 50%;
}

.dept-mini {
    --dept-color: var(--accent);
    padding: 3px 10px;
    border-radius: 9px;
    font-size: 12.5px;
    font-weight: 700;
    color: color-mix(in srgb, var(--dept-color) 70%, #fff);
    background: color-mix(in srgb, var(--dept-color) 13%, transparent);
    border: 1px solid color-mix(in srgb, var(--dept-color) 30%, transparent);
}

.id-card,
.class-card {
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--bg-2);
}

.id-card .kv { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; font-size: 14px; }
.id-card .kv > span { color: var(--text-dim); }
.id-card .kv b { color: #fff; overflow-wrap: anywhere; text-align: right; }

.dept-chooser {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.dept-chips { display: flex; flex-wrap: wrap; gap: 6px; }

.dept-chip {
    --dept-color: var(--accent);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    padding: 0 14px;
    border: 1px solid var(--line-2);
    border-radius: 11px;
    background: var(--bg-2);
    color: var(--text);
    font: 700 13.5px var(--font-body);
    cursor: pointer;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.dept-chip .dept-dot { width: 8px; height: 8px; border-radius: 3px; background: var(--dept-color); }
.dept-chip:hover { border-color: var(--dept-color); color: #fff; }

.dept-chip.active {
    border-color: var(--dept-color);
    background: color-mix(in srgb, var(--dept-color) 15%, var(--bg-2));
    color: #fff;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--dept-color) 15%, transparent);
}

.dept-add { display: flex; gap: 8px; align-items: center; }
.dept-add select { width: 220px; height: 36px; margin: 0; }

.dept-panel {
    --dept-color: var(--accent);
    padding: 14px;
    border: 1px solid color-mix(in srgb, var(--dept-color) 30%, var(--line));
    border-radius: 14px;
    background: color-mix(in srgb, var(--dept-color) 5%, var(--bg-2));
    animation: drawerIn 0.25s ease;
}

.custom-panel { display: grid; grid-template-columns: minmax(200px, 280px) 1fr; gap: 16px; }

/* Окно выдачи доступа */
.access-modal-head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 12px; }

.access-modal-ico {
    flex: none;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--accent-soft);
}

.access-modal-ico svg { width: 22px; height: 22px; fill: none; stroke: var(--accent-light); stroke-width: 1.8; }
.access-levels-info { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-bottom: 14px; font-size: 13.5px; color: var(--text-dim); }
.access-levels-info .access-level { margin-right: 6px; }
.picker-item .class-badge { margin-left: auto; }

/* ---------- Полезная информация: текст как на сайте ---------- */
.doc-rule { margin-bottom: 34px; }

.doc-rule-head h2 {
    font: 500 26px var(--font-head);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #fff;
}

.doc-sub {  padding-left: 18px;  }
.doc-sub-head h3 {  font-weight: 800; color: #fff; }

.doc-text-line {
    font-size: 16px;
    line-height: 1.75;
    color: var(--text);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.doc-text + .doc-text { margin-top: 12px; }

.rt-b { font-weight: 800; color: #fff; }
.rt-i { font-style: italic; }
.rt-u { text-decoration: underline; text-underline-offset: 3px; }
.rt-s { text-decoration: line-through; }
.rt-u.rt-s { text-decoration: underline line-through; }
.rt-bg { background: color-mix(in srgb, var(--rt-bg) 28%, transparent); box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--rt-bg) 70%, transparent); padding: 0 3px; border-radius: 4px; }

.info-table-wrap {
    overflow-x: auto;
}

.info-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 15px;
}

.info-table th {
    text-transform: uppercase;
    text-align: left;
    overflow-wrap: anywhere;
}

.info-table td,
.info-table-cell {
    border-bottom: 1px solid var(--line);
    vertical-align: top;
    line-height: 1.6;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.info-table tr:last-child td { border-bottom: 0; }

.info-table tbody tr:hover td {  }

.cell-media {  flex-wrap: wrap;   white-space: normal; }

.cell-media img,
.cell-media video {
    display: block;
    max-width: 100%;
    max-height: 220px;
    border-radius: 10px;
    border: 1px solid var(--line-2);
    object-fit: cover;
}

.cell-media a { display: block; max-width: 100%; }

/* Редактор форматированного текста */
.rich-editor {
    border: 1px solid var(--line-2);
    border-radius: 13px;
    background: var(--bg-2);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.rich-editor:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.rich-editor .rich-toolbar { border-bottom: 1px solid var(--line); border-radius: 13px 13px 0 0; }

.rich-toolbar {
    display: flex;
    align-items: center;
    padding: 5px 6px;
    background: rgba(0, 0, 0, 0.18);
}

.rich-btn {
    min-width: 30px;
    height: 30px;
    padding: 0 7px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--text);
    font: 15px var(--font-body);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.rich-btn:hover { background: var(--bg-4); color: #fff; }
.rich-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; vertical-align: -3px; }
.rich-a { font-weight: 800; border-bottom: 3px solid var(--scp-red); line-height: 1; }
.rich-mark { font-weight: 800; padding: 0 4px; border-radius: 4px; background: rgba(236, 213, 71, 0.4); }
.rich-sep { width: 1px; height: 20px; margin: 0 4px; background: var(--line-2); }
.rich-pop-wrap { position: relative; }

.rich-pop {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 20;
    display: none;
    gap: 6px;
    padding: 10px;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    background: var(--bg-3);
    box-shadow: var(--shadow-lg);
}

.rich-pop.open { display: grid; animation: drawerIn 0.15s ease; }

.rich-swatch {
    width: 24px;
    height: 24px;
    padding: 0;
    border: 2px solid rgba(255, 255, 255, 0.15);
    border-radius: 7px;
    background: var(--sw);
    cursor: pointer;
    transition: transform var(--transition-fast);
}

.rich-swatch:hover { transform: scale(1.15); border-color: #fff; }
.rich-swatch.none { background: linear-gradient(135deg, transparent 45%, var(--danger) 45% 55%, transparent 55%), var(--bg-1); }

.rich-area {
    min-height: 74px;
    max-height: 340px;
    overflow: auto;
    padding: 11px 13px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--text);
    outline: none;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.rich-area:empty::before { content: attr(data-placeholder); color: var(--text-mute); pointer-events: none; }

.table-editor-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.table-editor-bar .rich-toolbar { border: 1px solid var(--line-2); border-radius: 12px; }
.table-editor-struct { display: flex; gap: 6px; flex-wrap: wrap; }

.info-table-editor-wrap {  overflow: auto; border: 1px solid var(--line); border-radius: 14px; }
.info-table-editor { width: 100%; border-collapse: collapse;  }
.info-table-editor th { padding: 8px; background: var(--bg-2); position: sticky; top: 0; z-index: 2; }
.info-table-editor th input { margin: 0; height: 36px; font-weight: 700; }
.info-table-editor td.tcell { padding: 6px; border-top: 1px solid var(--line); vertical-align: top; }

.tcell .rich-area {
    min-height: 54px;
    max-height: 200px;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: var(--bg-2);
}

.tcell .rich-area:focus { border-color: var(--accent); }
.tcell-tools { display: flex; gap: 4px; margin-top: 5px; }

.tcell-tools button {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: transparent;
    color: var(--text-dim);
    cursor: pointer;
}

.tcell-tools button:hover,
.tcell-tools button.on { border-color: var(--accent); color: var(--accent-light); background: var(--accent-soft); }
.tcell-tools svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.tcell-link { margin-top: 4px; font: 12px var(--font-mono); color: var(--accent-light); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tcell-media { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.tcell-thumb { position: relative; width: 56px; height: 42px; }
.tcell-thumb img, .tcell-thumb video { width: 100%; height: 100%; object-fit: cover; border-radius: 7px; }

.tcell-thumb button {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--danger);
    color: #fff;
    font-size: 12px;
    cursor: pointer;
}

/* ---------- Адаптив ---------- */
@media (max-width: 1500px) {
    .trainee-row { grid-template-columns: minmax(200px, 1.2fr) minmax(230px, 1.2fr) auto auto; }
    .trainee-row .tr-promo { grid-column: 1 / 3; flex-direction: row; align-items: center; gap: 10px; }
    .trainee-row .tr-actions { grid-column: 3 / 5; }
    .staff-row { grid-template-columns: minmax(200px, 1.4fr) repeat(3, minmax(110px, 0.8fr)) auto; }
}

@media (max-width: 1200px) {
    .dossier-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; overflow: auto; }
    .dossier-side { grid-row: auto; grid-column: 1 / -1; }
    .dossier-panel { min-height: 260px; }
    .qa-answers { grid-template-columns: 1fr; }
    .custom-panel { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .trainee-row,
    .staff-row { grid-template-columns: 1fr; gap: 12px; }
    .trainee-row .tr-promo,
    .trainee-row .tr-actions { grid-column: auto; }
    .tr-actions { justify-content: flex-start; flex-wrap: wrap; }
    .dossier-grid { grid-template-columns: 1fr; }
    .modal.modal-full { inset: 0; border-radius: 0; padding: 18px 16px; }
    .q-item { grid-template-columns: auto 1fr; }
    .q-item .action-bar, .q-item-status { grid-column: 1 / -1; }
    .user-admin-depts { display: none; }
    .reward-head { flex-direction: column; }
    .reward-wallet { text-align: left; }
    .command-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cmd-hint { display: none; }
    .content::before { display: none; }
}

.group-row td { background: color-mix(in srgb, var(--accent) 9%, var(--bg-1)) !important; }

.qa-a { white-space: normal; }
.qa-a > div { white-space: pre-wrap; }
.mrp-block .dept-panel-wrap { padding: 14px 16px 16px; }
.dept-panel .mrp-grid { border: 0; }
.dept-panel .mrp-foot { padding: 12px 0 0; border-top: 1px solid var(--line); margin-top: 12px; background: none; }

.command-nav { grid-template-columns: repeat(auto-fill, minmax(205px, 1fr)); }
.cmd-hint { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.reward-head { padding-right: 44px; }
.cell-select.role-select { padding-right: 22px; font-size: 13px; text-overflow: ellipsis; }



/* =============================================================
   v7 — тематика Фонда: HUD-уголки, полосы опасности, гриф,
   шапки страниц, панели инструментов, Учёт, норма, документ
   ============================================================= */

/* ---------- Общие приёмы оформления ---------- */
:root {
    --hazard: repeating-linear-gradient(-45deg, rgba(236, 213, 71, 0.55) 0 7px, rgba(0, 0, 0, 0) 7px 14px);
    --corner-color: color-mix(in srgb, var(--accent) 65%, transparent);
}

/* Водяной знак по краю экрана */
.content::after {
    content: 'SECURE · CONTAIN · PROTECT';
    position: fixed;
    right: -118px;
    top: 50%;
    transform: rotate(90deg);
    font: 600 12px var(--font-mono);
    letter-spacing: 0.6em;
    color: rgba(255, 255, 255, 0.06);
    pointer-events: none;
    white-space: nowrap;
}

.content::before { content: 'FLX // ТЕРМИНАЛ ПЕРСОНАЛА'; }

/* Фон: добавляем «карту объекта» — тонкие линии и метки секторов */
.app-shell::before {
    content: '';
    position: fixed;
    inset: 0 0 0 var(--sidebar-w);
    pointer-events: none;
    z-index: -1;
    background:
        linear-gradient(90deg, transparent calc(50% - 0.5px), rgba(255, 255, 255, 0.025) calc(50% - 0.5px) calc(50% + 0.5px), transparent calc(50% + 0.5px)),
        radial-gradient(circle at 12% 18%, transparent 0 46px, rgba(229, 83, 75, 0.06) 46px 47px, transparent 47px),
        radial-gradient(circle at 12% 18%, transparent 0 90px, rgba(229, 83, 75, 0.04) 90px 91px, transparent 91px),
        linear-gradient(transparent 0 0);
}

/* HUD-уголки на крупных панелях */
.command-panel::after,
.doc-paper::before,
.empty-state.big::after,
.form-block::after {
    content: '';
    position: absolute;
    inset: 9px;
    pointer-events: none;
    border-radius: 0;
    border: 0;
    box-shadow: none;
    width: auto;
    height: auto;
    animation: none;
    background:
        linear-gradient(var(--corner-color), var(--corner-color)) left top / 18px 2px,
        linear-gradient(var(--corner-color), var(--corner-color)) left top / 2px 18px,
        linear-gradient(var(--corner-color), var(--corner-color)) right top / 18px 2px,
        linear-gradient(var(--corner-color), var(--corner-color)) right top / 2px 18px,
        linear-gradient(var(--corner-color), var(--corner-color)) left bottom / 18px 2px,
        linear-gradient(var(--corner-color), var(--corner-color)) left bottom / 2px 18px,
        linear-gradient(var(--corner-color), var(--corner-color)) right bottom / 18px 2px,
        linear-gradient(var(--corner-color), var(--corner-color)) right bottom / 2px 18px;
    background-repeat: no-repeat;
    opacity: 0.7;
}

.command-panel::after { right: 9px; top: 9px; }



/* Полоса опасности внизу шапки */
.command-panel > .hazard,
.page-banner .banner-main::after {
    content: '';
    display: block;
    height: 4px;
    margin-top: 18px;
    width: 120px;
    border-radius: 2px;
    background: var(--hazard);
    opacity: 0.8;
}

.command-eyebrow::before {
    content: '';
    display: inline-block;
    margin-right: 10px;
    vertical-align: 1px;
}

@keyframes blink { 50% { opacity: 0.25; } }

/* Гриф в углу шапки */
.command-panel .command-head::after {
    content: 'ДОСТУП: КЛАСС ' attr(data-class);
    display: none;
}

/* ---------- Шапка страницы с цифрами и действиями ---------- */
.page-banner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 22px;
    padding-bottom: 22px;
}

.banner-main { position: relative; z-index: 1; min-width: 0; }
.banner-sub { margin: 8px 0 0; max-width: 760px; font-size: 14.5px; color: var(--text-dim); }

.banner-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.banner-stats > div {
    min-width: 110px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 13px;
}

.banner-stats b { display: block; font: 500 26px var(--font-head);  color: #fff; }
.banner-stats span { font-size: 12.5px; color: var(--text-dim); }
.banner-stats .pos { color: #5fe0aa; }
.banner-stats .neg { color: var(--danger-light); }

.banner-actions { position: relative; z-index: 1; justify-content: flex-end; }
.banner-actions .btn-primary svg,
.banner-actions .btn-outline svg,
.btn-primary svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; margin-right: 6px; vertical-align: -3px; }
.btn-outline svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; margin-right: 6px; vertical-align: -3px; }

.page-banner .dept-strip { margin: 16px 0 0; }

/* ---------- Панель инструментов ---------- */
.doc-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.tb-group {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 4px;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    background: rgba(0, 0, 0, 0.25);
}

.tb-label {
    padding: 0 8px 0 6px;
    font: 700 12px var(--font-body);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-mute);
}

.tb-btn {
    display: inline-flex;
    align-items: center;
    height: 32px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--text);
    font: 700 13px var(--font-body);
    cursor: pointer;
    white-space: nowrap;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.tb-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.tb-btn:hover { background: var(--bg-4); color: #fff; }
.tb-btn.primary { background: var(--accent-grad); color: var(--accent-ink); }
.tb-btn.primary:hover { filter: brightness(1.08); }
.tb-btn.danger:hover { background: rgba(229, 83, 75, 0.16); color: var(--danger-light); }

.dept-banner .dept-tools { justify-content: flex-end; }

.filter-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--bg-1);
}

.filter-bar .search-box { flex: 1; min-width: 220px; max-width: 420px; }
.filter-bar .search-box input { height: 40px; margin: 0; }
.filter-bar .toolbar-count { margin-left: auto; font: 600 12.5px var(--font-mono); color: var(--text-mute); }

.week-picker { display: flex; align-items: center; gap: 4px; min-width: 0; flex: 1 1 100%; }
.week-picker .week-strip { margin: 0; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 2px; }

/* ---------- Учёт ---------- */
.card-legend { margin-bottom: 14px; }

.uchet-head,
.uchet-row {
    display: grid;
    grid-template-columns: 26px minmax(200px, 1.4fr) minmax(170px, 1fr) 90px minmax(160px, 1.1fr) minmax(120px, 0.8fr);
    align-items: center;
    gap: 16px;
}

.uchet-head {
    padding: 0 18px 8px;
    font: 700 12px var(--font-body);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-mute);
}

.uchet-list { display: flex; flex-direction: column; gap: 8px; }

.uchet-item {
    position: relative;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--bg-1);
    overflow: hidden;
    animation: tileIn 0.35s cubic-bezier(.2, .8, .2, 1) both;
    animation-delay: calc(var(--i, 0) * 20ms);
    transition: border-color var(--transition-fast);
}

.uchet-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 14px;
    bottom: 14px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--line-3);
}

.uchet-item.plus::before { background: var(--scp-green); }
.uchet-item.minus::before { background: var(--danger); }
.uchet-item.left { opacity: 0.7; }
.uchet-item:hover,
.uchet-item.open { border-color: var(--line-3); }

.uchet-row {
    width: 100%;
    padding: 12px 18px;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.row-chevron { width: 18px; height: 18px; fill: none; stroke: var(--text-dim); stroke-width: 2.2; transition: transform var(--transition-mid); }
.uchet-item.open .row-chevron { transform: rotate(90deg); stroke: var(--accent); }
.uchet-person { min-width: 0; }
.uchet-ids { display: flex;   font-size: 13px; min-width: 0; }
.uchet-ids span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uchet-balance { font: 500 24px var(--font-head); }
.uchet-balance.pos { color: #5fe0aa; }
.uchet-balance.neg { color: var(--danger-light); }

.uchet-detail { padding: 4px 18px 18px; border-top: 1px solid var(--line); animation: drawerIn 0.25s ease; }
.uchet-detail-grid { display: grid;  gap: 14px; margin-top: 14px; }
.uchet-col { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.uchet-col > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.uchet-col h4 { margin: 0; display: flex; align-items: center; gap: 8px; font: 500 17px var(--font-head); letter-spacing: 0.05em; text-transform: uppercase; color: #fff; }

.card-rec {
    --card-color: var(--accent);
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-left: 4px solid var(--card-color);
    border-radius: 12px;
    background: var(--bg-2);
}

.card-rec.inactive { opacity: 0.55; }
.card-rec-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.card-rec-name { font-weight: 800; color: #fff; font-size: 15px; }
.card-rec-top b { font: 500 18px var(--font-head); }
.card-rec-top .act-btn { margin-left: auto; }
.card-rec-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 4px; font-size: 13px; color: var(--text-dim); }
.card-rec-meta b { color: #fff; }
.card-rec-reason { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--line-2); font-size: 14px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }

.factor-line { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 8px; }
.factor-kind { font: 700 12px var(--font-body); letter-spacing: 0.1em; text-transform: uppercase; margin-right: 4px; }
.factor-line.agg .factor-kind { color: #f8a29b; }
.factor-line.mit .factor-kind { color: #7fe0b6; }

.factor-chip {
    max-width: 100%;
    padding: 3px 9px;
    border-radius: 8px;
    font-size: 12.5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.factor-chip.agg { background: rgba(229, 83, 75, 0.13); color: #f8b4ae; border: 1px solid rgba(229, 83, 75, 0.3); }
.factor-chip.mit { background: rgba(49, 196, 139, 0.12); color: #8ee8c0; border: 1px solid rgba(49, 196, 139, 0.3); }

.degree-rec {
    --degree-color: var(--accent);
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--degree-color) 35%, var(--line));
    border-radius: 12px;
    background: color-mix(in srgb, var(--degree-color) 8%, var(--bg-2));
}

.degree-rec > div { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.degree-rec b { color: #fff; font-size: 14.5px; }
.degree-rec small { font-size: 12.5px; color: var(--text-dim); }
.degree-swatch { flex: none; width: 14px; height: 26px; border-radius: 4px; background: var(--degree-color); box-shadow: 0 0 12px color-mix(in srgb, var(--degree-color) 50%, transparent); }

.degree-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; }

.degree-option {
    --degree-color: var(--accent);
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    background: var(--bg-2);
    cursor: pointer;
    text-transform: none;
    letter-spacing: normal;
    font-size: 14px;
    color: var(--text);
}

.degree-option input { display: none; }
.degree-option:has(input:checked) { border-color: var(--degree-color); background: color-mix(in srgb, var(--degree-color) 14%, var(--bg-2)); color: #fff; }

/* ---------- Формы на весь экран ---------- */
.form-page { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.form-scroll { flex: 1; min-height: 0; overflow: auto; display: flex; flex-direction: column; gap: 14px; padding: 2px; }

.form-cols {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: 16px;
    overflow: hidden;
}

.form-col { display: flex; flex-direction: column; gap: 14px; min-height: 0; overflow: auto; padding: 2px 4px 2px 2px; }
.form-col[hidden] { display: none; }
.form-col-note { justify-content: center; }

.form-block {
    position: relative;
    padding: 18px 20px;
    border: 1px solid var(--line);
}

.form-block::after { inset: 6px; opacity: 0.35; }

.form-block-title {
    margin-bottom: 12px;
    color: #fff;
}

.form-block-title .hint-inline { font: 500 12.5px var(--font-body); letter-spacing: 0; text-transform: none; }

.form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px 14px; }
.form-field { display: flex; flex-direction: column; }
.form-field label { margin: 0 0 6px; }
.form-field input { margin: 0; }
.form-field small { margin-top: 4px; font-size: 12px; color: var(--text-mute); }

.card-type-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }

.card-type-option {
    --card-color: var(--accent);
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    padding: 11px 12px;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    background: var(--bg-1);
    cursor: pointer;
    text-transform: none;
    letter-spacing: normal;
    font-size: 14px;
    color: var(--text);
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.card-type-option input { display: none; }
.card-type-option .ct-name { flex: 1; font-weight: 700; min-width: 0; }
.card-type-option:hover { border-color: var(--card-color); }
.card-type-option:has(input:checked) {
    border-color: var(--card-color);
    background: color-mix(in srgb, var(--card-color) 16%, var(--bg-1));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--card-color) 18%, transparent);
    color: #fff;
}

.factor-group + .factor-group { margin-top: 14px; }
.factor-group { display: flex; flex-direction: column; gap: 6px; }
.factor-group-title { font: 700 12px var(--font-body); letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 2px; }
.factor-group-title.agg { color: #f8a29b; }
.factor-group-title.mit { color: #7fe0b6; }

.factor-opt {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--bg-1);
    cursor: pointer;
    text-transform: none;
    letter-spacing: normal;
    font: 500 14px/1.45 var(--font-body);
    color: var(--text);
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.factor-opt input { display: none; }
.factor-opt:hover { border-color: var(--line-3); }

.factor-num {
    flex: none;
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 7px;
    background: var(--bg-3);
    font: 700 12px var(--font-mono);
    color: var(--text-dim);
}

.factor-opt.agg:has(input:checked) { border-color: rgba(229, 83, 75, 0.6); background: rgba(229, 83, 75, 0.1); color: #fff; }
.factor-opt.agg:has(input:checked) .factor-num { background: var(--danger); color: #fff; }
.factor-opt.mit:has(input:checked) { border-color: rgba(49, 196, 139, 0.6); background: rgba(49, 196, 139, 0.1); color: #fff; }
.factor-opt.mit:has(input:checked) .factor-num { background: var(--scp-green); color: #04190f; }


.person-picker { display: flex; flex-direction: column; gap: 8px; }
.picked:empty { display: none; }

.picked-chip {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
    border-radius: 12px;
    background: var(--accent-soft);
}

.picked-chip .badge-x { margin-left: auto; font-size: 18px; }

/* ---------- Окна-страницы (формы на весь экран) ---------- */


.modal.modal-sheet > h2 {
    font: 500 32px var(--font-head);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--line);
}

.modal.modal-sheet > h2::before {
    display: block;
    margin-bottom: 6px;
}

.modal.modal-sheet > label,
.modal.modal-sheet .sub-title { margin-top: 18px; }

.modal.modal-sheet textarea { min-height: 96px; }

.modal.modal-sheet > .modal-actions {
    z-index: 4;
    border-top: 1px solid var(--line);
}

.modal.modal-sheet > .modal-error { position: sticky; bottom: 70px; }

/* ---------- Классы доступа ---------- */
.class-row { grid-template-columns: minmax(220px, 1.4fr) 140px minmax(120px, 1fr) auto; }
.req-row { grid-template-columns: minmax(200px, 1.2fr) minmax(150px, 0.8fr) minmax(200px, 1.6fr) minmax(140px, 0.8fr) auto; }
.tr-cell.wide { min-width: 0; }
.tr-wrap { font-size: 14px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }

.class-switch {
    display: flex;
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    background: rgba(0, 0, 0, 0.25);
}

.class-opt {
    min-width: 54px;
    height: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--text);
    font: 800 15px var(--font-body);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.class-opt small { font: 600 12px var(--font-body); color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.06em; }
.class-opt:hover:not(:disabled) { background: var(--bg-4); }
.class-opt.current { background: var(--accent-grad); color: var(--accent-ink); }
.class-opt.current small { color: var(--accent-ink); }
.class-opt:disabled:not(.current) { opacity: 0.35; cursor: not-allowed; }

.level-move { font-size: 14px; color: var(--text-dim); }
.level-move b { color: #fff; }
.level-move.up b:last-child { color: #5fe0aa; }
.level-move.down b:last-child { color: var(--danger-light); }

/* ---------- Категории (личный кабинет, разделы) ---------- */
.cat-list { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.cat-list .switch-row { --dept-color: var(--accent); }
.cat-list .switch-row input:checked + .switch { background: var(--dept-color); }

.cat-dot {
    display: inline-block;
    width: 9px;
    height: 9px;
    margin-right: 8px;
    border-radius: 3px;
    background: var(--dept-color, var(--accent));
    box-shadow: 0 0 8px var(--dept-color, var(--accent));
    vertical-align: 0;
}

.switch-row.locked { cursor: default; opacity: 0.8; }

.cat-picker { display: flex; flex-wrap: wrap; gap: 8px; }

.cat-opt {
    --dept-color: var(--accent);
    display: inline-flex;
    align-items: center;
    height: 38px;
    padding: 0 15px;
    border: 1px solid var(--line-2);
    border-radius: 11px;
    background: var(--bg-2);
    color: var(--text-dim);
    font: 700 14px var(--font-body);
    cursor: pointer;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.cat-opt:hover { color: #fff; border-color: var(--dept-color); }
.cat-opt.on { color: #fff; border-color: var(--dept-color); background: color-mix(in srgb, var(--dept-color) 16%, var(--bg-2)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--dept-color) 16%, transparent); }

/* ---------- Полезная информация: список как сайт ---------- */
.kb-filter { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px; }

.kb-filter-btn {
    --dept-color: var(--accent);
    display: inline-flex;
    align-items: center;
    gap: 2px;
    height: 38px;
    padding: 0 14px;
    border: 1px solid var(--line-2);
    border-radius: 11px;
    background: var(--bg-1);
    color: var(--text-dim);
    font: 700 13.5px var(--font-body);
    cursor: pointer;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}

.kb-filter-btn span { margin-left: 8px; padding: 1px 7px; border-radius: 7px; background: var(--bg-3); font: 600 12px var(--font-mono); }
.kb-filter-btn:hover { color: #fff; border-color: var(--line-3); }
.kb-filter-btn.active { color: #fff; border-color: var(--dept-color); background: color-mix(in srgb, var(--dept-color) 13%, var(--bg-1)); }

.kb-group { --dept-color: var(--accent); margin-bottom: 30px; }

.kb-group-head {
    display: flex;
    align-items: center;
    gap: 4px;
    padding-bottom: 10px;
    margin-bottom: 4px;
    border-bottom: 1px solid color-mix(in srgb, var(--dept-color) 40%, var(--line));
}

.kb-group-head h2 { margin: 0; font: 500 22px var(--font-head); letter-spacing: 0.05em; text-transform: uppercase; color: #fff; }
.kb-group-head > span { margin-left: 10px; font: 600 12.5px var(--font-mono); color: var(--text-mute); }

.kb-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
    gap: 14px;
}

.kb-item {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
        "num main"
        "num open";
    align-content: start;
    column-gap: 16px;
    row-gap: 14px;
    min-height: 148px;
    padding: 20px 20px 16px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 14px;
    background:
        linear-gradient(150deg, color-mix(in srgb, var(--dept-color) 7%, transparent), transparent 55%),
        rgba(255, 255, 255, 0.018);
    cursor: pointer;
    outline: none;
    transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
    animation: tileIn 0.35s cubic-bezier(.2, .8, .2, 1) both;
    animation-delay: calc(var(--i, 0) * 30ms);
}

.kb-item::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 2px;
    background: var(--dept-color);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-mid);
}

.kb-item:hover,
.kb-item:focus-visible {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--dept-color) 45%, var(--line));
}
.kb-item:hover::before,
.kb-item:focus-visible::before { transform: scaleX(1); }

.kb-num {
    grid-area: num;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 11px;
    font: 700 14px var(--font-mono);
    color: color-mix(in srgb, var(--dept-color) 75%, #fff);
    background: color-mix(in srgb, var(--dept-color) 13%, transparent);
    border: 1px solid color-mix(in srgb, var(--dept-color) 28%, transparent);
}
.kb-main { grid-area: main; min-width: 0; }
.kb-main h3 { margin: 0 0 6px; padding-right: 40px; font-size: 18px; line-height: 1.3; font-weight: 800; color: #fff; }
.kb-main p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--text-dim); max-width: 900px; overflow-wrap: anywhere; }
.kb-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }

.kb-cat {
    --dept-color: var(--accent);
    padding: 2px 9px;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 700;
    color: color-mix(in srgb, var(--dept-color) 70%, #fff);
    background: color-mix(in srgb, var(--dept-color) 13%, transparent);
    border: 1px solid color-mix(in srgb, var(--dept-color) 30%, transparent);
}

.kb-access { padding: 2px 9px; border-radius: 7px; font-size: 12px; font-weight: 700; color: var(--text-dim); background: var(--bg-3); }
.kb-tools { position: absolute; top: 12px; right: 12px; display: flex; gap: 6px; opacity: 0; transition: opacity var(--transition-fast); }
.kb-item:hover .kb-tools,
.kb-item:focus-within .kb-tools { opacity: 1; }
.kb-open { grid-area: open; align-self: end; justify-self: start; display: flex; align-items: center; gap: 6px; font-weight: 700; font-size: 14px; color: var(--accent-light); white-space: nowrap; }
.kb-open svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform var(--transition-mid); }
.kb-item:hover .kb-open svg { transform: translateX(4px); }

/* ---------- Полезная информация: документ во весь экран ---------- */
.doc-reader { display: flex; flex-direction: column; overflow: hidden; }
.doc-topbar { flex: none; height: auto; min-height: 64px; padding: 10px 22px; flex-wrap: wrap; }
.doc-topbar-title { flex: 0 1 auto; min-width: 0; }
.doc-crumb { color: var(--text-mute); font-weight: 600; }
.doc-topbar .doc-toolbar { margin-left: auto; }
.doc-topbar .doc-close { margin-left: 4px; }

.doc-shell {
    flex: 1;
    min-height: 0;
    display: grid;
}

.doc-nav {
    overflow-y: auto;
    padding: 22px 16px 30px 20px;
    border-right: 1px solid var(--line);
}

.doc-nav-head { padding: 0 6px 18px; margin-bottom: 14px; border-bottom: 1px solid var(--line); }
.doc-nav-name { font: 500 21px var(--font-head); letter-spacing: 0.04em; text-transform: uppercase; color: #fff; line-height: 1.2; overflow-wrap: anywhere; }
.doc-nav-title { padding: 0 6px; margin-bottom: 8px; font: 700 12px var(--font-body); letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-mute); }

.doc-nav-link {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 10px 10px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--text-dim);
    font: 700 14.5px var(--font-body);
    text-align: left;
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.doc-nav-link svg { flex: none; width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.2; transition: transform var(--transition-mid); }
.doc-nav-link span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.doc-nav-link:hover { background: rgba(255, 255, 255, 0.04); color: #fff; }
.doc-nav-item.active > .doc-nav-link { color: #fff; background: var(--accent-soft); }
.doc-nav-item.active > .doc-nav-link svg { transform: rotate(90deg); stroke: var(--accent); }

.doc-nav-toc { display: flex; flex-direction: column;    }

.doc-nav-toc a {
    display: flex;
    gap: 9px;
    line-height: 1.4;
    color: var(--text-dim);
    text-decoration: none;
    transition: color var(--transition-fast), background var(--transition-fast);
}

.doc-nav-toc a span { flex: none; min-width: 18px; font: 600 12px var(--font-mono); color: var(--text-mute); padding-top: 1px; }
.doc-nav-toc a:hover { color: #fff; background: rgba(255, 255, 255, 0.03); text-decoration: none; }
.doc-nav-toc a.active { color: #fff; }
.doc-nav-toc a.active span { color: var(--accent); }

.doc-page { overflow-y: auto;  scroll-behavior: smooth; }

.doc-paper {
    position: relative;
    border-radius: 20px;
    animation: docRise 0.45s 0.1s both cubic-bezier(.2, .8, .2, 1);
}

.doc-paper::after {
    content: 'ДОКУМЕНТ ДЛЯ ВНУТРЕННЕГО ПОЛЬЗОВАНИЯ';
    position: absolute;
    top: 22px;
    right: 30px;
    padding: 3px 9px;
    border: 1px solid rgba(229, 83, 75, 0.45);
    border-radius: 4px;
    font: 700 12px var(--font-mono);
    letter-spacing: 0.16em;
    color: rgba(240, 120, 110, 0.75);
    transform: rotate(2deg);
}

.doc-hero {    background: none; }

.doc-hero > p { font-size: 16px; color: var(--text-dim); max-width: 760px; }
.doc-hero-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.doc-hero-tab { padding: 2px 9px; border-radius: 7px; background: var(--bg-3); font-size: 12px; font-weight: 700; color: var(--text-dim); }
.doc-chips { margin-top: 18px; }

/* Разделы документа без «коробок» — как статья на сайте */
.doc-rule {
    border: 0;
    border-radius: 0;
    background: none;
    scroll-margin-top: 30px;
}

.doc-rule:last-child { border-bottom: 0; }
.doc-rule.flash { box-shadow: none; }
.doc-rule.flash .doc-rule-head h2 { color: var(--accent-light); }

.doc-rule-head h2 {  }


.doc-sub {
    border: 0;
    border-radius: 0;
    background: none;
}

.doc-sub-head { margin-bottom: 10px;    }
.doc-sub-head h3 { margin: 0;  }
.doc-table-block { margin: 0 0 30px; padding: 0; border: 0; background: none; }
.doc-table-block .doc-block-tools { justify-content: flex-end; margin-bottom: 8px; }
.doc-text-line { max-width: none; }

/* ---------- Подсчёт нормы ---------- */
.norm-head,
.norm-row {
    display: grid;
    align-items: center;
    gap: 16px;
}

.norm-head {
    padding: 0 18px 8px;
    font: 700 12px var(--font-body);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-mute);
}

.norm-group { margin-bottom: 20px; }
.norm-list { display: flex; flex-direction: column; gap: 6px; }

.norm-row {
    position: relative;
    padding: 12px 18px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: var(--bg-1);
    animation: tileIn 0.3s cubic-bezier(.2, .8, .2, 1) both;
    animation-delay: calc(var(--i, 0) * 18ms);
    transition: border-color var(--transition-fast);
}

.norm-row:hover { border-color: var(--line-3); }

.norm-row::before {
    content: '';
    position: absolute;
    left: 0;
    top: 12px;
    bottom: 12px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--line-3);
}

.norm-row.ok::before { background: var(--scp-green); }
.norm-row.mid::before { background: var(--scp-yellow); }
.norm-row.low::before { background: var(--danger); }

.tr-avatar.sm { width: 38px; height: 38px; border-radius: 11px; font-size: 17px; }

.norm-progress-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 6px; font-size: 13.5px; }
.norm-progress-top b { color: #fff; }
.norm-progress-top span { font: 600 12.5px var(--font-mono); color: var(--text-dim); }
.norm-row.ok .norm-progress-top b { color: #5fe0aa; }

.norm-bar { height: 7px; border-radius: 4px; background: var(--bg-4); overflow: hidden; }
.norm-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--danger), var(--scp-orange), var(--scp-yellow), var(--scp-green)); background-size: 400% 100%; transition: width 0.6s ease; }
.norm-row.low .norm-bar i { background-position: 0 0; }
.norm-row.mid .norm-bar i { background-position: 66% 0; }
.norm-row.ok .norm-bar i { background-position: 100% 0; }

.norm-online { display: flex; gap: 6px; }

.norm-online span {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 5px 8px;
    border-radius: 9px;
    background: var(--bg-2);
    font: 600 13px var(--font-mono);
    color: #fff;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.norm-online small { font: 700 12px var(--font-body); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-mute); }

.norm-metrics { display: grid;   }

.norm-metric {
    display: flex;
    align-items: center;
    border-radius: 9px;
    background: var(--bg-2);
    color: var(--text-dim);
}

.norm-metric b { font: 500 17px var(--font-head); color: #fff; line-height: 1.15; }
.norm-metric.zero { opacity: 0.45; }
.norm-vac { font-size: 13px; color: var(--text);    }
.norm-actions { display: flex; justify-content: flex-end; }

/* ---------- Адаптив ---------- */
@media (max-width: 1500px) {
    .norm-head { display: none; }
    .norm-row { grid-template-columns: minmax(170px, 1fr) minmax(170px, 1fr) 150px 44px; }
    .norm-row .norm-metrics { grid-column: 1 / -2; }
    .norm-row .norm-vac { grid-column: -2 / -1; display: none; }
    .uchet-head { display: none; }
    .uchet-row { grid-template-columns: 26px minmax(180px, 1.4fr) minmax(150px, 1fr) 80px; }
    .uchet-row > :nth-child(5),
    .uchet-row > :nth-child(6) { grid-column: 2 / -1; }
}

@media (max-width: 1200px) {
    .page-banner { grid-template-columns: 1fr; }
    .banner-actions { justify-content: flex-start; }
    .doc-shell { grid-template-columns: 1fr; }
    .doc-nav { display: none; }
    .doc-paper { padding: 28px 24px 40px; }
    .doc-paper::after { display: none; }
    .uchet-detail-grid,
    .form-cols { grid-template-columns: 1fr; overflow: auto; }
    .req-row,
    .class-row { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
    .content::after { display: none; }
    .norm-row,
    .uchet-row { grid-template-columns: 1fr; }
    .norm-row .norm-metrics { grid-column: auto; grid-template-columns: repeat(4, 1fr); }
    .kb-list { grid-template-columns: minmax(0, 1fr); }
    .kb-tools, .kb-open { display: none; }
    .doc-page { padding: 16px 12px 60px; }
    .doc-topbar .doc-toolbar { width: 100%; margin-left: 0; }
    .req-row, .class-row { grid-template-columns: 1fr; }
}
.empty-state.big { position: relative; }
.search-box { position: relative; }
.person-picker .picker-results:empty { display: none; }
.person-picker .search-box, .access-add .search-box { flex: none; max-width: none; }



/* =============================================================
   v8 — стиль «терминала участка»: серо-графитовые панели,
   шапки-строки терминала, эмблема на фоне, всё на всю ширину
   ============================================================= */

/* ---------- Убираем прошлые украшения ---------- */
.content::after,
.content::before,
.app-shell::before,
.command-panel::after,
.doc-paper::before,
.doc-paper::after,
.empty-state.big::after,
.form-block::after,
.page-banner .banner-main::after { content: none !important; display: none !important; }

.command-eyebrow::before { animation: none; }

/* ---------- Фон: эмблема участка и линии планировки ---------- */
:root {
    --bg-0: #121215;
    --bg-1: #1b1b1f;
    --bg-2: #222227;
    --bg-3: #2a2a30;
    --term-yellow: #e2c34b;
    --emblem: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" fill="none" stroke="%23ffffff" stroke-linejoin="round"><path d="M300 40 H700 L960 300 V700 L700 960 H300 L40 700 V300 Z" stroke-width="34" stroke-opacity=".55"/><path d="M330 110 H670 L890 330 V670 L670 890 H330 L110 670 V330 Z" stroke-width="10" stroke-opacity=".35" stroke-dasharray="60 26"/><circle cx="500" cy="500" r="300" stroke-width="64" stroke-dasharray="380 91"/><circle cx="500" cy="500" r="205" stroke-width="16" stroke-opacity=".6"/><circle cx="500" cy="500" r="96" stroke-width="44"/><g stroke-width="40" stroke-linecap="square"><path d="M500 140 V250"/><path d="M500 750 V860"/><path d="M140 500 H250"/><path d="M750 500 H860"/></g><g stroke-width="14" stroke-opacity=".6"><path d="M500 404 V596"/><path d="M404 500 H596"/></g></svg>');
    --lines: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 1200" fill="none" stroke="%23ffffff" stroke-width="30" stroke-linejoin="miter"><path d="M560 0 V160 L380 340 V640 L520 780 V1200"/><path d="M440 0 V110 L250 300 V700 L400 850 V1200" stroke-width="14" stroke-opacity=".6"/><path d="M0 420 H160 L250 510" stroke-width="14" stroke-opacity=".5"/></svg>');
}



body::after {
    background:
        var(--emblem) no-repeat right -260px center / 1050px 1050px,
        var(--lines) no-repeat left calc(var(--sidebar-w, 260px) - 160px) top -40px / 420px auto,
        var(--lines) no-repeat right 40px bottom -300px / 360px auto;
    mask-image: none;
    -webkit-mask-image: none;
    animation: none;
    transform: none;
}

/* ---------- Строка терминала в шапках ---------- */
.term-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: -24px -24px 20px;
    padding: 11px 22px;
    border-bottom: 1px solid var(--line);
    text-transform: uppercase;
    color: var(--text-mute);
    position: relative;
    z-index: 1;
}

.term-bar > span { display: inline-flex; align-items: center; gap: 10px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.term-site { color: var(--term-yellow); }

.term-led {
    flex: none;
    width: 7px;
    height: 7px;
    background: #5bbf7a;
}

.command-panel {
    padding: 24px 24px 22px;
    border-radius: 6px;
    border: 1px solid var(--line-2);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.025), transparent 140px), var(--bg-1);
    box-shadow: 0 24px 60px -40px rgba(0, 0, 0, 0.9);
}

.command-panel::before { height: 2px; opacity: 0.9; }
.page-banner > .term-bar { grid-column: 1 / -1; margin-bottom: 4px; }

.command-eyebrow::before {  box-shadow: none;  }

.profile-hero { border-radius: 6px; border-color: var(--line-2); }
.profile-hero > .term-bar { margin: 0; position: relative; z-index: 2; }

.cmd-tile,
.trainee-row,
.uchet-item,
.norm-row,
.q-item,
.sheet-card,
.panel,
.card,
.filter-bar,
.dossier-panel,
.form-block,
.empty-state.big { border-radius: 6px; }

.cmd-tile { border-color: var(--line-2); background: rgba(0, 0, 0, 0.18); }
.cmd-ico { border-radius: 4px; }

/* ---------- Окна: страница на весь экран ---------- */


.modal { border-radius: 6px; }
.modal.modal-small { max-width: 520px; margin-top: 12vh; }

.modal.modal-full {
    inset: 14px;
    border-radius: 6px;
    border: 1px solid var(--line-2);
}

.modal.modal-full > .modal-term { margin: -24px -28px 18px; }

.modal.modal-sheet {
    overflow-y: auto;
    padding: 0 28px;
}

.modal.modal-sheet > .modal-term {
    position: sticky;
    top: 0;
    z-index: 5;
    margin: 0 -28px 30px;
    background: rgba(20, 20, 24, 0.94);
    backdrop-filter: blur(8px);
}

.modal.modal-sheet > .modal-x { position: fixed; top: 22px; right: 30px; z-index: 6; }

.modal.modal-sheet > *:not(.modal-term):not(.modal-x):not(.modal-actions) {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

.modal.modal-sheet > h2 { margin-top: 0; }


.modal.modal-sheet > .modal-actions {
    max-width: none;
    margin: 30px -28px 0;
    padding: 14px max(28px, calc((100% - 1100px) / 2 + 28px)) 18px;
    background: rgba(20, 20, 24, 0.96);
    backdrop-filter: blur(8px);
}

.modal.modal-sheet .form-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.modal.modal-sheet .chip-picker { gap: 10px; }
.modal.modal-sheet .chip-toggle { height: 40px; padding: 0 18px; font-size: 14px; }

/* ---------- Таблицы → строки-карточки ---------- */
.sheet-cards { display: flex; flex-direction: column; gap: 8px; }

.sheet-card {
    --role-color: var(--line-3);
    position: relative;
    display: grid;
    grid-template-columns: minmax(190px, 240px) minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px 22px;
    padding: 14px 18px 14px 20px;
    border: 1px solid var(--line);
    background: var(--bg-1);
    animation: tileIn 0.32s cubic-bezier(.2, .8, .2, 1) both;
    animation-delay: calc(var(--i, 0) * 18ms);
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.sheet-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 12px;
    bottom: 12px;
    width: 3px;
    background: var(--role-color);
}

.sheet-card:hover { border-color: var(--line-3); background: var(--bg-2); }
.muted-sheet .sheet-card { opacity: 0.75; }

.sc-head { min-width: 0; }
.sc-head .person-cell { gap: 12px; }
.sc-head .cell-strong { font-size: 15.5px; white-space: normal; overflow: visible; overflow-wrap: anywhere; }
.sc-head .avatar-xs { width: 38px; height: 38px; border-radius: 4px; display: inline-grid !important; }

.sc-fields {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px 18px;
    min-width: 0;
}

.sc-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; text-align: left !important; }

.sc-label {
    font: 600 12px var(--font-mono);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--text-mute);
}

.sc-value {
    font-size: 14px;
    color: var(--text);
    overflow-wrap: anywhere;
    white-space: normal;
}

.sc-field.mono .sc-value { font: 500 13px var(--font-mono); }
.sc-value.empty { color: var(--text-mute); }
.sc-value .cell-select { width: 100%; max-width: 220px; }
.sc-value .chip { margin: 0 4px 4px 0; }
.sc-value .status-edit { justify-content: flex-start; flex-wrap: wrap; }
.sc-value .cell-sub { font-size: 12.5px; }
.sc-actions { display: flex; gap: 8px; justify-content: flex-end; }

/* ---------- Карточки-сетки → строки на всю ширину ---------- */
.cards-grid { display: flex; flex-direction: column; gap: 10px; }

.cards-grid > .card {
    display: grid;
    grid-template-columns: minmax(200px, 1.3fr) repeat(auto-fit, minmax(140px, 1fr));
    align-items: center;
    gap: 12px 22px;
    padding: 16px 20px;
    background: var(--bg-1);
}

.cards-grid > .card::before { display: none; }
.cards-grid > .card > h3,
.cards-grid > .card > div:first-child { margin: 0 !important; }
.cards-grid > .card > .field-row { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 0; border: 0; }
.cards-grid > .card > .field-row .label { font: 600 12px var(--font-mono); letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-mute); }
.cards-grid > .card > .field-row .value { text-align: left !important; max-width: none !important; font-size: 14px; }
.cards-grid > .card > div[style*="display:flex"]:last-child,
.cards-grid > .card > button:last-child { margin-top: 0 !important; justify-self: end; }

/* ---------- Персональный статус ---------- */
.chip,
.mrp-status-chip {
    height: 26px;
    padding: 0 11px 0 9px;
    gap: 7px;
    border-radius: 4px;
    border: 1px solid color-mix(in srgb, var(--chip-color) 40%, transparent);
    background: color-mix(in srgb, var(--chip-color) 13%, rgba(0, 0, 0, 0.2));
    color: color-mix(in srgb, var(--chip-color) 55%, #fff);
    letter-spacing: 0.01em;
}

.chip::before {
    content: '';
    width: 6px;
    height: 6px;
    flex: none;
    background: var(--chip-color);
    box-shadow: 0 0 6px var(--chip-color);
}

.chip-strong::before,
.role-pill::before { display: none; }

.status-edit {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px 6px;
    border: 1px dashed transparent;
    border-radius: 4px;
    background: none;
    cursor: pointer;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.status-edit:hover { border-color: var(--line-3); background: rgba(255, 255, 255, 0.03); }
.status-edit-ico { opacity: 0.4; font-size: 12px; }
.status-edit:hover .status-edit-ico { opacity: 1; color: var(--accent); }

/* ---------- Выбор человека ---------- */
.pp-search { display: flex; gap: 8px; align-items: center; }
.pp-search .search-box { flex: 1; }
.pp-search[hidden] { display: none; }
.pp-self { flex: none; height: 42px; }
.pp-self svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; margin-right: 6px; vertical-align: -3px; }
.pp-new { padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line)); background: var(--accent-soft); border-radius: 6px; }
.pp-new[hidden] { display: none; }
.pp-new-title { margin-bottom: 10px; font-weight: 800; color: #fff; }
.picker-item.pp-add { color: var(--accent-light); font-weight: 700; justify-content: flex-start; gap: 10px; }
.pp-add-ico svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.2; }
.picker-results { display: flex; flex-direction: column; gap: 4px; }
.picker-results[hidden] { display: none; }

/* ---------- Рейтинги и кураторы ---------- */
.points-row { grid-template-columns: minmax(240px, 1.3fr) minmax(220px, 1.4fr) minmax(130px, 0.6fr) auto; }
.curator-row { grid-template-columns: minmax(230px, 1.4fr) 120px auto minmax(150px, 0.8fr) auto; }
.rank-num.big { min-width: 34px; height: 34px; font-size: 14px; border-radius: 4px; }
.trainee-list .points-row:nth-child(1) .rank-num { background: rgba(236, 213, 71, 0.18); color: #ecd547; }
.trainee-list .points-row:nth-child(2) .rank-num { background: rgba(200, 200, 215, 0.15); color: #dcdce6; }
.trainee-list .points-row:nth-child(3) .rank-num { background: rgba(242, 153, 74, 0.18); color: #f2994a; }
.points-bar i { background: var(--accent-grad) !important; }
.points-min { font: 600 14px var(--font-mono); color: #fff; }
.rules-strip { margin-bottom: 14px; }

/* ---------- Полезная информация: документ ---------- */
.doc-topbar-title { font: 500 20px var(--font-head); letter-spacing: 0.06em; text-transform: uppercase; color: #fff; }

.doc-tabline {
    flex: none;
    display: flex;
    gap: 0;
    padding: 0;
    margin: 0;
    border-bottom: 1px solid var(--line-2);
    background: rgba(0, 0, 0, 0.3);
    overflow-x: auto;
}

.doc-tabline-btn {
    flex: 1 1 0;
    min-width: 150px;
    height: 50px;
    padding: 0 18px;
    border: 0;
    border-right: 1px solid var(--line);
    background: transparent;
    color: var(--text-dim);
    font: 700 13px var(--font-body);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    position: relative;
    transition: color var(--transition-fast), background var(--transition-fast);
}

.doc-tabline-btn:last-child { border-right: 0; }
.doc-tabline-btn:hover { color: #fff; background: rgba(255, 255, 255, 0.03); }
.doc-tabline-btn.active { color: #fff; background: linear-gradient(180deg, transparent, var(--accent-soft)); }

.doc-tabline-btn.active::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    background: var(--accent);
    box-shadow: 0 0 12px var(--accent-glow);
}



.doc-topbar { background: rgba(18, 18, 21, 0.92); }

.doc-nav { background: rgba(0, 0, 0, 0.25); }
.doc-nav-empty { padding: 6px 10px; font-size: 13.5px; color: var(--text-mute); }

.doc-nav-toc { margin: 0; padding-left: 0; border-left: 0; }

.doc-nav-toc a {
    position: relative;
    padding: 9px 12px 9px 14px;
    border-left: 2px solid var(--line);
    border-radius: 0;
    font-size: 14px;
}

.doc-nav-toc a.active { border-left-color: var(--accent); background: linear-gradient(90deg, var(--accent-soft), transparent); }



.doc-paper {
    max-width: 1120px;
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
}

.doc-hero { padding: 0 0 26px; margin-bottom: 34px; border-bottom: 1px solid var(--line-2); }
.doc-hero h1 { font-size: 52px; letter-spacing: 0.03em; margin: 12px 0 0; }
.doc-hero-count { font: 600 12px var(--font-mono);  text-transform: uppercase;  }

/* Пункты документа: заголовок с номером, живой текст */
.doc-rule { padding: 0 0 34px; margin: 0 0 36px; border-bottom: 1px dashed var(--line-2); }
.doc-rule-head { gap: 16px; margin-bottom: 18px; }

.doc-rule-head h2 {
    position: relative;
    padding-bottom: 8px;
}

.doc-rule-head h2::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 56px;
    height: 2px;
    background: var(--accent);
    transition: width 0.6s cubic-bezier(.2, .8, .2, 1);
}

.doc-rule:hover .doc-rule-head h2::after,
.doc-rule.in .doc-rule-head h2::after { width: 120px; }

.doc-num {
    min-width: 54px;
    height: 38px;
    border-radius: 4px;
    font-size: 15px;
    box-shadow: 0 8px 22px -12px var(--accent-glow);
}

.doc-rule-body { gap: 14px; }

.doc-text {
    padding-left: 22px;
    font-size: 16.5px;
    line-height: 1.85;
}

.doc-text::before {
    content: '';
    position: absolute;
    left: 2px;
    top: 0.78em;
    width: 7px;
    height: 7px;
    border: 2px solid var(--accent);
    transform: rotate(45deg);
    opacity: 0.8;
}

.doc-text.note { padding: 14px 44px 14px 20px; font-style: normal; color: var(--text); border-radius: 4px; }
.doc-text.note::before { display: none; }
.doc-text.note .doc-text-line::before {  display: block; margin-bottom: 4px;   color: var(--warn); }

.doc-sub { margin-top: 26px; padding: 4px 0 4px 22px; border-left: 2px solid color-mix(in srgb, var(--accent) 45%, var(--line)); }
.doc-sub-head h3 { font-size: 21px; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity 0.55s ease, transform 0.55s cubic-bezier(.2, .8, .2, 1); }
.reveal.in { opacity: 1; transform: none; }

/* Таблицы в документе */
.info-table-wrap {
    border-radius: 6px;
    border: 1px solid var(--line-2);
    background: var(--bg-1);
    box-shadow: 0 20px 50px -36px rgba(0, 0, 0, 0.9);
}

.info-table th {
    padding: 15px 18px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 14%, var(--bg-2)), var(--bg-2));
    border-bottom: 2px solid color-mix(in srgb, var(--accent) 55%, transparent);
    font: 700 12px var(--font-mono);
    color: #fff;
}

.info-table td,
.info-table-cell { padding: 15px 18px; font-size: 15px; border-right: 1px solid var(--line); }
.info-table td:last-child { border-right: 0; }
.info-table tbody tr:nth-child(even) td { background: rgba(255, 255, 255, 0.02); }
.info-table tbody tr:hover td { background: var(--accent-soft); }
.info-table td:first-child { font-weight: 700; color: #fff; }

/* ---------- Список разделов ---------- */

.kb-num { font: 600 22px var(--font-mono); }

/* ---------- Адаптив ---------- */
@media (max-width: 1300px) {
    .sheet-card { grid-template-columns: 1fr; }
    .sc-actions { justify-content: flex-start; }
    .points-row,
    .curator-row { grid-template-columns: 1fr 1fr; }
    .cards-grid > .card { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
    .term-bar .term-site { display: none; }
    .doc-page { padding: 20px 14px 60px; }
    .doc-hero h1 { font-size: 34px; }
    .doc-tabline-btn { min-width: 120px; }
    .modal.modal-sheet { padding: 0 14px; }
    .points-row,
    .curator-row,
    .cards-grid > .card { grid-template-columns: 1fr; }
}

/* правки v8 */
.modal.modal-sheet > select,
.modal.modal-sheet > input,
.modal.modal-sheet > textarea,
.modal.modal-sheet > label,
.modal.modal-sheet > p { display: block; width: 100%; }
.modal.modal-sheet > .modal-actions { display: flex;  }
.modal-term { padding-right: 76px; }
.cards-grid { width: 100%; max-width: none; }
.cards-grid > .card { width: 100%; }
.cards-grid > .card > div[style*="display:flex"]:last-child,
.cards-grid > .card > div[style*="display: flex"]:last-child {
    grid-column: 1 / -1;
    justify-self: end;
    flex-wrap: nowrap !important;
}
.norm-head,
.norm-row { grid-template-columns: minmax(170px, 1fr) minmax(170px, 1fr) 140px minmax(420px, 2.6fr) minmax(90px, 0.6fr) 44px; }
.norm-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.norm-metric { flex-direction: row; justify-content: space-between; gap: 6px; padding: 4px 9px; font-size: 12px; white-space: normal; text-align: left; }
.norm-metric b {  order: 2; }
@media (max-width: 1500px) {
    .norm-row { grid-template-columns: minmax(170px, 1fr) minmax(170px, 1fr) 140px 44px; }
}
.uchet-ids span,
.person-cell .cell-strong,
.tr-name strong,
.tr-name span { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.modal.modal-sheet { display: flex; flex-direction: column; }
.modal.modal-sheet > * { flex: none; width: 100%; }

.modal.modal-sheet > .modal-actions { margin-top: auto !important; width: auto; position: sticky; bottom: 0; }
.modal.modal-sheet > .modal-actions + .modal-error,
.modal.modal-sheet > .modal-error { order: 50; }
.modal.modal-sheet > .modal-actions { order: 99; }
.modal.modal-sheet > .modal-term { width: auto; align-self: stretch; }
.modal.modal-sheet > .modal-x { width: 36px; height: 36px; padding: 0; }

/* =============================================================
   v9 — фон «схема участка», идентификаторы, отступы, документ
   ============================================================= */
body::after {
    background-image:url('data:image/svg+xml,<svg opacity=".07" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" fill="none" stroke="%23ffffff" stroke-linejoin="round"><path d="M300 40 H700 L960 300 V700 L700 960 H300 L40 700 V300 Z" stroke-width="34" stroke-opacity=".55"/><path d="M330 110 H670 L890 330 V670 L670 890 H330 L110 670 V330 Z" stroke-width="10" stroke-opacity=".35" stroke-dasharray="60 26"/><circle cx="500" cy="500" r="300" stroke-width="64" stroke-dasharray="380 91"/><circle cx="500" cy="500" r="205" stroke-width="16" stroke-opacity=".6"/><circle cx="500" cy="500" r="96" stroke-width="44"/><g stroke-width="40" stroke-linecap="square"><path d="M500 140 V250"/><path d="M500 750 V860"/><path d="M140 500 H250"/><path d="M750 500 H860"/></g><g stroke-width="14" stroke-opacity=".6"><path d="M500 404 V596"/><path d="M404 500 H596"/></g></svg>'),
        url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 560 380" opacity=".085" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"><defs><pattern id="h" width="8" height="8" patternUnits="userSpaceOnUse" patternTransform="rotate%2845%29"><path d="M0 0V8" stroke="%23ffffff" stroke-width="1.4"/></pattern></defs><path d="M10 10H550V370H10Z" stroke-width="5"/><path d="M10 150H210M260 150H550M200 10V100M200 125V370M380 150V250M380 280V370M200 260H330M360 260H550" stroke-width="3"/><rect x="30" y="170" width="150" height="180" fill="url%28%23h%29" stroke-width="1.5"/><rect x="60" y="210" width="90" height="100" stroke-width="3" fill="%23121215"/><path d="M230 60H520" stroke-width="1.5" stroke-dasharray="6 6"/><path d="M230 200H360M300 160V250" stroke-width="1" stroke-dasharray="3 5"/><circle cx="465" cy="80" r="26" stroke-width="2"/><path d="M465 54V106M439 80H491" stroke-width="1"/><g fill="%23ffffff" stroke="none"><text x="22" y="34">%D0%A1%D0%95%D0%9A%D0%A2%D0%9E%D0%A0 %D0%91-2</text><text x="78" y="265">%D0%9A%D0%90%D0%9C%D0%95%D0%A0%D0%90</text><text x="88" y="281">017</text><text x="222" y="34">%D0%9A%D0%9E%D0%A0%D0%98%D0%94%D0%9E%D0%A0 4</text><text x="222" y="186">%D0%A8%D0%9B%D0%AE%D0%97</text><text x="400" y="190">%D0%9F%D0%9E%D0%A1%D0%A2 %D0%9E%D0%A5%D0%A0%D0%90%D0%9D%D0%AB</text><text x="400" y="300">%D0%90%D0%A0%D0%A5%D0%98%D0%92</text><text x="222" y="300">%D0%9B%D0%90%D0%91. 3</text><text x="22" y="140">%D0%94%D0%9E%D0%9F%D0%A3%D0%A1%D0%9A 3%2B</text></g><path d="M510 330l20 20M530 330l-20 20" stroke-width="2"/></svg>');
    background-repeat:no-repeat, no-repeat;
    background-position:right 70px center,
        left calc(var(--sidebar-w) + 34px) bottom 30px;
    background-size:min(66vh, 660px) min(66vh, 660px),
        520px 353px;
}

/* Окна и документ — та же схема, но тише */


.modal.modal-full {
    background:
        url('data:image/svg+xml,<svg opacity=".07" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" fill="none" stroke="%23ffffff" stroke-linejoin="round"><path d="M300 40 H700 L960 300 V700 L700 960 H300 L40 700 V300 Z" stroke-width="34" stroke-opacity=".55"/><path d="M330 110 H670 L890 330 V670 L670 890 H330 L110 670 V330 Z" stroke-width="10" stroke-opacity=".35" stroke-dasharray="60 26"/><circle cx="500" cy="500" r="300" stroke-width="64" stroke-dasharray="380 91"/><circle cx="500" cy="500" r="205" stroke-width="16" stroke-opacity=".6"/><circle cx="500" cy="500" r="96" stroke-width="44"/><g stroke-width="40" stroke-linecap="square"><path d="M500 140 V250"/><path d="M500 750 V860"/><path d="M140 500 H250"/><path d="M750 500 H860"/></g><g stroke-width="14" stroke-opacity=".6"><path d="M500 404 V596"/><path d="M404 500 H596"/></g></svg>') no-repeat right 40px bottom 40px / 520px 520px,
        url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 64" opacity=".14" fill="%23ffffff" font-family="monospace" font-size="10" letter-spacing="3"><rect x="5" y="0" width="1" height="46"/><rect x="7" y="0" width="2" height="46"/><rect x="11" y="0" width="1" height="46"/><rect x="15" y="0" width="1" height="46"/><rect x="23" y="0" width="3" height="46"/><rect x="28" y="0" width="1" height="46"/><rect x="31" y="0" width="2" height="46"/><rect x="34" y="0" width="2" height="46"/><rect x="38" y="0" width="1" height="46"/><rect x="41" y="0" width="2" height="46"/><rect x="54" y="0" width="3" height="46"/><rect x="62" y="0" width="1" height="46"/><rect x="70" y="0" width="1" height="46"/><rect x="77" y="0" width="3" height="46"/><rect x="81" y="0" width="2" height="46"/><rect x="85" y="0" width="3" height="46"/><rect x="101" y="0" width="3" height="46"/><rect x="107" y="0" width="2" height="46"/><rect x="112" y="0" width="2" height="46"/><rect x="115" y="0" width="3" height="46"/><rect x="130" y="0" width="1" height="46"/><rect x="148" y="0" width="1" height="46"/><rect x="151" y="0" width="1" height="46"/><rect x="154" y="0" width="2" height="46"/><rect x="158" y="0" width="3" height="46"/><rect x="171" y="0" width="3" height="46"/><rect x="179" y="0" width="1" height="46"/><rect x="182" y="0" width="3" height="46"/><rect x="187" y="0" width="1" height="46"/><rect x="199" y="0" width="2" height="46"/><rect x="208" y="0" width="3" height="46"/><rect x="212" y="0" width="1" height="46"/><rect x="215" y="0" width="2" height="46"/><rect x="219" y="0" width="1" height="46"/><text x="0" y="60">FLX-02-0417-MRP</text></svg>') no-repeat left 28px bottom 24px / 160px 46px,
        linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 200px),
        var(--bg-1);
}



/* Убираем правую часть строки терминала и лишние пояснения */
.term-site { display: none !important; }
.banner-sub { display: none; }

/* ---------- Отступы и кнопки ---------- */
.btn-primary,
.btn-outline,
.btn-ghost,
.btn-danger,
.btn-danger-ghost,
.btn-details {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
}

.btn-primary svg,
.btn-outline svg,
.btn-ghost svg,
.btn-danger-ghost svg,
.btn-details svg { margin: 0 !important; flex: none; }

.btn-primary,
.btn-outline,
.btn-ghost,
.btn-danger,
.btn-danger-ghost { padding-left: 18px; padding-right: 18px; }
.btn-sm { padding-left: 13px !important; padding-right: 13px !important; }
.action-bar { gap: 10px; }
.tb-btn { gap: 8px; padding: 0 13px; }
.list-head { margin-bottom: 18px; }
.trainee-list,
.sheet-cards { gap: 10px; }
.field-row { padding: 12px 0; }

/* ---------- Идентификаторы ---------- */
.id-badge {
    --id-color: #8aa1b1;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    max-width: 100%;
    height: 28px;
    padding: 0 10px 0 8px;
    border: 1px solid color-mix(in srgb, var(--id-color) 38%, transparent);
    border-radius: 4px;
    background: color-mix(in srgb, var(--id-color) 10%, rgba(0, 0, 0, 0.25));
    color: #fff;
    font: 500 13px var(--font-mono);
    cursor: pointer;
    vertical-align: middle;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.id-badge svg { flex: none; width: 15px; height: 15px; fill: none; stroke: var(--id-color); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.id-badge span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.id-badge:hover { border-color: var(--id-color); background: color-mix(in srgb, var(--id-color) 20%, rgba(0, 0, 0, 0.25)); }
.id-badge.discord { --id-color: #8c9cff; }
.id-badge.steam { --id-color: #6fb6ff; }
.id-badge.mail { --id-color: #ecd547; }
.id-badge.empty { cursor: default; color: var(--text-mute); border-style: dashed; font-family: var(--font-body); }
.id-badge.static { cursor: default; height: 24px; font-size: 12px; padding: 0 8px; }
.uchet-ids { flex-direction: row; flex-wrap: wrap; gap: 6px; }
.pi-ids { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }

.id-tiles { display: grid; gap: 10px; margin-top: 4px; }

.id-tile {
    --id-color: #8aa1b1;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-left: 3px solid var(--id-color);
    border-radius: 4px;
    background: var(--bg-2);
}

.id-tile.discord { --id-color: #8c9cff; }
.id-tile.steam { --id-color: #6fb6ff; }
.id-tile.mail { --id-color: #ecd547; }

.id-tile-ico {
    flex: none;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 4px;
    background: color-mix(in srgb, var(--id-color) 14%, transparent);
}

.id-tile-ico svg { width: 20px; height: 20px; fill: none; stroke: var(--id-color); stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.id-tile-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.id-tile-text small { font: 600 12px var(--font-mono); letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-mute); }
.id-tile-text b { font-size: 15px; color: #fff; overflow-wrap: anywhere; }
.id-tile-text .btn-outline { align-self: flex-start; margin-top: 2px; }

.kv b .id-badge { margin-top: 2px; }

/* ---------- Документ: вкладки и заголовки справа ---------- */
.doc-shell { grid-template-columns: minmax(0, 1fr) 320px; }

.doc-side {
    border-right: 0;
    border-left: 1px solid var(--line);
    padding: 26px 18px 30px;
    display: flex;
    flex-direction: column;
    gap: 26px;
    background: rgba(0, 0, 0, 0.28);
}

.doc-side-block .doc-nav-title { margin-bottom: 10px; }
.doc-side-tabs { display: flex; flex-direction: column; gap: 4px; }

.doc-side-tab {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid transparent;
    border-radius: 4px;
    background: transparent;
    color: var(--text-dim);
    font: 700 14.5px var(--font-body);
    text-align: left;
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.doc-side-tab svg { flex: none; width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.doc-side-tab span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.doc-side-tab:hover { color: #fff; background: rgba(255, 255, 255, 0.04); }
.doc-side-tab.active { color: #fff; border-color: color-mix(in srgb, var(--accent) 45%, transparent); background: var(--accent-soft); }
.doc-side-tab.active svg { stroke: var(--accent); }

.doc-page { padding: 44px 64px 110px; }
.doc-paper { margin: 0 auto; }

@media (max-width: 1200px) {
    .doc-shell { grid-template-columns: 1fr; }
    .doc-side { display: flex; order: -1; border-left: 0; border-bottom: 1px solid var(--line); padding: 14px; gap: 12px; }
    .doc-side .doc-side-block:last-child { display: none; }
    .doc-side-tabs { flex-direction: row; overflow-x: auto; }
    .doc-side-tab { width: auto; white-space: nowrap; }
}

@media (max-width: 1400px) {
    body::after { background-size:min(56vh, 520px) min(56vh, 520px), 0 0; }
}

/* ═══════════════════════ v10 ═══════════════════════ */

/* ── Ссылки в тексте ── */
.rt-link { color: var(--accent-light); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--accent) 55%, transparent); text-underline-offset: 3px; transition: color var(--transition-fast); }
.rt-link:hover { color: #fff; text-decoration-color: var(--accent); }
.rich-area a { color: var(--accent-light); text-decoration: underline; }

/* Свой цвет в палитре */

.rich-custom { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; margin-top: 4px; padding-top: 8px; border-top: 1px solid var(--line); font-size: 12px; color: var(--text-dim); cursor: pointer; }
.rich-custom input[type=color] { width: 28px; height: 24px; padding: 0; border: 1px solid var(--line-2); border-radius: 6px; background: none; cursor: pointer; }
.rich-custom input[type=color]::-webkit-color-swatch-wrapper { padding: 2px; }
.rich-custom input[type=color]::-webkit-color-swatch { border: none; border-radius: 4px; }

/* ── Медиа в документе: галерея, гифки, видео, YouTube ── */
.info-text-media { display: grid; gap: 12px; margin-top: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.info-text-media.media-count-1 { grid-template-columns: minmax(0, min(100%, 760px)); }
.info-text-media.media-count-2 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.info-media-item { max-width: none; margin: 0; padding: 0; overflow: hidden; border: 1px solid var(--line-2); border-radius: 12px; background: var(--bg-1); }
.info-media-item:hover { border-color: color-mix(in srgb, var(--accent) 55%, transparent); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35); }
.info-media-item img, .info-media-item video { width: 100%; max-height: 460px; border-radius: 0; object-fit: contain; background: #050507; }
.info-media-name { padding: 8px 12px; font: 12px var(--font-mono); color: var(--text-mute); border-top: 1px solid var(--line); }
.media-zoom { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; line-height: 0; }
.media-zoom img { transition: transform 0.4s ease; }
.media-zoom:hover img { transform: scale(1.015); }
.media-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #000; }
.media-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.media-yt-mark { position: absolute; inset: 0; display: grid; place-items: center; font-size: 22px; color: #fff; text-shadow: 0 2px 10px #000; pointer-events: none; }
.info-media-preview img, .info-media-preview video { width: 100%; height: 100%; object-fit: cover; }
.cell-media { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 6px; margin-top: 8px; }
.cell-media .info-media-item { border-radius: 8px; }
.cell-media .info-media-item img, .cell-media .info-media-item video { max-height: 200px; }

/* Просмотр картинки на весь экран */
.lightbox { position: fixed; inset: 0; z-index: 4000; display: grid; place-items: center; padding: 40px 70px; background: rgba(4, 4, 6, 0.92); backdrop-filter: blur(6px); animation: fadeIn 0.18s ease; cursor: zoom-out; }
.lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6); cursor: default; }
.lb-close, .lb-nav { position: absolute; display: grid; place-items: center; border: 1px solid var(--line-3); border-radius: 50%; background: rgba(20, 20, 26, 0.8); color: #fff; cursor: pointer; transition: background var(--transition-fast); }
.lb-close { top: 18px; right: 18px; width: 42px; height: 42px; font-size: 16px; }
.lb-nav { top: 50%; width: 48px; height: 48px; margin-top: -24px; font-size: 28px; line-height: 1; }
.lb-nav.prev { left: 14px; } .lb-nav.next { right: 14px; }
.lb-close:hover, .lb-nav:hover { background: var(--accent); color: var(--accent-ink); }
.lb-count { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); font: 13px var(--font-mono); color: var(--text-dim); }

/* Вложение по ссылке */
.amu-preview { min-height: 90px; margin-top: 12px; padding: 12px; border: 1px dashed var(--line-2); border-radius: 12px; display: grid; place-items: center; }
.amu-preview .info-text-media { width: 100%; margin: 0; grid-template-columns: 1fr; }

/* ── Ячейки таблицы с цветом ── */
.info-table-cell.has-bg, .info-table-editor td.tcell.has-bg { background: color-mix(in srgb, var(--cell-bg) 80%, transparent); }
.info-table-cell[style*="color"] .cell-text, .info-table-cell[style*="color"] a { color: inherit; }
.cell-palette { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-1); }
.cell-palette .rich-swatch.active { border-color: #fff; box-shadow: 0 0 0 2px var(--accent); }
.cell-palette .rich-custom { grid-column: auto; margin: 0 0 0 auto; padding: 0; border: 0; }
.acc-preview { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-1); }
.acc-preview span { display: inline-block; padding: 10px 14px; border-radius: 8px; border: 1px solid var(--line-2); }

/* ── Номера пунктов и копирование пункта ── */
.num-title-grid { grid-template-columns: 150px minmax(0, 1fr) !important; align-items: end; }
.num-field input { font-family: var(--font-mono); text-align: center; }
.info-child-num { flex: 0 0 76px !important; width: 76px !important; font-family: var(--font-mono); text-align: center; }
.doc-copy-all { display: inline-flex; align-items: center; gap: 6px; height: 30px; margin-left: auto; padding: 0 12px; border: 1px solid var(--line-2); border-radius: 8px; background: var(--bg-2); color: var(--text-mute); font: 600 12px var(--font-body); cursor: pointer; opacity: 0; transition: opacity var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast); }
.doc-copy-all svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; }
.doc-copy-all.sm { width: 30px; padding: 0; justify-content: center; }
.doc-rule-head:hover .doc-copy-all, .doc-sub-head:hover .doc-copy-all, .doc-copy-all:focus-visible { opacity: 1; }
.doc-copy-all:hover { color: var(--accent-light); border-color: var(--accent); }
.doc-sub-head { display: flex; align-items: center; gap: 12px; }
@media (hover: none) { .doc-copy-all, .doc-copy { opacity: 1; } }

/* ── Черновики ── */
.draft-hint { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; padding: 9px 14px; border: 1px solid color-mix(in srgb, var(--scp-yellow) 40%, transparent); border-radius: 10px; background: rgba(236, 213, 71, 0.08); color: var(--scp-yellow); font-size: 13px; }
.draft-hint .draft-clear { margin-left: auto; padding: 4px 10px; border: 1px solid var(--line-2); border-radius: 7px; background: none; color: var(--text-dim); cursor: pointer; }
.draft-hint .draft-clear:hover { color: #fff; border-color: var(--line-3); }
.draft-restored { box-shadow: inset 3px 0 0 var(--scp-yellow) !important; }

/* ── Импорт карт ── */
.import-steps { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-bottom: 16px; }
.import-step { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-1); font-size: 13.5px; line-height: 1.5; color: var(--text-dim); }
.import-step b { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--accent-soft); color: var(--accent-light); font: 600 14px var(--font-head); }
.import-step i { color: var(--text-hi); font-style: normal; font-weight: 600; }
.import-drop { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 18px; border: 1.5px dashed var(--line-3); border-radius: 14px; background: rgba(255, 255, 255, 0.015); transition: border-color var(--transition-fast), background var(--transition-fast); }
.import-drop.over { border-color: var(--accent); background: var(--accent-soft); }
.import-drop textarea { flex: 1 1 100%; min-height: 44px; resize: vertical; font-family: var(--font-mono); font-size: 12px; }
.imp-cards { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.imp-card-col { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-1); }
.imp-card-col .mono { flex: none; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; background: var(--bg-3); color: var(--text-hi); font-weight: 600; }
.imp-card-col select { flex: 1; min-width: 0; }
.imp-preview { display: grid; gap: 6px; max-height: 360px; overflow: auto; padding-right: 4px; }
.imp-person { display: grid; grid-template-columns: minmax(0, 1.2fr) auto minmax(0, 1fr); align-items: center; gap: 14px; padding: 9px 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-1); }
.imp-name { font-weight: 700; color: var(--text-hi); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.imp-count { justify-self: end; color: var(--text-dim); font-size: 13px; }
.imp-result { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-top: 14px; }
.imp-result > div { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border: 1px solid var(--line-2); border-radius: 12px; background: var(--bg-1); }
.imp-result b { font: 500 26px var(--font-head); color: #fff; }
.imp-result span { font-size: 12.5px; color: var(--text-dim); }
.imp-result.done > div { border-color: color-mix(in srgb, var(--success) 45%, transparent); }
.imp-errors { margin-top: 10px; padding: 12px 14px; border-radius: 10px; background: var(--danger-soft); color: var(--danger-light); font: 12.5px/1.6 var(--font-mono); max-height: 200px; overflow: auto; }
.factor-summary { color: var(--text-dim); font-size: 13px; margin-right: auto; }

/* ── Кураторка отдела ── */
.tr-count.ok b { color: var(--success); }
.status-badge.success { background: var(--success-soft); color: var(--success); border-color: color-mix(in srgb, var(--success) 40%, transparent); }
.dk-reqs { display: grid; gap: 6px; margin: 4px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--text-dim); }
.dk-reqs li { position: relative; padding-left: 22px; line-height: 1.45; }
.dk-reqs li::before { content: ''; position: absolute; left: 2px; top: 4px; width: 11px; height: 11px; border: 1.5px solid var(--line-3); border-radius: 50%; }
.dk-reqs li.ok { color: var(--text); }
.dk-reqs li.ok::before { border-color: var(--success); background: var(--success); box-shadow: inset 0 0 0 2px var(--bg-2); }
.dk-reqs li.dk-note::before { border-radius: 2px; border-color: var(--accent); }
.rec-details { margin-top: 6px; font-size: 13px; line-height: 1.5; color: var(--text-dim); white-space: pre-wrap; }
.settings-block { display: grid; gap: 14px; margin-bottom: 18px; padding: 20px 22px; border: 1px solid var(--line); border-radius: 16px; background: var(--bg-2); }
.settings-block > header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.settings-block > header h3 { margin: 0; font: 500 18px var(--font-head); letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-hi); }
.settings-block > header span { font-size: 13px; color: var(--text-mute); }
.settings-block > .btn-sm { justify-self: start; }
.dk-levels { display: grid; gap: 10px; }
.dk-level { display: grid; grid-template-columns: 34px minmax(160px, 1.3fr) repeat(4, minmax(92px, 0.6fr)) minmax(180px, 2fr) auto; align-items: end; gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 12px; background: var(--bg-1); animation: rowIn 0.3s ease both; animation-delay: calc(var(--i, 0) * 30ms); }
.dk-level .form-field { margin: 0; min-width: 0; }
.dk-level .form-field label { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dk-level-num { align-self: center; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--accent-soft); color: var(--accent-light); font: 600 14px var(--font-head); }
.dk-level-tools { display: flex; gap: 4px; padding-bottom: 4px; }
.chip-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.chip-row .chip { display: inline-flex; align-items: center; gap: 6px; }
.chip-btn { padding: 7px 12px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--bg-1); color: var(--text); font-size: 13px; cursor: pointer; transition: border-color var(--transition-fast), color var(--transition-fast); }
.chip-btn:hover { border-color: var(--accent); color: var(--accent-light); }
.inline-add { display: flex; gap: 10px; }
.inline-add input { flex: 1; min-width: 0; }
.q-edit-list { display: grid; gap: 10px; margin-bottom: 10px; }
.q-edit { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-1); }
.q-edit-num { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--bg-3); color: var(--text-hi); font: 600 14px var(--font-head); }
.q-edit-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.q-edit-fields textarea { margin: 0; resize: vertical; }
.q-edit-tools { display: flex; flex-direction: column; gap: 4px; }
.q-row .tr-avatar.ph svg { width: 20px; height: 20px; fill: none; stroke: var(--accent-light); stroke-width: 1.8; }
@media (max-width: 1100px) {
    .dk-level { grid-template-columns: 34px 1fr 1fr; }
    .dk-level .form-field.grow { grid-column: 2 / -1; }
    .dk-level-tools { grid-column: 2 / -1; }
}
@media (max-width: 720px) {
    .q-edit-fields { grid-template-columns: 1fr; }
    .num-title-grid { grid-template-columns: 1fr !important; }
    .imp-person { grid-template-columns: 1fr; }
    .imp-count { justify-self: start; }
    .lightbox { padding: 60px 12px; }
}
#modal-root { position: relative; z-index: 1200; }
#toast-container { z-index: 5000; }

/* ═══════════════════════ v11 · Анкеты ═══════════════════════ */
.ak-run-overlay, .ak-sheet { --akc: var(--ak, var(--accent)); --akc-soft: var(--ak-soft, var(--accent-soft)); --akc-line: var(--ak-line, color-mix(in srgb, var(--accent) 45%, transparent)); }
#ak-body { --akc: var(--accent); --akc-soft: var(--accent-soft); --akc-line: color-mix(in srgb, var(--accent) 45%, transparent); }

/* Виды анкет */
.ak-templates { display: grid; gap: 14px;  }
.ak-tpl { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 20px 22px 16px; border: 1px solid var(--line-2); border-radius: 16px; background: linear-gradient(160deg, var(--bg-2), var(--bg-1)); overflow: hidden; animation: rowIn 0.35s ease both; animation-delay: calc(var(--i, 0) * 40ms); transition: border-color var(--transition-fast), transform var(--transition-fast); }
.ak-tpl::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--akc); }
.ak-tpl::after { content: 'FORM'; position: absolute; top: 14px; right: 18px; font: 600 12px var(--font-mono); letter-spacing: 0.3em; color: var(--text-mute); opacity: 0.5; }
.ak-tpl:hover { border-color: var(--akc-line); transform: translateY(-1px); }
.ak-tpl-head { display: flex; gap: 14px; align-items: flex-start; }
.ak-tpl-ico { flex: none; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: var(--akc-soft); color: var(--akc); }
.ak-tpl-ico svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.ak-tpl-title { min-width: 0; padding-right: 40px; }
.ak-tpl-title h3 { margin: 0; font: 600 17px/1.3 var(--font-body); color: var(--text-hi); overflow-wrap: anywhere; }
.ak-tpl-title p { margin: 4px 0 0; font-size: 13px; color: var(--text-dim); line-height: 1.45; }
.ak-tpl-stats { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.ak-tpl-stats span { display: inline-flex; align-items: baseline; gap: 6px; font-size: 12.5px; color: var(--text-mute); }
.ak-tpl-stats b { font: 600 17px var(--font-mono); color: var(--text-hi); font-variant-numeric: tabular-nums; }
.ak-tpl-sections { display: flex; flex-wrap: wrap; gap: 6px; }
.ak-chip { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; padding: 4px 10px 4px 4px; border: 1px solid var(--line-2); border-radius: 999px; font-size: 12.5px; color: var(--text); background: var(--bg-1); }
.ak-chip i { flex: none; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: var(--akc-soft); color: var(--akc); font: 600 12px var(--font-mono); font-style: normal; }
.ak-tpl-foot { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 12px; border-top: 1px dashed var(--line-2); }
.ak-tpl-foot .muted { margin-right: auto; font-size: 12.5px; }
.ak-tpl-foot svg, .ak-run-sheet svg, .ak-toolbar svg, .ak-finish svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; }
.list-head .action-bar svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Проведённые */
.ak-runs { display: grid; gap: 8px; }
.ak-run { position: relative; display: grid; grid-template-columns: minmax(200px, 1.3fr) minmax(0, 2fr) 88px minmax(150px, 0.8fr) 24px; align-items: center; gap: 18px; padding: 14px 18px; border: 1px solid var(--line); border-left: 3px solid var(--line-3); border-radius: 12px; background: var(--bg-2); cursor: pointer; animation: rowIn 0.3s ease both; animation-delay: calc(var(--i, 0) * 25ms); transition: border-color var(--transition-fast), background var(--transition-fast); }
.ak-run:hover { background: var(--bg-3); border-color: var(--line-2); }
.ak-run.active { border-left-color: var(--akc); }
.ak-run.passed { border-left-color: var(--success); }
.ak-run.failed { border-left-color: var(--danger); }
.ak-run-person { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ak-run-person .tr-name span { overflow-wrap: anywhere; }
.ak-run-people { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ak-run-people span { display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; color: var(--text); min-width: 0; overflow-wrap: anywhere; }
.ak-run-people small { font: 500 12px var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-mute); }
.ak-run-people em, .ak-info em, .ak-answer-text em, .ak-correct em { color: var(--text-mute); font-style: normal; }
.ak-run-score { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 52px; border-radius: 12px; background: var(--bg-1); border: 1px solid var(--line); }
.ak-run-score b { font: 600 20px var(--font-mono); font-variant-numeric: tabular-nums; color: var(--text-hi); line-height: 1.1; }
.ak-run-score small { font-size: 12px; color: var(--text-mute); }
.ak-run-score.hi b { color: var(--success); } .ak-run-score.mid b { color: var(--scp-yellow); } .ak-run-score.lo b { color: var(--danger-light); }
.ak-run-state { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.ak-run-state small { font-size: 12px; color: var(--text-mute); }
.ak-run-open svg { width: 18px; height: 18px; fill: none; stroke: var(--text-mute); stroke-width: 2; }
.ak-status { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; border: 1px solid transparent; white-space: nowrap; }
.ak-status.pass { color: var(--success); background: var(--success-soft); border-color: color-mix(in srgb, var(--success) 35%, transparent); }
.ak-status.fail { color: var(--danger-light); background: var(--danger-soft); border-color: color-mix(in srgb, var(--danger) 35%, transparent); }
.ak-status.live { color: var(--akc, var(--accent)); background: var(--akc-soft, var(--accent-soft)); border-color: var(--akc-line, var(--line-2)); }
.ak-status.live i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; animation: termBlink 1.6s infinite; }
@keyframes termBlink { 50% { opacity: 0.25; } }

/* Выбор вида анкеты */
.ak-pick { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.ak-pick-opt { display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; text-align: left; border: 1px solid var(--line-2); border-radius: 12px; background: var(--bg-1); color: var(--text); cursor: pointer; transition: border-color var(--transition-fast), background var(--transition-fast); }
.ak-pick-opt b { font-size: 14.5px; color: var(--text-hi); }
.ak-pick-opt span { font-size: 12.5px; color: var(--text-mute); }
.ak-pick-opt.active { border-color: var(--accent); background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); }
.ak-helpers { margin-top: 6px; }
.picker-empty { padding: 10px 12px; font-size: 13px; color: var(--text-mute); }

/* Редактор анкеты */
.ak-tpl-grid { grid-template-columns: minmax(0, 1fr) 180px !important; }
.ak-tpl-grid .span-2 { grid-column: 1 / -1; }
.ak-ed-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 18px 0 10px; }
.ak-ed-head label { margin: 0; }
.ak-ed-head .btn-sm { margin-left: auto; }
.ak-ed-sections { display: grid; gap: 10px; margin-bottom: 12px; }
.ak-ed-sec { border: 1px solid var(--line-2); border-radius: 14px; background: var(--bg-1); overflow: hidden; }
.ak-ed-sec-head { display: flex; align-items: center; gap: 8px; padding: 10px 12px; background: linear-gradient(90deg, var(--akc-soft), transparent 70%); border-bottom: 1px solid transparent; }
.ak-ed-sec.open .ak-ed-sec-head { border-bottom-color: var(--line); }
.ak-ed-sec-head .ak-sec-title { flex: 1; min-width: 0; margin: 0; font-weight: 700; }
.ak-sec-count { font-size: 12px; color: var(--text-mute); white-space: nowrap; }
.ak-ed-sec-body { display: none; padding: 12px; gap: 10px; }
.ak-ed-sec.open .ak-ed-sec-body { display: grid; }
.ak-ed-q { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px; align-items: start; }
.ak-ed-q-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ak-ed-q-fields textarea { margin: 0; resize: vertical; min-height: 58px; }
.ak-ed-q-tools { display: flex; flex-direction: column; gap: 4px; }
.ak-add-q { justify-self: start; margin-left: 54px; }
.ak-fold { flex: none; width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--line-2); border-radius: 8px; background: var(--bg-2); color: var(--text-dim); cursor: pointer; padding: 0; }
.ak-fold svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.2; transition: transform 0.2s ease; }
.ak-ed-sec.open .ak-fold svg, .ak-sec.open .ak-fold svg { transform: rotate(90deg); }
.ak-sec-num { flex: none; min-width: 28px; height: 28px; padding: 0 6px; display: grid; place-items: center; border-radius: 8px; background: var(--akc); color: var(--accent-ink, #0b0b0e); font: 700 13px var(--font-mono); }
.ak-q-num { padding-top: 8px; font: 600 12.5px var(--font-mono); color: var(--akc); font-variant-numeric: tabular-nums; }

/* Лист анкеты */
.ak-run-sheet { display: flex; flex-direction: column; gap: 16px; max-width: 1280px; margin: 0 auto; width: 100%; }
.ak-sheet-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: end; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.ak-sheet-title h2 { margin: 4px 0 8px; font: 500 clamp(22px, 2.4vw, 30px)/1.15 var(--font-head); letter-spacing: 0.02em; text-transform: none; color: var(--text-hi); overflow-wrap: anywhere; }
.ak-sheet-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: 13px; color: var(--text-mute); }
.ak-total { min-width: 170px; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; padding: 14px 18px; border: 1px solid var(--line-2); border-radius: 16px; background: var(--bg-1); position: relative; overflow: hidden; }
.ak-total::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(-45deg, transparent 0 9px, rgba(255, 255, 255, 0.025) 9px 10px); pointer-events: none; }
.ak-total span { font: 600 12px var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-mute); }
.ak-total b { font: 600 40px/1 var(--font-mono); font-variant-numeric: tabular-nums; color: var(--text-hi); }
.ak-total small { font-size: 12px; color: var(--text-mute); }
.ak-total.hi b { color: var(--success); } .ak-total.mid b { color: var(--scp-yellow); } .ak-total.lo b { color: var(--danger-light); }
.ak-info-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.ak-info { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-1); min-width: 0; }
.ak-info span { font: 600 12px var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-mute); }
.ak-info b { font-size: 15px; color: var(--text-hi); overflow-wrap: anywhere; }
.ak-info small { font-size: 12px; color: var(--text-mute); }
.ak-info .link-btn { align-self: flex-start; }
.ak-info .id-badge { align-self: flex-start; }
.ak-verdict { padding: 12px 16px; border-radius: 12px; font-size: 14px; line-height: 1.5; }
.ak-verdict.pass { background: var(--success-soft); color: var(--text); border: 1px solid color-mix(in srgb, var(--success) 35%, transparent); }
.ak-verdict.fail { background: var(--danger-soft); color: var(--text); border: 1px solid color-mix(in srgb, var(--danger) 35%, transparent); }
.ak-verdict span { display: inline-block; margin-left: 8px; padding: 2px 9px; border-radius: 999px; background: rgba(0, 0, 0, 0.25); font: 600 12px var(--font-mono); color: var(--danger-light); }
.ak-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ak-save-state { margin-left: auto; font-size: 12.5px; color: var(--text-mute); }
.ak-save-state.ok { color: var(--success); } .ak-save-state.err { color: var(--danger-light); }
.ak-sections { display: grid; gap: 10px; }
.ak-sec { border: 1px solid var(--line-2); border-radius: 14px; background: var(--bg-1); overflow: hidden; }
.ak-sec-head { width: 100%; display: flex; align-items: center; gap: 12px; padding: 12px 16px; border: 0; background: linear-gradient(90deg, var(--akc-soft), transparent 75%); color: var(--text-hi); cursor: pointer; text-align: left; }
.ak-sec-head .ak-fold { pointer-events: none; }
.ak-sec-name { flex: 1; min-width: 0; font: 600 16px var(--font-body); overflow-wrap: anywhere; }
.ak-sec-progress { font: 500 12.5px var(--font-mono); color: var(--text-mute); font-variant-numeric: tabular-nums; }
.ak-avg { min-width: 52px; padding: 5px 10px; border-radius: 9px; text-align: center; font: 600 15px var(--font-mono); font-variant-numeric: tabular-nums; background: var(--bg-3); color: var(--text-dim); border: 1px solid var(--line-2); }
.ak-avg.sm { min-width: 44px; padding: 3px 8px; font-size: 13px; }
.ak-avg.hi { color: var(--success); border-color: color-mix(in srgb, var(--success) 40%, transparent); }
.ak-avg.mid { color: var(--scp-yellow); border-color: color-mix(in srgb, var(--scp-yellow) 40%, transparent); }
.ak-avg.lo { color: var(--danger-light); border-color: color-mix(in srgb, var(--danger) 40%, transparent); }
.ak-sec-body { display: none; padding: 6px 16px 16px; }
.ak-sec.open .ak-sec-body { display: grid; gap: 10px; }
.ak-sec.open .ak-sec-head { border-bottom: 1px solid var(--line); }
.ak-q { display: grid; gap: 10px; padding: 14px 0 6px; border-top: 1px dashed var(--line-2); }
.ak-q:first-child { border-top: 0; }
.ak-q-top { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px; align-items: start; }
.ak-q-top .ak-q-num { padding-top: 2px; }
.ak-q-text { font-size: 15px; font-weight: 600; line-height: 1.5; color: var(--text-hi); white-space: pre-wrap; }
.ak-q-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 10px; margin-left: 54px; }
.ak-label { display: block; margin-bottom: 5px; font: 600 12px var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-mute); }
.ak-answer textarea { margin: 0; min-height: 64px; resize: vertical; border-color: var(--akc-line); }
.ak-answer-text, .ak-correct > div { padding: 10px 12px; border-radius: 10px; background: var(--bg-2); border: 1px solid var(--line); font-size: 14px; line-height: 1.5; white-space: pre-wrap; min-height: 44px; }
.ak-correct > div { border-left: 3px solid var(--success); color: var(--text-dim); }
.ak-scores { display: grid; gap: 6px; margin-left: 54px; }
.ak-score-row { display: grid; grid-template-columns: 170px minmax(0, 1fr); align-items: center; gap: 10px; }
.ak-scorer { display: flex; flex-direction: column; font-size: 13.5px; font-weight: 600; color: var(--text); overflow-wrap: anywhere; }
.ak-scorer small { font-size: 12px; font-weight: 500; color: var(--text-mute); }
.ak-score-btns { display: grid; grid-template-columns: repeat(11, minmax(30px, 1fr)); gap: 4px; max-width: 520px; }
.ak-sbtn { height: 32px; padding: 0; border: 1px solid var(--line-2); border-radius: 8px; background: var(--bg-2); color: var(--text-dim); font: 600 13px var(--font-mono); font-variant-numeric: tabular-nums; cursor: pointer; transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast); }
.ak-sbtn:hover:not(:disabled) { border-color: var(--line-3); color: #fff; }
.ak-sbtn:disabled { cursor: default; opacity: 0.55; }
.ak-sbtn.on { color: #0b0b0e; opacity: 1; }
.ak-sbtn.on.t-hi { background: var(--success); border-color: var(--success); }
.ak-sbtn.on.t-mid { background: var(--scp-yellow); border-color: var(--scp-yellow); }
.ak-sbtn.on.t-lo { background: var(--danger); border-color: var(--danger); color: #fff; }
.ak-sbtn.on.t-none { background: var(--text-dim); border-color: var(--text-dim); }
.ak-finish { position: sticky; bottom: -1px; z-index: 3; display: flex; align-items: center; gap: 10px; padding: 14px 18px; border: 1px solid var(--akc-line); border-radius: 16px; background: color-mix(in srgb, var(--bg-2) 92%, transparent); backdrop-filter: blur(10px); box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.35); }
.ak-finish > div { display: flex; flex-direction: column; margin-right: auto; }
.ak-finish b { font-size: 16px; color: var(--text-hi); }
.ak-finish b span { font-family: var(--font-mono); }
.ak-finish > div > span { font-size: 12.5px; color: var(--text-mute); }
.ak-access-list { display: grid; gap: 6px; margin-bottom: 8px; }
.ak-access-row { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-1); }
.ak-access-row .chip { margin-left: auto; }
.ak-level { margin-top: 10px; }
.ak-kd-quick { margin-top: 8px; }
.p-ankety { grid-column: 2 / -1; }
.p-ankety .rec-link .rec-grade { font-family: var(--font-mono); }

@media (max-width: 1100px) {
    .ak-run { grid-template-columns: minmax(0, 1fr) 80px; }
    .ak-run-people, .ak-run-state { grid-column: 1 / -1; }
    .ak-run-open { display: none; }
    .p-ankety { grid-column: auto; }
}
@media (max-width: 760px) {
    .ak-q-grid, .ak-scores { margin-left: 0; grid-template-columns: 1fr; }
    .ak-score-row { grid-template-columns: 1fr; }
    .ak-score-btns { grid-template-columns: repeat(6, 1fr); }
    .ak-ed-q { grid-template-columns: 1fr; }
    .ak-ed-q-fields { grid-template-columns: 1fr; }
    .ak-ed-q-tools { flex-direction: row; }
    .ak-add-q { margin-left: 0; }
    .ak-sheet-head { grid-template-columns: 1fr; }
    .ak-total { align-items: flex-start; }
    .ak-run-people { grid-template-columns: 1fr; }
    .ak-tpl-grid { grid-template-columns: 1fr !important; }
}
.ak-info .id-badge, .dossier-meta .id-badge { max-width: none; }
.ak-info .id-badge span, .dossier-meta .id-badge span { overflow: visible; text-overflow: clip; }
.rec-grade { padding: 0 8px; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ═══════════ v11 · Свой фон у каждого раздела ═══════════
   Слои: 1 — главная картинка раздела, 2 — вторая, 3 — табличка, 4 — штрихкод, 5–6 — линейки, 7–10 — метки углов */
body[data-bg]::after {
    background-size:auto min(62vh, 600px),
        auto 300px;
    background-position:right 60px center,
        left calc(var(--sidebar-w) + 34px) bottom 34px;
}
body[data-bg="dossier"]::after { background-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 360" opacity=".07" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E %3Crect x="10" y="40" width="500" height="310" rx="10" stroke-width="3"/%3E%3Cpath d="M10 80H200L230 40" stroke-width="2"/%3E %3Crect x="40" y="110" width="120" height="150" stroke-width="2"/%3E%3Ccircle cx="100" cy="165" r="30" stroke-width="2"/%3E%3Cpath d="M58 250c8-30 26-44 42-44s34 14 42 44" stroke-width="2"/%3E %3Cg stroke-width="1.5"%3E%3Cpath d="M94 300a6 6 0 0 1 12 0" /%3E%3Cpath d="M89 300a11 11 0 0 1 22 0" /%3E%3Cpath d="M84 300a16 16 0 0 1 32 0" /%3E%3Cpath d="M79 300a21 21 0 0 1 42 0" /%3E%3Cpath d="M74 300a26 26 0 0 1 52 0" /%3E%3C/g%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="20" y="66" font-size="14" letter-spacing="4"%3EЛИЧНОЕ ДЕЛО%3C/text%3E %3Ctext x="190" y="130"%3EПОЗЫВНОЙ%3C/text%3E%3Ctext x="190" y="180"%3EДОЛЖНОСТЬ%3C/text%3E%3Ctext x="190" y="230"%3EДОПУСК%3C/text%3E%3C/g%3E %3Cpath d="M190 145H480M190 195H480M190 245H400" stroke-width="1.5" stroke-dasharray="3 4"/%3E %3Crect x="190" y="150" width="140" height="10" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Crect x="190" y="200" width="200" height="10" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E %3Crect x="420" y="215" width="60" height="36" stroke-width="2"/%3E%3Ctext x="432" y="240" fill="%23ffffff" stroke="none" font-size="16"%3E3%3C/text%3E %3Cpath d="M190 300H480" stroke-width="1"/%3E%3Ctext x="190" y="325" fill="%23ffffff" stroke="none"%3EПОДПИСЬ / ПЕЧАТЬ%3C/text%3E %3C/svg%3E'), url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 420" opacity=".07" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E %3Cpath d="M20 10H420L500 90V410H20Z" stroke-width="3"/%3E%3Cpath d="M420 10V90H500" stroke-width="2"/%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="40" y="48" font-size="15" letter-spacing="4"%3EДОКУМЕНТ № 0417-А%3C/text%3E %3Ctext x="40" y="72"%3EУРОВЕНЬ ДОПУСКА: 3%3C/text%3E%3Ctext x="40" y="92"%3EКЛАССИФИКАЦИЯ: ВНУТРЕННЕЕ%3C/text%3E%3C/g%3E %3Cpath d="M40 102H480" stroke-width="1" stroke-dasharray="4 4"/%3E %3Crect x="40" y="118" width="71" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="119" y="118" width="80" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="207" y="118" width="39" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="254" y="118" width="42" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="304" y="118" width="37" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="349" y="118" width="57" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="414" y="118" width="56" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="134" width="60" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="108" y="134" width="84" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="200" y="134" width="102" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="310" y="134" width="58" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="376" y="134" width="94" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="150" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="151" y="150" width="36" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="195" y="150" width="35" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="238" y="150" width="47" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="293" y="150" width="48" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="349" y="150" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="166" width="53" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="101" y="166" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="212" y="166" width="77" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="297" y="166" width="38" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="343" y="166" width="109" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="40" y="182" width="98" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="146" y="182" width="70" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="224" y="182" width="88" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="320" y="182" width="61" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="389" y="182" width="61" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="458" y="182" width="12" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="198" width="73" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="121" y="198" width="66" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="195" y="198" width="39" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="242" y="198" width="83" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="333" y="198" width="73" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="414" y="198" width="56" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="214" width="39" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="87" y="214" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="198" y="214" width="70" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="276" y="214" width="74" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="358" y="214" width="104" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="230" width="38" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="86" y="230" width="64" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="158" y="230" width="38" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="204" y="230" width="69" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="281" y="230" width="87" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="376" y="230" width="79" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="246" width="74" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="122" y="246" width="89" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="219" y="246" width="108" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="335" y="246" width="37" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="380" y="246" width="66" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="454" y="246" width="16" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="262" width="93" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="141" y="262" width="87" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="236" y="262" width="65" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="309" y="262" width="85" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="402" y="262" width="65" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="278" width="75" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="123" y="278" width="78" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="209" y="278" width="49" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="266" y="278" width="49" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="323" y="278" width="59" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="390" y="278" width="80" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="40" y="294" width="66" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="114" y="294" width="83" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="205" y="294" width="108" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="321" y="294" width="46" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="375" y="294" width="95" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="310" width="36" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="84" y="310" width="101" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="193" y="310" width="81" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="282" y="310" width="91" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="381" y="310" width="37" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="426" y="310" width="44" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="326" width="44" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="92" y="326" width="36" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="136" y="326" width="102" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="246" y="326" width="42" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="296" y="326" width="108" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="412" y="326" width="56" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E %3Cg transform="rotate(-14 390 360)"%3E%3Crect x="300" y="330" width="180" height="56" rx="6" stroke-width="3"/%3E%3Crect x="306" y="336" width="168" height="44" rx="4" stroke-width="1"/%3E %3Ctext x="318" y="366" fill="%23ffffff" stroke="none" font-size="17" letter-spacing="5"%3EПРОВЕРЕНО%3C/text%3E%3C/g%3E %3C/svg%3E'); }
body[data-bg="training"]::after { background-image:url('data:image/svg+xml,<svg opacity=".07" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" fill="none" stroke="%23ffffff" stroke-linejoin="round"><path d="M300 40 H700 L960 300 V700 L700 960 H300 L40 700 V300 Z" stroke-width="34" stroke-opacity=".55"/><path d="M330 110 H670 L890 330 V670 L670 890 H330 L110 670 V330 Z" stroke-width="10" stroke-opacity=".35" stroke-dasharray="60 26"/><circle cx="500" cy="500" r="300" stroke-width="64" stroke-dasharray="380 91"/><circle cx="500" cy="500" r="205" stroke-width="16" stroke-opacity=".6"/><circle cx="500" cy="500" r="96" stroke-width="44"/><g stroke-width="40" stroke-linecap="square"><path d="M500 140 V250"/><path d="M500 750 V860"/><path d="M140 500 H250"/><path d="M750 500 H860"/></g><g stroke-width="14" stroke-opacity=".6"><path d="M500 404 V596"/><path d="M404 500 H596"/></g></svg>'), url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 420" opacity=".07" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E %3Cpath d="M20 10H420L500 90V410H20Z" stroke-width="3"/%3E%3Cpath d="M420 10V90H500" stroke-width="2"/%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="40" y="48" font-size="15" letter-spacing="4"%3EДОКУМЕНТ № 0417-А%3C/text%3E %3Ctext x="40" y="72"%3EУРОВЕНЬ ДОПУСКА: 3%3C/text%3E%3Ctext x="40" y="92"%3EКЛАССИФИКАЦИЯ: ВНУТРЕННЕЕ%3C/text%3E%3C/g%3E %3Cpath d="M40 102H480" stroke-width="1" stroke-dasharray="4 4"/%3E %3Crect x="40" y="118" width="71" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="119" y="118" width="80" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="207" y="118" width="39" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="254" y="118" width="42" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="304" y="118" width="37" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="349" y="118" width="57" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="414" y="118" width="56" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="134" width="60" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="108" y="134" width="84" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="200" y="134" width="102" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="310" y="134" width="58" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="376" y="134" width="94" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="150" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="151" y="150" width="36" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="195" y="150" width="35" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="238" y="150" width="47" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="293" y="150" width="48" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="349" y="150" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="166" width="53" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="101" y="166" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="212" y="166" width="77" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="297" y="166" width="38" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="343" y="166" width="109" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="40" y="182" width="98" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="146" y="182" width="70" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="224" y="182" width="88" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="320" y="182" width="61" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="389" y="182" width="61" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="458" y="182" width="12" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="198" width="73" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="121" y="198" width="66" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="195" y="198" width="39" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="242" y="198" width="83" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="333" y="198" width="73" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="414" y="198" width="56" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="214" width="39" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="87" y="214" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="198" y="214" width="70" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="276" y="214" width="74" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="358" y="214" width="104" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="230" width="38" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="86" y="230" width="64" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="158" y="230" width="38" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="204" y="230" width="69" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="281" y="230" width="87" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="376" y="230" width="79" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="246" width="74" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="122" y="246" width="89" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="219" y="246" width="108" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="335" y="246" width="37" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="380" y="246" width="66" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="454" y="246" width="16" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="262" width="93" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="141" y="262" width="87" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="236" y="262" width="65" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="309" y="262" width="85" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="402" y="262" width="65" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="278" width="75" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="123" y="278" width="78" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="209" y="278" width="49" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="266" y="278" width="49" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="323" y="278" width="59" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="390" y="278" width="80" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="40" y="294" width="66" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="114" y="294" width="83" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="205" y="294" width="108" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="321" y="294" width="46" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="375" y="294" width="95" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="310" width="36" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="84" y="310" width="101" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="193" y="310" width="81" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="282" y="310" width="91" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="381" y="310" width="37" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="426" y="310" width="44" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="326" width="44" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="92" y="326" width="36" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="136" y="326" width="102" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="246" y="326" width="42" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="296" y="326" width="108" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="412" y="326" width="56" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E %3Cg transform="rotate(-14 390 360)"%3E%3Crect x="300" y="330" width="180" height="56" rx="6" stroke-width="3"/%3E%3Crect x="306" y="336" width="168" height="44" rx="4" stroke-width="1"/%3E %3Ctext x="318" y="366" fill="%23ffffff" stroke="none" font-size="17" letter-spacing="5"%3EПРОВЕРЕНО%3C/text%3E%3C/g%3E %3C/svg%3E'); }
body[data-bg="training"]::after { background-size:min(66vh, 660px) auto, auto 300px; }
body[data-bg="chamber"]::after { background-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 560 400" opacity=".06" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E %3Cdefs%3E%3Cpattern id="hz" width="16" height="16" patternUnits="userSpaceOnUse" patternTransform="rotate(45)"%3E%3Crect width="8" height="16" fill="%23ffffff"/%3E%3C/pattern%3E%3C/defs%3E %3Crect x="10" y="10" width="540" height="380" stroke-width="5"/%3E %3Crect x="150" y="70" width="260" height="230" stroke-width="10"/%3E %3Crect x="175" y="95" width="210" height="180" stroke-width="2" stroke-dasharray="10 6"/%3E %3Crect x="150" y="300" width="260" height="14" fill="url(%23hz)" stroke="none"/%3E %3Cpath d="M255 300V340M305 300V340M240 340H320" stroke-width="3"/%3E %3Ccircle cx="280" cy="185" r="46" stroke-width="2"/%3E%3Ccircle cx="280" cy="185" r="8" fill="%23ffffff"/%3E %3Cpath d="M280 125V150M280 220V245M220 185H245M315 185H340" stroke-width="2"/%3E %3Cpath d="M10 70H150M410 70H550M10 300H150M410 300H550" stroke-width="2" stroke-dasharray="6 6"/%3E %3Crect x="40" y="110" width="80" height="150" stroke-width="2"/%3E%3Cpath d="M40 160H120M40 210H120" stroke-width="1"/%3E %3Crect x="440" y="110" width="80" height="150" stroke-width="2"/%3E%3Ccircle cx="480" cy="150" r="14" stroke-width="2"/%3E%3Cpath d="M462 200H498M462 220H498M462 240H486" stroke-width="2"/%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="24" y="40"%3EБЛОК СОДЕРЖАНИЯ · 2%3C/text%3E%3Ctext x="180" y="62"%3EКАМЕРА 04 · ШЛЮЗ ДВОЙНОЙ%3C/text%3E %3Ctext x="44" y="100"%3EНАБЛЮД.%3C/text%3E%3Ctext x="444" y="100"%3EПУЛЬТ%3C/text%3E%3Ctext x="196" y="370"%3EВХОД ТОЛЬКО ПО ПРОТОКОЛУ%3C/text%3E%3C/g%3E %3C/svg%3E'), url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 420 380" opacity=".085" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E%3Cg fill="%23ffffff" stroke="none" font-size="13"%3E%3Ctext x="20" y="40"%3E4F00 49 34 AF 87 F5 52 0B 69%3C/text%3E%3Ctext x="20" y="61"%3E4F10 B9 4B 0D 98 2E 85 BB 55%3C/text%3E%3Ctext x="20" y="82"%3E4F20 B6 72 A8 72 63 7A CD 74%3C/text%3E%3Ctext x="20" y="103"%3E4F30 66 FC B6 0E 0E 8F F1 84%3C/text%3E%3Ctext x="20" y="124"%3E4F40 63 B0 E4 B2 BA 29 70 34%3C/text%3E%3Ctext x="20" y="145"%3E4F50 74 F0 64 AC 68 F7 00 F5%3C/text%3E%3Ctext x="20" y="166"%3E4F60 B0 2B 3D C6 66 F4 5B DE%3C/text%3E%3Ctext x="20" y="187"%3E4F70 AA 2C CA ED CD 2B 51 57%3C/text%3E%3Ctext x="20" y="208"%3E4F80 41 0E 4D EE 4A F2 B3 4F%3C/text%3E%3Ctext x="20" y="229"%3E4F90 43 0A 07 34 47 DE 63 6C%3C/text%3E%3Ctext x="20" y="250"%3E4FA0 0E 80 6C 95 7B A6 84 D6%3C/text%3E%3Ctext x="20" y="271"%3E4FB0 43 1F B5 EA D7 42 4D 09%3C/text%3E%3Ctext x="20" y="292"%3E4FC0 E1 5D 02 4C 58 48 F2 3D%3C/text%3E%3Ctext x="20" y="313"%3E4FD0 1F A6 F7 36 1D 7F 61 8D%3C/text%3E%3Ctext x="20" y="334"%3E4FE0 15 32 E7 0E 20 E2 A6 66%3C/text%3E%3Ctext x="20" y="355"%3E4FF0 8D E7 F4 7E 84 67 E5 46%3C/text%3E%3C/g%3E %3Crect x="6" y="6" width="408" height="368" stroke-width="2" stroke-dasharray="2 6"/%3E%3C/svg%3E'); }
body[data-bg="chamber"]::after { background-size:auto min(60vh, 560px), auto 260px; }
body[data-bg="archive"]::after { background-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 420" opacity=".07" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E %3Cpath d="M20 10H420L500 90V410H20Z" stroke-width="3"/%3E%3Cpath d="M420 10V90H500" stroke-width="2"/%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="40" y="48" font-size="15" letter-spacing="4"%3EДОКУМЕНТ № 0417-А%3C/text%3E %3Ctext x="40" y="72"%3EУРОВЕНЬ ДОПУСКА: 3%3C/text%3E%3Ctext x="40" y="92"%3EКЛАССИФИКАЦИЯ: ВНУТРЕННЕЕ%3C/text%3E%3C/g%3E %3Cpath d="M40 102H480" stroke-width="1" stroke-dasharray="4 4"/%3E %3Crect x="40" y="118" width="71" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="119" y="118" width="80" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="207" y="118" width="39" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="254" y="118" width="42" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="304" y="118" width="37" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="349" y="118" width="57" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="414" y="118" width="56" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="134" width="60" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="108" y="134" width="84" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="200" y="134" width="102" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="310" y="134" width="58" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="376" y="134" width="94" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="150" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="151" y="150" width="36" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="195" y="150" width="35" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="238" y="150" width="47" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="293" y="150" width="48" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="349" y="150" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="166" width="53" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="101" y="166" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="212" y="166" width="77" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="297" y="166" width="38" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="343" y="166" width="109" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="40" y="182" width="98" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="146" y="182" width="70" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="224" y="182" width="88" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="320" y="182" width="61" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="389" y="182" width="61" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="458" y="182" width="12" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="198" width="73" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="121" y="198" width="66" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="195" y="198" width="39" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="242" y="198" width="83" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="333" y="198" width="73" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="414" y="198" width="56" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="214" width="39" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="87" y="214" width="103" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="198" y="214" width="70" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="276" y="214" width="74" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="358" y="214" width="104" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="230" width="38" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="86" y="230" width="64" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="158" y="230" width="38" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="204" y="230" width="69" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="281" y="230" width="87" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="376" y="230" width="79" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="246" width="74" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="122" y="246" width="89" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="219" y="246" width="108" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="335" y="246" width="37" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="380" y="246" width="66" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="454" y="246" width="16" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="262" width="93" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="141" y="262" width="87" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="236" y="262" width="65" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="309" y="262" width="85" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="402" y="262" width="65" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="278" width="75" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="123" y="278" width="78" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="209" y="278" width="49" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="266" y="278" width="49" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="323" y="278" width="59" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="390" y="278" width="80" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="40" y="294" width="66" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="114" y="294" width="83" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="205" y="294" width="108" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="321" y="294" width="46" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="375" y="294" width="95" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="310" width="36" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="84" y="310" width="101" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="193" y="310" width="81" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="282" y="310" width="91" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="381" y="310" width="37" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="426" y="310" width="44" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="40" y="326" width="44" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="92" y="326" width="36" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="136" y="326" width="102" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="246" y="326" width="42" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E%3Crect x="296" y="326" width="108" height="9" fill="%23ffffff" stroke="none"/%3E%3Crect x="412" y="326" width="56" height="9" fill="%23ffffff" fill-opacity=".28" stroke="none"/%3E %3Cg transform="rotate(-14 390 360)"%3E%3Crect x="300" y="330" width="180" height="56" rx="6" stroke-width="3"/%3E%3Crect x="306" y="336" width="168" height="44" rx="4" stroke-width="1"/%3E %3Ctext x="318" y="366" fill="%23ffffff" stroke="none" font-size="17" letter-spacing="5"%3EПРОВЕРЕНО%3C/text%3E%3C/g%3E %3C/svg%3E'), url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 560 380" opacity=".085" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"><defs><pattern id="h" width="8" height="8" patternUnits="userSpaceOnUse" patternTransform="rotate%2845%29"><path d="M0 0V8" stroke="%23ffffff" stroke-width="1.4"/></pattern></defs><path d="M10 10H550V370H10Z" stroke-width="5"/><path d="M10 150H210M260 150H550M200 10V100M200 125V370M380 150V250M380 280V370M200 260H330M360 260H550" stroke-width="3"/><rect x="30" y="170" width="150" height="180" fill="url%28%23h%29" stroke-width="1.5"/><rect x="60" y="210" width="90" height="100" stroke-width="3" fill="%23121215"/><path d="M230 60H520" stroke-width="1.5" stroke-dasharray="6 6"/><path d="M230 200H360M300 160V250" stroke-width="1" stroke-dasharray="3 5"/><circle cx="465" cy="80" r="26" stroke-width="2"/><path d="M465 54V106M439 80H491" stroke-width="1"/><g fill="%23ffffff" stroke="none"><text x="22" y="34">%D0%A1%D0%95%D0%9A%D0%A2%D0%9E%D0%A0 %D0%91-2</text><text x="78" y="265">%D0%9A%D0%90%D0%9C%D0%95%D0%A0%D0%90</text><text x="88" y="281">017</text><text x="222" y="34">%D0%9A%D0%9E%D0%A0%D0%98%D0%94%D0%9E%D0%A0 4</text><text x="222" y="186">%D0%A8%D0%9B%D0%AE%D0%97</text><text x="400" y="190">%D0%9F%D0%9E%D0%A1%D0%A2 %D0%9E%D0%A5%D0%A0%D0%90%D0%9D%D0%AB</text><text x="400" y="300">%D0%90%D0%A0%D0%A5%D0%98%D0%92</text><text x="222" y="300">%D0%9B%D0%90%D0%91. 3</text><text x="22" y="140">%D0%94%D0%9E%D0%9F%D0%A3%D0%A1%D0%9A 3%2B</text></g><path d="M510 330l20 20M530 330l-20 20" stroke-width="2"/></svg>'); }
body[data-bg="form"]::after { background-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 440" opacity=".065" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E %3Crect x="16" y="10" width="488" height="420" rx="6" stroke-width="3"/%3E %3Crect x="16" y="10" width="488" height="56" rx="6" fill="%23ffffff" fill-opacity=".14" stroke="none"/%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="40" y="45" font-size="16" letter-spacing="5"%3EАНКЕТА · ЛИСТ ОЦЕНКИ%3C/text%3E%3Ctext x="40" y="98"%3EРАЗДЕЛ 1 · ВОПРОСЫ%3C/text%3E%3C/g%3E %3Crect x="40" y="120" width="14" height="14" stroke-width="2"/%3E%3Cpath d="M43 127l4 4 6-8" stroke-width="2"/%3E%3Crect x="66" y="123" width="218" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="132" fill="%23ffffff" stroke="none"%3E9/10%3C/text%3E%3Crect x="40" y="150" width="14" height="14" stroke-width="2"/%3E%3Cpath d="M43 157l4 4 6-8" stroke-width="2"/%3E%3Crect x="66" y="153" width="244" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="162" fill="%23ffffff" stroke="none"%3E6/10%3C/text%3E%3Crect x="40" y="180" width="14" height="14" stroke-width="2"/%3E%3Crect x="66" y="183" width="273" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="192" fill="%23ffffff" stroke="none"%3E7/10%3C/text%3E%3Crect x="40" y="210" width="14" height="14" stroke-width="2"/%3E%3Cpath d="M43 217l4 4 6-8" stroke-width="2"/%3E%3Crect x="66" y="213" width="211" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="222" fill="%23ffffff" stroke="none"%3E4/10%3C/text%3E%3Crect x="40" y="240" width="14" height="14" stroke-width="2"/%3E%3Crect x="66" y="243" width="304" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="252" fill="%23ffffff" stroke="none"%3E7/10%3C/text%3E%3Crect x="40" y="270" width="14" height="14" stroke-width="2"/%3E%3Cpath d="M43 277l4 4 6-8" stroke-width="2"/%3E%3Crect x="66" y="273" width="302" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="282" fill="%23ffffff" stroke="none"%3E7/10%3C/text%3E%3Crect x="40" y="300" width="14" height="14" stroke-width="2"/%3E%3Crect x="66" y="303" width="259" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="312" fill="%23ffffff" stroke="none"%3E4/10%3C/text%3E %3Cpath d="M40 350H220M290 350H480" stroke-width="1.5"/%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="40" y="370"%3EПРОВОДЯЩИЙ%3C/text%3E%3Ctext x="290" y="370"%3EПОМОЩНИК%3C/text%3E%3Ctext x="40" y="410" font-size="14"%3EИТОГ: _ _ , _%3C/text%3E%3C/g%3E %3Ccircle cx="430" cy="395" r="26" stroke-width="2"/%3E%3Ccircle cx="430" cy="395" r="19" stroke-width="1" stroke-dasharray="3 3"/%3E %3C/svg%3E'), url('data:image/svg+xml,<svg opacity=".07" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" fill="none" stroke="%23ffffff" stroke-linejoin="round"><path d="M300 40 H700 L960 300 V700 L700 960 H300 L40 700 V300 Z" stroke-width="34" stroke-opacity=".55"/><path d="M330 110 H670 L890 330 V670 L670 890 H330 L110 670 V330 Z" stroke-width="10" stroke-opacity=".35" stroke-dasharray="60 26"/><circle cx="500" cy="500" r="300" stroke-width="64" stroke-dasharray="380 91"/><circle cx="500" cy="500" r="205" stroke-width="16" stroke-opacity=".6"/><circle cx="500" cy="500" r="96" stroke-width="44"/><g stroke-width="40" stroke-linecap="square"><path d="M500 140 V250"/><path d="M500 750 V860"/><path d="M140 500 H250"/><path d="M750 500 H860"/></g><g stroke-width="14" stroke-opacity=".6"><path d="M500 404 V596"/><path d="M404 500 H596"/></g></svg>'); }
body[data-bg="form"]::after { background-size:auto min(62vh, 600px), 300px 300px; }
body[data-bg="council"]::after { background-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" opacity=".06" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E %3Cdefs%3E%3Cpath id="c" d="M200 200m-128 0a128 128 0 1 1 256 0a128 128 0 1 1 -256 0"/%3E%3C/defs%3E %3Ccircle cx="200" cy="200" r="190" stroke-width="6"/%3E%3Ccircle cx="200" cy="200" r="168" stroke-width="2"/%3E %3Cpath d="M350.0 200.0L360.0 200.0" stroke-width="2"/%3E%3Cpath d="M349.4 213.1L359.4 213.9" stroke-width="2"/%3E%3Cpath d="M347.7 226.0L357.6 227.8" stroke-width="2"/%3E%3Cpath d="M344.9 238.8L354.5 241.4" stroke-width="2"/%3E%3Cpath d="M341.0 251.3L350.4 254.7" stroke-width="2"/%3E%3Cpath d="M335.9 263.4L345.0 267.6" stroke-width="2"/%3E%3Cpath d="M329.9 275.0L338.6 280.0" stroke-width="2"/%3E%3Cpath d="M322.9 286.0L331.1 291.8" stroke-width="2"/%3E%3Cpath d="M314.9 296.4L322.6 302.8" stroke-width="2"/%3E%3Cpath d="M306.1 306.1L313.1 313.1" stroke-width="2"/%3E%3Cpath d="M296.4 314.9L302.8 322.6" stroke-width="2"/%3E%3Cpath d="M286.0 322.9L291.8 331.1" stroke-width="2"/%3E%3Cpath d="M275.0 329.9L280.0 338.6" stroke-width="2"/%3E%3Cpath d="M263.4 335.9L267.6 345.0" stroke-width="2"/%3E%3Cpath d="M251.3 341.0L254.7 350.4" stroke-width="2"/%3E%3Cpath d="M238.8 344.9L241.4 354.5" stroke-width="2"/%3E%3Cpath d="M226.0 347.7L227.8 357.6" stroke-width="2"/%3E%3Cpath d="M213.1 349.4L213.9 359.4" stroke-width="2"/%3E%3Cpath d="M200.0 350.0L200.0 360.0" stroke-width="2"/%3E%3Cpath d="M186.9 349.4L186.1 359.4" stroke-width="2"/%3E%3Cpath d="M174.0 347.7L172.2 357.6" stroke-width="2"/%3E%3Cpath d="M161.2 344.9L158.6 354.5" stroke-width="2"/%3E%3Cpath d="M148.7 341.0L145.3 350.4" stroke-width="2"/%3E%3Cpath d="M136.6 335.9L132.4 345.0" stroke-width="2"/%3E%3Cpath d="M125.0 329.9L120.0 338.6" stroke-width="2"/%3E%3Cpath d="M114.0 322.9L108.2 331.1" stroke-width="2"/%3E%3Cpath d="M103.6 314.9L97.2 322.6" stroke-width="2"/%3E%3Cpath d="M93.9 306.1L86.9 313.1" stroke-width="2"/%3E%3Cpath d="M85.1 296.4L77.4 302.8" stroke-width="2"/%3E%3Cpath d="M77.1 286.0L68.9 291.8" stroke-width="2"/%3E%3Cpath d="M70.1 275.0L61.4 280.0" stroke-width="2"/%3E%3Cpath d="M64.1 263.4L55.0 267.6" stroke-width="2"/%3E%3Cpath d="M59.0 251.3L49.6 254.7" stroke-width="2"/%3E%3Cpath d="M55.1 238.8L45.5 241.4" stroke-width="2"/%3E%3Cpath d="M52.3 226.0L42.4 227.8" stroke-width="2"/%3E%3Cpath d="M50.6 213.1L40.6 213.9" stroke-width="2"/%3E%3Cpath d="M50.0 200.0L40.0 200.0" stroke-width="2"/%3E%3Cpath d="M50.6 186.9L40.6 186.1" stroke-width="2"/%3E%3Cpath d="M52.3 174.0L42.4 172.2" stroke-width="2"/%3E%3Cpath d="M55.1 161.2L45.5 158.6" stroke-width="2"/%3E%3Cpath d="M59.0 148.7L49.6 145.3" stroke-width="2"/%3E%3Cpath d="M64.1 136.6L55.0 132.4" stroke-width="2"/%3E%3Cpath d="M70.1 125.0L61.4 120.0" stroke-width="2"/%3E%3Cpath d="M77.1 114.0L68.9 108.2" stroke-width="2"/%3E%3Cpath d="M85.1 103.6L77.4 97.2" stroke-width="2"/%3E%3Cpath d="M93.9 93.9L86.9 86.9" stroke-width="2"/%3E%3Cpath d="M103.6 85.1L97.2 77.4" stroke-width="2"/%3E%3Cpath d="M114.0 77.1L108.2 68.9" stroke-width="2"/%3E%3Cpath d="M125.0 70.1L120.0 61.4" stroke-width="2"/%3E%3Cpath d="M136.6 64.1L132.4 55.0" stroke-width="2"/%3E%3Cpath d="M148.7 59.0L145.3 49.6" stroke-width="2"/%3E%3Cpath d="M161.2 55.1L158.6 45.5" stroke-width="2"/%3E%3Cpath d="M174.0 52.3L172.2 42.4" stroke-width="2"/%3E%3Cpath d="M186.9 50.6L186.1 40.6" stroke-width="2"/%3E%3Cpath d="M200.0 50.0L200.0 40.0" stroke-width="2"/%3E%3Cpath d="M213.1 50.6L213.9 40.6" stroke-width="2"/%3E%3Cpath d="M226.0 52.3L227.8 42.4" stroke-width="2"/%3E%3Cpath d="M238.8 55.1L241.4 45.5" stroke-width="2"/%3E%3Cpath d="M251.3 59.0L254.7 49.6" stroke-width="2"/%3E%3Cpath d="M263.4 64.1L267.6 55.0" stroke-width="2"/%3E%3Cpath d="M275.0 70.1L280.0 61.4" stroke-width="2"/%3E%3Cpath d="M286.0 77.1L291.8 68.9" stroke-width="2"/%3E%3Cpath d="M296.4 85.1L302.8 77.4" stroke-width="2"/%3E%3Cpath d="M306.1 93.9L313.1 86.9" stroke-width="2"/%3E%3Cpath d="M314.9 103.6L322.6 97.2" stroke-width="2"/%3E%3Cpath d="M322.9 114.0L331.1 108.2" stroke-width="2"/%3E%3Cpath d="M329.9 125.0L338.6 120.0" stroke-width="2"/%3E%3Cpath d="M335.9 136.6L345.0 132.4" stroke-width="2"/%3E%3Cpath d="M341.0 148.7L350.4 145.3" stroke-width="2"/%3E%3Cpath d="M344.9 161.2L354.5 158.6" stroke-width="2"/%3E%3Cpath d="M347.7 174.0L357.6 172.2" stroke-width="2"/%3E%3Cpath d="M349.4 186.9L359.4 186.1" stroke-width="2"/%3E %3Ccircle cx="200" cy="200" r="112" stroke-width="3"/%3E %3Ctext fill="%23ffffff" stroke="none" font-size="17" letter-spacing="9"%3E%3CtextPath href="%23c"%3EВЫСШАЯ АДМИНИСТРАЦИЯ · FLX · КОНТРОЛЬ И ПОРЯДОК ·%3C/textPath%3E%3C/text%3E %3Ccircle cx="200.0" cy="100.0" r="5" fill="%23ffffff" stroke="none"/%3E%3Ccircle cx="264.3" cy="123.4" r="5" fill="%23ffffff" stroke="none"/%3E%3Ccircle cx="298.5" cy="182.6" r="5" fill="%23ffffff" stroke="none"/%3E%3Ccircle cx="286.6" cy="250.0" r="5" fill="%23ffffff" stroke="none"/%3E%3Ccircle cx="234.2" cy="294.0" r="5" fill="%23ffffff" stroke="none"/%3E%3Ccircle cx="165.8" cy="294.0" r="5" fill="%23ffffff" stroke="none"/%3E%3Ccircle cx="113.4" cy="250.0" r="5" fill="%23ffffff" stroke="none"/%3E%3Ccircle cx="101.5" cy="182.6" r="5" fill="%23ffffff" stroke="none"/%3E%3Ccircle cx="135.7" cy="123.4" r="5" fill="%23ffffff" stroke="none"/%3E %3Cpath d="M200 140L240 210H160Z" stroke-width="4"/%3E%3Ccircle cx="200" cy="190" r="12" stroke-width="3"/%3E%3Cpath d="M170 250H230" stroke-width="4"/%3E %3C/svg%3E'), url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 560 380" opacity=".085" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"><defs><pattern id="h" width="8" height="8" patternUnits="userSpaceOnUse" patternTransform="rotate%2845%29"><path d="M0 0V8" stroke="%23ffffff" stroke-width="1.4"/></pattern></defs><path d="M10 10H550V370H10Z" stroke-width="5"/><path d="M10 150H210M260 150H550M200 10V100M200 125V370M380 150V250M380 280V370M200 260H330M360 260H550" stroke-width="3"/><rect x="30" y="170" width="150" height="180" fill="url%28%23h%29" stroke-width="1.5"/><rect x="60" y="210" width="90" height="100" stroke-width="3" fill="%23121215"/><path d="M230 60H520" stroke-width="1.5" stroke-dasharray="6 6"/><path d="M230 200H360M300 160V250" stroke-width="1" stroke-dasharray="3 5"/><circle cx="465" cy="80" r="26" stroke-width="2"/><path d="M465 54V106M439 80H491" stroke-width="1"/><g fill="%23ffffff" stroke="none"><text x="22" y="34">%D0%A1%D0%95%D0%9A%D0%A2%D0%9E%D0%A0 %D0%91-2</text><text x="78" y="265">%D0%9A%D0%90%D0%9C%D0%95%D0%A0%D0%90</text><text x="88" y="281">017</text><text x="222" y="34">%D0%9A%D0%9E%D0%A0%D0%98%D0%94%D0%9E%D0%A0 4</text><text x="222" y="186">%D0%A8%D0%9B%D0%AE%D0%97</text><text x="400" y="190">%D0%9F%D0%9E%D0%A1%D0%A2 %D0%9E%D0%A5%D0%A0%D0%90%D0%9D%D0%AB</text><text x="400" y="300">%D0%90%D0%A0%D0%A5%D0%98%D0%92</text><text x="222" y="300">%D0%9B%D0%90%D0%91. 3</text><text x="22" y="140">%D0%94%D0%9E%D0%9F%D0%A3%D0%A1%D0%9A 3%2B</text></g><path d="M510 330l20 20M530 330l-20 20" stroke-width="2"/></svg>'); }
body[data-bg="council"]::after { background-size:min(66vh, 640px) min(66vh, 640px), auto 280px; }
body[data-bg="chart"]::after { background-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 400" opacity=".065" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E %3Cpath d="M30 20V330H480" stroke-width="3"/%3E%3Cpath d="M30 60H470" stroke-width="1" stroke-dasharray="2 6"/%3E%3Cpath d="M30 100H470" stroke-width="1" stroke-dasharray="2 6"/%3E%3Cpath d="M30 140H470" stroke-width="1" stroke-dasharray="2 6"/%3E%3Cpath d="M30 180H470" stroke-width="1" stroke-dasharray="2 6"/%3E%3Cpath d="M30 220H470" stroke-width="1" stroke-dasharray="2 6"/%3E%3Cpath d="M30 260H470" stroke-width="1" stroke-dasharray="2 6"/%3E%3Cpath d="M30 300H470" stroke-width="1" stroke-dasharray="2 6"/%3E %3Cpath d="M40 154 L80 229 L120 160 L160 147 L200 180 L240 242 L280 89 L320 199 L360 151 L400 242 L440 206" stroke-width="3"/%3E%3Ccircle cx="40" cy="154" r="5" fill="%23121215" stroke-width="2"/%3E%3Ccircle cx="80" cy="229" r="5" fill="%23121215" stroke-width="2"/%3E%3Ccircle cx="120" cy="160" r="5" fill="%23121215" stroke-width="2"/%3E%3Ccircle cx="160" cy="147" r="5" fill="%23121215" stroke-width="2"/%3E%3Ccircle cx="200" cy="180" r="5" fill="%23121215" stroke-width="2"/%3E%3Ccircle cx="240" cy="242" r="5" fill="%23121215" stroke-width="2"/%3E%3Ccircle cx="280" cy="89" r="5" fill="%23121215" stroke-width="2"/%3E%3Ccircle cx="320" cy="199" r="5" fill="%23121215" stroke-width="2"/%3E%3Ccircle cx="360" cy="151" r="5" fill="%23121215" stroke-width="2"/%3E%3Ccircle cx="400" cy="242" r="5" fill="%23121215" stroke-width="2"/%3E%3Ccircle cx="440" cy="206" r="5" fill="%23121215" stroke-width="2"/%3E %3Crect x="32" y="330" width="16" height="31" fill="%23ffffff" fill-opacity=".35" stroke="none"/%3E%3Crect x="72" y="330" width="16" height="19" fill="%23ffffff" fill-opacity=".35" stroke="none"/%3E%3Crect x="112" y="330" width="16" height="35" fill="%23ffffff" fill-opacity=".35" stroke="none"/%3E%3Crect x="152" y="330" width="16" height="13" fill="%23ffffff" fill-opacity=".35" stroke="none"/%3E%3Crect x="192" y="330" width="16" height="38" fill="%23ffffff" fill-opacity=".35" stroke="none"/%3E%3Crect x="232" y="330" width="16" height="34" fill="%23ffffff" fill-opacity=".35" stroke="none"/%3E%3Crect x="272" y="330" width="16" height="14" fill="%23ffffff" fill-opacity=".35" stroke="none"/%3E%3Crect x="312" y="330" width="16" height="40" fill="%23ffffff" fill-opacity=".35" stroke="none"/%3E%3Crect x="352" y="330" width="16" height="32" fill="%23ffffff" fill-opacity=".35" stroke="none"/%3E%3Crect x="392" y="330" width="16" height="30" fill="%23ffffff" fill-opacity=".35" stroke="none"/%3E%3Crect x="432" y="330" width="16" height="31" fill="%23ffffff" fill-opacity=".35" stroke="none"/%3E %3Ccircle cx="420" cy="70" r="42" stroke-width="3"/%3E%3Cpath d="M420 40V70L442 84" stroke-width="3"/%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="40" y="16"%3EАКТИВНОСТЬ · МИН / НЕДЕЛЯ%3C/text%3E%3Ctext x="40" y="392"%3EПН ВТ СР ЧТ ПТ СБ ВС%3C/text%3E%3C/g%3E %3C/svg%3E'), url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 420 380" opacity=".085" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E%3Cg fill="%23ffffff" stroke="none" font-size="13"%3E%3Ctext x="20" y="40"%3E4F00 49 34 AF 87 F5 52 0B 69%3C/text%3E%3Ctext x="20" y="61"%3E4F10 B9 4B 0D 98 2E 85 BB 55%3C/text%3E%3Ctext x="20" y="82"%3E4F20 B6 72 A8 72 63 7A CD 74%3C/text%3E%3Ctext x="20" y="103"%3E4F30 66 FC B6 0E 0E 8F F1 84%3C/text%3E%3Ctext x="20" y="124"%3E4F40 63 B0 E4 B2 BA 29 70 34%3C/text%3E%3Ctext x="20" y="145"%3E4F50 74 F0 64 AC 68 F7 00 F5%3C/text%3E%3Ctext x="20" y="166"%3E4F60 B0 2B 3D C6 66 F4 5B DE%3C/text%3E%3Ctext x="20" y="187"%3E4F70 AA 2C CA ED CD 2B 51 57%3C/text%3E%3Ctext x="20" y="208"%3E4F80 41 0E 4D EE 4A F2 B3 4F%3C/text%3E%3Ctext x="20" y="229"%3E4F90 43 0A 07 34 47 DE 63 6C%3C/text%3E%3Ctext x="20" y="250"%3E4FA0 0E 80 6C 95 7B A6 84 D6%3C/text%3E%3Ctext x="20" y="271"%3E4FB0 43 1F B5 EA D7 42 4D 09%3C/text%3E%3Ctext x="20" y="292"%3E4FC0 E1 5D 02 4C 58 48 F2 3D%3C/text%3E%3Ctext x="20" y="313"%3E4FD0 1F A6 F7 36 1D 7F 61 8D%3C/text%3E%3Ctext x="20" y="334"%3E4FE0 15 32 E7 0E 20 E2 A6 66%3C/text%3E%3Ctext x="20" y="355"%3E4FF0 8D E7 F4 7E 84 67 E5 46%3C/text%3E%3C/g%3E %3Crect x="6" y="6" width="408" height="368" stroke-width="2" stroke-dasharray="2 6"/%3E%3C/svg%3E'); }
body[data-bg="terminal"]::after { background-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 420 380" opacity=".085" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E%3Cg fill="%23ffffff" stroke="none" font-size="13"%3E%3Ctext x="20" y="40"%3E4F00 49 34 AF 87 F5 52 0B 69%3C/text%3E%3Ctext x="20" y="61"%3E4F10 B9 4B 0D 98 2E 85 BB 55%3C/text%3E%3Ctext x="20" y="82"%3E4F20 B6 72 A8 72 63 7A CD 74%3C/text%3E%3Ctext x="20" y="103"%3E4F30 66 FC B6 0E 0E 8F F1 84%3C/text%3E%3Ctext x="20" y="124"%3E4F40 63 B0 E4 B2 BA 29 70 34%3C/text%3E%3Ctext x="20" y="145"%3E4F50 74 F0 64 AC 68 F7 00 F5%3C/text%3E%3Ctext x="20" y="166"%3E4F60 B0 2B 3D C6 66 F4 5B DE%3C/text%3E%3Ctext x="20" y="187"%3E4F70 AA 2C CA ED CD 2B 51 57%3C/text%3E%3Ctext x="20" y="208"%3E4F80 41 0E 4D EE 4A F2 B3 4F%3C/text%3E%3Ctext x="20" y="229"%3E4F90 43 0A 07 34 47 DE 63 6C%3C/text%3E%3Ctext x="20" y="250"%3E4FA0 0E 80 6C 95 7B A6 84 D6%3C/text%3E%3Ctext x="20" y="271"%3E4FB0 43 1F B5 EA D7 42 4D 09%3C/text%3E%3Ctext x="20" y="292"%3E4FC0 E1 5D 02 4C 58 48 F2 3D%3C/text%3E%3Ctext x="20" y="313"%3E4FD0 1F A6 F7 36 1D 7F 61 8D%3C/text%3E%3Ctext x="20" y="334"%3E4FE0 15 32 E7 0E 20 E2 A6 66%3C/text%3E%3Ctext x="20" y="355"%3E4FF0 8D E7 F4 7E 84 67 E5 46%3C/text%3E%3C/g%3E %3Crect x="6" y="6" width="408" height="368" stroke-width="2" stroke-dasharray="2 6"/%3E%3C/svg%3E'), url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 560 400" opacity=".06" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E %3Cdefs%3E%3Cpattern id="hz" width="16" height="16" patternUnits="userSpaceOnUse" patternTransform="rotate(45)"%3E%3Crect width="8" height="16" fill="%23ffffff"/%3E%3C/pattern%3E%3C/defs%3E %3Crect x="10" y="10" width="540" height="380" stroke-width="5"/%3E %3Crect x="150" y="70" width="260" height="230" stroke-width="10"/%3E %3Crect x="175" y="95" width="210" height="180" stroke-width="2" stroke-dasharray="10 6"/%3E %3Crect x="150" y="300" width="260" height="14" fill="url(%23hz)" stroke="none"/%3E %3Cpath d="M255 300V340M305 300V340M240 340H320" stroke-width="3"/%3E %3Ccircle cx="280" cy="185" r="46" stroke-width="2"/%3E%3Ccircle cx="280" cy="185" r="8" fill="%23ffffff"/%3E %3Cpath d="M280 125V150M280 220V245M220 185H245M315 185H340" stroke-width="2"/%3E %3Cpath d="M10 70H150M410 70H550M10 300H150M410 300H550" stroke-width="2" stroke-dasharray="6 6"/%3E %3Crect x="40" y="110" width="80" height="150" stroke-width="2"/%3E%3Cpath d="M40 160H120M40 210H120" stroke-width="1"/%3E %3Crect x="440" y="110" width="80" height="150" stroke-width="2"/%3E%3Ccircle cx="480" cy="150" r="14" stroke-width="2"/%3E%3Cpath d="M462 200H498M462 220H498M462 240H486" stroke-width="2"/%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="24" y="40"%3EБЛОК СОДЕРЖАНИЯ · 2%3C/text%3E%3Ctext x="180" y="62"%3EКАМЕРА 04 · ШЛЮЗ ДВОЙНОЙ%3C/text%3E %3Ctext x="44" y="100"%3EНАБЛЮД.%3C/text%3E%3Ctext x="444" y="100"%3EПУЛЬТ%3C/text%3E%3Ctext x="196" y="370"%3EВХОД ТОЛЬКО ПО ПРОТОКОЛУ%3C/text%3E%3C/g%3E %3C/svg%3E'); }
body[data-bg="terminal"]::after { background-size:auto min(60vh, 560px), auto 240px; }
@media (max-width: 1100px) {
    body[data-bg]::after { background-size:auto min(44vh, 380px), 0 0; }
}

/* ═══════════ v11 · Аккуратные числа и размеры заголовков ═══════════ */
:root { --font-num: 'Manrope', system-ui, sans-serif; }
.banner-stats b, .tr-count b, .norm-metric b, .ds-stats b, .dp-count, .imp-result b, .stat-value, .stat-card b,
.rank-num, .points-row b, .norm-progress-top b, .kb-num, .uchet-balance, .lc-card-count, .nav-category-count,
.ak-tpl-stats b, .points-min, .tr-promo-date, .ds-promo-date, .norm-online span {
    font-family: var(--font-num) !important;
    font-variant-numeric: tabular-nums lining-nums;
    letter-spacing: -0.01em;
}
.banner-stats b { font-weight: 700 !important; font-size: 26px !important; line-height: 1.1 !important; }
.tr-count b, .ds-stats b { font-weight: 700 !important; font-size: 18px !important; }
.norm-metric b { font-weight: 700 !important; font-size: 14px !important; }
.ds-promo-date { font-weight: 700 !important; font-size: 22px !important; }
.doc-num, .ak-sec-num, .ak-q-num, .q-edit-num, .dk-level-num, .ak-chip i { font-variant-numeric: tabular-nums; }

.section-title { font-size: clamp(26px, 2.4vw, 34px) !important; letter-spacing: 0.04em !important; }
.page-banner h1, .banner-title { font-size: clamp(26px, 2.4vw, 34px) !important; }
.doc-hero h1, .doc-page h1 { font-size: clamp(28px, 3vw, 40px) !important; line-height: 1.1 !important; }
.doc-rule-head h2 { font-size: clamp(19px, 1.7vw, 24px) !important; }
.dossier-title h2 { font-size: clamp(22px, 2vw, 28px) !important; }
.list-title { font-size: 20px !important; }
.qa-head h2 { font-size: clamp(22px, 2.2vw, 30px) !important; }

/* Нормы: ничего не обрезаем */
.norm-vac { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; overflow-wrap: anywhere; display: block !important; }
.norm-row .tr-name strong, .norm-row .tr-name span, .trainee-group-name, .norm-metric, .norm-head span { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; overflow-wrap: anywhere; }

/* ═══════════ v11 · Панель форматирования, поле с копированием, палитра ═══════════ */
.rich-toolbar { flex-wrap: wrap; gap: 4px; row-gap: 6px; }
.rich-group { display: inline-flex; align-items: center; gap: 2px; padding-right: 6px; margin-right: 2px; border-right: 1px solid var(--line-2); }
.rich-group:last-child { border-right: 0; }
.rich-btn.wide { width: auto; padding: 0 6px; gap: 3px; display: inline-flex; align-items: center; }
.rich-caret { font-size: 12px; color: var(--text-mute); }
.rich-pop { grid-template-columns: repeat(9, 24px); }
.rich-pop-title { grid-column: 1 / -1; font: 600 12px var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-mute); margin-bottom: 2px; }
.rich-pop-list { display: none; grid-template-columns: 1fr; min-width: 150px; gap: 2px; padding: 6px; }
.rich-pop-list.open { display: grid; }
.rich-size { padding: 7px 10px; text-align: left; border: 0; border-radius: 7px; background: none; color: var(--text); cursor: pointer; }
.rich-size:hover { background: var(--bg-4); }
.rt-lg { font-size: 1.28em; line-height: 1.35; }
.rt-sm { font-size: 0.84em; }
.rich-field { position: relative; }
.copy-toggle { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-top: 1px solid var(--line); font-size: 13px; color: var(--text-dim); cursor: pointer; user-select: none; }
.copy-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.copy-toggle .switch { position: relative; flex: none; width: 34px; height: 20px; border-radius: 999px; background: var(--bg-4); border: 1px solid var(--line-2); transition: background var(--transition-fast); }
.copy-toggle .switch::after { content: ''; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--text-dim); transition: transform var(--transition-fast), background var(--transition-fast); }
.copy-toggle input:checked + .switch { background: var(--accent-soft); border-color: var(--accent); }
.copy-toggle input:checked + .switch::after { transform: translateX(14px); background: var(--accent); }
.rich-block { position: relative; padding: 10px 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-1); font-size: 14.5px; line-height: 1.6; color: var(--text); white-space: pre-wrap; overflow-wrap: anywhere; }
.rich-block.copyable { cursor: copy; padding-right: 96px; transition: border-color var(--transition-fast), background var(--transition-fast); }
.rich-block.copyable:hover { border-color: color-mix(in srgb, var(--accent) 50%, transparent); background: color-mix(in srgb, var(--accent) 5%, var(--bg-1)); }
.copy-hint { position: absolute; top: 9px; right: 10px; padding: 2px 8px; border-radius: 6px; border: 1px solid var(--line-2); font: 600 12px var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-mute); opacity: 0; transition: opacity var(--transition-fast); white-space: nowrap; }
.rich-block.copyable:hover .copy-hint { opacity: 1; }
.rich-block.copied { border-color: var(--success) !important; }
.rich-block.copied .copy-hint { opacity: 1; color: var(--success); border-color: var(--success); }
.rich-block.copied .copy-hint::before { content: '✓ '; }
@media (hover: none) { .copy-hint { opacity: 1; } }
.ev-doc { display: grid; gap: 8px; margin: 12px 0; }
.ev-doc-label { margin-top: 10px; font: 600 12px var(--font-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-mute); }
.ev-extra { display: grid; gap: 6px; margin-top: 10px; }
.ev-extra-title { font-weight: 700; color: var(--text-hi); }
.ev-extra-edit { display: grid; gap: 8px; margin-top: 10px; padding: 12px; border: 1px solid var(--line-2); border-radius: 12px; background: rgba(255, 255, 255, 0.02); }
.ev-extra-edit-head { display: flex; align-items: center; gap: 8px; }
.ev-extra-edit-head input { flex: 1; margin: 0; }
.ev-extra-num { flex: none; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 7px; background: var(--accent-soft); color: var(--accent-light); font: 700 12px var(--font-mono); }
.ev-extras-empty { padding: 6px 0; font-size: 13.5px; color: var(--text-mute); }

.color-native-hidden { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }
.color-swatch-btn { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 12px 0 6px; border: 1px solid var(--line-2); border-radius: 10px; background: var(--bg-1); color: var(--text); font: 500 13px var(--font-mono); cursor: pointer; transition: border-color var(--transition-fast); }
.color-swatch-btn i { width: 26px; height: 26px; border-radius: 7px; background: var(--sw); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18); }
.color-swatch-btn:hover { border-color: var(--line-3); }
.color-pop { position: fixed; z-index: 5000;  padding: 12px; border: 1px solid var(--line-2); border-radius: 14px; background: var(--bg-3); box-shadow: 0 20px 50px rgba(0, 0, 0, 0.55); animation: drawerIn 0.15s ease; }
.cp-grid { display: grid; grid-template-columns: repeat(10, 1fr); gap: 5px; }
.cp-sw { aspect-ratio: 1; padding: 0; border: 2px solid rgba(255, 255, 255, 0.12); border-radius: 7px; background: var(--sw); cursor: pointer; transition: transform var(--transition-fast); }
.cp-sw:hover { transform: scale(1.12); }
.cp-sw.on { border-color: #fff; box-shadow: 0 0 0 2px var(--accent); }
.cp-row { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.cp-preview { flex: none; width: 34px; height: 34px; border-radius: 9px; background: var(--sw); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2); }
.cp-hex { flex: 1;  height: 34px; margin: 0 !important; font: 500 13px var(--font-mono) !important; text-transform: lowercase; }
.cp-native { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--text-dim); cursor: pointer; }
.cp-native input { width: 26px; height: 26px; padding: 0; border: 0; background: none; cursor: pointer; }
.cp-modal .cp-grid { grid-template-columns: repeat(10, 1fr); }
.color-pop { width: 340px; }
.cp-hex { min-width: 96px; }
.cp-native span { white-space: nowrap; }
/* Документ «Полезной информации» — архивный лист вместо эмблемы */

/* Окна анкет — бланк, досье — личное дело */
.modal-overlay.ak-run-overlay .modal.modal-full { background: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 440" opacity=".065" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E %3Crect x="16" y="10" width="488" height="420" rx="6" stroke-width="3"/%3E %3Crect x="16" y="10" width="488" height="56" rx="6" fill="%23ffffff" fill-opacity=".14" stroke="none"/%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="40" y="45" font-size="16" letter-spacing="5"%3EАНКЕТА · ЛИСТ ОЦЕНКИ%3C/text%3E%3Ctext x="40" y="98"%3EРАЗДЕЛ 1 · ВОПРОСЫ%3C/text%3E%3C/g%3E %3Crect x="40" y="120" width="14" height="14" stroke-width="2"/%3E%3Cpath d="M43 127l4 4 6-8" stroke-width="2"/%3E%3Crect x="66" y="123" width="218" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="132" fill="%23ffffff" stroke="none"%3E9/10%3C/text%3E%3Crect x="40" y="150" width="14" height="14" stroke-width="2"/%3E%3Cpath d="M43 157l4 4 6-8" stroke-width="2"/%3E%3Crect x="66" y="153" width="244" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="162" fill="%23ffffff" stroke="none"%3E6/10%3C/text%3E%3Crect x="40" y="180" width="14" height="14" stroke-width="2"/%3E%3Crect x="66" y="183" width="273" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="192" fill="%23ffffff" stroke="none"%3E7/10%3C/text%3E%3Crect x="40" y="210" width="14" height="14" stroke-width="2"/%3E%3Cpath d="M43 217l4 4 6-8" stroke-width="2"/%3E%3Crect x="66" y="213" width="211" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="222" fill="%23ffffff" stroke="none"%3E4/10%3C/text%3E%3Crect x="40" y="240" width="14" height="14" stroke-width="2"/%3E%3Crect x="66" y="243" width="304" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="252" fill="%23ffffff" stroke="none"%3E7/10%3C/text%3E%3Crect x="40" y="270" width="14" height="14" stroke-width="2"/%3E%3Cpath d="M43 277l4 4 6-8" stroke-width="2"/%3E%3Crect x="66" y="273" width="302" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="282" fill="%23ffffff" stroke="none"%3E7/10%3C/text%3E%3Crect x="40" y="300" width="14" height="14" stroke-width="2"/%3E%3Crect x="66" y="303" width="259" height="8" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Ctext x="430" y="312" fill="%23ffffff" stroke="none"%3E4/10%3C/text%3E %3Cpath d="M40 350H220M290 350H480" stroke-width="1.5"/%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="40" y="370"%3EПРОВОДЯЩИЙ%3C/text%3E%3Ctext x="290" y="370"%3EПОМОЩНИК%3C/text%3E%3Ctext x="40" y="410" font-size="14"%3EИТОГ: _ _ , _%3C/text%3E%3C/g%3E %3Ccircle cx="430" cy="395" r="26" stroke-width="2"/%3E%3Ccircle cx="430" cy="395" r="19" stroke-width="1" stroke-dasharray="3 3"/%3E %3C/svg%3E') no-repeat right 30px bottom 30px / auto 420px, url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 64" opacity=".14" fill="%23ffffff" font-family="monospace" font-size="10" letter-spacing="3"><rect x="5" y="0" width="1" height="46"/><rect x="7" y="0" width="2" height="46"/><rect x="11" y="0" width="1" height="46"/><rect x="15" y="0" width="1" height="46"/><rect x="23" y="0" width="3" height="46"/><rect x="28" y="0" width="1" height="46"/><rect x="31" y="0" width="2" height="46"/><rect x="34" y="0" width="2" height="46"/><rect x="38" y="0" width="1" height="46"/><rect x="41" y="0" width="2" height="46"/><rect x="54" y="0" width="3" height="46"/><rect x="62" y="0" width="1" height="46"/><rect x="70" y="0" width="1" height="46"/><rect x="77" y="0" width="3" height="46"/><rect x="81" y="0" width="2" height="46"/><rect x="85" y="0" width="3" height="46"/><rect x="101" y="0" width="3" height="46"/><rect x="107" y="0" width="2" height="46"/><rect x="112" y="0" width="2" height="46"/><rect x="115" y="0" width="3" height="46"/><rect x="130" y="0" width="1" height="46"/><rect x="148" y="0" width="1" height="46"/><rect x="151" y="0" width="1" height="46"/><rect x="154" y="0" width="2" height="46"/><rect x="158" y="0" width="3" height="46"/><rect x="171" y="0" width="3" height="46"/><rect x="179" y="0" width="1" height="46"/><rect x="182" y="0" width="3" height="46"/><rect x="187" y="0" width="1" height="46"/><rect x="199" y="0" width="2" height="46"/><rect x="208" y="0" width="3" height="46"/><rect x="212" y="0" width="1" height="46"/><rect x="215" y="0" width="2" height="46"/><rect x="219" y="0" width="1" height="46"/><text x="0" y="60">FLX-02-0417-MRP</text></svg>') no-repeat left 28px bottom 24px / 160px 46px, var(--bg-1); }
.modal-overlay.dk-dossier .modal.modal-full, .modal-overlay.dossier-overlay .modal.modal-full { background: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 360" opacity=".07" fill="none" stroke="%23ffffff" font-family="monospace" font-size="11" letter-spacing="2"%3E %3Crect x="10" y="40" width="500" height="310" rx="10" stroke-width="3"/%3E%3Cpath d="M10 80H200L230 40" stroke-width="2"/%3E %3Crect x="40" y="110" width="120" height="150" stroke-width="2"/%3E%3Ccircle cx="100" cy="165" r="30" stroke-width="2"/%3E%3Cpath d="M58 250c8-30 26-44 42-44s34 14 42 44" stroke-width="2"/%3E %3Cg stroke-width="1.5"%3E%3Cpath d="M94 300a6 6 0 0 1 12 0" /%3E%3Cpath d="M89 300a11 11 0 0 1 22 0" /%3E%3Cpath d="M84 300a16 16 0 0 1 32 0" /%3E%3Cpath d="M79 300a21 21 0 0 1 42 0" /%3E%3Cpath d="M74 300a26 26 0 0 1 52 0" /%3E%3C/g%3E %3Cg fill="%23ffffff" stroke="none"%3E%3Ctext x="20" y="66" font-size="14" letter-spacing="4"%3EЛИЧНОЕ ДЕЛО%3C/text%3E %3Ctext x="190" y="130"%3EПОЗЫВНОЙ%3C/text%3E%3Ctext x="190" y="180"%3EДОЛЖНОСТЬ%3C/text%3E%3Ctext x="190" y="230"%3EДОПУСК%3C/text%3E%3C/g%3E %3Cpath d="M190 145H480M190 195H480M190 245H400" stroke-width="1.5" stroke-dasharray="3 4"/%3E %3Crect x="190" y="150" width="140" height="10" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E%3Crect x="190" y="200" width="200" height="10" fill="%23ffffff" fill-opacity=".3" stroke="none"/%3E %3Crect x="420" y="215" width="60" height="36" stroke-width="2"/%3E%3Ctext x="432" y="240" fill="%23ffffff" stroke="none" font-size="16"%3E3%3C/text%3E %3Cpath d="M190 300H480" stroke-width="1"/%3E%3Ctext x="190" y="325" fill="%23ffffff" stroke="none"%3EПОДПИСЬ / ПЕЧАТЬ%3C/text%3E %3C/svg%3E') no-repeat right 30px bottom 30px / auto 300px, url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 64" opacity=".14" fill="%23ffffff" font-family="monospace" font-size="10" letter-spacing="3"><rect x="5" y="0" width="1" height="46"/><rect x="7" y="0" width="2" height="46"/><rect x="11" y="0" width="1" height="46"/><rect x="15" y="0" width="1" height="46"/><rect x="23" y="0" width="3" height="46"/><rect x="28" y="0" width="1" height="46"/><rect x="31" y="0" width="2" height="46"/><rect x="34" y="0" width="2" height="46"/><rect x="38" y="0" width="1" height="46"/><rect x="41" y="0" width="2" height="46"/><rect x="54" y="0" width="3" height="46"/><rect x="62" y="0" width="1" height="46"/><rect x="70" y="0" width="1" height="46"/><rect x="77" y="0" width="3" height="46"/><rect x="81" y="0" width="2" height="46"/><rect x="85" y="0" width="3" height="46"/><rect x="101" y="0" width="3" height="46"/><rect x="107" y="0" width="2" height="46"/><rect x="112" y="0" width="2" height="46"/><rect x="115" y="0" width="3" height="46"/><rect x="130" y="0" width="1" height="46"/><rect x="148" y="0" width="1" height="46"/><rect x="151" y="0" width="1" height="46"/><rect x="154" y="0" width="2" height="46"/><rect x="158" y="0" width="3" height="46"/><rect x="171" y="0" width="3" height="46"/><rect x="179" y="0" width="1" height="46"/><rect x="182" y="0" width="3" height="46"/><rect x="187" y="0" width="1" height="46"/><rect x="199" y="0" width="2" height="46"/><rect x="208" y="0" width="3" height="46"/><rect x="212" y="0" width="1" height="46"/><rect x="215" y="0" width="2" height="46"/><rect x="219" y="0" width="1" height="46"/><text x="0" y="60">FLX-02-0417-MRP</text></svg>') no-repeat left 28px bottom 24px / 160px 46px, var(--bg-1); }

/* ═══════════════════════ v12 ═══════════════════════ */

/* ── Плашка допуска в шапке раздела ── */
.command-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.command-head-main { min-width: 0; }
.acs { display: flex; border: 1px solid var(--line-2); border-radius: 6px; overflow: hidden; background: rgba(0, 0, 0, 0.25); }
.acs-cell { display: flex; flex-direction: column; justify-content: center; gap: 3px; min-width: 96px; padding: 9px 14px; border-left: 1px solid var(--line-2); }
.acs-cell:first-child { border-left: 0; }
.acs-cell span { font: 600 12px var(--font-mono); letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-mute); }
.acs-cell b { font: 600 13px var(--font-body); color: var(--text-hi); white-space: nowrap; }
.acs-level { min-width: 112px;  }
.acs-level b { font: 700 22px/1 var(--font-num, var(--font-body)); color: var(--accent-light); }
.sr-bars { display: flex; gap: 3px; margin-top: 2px; }
.sr-bars i { width: 14px; height: 4px; border-radius: 1px; background: var(--line-2); }
.sr-bars i.on { background: var(--accent); box-shadow: 0 0 6px var(--accent-glow); }
.acs-live { display: inline-flex; align-items: center; gap: 6px; color: var(--success) !important; }
.acs-live i { width: 7px; height: 7px; border-radius: 50%; background: var(--success); animation: termBlink 2s infinite; }
@media (max-width: 900px) { .acs { display: none; } }

/* ── Боковые бирки у форм ── */
.sheet-rail { display: none; }
@media (min-width: 1640px) {
    .modal.modal-sheet > .sheet-rail {
        position: fixed; top: 104px; z-index: 1;
        display: flex; flex-direction: column; gap: 14px;
        width: 236px !important; max-width: none; margin: 0;
        pointer-events: none; user-select: none;
        animation: drawerIn 0.4s ease both;
    }
    .modal.modal-sheet > .sheet-rail.left { left: calc(50vw - 550px - 268px); }
    .modal.modal-sheet > .sheet-rail.right { right: calc(50vw - 550px - 268px); }
}
.sr-card { border: 1px solid var(--line-2);   overflow: hidden; }
.sr-head { display: flex; justify-content: space-between; align-items: baseline; padding: 10px 14px;  border-bottom: 1px solid var(--line-2); }
.sr-head span, .sr-row span, .sr-level span { font: 600 12px var(--font-mono); letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-mute); }
.sr-head b {   letter-spacing: 0.06em; }
.sr-level { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 10px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.sr-level b { font: 700 30px/1 var(--font-num, var(--font-body)); color: var(--accent-light); grid-row: span 2; }
.sr-row { display: flex; flex-direction: column; gap: 3px; padding: 9px 14px; border-bottom: 1px solid var(--line); }
.sr-row:last-child { border-bottom: 0; }
.sr-row b { font-size: 13px; color: var(--text); overflow-wrap: anywhere; }
.sr-hazard { height: 12px; border-radius: 2px; background: repeating-linear-gradient(-45deg, rgba(236, 213, 71, 0.35) 0 10px, transparent 10px 20px); opacity: 0.7; }
.sr-redact { display: grid; gap: 7px; padding: 4px 2px; }
.sr-redact i { display: block; height: 8px; border-radius: 1px; background: rgba(255, 255, 255, 0.09); }
.sr-redact i:nth-child(3n) { background: rgba(255, 255, 255, 0.2); }
.sr-code { font: 500 12px var(--font-mono); letter-spacing: 0.22em; color: var(--text-mute); opacity: 0.6; }
.sr-note { padding: 14px 16px; border: 1px dashed var(--line-2);   }
.sr-note-title { margin-bottom: 8px;     }
.sr-note ol { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: 12.5px; line-height: 1.45; color: var(--text-dim); }
.sr-stamp { align-self: flex-end; transform: rotate(-9deg); margin: 12px 8px 0 0; padding: 8px 16px; border: 3px double rgba(229, 83, 75, 0.45); border-radius: 6px; text-align: center; color: rgba(229, 83, 75, 0.6); line-height: 1.1; }
.sr-stamp span, .sr-stamp b { display: block; font: 700 12px var(--font-mono); letter-spacing: 0.3em; text-transform: uppercase; }
.sr-ticks { height: 120px; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 100" opacity=".16" stroke="%23ffffff"><path d="M0 0.5H14M0 10.5H5M0 20.5H5M0 30.5H5M0 40.5H5M0 50.5H9M0 60.5H5M0 70.5H5M0 80.5H5M0 90.5H5"/></svg>') repeat-y right top / 14px 100px; opacity: 0.6; }
/* поле формы — тонкая сетка «миллиметровки» вместо пустоты */

.modal.modal-sheet > h2 { position: relative; padding-bottom: 14px; }

/* ── Анкеты: шаблоны, итоги, лист ── */
.ak-tpl-meter { display: grid; gap: 8px; }
.ak-meter-bar { height: 6px; border-radius: 3px; background: color-mix(in srgb, var(--danger) 45%, var(--bg-3)); overflow: hidden; }
.ak-meter-bar:empty { background: var(--bg-3); }
.ak-meter-bar i { display: block; height: 100%; background: var(--success); }
.ak-meter-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; color: var(--text-mute); }
.ak-meter-legend b { font-family: var(--font-num, var(--font-body)); color: var(--text-hi); font-variant-numeric: tabular-nums; }
.ak-meter-legend .pass b { color: var(--success); } .ak-meter-legend .fail b { color: var(--danger-light); }
.ak-tpl-foot .btn-sm { padding: 0 10px; }
.ak-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-bottom: 14px; }
.ak-summary > div { display: flex; flex-direction: column; gap: 2px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-2); }
.ak-summary b { font: 700 24px/1.1 var(--font-num, var(--font-body)); color: var(--text-hi); font-variant-numeric: tabular-nums; }
.ak-summary span { font-size: 12.5px; color: var(--text-mute); }
.ak-summary .pass b { color: var(--success); } .ak-summary .fail b { color: var(--danger-light); }
.ak-body { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 16px; align-items: start; }
.ak-nav { position: sticky; top: 64px; display: grid; gap: 4px; padding: 12px; border: 1px solid var(--line-2); border-radius: 14px; background: var(--bg-1); }
.ak-nav-title { margin: 2px 4px 6px; font: 600 12px var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-mute); }
.ak-nav-item { position: relative; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 8px 8px 11px; border: 0; border-radius: 9px; background: none; color: var(--text); text-align: left; cursor: pointer; overflow: hidden; }
.ak-nav-item:hover { background: var(--bg-3); }
.ak-nav-num { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 6px; background: var(--akc-soft); color: var(--akc); font: 700 12px var(--font-mono); }
.ak-nav-name { font-size: 13px; font-weight: 600; overflow-wrap: anywhere; line-height: 1.3; }
.ak-nav-progress { position: absolute; left: 8px; right: 8px; bottom: 4px; height: 3px; border-radius: 2px; background: var(--bg-3); }
.ak-nav-progress::after { content: ''; position: absolute; inset: 0 auto 0 0; width: var(--p, 0%); border-radius: 2px; background: var(--akc); transition: width 0.3s ease; }
.ak-nav-hint { margin: 8px 4px 2px; font-size: 12px; line-height: 1.45; color: var(--text-mute); }
.ak-sec.flash { box-shadow: 0 0 0 2px var(--akc); transition: box-shadow 0.3s; }
.ak-score-row.mine { padding: 6px 8px; margin: 0 -8px; border-radius: 10px; background: var(--akc-soft); }
.ak-score-row.mine .ak-scorer::after { content: 'это вы'; margin-top: 2px; font-size: 12px; font-weight: 700; color: var(--akc); text-transform: uppercase; letter-spacing: 0.08em; }
.ak-score-row.locked { opacity: 0.6; }
.ak-q-grid.single { grid-template-columns: 1fr; }
.ak-sec-head.static { cursor: default; }
.ak-preview { max-width: 1100px; margin: 0 auto; display: grid; gap: 12px; }
.ak-kd-list { display: grid; gap: 8px; }
.ak-kd-row { display: grid; grid-template-columns: 76px minmax(180px, 1fr) minmax(0, 2fr) 120px; align-items: center; gap: 16px; padding: 12px 16px; border: 1px solid var(--line); border-left: 3px solid var(--danger); border-radius: 12px; background: var(--bg-2); cursor: pointer; animation: rowIn 0.3s ease both; animation-delay: calc(var(--i, 0) * 25ms); }
.ak-kd-row:hover { background: var(--bg-3); }
.ak-kd-days { display: flex; flex-direction: column; align-items: center; padding: 6px 0; border-radius: 10px; background: var(--danger-soft); }
.ak-kd-days b { font: 700 22px/1 var(--font-num, var(--font-body)); color: var(--danger-light); }
.ak-kd-days span { font-size: 12px; color: var(--text-mute); }
.ak-kd-reason { font-size: 13.5px; color: var(--text-dim); line-height: 1.45; }
.ak-kd-date { display: flex; flex-direction: column; align-items: flex-end; }
.ak-kd-date small { font-size: 12px; color: var(--text-mute); }
.ak-kd-date b { font-family: var(--font-num, var(--font-body)); color: var(--text-hi); }
@media (max-width: 1100px) { .ak-body { grid-template-columns: 1fr; } .ak-nav { position: static; } .ak-kd-row { grid-template-columns: 70px 1fr; } .ak-kd-reason, .ak-kd-date { grid-column: 2; align-items: flex-start; } }

/* ── Подсчёт нормы: карточка недели и таблица ── */
.norm-week-card { position: relative; display: grid; grid-template-columns: auto minmax(0, 1.4fr) minmax(0, 1fr); gap: 0; margin-bottom: 16px; border: 1px solid var(--line-2); border-radius: 14px; background: linear-gradient(135deg, var(--bg-2), var(--bg-1)); overflow: hidden; }
.norm-week-card::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--brand-stripe); }
.nwc-period, .nwc-block { display: flex; flex-direction: column; gap: 8px; padding: 18px 22px; }
.nwc-block { border-left: 1px solid var(--line); }
.nwc-label { font: 600 12px var(--font-mono); letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-mute); }
.nwc-dates { display: flex; align-items: baseline; gap: 10px; white-space: nowrap; }
.nwc-dates b { font: 700 24px/1.1 var(--font-num, var(--font-body)); color: var(--text-hi); font-variant-numeric: tabular-nums; }
.nwc-dates i { font-style: normal; color: var(--text-mute); }

.nwc-rates { display: flex; flex-wrap: wrap; gap: 6px; }
.nwc-rate { display: inline-flex; align-items: baseline; gap: 6px; padding: 6px 10px; border: 1px solid var(--line-2); border-radius: 8px; background: rgba(0, 0, 0, 0.2); }
.nwc-rate em { font-style: normal; font-size: 12.5px; color: var(--text-dim); }
.nwc-rate b { font: 700 15px var(--font-num, var(--font-body)); color: var(--accent-light); font-variant-numeric: tabular-nums; }
.nwc-rate small { font-size: 12px; color: var(--text-mute); }
.nwc-rate.norm b { color: var(--scp-yellow); }
.nwc-del {  top: 12px; right: 12px; }
@media (max-width: 1200px) { .norm-week-card { grid-template-columns: 1fr; } .nwc-block { border-left: 0; border-top: 1px solid var(--line); } }

.norm-table-wrap { overflow-x: auto; border: 1px solid var(--line-2); border-radius: 14px; background: var(--bg-2); }
.norm-table { width: 100%; min-width: 1240px; border-collapse: separate; border-spacing: 0; font-size: 13.5px; }
.norm-table col.c-person { width: 220px; } .norm-table col.c-progress { width: 210px; } .norm-table col.c-online { width: 78px; }
.norm-table col.c-metric { width: 86px; } .norm-table col.c-vac { width: 150px; } .norm-table col.c-act { width: 52px; }
.norm-table th, .norm-table td { padding: 12px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.norm-table thead th { position: sticky; top: 0; z-index: 2; background: var(--bg-3); font: 600 12px/1.3 var(--font-body); letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-dim); white-space: normal; }
.norm-table thead tr.nt-groups th { border-bottom: 1px solid var(--line-2); }
.norm-table thead tr.nt-groups th[colspan] { text-align: center; color: var(--text-hi); background: color-mix(in srgb, var(--accent) 7%, var(--bg-3)); }
.norm-table thead tr.nt-sub th { top: 37px; text-align: center;  text-transform: none; letter-spacing: 0;  }
.norm-table .sticky-col { position: sticky; left: 0; z-index: 1; background: var(--bg-2); }
.norm-table thead .sticky-col { z-index: 3; background: var(--bg-3); }
.nt-group-row th { padding: 10px 14px !important; background: var(--bg-1) !important; font: 600 13px var(--font-body); letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-hi); text-align: left !important; }
.nt-group-row .trainee-group-dot { display: inline-block; vertical-align: middle; margin-right: 10px; }
.nt-count { margin-left: 10px; padding: 1px 8px; border-radius: 999px; background: var(--bg-3); font: 600 12px var(--font-mono); color: var(--text-dim); }
.nt-row:hover td { background: var(--bg-3); }
.nt-row td:first-child { box-shadow: inset 3px 0 0 var(--line-2); }
.nt-row.ok td:first-child { box-shadow: inset 3px 0 0 var(--success); }
.nt-row.mid td:first-child { box-shadow: inset 3px 0 0 var(--scp-yellow); }
.nt-row.low td:first-child { box-shadow: inset 3px 0 0 var(--danger); }
.nt-person-in { display: flex; align-items: center; gap: 10px; }
.nt-person-in b { display: block; color: var(--text-hi); overflow-wrap: anywhere; }
.nt-person-in small { font-size: 12px; color: var(--text-mute); }
.nt-progress-top { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 6px; font-size: 12.5px; }
.nt-progress-top b { color: var(--text-hi); font-weight: 600; }
.nt-progress-top span { font: 600 12px var(--font-num, var(--font-body)); color: var(--text-dim); }
.nt-row.ok .nt-progress-top b { color: var(--success); }
.nt-num { text-align: center !important; font: 600 15px var(--font-num, var(--font-body)); color: var(--text-hi); font-variant-numeric: tabular-nums; }
.nt-num.zero { color: var(--text-mute); font-weight: 500; }
.nt-vac { font-size: 12.5px; color: var(--text-dim); line-height: 1.4; overflow-wrap: anywhere; }
.nt-act { text-align: right !important; }
.norm-table tbody:last-child tr:last-child td { border-bottom: 0; }

/* ── Кураторка отдела ── */
.dk-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 18px; }
.dk-stats > div { display: flex; flex-direction: column; gap: 2px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-2); }
.dk-stats b { font: 700 24px/1.1 var(--font-num, var(--font-body)); color: var(--text-hi); }
.dk-stats span { font-size: 12.5px; color: var(--text-mute); }
.dk-stats .ok b { color: var(--success); } .dk-stats .warn b { color: var(--danger-light); }
.dk-timeline { display: grid; gap: 0; padding-left: 6px; }
.dk-tl-item { position: relative; display: flex; gap: 12px; padding: 0 0 14px 14px; border-left: 2px solid var(--line-2); }
.dk-tl-item:last-child { border-left-color: transparent; }
.dk-tl-item > i { position: absolute; left: -6px; top: 3px; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 3px var(--bg-2); }
.dk-tl-item b { display: block; font-size: 13.5px; color: var(--text-hi); }
.dk-tl-item span { font-size: 12px; color: var(--text-mute); }
.p-history { grid-column: 2 / -1; }
.tr-name .status-badge { margin-top: 4px; align-self: flex-start; }
.page-banner .command-head { display: block; }
.nwc-del { position: static; align-self: flex-start; margin-top: 6px; }
.nt-row.low .norm-bar i { background-position: 0 0; }
.nt-row.mid .norm-bar i { background-position: 66% 0; }
.nt-row.ok .norm-bar i { background-position: 100% 0; }
.norm-table thead tr.nt-sub th { font-size: 12px; color: var(--text-dim); font-weight: 600; }
.ak-templates { grid-template-columns: repeat(auto-fill, minmax(min(100%, 430px), 1fr)); }
.ak-tpl-foot { flex-wrap: wrap; row-gap: 8px; }
.ak-tpl-foot .muted { flex: 1 1 100%; margin: 0; }
.ak-tpl-foot .btn-primary { margin-left: auto; }

/* ═══════════════════════ v13 · Деловой стиль ═══════════════════════ */
:root { --font-head: 'Manrope', system-ui, sans-serif;  }
.brand-mark, .auth-logo, .boot-mark, .topbar-brand { font-family: 'Oswald', 'Arial Narrow', sans-serif !important; }

/* Фон: мягкий свет в цвет раздела, горизонтали «карты» и тонкая сетка; эскизы SCP — тихим слоем */
body::before {
     transition: background-color 0.4s;
}
body::after { opacity: 0.55 !important; }

.modal.modal-full,
.modal-overlay.ak-run-overlay .modal.modal-full,
.modal-overlay.dk-dossier .modal.modal-full,
.modal-overlay.dossier-overlay .modal.modal-full {
}

.modal.modal-sheet {  }

/* Заголовки — строчные, плотные, без «плакатного» разреза */
.section-title, .page-banner h1, .banner-title, .modal h2, .modal.modal-sheet > h2, .doc-hero h1, .doc-rule-head h2, .doc-rule h2,
.doc-sub-head h3, .doc-topbar-title, .sheet-title, .list-title, .dept-banner-title, .settings-block > header h3, .card h3, .panel h3,
.dossier-title h2, .dossier-panel h3, .kb-group-head h2, .qa-head h2, .ak-sheet-title h2, .person-block-head h3, .sheet-section-head h3,
.form-block-title, .request-title, .hero-name, .doc-tile-body h3, .auth-card h1, .uchet-col h4 {
    text-transform: none !important;
    letter-spacing: -0.015em !important;
    font-weight: 750 !important;
}
.section-title, .page-banner h1, .banner-title { font-weight: 800 !important; }
.trainee-group-head, .status-group-head, .activity-dept { letter-spacing: 0.06em !important; }

/* Надзаголовки и строка терминала — спокойнее */
.command-eyebrow { color: color-mix(in srgb, var(--accent-light, var(--accent)) 85%, #fff) !important; font: 650 12px var(--font-body) !important; letter-spacing: 0.08em !important; }

.term-bar { font: 600 12px var(--font-body) !important; letter-spacing: 0.1em !important; background: rgba(255, 255, 255, 0.015) !important; }
.term-led { border-radius: 50%; box-shadow: none !important; }
.doc-hero-count { color: var(--text-mute) !important; font-family: var(--font-body) !important; letter-spacing: 0.08em !important; }
.acs-cell span, .sr-head span, .sr-row span { font: 600 12px var(--font-body) !important; letter-spacing: 0.06em !important; }
.acs-level { background: none !important; }

/* Боковые бирки у форм — деловые карточки */
.sr-card { border-radius: 10px; background: rgba(20, 20, 24, 0.72); backdrop-filter: blur(4px); }
.sr-head { background: transparent; }
.sr-head b { color: var(--text-dim); font: 600 12px var(--font-mono); }
.sr-row b { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sr-row .sr-bars { margin: 0; }
.sr-row .sr-bars i { width: 10px; }
.sr-save { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 10px; background: rgba(20, 20, 24, 0.72); }
.sr-save > i { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px color-mix(in srgb, var(--success) 18%, transparent); }
.sr-save b { display: block; font-size: 13px; color: var(--text-hi); }
.sr-save span { font-size: 12px; color: var(--text-mute); }
.sr-note { border-style: solid; border-radius: 10px; background: rgba(20, 20, 24, 0.72); }
.sr-note-title { color: var(--text-dim) !important; font: 650 12px var(--font-body) !important; letter-spacing: 0.04em !important; text-transform: none !important; }
.sr-note ul { margin: 0; padding-left: 16px; display: grid; gap: 8px; font-size: 12.5px; line-height: 1.5; color: var(--text-dim); }
.sr-note kbd, .tbl-hint kbd { display: inline-block; padding: 0 5px; border: 1px solid var(--line-2); border-bottom-width: 2px; border-radius: 4px; font: 600 12px var(--font-mono); color: var(--text); background: rgba(255, 255, 255, 0.04); }

/* ── Анкеты: уровни доступа ── */
.ak-levels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 6px 0 18px; }
.ak-level-card { display: grid; gap: 4px; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 10px; background: rgba(255, 255, 255, 0.02); }
.ak-level-card b { font-size: 14px; color: var(--text-hi); }
.ak-level-card span { font-size: 12.5px; line-height: 1.4; color: var(--text-mute); }
.ak-level-card:nth-child(1) { border-top: 2px solid #5aa9ff; }
.ak-level-card:nth-child(2) { border-top: 2px solid var(--warning, #ecd547); }
.ak-level-card:nth-child(3) { border-top: 2px solid var(--success); }
.ak-access-row select { width: auto; min-width: 150px; height: 34px; margin: 0; }
.ak-my-level { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border: 1px solid var(--line-2); border-radius: 999px; font-size: 12px; color: var(--text-dim); white-space: nowrap; }
.ak-my-level b { color: var(--text-hi); }
@media (max-width: 700px) { .ak-levels { grid-template-columns: 1fr; } }

/* ── Общие мелочи форм ── */
.check-line { display: flex !important; align-items: center; gap: 8px; margin: 12px 0 !important; font-weight: 500 !important; cursor: pointer; }
.check-line input { width: auto !important; margin: 0 !important; }
.form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
textarea.mono { font: 13px/1.5 var(--font-mono) !important; white-space: pre; overflow-x: auto; }
.iab-grid { display: flex; align-items: center; gap: 14px; margin-top: 14px; }
.iab-mini { display: grid; grid-template-columns: repeat(var(--c), 14px); gap: 3px; }
.iab-mini i { width: 14px; height: 10px; border-radius: 2px; background: rgba(255, 255, 255, 0.08); }
.iab-mini i.h { background: var(--accent); opacity: 0.6; }
#iab-mode { margin-bottom: 14px; }
.ati-preview { margin-top: 10px; max-height: 240px; overflow: auto; }

/* ── Панель текста: новые инструменты ── */
.rt-code, .rich-area code { padding: 1px 6px; border-radius: 5px; background: rgba(255, 255, 255, 0.07); border: 1px solid rgba(255, 255, 255, 0.08); font: 500 0.92em var(--font-mono); color: #e8d9a8; }
.rich-pop-sym { grid-template-columns: repeat(8, 30px) !important; width: auto !important; }
.rich-sym { width: 30px; height: 30px; padding: 0; border: 1px solid var(--line); border-radius: 6px; background: rgba(255, 255, 255, 0.02); color: var(--text); font-size: 15px; cursor: pointer; }
.rich-sym:hover { border-color: var(--accent); background: var(--accent-soft); }

/* ── Таблица в документе ── */
.doc-table-block { position: relative; }
.table-copy { position: absolute; top: 8px; right: 8px; z-index: 2; opacity: 0; transition: opacity var(--transition-fast); }
.doc-table-block:hover .table-copy { opacity: 1; }
.info-table.striped tbody tr:nth-child(even) td:not(.has-bg) { background: rgba(255, 255, 255, 0.035); }
.info-table.compact th, .info-table.compact td { padding: 6px 10px !important; font-size: 13px; }
.info-table.first-bold tbody td:first-child { font-weight: 700; color: var(--text-hi); }
.info-table-caption { margin-top: 8px; font-size: 12.5px; color: var(--text-mute); font-style: italic; }

/* ── Редактор таблиц ── */
.tbl-ed { display: grid; gap: 10px; }
.tbl-ed-ribbon { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px; border: 1px solid var(--line-2); border-radius: 12px; background: rgba(0, 0, 0, 0.22); position: sticky; top: 0; z-index: 4; }
.tbl-grp { position: relative; display: flex; align-items: center; gap: 3px; padding: 16px 8px 6px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255, 255, 255, 0.015); }
.tbl-grp:first-child { flex: 1 1 100%; }
.tbl-grp:first-child .rich-toolbar { border: 0; padding: 0; background: none; }
.tbl-grp-t { position: absolute; top: 3px; left: 9px; font: 600 12px var(--font-body); letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-mute); white-space: nowrap; }
.tbl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: 32px; height: 30px; padding: 0; border: 1px solid transparent; border-radius: 7px; background: none; color: var(--text-dim); cursor: pointer; }
.tbl-btn.wide { width: auto; padding: 0 10px; font-size: 12.5px; font-weight: 600; }
.tbl-btn svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tbl-btn:hover:not(:disabled) { border-color: var(--line-2); background: rgba(255, 255, 255, 0.05); color: var(--text-hi); }
.tbl-btn.on { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-light, var(--accent)); }
.tbl-btn.danger:hover:not(:disabled) { color: var(--danger, #e5534b); border-color: color-mix(in srgb, var(--danger, #e5534b) 50%, transparent); }
.tbl-btn:disabled { opacity: 0.35; cursor: default; }
.tbl-sep { width: 1px; height: 20px; margin: 0 4px; background: var(--line-2); }
.tbl-toggle { height: 30px; padding: 0 10px; border: 1px solid var(--line-2); border-radius: 7px; background: none; color: var(--text-dim); font-size: 12.5px; font-weight: 600; cursor: pointer; }
.tbl-toggle.on { border-color: var(--accent); background: var(--accent-soft); color: var(--text-hi); }
.tbl-ed-status { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 12.5px; color: var(--text-mute); }
.tbl-pos { min-width: 64px; padding: 4px 10px; border: 1px solid var(--line-2); border-radius: 7px; font: 700 12.5px var(--font-mono); color: var(--text-hi); text-align: center; }
.tbl-size { font: 600 12.5px var(--font-num); color: var(--text-dim); }
.tbl-hint { flex: 1; min-width: 240px; }
.tbl-ed-caption { display: flex; align-items: center; gap: 12px; }
.tbl-ed-caption label { margin: 0 !important; white-space: nowrap; }
.tbl-ed-caption input { margin: 0 !important; }
.info-table-editor-wrap { max-height: 60vh; }
.info-table-editor { table-layout: auto !important; min-width: 100%; }
.info-table-editor th, .info-table-editor td.tcell { min-width: 160px; }
.info-table-editor .iet-corner, .info-table-editor .iet-rownum { min-width: 40px !important; width: 40px; padding: 0 !important; text-align: center; font: 600 12px var(--font-mono); color: var(--text-mute); background: var(--bg-2); }
.info-table-editor tbody .iet-rownum { position: sticky; left: 0; z-index: 1; cursor: pointer; border-top: 1px solid var(--line); }
.info-table-editor .iet-letters th { position: sticky; top: 0; z-index: 3; height: 24px; padding: 0 !important; font: 600 12px var(--font-mono); color: var(--text-mute); text-align: center; cursor: pointer; background: var(--bg-3); }
.info-table-editor .iet-head th { top: 24px; }
.info-table-editor .iet-letters th.on-col, .info-table-editor tr.on-row .iet-rownum { color: var(--accent-light, var(--accent)); background: color-mix(in srgb, var(--accent) 14%, var(--bg-2)); }
.info-table-editor td.on-col, .info-table-editor tr.on-row td { background: rgba(255, 255, 255, 0.018); }
.info-table-editor td.tcell.active, .info-table-editor th.active { box-shadow: inset 0 0 0 2px var(--accent); }
.info-table-editor td.tcell.has-bg { background: var(--cell-bg) !important; }
.info-table-editor.striped tbody tr:nth-child(even) td:not(.has-bg) { background: rgba(255, 255, 255, 0.035); }
.info-table-editor.compact td.tcell { padding: 3px !important; }
.info-table-editor.compact .tcell .rich-area { min-height: 28px; padding: 4px 8px; }
.info-table-editor.first-bold tbody td:first-of-type .rich-area { font-weight: 700; }
.info-table-editor.no-header .iet-head input { opacity: 0.45; text-decoration: line-through; }
.tcell .rich-area { text-align: inherit; }
.tcell-link { display: flex; align-items: center; gap: 5px; }
.tcell-link svg { flex: none; width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; }
@media (max-width: 900px) { .tbl-hint { display: none; } .tbl-grp { padding-top: 6px; } .tbl-grp-t { display: none; } }
.modal.modal-sheet > h2::before { content: 'Форма' !important; font: 650 12px var(--font-body) !important; letter-spacing: 0.08em !important; text-transform: uppercase; color: var(--text-mute) !important; }
.info-table-editor th input { text-transform: none !important; letter-spacing: 0 !important; }
.info-table th { letter-spacing: 0.02em !important; }
.doc-text.note .doc-text-line::before { content: 'Примечание' !important; font: 700 12px var(--font-body) !important; letter-spacing: 0.06em !important; text-transform: uppercase; }
/* Подписи полей — обычным шрифтом, без «телетайпного» разреза */
.ak-nav-title, .ak-total span, .auth-kicker, .cards-grid > .card > .field-row .label, .hero-eyebrow, .id-tile-text small, .nwc-label, .sc-label, .info-table th, .ak-tpl::after {
    font-family: var(--font-body) !important;
    letter-spacing: 0.07em !important;
}
.hero-eyebrow { color: color-mix(in srgb, var(--accent-light, var(--accent)) 85%, #fff) !important; font-weight: 650 !important; }

/* ═══════════════════════ v14 ═══════════════════════ */

/* ── Фон: плёночное зерно + второй слой горизонталей в цвет раздела ── */
:root { --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E"); }

.main-content::before, #content::before { content: none; }
.sidebar { background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.018), transparent 260px); }

/* ── Формы: ровные блоки, шаги, поля одной высоты ── */
.form-block { border-radius: 14px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.022), transparent 120px), var(--bg-2); }
.form-block-title { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font: 700 15px var(--font-body) !important; letter-spacing: -0.005em !important; text-transform: none !important; }
.form-block-title .hint-inline { color: var(--text-mute); font-weight: 500; }
.fb-step { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 7px; background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent-light, var(--accent)); font: 700 12px var(--font-num, var(--font-body)); }
.modal input[type=text], .modal input[type=url], .modal input[type=number], .modal input[type=search], .modal input[type=date], .modal select, .modal textarea { border-radius: 10px; }
.modal input:not([type=checkbox]):not([type=radio]):not([type=color]):focus, .modal select:focus, .modal textarea:focus { border-color: color-mix(in srgb, var(--accent) 70%, transparent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent); outline: none; }
.modal label { font-weight: 600; color: var(--text-dim); }
.form-cols.three { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(320px, 0.9fr); }
.form-col-preview { position: relative; }
@media (max-width: 1280px) { .form-cols.three { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .form-cols.three .form-col-preview { grid-column: 1 / -1; } }
@media (max-width: 900px) { .form-cols, .form-cols.three { grid-template-columns: 1fr; overflow: auto; } }
.check-line { color: var(--text-dim); }
.qa-foot .check-line { margin: 0 auto 0 0 !important; }

/* ── «Куда записать» ── */
.dc-mode { display: grid; gap: 8px; }
.dc-mode-opt { display: flex !important; align-items: flex-start; gap: 10px; margin: 0 !important; padding: 11px 13px; border: 1px solid var(--line-2); border-radius: 11px; background: rgba(0, 0, 0, 0.18); cursor: pointer; transition: border-color var(--transition-fast), background var(--transition-fast); }
.dc-mode-opt input { width: auto !important; margin: 3px 0 0 !important; accent-color: var(--accent); }
.dc-mode-opt span { display: flex; flex-direction: column; gap: 2px; }
.dc-mode-opt b { font-size: 13.5px; color: var(--text-hi); }
.dc-mode-opt small { font-size: 12px; font-weight: 500; color: var(--text-mute); }
.dc-mode-opt:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 60%, transparent); background: color-mix(in srgb, var(--accent) 8%, transparent); }
.nc-top .dc-mode { grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 460px; }

/* ── Предпросмотр сообщения как в Discord ── */
.dc-preview { padding: 14px 14px 16px; border-radius: 12px; background: #313338; font: 400 14px/1.375 'gg sans', 'Noto Sans', var(--font-body); color: #dbdee1; }
.dc-msg { display: flex; gap: 12px; }
.dc-bot-ava { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, var(--accent), #2c6f64); color: #0b1514; font: 800 16px var(--font-head); }
.dc-body { min-width: 0; flex: 1; }
.dc-head { display: flex; align-items: center; gap: 6px; margin-bottom: 2px; }
.dc-head b { color: #f2f3f5; font-weight: 600; }
.dc-bot-tag { padding: 0 4px; border-radius: 3px; background: #5865f2; color: #fff; font: 600 12px/15px var(--font-body); }
.dc-time { font-size: 12px; color: #949ba4; }
.dc-content { margin-bottom: 4px; }
.dc-mention { padding: 0 2px; border-radius: 3px; background: rgba(88, 101, 242, 0.3); color: #c9cdfb; font-weight: 500; }
.dc-embed { display: flex; gap: 14px; max-width: 520px; margin-top: 2px; padding: 10px 14px 14px 12px; border-left: 4px solid var(--dc-color); border-radius: 4px; background: #2b2d31; }
.dc-embed-main { flex: 1; min-width: 0; }
.dc-author { font-size: 13px; font-weight: 600; color: #f2f3f5; margin-top: 4px; }
.dc-title { margin-top: 6px; font-weight: 700; color: #f2f3f5; font-size: 15px; }
.dc-desc {   white-space: normal; }
.dc-fields { display: grid;  gap: 8px 12px; margin-top: 8px; }
.dc-field { grid-column: 1 / -1; min-width: 0; }
.dc-field.inline { grid-column: auto; }
.dc-fname { font-size: 13px; font-weight: 700; color: #f2f3f5; margin-bottom: 2px; }
.dc-fval { font-size: 13.5px; overflow-wrap: anywhere; }
.dc-image { margin-top: 14px; }
.dc-image img, .dc-image video { display: block; max-width: 100%; max-height: 240px; border-radius: 4px; }
.dc-file { display: inline-block; padding: 10px 12px; border-radius: 6px; background: #1e1f22; font-size: 13px; }
.dc-footer { margin-top: 8px; font-size: 12px; color: #b5bac1; }
.dc-thumb { flex: none; display: grid; place-items: center; width: 80px; height: 80px; margin-top: 6px; border-radius: 4px; background: #1e1f22; color: #949ba4; font: 700 26px var(--font-body); overflow: hidden; }
.dc-thumb img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px) { .dc-fields { grid-template-columns: 1fr 1fr; } .dc-thumb { width: 56px; height: 56px; } }

/* ── Вложение и несколько людей ── */
.media-field { display: grid; gap: 8px; margin-top: 12px; }
.media-field-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.media-field-row input { flex: 1; min-width: 200px; margin: 0 !important; }
.media-field-row .btn-ghost svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.media-field-preview { display: flex; align-items: center; gap: 12px; padding: 8px; border: 1px dashed var(--line-2); border-radius: 10px; }
.media-field-preview img, .media-field-preview video { max-width: 140px; max-height: 90px; border-radius: 8px; object-fit: cover; }
.multi-person { display: grid; gap: 8px; }
.mp-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.mp-chips:empty { display: none; }
.picked-chip.sm { padding: 4px 6px 4px 8px; font-size: 13px; }

/* ── Записи учёта: вложение и Discord ── */
.rec-media { margin-top: 8px; }
.rec-media img, .rec-media video { max-width: 240px; max-height: 150px; border-radius: 8px; border: 1px solid var(--line-2); object-fit: cover; }
.rec-dc { display: inline-flex; align-items: center; margin-top: 8px; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; border: 1px solid var(--line-2); color: var(--text-dim); text-decoration: none; }
.rec-dc.sent { color: #c9cdfb; border-color: rgba(88, 101, 242, 0.5); background: rgba(88, 101, 242, 0.12); }
.rec-dc.queued { color: var(--scp-yellow); }
.rec-dc.error { color: var(--danger-light); border-color: color-mix(in srgb, var(--danger) 45%, transparent); }

/* ── Степени: номер в квадратике ── */
.degree-dots { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.degree-dot { display: inline-grid !important; place-items: center; width: 22px !important; height: 22px !important; border-radius: 6px !important; background: var(--degree-color) !important;
    color: #04211e; font: 800 12px/1 var(--font-num, var(--font-body)); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25); }
.org-degree-badge { display: inline-flex; align-items: center; gap: 7px; }
.deg-num, .degree-swatch { display: inline-grid !important; place-items: center; min-width: 20px; height: 20px; padding: 0 4px; border-radius: 6px; background: var(--degree-color); color: #04211e; font: 800 12px/1 var(--font-num, var(--font-body)); font-style: normal; }
.degree-option .degree-swatch { width: 24px; height: 24px; }

/* ── Анкеты по ступеням в досье ── */
.ds-label-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ak-slots { display: grid; gap: 8px; }
.ak-slot { display: grid; gap: 6px; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 11px; background: rgba(0, 0, 0, 0.18); }
.ak-slot.filled.ok { border-color: color-mix(in srgb, var(--success) 40%, transparent); }
.ak-slot.empty em, .ak-slot.legacy em { font-size: 12.5px; color: var(--text-mute); font-style: normal; }
.ak-slot-level { font: 650 12px var(--font-body); letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-mute); }
.ak-slot-run, .ak-pick { display: flex; align-items: center; gap: 10px; width: 100%; padding: 0; border: 0; background: none; color: inherit; text-align: left; cursor: pointer; }
.ak-slot-score { flex: none; display: grid; place-items: center; min-width: 38px; height: 34px; padding: 0 6px; border-radius: 9px; background: color-mix(in srgb, var(--success) 16%, transparent); color: var(--success); font: 800 15px var(--font-num, var(--font-body)); }
.ak-slot.warn .ak-slot-score, .ak-pick.failed .ak-slot-score { background: var(--danger-soft); color: var(--danger-light); }
.ak-slot-main { display: flex; flex-direction: column; min-width: 0; }
.ak-slot-main b { font-size: 13.5px; color: var(--text-hi); overflow-wrap: anywhere; }
.ak-slot-main small { font-size: 12px; color: var(--text-mute); }
.ak-slot-run:hover b { color: var(--accent-light, var(--accent)); }
.ak-slot-tools { display: flex; gap: 12px; }
.link-btn.danger { color: var(--danger-light); }
.ak-slot-legacy { font-size: 13px; }
.ak-pick-list { display: grid; gap: 8px; margin: 12px 0; max-height: 56vh; overflow: auto; }
.ak-pick { padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 12px; background: var(--bg-2); transition: border-color var(--transition-fast); }
.ak-pick:hover:not(:disabled) { border-color: color-mix(in srgb, var(--accent) 60%, transparent); }
.ak-pick:disabled { opacity: 0.55; cursor: not-allowed; }
.ak-pick .ak-slot-main { flex: 1; }
.ak-pick-status { font-size: 12px; font-weight: 600; color: var(--text-dim); }
.ak-pick.passed .ak-pick-status { color: var(--success); }

/* ── Подсчёт нормы v2 ── */
.week-chip { position: relative; }
.week-chip .wk-dot { position: absolute; top: 5px; right: 5px; width: 6px; height: 6px; border-radius: 50%; background: var(--success); }
.switch-row.compact { margin: 0; padding: 7px 12px; border-radius: 10px; font-size: 13px; }
.switch-row.compact .switch { width: 34px; height: 20px; }
.norm-week-card.v2 { display: grid; grid-template-columns: minmax(250px, 0.8fr) minmax(0, 1.4fr) minmax(0, 1fr); }
.norm-week-card.v2 .nwc-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 20px; border-top: 1px solid var(--line); background: rgba(0, 0, 0, 0.14); }
.nwc-actions svg, .nwc-status svg, #norms-actions svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nwc-status { display: grid; gap: 6px; margin-top: 12px; }
.nwc-st { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text-dim); }
.nwc-st.ok svg { color: var(--success); }
.nwc-st.muted { color: var(--text-mute); }
.nwc-st a { color: #c9cdfb; }
.nwc-note { margin-top: 10px; padding: 10px 12px; border-left: 2px solid var(--accent); border-radius: 0 8px 8px 0; background: rgba(0, 0, 0, 0.18); font-size: 13px; color: var(--text-dim); white-space: pre-line; }
.nwc-sub { margin-top: 10px; font-size: 12.5px; color: var(--text-mute); }
.nwc-rate.soft b { color: var(--text-dim); }
@media (max-width: 1200px) { .norm-week-card.v2 { grid-template-columns: 1fr; } }

.norm-table.v2 { min-width: 1480px; }
.norm-table.v2 col.c-person { width: 230px; } .norm-table.v2 col.c-progress { width: 230px; } .norm-table.v2 col.c-online { width: 84px; }
.norm-table.v2 col.c-metric { width: 92px; } .norm-table.v2 col.c-vac { width: 110px; } .norm-table.v2 col.c-result { width: 170px; } .norm-table.v2 col.c-act { width: 52px; }
.norm-table.v2 th small { font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--text-mute); }
.norm-table.v2 td.nt-num { padding: 10px 6px; }
.norm-table.v2 td.nt-num b { display: block; font: 650 15px var(--font-num, var(--font-body)); font-variant-numeric: tabular-nums; }
.norm-table.v2 td.nt-num small { display: block; margin-top: 2px; font: 600 12px var(--font-num, var(--font-body)); color: var(--success); opacity: 0.85; }
.norm-table.v2 td.nt-time small { color: var(--text-mute); }
.norm-table.v2 td.nt-num.zero b { color: var(--text-mute); font-weight: 500; }
.norm-table.v2 tbody tr:nth-child(even):not(.nt-group-row) td:not(.sticky-col) { background: rgba(255, 255, 255, 0.012); }
.nt-progress-sub { margin-top: 5px; font-size: 12px; color: var(--text-mute); }
.nt-group-sum { float: right; font: 500 12px var(--font-body); letter-spacing: 0; text-transform: none; color: var(--text-mute); }
.nt-card { display: inline-flex; align-items: center; gap: 7px; padding: 3px 10px 3px 6px; border: 1px solid color-mix(in srgb, var(--card-color) 50%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--card-color) 12%, transparent); font-size: 12.5px; font-weight: 600; color: var(--text-hi); white-space: nowrap; }
.nt-card i { width: 12px; height: 12px; border-radius: 3px; background: var(--card-color); }
.nt-miss { font-size: 12.5px; font-weight: 600; color: var(--danger-light); }
.nt-ok { font-size: 12.5px; font-weight: 600; color: var(--success); }

.refill-opts { display: grid; gap: 8px; margin: 14px 0; }
.refill-opt { display: flex !important; gap: 10px; align-items: flex-start; margin: 0 !important; padding: 11px 13px; border: 1px solid var(--line-2); border-radius: 11px; cursor: pointer; }
.refill-opt input { width: auto !important; margin: 3px 0 0 !important; accent-color: var(--accent); }
.refill-opt span { display: flex; flex-direction: column; gap: 2px; }
.refill-opt b { color: var(--text-hi); font-size: 13.5px; }
.refill-opt small { color: var(--text-mute); font-size: 12px; font-weight: 500; }
.refill-opt.off { opacity: 0.55; cursor: default; }
.refill-result { display: grid; gap: 6px; margin-bottom: 8px; padding: 12px 14px; border-radius: 11px; background: rgba(0, 0, 0, 0.2); }
.rr-line { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.rr-line svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.rr-line.ok svg { color: var(--success); } .rr-line.warn svg { color: var(--scp-yellow); }
.rr-failed { margin: 0; padding-left: 18px; font-size: 12.5px; color: var(--text-dim); max-height: 160px; overflow: auto; }

.nr-summary .nrs { display: grid; gap: 8px; padding: 14px 18px; border: 1px solid var(--line-2); border-radius: 13px; background: var(--bg-2); }
.nrs > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.nrs b { font-size: 15px; color: var(--text-hi); }
.nrs span { font-size: 12.5px; color: var(--text-mute); }
.nrs.ok { border-color: color-mix(in srgb, var(--success) 45%, transparent); } .nrs.ok b { color: var(--success); }
.nrs.bad { border-color: color-mix(in srgb, var(--danger) 40%, transparent); } .nrs.bad b { color: var(--danger-light); }
.nrs.ok .norm-bar i { background-position: 100% 0; } .nrs.bad .norm-bar i { background-position: 0 0; }

.ladder { display: grid; gap: 6px; margin-bottom: 10px; }
.ladder-step { display: grid; grid-template-columns: 34px minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 0.8fr) 32px; gap: 6px; align-items: center; }
.ladder-step select, .ladder-step input { margin: 0 !important; height: 36px; }
.ladder-n { display: grid; place-items: center; height: 36px; border-radius: 9px; background: var(--bg-3); font: 700 13px var(--font-num, var(--font-body)); color: var(--text-dim); }

.norm-cards .nc-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 12px; }
.nc-legend { flex: 1; min-width: 280px; font-size: 13px; line-height: 1.5; color: var(--text-dim); }
.nc-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13.5px; border: 1px solid var(--line-2); border-radius: 14px; overflow: hidden; background: var(--bg-2); }
.nc-table th { position: sticky; top: 0; z-index: 1; padding: 10px; background: var(--bg-3); font: 600 12px var(--font-body); color: var(--text-dim); text-align: left; }
.nc-table td { padding: 9px 10px; border-top: 1px solid var(--line); vertical-align: middle; }
.nc-table tr td:first-child { box-shadow: inset 3px 0 0 var(--card-color); }
.nc-table tr.off td { opacity: 0.55; }
.nc-table tr.issued td { opacity: 0.75; }
.nc-table input[type=text], .nc-table select { width: 100%; min-width: 70px; height: 34px; margin: 0 !important; }
.nc-table select { min-width: 190px; }
.nc-check input { width: 18px; height: 18px; accent-color: var(--accent); }
.nc-person { display: flex; align-items: center; gap: 10px; min-width: 200px; }
.nc-person b { display: block; color: var(--text-hi); }
.nc-person small.warn { color: var(--scp-yellow); font-size: 12px; }
.nc-ping { padding: 1px 6px; border: 1px solid var(--line-2); border-radius: 6px; background: rgba(88, 101, 242, 0.1); color: #c9cdfb; font: 500 12px var(--font-mono); cursor: pointer; }
.nc-ping:hover { border-color: rgba(88, 101, 242, 0.6); }
.nc-calc { min-width: 200px; }
.nc-calc b { display: block; font-size: 13px; }
.nc-calc small { font-size: 12px; color: var(--text-mute); }
.nc-streak { color: var(--danger-light); font-weight: 600; }
.nc-preview-wrap { margin-top: 16px; max-width: 640px; }
.nc-preview-wrap[hidden], #gc-preview-block[hidden], #dg-preview-block[hidden] { display: none; }

/* ═══════════════════════ v15 · отделка ═══════════════════════ */

/* Плавное появление раздела при переключении */
@keyframes flxContentIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
#content > * { animation: flxContentIn 0.32s cubic-bezier(.2, .8, .2, 1) both; }
#content > *:nth-child(2) { animation-delay: 0.04s; }
#content > *:nth-child(3) { animation-delay: 0.08s; }
@media (prefers-reduced-motion: reduce) { #content > *, .panel { animation: none !important; } }

/* Выделение текста, фокус с клавиатуры, полосы прокрутки */
::selection { background: color-mix(in srgb, var(--accent) 35%, transparent); color: #fff; }
:focus-visible { outline: 2px solid color-mix(in srgb, var(--accent) 75%, transparent); outline-offset: 2px; border-radius: 6px; }
* { scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, 0.14) transparent; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.12); border: 2px solid transparent; background-clip: padding-box; border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background-color: color-mix(in srgb, var(--accent) 55%, transparent); }

/* Меню: спокойные заголовки категорий, мягкая подсветка активного пункта */
.nav-category-toggle .nav-category-title { font: 650 12px var(--font-body) !important; letter-spacing: 0.09em !important; }
.nav-category-toggle:hover .nav-category-title { color: var(--text-hi); }
.nav-category.open > .nav-category-toggle .nav-category-title { color: var(--text-dim); }
.nav-link { transition: color 0.18s, background 0.18s, transform 0.18s; }
.nav-link:hover { background: rgba(255, 255, 255, 0.045); transform: translateX(2px); }
.nav-link.active { background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 16%, transparent), color-mix(in srgb, var(--accent) 3%, transparent) 70%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 14%, transparent); }
.sidebar { box-shadow: 1px 0 0 rgba(255, 255, 255, 0.04), 12px 0 40px -30px rgba(0, 0, 0, 0.8); }

/* Панели и карточки: тонкий световой край сверху и мягкая тень */
.panel, .command-panel, .norm-week-card, .dossier-panel, .sheet-section, .ak-tpl, .form-block, .settings-block, .uchet-col, .doc-tile {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045), 0 18px 40px -28px rgba(0, 0, 0, 0.75);
}
.panel { transition: border-color 0.2s, box-shadow 0.2s; }
.panel:hover { border-color: rgba(255, 255, 255, 0.1); }
.command-panel { isolation: isolate; }


/* Кнопки: объём и мягкий отклик */
.btn-primary {
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset, 0 8px 22px -10px color-mix(in srgb, var(--accent) 80%, transparent);
    transition: transform 0.15s, box-shadow 0.2s, filter 0.2s;
}
.btn-primary:hover:not(:disabled) { transform: translateY(-1px); filter: brightness(1.05); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset, 0 12px 26px -10px color-mix(in srgb, var(--accent) 90%, transparent); }
.btn-primary:active:not(:disabled) { transform: translateY(0); }
.btn-primary:disabled { opacity: 0.55; cursor: not-allowed; box-shadow: none; }
.btn-ghost, .btn-outline { transition: background 0.18s, border-color 0.18s, color 0.18s, transform 0.15s; }
.btn-ghost:hover:not(:disabled), .btn-outline:hover:not(:disabled) { transform: translateY(-1px); }
.act-btn { transition: background 0.18s, border-color 0.18s, color 0.18s, transform 0.15s; }
.act-btn:hover:not(:disabled) { transform: translateY(-1px); }

/* Цифры в шапках разделов — плитки с лёгким градиентом */
.banner-stats > div { background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.008)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); transition: border-color 0.2s; }
.banner-stats > div:hover { border-color: color-mix(in srgb, var(--accent) 35%, transparent); }

/* Аватар в личном деле — кольцо в цвет раздела */
.hero-avatar, .dossier-avatar { box-shadow: 0 0 0 3px var(--bg-1), 0 0 0 4px color-mix(in srgb, var(--accent) 45%, transparent), 0 14px 30px -12px color-mix(in srgb, var(--accent) 45%, transparent); }

/* Строка загрузки — бегущий блик вместо статичного текста */
@keyframes flxShimmer { from { background-position: -320px 0; } to { background-position: 320px 0; } }
.loading-line::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.05), transparent) no-repeat; background-size: 320px 100%; animation: flxShimmer 1.2s linear infinite; pointer-events: none; }

/* Таблицы: стеклянная шапка, ровные строки */

.norm-table.v2 .nt-row:hover td { background: color-mix(in srgb, var(--accent) 5%, var(--bg-2)) !important; }
.nt-row td:first-child { transition: box-shadow 0.2s; }

/* Чипы недель, сегменты, переключатели */
.week-chip { transition: background 0.18s, border-color 0.18s, color 0.18s, transform 0.15s; }
.week-chip:hover:not(.active) { transform: translateY(-1px); }
.seg { box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25); }
.seg-btn.active { box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset, 0 4px 12px -6px rgba(0, 0, 0, 0.6); }

/* Окна: мягкое появление и тень */
@keyframes flxModalIn { from { opacity: 0; transform: translateY(10px) scale(0.99); } to { opacity: 1; transform: none; } }
.modal { animation: flxModalIn 0.26s cubic-bezier(.2, .8, .2, 1) both; box-shadow: 0 40px 100px -30px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.05); }

/* Тосты */
.toast { backdrop-filter: blur(10px); box-shadow: 0 18px 40px -16px rgba(0, 0, 0, 0.8); }

/* Пустые состояния — аккуратная рамка */
.empty-state { border-style: dashed !important; background: rgba(255, 255, 255, 0.012); }

/* ═══════════════════════ v16 · фон: эмблема фонда и рамки ═══════════════════════
   Убраны все «документы» и схемы (план, досье, бланки, архив, штрихкоды, горизонтали).
   Основа фона — эмблема фонда со шкалой, как у прибора, в цвете раздела;
   поверх — тонкая рамка с уголками и делениями по краям рабочей области. */
:root {
    --contour: none;
    --emblem-mark: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="-20 -20 1240 1240" fill="none" stroke="%23fff" stroke-linejoin="round"%3E%3Ccircle cx="600" cy="600" r="588" stroke-width="1.6" stroke-opacity=".45"/%3E%3Ccircle cx="600" cy="600" r="548" stroke-width="1" stroke-opacity=".25"/%3E%3Cpath d="M600.0 48.0L600.0 16.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M619.8 32.3L620.4 16.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M639.6 33.4L640.7 17.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M659.4 35.1L661.0 19.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M679.1 37.5L681.3 21.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M697.6 46.5L701.4 24.9" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M718.1 44.4L721.4 28.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M737.4 48.9L741.3 33.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M756.6 54.0L761.0 38.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M775.5 59.8L780.5 44.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M792.2 71.9L799.7 51.2" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M812.8 73.4L818.8 58.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M831.0 81.1L837.5 66.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M849.0 89.5L856.0 75.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M866.7 98.5L874.2 84.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M876.0 122.0L892.0 94.2" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M901.0 118.3L909.5 104.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M917.6 129.1L926.6 115.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M933.9 140.5L943.3 127.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M949.7 152.4L959.5 139.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M961.2 169.5L975.4 152.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M980.1 177.9L990.8 166.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M994.6 191.4L1005.7 179.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1008.6 205.4L1020.1 194.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1022.1 219.9L1034.0 209.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1030.5 238.8L1047.4 224.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1047.6 250.3L1060.2 240.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1059.5 266.1L1072.5 256.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1070.9 282.4L1084.2 273.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1081.7 299.0L1095.3 290.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1078.0 324.0L1105.8 308.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1101.5 333.3L1115.6 325.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1110.5 351.0L1124.9 344.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1118.9 369.0L1133.5 362.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1126.6 387.2L1141.5 381.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1128.1 407.8L1148.8 400.3" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1140.2 424.5L1155.4 419.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1146.0 443.4L1161.4 439.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1151.1 462.6L1166.7 458.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1155.6 481.9L1171.2 478.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1153.5 502.4L1175.1 498.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1162.5 520.9L1178.3 518.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1164.9 540.6L1180.8 539.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1166.6 560.4L1182.6 559.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1167.7 580.2L1183.6 579.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1152.0 600.0L1184.0 600.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1167.7 619.8L1183.6 620.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1166.6 639.6L1182.6 640.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1164.9 659.4L1180.8 661.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1162.5 679.1L1178.3 681.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1153.5 697.6L1175.1 701.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1155.6 718.1L1171.2 721.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1151.1 737.4L1166.7 741.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1146.0 756.6L1161.4 761.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1140.2 775.5L1155.4 780.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1128.1 792.2L1148.8 799.7" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1126.6 812.8L1141.5 818.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1118.9 831.0L1133.5 837.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1110.5 849.0L1124.9 856.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1101.5 866.7L1115.6 874.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1078.0 876.0L1105.8 892.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1081.7 901.0L1095.3 909.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1070.9 917.6L1084.2 926.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1059.5 933.9L1072.5 943.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1047.6 949.7L1060.2 959.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1030.5 961.2L1047.4 975.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1022.1 980.1L1034.0 990.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1008.6 994.6L1020.1 1005.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M994.6 1008.6L1005.7 1020.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M980.1 1022.1L990.8 1034.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M961.2 1030.5L975.4 1047.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M949.7 1047.6L959.5 1060.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M933.9 1059.5L943.3 1072.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M917.6 1070.9L926.6 1084.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M901.0 1081.7L909.5 1095.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M876.0 1078.0L892.0 1105.8" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M866.7 1101.5L874.2 1115.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M849.0 1110.5L856.0 1124.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M831.0 1118.9L837.5 1133.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M812.8 1126.6L818.8 1141.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M792.2 1128.1L799.7 1148.8" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M775.5 1140.2L780.5 1155.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M756.6 1146.0L761.0 1161.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M737.4 1151.1L741.3 1166.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M718.1 1155.6L721.4 1171.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M697.6 1153.5L701.4 1175.1" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M679.1 1162.5L681.3 1178.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M659.4 1164.9L661.0 1180.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M639.6 1166.6L640.7 1182.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M619.8 1167.7L620.4 1183.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M600.0 1152.0L600.0 1184.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M580.2 1167.7L579.6 1183.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M560.4 1166.6L559.3 1182.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M540.6 1164.9L539.0 1180.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M520.9 1162.5L518.7 1178.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M502.4 1153.5L498.6 1175.1" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M481.9 1155.6L478.6 1171.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M462.6 1151.1L458.7 1166.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M443.4 1146.0L439.0 1161.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M424.5 1140.2L419.5 1155.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M407.8 1128.1L400.3 1148.8" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M387.2 1126.6L381.2 1141.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M369.0 1118.9L362.5 1133.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M351.0 1110.5L344.0 1124.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M333.3 1101.5L325.8 1115.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M324.0 1078.0L308.0 1105.8" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M299.0 1081.7L290.5 1095.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M282.4 1070.9L273.4 1084.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M266.1 1059.5L256.7 1072.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M250.3 1047.6L240.5 1060.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M238.8 1030.5L224.6 1047.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M219.9 1022.1L209.2 1034.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M205.4 1008.6L194.3 1020.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M191.4 994.6L179.9 1005.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M177.9 980.1L166.0 990.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M169.5 961.2L152.6 975.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M152.4 949.7L139.8 959.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M140.5 933.9L127.5 943.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M129.1 917.6L115.8 926.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M118.3 901.0L104.7 909.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M122.0 876.0L94.2 892.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M98.5 866.7L84.4 874.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M89.5 849.0L75.1 856.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M81.1 831.0L66.5 837.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M73.4 812.8L58.5 818.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M71.9 792.2L51.2 799.7" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M59.8 775.5L44.6 780.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M54.0 756.6L38.6 761.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.9 737.4L33.3 741.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M44.4 718.1L28.8 721.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M46.5 697.6L24.9 701.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M37.5 679.1L21.7 681.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M35.1 659.4L19.2 661.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M33.4 639.6L17.4 640.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M32.3 619.8L16.4 620.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.0 600.0L16.0 600.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M32.3 580.2L16.4 579.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M33.4 560.4L17.4 559.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M35.1 540.6L19.2 539.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M37.5 520.9L21.7 518.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M46.5 502.4L24.9 498.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M44.4 481.9L28.8 478.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.9 462.6L33.3 458.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M54.0 443.4L38.6 439.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M59.8 424.5L44.6 419.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M71.9 407.8L51.2 400.3" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M73.4 387.2L58.5 381.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M81.1 369.0L66.5 362.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M89.5 351.0L75.1 344.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M98.5 333.3L84.4 325.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M122.0 324.0L94.2 308.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M118.3 299.0L104.7 290.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M129.1 282.4L115.8 273.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M140.5 266.1L127.5 256.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M152.4 250.3L139.8 240.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M169.5 238.8L152.6 224.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M177.9 219.9L166.0 209.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M191.4 205.4L179.9 194.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M205.4 191.4L194.3 179.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M219.9 177.9L209.2 166.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M238.8 169.5L224.6 152.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M250.3 152.4L240.5 139.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M266.1 140.5L256.7 127.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M282.4 129.1L273.4 115.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M299.0 118.3L290.5 104.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M324.0 122.0L308.0 94.2" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M333.3 98.5L325.8 84.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M351.0 89.5L344.0 75.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M369.0 81.1L362.5 66.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M387.2 73.4L381.2 58.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M407.8 71.9L400.3 51.2" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M424.5 59.8L419.5 44.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M443.4 54.0L439.0 38.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M462.6 48.9L458.7 33.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M481.9 44.4L478.6 28.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M502.4 46.5L498.6 24.9" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M520.9 37.5L518.7 21.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M540.6 35.1L539.0 19.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M560.4 33.4L559.3 17.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M580.2 32.3L579.6 16.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Ccircle cx="600" cy="600" r="522" stroke-width="2" stroke-opacity=".35" stroke-dasharray="2 14" stroke-linecap="round"/%3E%3Cpath d="M600.0 -13.0L609.0 -4.0L600.0 5.0L591.0 -4.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M1204.0 591.0L1213.0 600.0L1204.0 609.0L1195.0 600.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M600.0 1195.0L609.0 1204.0L600.0 1213.0L591.0 1204.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M-4.0 591.0L5.0 600.0L-4.0 609.0L-13.0 600.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cg transform="translate(150 150) scale(.9)"%3E %3Cpath d="M300 40 H700 L960 300 V700 L700 960 H300 L40 700 V300 Z" stroke-width="14" stroke-opacity=".8"/%3E %3Cpath d="M330 110 H670 L890 330 V670 L670 890 H330 L110 670 V330 Z" stroke-width="5" stroke-opacity=".45" stroke-dasharray="60 26"/%3E %3Ccircle cx="500" cy="500" r="300" stroke-width="40" stroke-dasharray="380 91" stroke-opacity=".9"/%3E %3Ccircle cx="500" cy="500" r="205" stroke-width="8" stroke-opacity=".6"/%3E %3Ccircle cx="500" cy="500" r="96" stroke-width="26"/%3E %3Cg stroke-width="24" stroke-linecap="square"%3E%3Cpath d="M500 140 V250"/%3E%3Cpath d="M500 750 V860"/%3E%3Cpath d="M140 500 H250"/%3E%3Cpath d="M750 500 H860"/%3E%3C/g%3E %3Cg stroke-width="8" stroke-opacity=".6"%3E%3Cpath d="M500 404 V596"/%3E%3Cpath d="M404 500 H596"/%3E%3C/g%3E %3C/g%3E%3C/svg%3E');
    --emblem-dim: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="-20 -20 1240 1240" fill="none" stroke="%23fff" stroke-linejoin="round"%3E%3Cg opacity=".055"%3E%3Ccircle cx="600" cy="600" r="588" stroke-width="1.6" stroke-opacity=".45"/%3E%3Ccircle cx="600" cy="600" r="548" stroke-width="1" stroke-opacity=".25"/%3E%3Cpath d="M600.0 48.0L600.0 16.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M619.8 32.3L620.4 16.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M639.6 33.4L640.7 17.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M659.4 35.1L661.0 19.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M679.1 37.5L681.3 21.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M697.6 46.5L701.4 24.9" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M718.1 44.4L721.4 28.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M737.4 48.9L741.3 33.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M756.6 54.0L761.0 38.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M775.5 59.8L780.5 44.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M792.2 71.9L799.7 51.2" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M812.8 73.4L818.8 58.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M831.0 81.1L837.5 66.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M849.0 89.5L856.0 75.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M866.7 98.5L874.2 84.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M876.0 122.0L892.0 94.2" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M901.0 118.3L909.5 104.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M917.6 129.1L926.6 115.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M933.9 140.5L943.3 127.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M949.7 152.4L959.5 139.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M961.2 169.5L975.4 152.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M980.1 177.9L990.8 166.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M994.6 191.4L1005.7 179.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1008.6 205.4L1020.1 194.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1022.1 219.9L1034.0 209.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1030.5 238.8L1047.4 224.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1047.6 250.3L1060.2 240.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1059.5 266.1L1072.5 256.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1070.9 282.4L1084.2 273.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1081.7 299.0L1095.3 290.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1078.0 324.0L1105.8 308.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1101.5 333.3L1115.6 325.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1110.5 351.0L1124.9 344.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1118.9 369.0L1133.5 362.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1126.6 387.2L1141.5 381.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1128.1 407.8L1148.8 400.3" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1140.2 424.5L1155.4 419.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1146.0 443.4L1161.4 439.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1151.1 462.6L1166.7 458.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1155.6 481.9L1171.2 478.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1153.5 502.4L1175.1 498.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1162.5 520.9L1178.3 518.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1164.9 540.6L1180.8 539.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1166.6 560.4L1182.6 559.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1167.7 580.2L1183.6 579.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1152.0 600.0L1184.0 600.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1167.7 619.8L1183.6 620.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1166.6 639.6L1182.6 640.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1164.9 659.4L1180.8 661.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1162.5 679.1L1178.3 681.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1153.5 697.6L1175.1 701.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1155.6 718.1L1171.2 721.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1151.1 737.4L1166.7 741.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1146.0 756.6L1161.4 761.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1140.2 775.5L1155.4 780.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1128.1 792.2L1148.8 799.7" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1126.6 812.8L1141.5 818.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1118.9 831.0L1133.5 837.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1110.5 849.0L1124.9 856.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1101.5 866.7L1115.6 874.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1078.0 876.0L1105.8 892.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1081.7 901.0L1095.3 909.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1070.9 917.6L1084.2 926.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1059.5 933.9L1072.5 943.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1047.6 949.7L1060.2 959.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1030.5 961.2L1047.4 975.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1022.1 980.1L1034.0 990.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1008.6 994.6L1020.1 1005.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M994.6 1008.6L1005.7 1020.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M980.1 1022.1L990.8 1034.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M961.2 1030.5L975.4 1047.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M949.7 1047.6L959.5 1060.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M933.9 1059.5L943.3 1072.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M917.6 1070.9L926.6 1084.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M901.0 1081.7L909.5 1095.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M876.0 1078.0L892.0 1105.8" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M866.7 1101.5L874.2 1115.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M849.0 1110.5L856.0 1124.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M831.0 1118.9L837.5 1133.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M812.8 1126.6L818.8 1141.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M792.2 1128.1L799.7 1148.8" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M775.5 1140.2L780.5 1155.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M756.6 1146.0L761.0 1161.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M737.4 1151.1L741.3 1166.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M718.1 1155.6L721.4 1171.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M697.6 1153.5L701.4 1175.1" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M679.1 1162.5L681.3 1178.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M659.4 1164.9L661.0 1180.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M639.6 1166.6L640.7 1182.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M619.8 1167.7L620.4 1183.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M600.0 1152.0L600.0 1184.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M580.2 1167.7L579.6 1183.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M560.4 1166.6L559.3 1182.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M540.6 1164.9L539.0 1180.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M520.9 1162.5L518.7 1178.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M502.4 1153.5L498.6 1175.1" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M481.9 1155.6L478.6 1171.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M462.6 1151.1L458.7 1166.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M443.4 1146.0L439.0 1161.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M424.5 1140.2L419.5 1155.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M407.8 1128.1L400.3 1148.8" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M387.2 1126.6L381.2 1141.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M369.0 1118.9L362.5 1133.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M351.0 1110.5L344.0 1124.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M333.3 1101.5L325.8 1115.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M324.0 1078.0L308.0 1105.8" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M299.0 1081.7L290.5 1095.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M282.4 1070.9L273.4 1084.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M266.1 1059.5L256.7 1072.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M250.3 1047.6L240.5 1060.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M238.8 1030.5L224.6 1047.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M219.9 1022.1L209.2 1034.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M205.4 1008.6L194.3 1020.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M191.4 994.6L179.9 1005.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M177.9 980.1L166.0 990.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M169.5 961.2L152.6 975.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M152.4 949.7L139.8 959.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M140.5 933.9L127.5 943.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M129.1 917.6L115.8 926.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M118.3 901.0L104.7 909.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M122.0 876.0L94.2 892.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M98.5 866.7L84.4 874.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M89.5 849.0L75.1 856.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M81.1 831.0L66.5 837.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M73.4 812.8L58.5 818.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M71.9 792.2L51.2 799.7" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M59.8 775.5L44.6 780.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M54.0 756.6L38.6 761.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.9 737.4L33.3 741.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M44.4 718.1L28.8 721.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M46.5 697.6L24.9 701.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M37.5 679.1L21.7 681.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M35.1 659.4L19.2 661.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M33.4 639.6L17.4 640.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M32.3 619.8L16.4 620.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.0 600.0L16.0 600.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M32.3 580.2L16.4 579.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M33.4 560.4L17.4 559.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M35.1 540.6L19.2 539.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M37.5 520.9L21.7 518.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M46.5 502.4L24.9 498.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M44.4 481.9L28.8 478.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.9 462.6L33.3 458.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M54.0 443.4L38.6 439.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M59.8 424.5L44.6 419.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M71.9 407.8L51.2 400.3" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M73.4 387.2L58.5 381.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M81.1 369.0L66.5 362.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M89.5 351.0L75.1 344.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M98.5 333.3L84.4 325.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M122.0 324.0L94.2 308.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M118.3 299.0L104.7 290.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M129.1 282.4L115.8 273.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M140.5 266.1L127.5 256.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M152.4 250.3L139.8 240.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M169.5 238.8L152.6 224.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M177.9 219.9L166.0 209.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M191.4 205.4L179.9 194.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M205.4 191.4L194.3 179.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M219.9 177.9L209.2 166.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M238.8 169.5L224.6 152.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M250.3 152.4L240.5 139.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M266.1 140.5L256.7 127.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M282.4 129.1L273.4 115.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M299.0 118.3L290.5 104.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M324.0 122.0L308.0 94.2" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M333.3 98.5L325.8 84.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M351.0 89.5L344.0 75.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M369.0 81.1L362.5 66.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M387.2 73.4L381.2 58.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M407.8 71.9L400.3 51.2" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M424.5 59.8L419.5 44.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M443.4 54.0L439.0 38.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M462.6 48.9L458.7 33.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M481.9 44.4L478.6 28.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M502.4 46.5L498.6 24.9" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M520.9 37.5L518.7 21.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M540.6 35.1L539.0 19.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M560.4 33.4L559.3 17.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M580.2 32.3L579.6 16.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Ccircle cx="600" cy="600" r="522" stroke-width="2" stroke-opacity=".35" stroke-dasharray="2 14" stroke-linecap="round"/%3E%3Cpath d="M600.0 -13.0L609.0 -4.0L600.0 5.0L591.0 -4.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M1204.0 591.0L1213.0 600.0L1204.0 609.0L1195.0 600.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M600.0 1195.0L609.0 1204.0L600.0 1213.0L591.0 1204.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M-4.0 591.0L5.0 600.0L-4.0 609.0L-13.0 600.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cg transform="translate(150 150) scale(.9)"%3E %3Cpath d="M300 40 H700 L960 300 V700 L700 960 H300 L40 700 V300 Z" stroke-width="14" stroke-opacity=".8"/%3E %3Cpath d="M330 110 H670 L890 330 V670 L670 890 H330 L110 670 V330 Z" stroke-width="5" stroke-opacity=".45" stroke-dasharray="60 26"/%3E %3Ccircle cx="500" cy="500" r="300" stroke-width="40" stroke-dasharray="380 91" stroke-opacity=".9"/%3E %3Ccircle cx="500" cy="500" r="205" stroke-width="8" stroke-opacity=".6"/%3E %3Ccircle cx="500" cy="500" r="96" stroke-width="26"/%3E %3Cg stroke-width="24" stroke-linecap="square"%3E%3Cpath d="M500 140 V250"/%3E%3Cpath d="M500 750 V860"/%3E%3Cpath d="M140 500 H250"/%3E%3Cpath d="M750 500 H860"/%3E%3C/g%3E %3Cg stroke-width="8" stroke-opacity=".6"%3E%3Cpath d="M500 404 V596"/%3E%3Cpath d="M404 500 H596"/%3E%3C/g%3E %3C/g%3E%3C/g%3E%3C/svg%3E');
}

/* Свет и зерно (без горизонталей) */
body::before {
    background-image:
        var(--grain),
        radial-gradient(1000px 600px at 82% 6%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%),
        radial-gradient(700px 500px at 30% -10%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 70%),
        radial-gradient(900px 600px at 15% 112%, rgba(90, 169, 255, 0.05), transparent 70%),
        radial-gradient(rgba(255, 255, 255, 0.022) 1px, transparent 1.2px) !important;
    background-size: 180px 180px, auto, auto, auto, 26px 26px !important;
    background-position: 0 0, 0 0, 0 0, 0 0, 0 0 !important;
    background-repeat: repeat, no-repeat, no-repeat, no-repeat, repeat !important;
    -webkit-mask-image: none !important; mask-image: none !important;
}

/* Эмблема фонда: окрашивается в цвет раздела через маску */
body::after, body[data-bg]::after {
    content: '' !important;
    position: fixed !important;
    inset: 0 0 0 var(--sidebar-w, 260px) !important;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(160deg, var(--accent), color-mix(in srgb, var(--accent) 40%, #5aa9ff)) !important;
    animation: flxEmblemIn 1.2s ease both !important;
    transform: none !important;
    transition: background 0.5s;
}
@keyframes flxEmblemIn { from { opacity: 0; } to { opacity: 0.075; } }
@media (max-width: 900px) { body::after, body[data-bg]::after { inset: 0 !important; -webkit-mask-size: 120vw 120vw; mask-size: 120vw 120vw; -webkit-mask-position: center 70%; mask-position: center 70%; opacity: 0.05 !important; } }

/* Рамка рабочей области: уголки, деления сверху/снизу/справа и метка по центру */
html body .app-shell::before {
    content: '' !important;
    display: block !important;
    position: fixed !important;
    z-index: -1 !important;
    pointer-events: none;
    top: 14px; right: 14px; bottom: 14px; left: calc(var(--sidebar-w, 260px) + 14px);
    border: 1px solid rgba(255, 255, 255, 0.04);
    opacity: 1 !important;
    --fc: color-mix(in srgb, var(--accent) 60%, transparent);
    --tk: rgba(255, 255, 255, 0.085);
    background:
        linear-gradient(var(--fc), var(--fc)) 0 0 / 30px 1px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 0 0 / 1px 30px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 100% 0 / 30px 1px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 100% 0 / 1px 30px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 0 100% / 30px 1px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 0 100% / 1px 30px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 100% 100% / 30px 1px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 100% 100% / 1px 30px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 50% 0 / 1px 12px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 50% 100% / 1px 12px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 100% 50% / 12px 1px no-repeat,
        repeating-linear-gradient(90deg, var(--tk) 0 1px, transparent 1px 48px) 50% 0 / calc(100% - 160px) 5px no-repeat,
        repeating-linear-gradient(90deg, var(--tk) 0 1px, transparent 1px 48px) 50% 100% / calc(100% - 160px) 5px no-repeat,
        repeating-linear-gradient(180deg, var(--tk) 0 1px, transparent 1px 48px) 100% 50% / 5px calc(100% - 160px) no-repeat,
        repeating-linear-gradient(180deg, var(--tk) 0 1px, transparent 1px 48px) 0 50% / 5px calc(100% - 160px) no-repeat !important;
    transition: --fc 0.5s;
}
/* Вертикальная направляющая у сайдбара */
.sidebar::after {
    content: ''; position: absolute; top: 14px; bottom: 14px; right: -1px; width: 1px; pointer-events: none;
    background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent) 35%, transparent) 18%, rgba(255, 255, 255, 0.06) 50%, color-mix(in srgb, var(--accent) 25%, transparent) 82%, transparent);
}
@media (max-width: 900px) { html body .app-shell::before { display: none !important; } .sidebar::after { display: none; } }

/* Окна и документ — без бланков и архивов, с тусклой эмблемой и той же рамкой */
.modal-overlay { background: radial-gradient(900px 520px at 85% 0%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 70%), rgba(8, 8, 10, 0.9) !important; }

.modal.modal-sheet {
    background-repeat: no-repeat !important;
    background-attachment: scroll !important;
}

.sr-ticks, .sr-hazard, .sr-redact, .sr-stamp { display: none !important; }

/* Уголки у крупных панелей — та же «рамочная» деталь */
.command-panel, .norm-week-card, .form-page .qa-head ~ .form-cols .form-block:first-child {
    --fc2: color-mix(in srgb, var(--accent) 55%, transparent);
}
.command-panel {
    background-repeat: no-repeat !important;
}
.page-banner .acs, .command-head .acs { position: relative; z-index: 1; }

/* Мелочи: метка-ромб у надзаголовков вместо черты */
.command-eyebrow::before { width: 7px !important; height: 7px !important; border-radius: 1px !important; transform: rotate(45deg); background: var(--accent) !important; }
.nwc-label, .ds-label, .ak-slot-level, .tbl-grp-t { letter-spacing: 0.08em; }


/* ═══════════════════════ v17 · левая часть фона: сетка, лучи и метки ═══════════════════════
   Одна эмблема — справа. Слева — «инженерная» сетка: вертикальные направляющие,
   по которым медленно стекают лучи света в цвет раздела, и метки «+» на пересечениях.
   Всё плавно растворяется к центру, чтобы не спорить с эмблемой и содержимым. */

/* Только одна эмблема на экране: убираем копии из шапок разделов и окон */

.modal.modal-full,
.modal-overlay.ak-run-overlay .modal.modal-full,
.modal-overlay.dk-dossier .modal.modal-full,
.modal-overlay.dossier-overlay .modal.modal-full {
    background:
        radial-gradient(800px 300px at 12% 0%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 70%),
        radial-gradient(700px 400px at 100% 100%, color-mix(in srgb, var(--accent) 4%, transparent), transparent 70%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.022), transparent 240px),
        var(--bg-1) !important;
}
.modal.modal-sheet {
    background-image:
        radial-gradient(800px 300px at 12% 0%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 70%),
        radial-gradient(700px 400px at 100% 100%, color-mix(in srgb, var(--accent) 4%, transparent), transparent 70%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 220px) !important;
    background-size: auto, auto, auto !important;
    background-position: 0 0, 0 0, 0 0 !important;
}
.doc-reader { background: radial-gradient(900px 500px at 100% 0%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 70%), var(--bg-0) !important; }

/* Эмблема чуть ярче и правее центра — она одна */
body::after, body[data-bg]::after { opacity: 0.085 !important; }
@keyframes flxEmblemIn { from { opacity: 0; } to { opacity: 0.085; } }

/* ═══════════════════════ v17 · левая часть фона и пропуск ═══════════════════════ */

/* Логотип — один (справа). В шапках разделов эмблему убираем, остаются уголки рамки */
.command-panel {
    background-image:
        linear-gradient(var(--fc2), var(--fc2)), linear-gradient(var(--fc2), var(--fc2)),
        linear-gradient(var(--fc2), var(--fc2)), linear-gradient(var(--fc2), var(--fc2)),
        radial-gradient(600px 180px at 18% 0%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 70%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.025), transparent 140px) !important;
    background-size: 18px 1px, 1px 18px, 18px 1px, 1px 18px, auto, auto !important;
    background-position: 100% 100%, 100% 100%, 0 100%, 0 100%, 0 0, 0 0 !important;
}

/* Левая часть: тонкая сетка с метками «+» и вертикальные лучи, по которым бегут вспышки света.
   Затухает к центру, чтобы не спорить с эмблемой справа. */
@keyframes flxBeams {
    from { background-position: 9% -30%, 23% -75%, 37% -10%, 51% -55%, 9% 0, 23% 0, 37% 0, 51% 0, 0 0, 0 0, 0 0; }
    to   { background-position: 9% 130%, 23% 85%, 37% 150%, 51% 105%, 9% 0, 23% 0, 37% 0, 51% 0, 0 0, 0 0, 0 0; }
}
html body .app-shell::after {
    content: '' !important;
    display: block !important;
    position: fixed !important;
    z-index: -2 !important;
    pointer-events: none;
    top: 0; bottom: 0; left: var(--sidebar-w, 260px); width: min(62vw, 1100px);
    --bm: rgba(255, 255, 255, 0.045);
    -webkit-mask-image: radial-gradient(ellipse 72% 78% at 26% 52%, #000 25%, rgba(0, 0, 0, 0.5) 52%, transparent 78%);
            mask-image: radial-gradient(ellipse 72% 78% at 26% 52%, #000 25%, rgba(0, 0, 0, 0.5) 52%, transparent 78%);
}
@media (prefers-reduced-motion: reduce) { html body .app-shell::after { animation: none !important; } }
@media (max-width: 900px) { html body .app-shell::after { display: none !important; } }

/* Плашки допуска в шапках больше нет — она переехала в пропуск у ника */
.command-head .acs, .page-banner .acs { display: none !important; }

/* ── Пропуск сотрудника внизу меню ── */
.sidebar-footer { position: relative; display: block !important; padding: 12px !important; }

.sidebar-footer .logout-btn { position: absolute;     z-index: 2; }
.pass-card {
    position: relative; overflow: hidden;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 12px 28px -18px rgba(0, 0, 0, 0.9);
}
/* Цветная кромка пропуска — по классу */
.pass-card::before { content: ''; position: absolute; left: 0;   width: 3px; border-radius: 0 3px 3px 0; background: var(--pass-c, var(--accent)); box-shadow: 0 0 12px var(--pass-c, var(--accent)); }

.pass-card[data-class="B"] {  }

.pass-card[data-class="D"] {  }
/* Тонкая «голограмма»: бегущий блик по пропуску */
.pass-card::after { content: ''; position: absolute; inset: -40% -60%; background: linear-gradient(105deg, transparent 42%, rgba(255, 255, 255, 0.07) 50%, transparent 58%); transform: translateX(-60%); animation: flxPassShine 7s ease-in-out infinite; pointer-events: none; }
@keyframes flxPassShine { 0%, 70% { transform: translateX(-60%); } 100% { transform: translateX(60%); } }
@media (prefers-reduced-motion: reduce) { .pass-card::after { animation: none; display: none; } }

.pass-ava { position: relative; flex: none; }
.pass-ava img, .pass-ava .avatar-ph { width: 40px !important; height: 40px !important; border-radius: 11px !important; box-shadow: 0 0 0 2px var(--bg-1), 0 0 0 3px color-mix(in srgb, var(--pass-c, var(--accent)) 55%, transparent); }
.pass-online { position: absolute; right: -2px; bottom: -2px; width: 10px; height: 10px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 2px var(--bg-1), 0 0 8px color-mix(in srgb, var(--success) 70%, transparent); }

.pass-role { margin-top: 2px; font-size: 12px; color: var(--text-mute); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pass-grid {   gap: 0;  border-top: 1px dashed rgba(255, 255, 255, 0.08); padding-top: 9px; }
.pass-cell { display: flex; flex-direction: column; gap: 3px; padding: 0 10px; border-left: 1px solid rgba(255, 255, 255, 0.06); min-width: 0; }
.pass-cell:first-child { padding-left: 6px; border-left: 0; }
.pass-cell span { font: 650 12px var(--font-body); letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-mute); }
.pass-cell b { font: 700 13px var(--font-body); color: var(--text-hi); white-space: nowrap; }
.pass-cell .class-badge { align-self: flex-start; }
.pass-level { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-num, var(--font-body)) !important; }
.pass-bars {   font-style: normal; }

.pass-bars i.on {   }

/* ═══════════════════════ v18 · живой фон, свет за курсором, пропуск ═══════════════════════ */

/* Эмблема: ядро неподвижно, шкала-безель медленно вращается вокруг него (оборот ~6 минут) */
:root { --em-size: min(94vh, 940px); --em-shift: min(14vh, 140px); }
body::after, body[data-bg]::after {
    -webkit-mask: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="-20 -20 1240 1240" fill="none" stroke="%23fff" stroke-linejoin="round"%3E%3Ccircle cx="600" cy="600" r="522" stroke-width="2" stroke-opacity=".35" stroke-dasharray="2 14" stroke-linecap="round"/%3E%3Cg transform="translate(150 150) scale(.9)"%3E %3Cpath d="M300 40 H700 L960 300 V700 L700 960 H300 L40 700 V300 Z" stroke-width="14" stroke-opacity=".8"/%3E %3Cpath d="M330 110 H670 L890 330 V670 L670 890 H330 L110 670 V330 Z" stroke-width="5" stroke-opacity=".45" stroke-dasharray="60 26"/%3E %3Ccircle cx="500" cy="500" r="300" stroke-width="40" stroke-dasharray="380 91" stroke-opacity=".9"/%3E %3Ccircle cx="500" cy="500" r="205" stroke-width="8" stroke-opacity=".6"/%3E %3Ccircle cx="500" cy="500" r="96" stroke-width="26"/%3E %3Cg stroke-width="24" stroke-linecap="square"%3E%3Cpath d="M500 140 V250"/%3E%3Cpath d="M500 750 V860"/%3E%3Cpath d="M140 500 H250"/%3E%3Cpath d="M750 500 H860"/%3E%3C/g%3E %3Cg stroke-width="8" stroke-opacity=".6"%3E%3Cpath d="M500 404 V596"/%3E%3Cpath d="M404 500 H596"/%3E%3C/g%3E %3C/g%3E%3C/svg%3E') no-repeat right calc(-1 * var(--em-shift)) center / var(--em-size) var(--em-size) !important;
            mask: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="-20 -20 1240 1240" fill="none" stroke="%23fff" stroke-linejoin="round"%3E%3Ccircle cx="600" cy="600" r="522" stroke-width="2" stroke-opacity=".35" stroke-dasharray="2 14" stroke-linecap="round"/%3E%3Cg transform="translate(150 150) scale(.9)"%3E %3Cpath d="M300 40 H700 L960 300 V700 L700 960 H300 L40 700 V300 Z" stroke-width="14" stroke-opacity=".8"/%3E %3Cpath d="M330 110 H670 L890 330 V670 L670 890 H330 L110 670 V330 Z" stroke-width="5" stroke-opacity=".45" stroke-dasharray="60 26"/%3E %3Ccircle cx="500" cy="500" r="300" stroke-width="40" stroke-dasharray="380 91" stroke-opacity=".9"/%3E %3Ccircle cx="500" cy="500" r="205" stroke-width="8" stroke-opacity=".6"/%3E %3Ccircle cx="500" cy="500" r="96" stroke-width="26"/%3E %3Cg stroke-width="24" stroke-linecap="square"%3E%3Cpath d="M500 140 V250"/%3E%3Cpath d="M500 750 V860"/%3E%3Cpath d="M140 500 H250"/%3E%3Cpath d="M750 500 H860"/%3E%3C/g%3E %3Cg stroke-width="8" stroke-opacity=".6"%3E%3Cpath d="M500 404 V596"/%3E%3Cpath d="M404 500 H596"/%3E%3C/g%3E %3C/g%3E%3C/svg%3E') no-repeat right calc(-1 * var(--em-shift)) center / var(--em-size) var(--em-size) !important;
}
html::before {
    content: ''; position: fixed; z-index: 0; pointer-events: none;
    width: var(--em-size); height: var(--em-size);
    top: calc(50% - var(--em-size) / 2); right: calc(-1 * var(--em-shift));
    background: linear-gradient(200deg, var(--accent), color-mix(in srgb, var(--accent) 35%, #5aa9ff));
    -webkit-mask: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="-20 -20 1240 1240" fill="none" stroke="%23fff" stroke-linejoin="round"%3E%3Ccircle cx="600" cy="600" r="588" stroke-width="1.6" stroke-opacity=".45"/%3E%3Ccircle cx="600" cy="600" r="548" stroke-width="1" stroke-opacity=".25"/%3E%3Cpath d="M600.0 48.0L600.0 16.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M619.8 32.3L620.4 16.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M639.6 33.4L640.7 17.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M659.4 35.1L661.0 19.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M679.1 37.5L681.3 21.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M697.6 46.5L701.4 24.9" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M718.1 44.4L721.4 28.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M737.4 48.9L741.3 33.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M756.6 54.0L761.0 38.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M775.5 59.8L780.5 44.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M792.2 71.9L799.7 51.2" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M812.8 73.4L818.8 58.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M831.0 81.1L837.5 66.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M849.0 89.5L856.0 75.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M866.7 98.5L874.2 84.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M876.0 122.0L892.0 94.2" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M901.0 118.3L909.5 104.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M917.6 129.1L926.6 115.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M933.9 140.5L943.3 127.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M949.7 152.4L959.5 139.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M961.2 169.5L975.4 152.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M980.1 177.9L990.8 166.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M994.6 191.4L1005.7 179.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1008.6 205.4L1020.1 194.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1022.1 219.9L1034.0 209.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1030.5 238.8L1047.4 224.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1047.6 250.3L1060.2 240.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1059.5 266.1L1072.5 256.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1070.9 282.4L1084.2 273.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1081.7 299.0L1095.3 290.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1078.0 324.0L1105.8 308.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1101.5 333.3L1115.6 325.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1110.5 351.0L1124.9 344.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1118.9 369.0L1133.5 362.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1126.6 387.2L1141.5 381.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1128.1 407.8L1148.8 400.3" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1140.2 424.5L1155.4 419.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1146.0 443.4L1161.4 439.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1151.1 462.6L1166.7 458.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1155.6 481.9L1171.2 478.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1153.5 502.4L1175.1 498.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1162.5 520.9L1178.3 518.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1164.9 540.6L1180.8 539.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1166.6 560.4L1182.6 559.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1167.7 580.2L1183.6 579.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1152.0 600.0L1184.0 600.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1167.7 619.8L1183.6 620.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1166.6 639.6L1182.6 640.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1164.9 659.4L1180.8 661.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1162.5 679.1L1178.3 681.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1153.5 697.6L1175.1 701.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1155.6 718.1L1171.2 721.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1151.1 737.4L1166.7 741.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1146.0 756.6L1161.4 761.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1140.2 775.5L1155.4 780.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1128.1 792.2L1148.8 799.7" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1126.6 812.8L1141.5 818.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1118.9 831.0L1133.5 837.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1110.5 849.0L1124.9 856.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1101.5 866.7L1115.6 874.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1078.0 876.0L1105.8 892.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1081.7 901.0L1095.3 909.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1070.9 917.6L1084.2 926.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1059.5 933.9L1072.5 943.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1047.6 949.7L1060.2 959.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1030.5 961.2L1047.4 975.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1022.1 980.1L1034.0 990.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1008.6 994.6L1020.1 1005.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M994.6 1008.6L1005.7 1020.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M980.1 1022.1L990.8 1034.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M961.2 1030.5L975.4 1047.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M949.7 1047.6L959.5 1060.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M933.9 1059.5L943.3 1072.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M917.6 1070.9L926.6 1084.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M901.0 1081.7L909.5 1095.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M876.0 1078.0L892.0 1105.8" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M866.7 1101.5L874.2 1115.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M849.0 1110.5L856.0 1124.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M831.0 1118.9L837.5 1133.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M812.8 1126.6L818.8 1141.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M792.2 1128.1L799.7 1148.8" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M775.5 1140.2L780.5 1155.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M756.6 1146.0L761.0 1161.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M737.4 1151.1L741.3 1166.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M718.1 1155.6L721.4 1171.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M697.6 1153.5L701.4 1175.1" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M679.1 1162.5L681.3 1178.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M659.4 1164.9L661.0 1180.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M639.6 1166.6L640.7 1182.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M619.8 1167.7L620.4 1183.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M600.0 1152.0L600.0 1184.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M580.2 1167.7L579.6 1183.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M560.4 1166.6L559.3 1182.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M540.6 1164.9L539.0 1180.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M520.9 1162.5L518.7 1178.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M502.4 1153.5L498.6 1175.1" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M481.9 1155.6L478.6 1171.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M462.6 1151.1L458.7 1166.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M443.4 1146.0L439.0 1161.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M424.5 1140.2L419.5 1155.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M407.8 1128.1L400.3 1148.8" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M387.2 1126.6L381.2 1141.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M369.0 1118.9L362.5 1133.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M351.0 1110.5L344.0 1124.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M333.3 1101.5L325.8 1115.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M324.0 1078.0L308.0 1105.8" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M299.0 1081.7L290.5 1095.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M282.4 1070.9L273.4 1084.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M266.1 1059.5L256.7 1072.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M250.3 1047.6L240.5 1060.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M238.8 1030.5L224.6 1047.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M219.9 1022.1L209.2 1034.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M205.4 1008.6L194.3 1020.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M191.4 994.6L179.9 1005.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M177.9 980.1L166.0 990.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M169.5 961.2L152.6 975.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M152.4 949.7L139.8 959.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M140.5 933.9L127.5 943.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M129.1 917.6L115.8 926.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M118.3 901.0L104.7 909.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M122.0 876.0L94.2 892.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M98.5 866.7L84.4 874.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M89.5 849.0L75.1 856.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M81.1 831.0L66.5 837.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M73.4 812.8L58.5 818.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M71.9 792.2L51.2 799.7" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M59.8 775.5L44.6 780.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M54.0 756.6L38.6 761.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.9 737.4L33.3 741.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M44.4 718.1L28.8 721.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M46.5 697.6L24.9 701.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M37.5 679.1L21.7 681.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M35.1 659.4L19.2 661.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M33.4 639.6L17.4 640.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M32.3 619.8L16.4 620.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.0 600.0L16.0 600.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M32.3 580.2L16.4 579.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M33.4 560.4L17.4 559.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M35.1 540.6L19.2 539.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M37.5 520.9L21.7 518.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M46.5 502.4L24.9 498.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M44.4 481.9L28.8 478.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.9 462.6L33.3 458.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M54.0 443.4L38.6 439.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M59.8 424.5L44.6 419.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M71.9 407.8L51.2 400.3" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M73.4 387.2L58.5 381.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M81.1 369.0L66.5 362.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M89.5 351.0L75.1 344.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M98.5 333.3L84.4 325.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M122.0 324.0L94.2 308.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M118.3 299.0L104.7 290.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M129.1 282.4L115.8 273.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M140.5 266.1L127.5 256.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M152.4 250.3L139.8 240.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M169.5 238.8L152.6 224.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M177.9 219.9L166.0 209.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M191.4 205.4L179.9 194.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M205.4 191.4L194.3 179.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M219.9 177.9L209.2 166.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M238.8 169.5L224.6 152.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M250.3 152.4L240.5 139.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M266.1 140.5L256.7 127.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M282.4 129.1L273.4 115.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M299.0 118.3L290.5 104.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M324.0 122.0L308.0 94.2" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M333.3 98.5L325.8 84.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M351.0 89.5L344.0 75.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M369.0 81.1L362.5 66.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M387.2 73.4L381.2 58.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M407.8 71.9L400.3 51.2" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M424.5 59.8L419.5 44.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M443.4 54.0L439.0 38.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M462.6 48.9L458.7 33.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M481.9 44.4L478.6 28.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M502.4 46.5L498.6 24.9" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M520.9 37.5L518.7 21.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M540.6 35.1L539.0 19.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M560.4 33.4L559.3 17.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M580.2 32.3L579.6 16.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M600.0 -13.0L609.0 -4.0L600.0 5.0L591.0 -4.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M1204.0 591.0L1213.0 600.0L1204.0 609.0L1195.0 600.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M600.0 1195.0L609.0 1204.0L600.0 1213.0L591.0 1204.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M-4.0 591.0L5.0 600.0L-4.0 609.0L-13.0 600.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3C/svg%3E') center / contain no-repeat;
            mask: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="-20 -20 1240 1240" fill="none" stroke="%23fff" stroke-linejoin="round"%3E%3Ccircle cx="600" cy="600" r="588" stroke-width="1.6" stroke-opacity=".45"/%3E%3Ccircle cx="600" cy="600" r="548" stroke-width="1" stroke-opacity=".25"/%3E%3Cpath d="M600.0 48.0L600.0 16.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M619.8 32.3L620.4 16.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M639.6 33.4L640.7 17.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M659.4 35.1L661.0 19.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M679.1 37.5L681.3 21.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M697.6 46.5L701.4 24.9" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M718.1 44.4L721.4 28.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M737.4 48.9L741.3 33.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M756.6 54.0L761.0 38.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M775.5 59.8L780.5 44.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M792.2 71.9L799.7 51.2" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M812.8 73.4L818.8 58.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M831.0 81.1L837.5 66.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M849.0 89.5L856.0 75.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M866.7 98.5L874.2 84.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M876.0 122.0L892.0 94.2" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M901.0 118.3L909.5 104.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M917.6 129.1L926.6 115.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M933.9 140.5L943.3 127.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M949.7 152.4L959.5 139.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M961.2 169.5L975.4 152.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M980.1 177.9L990.8 166.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M994.6 191.4L1005.7 179.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1008.6 205.4L1020.1 194.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1022.1 219.9L1034.0 209.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1030.5 238.8L1047.4 224.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1047.6 250.3L1060.2 240.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1059.5 266.1L1072.5 256.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1070.9 282.4L1084.2 273.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1081.7 299.0L1095.3 290.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1078.0 324.0L1105.8 308.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1101.5 333.3L1115.6 325.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1110.5 351.0L1124.9 344.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1118.9 369.0L1133.5 362.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1126.6 387.2L1141.5 381.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1128.1 407.8L1148.8 400.3" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1140.2 424.5L1155.4 419.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1146.0 443.4L1161.4 439.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1151.1 462.6L1166.7 458.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1155.6 481.9L1171.2 478.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1153.5 502.4L1175.1 498.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1162.5 520.9L1178.3 518.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1164.9 540.6L1180.8 539.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1166.6 560.4L1182.6 559.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1167.7 580.2L1183.6 579.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1152.0 600.0L1184.0 600.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1167.7 619.8L1183.6 620.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1166.6 639.6L1182.6 640.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1164.9 659.4L1180.8 661.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1162.5 679.1L1178.3 681.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1153.5 697.6L1175.1 701.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1155.6 718.1L1171.2 721.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1151.1 737.4L1166.7 741.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1146.0 756.6L1161.4 761.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1140.2 775.5L1155.4 780.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1128.1 792.2L1148.8 799.7" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1126.6 812.8L1141.5 818.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1118.9 831.0L1133.5 837.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1110.5 849.0L1124.9 856.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1101.5 866.7L1115.6 874.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1078.0 876.0L1105.8 892.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M1081.7 901.0L1095.3 909.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1070.9 917.6L1084.2 926.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1059.5 933.9L1072.5 943.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1047.6 949.7L1060.2 959.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1030.5 961.2L1047.4 975.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M1022.1 980.1L1034.0 990.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M1008.6 994.6L1020.1 1005.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M994.6 1008.6L1005.7 1020.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M980.1 1022.1L990.8 1034.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M961.2 1030.5L975.4 1047.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M949.7 1047.6L959.5 1060.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M933.9 1059.5L943.3 1072.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M917.6 1070.9L926.6 1084.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M901.0 1081.7L909.5 1095.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M876.0 1078.0L892.0 1105.8" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M866.7 1101.5L874.2 1115.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M849.0 1110.5L856.0 1124.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M831.0 1118.9L837.5 1133.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M812.8 1126.6L818.8 1141.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M792.2 1128.1L799.7 1148.8" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M775.5 1140.2L780.5 1155.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M756.6 1146.0L761.0 1161.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M737.4 1151.1L741.3 1166.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M718.1 1155.6L721.4 1171.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M697.6 1153.5L701.4 1175.1" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M679.1 1162.5L681.3 1178.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M659.4 1164.9L661.0 1180.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M639.6 1166.6L640.7 1182.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M619.8 1167.7L620.4 1183.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M600.0 1152.0L600.0 1184.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M580.2 1167.7L579.6 1183.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M560.4 1166.6L559.3 1182.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M540.6 1164.9L539.0 1180.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M520.9 1162.5L518.7 1178.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M502.4 1153.5L498.6 1175.1" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M481.9 1155.6L478.6 1171.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M462.6 1151.1L458.7 1166.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M443.4 1146.0L439.0 1161.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M424.5 1140.2L419.5 1155.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M407.8 1128.1L400.3 1148.8" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M387.2 1126.6L381.2 1141.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M369.0 1118.9L362.5 1133.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M351.0 1110.5L344.0 1124.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M333.3 1101.5L325.8 1115.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M324.0 1078.0L308.0 1105.8" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M299.0 1081.7L290.5 1095.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M282.4 1070.9L273.4 1084.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M266.1 1059.5L256.7 1072.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M250.3 1047.6L240.5 1060.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M238.8 1030.5L224.6 1047.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M219.9 1022.1L209.2 1034.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M205.4 1008.6L194.3 1020.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M191.4 994.6L179.9 1005.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M177.9 980.1L166.0 990.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M169.5 961.2L152.6 975.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M152.4 949.7L139.8 959.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M140.5 933.9L127.5 943.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M129.1 917.6L115.8 926.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M118.3 901.0L104.7 909.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M122.0 876.0L94.2 892.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M98.5 866.7L84.4 874.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M89.5 849.0L75.1 856.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M81.1 831.0L66.5 837.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M73.4 812.8L58.5 818.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M71.9 792.2L51.2 799.7" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M59.8 775.5L44.6 780.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M54.0 756.6L38.6 761.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.9 737.4L33.3 741.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M44.4 718.1L28.8 721.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M46.5 697.6L24.9 701.4" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M37.5 679.1L21.7 681.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M35.1 659.4L19.2 661.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M33.4 639.6L17.4 640.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M32.3 619.8L16.4 620.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.0 600.0L16.0 600.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M32.3 580.2L16.4 579.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M33.4 560.4L17.4 559.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M35.1 540.6L19.2 539.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M37.5 520.9L21.7 518.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M46.5 502.4L24.9 498.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M44.4 481.9L28.8 478.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M48.9 462.6L33.3 458.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M54.0 443.4L38.6 439.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M59.8 424.5L44.6 419.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M71.9 407.8L51.2 400.3" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M73.4 387.2L58.5 381.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M81.1 369.0L66.5 362.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M89.5 351.0L75.1 344.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M98.5 333.3L84.4 325.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M122.0 324.0L94.2 308.0" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M118.3 299.0L104.7 290.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M129.1 282.4L115.8 273.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M140.5 266.1L127.5 256.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M152.4 250.3L139.8 240.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M169.5 238.8L152.6 224.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M177.9 219.9L166.0 209.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M191.4 205.4L179.9 194.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M205.4 191.4L194.3 179.9" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M219.9 177.9L209.2 166.0" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M238.8 169.5L224.6 152.6" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M250.3 152.4L240.5 139.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M266.1 140.5L256.7 127.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M282.4 129.1L273.4 115.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M299.0 118.3L290.5 104.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M324.0 122.0L308.0 94.2" stroke-width="3" stroke-opacity="0.75"/%3E%3Cpath d="M333.3 98.5L325.8 84.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M351.0 89.5L344.0 75.1" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M369.0 81.1L362.5 66.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M387.2 73.4L381.2 58.5" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M407.8 71.9L400.3 51.2" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M424.5 59.8L419.5 44.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M443.4 54.0L439.0 38.6" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M462.6 48.9L458.7 33.3" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M481.9 44.4L478.6 28.8" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M502.4 46.5L498.6 24.9" stroke-width="1.8" stroke-opacity="0.5"/%3E%3Cpath d="M520.9 37.5L518.7 21.7" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M540.6 35.1L539.0 19.2" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M560.4 33.4L559.3 17.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M580.2 32.3L579.6 16.4" stroke-width="1.1" stroke-opacity="0.3"/%3E%3Cpath d="M600.0 -13.0L609.0 -4.0L600.0 5.0L591.0 -4.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M1204.0 591.0L1213.0 600.0L1204.0 609.0L1195.0 600.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M600.0 1195.0L609.0 1204.0L600.0 1213.0L591.0 1204.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3Cpath d="M-4.0 591.0L5.0 600.0L-4.0 609.0L-13.0 600.0Z" fill="%23fff" fill-opacity=".7" stroke="none"/%3E%3C/svg%3E') center / contain no-repeat;
    opacity: 0.09;
    animation: flxBezel 360s linear infinite, flxEmblemIn 1.6s ease both;
}
@keyframes flxBezel { to { transform: rotate(360deg); } }
@media (max-width: 900px) { html::before { display: none; } }
@media (prefers-reduced-motion: reduce) { html::before { animation: none; } }

/* Свет за курсором: мягкое пятно в цвет раздела и сетка, «проявляющаяся» вокруг мыши */
html::after {
    content: ''; position: fixed; inset: 0; z-index: 0; pointer-events: none;
    background:
        radial-gradient(420px circle at var(--mx, -1000px) var(--my, -1000px), color-mix(in srgb, var(--accent) 9%, transparent), transparent 70%),
        linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px) 0 0 / 48px 48px,
        linear-gradient(90deg, rgba(255, 255, 255, 0.07) 1px, transparent 1px) 0 0 / 48px 48px;
    -webkit-mask-image: radial-gradient(260px circle at var(--mx, -1000px) var(--my, -1000px), #000, transparent 75%);
            mask-image: radial-gradient(260px circle at var(--mx, -1000px) var(--my, -1000px), #000, transparent 75%);
}
@media (pointer: coarse) { html::after { display: none; } }

/* Лучи слева — чуть ярче, с мягким свечением */
html body .app-shell::after { --pc: color-mix(in srgb, var(--accent) 95%, #fff); opacity: 1 !important;  }

/* Подсветка плиток под курсором */
.cmd-tile, .trainee-row, .banner-stats > div, .doc-tile, .card-type-option, .stat-card { position: relative; }
.cmd-tile::after, .trainee-row::after, .banner-stats > div::after, .card-type-option::after, .stat-card::after {
    content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
    background: radial-gradient(220px circle at var(--tx, -300px) var(--ty, -300px), color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%);
    opacity: 0; transition: opacity 0.25s;
}
.cmd-tile:hover::after, .trainee-row:hover::after, .banner-stats > div:hover::after, .card-type-option:hover::after, .stat-card:hover::after { opacity: 1; }

/* ── Пропуск: как настоящая карта доступа ── */

.pass-card {
    display: block; width: 100%; text-align: left; font: inherit; color: inherit; cursor: pointer;
    padding: 10px 12px 11px !important;
    border-radius: 15px !important;
    border: 1px solid transparent !important;
    background:
        radial-gradient(260px 140px at 0% 0%, color-mix(in srgb, var(--pass-c) 20%, transparent), transparent 70%) padding-box,
        linear-gradient(180deg, #1d1d23, #17171c) padding-box,
        conic-gradient(from var(--pass-angle, 0deg), color-mix(in srgb, var(--pass-c) 70%, transparent), rgba(255, 255, 255, 0.06) 25%, rgba(255, 255, 255, 0.06) 50%, color-mix(in srgb, var(--pass-c) 45%, transparent) 75%, rgba(255, 255, 255, 0.06)) border-box !important;
    transition: transform 0.2s, box-shadow 0.2s;
}
.pass-card:hover { transform: translateY(-2px); box-shadow: 0 16px 34px -18px color-mix(in srgb, var(--pass-c) 70%, transparent), inset 0 1px 0 rgba(255, 255, 255, 0.06); }
@property --pass-angle { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes flxPassBorder { to { --pass-angle: 360deg; } }
.pass-card { animation: flxPassBorder 9s linear infinite; }
.pass-card[data-class="A"] { --pass-c: #b388ff; }
.pass-card[data-class="B"] { --pass-c: #ff5a4c; }
.pass-card[data-class="C"] { --pass-c: var(--accent); }
.pass-card[data-class="D"] { --pass-c: #9b9ba8; }
.pass-card::before { top: 34px !important; bottom: 12px !important; }
.pass-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 9px; padding-right: 30px; }
.pass-org { display: inline-flex; align-items: center; gap: 6px; font: 700 12px var(--font-body); letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-dim); }
.pass-chip { width: 14px; height: 10px; border-radius: 2.5px; background: linear-gradient(135deg, #e9d68a, #a8873b); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.25); position: relative; }
.pass-chip::after { content: ''; position: absolute; inset: 3px 4px; border: 1px solid rgba(0, 0, 0, 0.3); border-radius: 1px; }
.pass-no { font: 500 12px var(--font-mono); letter-spacing: 0.04em; color: var(--text-mute); }
.pass-top { display: flex !important; align-items: center; gap: 10px; padding-right: 0 !important; }
.pass-card .user-chip-text { display: flex; flex-direction: column; min-width: 0; }
.pass-card .name { display: block; font-size: 14.5px; font-weight: 700; color: var(--text-hi); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pass-degs { display: inline-flex; gap: 3px; margin-top: 5px; }
.pass-deg { display: inline-grid; place-items: center; width: 15px; height: 15px; border-radius: 4px; background: var(--degree-color); color: #04211e; font: 800 12px/1 var(--font-num, var(--font-body)); font-style: normal; }
.pass-grid { display: grid !important; grid-template-columns: 52px 1fr auto !important; align-items: end; margin-top: 10px !important; }
.pass-class b.pass-letter {
    display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; margin-top: 1px;
    font: 800 17px/1 var(--font-head); color: #fff;
    background: linear-gradient(145deg, var(--pass-c), color-mix(in srgb, var(--pass-c) 45%, #111));
    box-shadow: 0 6px 16px -6px var(--pass-c), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.pass-bars { display: flex !important; align-items: flex-end; gap: 3px; height: 18px; }
.pass-bars i { width: 7px !important; height: calc(6px + var(--n) * 2.4px) !important; border-radius: 2px !important; background: rgba(255, 255, 255, 0.09) !important; }
.pass-bars i.on { background: linear-gradient(180deg, color-mix(in srgb, var(--pass-c) 70%, #fff), var(--pass-c)) !important; box-shadow: 0 0 8px color-mix(in srgb, var(--pass-c) 55%, transparent) !important; }
.pass-cell b { font-size: 13px; }
.sidebar-footer .logout-btn {   width: 26px !important; height: 26px !important; border-radius: 8px; opacity: 0.75; }
.sidebar-footer .logout-btn:hover { opacity: 1; }
.sidebar-footer .logout-btn svg { width: 15px; height: 15px; }

/* ═══════════════════════ v19 · формы в общем стиле, упрощённый пропуск, детали ═══════════════════════ */

/* ── Пропуск: одна строка — класс, допуск, гриф ── */
.sidebar-footer .user-chip { display: block; width: 100%; }
.pass2 {
    --pc: var(--accent);
    position: relative; display: flex; align-items: center; gap: 11px; width: 100%;
    padding: 10px 46px 10px 12px; text-align: left; font: inherit; color: inherit; cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.07); border-radius: 13px;
    background: radial-gradient(200px 90px at 0% 50%, color-mix(in srgb, var(--pc) 14%, transparent), transparent 75%), rgba(255, 255, 255, 0.025);
    transition: border-color 0.2s, background 0.2s, transform 0.2s;
}
.pass2:hover { border-color: color-mix(in srgb, var(--pc) 45%, transparent); transform: translateY(-1px); }
.pass2::before { content: ''; position: absolute; left: -1px; top: 12px; bottom: 12px; width: 2px; border-radius: 2px; background: var(--pc); box-shadow: 0 0 10px var(--pc); }
.pass2[data-class="A"] { --pc: #b388ff; } .pass2[data-class="B"] { --pc: #ff5a4c; } .pass2[data-class="D"] { --pc: #9b9ba8; }
.pass2-ava { position: relative; flex: none; }
.pass2-ava img, .pass2-ava .avatar-ph { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; object-fit: cover; background: var(--bg-3); font-weight: 700; }
.pass2-online { position: absolute; right: -2px; bottom: -2px; width: 9px; height: 9px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 2px var(--bg-1); }
.pass2-main { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pass2-name { font-size: 14px; font-weight: 700; color: var(--text-hi); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pass2-line { display: flex; align-items: center; gap: 8px; }
.pass2-class { display: grid; place-items: center; min-width: 20px; height: 18px; padding: 0 5px; border-radius: 5px; font: 800 12px/1 var(--font-body); color: #fff; background: color-mix(in srgb, var(--pc) 70%, #111); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.pass2-level { display: inline-flex; gap: 2px; }
.pass2-level i { width: 4px; height: 10px; border-radius: 1.5px; background: rgba(255, 255, 255, 0.1); }
.pass2-level i.on { background: var(--pc); }
.pass2-grif { font-size: 12px; color: var(--text-mute); white-space: nowrap; }
.sidebar-footer .logout-btn { top: 50% !important; transform: translateY(-50%); right: 22px !important; }

/* ── Шапки разделов: блик, пробегающий по верхней кромке ── */
@keyframes flxEdgeSweep { 0%, 72% { background-position: -40% 0; } 100% { background-position: 140% 0; } }
.command-panel .term-bar { position: relative; }
.command-panel .term-bar::after {
    content: ''; position: absolute; left: 0; right: 0; top: -1px; height: 1px; pointer-events: none;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 90%, #fff), transparent) no-repeat;
    background-size: 30% 100%; animation: flxEdgeSweep 9s ease-in-out infinite;
}
.section-title { background: linear-gradient(180deg, #fff 30%, color-mix(in srgb, var(--accent) 22%, #d8dbe2)); -webkit-background-clip: text; background-clip: text; color: transparent !important; }

/* ── Окна и формы: тот же язык, что у фона — уголки рамки и сетка в нижнем левом углу ── */
.modal.modal-full { isolation: isolate; }
.modal.modal-full::after {
    content: ''; position: absolute; inset: 10px; z-index: -1; pointer-events: none;
    --fc: color-mix(in srgb, var(--accent) 55%, transparent);
    background:
        linear-gradient(var(--fc), var(--fc)) 0 0 / 22px 1px no-repeat, linear-gradient(var(--fc), var(--fc)) 0 0 / 1px 22px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 100% 0 / 22px 1px no-repeat, linear-gradient(var(--fc), var(--fc)) 100% 0 / 1px 22px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 0 100% / 22px 1px no-repeat, linear-gradient(var(--fc), var(--fc)) 0 100% / 1px 22px no-repeat,
        linear-gradient(var(--fc), var(--fc)) 100% 100% / 22px 1px no-repeat, linear-gradient(var(--fc), var(--fc)) 100% 100% / 1px 22px no-repeat;
}
.modal.modal-full,
.modal-overlay.ak-run-overlay .modal.modal-full,
.modal-overlay.dk-dossier .modal.modal-full,
.modal-overlay.dossier-overlay .modal.modal-full,
.modal.modal-sheet {
    background-color: var(--bg-1) !important;
    background-image:
        radial-gradient(800px 300px at 12% 0%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 70%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.022), transparent 240px),
        radial-gradient(ellipse 48% 58% at 0% 100%, transparent 0%, var(--bg-1) 100%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cpath d='M120 114v12M114 120h12' stroke='%23fff' stroke-opacity='.16'/%3E%3C/svg%3E"),
        linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px) !important;
    background-size: auto, auto, 100% 100%, 240px 240px, 48px 48px, 48px 48px !important;
    background-position: 0 0, 0 0, 0 0, 0 0, 0 0, 0 0 !important;
    background-repeat: no-repeat, no-repeat, no-repeat, repeat, repeat, repeat !important;
    background-attachment: scroll !important;
}

/* Блоки формы: цветная кромка слева у активного, ровные отступы */
.form-block { transition: border-color 0.2s, box-shadow 0.2s; }
.form-block:focus-within { border-color: color-mix(in srgb, var(--accent) 35%, transparent); box-shadow: inset 2px 0 0 var(--accent), 0 18px 40px -28px rgba(0, 0, 0, 0.75); }
.form-block:focus-within .fb-step { background: var(--accent); color: #0b1514; }

/* Поля ввода: мягкая подложка, наведение, единые размеры */
.modal input[type=text], .modal input[type=url], .modal input[type=number], .modal input[type=search], .modal input[type=date], .modal select, .modal textarea,
.content input[type=text], .content input[type=search], .content select {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.18)) !important;
    border-color: rgba(255, 255, 255, 0.09);
    transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;
}
.modal input:not([type=checkbox]):not([type=radio]):not([type=color]):hover, .modal select:hover, .modal textarea:hover { border-color: rgba(255, 255, 255, 0.16); }
.modal ::placeholder, .content ::placeholder { color: rgba(255, 255, 255, 0.28); }
.modal label:not(.dc-mode-opt):not(.refill-opt):not(.check-line):not(.factor-opt):not(.card-type-option):not(.degree-option):not(.switch-row):not(.copy-toggle):not(.rich-custom):not(.cp-native) {
    font: 650 12.5px var(--font-body); letter-spacing: 0.01em; color: var(--text-dim);
}
.modal h2 { letter-spacing: -0.02em !important; }
.qa-foot, .modal-actions { border-top-color: rgba(255, 255, 255, 0.06) !important; }
.modal-error:not(:empty) { padding: 8px 12px; border-radius: 9px; background: var(--danger-soft); color: var(--danger-light); font-size: 13px; }

/* Чекбоксы и радио в цвет раздела */
.modal input[type=checkbox], .modal input[type=radio], .content input[type=checkbox] { accent-color: var(--accent); }

/* Пустое место в форме карты — сама карта */
.card-visual-wrap { display: grid; place-items: center; gap: 16px; height: 100%; min-height: 320px; }
.card-visual {
    --card-color: var(--accent);
    position: relative; display: flex; flex-direction: column; justify-content: space-between;
    width: min(300px, 90%); aspect-ratio: 1.58; padding: 18px 20px; border-radius: 18px; overflow: hidden;
    background:
        radial-gradient(260px 160px at 100% 0%, color-mix(in srgb, var(--card-color) 55%, transparent), transparent 70%),
        linear-gradient(145deg, color-mix(in srgb, var(--card-color) 30%, #16161b), #121216 70%);
    border: 1px solid color-mix(in srgb, var(--card-color) 45%, transparent);
    box-shadow: 0 30px 60px -30px color-mix(in srgb, var(--card-color) 70%, transparent), inset 0 1px 0 rgba(255, 255, 255, 0.12);
    transform: perspective(900px) rotateX(6deg) rotateY(-10deg);
    animation: flxCardFloat 6s ease-in-out infinite;
}
.card-visual::after { content: ''; position: absolute; inset: -50%; background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.12) 50%, transparent 60%); animation: flxPassShine 5s ease-in-out infinite; pointer-events: none; }
@keyframes flxCardFloat { 50% { transform: perspective(900px) rotateX(2deg) rotateY(-4deg) translateY(-6px); } }
.cv-top { display: flex; justify-content: space-between; align-items: center; }
.cv-org { font: 700 12px var(--font-body); letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255, 255, 255, 0.6); }
.cv-emoji { font-size: 22px; }
.cv-name { font: 800 22px var(--font-body); color: #fff; letter-spacing: -0.01em; }
.cv-value { font: 800 34px/1 var(--font-num, var(--font-body)); color: #fff; }
.cv-value small { margin-left: 6px; font-size: 12px; font-weight: 600; color: rgba(255, 255, 255, 0.6); }
.cv-foot { display: flex; justify-content: space-between; font-size: 12.5px; color: rgba(255, 255, 255, 0.75); }
.cv-foot i { font-style: normal; text-transform: uppercase; letter-spacing: 0.1em; font-size: 12px; color: rgba(255, 255, 255, 0.55); }
.card-visual-note { max-width: 320px; margin: 0; text-align: center; font-size: 13px; color: var(--text-mute); }
@media (prefers-reduced-motion: reduce) { .card-visual, .card-visual::after, .command-panel .term-bar::after { animation: none; } }

/* Боковые карточки у форм — в стиле пропуска */
.sr-card, .sr-save, .sr-note { border-radius: 13px !important; border-color: rgba(255, 255, 255, 0.07) !important; background: radial-gradient(200px 90px at 0% 0%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 75%), rgba(20, 20, 24, 0.75) !important; }

/* ═══════════════════════ v20 · простые формы: карточка, шаги, ход заполнения ═══════════════════════ */
.modal.modal-sheet.sheet-simple > *:not(.modal-term):not(.modal-x):not(.modal-actions):not(.sheet-rail) { max-width: 780px; }
.modal.modal-sheet.sheet-simple > .modal-actions { padding-left: max(28px, calc((100% - 780px) / 2 + 28px)); padding-right: max(28px, calc((100% - 780px) / 2 + 28px)); }
@media (min-width: 1380px) {
    .modal.modal-sheet.sheet-simple > .sheet-rail {
        position: fixed; top: 104px; z-index: 1;
        display: flex; flex-direction: column; gap: 14px;
        width: 236px !important; max-width: none; margin: 0;
        pointer-events: none; user-select: none;
        animation: drawerIn 0.4s ease both;
    }
    .modal.modal-sheet.sheet-simple > .sheet-rail.left { left: calc(50vw - 390px - 270px); }
    .modal.modal-sheet.sheet-simple > .sheet-rail.right { right: calc(50vw - 390px - 270px); }
}

.fcard {
    --fc3: color-mix(in srgb, var(--accent) 60%, transparent);
    position: relative; margin-top: 6px; margin-bottom: 8px;
    border: 1px solid rgba(255, 255, 255, 0.07); border-radius: 16px;
    background:
        linear-gradient(90deg, transparent, var(--fc3) 30%, transparent 70%) 0 0 / 100% 1px no-repeat,
        radial-gradient(520px 180px at 0% 0%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 70%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0.008)),
        rgba(16, 16, 20, 0.72);
    box-shadow: 0 30px 70px -40px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.04);
    animation: flxCardIn 0.35s ease both;
}
@keyframes flxCardIn { from { opacity: 0; transform: translateY(8px); } }
.sc-head { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 20px 14px; border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
.sc-title { display: inline-flex; align-items: center; gap: 9px; font: 650 12px var(--font-body); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-mute); }
.sc-title i { width: 7px; height: 7px; border-radius: 1px; transform: rotate(45deg); background: var(--accent); box-shadow: 0 0 10px var(--accent); }
.sc-count { font: 600 12px var(--font-mono); color: var(--text-mute); }
.sc-count b { color: var(--accent-light); font-weight: 700; }
.sc-bar { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: transparent; overflow: hidden; }
.sc-bar i { display: block; height: 100%; width: calc(var(--prog, 0) * 100%); background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 40%, transparent), var(--accent)); box-shadow: 0 0 12px var(--accent); transition: width 0.4s cubic-bezier(.2, .8, .2, 1); }
.fcard.no-count .sc-count, .fcard.no-count .sc-bar { display: none; }
.fcard.is-done .sc-title { color: var(--accent-light); }
.fcard.is-done .sc-title::after { content: '· готово'; letter-spacing: 0.12em; }

.sc-body { counter-reset: fld; display: grid; gap: 4px; padding: 14px 14px 16px; }
.sc-body > :not(.fld) { margin-left: 8px; margin-right: 8px; }
.fld {
    position: relative; padding: 12px 16px 14px 54px; border-radius: 12px;
    border: 1px solid transparent; transition: background 0.2s, border-color 0.2s;
}
.fld:not(.fld-static) { counter-increment: fld; }
.fld:hover { background: rgba(255, 255, 255, 0.015); }
.fld.is-active { background: color-mix(in srgb, var(--accent) 5%, transparent); border-color: color-mix(in srgb, var(--accent) 22%, transparent); }
.fld:has(> .fld-label[style*="display: none"]), .fld:has(> .fld-label[hidden]) { display: none; }
.modal .fld > label.fld-label { display: block; margin: 2px 0 9px !important; color: var(--text); font-weight: 650; }
.fld.fld-opt > label.fld-label { color: var(--text-dim); }
.fld > input, .fld > select, .fld > textarea { width: 100%; margin-bottom: 0 !important; }
.fld > .hint-small, .fld > p { margin: 8px 0 0 !important; }
.fld-num {
    position: absolute; left: 16px; top: 12px; display: grid; place-items: center;
    width: 26px; height: 26px; border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(0, 0, 0, 0.3);
    font: 700 12px var(--font-mono); color: var(--text-mute);
    transition: background 0.25s, color 0.25s, border-color 0.25s, box-shadow 0.25s, transform 0.25s;
}
.fld-num::before { content: counter(fld, decimal-leading-zero); }
.fld-static .fld-num::before { content: '•'; }
.fld.is-active .fld-num { border-color: var(--accent); color: var(--accent-light); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent); }
.fld.is-filled .fld-num { background: var(--accent); border-color: var(--accent); color: #0b1514; transform: scale(1.02); }
.fld.is-filled .fld-num::before { content: '✓'; font-size: 13px; }
/* линия шагов между номерами */
.fld:not(:last-child)::before {
    content: ''; position: absolute; left: 29px; top: 42px; bottom: -8px; width: 1px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04));
}
.fld.is-filled:not(:last-child)::before { background: linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent) 20%, transparent)); }

/* правая колонка: список полей */
.sr-checklist { pointer-events: auto; display: grid; gap: 2px; padding: 14px 12px 12px; border: 1px solid rgba(255, 255, 255, 0.07); border-radius: 13px;
    background: radial-gradient(200px 90px at 100% 0%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 75%), rgba(20, 20, 24, 0.75); }
.sr-checklist .sr-note-title { margin: 0 4px 6px; }
.sr-check { display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 6px; border: 0; border-radius: 8px; background: none; color: var(--text-dim); font: 500 12.5px var(--font-body); text-align: left; cursor: pointer; }
.sr-check:hover { background: rgba(255, 255, 255, 0.04); color: var(--text); }
.sr-check i { flex: none; display: grid; place-items: center; width: 15px; height: 15px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, 0.2); font-style: normal; transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s, transform 0.2s, opacity 0.2s; }
.sr-check.on i { border-color: var(--accent); background: var(--accent); }
.sr-check.on i::before { content: '✓'; font-size: 12px; font-weight: 800; color: #0b1514; }
.sr-check.on span { color: var(--text); }
.sr-check span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sr-check em { font-style: normal; font-size: 12px; color: var(--text-mute); }
/* Колонка не раздвигается длинным названием: строка переносится внутри рамки */
.sr-checklist { grid-template-columns: minmax(0, 1fr); box-sizing: border-box; width: 100%; overflow: hidden; }
.sr-check { min-width: 0; align-items: flex-start; line-height: 1.35; }
.sr-check i { margin-top: 1px; }
.sr-check span { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere; }
.sr-check em { flex: none; margin-top: 1px; }

/* подсказка про Ctrl+Enter в нижней панели */
.hotkey-hint { margin-right: auto; display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--text-mute); white-space: nowrap; }
.hotkey-hint kbd { display: inline-block; padding: 0 5px; border: 1px solid var(--line-2); border-bottom-width: 2px; border-radius: 4px; font: 600 12px var(--font-mono); color: var(--text-dim); background: rgba(255, 255, 255, 0.04); }
@media (max-width: 760px) { .hotkey-hint { display: none; } .fld { padding-left: 14px; } .fld-num, .fld::before { display: none; } }
.btn-primary.hotkey-press { transform: scale(0.96); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent); }

/* Превью Discord в узких колонках: поля не дробят слова */
.dc-fields { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)) !important; }
.dc-fval, .dc-fname { word-break: normal; overflow-wrap: normal; hyphens: manual; }
.dc-fval .dc-mention, .dc-fval span { white-space: nowrap; }
/* Все поля заполнены — главная кнопка мягко «дышит» */
.modal:has(.fcard.is-done) .modal-actions .btn-primary { animation: flxReady 2.4s ease-in-out infinite; }
@keyframes flxReady { 50% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent) 22%, transparent), 0 10px 30px -10px var(--accent); } }
@media (prefers-reduced-motion: reduce) { .modal:has(.fcard.is-done) .modal-actions .btn-primary, .fcard { animation: none; } }
@media (max-width: 760px) { .sc-body { padding: 8px 6px 10px; } .fld { padding: 10px 10px 12px; } .sc-head { padding: 11px 14px 12px; } }
.modal.modal-sheet { overflow-x: hidden; }

/* ═══════════════════════ v21 · учёт: одна степень, компактно ═══════════════════════ */
@media (min-width: 1501px) {
    .uchet-head, .uchet-row { grid-template-columns: 26px minmax(200px, 1.4fr) minmax(170px, 1fr) 84px minmax(180px, 1.7fr) 74px !important; }
}
.uh-deg, .uchet-deg { justify-self: center; text-align: center; }
.uchet-deg .degree-dot { box-shadow: 0 0 0 3px color-mix(in srgb, var(--degree-color) 18%, transparent), 0 6px 16px -6px var(--degree-color); }
.uchet-detail-grid { grid-template-columns: minmax(0, 1fr) minmax(260px, 340px) !important; }
@media (max-width: 1200px) { .uchet-detail-grid { grid-template-columns: 1fr !important; } }

.degree-now {
    position: relative; display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 12px; align-items: start;
    padding: 14px; border-radius: 12px;
    border: 1px solid color-mix(in srgb, var(--degree-color) 30%, transparent);
    background: radial-gradient(240px 120px at 0% 0%, color-mix(in srgb, var(--degree-color) 16%, transparent), transparent 75%), rgba(0, 0, 0, 0.22);
}
.degree-now-num {
    display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px;
    background: var(--degree-color); color: #0b1514; font: 800 22px var(--font-num, var(--font-body));
    box-shadow: 0 10px 26px -10px var(--degree-color), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.degree-now-main { display: grid; gap: 3px; min-width: 0; }
.degree-now-main b { font-size: 14.5px; }
.degree-now-main small { color: var(--text-mute); font-size: 12px; }
.degree-hist { margin-top: 10px; display: grid; gap: 4px; }
.degree-hist-title { font: 650 12px var(--font-body); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-mute); margin: 2px 2px 4px; }
.degree-hist-row { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 5px 8px; border-radius: 8px; background: rgba(255, 255, 255, 0.02); font-size: 12.5px; color: var(--text-dim); }
.degree-hist-row i { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 5px; font: 700 12px var(--font-mono); font-style: normal; color: var(--degree-color); border: 1px solid color-mix(in srgb, var(--degree-color) 50%, transparent); }
.degree-hist-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: line-through; text-decoration-color: rgba(255, 255, 255, 0.25); }
.degree-hist-row small { color: var(--text-mute); font-size: 12px; white-space: nowrap; }

/* окно выдачи степени: текущая степень человека */
.degree-current { display: flex; align-items: center; gap: 12px; margin-top: 12px; padding: 11px 13px; border-radius: 11px; border: 1px dashed color-mix(in srgb, var(--warning, #e2c34b) 45%, transparent); background: color-mix(in srgb, var(--warning, #e2c34b) 7%, transparent); }
.degree-current.same { border-color: rgba(255, 255, 255, 0.14); background: rgba(255, 255, 255, 0.03); }
.degree-current > span:last-child { display: grid; gap: 2px; }
.degree-current b { font-size: 13px; }
.degree-current small { font-size: 12px; color: var(--text-dim); }
.dgc-badge { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: var(--degree-color); color: #0b1514; font: 800 14px var(--font-body); }

/* выдача карты: поощрению не нужны КоАП и факторы — две колонки */
.form-cols.three.is-positive { grid-template-columns: minmax(0, 1.1fr) minmax(340px, 1fr) !important; }
.form-cols.three.is-positive > #gc-negative { display: none; }
@media (max-width: 900px) { .form-cols.three.is-positive { grid-template-columns: 1fr !important; } }

/* Discord-превью: код, цитаты, зачёркивание */
.dc-code { padding: 1px 5px; border-radius: 4px; background: #1e1f22; border: 1px solid #2b2d31; font: 500 0.88em var(--font-mono); color: #dbdee1; }
.dc-quote { display: block; margin: 2px 0; padding-left: 10px; border-left: 3px solid #4e5058; color: #dbdee1; }
.dc-desc { margin-top: 4px; font-size: 13.5px; color: #dbdee1; line-height: 1.45; }
.dc-fval s { color: #949ba4; }

/* ═══════════════════════ v21 · живой фон: сияние, «пол», сканер, сигнальные линии ═══════════════════════ */
#flx-bg { position: fixed; inset: 0 0 0 var(--sidebar-w, 260px); z-index: 0; pointer-events: none; overflow: hidden; contain: strict; }
#flx-bg::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 85% 75% at 55% 42%, transparent 55%, rgba(0, 0, 0, 0.42) 100%); }

/* Сияние: три мягких пятна медленно плывут, цвет — раздела */
.bg-aurora { position: absolute; display: block; width: 72vmax; height: 72vmax; border-radius: 50%; will-change: transform;  }
.bg-aurora.a1 { left: -22vmax; top: -38vmax; background: radial-gradient(circle, color-mix(in srgb, var(--accent) 16%, transparent), transparent 62%); animation: flxDrift1 46s ease-in-out infinite alternate; }
.bg-aurora.a2 { right: -26vmax; bottom: -40vmax; background: radial-gradient(circle, rgba(90, 169, 255, 0.10), transparent 62%); animation: flxDrift2 58s ease-in-out infinite alternate; }
.bg-aurora.a3 { left: 18%; top: 30%; width: 52vmax; height: 52vmax; background: radial-gradient(circle, color-mix(in srgb, var(--accent) 7%, rgba(139, 92, 246, 0.05)), transparent 64%); animation: flxDrift3 70s ease-in-out infinite alternate; }
@keyframes flxDrift1 { to { transform: translate(14vmax, 10vmax) scale(1.12); } }
@keyframes flxDrift2 { to { transform: translate(-16vmax, -8vmax) scale(0.92); } }
@keyframes flxDrift3 { to { transform: translate(-10vmax, -12vmax) scale(1.18); } }

/* Перспективная сетка «пола» внизу рабочей области: уходит к горизонту и медленно едет на зрителя */
.bg-floor { position: absolute; left: 0; right: 0; bottom: 0; height: 44vh; perspective: 520px; perspective-origin: 50% 0%;
    -webkit-mask-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0.6) 35%, transparent 92%); mask-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0.6) 35%, transparent 92%); }
.bg-floor::before {
    content: ''; position: absolute; left: -60%; right: -60%; top: 0; height: 220%;
    transform: rotateX(68deg); transform-origin: 50% 0%;
    background:
        linear-gradient(color-mix(in srgb, var(--accent) 22%, transparent) 1px, transparent 1px) 0 0 / 64px 64px,
        linear-gradient(90deg, color-mix(in srgb, var(--accent) 16%, transparent) 1px, transparent 1px) 0 0 / 64px 64px;
    opacity: 0.55;
}
.bg-floor::after { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 45%, transparent) 30%, color-mix(in srgb, var(--accent) 45%, transparent) 70%, transparent); filter: blur(1px); opacity: 0.6; }
@keyframes flxFloor { to { background-position: 0 64px, 0 64px; } }

/* Сканирующая линия: раз в ~16 секунд проходит сверху вниз */
.bg-scan { position: absolute; left: 0; right: 0; top: -90px; height: 90px; display: block;
    background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent) 3%, transparent) 80%, color-mix(in srgb, var(--accent) 30%, transparent) 99%, transparent);
    animation: flxScan 18s cubic-bezier(.45, 0, .55, 1) infinite; opacity: 0; }
@keyframes flxScan { 0% { transform: translateY(0); opacity: 0; } 8% { opacity: 0.45; } 62% { transform: translateY(calc(100vh + 90px)); opacity: 0.45; } 63%, 100% { transform: translateY(calc(100vh + 90px)); opacity: 0; } }

/* Сигнальные линии: тонкие горизонтали, по которым бегут световые штрихи */
.bg-rails i { position: absolute; left: 0; right: 0; height: 1px; display: block; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.045) 15%, rgba(255, 255, 255, 0.045) 85%, transparent); overflow: hidden; }
.bg-rails i:nth-child(1) { top: 22%; } .bg-rails i:nth-child(2) { top: 57%; } .bg-rails i:nth-child(3) { top: 81%; }
.bg-rails i::after { content: ''; position: absolute; top: -1px; height: 3px; width: 180px; left: -200px; border-radius: 2px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 80%, #fff));  opacity: 0.55;
    animation: flxRail 9s linear infinite; }
.bg-rails i:nth-child(2)::after { animation-duration: 13s; animation-delay: -5s; }
.bg-rails i:nth-child(3)::after { animation-duration: 11s; animation-delay: -8s; opacity: 0.4; }
@keyframes flxRail { to { transform: translateX(calc(100vw + 200px)); } }

@media (max-width: 900px) { #flx-bg { inset: 0; } .bg-floor, .bg-rails { display: none; } }
@media (prefers-reduced-motion: reduce) { .bg-aurora, .bg-floor::before, .bg-scan, .bg-rails i::after { animation: none !important; } .bg-scan { display: none; } }

/* Учёт: цифры шапки в одну строку, степень — маленький значок */
.page-banner .banner-stats span { white-space: nowrap; }
.uchet-deg .na { opacity: 0.35; font-size: 12px; }
.uchet-deg .degree-dot { width: 24px; height: 24px; font-size: 12px; border-radius: 7px; }

/* Сверка ников */
.dupe-btn b.dupe-count:not(:empty) { margin-left: 6px; display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--warning, #e2c34b); color: #1b1608; font: 800 12px var(--font-body); }
.dupe-btn.has { color: var(--warning, #e2c34b); }
.dupe-chip { margin-left: 8px; padding: 2px 7px; border-radius: 6px; border: 1px dashed color-mix(in srgb, var(--warning, #e2c34b) 60%, transparent); color: var(--warning, #e2c34b); font: 650 12px var(--font-body); letter-spacing: 0.02em; white-space: nowrap; cursor: pointer; }
.dupe-chip:hover { background: color-mix(in srgb, var(--warning, #e2c34b) 12%, transparent); }
.dupe-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 4px 0 18px; font-size: 12.5px; color: var(--text-mute); }
.dupe-legend > span { display: inline-flex; align-items: center; gap: 6px; }
mark.nk-mix { background: color-mix(in srgb, var(--danger, #e5534b) 25%, transparent); color: #ffb4ae; border-radius: 3px; padding: 0 1px; box-shadow: inset 0 -2px 0 var(--danger, #e5534b); }
mark.nk-sym { background: rgba(255, 255, 255, 0.08); color: var(--text-mute); border-radius: 3px; padding: 0 2px; }
.dupe-groups { display: grid; gap: 14px; }
.dupe-group { border: 1px solid rgba(255, 255, 255, 0.07); border-radius: 14px; background: rgba(16, 16, 20, 0.7); overflow: hidden; animation: flxCardIn 0.3s ease both; }
.dupe-group.focus { border-color: color-mix(in srgb, var(--accent) 45%, transparent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent); }
.dupe-group.conflict { border-color: color-mix(in srgb, var(--warning, #e2c34b) 30%, transparent); }
.dupe-group > header { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 16px; border-bottom: 1px solid rgba(255, 255, 255, 0.06); background: rgba(255, 255, 255, 0.02); }
.dupe-key { font: 700 13px var(--font-mono); color: var(--accent-light); padding: 3px 9px; border-radius: 7px; background: color-mix(in srgb, var(--accent) 12%, transparent); }
.dupe-gcount { font-size: 12.5px; color: var(--text-mute); }
.dupe-warn { margin-left: auto; font-size: 12px; color: var(--warning, #e2c34b); }
.dupe-ok { margin-left: auto; font-size: 12px; color: var(--success, #3fae5a); }
.dupe-people { display: grid; gap: 6px; padding: 10px; }
.dupe-person { position: relative; display: grid; grid-template-columns: 18px 18px 38px minmax(0, 1fr) auto 70px; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 11px; border: 1px solid rgba(255, 255, 255, 0.05); background: rgba(0, 0, 0, 0.2); cursor: pointer; transition: border-color 0.2s, background 0.2s, opacity 0.2s; }
.dupe-person:hover { border-color: rgba(255, 255, 255, 0.12); }
.dupe-person.main { border-color: color-mix(in srgb, var(--accent) 50%, transparent); background: color-mix(in srgb, var(--accent) 7%, rgba(0, 0, 0, 0.2)); }
.dupe-person.off { opacity: 0.45; }
.dupe-person input { accent-color: var(--accent); margin: 0; }
.dupe-ava { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; overflow: hidden; background: var(--bg-3); font: 700 15px var(--font-body); color: var(--text-dim); }
.dupe-ava img { width: 100%; height: 100%; object-fit: cover; }
.dupe-main { display: grid; gap: 5px; min-width: 0; }
.dupe-main b { font-size: 14.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dupe-ids { display: flex; gap: 6px; flex-wrap: wrap; }
.dupe-tags { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; }
.dupe-tag { padding: 2px 8px; border-radius: 6px; font: 600 12px var(--font-body); background: rgba(255, 255, 255, 0.05); color: var(--text-dim); white-space: nowrap; }
.dupe-tag.ok { background: color-mix(in srgb, var(--success, #3fae5a) 15%, transparent); color: #8fe0a0; }
.dupe-tag.acc { background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent-light); }
.dupe-tag.muted { opacity: 0.6; }
.dupe-role { justify-self: end; font: 700 12px var(--font-body); letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent-light); opacity: 0; transition: opacity 0.2s; }
.dupe-person.main .dupe-role { opacity: 1; }
.dupe-group > footer { display: flex; justify-content: flex-end; gap: 8px; padding: 0 12px 12px; }
.dupe-empty { display: grid; gap: 6px; place-items: center; padding: 60px 20px; border: 1px dashed rgba(255, 255, 255, 0.1); border-radius: 14px; color: var(--text-mute); }
.dupe-empty b { font-size: 16px; color: var(--text); }
@media (max-width: 760px) { .dupe-person { grid-template-columns: 18px 18px 34px minmax(0, 1fr); } .dupe-tags, .dupe-role { grid-column: 3 / -1; justify-content: flex-start; justify-self: start; } }

/* Анкета ступени: источник — раздел «Анкеты» или ссылка */
.ak-src-seg { margin: 4px 0 14px; }
.ak-src-seg b { margin-left: 6px; padding: 0 6px; border-radius: 8px; background: color-mix(in srgb, var(--accent) 22%, transparent); font-size: 12px; }
.ak-src-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.ak-src-head .modal-text { margin-top: 0; }
.ak-pick-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }

/* ═══════════════════════ v22 · досье: без прокрутки левой колонки ═══════════════════════
   Левая колонка тянется на всю высоту окна и не прокручивается сама по себе; если экран
   невысокий, прокручивается досье целиком. */
@media (min-width: 1201px) {
    .dossier-grid { grid-template-rows: minmax(170px, 1fr) minmax(170px, 1fr) max-content !important; overflow-y: auto; overflow-x: hidden; padding-right: 2px; }
    .dossier-side { grid-row: 1 / -1 !important; overflow: visible !important; }
    .p-ankety { grid-column: 2 / -1; min-height: max-content; }
    .dossier-grid:has(.p-history) .p-history { grid-column: 2; min-height: max-content; }
    .dossier-grid:has(.p-history) .p-ankety { grid-column: 3; }
    .p-ankety .dp-body, .p-history .dp-body { max-height: 200px; }
}
.dossier-side { gap: 12px !important; }
.ds-steps .ak-slots { gap: 6px; }
.ds-steps .ak-slot { grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 10px; row-gap: 2px; padding: 7px 10px; }
.ds-steps .ak-slot > :not(.ak-slot-tools) { grid-column: 1; }
.ds-steps .ak-slot-tools { grid-column: 2; grid-row: 1 / span 2; flex-direction: column; align-items: flex-end; gap: 2px; }
.ds-steps .ak-slot-tools .link-btn { font-size: 12px; padding: 0; }
.ds-steps .ak-slot-level { font-size: 12px; }
.ds-steps .ak-slot em, .ds-steps .ak-slot-legacy { font-size: 12.5px; }
.ds-steps .ak-slot-score { min-width: 30px; height: 28px; font-size: 13.5px; }
.ds-steps .ak-slot-main b { font-size: 13px; }
@media (min-width: 1201px) and (max-height: 860px) {
    .dossier-side { padding: 14px !important; gap: 10px !important; }
    .dossier-side .ds-stats > div { padding: 6px 4px; }
    .dossier-side .ds-stats b { font-size: 20px; }
    .dossier-side .ds-promo { padding: 11px 12px; }
    .dossier-side .ds-promo-date { font-size: 20px; }
    .dossier-side .ds-promo-actions { margin-top: 8px; }
}

/* ═══════════════════════ v22 · производительность ═══════════════════════ */
/* Свет за курсором — отдельный слой, двигается трансформацией (без пересчёта стилей страницы) */
html::after { display: none !important; }
.bg-cursor { position: absolute; left: 0; top: 0; width: 640px; height: 640px; margin: -320px 0 0 -320px; display: block; opacity: 0; transition: opacity 0.3s; will-change: transform;
    background:
        radial-gradient(circle, color-mix(in srgb, var(--accent) 9%, transparent), transparent 62%),
        linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px) 0 0 / 48px 48px,
        linear-gradient(90deg, rgba(255, 255, 255, 0.07) 1px, transparent 1px) 0 0 / 48px 48px;
    -webkit-mask-image: radial-gradient(circle, #000, transparent 45%); mask-image: radial-gradient(circle, #000, transparent 45%); }
.bg-cursor.on { opacity: 1; }
@media (pointer: coarse) { .bg-cursor { display: none; } }

/* Лучи слева — отдельные слои, движутся трансформацией; старый слой оставляем неподвижным */
html body .app-shell::after { animation: none !important; filter: none !important; }
.bg-beams { position: absolute; top: 0; bottom: 0; left: 0; width: min(62vw, 1100px);
    -webkit-mask-image: radial-gradient(ellipse 72% 78% at 26% 52%, #000 25%, rgba(0, 0, 0, 0.5) 52%, transparent 78%); mask-image: radial-gradient(ellipse 72% 78% at 26% 52%, #000 25%, rgba(0, 0, 0, 0.5) 52%, transparent 78%); }
.bg-beams i { position: absolute; top: 0; width: 1px; height: 200px; display: block; will-change: transform;
    background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent) 85%, #fff) 50%, transparent);
    animation: flxBeam 11s linear infinite; }
.bg-beams i:nth-child(1) { left: 9%; height: 180px; animation-delay: -2s; }
.bg-beams i:nth-child(2) { left: 23%; height: 120px; animation-delay: -7s; animation-duration: 13s; }
.bg-beams i:nth-child(3) { left: 37%; height: 220px; animation-delay: -4s; animation-duration: 10s; }
.bg-beams i:nth-child(4) { left: 51%; height: 140px; animation-delay: -9s; animation-duration: 12s; }
@keyframes flxBeam { from { transform: translateY(-260px); } to { transform: translateY(calc(100vh + 40px)); } }
/* старые лучи в фоне рамки больше не рисуем (остались только неподвижные направляющие и сетка) */
html body .app-shell::after {
    background:
        linear-gradient(rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.045)) 9% 0 / 1px 100% no-repeat,
        linear-gradient(rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.045)) 23% 0 / 1px 100% no-repeat,
        linear-gradient(rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.045)) 37% 0 / 1px 100% no-repeat,
        linear-gradient(rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.045)) 51% 0 / 1px 100% no-repeat,
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cpath d='M120 113v14M113 120h14' stroke='%23fff' stroke-opacity='.13' stroke-width='1'/%3E%3C/svg%3E") 0 0 / 240px 240px repeat,
        linear-gradient(rgba(255, 255, 255, 0.016) 1px, transparent 1px) 0 0 / 48px 48px repeat,
        linear-gradient(90deg, rgba(255, 255, 255, 0.016) 1px, transparent 1px) 0 0 / 48px 48px repeat !important;
}

/* «Пол» едет трансформацией, а не перерисовкой фона */
.bg-floor::before { animation: flxFloor2 7s linear infinite !important; will-change: transform; }
@keyframes flxFloor2 { from { transform: rotateX(68deg) translateY(0); } to { transform: rotateX(68deg) translateY(64px); } }
.bg-aurora { mix-blend-mode: normal !important; }
.bg-rails i::after { filter: none !important; box-shadow: 0 0 8px var(--accent); will-change: transform; }
html::before { will-change: transform; }

/* Без размытия под тем, что лежит над длинными таблицами */
.norm-table thead th, .nc-table th, .info-table th { backdrop-filter: none !important; }
.modal-overlay { backdrop-filter: none !important; }

/* Длинные списки: браузер не рисует строки за пределами экрана */
.uchet-item { content-visibility: auto; contain-intrinsic-size: auto 66px; }
.uchet-item.open { content-visibility: visible; }

@media (prefers-reduced-motion: reduce) { .bg-beams i, .bg-floor::before { animation: none !important; } }
@media (max-width: 900px) { .bg-beams { display: none; } }

/* ═══════════════════════ v23 · превью Discord: стопка блоков, спойлер, второе сообщение ═══════════════════════ */
.dc-stack { display: grid; gap: 4px; margin-top: 4px; }
.dc-stack .dc-embed { margin-top: 0 !important; }
.dc-stack .dc-embed .dc-desc { margin-top: 0; }
.dc-stack .dc-title + .dc-desc { margin-top: 6px; }
.dc-stack .dc-thumb { width: 64px; height: 64px; border-radius: 6px; }
.dc-stack .dc-fields { gap: 10px 12px; }
.dc-stack .dc-field { grid-column: 1 / -1 !important; }
.dc-spoiler { display: inline-block; padding: 0 3px; border-radius: 3px; background: #1e1f22; color: transparent; cursor: pointer; transition: background 0.15s, color 0.15s; user-select: none; }
.dc-spoiler * { visibility: hidden; }
.dc-spoiler:hover { background: rgba(255, 255, 255, 0.06); color: inherit; }
.dc-spoiler:hover * { visibility: visible; }
.dc-followup { margin-top: 10px; display: grid; gap: 6px; }
.dc-reply { font-size: 12px; color: #949ba4; }
.dc-attach { max-width: 320px; border-radius: 8px; overflow: hidden; }
.dc-attach img { display: block; width: 100%; height: auto; max-height: 220px; object-fit: contain; background: #1e1f22; }
.dc-attach.file { padding: 10px 12px; background: #2b2d31; border: 1px solid #1e1f22; color: #dbdee1; font-size: 13px; }
.dc-attach.link { display: grid; gap: 4px; padding: 0; overflow: visible; }
.dc-attach.link a { color: #00a8fc; font-size: 13px; overflow-wrap: anywhere; }
.dc-attach.link small { font-size: 12px; color: #949ba4; }

/* Личный кабинет: повышение по всем отделам */
.promo-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.promo-item { position: relative; display: grid; gap: 10px; padding: 14px 16px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, 0.07);
    background: radial-gradient(240px 120px at 0% 0%, color-mix(in srgb, var(--dept-color) 12%, transparent), transparent 75%), rgba(0, 0, 0, 0.22);
    animation: flxCardIn 0.3s ease both; }
.promo-item::before { content: ''; position: absolute; left: 0; top: 14px; bottom: 14px; width: 3px; border-radius: 0 3px 3px 0; background: var(--dept-color); }
.promo-item.neg { border-color: color-mix(in srgb, var(--danger) 35%, transparent); }
.promo-path { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.promo-path svg { width: 16px; height: 16px; fill: none; stroke: var(--text-mute); stroke-width: 2; }
.promo-path b { font-size: 14px; color: var(--text); }
.promo-when { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.promo-date { font: 700 22px var(--font-num, var(--font-body)); color: var(--text); letter-spacing: -0.01em; }
.promo-status { font-size: 12.5px; font-weight: 650; color: var(--text-dim); }
.promo-status.neg { color: var(--danger-light); }
.promo-status.pos { color: var(--success); }
.promo-status.warn { color: var(--warning, #e2c34b); }
.promo-status.muted { color: var(--text-mute); }
.promo-reqs { display: flex; flex-wrap: wrap; gap: 6px; }
.promo-reqs span { padding: 3px 8px; border-radius: 7px; background: rgba(255, 255, 255, 0.05); font-size: 12px; color: var(--text-dim); }
.promo-reqs span.ok { background: color-mix(in srgb, var(--success) 15%, transparent); color: #8fe0a0; }


/* =============================================================
   Апостолы (страница подотдела) — под новую тему
   ============================================================= */
.apostles-head,
.apostles-row { border-radius: 12px; }

.apostles-row {
    background: var(--bg-1);
    border-color: var(--line);
}

/* =============================================================
   Адаптив
   ============================================================= */
@media (max-width: 1280px) {
    .content { padding: 28px 24px 60px; }

    .data-table.sheet { font-size: 13px; }

    .data-table.sheet td,
    .data-table.sheet th {
        padding-left: 8px;
        padding-right: 8px;
    }

    .data-table.sheet .avatar-xs { display: none; }

    .person-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .doc-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 28px; }
}

@media (max-width: 1024px) {
    .hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .doc-layout { grid-template-columns: minmax(0, 1fr); }
    .doc-toc { display: none; }
}

@media (max-width: 960px) {
    :root { --sidebar-w: 280px; }

    .topbar {
        display: flex;
        align-items: center;
        gap: 12px;
        position: sticky;
        top: 0;
        z-index: 40;
        height: 58px;
        padding: 0 16px;
        background: rgba(16, 16, 21, 0.92);
        backdrop-filter: blur(10px);
        border-bottom: 1px solid var(--line);
    }

    .topbar-brand {
        font-family: var(--font-head);
        letter-spacing: 0.16em;
        font-size: 22px;
        color: #fff;
    }

    .app-shell.visible { flex-direction: column; }

    .sidebar {
        transform: translateX(-100%);
        transition: transform 0.25s ease;
        box-shadow: var(--shadow-lg);
    }

    .app-shell.nav-open .sidebar { transform: none; }

    .app-shell.nav-open .nav-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 45;
        background: rgba(0, 0, 0, 0.6);
    }

    .content {
        margin-left: 0;
        padding: 20px 16px 60px;
    }

    .table-wrap { overflow-x: auto; }
    .data-table.fit { min-width: 900px; }
    .data-table.fit.inner { min-width: 660px; }

    .auth-frame { grid-template-columns: 1fr; }

    .auth-side {
        border-right: 0;
        border-bottom: 1px solid var(--line);
        padding: 36px 28px;
    }

    .auth-logo { font-size: 64px; }
    .auth-card { padding: 30px 28px; }

    .profile-grid { grid-template-columns: 1fr; }
    .profile-grid .span-2 { grid-column: auto; }

    .user-admin-grid,
    .mrp-grid,
    .form-split { grid-template-columns: 1fr; }

    .mrp-cell {
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .user-admin-body { padding-left: 18px; }

    .request-card { flex-wrap: wrap; }
    .request-side { align-items: flex-start; }

    .doc-topbar { padding: 0 14px; }
    .doc-topbar-tools .btn-sm { display: none; }
    .doc-reader-inner { padding: 28px 16px 70px; }
    .doc-hero h1 { font-size: 38px; }
    .doc-rule { padding: 20px 18px; }
}

@media (max-width: 600px) {
    .page-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .section-title { font-size: 28px; }
    .hero-name { font-size: 30px; }
    .hero-avatar { width: 80px; height: 80px; }
    .hero-actions { width: 100%; }
    .profile-hero-main { padding: 26px 20px 20px; }

    .form-grid { grid-template-columns: 1fr; }
    .form-grid .span-2 { grid-column: auto; }

    .person-grid { grid-template-columns: 1fr; }

    .modal { padding: 22px 18px 18px; }
    .modal-overlay { padding: 12px 8px; }

    .modal-actions.spread {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .cards-grid { grid-template-columns: 1fr; }

    .mrp-gate {
        flex-direction: column;
        align-items: flex-start;
    }

    .tabs-row { width: 100%; }

    #toast-container { left: 12px; right: 12px; }
    .toast { max-width: none; }

    .doc-rule h2 { font-size: 21px; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

/* ---------- Просмотр вида анкеты: оглавление + карточки вопросов ---------- */
.akv {
    --akc: var(--ak, var(--accent));
    --akc-soft: color-mix(in srgb, var(--akc) 14%, transparent);
    flex: 1; min-height: 0; overflow-y: auto;
    margin: 0 -28px -20px; padding: 6px 28px 40px;
    scrollbar-gutter: stable;
}
.akv-head { max-width: 1180px; margin: 0 auto 26px; padding-right: 48px; }
.akv-head h2 { margin: 6px 0 0; font: 500 clamp(26px, 2.6vw, 38px)/1.1 var(--font-head); letter-spacing: 0.03em; text-transform: uppercase; color: #fff; overflow-wrap: anywhere; }
.akv-desc { margin: 10px 0 0; max-width: 760px; color: var(--text-dim); font-size: 14.5px; line-height: 1.55; white-space: pre-wrap; }
.akv-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.akv-chip { display: inline-flex; align-items: baseline; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, 0.04); border: 1px solid var(--line-2); color: var(--text-dim); font-size: 12.5px; }
.akv-chip b { color: var(--text-hi); font: 600 13px var(--font-num, var(--font-body)); }

.akv-layout { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 28px; align-items: start; }
.akv-layout:not(:has(.akv-toc)) { grid-template-columns: minmax(0, 860px); justify-content: center; }
.akv-toc { position: sticky; top: 0; display: grid; gap: 4px; padding: 10px; border-radius: 16px; background: rgba(255, 255, 255, 0.025); border: 1px solid var(--line); }
.akv-toc-item { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 10px; border: 0; border-radius: 10px; background: none; color: var(--text-dim); font: 500 13.5px var(--font-body); text-align: left; cursor: pointer; transition: background 0.15s, color 0.15s; }
.akv-toc-item:hover { background: var(--akc-soft); color: var(--text-hi); }
.akv-toc-item i { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; background: var(--akc-soft); color: var(--akc); font: 700 12px var(--font-mono); font-style: normal; }
.akv-toc-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.akv-toc-item small { font: 500 11.5px var(--font-mono); color: var(--text-mute); }

.akv-sections { display: grid; gap: 34px; min-width: 0; }
.akv-sec { scroll-margin-top: 12px; }
.akv-sec-head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.akv-sec-num { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: var(--akc); color: var(--accent-ink, #0b0b0e); font: 700 16px var(--font-mono); box-shadow: 0 6px 18px -8px var(--akc); }
.akv-sec-head h3 { margin: 0; font: 600 19px/1.25 var(--font-body); color: var(--text-hi); overflow-wrap: anywhere; }
.akv-sec-head small { display: block; margin-top: 2px; color: var(--text-mute); font-size: 12.5px; }

.akv-qs { display: grid; gap: 12px; }
.akv-q {
    display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 14px;
    padding: 18px 20px; border-radius: 16px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.015));
    border: 1px solid var(--line);
    animation: akvIn 0.35s cubic-bezier(.2, .8, .2, 1) both; animation-delay: calc(var(--i, 0) * 30ms);
    transition: border-color 0.2s, transform 0.2s;
}
.akv-q:hover { border-color: color-mix(in srgb, var(--akc) 35%, transparent); }
@keyframes akvIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.akv-q-num { align-self: start; padding: 5px 0; border-radius: 9px; background: var(--akc-soft); color: var(--akc); font: 700 12.5px var(--font-mono); text-align: center; font-variant-numeric: tabular-nums; }
.akv-q-body { display: grid; gap: 12px; min-width: 0; }
.akv-q-text { padding-top: 3px; font-size: 15.5px; font-weight: 600; line-height: 1.5; color: var(--text-hi); white-space: pre-wrap; overflow-wrap: anywhere; }
.akv-a { padding: 12px 14px; border-radius: 12px; background: color-mix(in srgb, var(--success) 8%, transparent); border: 1px solid color-mix(in srgb, var(--success) 22%, transparent); }
.akv-a-label { display: inline-flex; align-items: center; gap: 6px; font: 600 11px var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--success); }
.akv-a-label svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.akv-a-text { margin-top: 6px; font-size: 14.5px; line-height: 1.55; color: var(--text); white-space: pre-wrap; overflow-wrap: anywhere; }
.akv-a.empty { background: rgba(255, 255, 255, 0.02); border-style: dashed; border-color: var(--line-2); }
.akv-a.empty .akv-a-label { color: var(--text-mute); }

@media (max-width: 900px) {
    .akv { margin: 0 -16px -18px; padding: 4px 16px 32px; }
    .akv-layout { grid-template-columns: minmax(0, 1fr); }
    .akv-toc { position: static; grid-auto-flow: column; grid-auto-columns: minmax(160px, 1fr); overflow-x: auto; }
    .akv-q { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 14px 16px; }
    .akv-q-num { justify-self: start; padding: 4px 10px; }
}

/* ---------- Подсчёт нормы: мало овера ---------- */
.nt-over-short { display: inline-block; margin: 0 0 6px; padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--warning, #f5a524) 14%, transparent); color: var(--warning, #f5a524); font: 600 11px var(--font-body); font-style: normal; }
.norm-table.v2 td.nt-num.nt-short b { color: var(--warning, #f5a524); }

/* ---------- Сохранённые фильтры поиска людей ---------- */
.pf-hide { display: none !important; }
.pf-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; flex: 0 1 auto; min-width: 0; }
.pf-bar:empty { display: none; }
.pf-add, .pf-chip button { height: 32px; border: 1px solid var(--line-2); background: rgba(255, 255, 255, 0.03); color: var(--text-dim); font: 600 12.5px var(--font-body); cursor: pointer; transition: background 0.15s, color 0.15s, border-color 0.15s; }
.pf-add { display: inline-flex; align-items: center; gap: 6px; padding: 0 11px; border-radius: 10px; }
.pf-add svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linejoin: round; }
.pf-add b { font-weight: 700; color: var(--accent); }
.pf-add:hover, .pf-chip button:hover { color: var(--text-hi); border-color: color-mix(in srgb, var(--accent) 40%, transparent); }
.pf-chip { display: inline-flex; }
.pf-chip button:first-child { padding: 0 11px; border-radius: 999px 0 0 999px; border-right: 0; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf-chip .pf-edit { width: 28px; padding: 0; border-radius: 0 999px 999px 0; font-size: 12px; opacity: 0.75; }
.pf-chip.on button { background: color-mix(in srgb, var(--accent) 16%, transparent); border-color: color-mix(in srgb, var(--accent) 45%, transparent); color: var(--accent); }
.pf-count { font: 600 12px var(--font-mono); color: var(--text-mute); }
.pf-form { display: grid; gap: 12px; margin-top: 6px; }
.pf-tips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: -4px; }
.pf-tips span { font-size: 12px; color: var(--text-mute); }
.pf-tip { padding: 4px 10px; border-radius: 999px; border: 1px dashed var(--line-2); background: none; color: var(--text-dim); font: 500 12px var(--font-body); cursor: pointer; }
.pf-tip:hover { border-style: solid; color: var(--accent); border-color: color-mix(in srgb, var(--accent) 45%, transparent); }
.pf-mode { align-self: start; }
.pf-preview { min-height: 18px; font: 600 12.5px var(--font-mono); color: var(--accent); }

/* ---------- Вышка: доступ к разделам ---------- */
.sa-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 22px; align-items: start; }
.sa-cats { position: sticky; top: 12px; display: grid; gap: 4px; padding: 10px; border-radius: 16px; background: rgba(255, 255, 255, 0.025); border: 1px solid var(--line); }
.sa-cat { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 12px; border: 0; border-radius: 10px; background: none; color: var(--text-dim); font: 600 13.5px var(--font-body); text-align: left; cursor: pointer; transition: background 0.15s, color 0.15s; }
.sa-cat i { width: 10px; height: 10px; border-radius: 50%; background: var(--cat-color); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cat-color) 20%, transparent); }
.sa-cat span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sa-cat small { font: 600 11.5px var(--font-mono); color: var(--text-mute); }
.sa-cat:hover { background: rgba(255, 255, 255, 0.04); color: var(--text-hi); }
.sa-cat.on { background: color-mix(in srgb, var(--cat-color) 14%, transparent); color: var(--text-hi); }
.sa-main { display: grid; gap: 14px; min-width: 0; }
.sa-main .filter-bar { margin-bottom: 0; }
.sa-sections { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 14px; }
.sa-sec { display: flex; flex-direction: column; border-radius: 16px; border: 1px solid var(--line); background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012)); overflow: hidden; }
.sa-sec-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.sa-sec-head h3 { margin: 0; font: 600 15.5px var(--font-body); color: var(--text-hi); }
.sa-sec-head small { display: block; margin-top: 3px; font-size: 12px; line-height: 1.45; color: var(--text-mute); }
.sa-sec-head .btn-primary { flex: none; display: inline-flex; align-items: center; gap: 6px; }
.sa-sec-head .btn-primary svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.sa-grants { display: grid; gap: 2px; padding: 8px; }
.sa-grant { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 10px; }
.sa-grant:hover { background: rgba(255, 255, 255, 0.03); }
.sa-level { height: 30px; padding: 0 8px; font-size: 12.5px; }
.sa-level-tag { padding: 3px 10px; border-radius: 999px; font: 600 11.5px var(--font-body); background: rgba(255, 255, 255, 0.05); color: var(--text-dim); }
.sa-level-tag.edit, .sa-level-tag.create { background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent); }
.sa-by { font-size: 11.5px; color: var(--text-mute); white-space: nowrap; }
.sa-empty { padding: 14px 8px; font-size: 13px; color: var(--text-mute); }
@media (max-width: 900px) {
    .sa-layout { grid-template-columns: minmax(0, 1fr); }
    .sa-cats { position: static; grid-auto-flow: column; grid-auto-columns: minmax(150px, 1fr); overflow-x: auto; }
    .sa-sections { grid-template-columns: minmax(0, 1fr); }
    .sa-by { display: none; }
}

.sa-roles { display: grid; gap: 2px; padding: 8px 8px 0; }
.sa-role { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 10px; background: rgba(255, 255, 255, 0.025); }
.sa-role-name { display: flex; align-items: baseline; gap: 8px; min-width: 0; font-weight: 600; color: var(--text-hi); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sa-role-name small { font-weight: 500; color: var(--text-mute); }
.sa-role-kind { flex: none; padding: 2px 7px; border-radius: 6px; font: 600 10.5px var(--font-mono); font-style: normal; text-transform: uppercase; letter-spacing: 0.05em; background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent); }
.sa-role-kind.status { background: rgba(255, 255, 255, 0.06); color: var(--text-dim); }
.sag-who { margin: 4px 0 10px; }

/* ---------- Личный кабинет: раскрывающиеся блоки, категории и их разделы ---------- */
details.fold-panel > summary { list-style: none; cursor: pointer; user-select: none; position: relative; padding-right: 34px; }
details.fold-panel > summary::-webkit-details-marker { display: none; }
details.fold-panel .fold-chevron { position: absolute; right: 2px; top: 50%; width: 18px; height: 18px; margin-top: -9px; fill: none; stroke: var(--text-mute); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.2s; }
details.fold-panel[open] .fold-chevron { transform: rotate(180deg); }
details.fold-panel:not([open]) > summary { margin-bottom: 0; }
.cat-row { border-radius: 12px; }
.cat-row-main { display: flex; align-items: center; gap: 8px; }
.cat-row-main .switch-row { flex: 1; min-width: 0; }
.cat-row-toggle { flex: none; width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line-2); border-radius: 9px; background: rgba(255, 255, 255, 0.03); color: var(--text-dim); cursor: pointer; }
.cat-row-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.2s; }
.cat-row-toggle.open svg { transform: rotate(180deg); }
.cat-row-toggle:hover { color: var(--text-hi); border-color: color-mix(in srgb, var(--dept-color) 50%, transparent); }
.cat-sections { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px 52px; }
.cat-section { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border-radius: 9px; border: 1px solid var(--line); background: rgba(255, 255, 255, 0.02); font-size: 13px; color: var(--text); cursor: pointer; }
.cat-section .ico { width: 15px; height: 15px; }
.cat-section input { margin: 0; accent-color: var(--dept-color); }
.cat-section:has(input:not(:checked)) { opacity: 0.55; }
.cat-section:has(input:disabled) { cursor: default; opacity: 0.4; }
@media (max-width: 700px) { .cat-sections { margin-left: 0; } }
.cat-list .cat-row .switch-row { --dept-color: inherit; }
.cat-section .ico { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; color: var(--dept-color); }

/* ---------- Полезная информация: группы вкладок и порядок ---------- */
.doc-tab-group { border-radius: 10px; }
.doc-tab-group > summary { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 10px; list-style: none; cursor: pointer; user-select: none; font: 600 12.5px var(--font-body); letter-spacing: 0.02em; color: var(--text-dim); }
.doc-tab-group > summary::-webkit-details-marker { display: none; }
.doc-tab-group > summary:hover { background: rgba(255, 255, 255, 0.04); color: var(--text-hi); }
.doc-tab-group > summary span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doc-tab-group > summary small { font: 600 11px var(--font-mono); color: var(--text-mute); }
.doc-tab-group-chev { width: 14px; height: 14px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.2s; }
.doc-tab-group[open] .doc-tab-group-chev { transform: rotate(90deg); }
.doc-tab-group > .doc-side-tab { margin-left: 14px; width: calc(100% - 14px); }
.tabs-move { display: inline-flex; gap: 4px; min-width: 64px; }
.tabs-move-btn { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--line-2); border-radius: 8px; background: rgba(255, 255, 255, 0.03); color: var(--text-dim); cursor: pointer; }
.tabs-move-btn svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.tabs-move-btn:hover:not(:disabled) { color: var(--text-hi); border-color: color-mix(in srgb, var(--accent) 45%, transparent); }
.tabs-move-btn:disabled { opacity: 0.3; cursor: default; }
.tabs-manager-group { display: block; margin-top: 2px; font-size: 11.5px; font-weight: 500; color: var(--text-mute); }
.tabs-manager-list .tabs-manager-row { grid-template-columns: 64px minmax(0, 1.4fr) minmax(0, 1fr) auto; }
@media (max-width: 700px) { .tabs-manager-list .tabs-manager-row { grid-template-columns: 64px minmax(0, 1fr); } .tabs-manager-list .tabs-manager-tag, .tabs-manager-list .tabs-manager-actions { grid-column: 2; justify-content: flex-start; } }

.sa-parent { grid-column: 1 / -1; margin-top: 6px; font: 600 11.5px var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-mute); }
.sa-sec.sub { background: rgba(255, 255, 255, 0.015); }
.sa-sub-of { font-weight: 500; color: var(--text-mute); }

/* ---------- Окна на весь экран: прокрутка, если у содержимого нет своей (лист проведения анкеты и т. п.) ---------- */
.modal.modal-full { overflow-y: auto; overscroll-behavior: contain; }

/* ---------- Подсчёт нормы: роли, просрочка, отпуска, сотрудники месяца ---------- */
.nrl-table { display: grid; gap: 2px; margin: 8px 0; }
.nrl-head, .nrl-row { display: grid; grid-template-columns: minmax(0, 1fr) 130px 150px; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 10px; }
.nrl-head { font: 600 11px var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-mute); }
.nrl-head span:not(:first-child), .nrl-row label { text-align: center; }
.nrl-row { background: rgba(255, 255, 255, 0.025); }
.nrl-row b { font-weight: 600; color: var(--text-hi); }
.nrl-row input { width: 17px; height: 17px; accent-color: var(--accent); }
.nt-streak-off { display: block; font-size: 11px; color: var(--text-mute); }
.nt-link { display: block; margin-top: 3px; padding: 0; border: 0; background: none; color: var(--text-dim); font: 500 11.5px var(--font-body); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.nt-link:hover { color: var(--accent); }
.nv-list { display: grid; gap: 4px; margin: 6px 0 4px; }
.nv-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 10px; background: rgba(255, 255, 255, 0.03); }
.nv-row.past { opacity: 0.55; }
.nv-who { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; min-width: 0; font-size: 13.5px; }
.nv-who b { color: var(--text-hi); }
.nv-who small { color: var(--text-mute); }
.nv-state { font: 600 11px var(--font-mono); color: var(--text-dim); }
.nm { display: grid; gap: 14px; max-width: 1040px; width: 100%; margin: 0 auto; padding-bottom: 12px; }
.nm-months { flex-wrap: wrap; }
.nm-heroes { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.nm-hero { position: relative; display: grid; justify-items: center; gap: 6px; padding: 26px 20px 20px; border-radius: 18px; text-align: center; background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 12%, transparent), rgba(255, 255, 255, 0.02)); border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); }
.nm-place { position: absolute; top: 12px; left: 14px; font: 700 11.5px var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent); }
.nm-avatar { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent); }
.nm-avatar.ph { display: grid; place-items: center; background: var(--bg-2); color: var(--text-hi); font: 700 30px var(--font-body); }
.nm-hero h3 { margin: 6px 0 0; font: 700 20px var(--font-body); color: var(--text-hi); overflow-wrap: anywhere; }
.nm-role { font-size: 13px; color: var(--text-mute); }
.nm-score { display: grid; gap: 1px; margin: 6px 0; }
.nm-score b { font: 700 24px var(--font-num, var(--font-body)); color: var(--accent); }
.nm-score span { font-size: 12px; color: var(--text-mute); }
.nm-stats { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.nm-stats span { display: inline-flex; gap: 6px; align-items: baseline; padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, 0.05); font-size: 12px; }
.nm-stats em { font-style: normal; color: var(--text-mute); }
.nm-stats b { color: var(--text-hi); font-weight: 600; }
.nm-rank { display: grid; gap: 2px; }
.nm-rank-row { display: grid; grid-template-columns: 30px minmax(120px, 1fr) minmax(0, 2fr) auto; align-items: center; gap: 12px; padding: 8px 12px; border-radius: 10px; background: rgba(255, 255, 255, 0.025); }
.nm-rank-row.top { background: color-mix(in srgb, var(--accent) 10%, transparent); }
.nm-pos { font: 700 12.5px var(--font-mono); color: var(--text-mute); }
.nm-who { display: grid; min-width: 0; }
.nm-who b { color: var(--text-hi); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nm-who small { color: var(--text-mute); font-size: 11.5px; }
.nm-line { font-size: 12px; color: var(--text-dim); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nm-val { font: 700 13px var(--font-num, var(--font-body)); color: var(--text-hi); }
@media (max-width: 700px) { .nm-rank-row { grid-template-columns: 26px minmax(0, 1fr) auto; } .nm-line { display: none; } .nrl-head, .nrl-row { grid-template-columns: minmax(0, 1fr) 80px 90px; } }

/* ---------- Отделы: поиск ---------- */
.org-search-bar .search-box { max-width: 640px; flex: 1 1 100%; }
.org-results { display: grid; gap: 4px; }
.org-result { display: grid; grid-template-columns: minmax(150px, 1.2fr) minmax(110px, 0.7fr) minmax(0, 1.6fr) auto; align-items: center; gap: 12px; padding: 9px 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, 0.025); color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.org-result:hover { border-color: color-mix(in srgb, var(--dept-color) 50%, transparent); background: color-mix(in srgb, var(--dept-color) 8%, transparent); }
.org-result.inactive { opacity: 0.6; }
.org-res-dept { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 600; color: var(--text-hi); }
.org-res-dept i { width: 9px; height: 9px; border-radius: 50%; background: var(--dept-color); }
.org-res-role { font-size: 13px; color: var(--text-dim); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.org-res-state { font-size: 11.5px; color: var(--text-mute); }
.org-flash, .org-flash > td { background: color-mix(in srgb, var(--accent) 22%, transparent) !important; transition: background 0.4s; }
@media (max-width: 700px) { .org-result { grid-template-columns: minmax(0, 1fr); gap: 4px; } }

/* ---------- Подсчёт нормы: отпуск и график актива ---------- */
.nt-exempt { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; color: #8fb8f0; background: rgba(57, 135, 229, 0.14); }
.nt-row.vac td:first-child { box-shadow: inset 3px 0 0 #3987e5; }
.nt-row.vac .nt-progress-top b { color: #8fb8f0; }
.nt-row.vac .norm-bar { opacity: 0.35; }
.nt-row.vac .norm-bar i { background: #3987e5; }
.nrs.vac b { color: #8fb8f0; }
.nrs.vac .norm-bar i { background: #3987e5; }

.nc-root { --s0: #3987e5; --s1: #d95926; --s2: #199e70; --s3: #c98500; --s4: #d55181; display: grid; gap: 14px; max-width: 1180px; width: 100%; margin: 0 auto; padding-bottom: 12px; }
.nc-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.nc-field { display: grid; gap: 4px; margin: 0; font-size: 12px; color: var(--text-mute); }
.nc-field input, .nc-field select { height: 36px; min-width: 150px; margin: 0; padding: 0 10px; }
.nc-picked { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 28px; }
.nc-chip { display: inline-flex; align-items: center; gap: 7px; padding: 3px 6px 3px 10px; border: 1px solid var(--line-2); border-radius: 999px; font-size: 13px; color: var(--text-hi); }
.nc-key { display: inline-block; flex: none; width: 14px; height: 3px; border-radius: 2px; vertical-align: middle; }
.nc-key.s0 { background: var(--s0); } .nc-key.s1 { background: var(--s1); } .nc-key.s2 { background: var(--s2); } .nc-key.s3 { background: var(--s3); } .nc-key.s4 { background: var(--s4); }
.nc-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.nc-tile { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, 0.025); }
.nc-tile span { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text-dim); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.nc-tile b { font: 700 22px var(--font-num, var(--font-body)); color: var(--text-hi); font-variant-numeric: tabular-nums; }
.nc-tile small { font-size: 11.5px; color: var(--text-mute); }
.nc-plot { position: relative; padding: 8px 4px 6px; border: 1px solid var(--line); border-radius: 14px; background: var(--bg-1); }
.nc-plot svg { display: block; }
.nc-grid { stroke: var(--line); stroke-width: 1; }
.nc-ax { fill: var(--text-mute); font: 500 11.5px var(--font-body); font-variant-numeric: tabular-nums; }
.nc-line { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.nc-dot { stroke: var(--bg-1); stroke-width: 2; }
.nc-line.s0 { stroke: var(--s0); } .nc-line.s1 { stroke: var(--s1); } .nc-line.s2 { stroke: var(--s2); } .nc-line.s3 { stroke: var(--s3); } .nc-line.s4 { stroke: var(--s4); }
.nc-dot.s0 { fill: var(--s0); } .nc-dot.s1 { fill: var(--s1); } .nc-dot.s2 { fill: var(--s2); } .nc-dot.s3 { fill: var(--s3); } .nc-dot.s4 { fill: var(--s4); }
.nc-cross { stroke: var(--text-mute); stroke-width: 1; stroke-dasharray: 3 3; pointer-events: none; }
#nc-hit { outline: none; cursor: crosshair; }
.nc-tip { position: absolute; top: 14px; z-index: 2; min-width: 150px; padding: 8px 10px; border: 1px solid var(--line-2); border-radius: 10px; background: var(--bg-3); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4); pointer-events: none; }
.nc-tip-h { margin-bottom: 4px; font-size: 11.5px; color: var(--text-mute); }
.nc-tip-r { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text-dim); }
.nc-tip-r b { color: var(--text-hi); font-variant-numeric: tabular-nums; }
.nc-legend { display: flex; flex-wrap: wrap; gap: 14px; padding: 6px 12px 4px; font-size: 12.5px; color: var(--text-dim); }
.nc-legend span { display: inline-flex; align-items: center; gap: 7px; }
.nc-table-wrap > summary { cursor: pointer; font-size: 13px; color: var(--text-dim); }
.nc-table-scroll { overflow-x: auto; margin-top: 8px; }
.nc-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.nc-table th, .nc-table td { padding: 7px 10px; border-bottom: 1px solid var(--line); text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.nc-table th:first-child, .nc-table td:first-child { text-align: left; }
.nc-table th { font-weight: 600; color: var(--text-mute); }

/* ---------- Подсчёт нормы: аккуратная раскладка ---------- */
.page-banner:has(#norms-actions) { grid-template-columns: minmax(0, 1fr); }
.page-banner:has(#norms-actions) .banner-actions { justify-content: flex-start; }
.page-banner:has(#norms-actions) .banner-stats { flex-wrap: nowrap; overflow-x: auto; }
#norms-actions { display: flex; flex-wrap: wrap; gap: 6px; }
#norms-actions > button { height: 36px; padding: 0 14px; display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.norm-week-card.v2 .nwc-dates { flex-wrap: nowrap; }
.norm-week-card.v2 .nwc-dates b { font-size: 19px; }
.norm-week-card.v2 .nwc-rates { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 2px 18px; }
.norm-week-card.v2 .nwc-rate { display: flex; justify-content: flex-start; align-items: baseline; gap: 6px; padding: 4px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: none; }
.norm-week-card.v2 .nwc-rate em { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.norm-week-card.v2 .nwc-rate b { font-size: 13.5px; }
.norm-week-card.v2 .nwc-rate small { font-size: 11px; min-width: 26px; }
.norm-week-card.v2 .nwc-actions { align-items: center; }
.norm-week-card.v2 .nwc-actions #norms-del-week { margin-left: auto; }
.norm-table.v2 col.c-progress { width: 230px; }
.norm-table.v2 td { vertical-align: middle; }
.norm-table.v2 .nt-progress-top { margin-bottom: 5px; }
.norm-table.v2 .nt-progress-sub { margin-top: 4px; font-size: 11.5px; color: var(--text-mute); }
.norm-table.v2 .nt-num.zero b, .norm-table.v2 .nt-num.zero { font-weight: 400; color: var(--text-mute); }
.norm-table.v2 .nt-over-short { display: block; margin: 3px 0 0; padding: 0; background: none; border-radius: 0; font-weight: 500; font-size: 11.5px; }
.nr-exempt { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0; font-size: 13px; color: var(--text); }
.command-panel.page-banner:has(#norms-actions) { display: flex; flex-direction: column; align-items: stretch; gap: 14px; }
.page-banner:has(#norms-actions) .banner-stats { flex-wrap: wrap; overflow: visible; }
.page-banner:has(#norms-actions)::after { display: none; }
.page-banner:has(#norms-actions) .banner-actions { width: 100%; max-width: none; }
.norm-week-card.v2 { grid-template-columns: minmax(300px, 0.8fr) minmax(0, 1.5fr) minmax(0, 0.9fr); }
.norm-week-card.v2 .nwc-rates { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
@media (max-width: 1200px) { .norm-week-card.v2 { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Подсчёт нормы: кнопки по группам, итог, меню строки ---------- */
#norms-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; width: 100%; }
.na-group { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.na-settings { margin-left: auto; padding-left: 18px; border-left: 1px solid var(--line-2); }
#norms-actions .btn-primary { height: 38px; padding: 0 16px; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.na-btn { height: 38px; padding: 0 13px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--line-2); border-radius: 10px; background: rgba(255, 255, 255, 0.03); color: var(--text); font: 600 13px var(--font-body); white-space: nowrap; cursor: pointer; transition: background 0.15s, border-color 0.15s, color 0.15s; }
.na-btn:hover { background: rgba(255, 255, 255, 0.07); border-color: color-mix(in srgb, var(--accent) 40%, transparent); color: var(--text-hi); }
.na-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.na-btn.quiet { border-color: transparent; background: none; color: var(--text-dim); padding: 0 10px; }
.na-btn.quiet:hover { background: rgba(255, 255, 255, 0.05); color: var(--text-hi); border-color: transparent; }
.norm-week-card.v2 .nwc-actions .btn-ghost { border: 1px solid var(--line-2); background: rgba(255, 255, 255, 0.03); color: var(--text); }
.norm-week-card.v2 .nwc-actions .btn-ghost:hover { background: rgba(255, 255, 255, 0.07); color: var(--text-hi); }

.norm-table.v2 { min-width: 980px; }
.norm-table.v2 col.c-progress { width: 220px; }
.norm-table.v2 col.c-metric { width: 104px; }
.norm-table.v2 col.c-result { width: 160px; }
.norm-table.v2 col.c-act { width: 92px; }
.nt-group-sum { float: none; margin-left: 12px; }
.nt-pill { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.nt-pill.ok { color: var(--success); background: color-mix(in srgb, var(--success) 14%, transparent); }
.nt-pill.bad { color: var(--danger-light); background: color-mix(in srgb, var(--danger) 16%, transparent); }
.nt-pill.vac { color: #8fb8f0; background: rgba(57, 135, 229, 0.14); }
.nt-pill-sub { display: block; margin-top: 4px; font-size: 11.5px; color: var(--text-mute); }
.nt-act-in { display: flex; justify-content: flex-end; gap: 4px; }
.act-btn.sm svg circle { fill: currentColor; stroke: none; }
/* Итог и действия всегда на виду, когда таблица шире экрана */
.norm-table.v2 .nt-sticky-r0, .norm-table.v2 .nt-sticky-r1 { position: sticky; z-index: 1; background: var(--bg-2); }
.norm-table.v2 .nt-sticky-r0 { right: 0; }
.norm-table.v2 .nt-sticky-r1 { right: 92px; box-shadow: -1px 0 0 var(--line); }
.norm-table.v2 thead .nt-sticky-r0, .norm-table.v2 thead .nt-sticky-r1 { z-index: 3; background: var(--bg-3); }
.nt-row:hover td.nt-sticky-r0, .nt-row:hover td.nt-sticky-r1 { background: var(--bg-3); }
.nt-menu { position: fixed; z-index: 1200; min-width: 230px; display: grid; gap: 2px; padding: 6px; border: 1px solid var(--line-2); border-radius: 12px; background: var(--bg-3); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45); }
.nt-menu button { display: grid; gap: 1px; padding: 8px 10px; border: 0; border-radius: 8px; background: none; color: var(--text-hi); text-align: left; cursor: pointer; }
.nt-menu button:hover, .nt-menu button:focus-visible { background: rgba(255, 255, 255, 0.07); outline: none; }
.nt-menu b { font: 600 13px var(--font-body); }
.nt-menu small { font-size: 11.5px; color: var(--text-mute); }
@media (max-width: 900px) { .na-settings { margin-left: 0; padding-left: 0; border-left: 0; } }

/* Поля ввода без подсказок-примеров: в пустом форматированном поле тоже ничего не пишем */
.rich-area:empty::before { content: none; }
.rich-area { min-height: 44px; }

/* =============================================================
   Полировка: кнопки, фильтры, плитки разделов, подписи полей
   ============================================================= */

/* Второстепенная кнопка — всегда с рамкой, иначе выглядит как обычный текст */
.btn-ghost { border: 1px solid var(--line-2); background: rgba(255, 255, 255, 0.03); color: var(--text); }
.btn-ghost:hover:not(:disabled) { border-color: var(--line-3); background: rgba(255, 255, 255, 0.07); color: var(--text-hi); }
.btn-danger-ghost { background: rgba(229, 83, 75, 0.05); }
.banner-actions.action-bar { gap: 8px; }

/* Выпадающие списки в панелях фильтров */
.filter-bar select { border-color: var(--line-2); background-color: rgba(255, 255, 255, 0.03); }
.filter-bar select:hover { border-color: var(--line-3); background-color: rgba(255, 255, 255, 0.06); }

/* Плитки разделов: заполняют ряд целиком, без одинокой плитки на второй строке */
@media (min-width: 901px) {
    .command-nav { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
    .command-nav:has(> :nth-child(6)) { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
    .command-nav:has(> :nth-child(6)) .cmd-tile { gap: 10px; padding: 10px 12px; }
    .command-nav:has(> :nth-child(6)) .cmd-ico { flex: none; width: 34px; height: 34px; }
    .command-nav:has(> :nth-child(6)) .cmd-label { font-size: 13.5px; }
    .command-nav:has(> :nth-child(6)) .cmd-hint { display: none; }
}
@media (min-width: 901px) and (max-width: 1700px) {
    .command-nav:has(> :nth-child(8)) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 901px) and (max-width: 1280px) {
    .command-nav:has(> :nth-child(6)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Плитки делятся на ровные ряды: 7–8 → по 4, 9–10 → по 5, 11–12 → по 6 */
@media (min-width: 1100px) {
    .command-nav:has(> :nth-child(7)):not(:has(> :nth-child(9))) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .command-nav:has(> :nth-child(9)):not(:has(> :nth-child(11))) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .command-nav:has(> :nth-child(11)):not(:has(> :nth-child(13))) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
.cmd-label { overflow-wrap: anywhere; }

/* Подпись над полем (поля теперь пустые, без примеров внутри) */
.f-cap { display: flex; flex: 1 1 0; flex-direction: column; gap: 4px; min-width: 0; }
.f-cap > span { font-size: 12px; font-weight: 600; line-height: 1.3; color: var(--text-dim); }
.f-cap > input, .f-cap > textarea { flex: none !important; width: 100%; margin: 0; }
.q-edit-fields > .f-cap, .ak-ed-q-fields > .f-cap, .q-inputs > .f-cap { flex: none; }
.bg-tag-new > .f-cap { flex: 1 1 160px; }
.info-child-header:has(> .f-cap) { align-items: flex-end; }
.ladder-head { margin-bottom: 2px; font-size: 12px; font-weight: 600; color: var(--text-dim); }
.rep-act-cap { display: block; margin-top: 6px; font-size: 12px; font-weight: 600; color: var(--text-dim); }

/* ---------- Полезная информация: пункт документа карточкой, текст спокойнее ---------- */
.doc-rule {
    margin-bottom: 16px;
    padding: 22px 26px 24px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.018);
    transition: border-color var(--transition-fast);
}
.doc-rule:hover { border-color: var(--line-3, var(--line)); }
.doc-rule-body { gap: 10px; margin-top: 12px; }
.doc-rule .doc-text { font-size: 15.5px; line-height: 1.7; }
.doc-rule .doc-text::before { width: 5px; height: 5px; top: 0.72em; border-width: 1.5px; }
.doc-text.note { border-radius: 10px; }
.doc-table-block { margin-bottom: 16px; }
.doc-toc a { border-radius: 8px; }
