@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/JetBrainsMono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2190-21FF, U+2212, U+2215, U+25A0-25FF, U+FEFF, U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/JetBrainsMono-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/JetBrainsMono-400-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/JetBrainsMono-400-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/JetBrainsMono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2190-21FF, U+2212, U+2215, U+25A0-25FF, U+FEFF, U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/JetBrainsMono-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/JetBrainsMono-500-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/JetBrainsMono-500-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/JetBrainsMono-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2190-21FF, U+2212, U+2215, U+25A0-25FF, U+FEFF, U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/JetBrainsMono-600-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/JetBrainsMono-600-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/JetBrainsMono-600-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/JetBrainsMono-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2190-21FF, U+2212, U+2215, U+25A0-25FF, U+FEFF, U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/JetBrainsMono-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/JetBrainsMono-700-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/JetBrainsMono-700-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
/* F/ACT · iGaming Finance — по рефу «Оффер»: JetBrains Mono, белый, чёрные волосяные линии, один красный акцент */
:root {
  --bg: #ffffff; --ink: #000000; --ink-2: #3c3c3c; --mute: #8a8a8a; --line: #d9d9d9; --line-strong: #000000;
  --accent: #bf0909; --accent-soft: rgba(191,9,9,.07); --slate: #5e7492; --soft: #f5f5f4; --pos: #1f7a3a; --neg: #bf0909;
  --inv-bg: #000; --inv-ink: #fff; --inv-mute: #bdbdbd;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
[data-theme="dark"] {
  --bg: #0b0b0b; --ink: #f2f2f2; --ink-2: #c4c4c4; --mute: #8f8f8f; --line: #262626; --line-strong: #e9e9e9;
  --accent: #ff3b30; --accent-soft: rgba(255,59,48,.10); --slate: #7d93b2; --soft: #141414; --pos: #4cc27a; --neg: #ff4d42;
  --inv-bg: #1c1c1c; --inv-ink: #fff; --inv-mute: #9a9a9a;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--mono); }
body { font-size: 13px; line-height: 1.55; overflow-x: hidden; -webkit-font-smoothing: antialiased; transition: background .25s, color .25s; }
button, input, select, textarea { font-family: var(--mono); font-size: 12px; color: var(--ink); }
a { color: inherit; }
.num, .v, .big { font-variant-numeric: tabular-nums; white-space: nowrap; }
.pos-c { color: var(--pos); } .neg-c { color: var(--neg); } .mute { color: var(--mute); } .acc { color: var(--accent); }
.wrap { max-width: 1280px; margin: 0 auto; padding: 0 24px; min-width: 0; }

/* ---------- top bar ---------- */
.fb-bar { border-bottom: 1px solid var(--line-strong); position: sticky; top: 0; background: var(--bg); z-index: 20; }
.fb-bar .wrap { display: flex; align-items: center; gap: 18px; height: 52px; }
.fb-brand { font-weight: 700; font-size: 14px; letter-spacing: .02em; display: flex; gap: 10px; align-items: center; white-space: nowrap; }
.fb-brand .dot { width: 10px; height: 10px; background: var(--ink); display: inline-block; position: relative; }
.fb-brand .dot::after { content: ""; position: absolute; inset: 3px; background: var(--accent); }
.fb-brand .sub { color: var(--mute); font-weight: 500; }
.fb-nav { display: flex; gap: 0; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; overflow-x: auto; scrollbar-width: none; flex: 1; min-width: 0; }
.fb-nav::-webkit-scrollbar { display: none; }
.fb-nav a { color: var(--ink-2); text-decoration: none; padding: 6px 7px; white-space: nowrap; display: flex; gap: 5px; }
.fb-nav a .i { display: none; }
.fb-nav a .i { color: var(--mute); }
.fb-nav a:hover { color: var(--accent); }
.fb-nav a.on { background: var(--ink); color: var(--bg); }
.fb-nav a.on .i { color: var(--accent); }
.fb-tools { display: flex; align-items: center; gap: 8px; }
.ib { height: 30px; min-width: 30px; padding: 0 10px; border: 1px solid var(--line-strong); background: var(--bg); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.ib:hover { background: var(--ink); color: var(--bg); }
.ib.ghost { border-color: var(--line); }
.sync { font-size: 10px; color: var(--mute); text-transform: uppercase; letter-spacing: .08em; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.sync i { width: 7px; height: 7px; background: var(--pos); display: inline-block; }
.sync.err i { background: var(--accent); animation: blink 1s steps(2) infinite; }
@keyframes blink { 50% { opacity: .2; } }
.role-pill { font-size: 10px; text-transform: uppercase; letter-spacing: .12em; background: var(--slate); color: #fff; padding: 3px 8px; font-weight: 600; }

/* ---------- page head ---------- */
.ph { padding: 34px 0 22px; border-bottom: 1px solid var(--line); position: relative; overflow: hidden; }
.ph .ascii { position: absolute; inset: 0; color: var(--line); font-size: 11px; line-height: 13px; white-space: pre; pointer-events: none; overflow: hidden; opacity: .9; }
.ph .ascii .r { color: var(--accent); opacity: .55; }
.ph .wrap { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.ph .pos { font-size: 11px; text-transform: uppercase; letter-spacing: .14em; color: var(--accent); font-weight: 600; margin-bottom: 10px; background: var(--bg); display: inline-block; }
.ph h1 { font-size: 38px; line-height: 1.05; letter-spacing: -.025em; font-weight: 700; margin: 0; background: var(--bg); display: inline-block; }
.ph .lede { color: var(--ink-2); font-size: 12.5px; margin: 10px 0 0; max-width: 70ch; background: var(--bg); }
.mpick { display: flex; border: 1px solid var(--line-strong); background: var(--bg); }
.mpick button { border: none; border-right: 1px solid var(--line); background: transparent; padding: 7px 12px; cursor: pointer; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.mpick button:last-child { border-right: none; }
.mpick button.on { background: var(--ink); color: var(--bg); }
.mpick button:hover:not(.on) { color: var(--accent); }

/* ---------- stats ---------- */
.stats { display: grid; grid-template-columns: repeat(var(--n, 4), 1fr); border-bottom: 1px solid var(--line); }
.stat { padding: 20px 22px; border-right: 1px solid var(--line); min-width: 0; position: relative; }
.stat:last-child { border-right: none; }
.stat .v { font-size: 26px; font-weight: 700; letter-spacing: -.02em; }
.stat .k { color: var(--mute); font-size: 11.5px; margin-top: 2px; }
.stat .d { font-size: 11px; margin-top: 6px; color: var(--ink-2); }
.stat.hl::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--accent); }
@media (max-width: 900px) { .stats { grid-template-columns: 1fr 1fr; } .stat:nth-child(2n) { border-right: none; } .stat { border-bottom: 1px solid var(--line); } }

/* ---------- sections ---------- */
.sec { padding: 40px 0; border-bottom: 1px solid var(--line); }
.sec:last-child { border-bottom: none; }
.sh { display: flex; align-items: baseline; gap: 14px; margin-bottom: 20px; flex-wrap: wrap; }
.sh .i { color: var(--accent); font-weight: 600; font-size: 12px; }
.sh h2 { font-size: 22px; letter-spacing: -.02em; font-weight: 600; margin: 0; }
.sh .arr { color: var(--accent); font-weight: 700; }
.sh .r { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.note { margin-top: 14px; font-size: 12px; color: var(--ink-2); border-left: 2px solid var(--accent); padding: 4px 0 4px 12px; }
.note.slate { border-left-color: var(--slate); }

/* ---------- tables ---------- */
.tbl-wrap { border: 1px solid var(--line-strong); overflow-x: auto; }
table.t { width: 100%; border-collapse: collapse; font-size: 12px; }
table.t th { text-align: left; font-size: 10.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--mute); font-weight: 600; padding: 10px 14px; border-bottom: 1px solid var(--line-strong); white-space: nowrap; background: var(--bg); }
table.t td { padding: 9px 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
table.t tr:last-child td { border-bottom: none; }
table.t td.n, table.t th.n { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
table.t tr.grp td { background: var(--soft); font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
table.t tr.sub td { font-weight: 600; border-top: 1px solid var(--line-strong); }
table.t tr.tot td { background: var(--inv-bg); color: var(--inv-ink); font-weight: 700; border-bottom: none; }
table.t tr.tot td .mute { color: var(--inv-mute); }
table.t tr.click { cursor: pointer; }
table.t tr.click:hover td { background: var(--accent-soft); }
table.t tr.click:hover td:first-child { color: var(--accent); }
table.t td .why { color: var(--mute); font-size: 11px; display: block; margin-top: 2px; white-space: normal; }
table.t tr.excl td { color: var(--mute); text-decoration: line-through; }
table.t th.sticky, table.t td.sticky { position: sticky; left: 0; background: var(--bg); z-index: 1; }
table.t tr.grp td.sticky { background: var(--soft); }
table.t tr.tot td.sticky { background: var(--inv-bg); }

.pill { display: inline-block; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; padding: 2px 7px; border: 1px solid currentColor; font-weight: 600; white-space: nowrap; }
.pill.paid { color: var(--pos); } .pill.overdue { color: var(--accent); background: var(--accent-soft); } .pill.planned { color: var(--mute); } .pill.slate { color: var(--slate); }
.pill.solid { background: var(--slate); color: #fff; border-color: var(--slate); }

/* ---------- bars chart ---------- */
.chart { border: 1px solid var(--line-strong); }
.bars { padding: 18px 18px 0; display: flex; gap: 18px; align-items: flex-end; height: 220px; border-bottom: 1px solid var(--line); }
.bars .b { flex: 1; display: flex; gap: 4px; align-items: flex-end; height: 100%; position: relative; border-bottom: 1px solid var(--line-strong); }
.bars .col { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; height: 100%; }
.bars .seg { width: 100%; transition: height .6s cubic-bezier(.2,.8,.2,1); min-height: 1px; }
.bars .seg.rev { background: var(--ink); } .bars .seg.sp { background: var(--line); outline: 1px solid var(--ink); outline-offset: -1px; } .bars .seg.net { background: var(--accent); }
.bars .cap { position: absolute; bottom: -22px; left: 0; right: 0; text-align: center; font-size: 10px; color: var(--mute); text-transform: uppercase; letter-spacing: .08em; }
.legend { display: flex; gap: 16px; font-size: 11px; color: var(--ink-2); padding: 30px 18px 14px; flex-wrap: wrap; }
.legend i { display: inline-block; width: 10px; height: 10px; margin-right: 6px; vertical-align: -1px; }
.total { display: flex; justify-content: space-between; align-items: baseline; padding: 16px 18px; background: var(--inv-bg); color: var(--inv-ink); gap: 16px; flex-wrap: wrap; }
.total .k { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: var(--inv-mute); }
.total .v { font-size: 24px; font-weight: 700; letter-spacing: -.02em; }

/* waterfall */
.wf { border: 1px solid var(--line-strong); }
.wf .row { display: grid; grid-template-columns: 210px 1fr 130px; align-items: center; gap: 14px; padding: 9px 16px; border-bottom: 1px solid var(--line); font-size: 12px; }
.wf .row:last-child { border-bottom: none; }
.wf .track { height: 14px; position: relative; background: transparent; }
.wf .fill { position: absolute; top: 0; bottom: 0; transition: left .6s, width .6s cubic-bezier(.2,.8,.2,1); }
.wf .fill.p { background: var(--ink); } .wf .fill.m { background: var(--accent); } .wf .fill.r { background: var(--slate); }
.wf .row.t { background: var(--inv-bg); color: var(--inv-ink); font-weight: 700; }
.wf .row.t .fill.r { background: var(--accent); }
@media (max-width: 700px) { .wf .row { grid-template-columns: 1fr 110px; } .wf .track { display: none; } }

/* grid of cards (terms) */
.terms { display: grid; grid-template-columns: repeat(var(--c, 2), 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.term { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 16px 18px; min-width: 0; }
.term .t { font-weight: 600; font-size: 13px; margin-bottom: 4px; display: flex; justify-content: space-between; gap: 10px; }
.term .d { color: var(--ink-2); font-size: 12px; }
.term .big { font-size: 22px; font-weight: 700; letter-spacing: -.02em; margin-top: 6px; }
@media (max-width: 800px) { .terms { grid-template-columns: 1fr; } }

/* forms */
.fgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.fgrid label { display: flex; flex-direction: column; gap: 4px; font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-2); font-weight: 600; min-width: 0; }
.fgrid .w2 { grid-column: span 2; } .fgrid .w4 { grid-column: 1 / -1; }
input.in, select.in, textarea.in { height: 32px; border: 1px solid var(--line-strong); background: var(--bg); padding: 0 9px; font-size: 12px; text-transform: none; letter-spacing: 0; font-weight: 400; width: 100%; border-radius: 0; }
textarea.in { height: auto; min-height: 60px; padding: 7px 9px; resize: vertical; }
input.in:focus, select.in:focus, textarea.in:focus { outline: 2px solid var(--accent); outline-offset: -1px; }
input.cell { height: 26px; border: 1px solid var(--line); background: var(--bg); padding: 0 6px; width: 90px; text-align: right; font-variant-numeric: tabular-nums; }
input.cell:focus { outline: 2px solid var(--accent); outline-offset: -1px; }
@media (max-width: 800px) { .fgrid { grid-template-columns: 1fr 1fr; } }
.btn { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; background: var(--ink); color: var(--bg); border: none; border-radius: 999px; padding: 9px 18px; cursor: pointer; }
.btn:hover { background: var(--accent); color: #fff; }
.btn.sec2 { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.btn.sec2:hover { background: var(--ink); color: var(--bg); }
.btn.sm { padding: 5px 11px; font-size: 10px; }
.btn[disabled] { opacity: .4; cursor: not-allowed; }
.row-actions { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }

/* drawer */
.scrim { position: fixed; inset: 0; background: rgba(0,0,0,.35); z-index: 50; animation: fade .2s; }
.drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(760px, 100vw); background: var(--bg); border-left: 1px solid var(--line-strong); z-index: 51; display: flex; flex-direction: column; animation: slide .28s cubic-bezier(.2,.8,.2,1); }
.drawer .dh { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-bottom: 1px solid var(--line-strong); gap: 12px; }
.drawer .dh .t { font-weight: 700; font-size: 15px; }
.drawer .db { overflow: auto; padding: 18px 20px 40px; flex: 1; }
@keyframes fade { from { opacity: 0; } }
@keyframes slide { from { transform: translateX(40px); opacity: 0; } }

.toast { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); background: var(--inv-bg); color: var(--inv-ink); padding: 10px 18px; font-size: 12px; z-index: 80; animation: fade .2s; }
.empty { padding: 30px; text-align: center; color: var(--mute); border: 1px dashed var(--line); }
.loading { padding: 60px 0; text-align: center; color: var(--mute); font-size: 11px; text-transform: uppercase; letter-spacing: .14em; }
.loading::after { content: "▌"; animation: blink 1s steps(2) infinite; color: var(--accent); margin-left: 4px; }
.reveal { animation: rise .5s cubic-bezier(.2,.8,.2,1) both; }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } }
footer.ft { padding: 28px 0 60px; color: var(--mute); font-size: 11px; }

@media (max-width: 900px) {
  .fb-bar .wrap { flex-wrap: wrap; height: auto; padding-top: 10px; padding-bottom: 0; gap: 10px; }
  .fb-nav { order: 3; flex-basis: 100%; margin: 0 -24px; padding: 0 24px 8px; }
  .fb-tools { margin-left: auto; } .sync span { display: none; }
  .ph h1 { font-size: 28px; }
  .wrap { padding: 0 16px; } .fb-nav { margin: 0 -16px; padding: 0 16px 8px; }
}

/* =================== VAULT =================== */
.vault { position: fixed; inset: 0; background: #070707; color: #e9e9e9; overflow: hidden; display: grid; place-items: center; user-select: none; -webkit-user-select: none; touch-action: manipulation; }
.vault .vascii { position: absolute; inset: 0; color: #1f1f1f; font-size: 11px; line-height: 13px; white-space: pre; pointer-events: none; overflow: hidden; }
.vault .vascii .r { color: #bf0909; opacity: .6; }
.vault .scan { position: absolute; left: 0; right: 0; height: 120px; background: linear-gradient(180deg, transparent, rgba(191,9,9,.06), transparent); animation: scan 5s linear infinite; pointer-events: none; }
@keyframes scan { from { top: -120px; } to { top: 100%; } }
.vault .hud { position: absolute; font-size: 10px; text-transform: uppercase; letter-spacing: .16em; color: #6b6b6b; pointer-events: none; }
.vault .hud b { color: #e9e9e9; font-weight: 600; }
.vault .hud.tl { left: 22px; top: 18px; } .vault .hud.tr { right: 22px; top: 18px; text-align: right; }
.vault .hud.bl { left: 22px; bottom: 18px; } .vault .hud.br { right: 22px; bottom: 18px; text-align: right; }
.vault .hud .red { color: #ff3b30; }
.vault .brandv { display: flex; gap: 10px; align-items: center; font-weight: 700; font-size: 13px; color: #e9e9e9; letter-spacing: .04em; }
.vault .brandv .dot { width: 10px; height: 10px; background: #e9e9e9; position: relative; } .vault .brandv .dot::after { content: ""; position: absolute; inset: 3px; background: #bf0909; }

.vstage { position: relative; width: min(74vmin, 640px); aspect-ratio: 1; perspective: 1800px; }
.vframe { position: absolute; inset: 0; border-radius: 50%; }
.vinner { position: absolute; inset: 4%; border-radius: 50%; opacity: 0; transition: opacity .4s .2s; overflow: hidden; box-shadow: inset 0 0 80px #000; }
.vinner .gold { position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(0,0,0,.0) 0 22px, rgba(0,0,0,.18) 22px 24px), repeating-linear-gradient(0deg, rgba(0,0,0,0) 0 14px, rgba(0,0,0,.14) 14px 15px); mix-blend-mode: multiply; }
.vault.open .vinner { opacity: 1; }
.vdoor { position: absolute; inset: 0; transform-origin: 4% 50%; transform-style: preserve-3d; transition: transform 1.5s cubic-bezier(.65,0,.2,1) .2s; }
.vault.open .vdoor { transform: rotateY(-108deg); }
.vdoor svg { width: 100%; height: 100%; display: block; overflow: visible; filter: drop-shadow(0 30px 60px rgba(0,0,0,.6)); }
.vdial { transform-origin: 360px 360px; transition: transform .55s cubic-bezier(.3,1.6,.5,1); }
.vwheel { transform-origin: 360px 360px; transition: transform 1.1s cubic-bezier(.6,0,.2,1); }
.vault.unlock .vwheel { transform: rotate(540deg); }
.bolt { transition: transform .35s cubic-bezier(.6,0,.2,1); }
.vault.unlock .bolt { transform: translate(var(--bx), var(--by)); }
.digit-key { cursor: pointer; }
.digit-key circle.hit { fill: transparent; }
.digit-key text { fill: #9a9a9a; font: 700 30px var(--mono); transition: fill .15s; pointer-events: none; }
.digit-key circle.ring { fill: none; stroke: #2a2a2a; stroke-width: 1.5; transition: stroke .15s, fill .15s; }
.digit-key:hover text { fill: #fff; } .digit-key:hover circle.ring { stroke: #bf0909; }
.digit-key.press circle.ring { fill: #bf0909; stroke: #bf0909; } .digit-key.press text { fill: #fff; }
.led { transition: fill .2s, filter .2s; }
.led.on { fill: #bf0909; filter: url(#glow); }
.vault.ok .led { fill: #39d37a; }
.vault.bad .vdoor { animation: shake .5s; }
@keyframes shake { 10%,90% { transform: translateX(-2px); } 20%,80% { transform: translateX(5px); } 30%,50%,70% { transform: translateX(-10px); } 40%,60% { transform: translateX(10px); } }
.vault .flash { position: absolute; inset: 0; background: #bf0909; opacity: 0; pointer-events: none; mix-blend-mode: screen; }
.vault.bad .flash { animation: flash .6s; }
@keyframes flash { 0% { opacity: .35; } 100% { opacity: 0; } }
.vault .msg { position: absolute; left: 0; right: 0; bottom: max(7vh, 56px); text-align: center; font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: #8a8a8a; min-height: 16px; }
.vault .msg.red { color: #ff3b30; } .vault .msg.green { color: #39d37a; }
.vault .whiteout { position: absolute; inset: 0; background: #fff; opacity: 0; pointer-events: none; transition: opacity .6s 2.0s; }
.vault.open .whiteout { opacity: 1; }
.vault .particles { position: absolute; inset: 0; pointer-events: none; }
.vault .backspace { position: absolute; bottom: max(3vh, 24px); left: 50%; transform: translateX(-50%); background: none; border: 1px solid #333; color: #8a8a8a; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; padding: 6px 14px; cursor: pointer; border-radius: 999px; }
.vault .backspace:hover { border-color: #bf0909; color: #fff; }
@media (max-width: 600px) { .vault .hud.tr, .vault .hud.br { display: none; } .vstage { width: 96vmin; } }
@media (prefers-reduced-motion: reduce) { .vault .scan { display: none; } }

[data-theme="dark"] table.t tr.tot td { border-top: 1px solid var(--line-strong); }
[data-theme="dark"] .total { border-top: 1px solid var(--line-strong); }
[data-theme="dark"] .wf .row.t { border-top: 1px solid var(--line-strong); }
.vault .vstage::after { content: ""; position: absolute; inset: -4%; border-radius: 50%; box-shadow: 0 0 0 1px #1a1a1a, 0 0 120px rgba(191,9,9,.08); pointer-events: none; }

.vframe { position: absolute; inset: 0; }
.vstage { transition: transform 1.3s cubic-bezier(.7,0,.3,1) 1.2s; }
.vault.open .vstage { transform: scale(2.6); }
.vdoor .vlayer { position: absolute; inset: 4.2%; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #3a3a3a, #121212); border: 1px solid #000; }
.vdoor svg { position: relative; transform: translateZ(0); }
.vault .ray { animation: ray 3s ease-in-out infinite alternate; }
@keyframes ray { from { opacity: .03; } to { opacity: .11; } }
.vault .vstage::before { content: ""; position: absolute; left: 50%; top: 104%; width: 70%; height: 6%; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,.8), transparent 70%); filter: blur(6px); }
table.t tr.poolrow td { background: var(--accent-soft); }
table.t tr.poolrow td:first-child { box-shadow: inset 3px 0 0 var(--slate); }

/* calculator (по рефу оффера) */
.calc { display: grid; grid-template-columns: 360px 1fr; border: 1px solid var(--line-strong); }
.calc .ctl { padding: 22px; border-right: 1px solid var(--line-strong); background: var(--soft); min-width: 0; }
.calc .out { min-width: 0; display: flex; flex-direction: column; }
.field { margin-bottom: 22px; }
.field .top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; gap: 12px; }
.field .nm { font-size: 10.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-2); font-weight: 600; }
.field .val { font-size: 18px; font-weight: 700; }
.field .hint { font-size: 11px; color: var(--mute); margin-top: 6px; }
input[type=range] { -webkit-appearance: none; appearance: none; width: 100%; height: 2px; background: var(--ink); outline: none; margin: 8px 0; vertical-align: middle; }
input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 16px; background: var(--accent); border: 2px solid var(--bg); box-shadow: 0 0 0 1px var(--accent); cursor: pointer; }
input[type=range]::-moz-range-thumb { width: 14px; height: 14px; background: var(--accent); border: 2px solid var(--bg); border-radius: 0; cursor: pointer; }
td input[type=range] { width: calc(100% - 40px); }
.presets { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.presets button { font-size: 11px; border: 1px solid var(--ink); background: var(--bg); padding: 3px 8px; cursor: pointer; }
.presets button:hover, .presets button.on { background: var(--ink); color: var(--bg); }
.mwrap { border-top: 1px solid var(--line-strong); padding: 14px 16px 8px; flex: 1; }
.mh { font-size: 10.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--mute); font-weight: 600; margin-bottom: 6px; }
.mchart { width: 100%; height: 220px; display: block; }
.mchart .grid { stroke: var(--line); stroke-width: 1; } .mchart .zero { stroke: var(--ink); stroke-width: 1; }
.mchart .ax { fill: var(--mute); font: 500 10px var(--mono); }
.mchart .ln { fill: none; stroke: var(--ink); stroke-width: 2; vector-effect: non-scaling-stroke; }
.mchart .cur { stroke: var(--accent); stroke-dasharray: 3 3; vector-effect: non-scaling-stroke; }
.mchart .dot { fill: var(--accent); } .mchart .lbl { fill: var(--accent); font: 700 12px var(--mono); }
@media (max-width: 900px) { .calc { grid-template-columns: 1fr; } .calc .ctl { border-right: none; border-bottom: 1px solid var(--line-strong); } }

/* P&L statement */
.t.pnl td.ind { padding-left: 26px; color: var(--ink-2); }
.t.pnl th.cur, .t.pnl td.cur { background: var(--soft); }
.t.pnl th.click { cursor: pointer; } .t.pnl th.click:hover { color: var(--accent); }
.t.pnl tr.pct-row td { color: var(--slate); font-size: 11.5px; border-top: none; }
.t.pnl tr.mute-row td { color: var(--mute); font-size: 11.5px; }
.t.pnl .src { font-size: 9.5px; letter-spacing: .08em; color: var(--mute); border: 1px solid var(--line); padding: 0 4px; margin-left: 4px; }
.t.pnl tr.tot td { font-weight: 700; }

table.t.pnl tr.tot td.cur { background: var(--inv-bg); color: var(--inv-ink); box-shadow: inset 0 -3px 0 var(--accent); }
table.t.pnl tr.tot td.cur.neg-c, table.t.pnl tr.tot td.neg-c { color: var(--inv-ink); }
.mchart { overflow: visible; }

/* model: карточки отделов + сплит */
.kgrid { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line-strong); }
.kgrid .kc { padding: 14px 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); min-width: 0; }
.kgrid .kc:nth-child(3n) { border-right: none; }
.kgrid .kc:nth-last-child(-n+3) { border-bottom: none; }
.kgrid .k { font-size: 10.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-2); font-weight: 600; }
.kgrid .v { font-size: 22px; font-weight: 700; letter-spacing: -.02em; margin-top: 2px; }
.kgrid .d { font-size: 11px; color: var(--mute); }
.split { padding: 14px 16px; border-bottom: 1px solid var(--line-strong); }
.sbar { display: flex; height: 14px; border: 1px solid var(--ink); }
.sbar .sp { height: 100%; min-width: 1px; }
.slegend { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 8px; font-size: 11px; color: var(--ink-2); }
.slegend i { display: inline-block; width: 9px; height: 9px; margin-right: 5px; vertical-align: -1px; border: 1px solid var(--ink); }
.t td.ind { padding-left: 26px; color: var(--ink-2); }
@media (max-width: 720px) { .kgrid { grid-template-columns: 1fr 1fr; } .kgrid .kc:nth-child(3n) { border-right: 1px solid var(--line); } .kgrid .kc:nth-child(2n) { border-right: none; } }

/* ставки отделов */
.rates { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line-strong); }
.rates .rc { padding: 16px; border-right: 1px solid var(--line); min-width: 0; }
.rates .rc:last-child { border-right: none; }
.rates .rh { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.rates .rh .nm { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
.rates .rh b { font-size: 18px; }
.rates .dl { font-size: 11px; margin: 2px 0 12px; } .rates .dl.neg { color: var(--accent); } .rates .dl.pos { color: var(--pos, #2f7d4f); }
.rs { margin-bottom: 12px; } .rs .top { display: flex; justify-content: space-between; gap: 8px; font-size: 11.5px; color: var(--ink-2); }
.rs .top b { color: var(--ink); }
.rates .hint { font-size: 10.5px; color: var(--mute); margin: -4px 0 10px; line-height: 1.5; }
@media (max-width: 1100px) { .rates { grid-template-columns: 1fr 1fr; } .rates .rc:nth-child(2n) { border-right: none; } .rates .rc:nth-child(-n+2) { border-bottom: 1px solid var(--line); } }
@media (max-width: 640px) { .rates { grid-template-columns: 1fr; } .rates .rc { border-right: none; border-bottom: 1px solid var(--line); } }
