/* Стилі атласу — з bek-atlas.html 4.2 без змін; нижче — стилі платформи. */
:root{
  --bg:#eef2f2; --surface:#ffffff; --surface-2:#f6f8f8; --ink:#0f2430; --ink-2:#44565f; --muted:#6b7c84;
  --line:#d3dde0; --line-2:#e4eaec; --accent:#c9481a; --accent-ink:#ffffff; --link:#1b5a86;
  --s1:#2a78d6; --s2:#eb6834;
  --mil:#a8402a; --civ:#1f6fb8; --dual:#16856a;
  --chip-bg:#eef3f4; --focus:#1b5a86;
  --f-display:"Unbounded","Arial Black",system-ui,sans-serif;
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#0b1519; --surface:#12212a; --surface-2:#172a33; --ink:#e3ecef; --ink-2:#b3c3c9; --muted:#8a9ea6;
    --line:#26404b; --line-2:#1d333d; --accent:#f07a45; --accent-ink:#0b1519; --link:#7cc0ef;
    --s1:#3987e5; --s2:#d95926;
    --mil:#f08a6c; --civ:#79b4ef; --dual:#4fcaa3;
    --chip-bg:#1b303a; --focus:#7cc0ef;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0b1519; --surface:#12212a; --surface-2:#172a33; --ink:#e3ecef; --ink-2:#b3c3c9; --muted:#8a9ea6;
  --line:#26404b; --line-2:#1d333d; --accent:#f07a45; --accent-ink:#0b1519; --link:#7cc0ef;
  --s1:#3987e5; --s2:#d95926;
  --mil:#f08a6c; --civ:#79b4ef; --dual:#4fcaa3;
  --chip-bg:#1b303a; --focus:#7cc0ef;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font:15px/1.55 var(--f-body);margin:0}
.wrap{max-width:1280px;margin:0 auto;padding-inline:clamp(16px,3vw,32px);padding-block:0 64px}
a{color:var(--link);text-underline-offset:2px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,tr:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
h1,h2,h3{text-wrap:balance;margin:0}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}

/* Header */
.mast{padding-block:40px 24px;display:grid;gap:18px;border-bottom:1px solid var(--line)}
.eyebrow{font:500 12px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;gap:14px;flex-wrap:wrap}
.eyebrow b{color:var(--accent);font-weight:500}
h1{font:700 clamp(28px,5vw,52px)/1.05 var(--f-display);letter-spacing:-.01em;max-width:18ch}
.lede{max-width:70ch;color:var(--ink-2);font-size:16px;margin:0}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:8px}
.kpi{background:var(--surface);padding:14px 16px;display:grid;gap:2px}
.kpi .n{font:500 30px/1.1 var(--f-mono);font-variant-numeric:tabular-nums}
.kpi .l{font-size:13px;color:var(--muted)}

/* Tabs */
.tabs{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);border-bottom:1px solid var(--line);display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * clamp(16px,3vw,32px));padding-inline:clamp(16px,3vw,32px)}
.tabs::-webkit-scrollbar{display:none}
.tab{appearance:none;border:0;background:none;color:var(--ink-2);font:500 14px/1 var(--f-body);padding:16px 12px 14px;border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.tab .c{font:400 12px var(--f-mono);color:var(--muted);margin-left:6px}
section.panel{padding-top:28px}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
h2{font:700 20px/1.2 var(--f-display);letter-spacing:-.005em}
.sub{color:var(--muted);font-size:14px;margin:4px 0 0;max-width:80ch}

/* Overview */
.ov-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px}
@media (max-width:900px){.ov-grid{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--line);padding:20px}
.split{display:grid;gap:14px}
.split-row{display:grid;gap:6px}
.split-row .top{display:flex;justify-content:space-between;font-size:14px}
.split-row .top span:last-child{font-family:var(--f-mono);color:var(--ink-2)}
.meter{height:10px;background:var(--line-2);display:flex;gap:2px}
.meter i{display:block;height:100%}
.mini-t{font:600 13px var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}

.chart{position:relative}
.legend{display:flex;gap:16px;font-size:13px;color:var(--ink-2);margin-bottom:12px;flex-wrap:wrap}
.legend span{display:inline-flex;align-items:center;gap:6px}
.sw{width:10px;height:10px;border-radius:2px;display:inline-block}
.bars{display:grid;gap:6px}
.bar-row{display:grid;grid-template-columns:130px minmax(0,1fr) 34px;align-items:center;gap:10px;font-size:13px}
.bar-row .lab{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-row .tot{font-family:var(--f-mono);color:var(--ink);text-align:right}
.track{display:flex;gap:2px;height:16px}
.track i{display:block;height:100%;cursor:default}
.track i:first-child{border-radius:0}
.track i:last-child{border-radius:0 4px 4px 0}
.tip{position:absolute;pointer-events:none;background:var(--ink);color:var(--bg);font-size:12px;padding:6px 8px;border-radius:4px;white-space:nowrap;transform:translate(-50%,-110%);z-index:3}

.trends{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.trend{background:var(--surface);padding:18px 18px 16px;display:grid;gap:8px;align-content:start}
.trend h3{font:600 16px/1.3 var(--f-body)}
.trend p{margin:0;color:var(--ink-2);font-size:14px}
.trend .ex{display:flex;flex-wrap:wrap;gap:6px}
.linkchip{appearance:none;border:1px solid var(--line);background:var(--surface-2);color:var(--link);font:400 12px/1 var(--f-body);padding:5px 8px;border-radius:3px;cursor:pointer}
.linkchip:hover{border-color:var(--link)}
.method{margin:0;padding-left:18px;color:var(--ink-2);font-size:14px;display:grid;gap:6px;max-width:90ch}

/* Version 2 marks */
.badge{display:inline-block;font:500 10.5px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:3px 5px;border-radius:2px;margin-left:6px;vertical-align:2px;white-space:nowrap}
.badge.new{background:var(--accent);color:var(--accent-ink)}
.badge.upd{border:1px solid var(--accent);color:var(--accent);padding:2px 4px}
.badge.cpt{border:1px dashed var(--ink-2);color:var(--ink-2);padding:2px 4px}
.wn-stats{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0 0 14px;font-size:14px;color:var(--ink-2)}
.wn-stats b{font:500 15px var(--f-mono);color:var(--ink);font-variant-numeric:tabular-nums}
.wn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.wn-c{background:var(--surface);padding:14px 16px;display:grid;gap:8px;align-content:start;min-width:0}
.wn-c h3{font:600 15px/1.3 var(--f-body)}
.wn-c .ex{display:flex;flex-wrap:wrap;gap:6px}
.kpi .d{font:400 12px var(--f-mono);color:var(--accent)}
.mast-top{display:flex;justify-content:space-between;align-items:center;gap:12px 20px;flex-wrap:wrap}
.seg{display:flex;flex-wrap:wrap;gap:4px}
.seg button{appearance:none;border:1px solid var(--line);border-radius:3px;background:var(--surface);color:var(--ink-2);font:500 13px/1 var(--f-mono);padding:8px 12px;cursor:pointer}
.seg button:hover{color:var(--ink);border-color:var(--ink-2)}
.seg button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.seg .c{opacity:.65;margin-left:4px;font-size:12px}

/* Filters */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:12px}
.fld{display:grid;gap:4px;font-size:12px;color:var(--muted)}
.fld input,.fld select{font:14px var(--f-body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:8px 10px;min-width:0}
.fld input{width:min(320px,80vw)}
.btn{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font:14px var(--f-body);padding:8px 12px;border-radius:3px;cursor:pointer}
.btn:hover{color:var(--ink);border-color:var(--ink-2)}
.count{font-size:13px;color:var(--muted);margin:0 0 8px}

/* Table */
.tbl-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line)}
table{border-collapse:collapse;width:100%;min-width:980px;font-size:13.5px}
th{position:sticky;top:0;background:var(--surface-2);text-align:left;font:600 12px/1.3 var(--f-body);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid var(--line-2);vertical-align:top}
tbody tr.row{cursor:pointer}
tbody tr.row:hover td{background:var(--surface-2)}
tr.row[aria-expanded="true"] td{background:var(--surface-2);border-bottom-color:transparent}
.mname{font-weight:600;color:var(--ink)}
.mk{color:var(--muted);font-size:12.5px}
td.num{font-family:var(--f-mono);font-size:12.5px;color:var(--ink-2)}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 8px;border-radius:3px;background:var(--chip-bg);color:var(--ink-2);white-space:nowrap}
.chip::before{content:"";width:7px;height:7px;border-radius:1px;background:var(--dot,var(--muted))}
.chip.mil{--dot:var(--mil)} .chip.civ{--dot:var(--civ)} .chip.dual{--dot:var(--dual)}
.chip.sub::before{border-radius:50%}
.status{font-size:12.5px;color:var(--ink-2)}
.status.combat{color:var(--accent);font-weight:600}
.caret{font-family:var(--f-mono);color:var(--muted);width:14px;display:inline-block}
tr.detail td{background:var(--surface-2);padding:4px 12px 20px}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px 24px;margin-top:6px}
.dgrid div{display:grid;gap:2px}
.dk{font:500 11px/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dv{font-size:14px;color:var(--ink)}
.dwide{grid-column:1/-1}
.srcs{display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.empty{padding:28px;text-align:center;color:var(--muted)}

/* Makers */
.mk-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.mk-item{background:var(--surface);padding:14px 16px;display:grid;gap:8px;align-content:start}
.mk-item h3{font:600 15px/1.3 var(--f-body)}
.mk-item .meta{font-size:12.5px;color:var(--muted)}
.mk-item .models{display:flex;flex-wrap:wrap;gap:6px}
.linkchip.new{border-style:dashed}

/* Timeline */
.tl{list-style:none;margin:0;padding:0;border-left:2px solid var(--line);display:grid;gap:0}
.tl li{position:relative;padding:0 0 22px 22px;display:grid;gap:4px;max-width:90ch}
.tl li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;background:var(--surface);border:2px solid var(--accent);border-radius:50%}
.tl .when{font:500 13px var(--f-mono);color:var(--ink-2);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tl .what{font-size:15px}
.tl .src{font-size:13px}

/* Sources */
.src-list{margin:0;padding-left:22px;display:grid;gap:8px;font-size:14px;max-width:110ch}
.src-list .used{color:var(--muted);font-size:12.5px;display:block}
.foot{margin-top:40px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);max-width:90ch}
@media (max-width:560px){
  .bar-row{grid-template-columns:96px minmax(0,1fr) 30px}
  .kpi .n{font-size:24px}
}
@media (prefers-reduced-motion:no-preference){.tab,.linkchip,.btn{transition:color .15s,border-color .15s}}

/* ════════ Платформа: оболонка, вхід, дайджести, адмінка ════════ */
[hidden]{display:none!important}
html{background:var(--bg)}
.sw.s1,.track i.s1,.meter i.s1{background:var(--s1)}
.sw.s2,.track i.s2,.meter i.s2{background:var(--s2)}
.gap-top{margin-top:36px}
.m0{margin:0}
td.op{min-width:200px}
.fb-note{margin:6px 0 0;font-size:13px;color:var(--muted);font-style:italic}
.loading,.empty{color:var(--muted)}
.loading{padding-top:40px}
.note{font-style:italic}

/* Панель */
.bar{background:var(--surface);border-bottom:1px solid var(--line)}
.bar-in{max-width:1280px;margin:0 auto;padding:10px clamp(16px,3vw,32px);display:flex;align-items:center;gap:10px 20px;flex-wrap:wrap}
.brand{font:700 14px/1.2 var(--f-display);color:var(--ink);text-decoration:none;letter-spacing:.01em}
.nav{display:flex;gap:2px;flex-wrap:wrap}
.nav a{color:var(--ink-2);text-decoration:none;padding:8px 10px;border-radius:3px;font-weight:500;font-size:14px;display:inline-flex;gap:6px;align-items:center}
.nav a:hover{color:var(--ink)}
.nav a[aria-current="page"]{color:var(--ink);background:var(--chip-bg)}
.nav .c:not(:empty){font:500 11px/1 var(--f-mono);background:var(--accent);color:var(--accent-ink);padding:3px 5px;border-radius:2px}
.bar-r{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bar .seg button{padding:6px 9px;font-size:12px}
.user{position:relative}
.user summary{list-style:none;cursor:pointer;font-size:13px;color:var(--ink-2);padding:6px 9px;border:1px solid var(--line);border-radius:3px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user summary::-webkit-details-marker{display:none}
.user[open] summary{color:var(--ink);border-color:var(--ink-2)}
.user .menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;background:var(--surface);border:1px solid var(--line);padding:12px;display:grid;gap:8px;min-width:200px;box-shadow:0 8px 24px rgb(0 0 0 / .12)}
@media (max-width:640px){.bar-r{margin-left:0;width:100%}.user .menu{right:auto;left:0}}

/* Водяний знак */
.wm{position:fixed;inset:0;pointer-events:none;z-index:40;background-repeat:repeat}
@media print{.wm{z-index:9999}}

/* Вхід */
.auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.auth-card{width:min(440px,100%);background:var(--surface);border:1px solid var(--line);padding:28px}
.auth-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}
.auth form,#f-pw{display:grid;gap:14px}
.auth h1{font:700 22px/1.2 var(--f-display)}
.auth p{margin:0}
.auth .fld input,#f-pw .fld input{width:100%}
.row{display:flex;gap:8px;flex-wrap:wrap}
.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn.primary:hover{color:var(--bg);opacity:.9}
.btn.on{border-color:var(--accent);color:var(--accent)}
.btn:disabled{opacity:.5;cursor:wait}
.msg{color:var(--accent);font-size:14px;margin:0}
.msg:empty{display:none}
#qr{background:#fff;padding:8px;border:1px solid var(--line);justify-self:start;width:200px;height:200px}
code{font-family:var(--f-mono);font-size:13px;word-break:break-all;background:var(--chip-bg);padding:2px 6px;border-radius:2px}
dialog{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:24px;width:min(420px,calc(100vw - 32px))}
dialog::backdrop{background:rgb(0 0 0 / .45)}
dialog h2{margin-bottom:4px}

/* Сторінки дайджестів і адмінки */
.page-h{padding-block:32px 18px;display:grid;gap:6px}
.h1-s{font:700 clamp(24px,4vw,34px)/1.1 var(--f-display)}
.h2-s{font:700 18px/1.2 var(--f-display);margin:8px 0 12px}
.chk{display:flex;gap:6px;align-items:center;font-size:14px;color:var(--ink-2);padding-bottom:9px}
.more{margin-top:16px}
.dg-list,.pr-list{display:grid;gap:16px}
.dg{background:var(--surface);border:1px solid var(--line);padding:16px 20px}
.dg-h{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.dg-date{font:500 15px var(--f-mono)}
.dg-foot{font-size:12.5px;color:var(--muted);margin-left:auto}
.dg .mini-t{margin:14px 0 8px}
.dg-items{list-style:none;margin:0;padding:0;display:grid;gap:12px;max-width:110ch}
.dg-item p{margin:0}
.dg-links{display:flex;gap:6px 14px;flex-wrap:wrap;align-items:center;font-size:13px;margin-top:4px!important}
.pr-batch{display:grid;gap:12px;margin-top:20px}
.pr{background:var(--surface);border:1px solid var(--line);padding:16px 20px;display:grid;gap:12px;min-width:0}
.pr-h{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pr-h h3{font:600 16px/1.3 var(--f-body)}
.pr-st{margin-left:auto;font:500 11px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:4px 6px;border-radius:2px;border:1px solid var(--line);color:var(--ink-2)}
.pr-st.st-pending{border-color:var(--accent);color:var(--accent)}
.pr-st.st-accepted{border-color:var(--dual);color:var(--dual)}
.pr-st.st-rejected{border-color:var(--mil);color:var(--mil)}
.pr-review{display:grid;gap:8px;border-top:1px solid var(--line-2);padding-top:12px}
.pr textarea{width:100%;font:14px var(--f-body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:8px 10px;resize:vertical}
.warn{color:var(--accent);margin:0}
#pr-s{margin-bottom:4px}
table.tbl-s{min-width:640px}
.tbl-s select{font:13px var(--f-body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:4px 6px}
.h2-s.gap-top{margin-top:36px}
.msg.ok{color:var(--dual)}
