/* AI Visibility Tracker — v2 dashboard.
   BalticSignsAI brand — light + dark: Archivo + Spline Sans Mono, navy text,
   blue accent (nav/utility) + crimson brand (CTAs/problem signals). */
:root{
  --font-display:'Archivo','Helvetica Neue',Arial,sans-serif;
  --font-body:'Archivo','Helvetica Neue',Arial,sans-serif;
  --font-mono:'Spline Sans Mono',ui-monospace,monospace;
  /* —— BalticSignsAI brand — light —— */
  --bg:#f8f7f5; --surface:#ffffff; --surface-2:#f1efec;
  --border:#e6e3dd; --border-strong:#d8d5cf;
  --text:#0f1d3a; --text-2:#243456; --muted:#6f6b63;
  --accent:#2563eb; --accent-2:#4279ee; --accent-soft:#eaf1fe; --accent-strong:#1d4fcc;
  --brand:#c02e45; --brand-strong:#a3253a; --brand-soft:#fbe9ec;
  --bad:#c02e45;  --bad-soft:#fbe9ec;
  --good:#2563eb; --good-soft:#eaf1fe;
  --warn:#9c6210; --warn-soft:#f7ecd9;  /* 4.7:1 on bg */
  --neutral:#6f6b63; --neutral-soft:#efece7;
  /* engine identity palette (categorical only, never status) —
     light theme uses darkened variants so white 11px badge text passes AA;
     dark theme restores the brand hues (dark text there) */
  --ai-chatgpt:#0a7a60; --ai-gemini:#2b66d0; --ai-claude:#a8593d; --ai-perplexity:#1d7683;
  --sp1:4px; --sp2:8px; --sp3:12px; --sp4:16px; --sp5:20px; --sp6:24px; --sp8:32px; --sp10:40px;
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:22px;
  --sh-sm:0 1px 2px rgba(20,20,40,.05),0 1px 1px rgba(20,20,40,.03);
  --sh-md:0 4px 16px -4px rgba(30,30,60,.10),0 2px 6px -2px rgba(30,30,60,.06);
  --sh-lg:0 18px 48px -12px rgba(30,30,70,.18);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--font-body);color:var(--text);background:var(--bg);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;display:grid;grid-template-columns:248px 1fr;min-height:100vh;transition:grid-template-columns .18s ease}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.tnum{font-variant-numeric:tabular-nums}
.hidden{display:none!important}
button{font-family:inherit}
.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);padding:8px 13px;border-radius:var(--r-sm);font-weight:600;font-size:13px;cursor:pointer;box-shadow:var(--sh-sm);transition:border-color .15s,background .15s,transform .1s}
.btn:hover{border-color:var(--accent)}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 2px 8px -2px rgba(192,46,69,.4)}
.btn-primary:hover{background:var(--brand-strong);border-color:var(--brand-strong);color:#fff}
.btn-ghost{background:var(--surface)}
.icon-btn{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);color:var(--text-2);cursor:pointer}
.icon-btn:hover{color:var(--text);border-color:var(--border-strong)}
.icon-btn svg{width:17px;height:17px;stroke-width:1.9}
/* brand logo light/dark swap */
.logo-dark{display:none!important}
html[data-theme="dark"] .logo-light{display:none!important}
html[data-theme="dark"] .logo-dark{display:block!important}

/* ---------- LOGIN ---------- */
#login{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:var(--sp6);overflow:auto;
  background:radial-gradient(120% 120% at 0% 0%, #eef2f8 0%, rgba(255,255,255,0) 44%),radial-gradient(120% 120% at 100% 100%, #eaf1fe 0%, rgba(255,255,255,0) 46%),var(--bg)}
.login-shell{width:100%;max-width:940px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--sh-lg);display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden}
.login-hero{position:relative;padding:var(--sp10) var(--sp8);display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp8);overflow:hidden;border-right:1px solid var(--border);
  background:radial-gradient(120% 120% at 0% 0%, #fbe9ec 0%, rgba(255,255,255,0) 52%),radial-gradient(120% 130% at 100% 100%, #eaf1fe 0%, rgba(255,255,255,0) 55%),var(--surface-2)}
.login-hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(37,99,235,.06) 1px,transparent 1px);background-size:18px 18px;mask-image:linear-gradient(to bottom right,#000,transparent 62%);pointer-events:none}
.lh-top{position:relative;z-index:1}
.lh-logo{height:34px;width:auto;display:block}
.lh-name{font-family:var(--font-display);font-weight:800;font-size:26px;letter-spacing:-.025em;margin-top:var(--sp5);color:var(--text);line-height:1.1}
.lh-tag{font-size:13.5px;line-height:1.55;color:var(--text-2);margin-top:var(--sp3);max-width:36ch}
.lh-points{list-style:none;position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--sp4)}
.lh-points li{display:flex;gap:11px;align-items:flex-start;font-size:13px;line-height:1.4;color:var(--text-2)}
.lh-points svg{width:18px;height:18px;flex:none;color:var(--accent);stroke-width:1.9;margin-top:1px}
.lh-foot{position:relative;z-index:1;font-size:11.5px;color:var(--muted);font-weight:500}
.login-card{padding:var(--sp10) var(--sp8);display:flex;flex-direction:column;justify-content:center}
.lc-head{margin-bottom:var(--sp4)}
.login-card h1{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.02em}
.login-card p.sub{color:var(--muted);font-size:13px;margin-top:4px}
.login-card label{display:block;font-size:12px;font-weight:600;color:var(--text-2);margin:var(--sp4) 0 5px}
.login-card input{width:100%;font-family:var(--font-body);font-size:14px;padding:11px 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);transition:border-color .15s,box-shadow .15s}
.login-card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.label-row{display:flex;align-items:baseline;justify-content:space-between;margin:var(--sp4) 0 5px}
.label-row label{margin:0}
.link-mini{font-size:12px;font-weight:600;color:var(--accent);cursor:pointer}
.link-mini:hover{text-decoration:underline}
.pw-wrap{position:relative}
.pw-wrap input{padding-right:42px}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;background:none;display:grid;place-items:center;color:var(--muted);cursor:pointer;border-radius:6px}
.pw-toggle:hover{color:var(--text-2)}
.pw-toggle svg{width:18px;height:18px;stroke-width:1.9}
.login-card .btn-primary{width:100%;justify-content:center;margin-top:var(--sp5);padding:12px}
.login-card .btn-primary[disabled]{opacity:.65;cursor:default}
.or{display:flex;align-items:center;gap:var(--sp3);margin:var(--sp5) 0;color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--border)}
.login-card .btn-ghost{width:100%;justify-content:center;gap:8px;padding:11px}
.login-card .btn-ghost svg{width:16px;height:16px;stroke-width:1.9;flex:none}
.login-card .btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.lc-secure{display:flex;align-items:center;gap:7px;margin-top:var(--sp6);font-size:11.5px;color:var(--muted);line-height:1.4}
.lc-secure svg{width:14px;height:14px;flex:none;stroke-width:1.8}
@media(max-width:760px){
  .login-shell{grid-template-columns:1fr;max-width:420px}
  .login-hero{padding:var(--sp8) var(--sp6) var(--sp6);border-right:0;border-bottom:1px solid var(--border);align-items:center;text-align:center;gap:var(--sp5)}
  .login-hero .lh-points,.login-hero .lh-foot,.lh-tag{display:none}
  .lh-logo{height:42px;margin:0 auto}
  .login-card{padding:var(--sp6)}
}

/* ---------- LEFT RAIL ---------- */
.rail{background:var(--surface);border-right:1px solid var(--border)}
.rail-inner{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:var(--sp6) var(--sp4);gap:var(--sp2);overflow-y:auto}
.rail-collapse{width:30px;height:30px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;border-radius:7px;border:0;background:none;transition:background .15s,color .15s}
.rail-collapse:hover{background:var(--surface-2);color:var(--text)}
.rail-collapse svg{width:18px;height:18px;stroke-width:1.9}
.brand{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:0 var(--sp3) var(--sp6)}
.brand-lock{display:flex;flex-direction:column;gap:7px;min-width:0}
.brand .lockup{height:22px;width:auto;display:block}
.brand-name{font-family:var(--font-display);font-weight:700;font-size:13.5px;letter-spacing:-.01em;color:var(--text);white-space:nowrap}
.nav-label{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:var(--sp4) var(--sp3) var(--sp2)}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px var(--sp3);border-radius:var(--r-sm);color:var(--text-2);font-weight:500;cursor:pointer;border:0;background:none;width:100%;font-family:var(--font-body);font-size:14px;text-align:left;position:relative;transition:background .15s,color .15s}
.nav-item svg{width:18px;height:18px;stroke-width:1.9;flex:none}
.nav-item:hover{background:var(--surface-2);color:var(--text)}
.nav-item.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.nav-badge{margin-left:auto;background:var(--bad);color:#fff;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:20px;font-family:var(--font-mono)}
.rail-foot{margin-top:auto;display:flex;align-items:center;gap:10px;padding:var(--sp3);border-top:1px solid var(--border)}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;font-weight:700;color:var(--accent);font-size:13px}
.rail-foot .meta{font-size:12px;line-height:1.3;min-width:0}
.rail-foot .meta b{font-weight:600;font-size:12.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rail-foot .meta span{color:var(--muted)}
/* collapsed */
.rail-collapsed{grid-template-columns:72px 1fr}
.rail-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}
.rail-collapsed .brand-lock{display:none}
.rail-collapsed .rail-collapse{margin:0 auto}
.rail-collapsed .nav-label{text-align:center;font-size:0}
.rail-collapsed .nav-item{justify-content:center;gap:0;font-size:0;padding-left:0;padding-right:0}
.rail-collapsed .nav-badge{display:none}
.rail-collapsed .sa-soon{display:none}
.rail-collapsed .rail-foot{flex-direction:column;gap:8px}
.rail-collapsed .rail-foot .meta{display:none}
.rail-collapsed .rail-foot .avatar{cursor:pointer}
#rail-backdrop{display:none}

/* ---------- MAIN / TOPBAR ---------- */
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;background:rgba(245,245,248,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:var(--sp4) var(--sp8);display:flex;align-items:center;gap:var(--sp4)}
.hamburger{display:none}
.page-title{font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:-.02em}
.page-sub{color:var(--muted);font-size:12.5px;margin-top:1px}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp3)}
.fresh{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.fresh .dot{width:7px;height:7px;border-radius:50%;background:var(--good)}
/* topbar controls: period/custom + hotel filter (ported from Rate Radar) */
.tb-ctl{position:relative;display:flex}
.popover{position:absolute;top:150%;left:-10px;z-index:40;width:288px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--sh-lg);padding:var(--sp4) var(--sp5);display:none;text-align:left}
.popover.open{display:block}
.popover b{font-weight:700;font-size:13px;display:block;margin-bottom:7px;color:var(--text)}
.popover p{font-size:12.5px;line-height:1.55;color:var(--text-2);margin:0;font-weight:400;text-transform:none;letter-spacing:0}
.popover .pop-formula{color:var(--muted);font-size:11.5px;border-top:1px solid var(--border);padding-top:8px;margin-top:8px}
/* inline info tooltip ("i" chip in an eyebrow) ↩ Rate Radar */
.info-wrap{position:relative;display:inline-block;vertical-align:middle}
.info{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--border-strong);color:var(--muted);font-size:10px;font-weight:700;cursor:pointer;margin-left:6px;text-transform:none;letter-spacing:0}
.info:hover{color:var(--accent);border-color:var(--accent)}
.popover.tb-pop{top:calc(100% + 8px);right:0;left:auto;width:auto;min-width:260px;max-width:min(380px,92vw)}
.tb-pop .range-row{display:flex;gap:10px;margin-top:10px}
.tb-pop .range-row label{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:var(--text-2)}
.tb-pop .range-row input{width:100%;min-width:0;font-size:12.5px;padding:7px 8px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text)}
.tb-pop .range-row input:focus{outline:none;border-color:var(--accent)}
.hotel-btn{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-sm);padding:8px 12px;cursor:pointer;box-shadow:0 2px 6px -1px rgba(37,99,235,.3);white-space:nowrap;max-width:200px}
.hotel-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hotel-btn svg{width:13px;height:13px;stroke-width:2.4;flex:none}
.hsel-list{max-height:min(720px,80vh);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:1px}
.hsel-list button{text-align:left;font-size:13px;font-weight:500;color:var(--text-2);background:none;border:0;padding:8px 10px;border-radius:7px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hsel-list button:hover{background:var(--surface-2);color:var(--text)}
.hsel-list button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.pin{background:none;border:0;cursor:pointer;font-size:15px;line-height:1;color:var(--muted);padding:0 7px 0 0;vertical-align:middle}
.pin:hover{color:var(--warn)}
.pin.on{color:var(--warn)}
.seg{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px;gap:2px}
.seg button{border:0;background:none;padding:5px 10px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--text-2);cursor:pointer}
.seg button.on{background:var(--accent);color:#fff;box-shadow:0 2px 6px -1px rgba(37,99,235,.3)}
.filter-btn{display:inline-flex;align-items:center;gap:6px;font-size:12.5px}

/* ---------- CONTENT ---------- */
.content{padding:var(--sp8);max-width:none;width:100%;min-width:0;display:flex;flex-direction:column;gap:var(--sp6)}
.screen{display:none;flex-direction:column;gap:var(--sp6)}
.screen.active{display:flex}
.eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:7px}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:var(--sp6)}
.card h3{font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:-.01em}
.card-sub{color:var(--muted);font-size:12px;margin-top:2px}
/* staggered rise-in */
.rise{opacity:0;transform:translateY(10px);animation:rise .6s cubic-bezier(.16,1,.3,1) forwards}
.d1{animation-delay:.04s}.d2{animation-delay:.10s}.d3{animation-delay:.16s}.d4{animation-delay:.22s}.d5{animation-delay:.28s}.d6{animation-delay:.34s}
@keyframes rise{to{opacity:1;transform:none}}

/* ---------- HERO ---------- */
.hero{display:grid;grid-template-columns:1.35fr 1fr;gap:var(--sp6)}
.hero-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:var(--sp6)}
/* soft corner glow — left card top-left, right card top-right (↩ Rate Radar) */
.hero-l{overflow:hidden;background:radial-gradient(120% 140% at 0% 0%, #eaf1fe 0%, rgba(255,255,255,0) 58%),var(--surface);border-color:#d8e3fb}
.hero-l::after{content:"";position:absolute;inset:0;z-index:0;background-image:radial-gradient(rgba(37,99,235,.06) 1px,transparent 1px);background-size:16px 16px;mask-image:linear-gradient(to bottom left,#000,transparent 60%);pointer-events:none}
.hero-r{overflow:hidden;background:radial-gradient(120% 140% at 100% 0%, #fbeef0 0%, rgba(255,255,255,0) 55%),var(--surface);border-color:#f1dfe3}
.hero-r::after{content:"";position:absolute;inset:0;z-index:0;background-image:radial-gradient(rgba(192,46,69,.05) 1px,transparent 1px);background-size:16px 16px;mask-image:linear-gradient(to bottom right,#000,transparent 60%);pointer-events:none}
.hero-l>*,.hero-r>*{position:relative;z-index:1}
html[data-theme="dark"] .hero-l{background:radial-gradient(120% 140% at 0% 0%, #203a68 0%, rgba(0,0,0,0) 58%),var(--surface);border-color:#2a3f6b}
html[data-theme="dark"] .hero-l::after{background-image:radial-gradient(rgba(91,140,255,.14) 1px,transparent 1px)}
html[data-theme="dark"] .hero-r{background:radial-gradient(120% 140% at 100% 0%, #2a1722 0%, rgba(0,0,0,0) 55%),var(--surface);border-color:#3a2330}
html[data-theme="dark"] .hero-r::after{background-image:radial-gradient(rgba(255,93,98,.09) 1px,transparent 1px)}
.ph{display:flex;gap:var(--sp6);align-items:center;margin-top:var(--sp5)}
.ring-wrap{position:relative;width:150px;height:150px;flex:none}
.ring-wrap canvas{width:150px!important;height:150px!important}
.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring-center b{font-family:var(--font-display);font-weight:800;font-size:42px;line-height:1;letter-spacing:-.02em}
.ring-center span{font-size:11px;color:var(--muted);font-weight:600;margin-top:2px}
.ph-body{flex:1;min-width:0}
.ph-drivers{margin-top:var(--sp3);display:flex;flex-direction:column;gap:7px}
.driver{display:flex;align-items:center;justify-content:space-between;font-size:13px}
.driver .lbl{color:var(--text-2)}
.driver .pts{font-family:var(--font-mono);font-weight:600}
.driver.bad .pts{color:var(--bad)}.driver.warn .pts{color:var(--warn)}.driver.good .pts{color:var(--good)}
/* SoV / € hero */
.sov-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp3)}
.metric-toggle{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px}
.metric-toggle button{border:0;background:none;padding:4px 9px;border-radius:6px;font-size:11.5px;font-weight:600;color:var(--text-2);cursor:pointer}
.metric-toggle button.on{background:var(--accent);color:#fff}
.big-num{font-family:var(--font-display);font-weight:800;font-size:69px;letter-spacing:-.025em;line-height:1.05;margin-top:var(--sp4)}
.big-num .eur{font-size:49px;white-space:nowrap}
.big-num small{font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--muted);letter-spacing:0}
.hero-note{color:var(--text-2);font-size:13px;margin-top:var(--sp5);line-height:1.5}
.hero-caveat{color:var(--muted);font-size:11.5px;margin-top:var(--sp2)}

/* ---------- KPI STRIP ---------- */
.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp4)}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-sm);padding:var(--sp5);position:relative}
.kpi .k-lbl{font-size:12px;color:var(--text-2);font-weight:600;display:flex;align-items:center;gap:6px}
.kpi .k-dot{width:7px;height:7px;border-radius:50%}
.kpi .k-val{font-family:var(--font-display);font-weight:800;font-size:30px;letter-spacing:-.02em;margin-top:6px}
.kpi .k-sub{font-size:11.5px;color:var(--muted);margin-top:3px}
.ctx-line{color:var(--muted);font-size:12px;font-family:var(--font-mono)}

/* ---------- TOP ACTIONS ---------- */
/* section header above a block (title + hint + right-aligned link) ↩ Rate Radar */
.sec-head{display:flex;align-items:baseline;gap:10px;margin-bottom:var(--sp4)}
.sec-head .sec-title{font-family:var(--font-display);font-weight:700;font-size:16px;letter-spacing:-.01em}
.sec-head .sec-hint{color:var(--muted);font-size:12.5px}
.sec-link{margin-left:auto;color:var(--accent);font-weight:600;font-size:12.5px;text-decoration:none;cursor:pointer;white-space:nowrap}
.sec-link:hover{text-decoration:underline}
.actions{display:flex;flex-direction:column;gap:var(--sp3)}
.action{display:flex;gap:var(--sp4);align-items:flex-start;padding:var(--sp4);border:1px solid var(--border);border-left-width:3px;border-radius:var(--r-md);background:var(--surface-2)}
.action.high{border-left-color:var(--bad)}.action.mid{border-left-color:var(--warn)}
.action .ai{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none;color:#fff}
.action.high .ai{background:var(--bad)}.action.mid .ai{background:var(--warn)}
.action .ai svg{width:16px;height:16px;stroke-width:2}
.action .a-body{flex:1;min-width:0}
.action .a-title{font-weight:600;font-size:13.5px}
.action .a-where{font-size:11.5px;color:var(--muted);margin-top:2px;font-family:var(--font-mono)}
.action .a-fix{font-size:12.5px;color:var(--text-2);margin-top:6px;display:flex;gap:6px;align-items:flex-start}
.action .a-fix b{color:var(--accent);font-weight:700;white-space:nowrap}
.action .a-btns{display:flex;gap:7px;flex:none;align-self:center}
.action .a-btns .btn{padding:5px 10px;font-size:12px}
.action .a-title .grade{display:inline-block;margin-left:7px;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;font-family:var(--font-mono)}
.grade.proven{background:var(--good-soft);color:var(--good)}
.grade.likely{background:var(--warn-soft);color:var(--warn)}
.grade.marginal{background:var(--neutral-soft);color:var(--neutral)}

/* ---------- CHART ROWS ---------- */
.row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp6)}
.chart-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--sp4)}
.trend-summary{display:flex;align-items:baseline;gap:14px;margin:-6px 0 10px;flex-wrap:wrap;min-height:26px}
.trend-summary .ts-main{font-size:22px;font-weight:700;font-family:var(--font-mono);line-height:1}
.trend-summary .ts-x{font-size:12px;color:var(--muted)}
.trend-summary .ts-x b{color:var(--text-2);font-weight:600;font-family:var(--font-mono)}
.trend-summary .ts-delta{font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:999px;font-family:var(--font-mono)}
.ts-delta.up{background:var(--good-soft);color:var(--good)}
.ts-delta.down{background:var(--bad-soft);color:var(--bad)}
.ts-delta.flat{background:var(--neutral-soft);color:var(--neutral)}
.trend-summary .ts-empty{font-size:12.5px;color:var(--muted)}
.chart-box{position:relative;height:230px}
.chart-box canvas{max-height:230px}
.legend{display:flex;flex-wrap:wrap;gap:var(--sp4);margin-top:var(--sp4);font-size:11.5px;color:var(--text-2)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
/* horizontal bar list (competitors, citations) */
.hbars{display:flex;flex-direction:column;gap:10px;margin-top:var(--sp2)}
.hbar{display:grid;grid-template-columns:150px 1fr auto;gap:10px;align-items:center;font-size:12.5px}
.hbar .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-2)}
.hbar .track{display:block;height:9px;border-radius:5px;background:var(--surface-2);overflow:hidden}
.hbar .fill{display:block;height:100%;border-radius:5px;min-width:2px}
.hbar .val{font-family:var(--font-mono);font-weight:600;font-size:12px}
.tag{font-size:10px;font-weight:700;padding:1px 6px;border-radius:5px;text-transform:uppercase;letter-spacing:.03em}
.tag.instead{background:var(--bad-soft);color:var(--bad)}
.tag.alongside{background:var(--good-soft);color:var(--good)}

/* ---------- TABLE ---------- */
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
table.tbl th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;padding:0 12px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
table.tbl td{padding:11px 12px;border-bottom:1px solid var(--border);white-space:nowrap}
table.tbl tr:last-child td{border-bottom:0}
table.tbl tbody tr{cursor:pointer}
table.tbl tbody tr:hover{background:var(--surface-2)}
.mini-ring{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;font-family:var(--font-mono);
  background:conic-gradient(var(--c) calc(var(--p)*1%), var(--border) 0)}
.mini-ring i{width:26px;height:26px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-style:normal;color:var(--text)}
.ai-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;color:#fff}
.ai-chatgpt{background:var(--ai-chatgpt)}.ai-gemini{background:var(--ai-gemini)}.ai-claude{background:var(--ai-claude)}.ai-perplexity{background:var(--ai-perplexity)}
.st{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:12px}
.st .d{width:8px;height:8px;border-radius:50%}
.st.ok{color:var(--good)}.st.ok .d{background:var(--good)}
.st.warn{color:var(--warn)}.st.warn .d{background:var(--warn)}
.st.bad{color:var(--bad)}.st.bad .d{background:var(--bad)}
.spark{height:24px;width:90px}

/* ---------- SOON placeholder ---------- */
.screen-soon{display:grid;place-items:center;min-height:340px;text-align:center;gap:6px;color:var(--muted)}
.screen-soon svg{width:34px;height:34px;stroke-width:1.6;color:var(--accent);opacity:.7}
.screen-soon b{font-family:var(--font-display);font-size:17px;color:var(--text)}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1100px){.hero,.kpi-strip,.row2{grid-template-columns:1fr}.kpi-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){
  body{grid-template-columns:1fr}
  .rail{position:fixed;inset:0 auto 0 0;width:266px;z-index:90;transform:translateX(-100%);transition:transform .22s ease}
  body.rail-open .rail{transform:none}
  body.rail-open #rail-backdrop{display:block;position:fixed;inset:0;background:rgba(10,10,20,.4);z-index:85}
  .hamburger{display:grid}
  .content{padding:var(--sp5)}
  .ph{flex-direction:column;align-items:flex-start}
}

/* ---------- DARK ---------- */
html[data-theme="dark"]{
  --bg:#0a142a; --surface:#122140; --surface-2:#18294f;
  --border:#22304d; --border-strong:#2e4063;
  --text:#f4f6fb; --text-2:#c3cfe4; --muted:#8595b0;
  --accent:#5b8cff; --accent-2:#7aa3ff; --accent-soft:rgba(91,140,255,.16); --accent-strong:#4d7fe8;
  --brand:#d04a5f; --brand-strong:#b83a4e; --brand-soft:rgba(208,74,95,.16);
  --bad:#d04a5f; --bad-soft:rgba(208,74,95,.16);
  --good:#5b8cff; --good-soft:rgba(91,140,255,.16);
  --warn:#d8982f; --warn-soft:rgba(216,152,47,.16);
  --neutral:#8595b0; --neutral-soft:#18294f;
  --sh-sm:0 1px 2px rgba(0,0,0,.4); --sh-md:0 4px 16px -4px rgba(0,0,0,.5); --sh-lg:0 18px 48px -12px rgba(0,0,0,.62);
}
html[data-theme="dark"] .topbar{background:rgba(10,20,42,.82)}
html[data-theme="dark"] #login{background:radial-gradient(120% 120% at 0% 0%, #131c2e 0%, rgba(0,0,0,0) 44%),radial-gradient(120% 120% at 100% 100%, #16223b 0%, rgba(0,0,0,0) 46%),var(--bg)}
html[data-theme="dark"] .login-hero{background:radial-gradient(120% 120% at 0% 0%, #2c1620 0%, rgba(0,0,0,0) 52%),radial-gradient(120% 130% at 100% 100%, #14223b 0%, rgba(0,0,0,0) 55%),var(--surface-2)}
html[data-theme="dark"] .login-hero::after{background-image:radial-gradient(rgba(77,139,245,.07) 1px,transparent 1px)}
html[data-theme="dark"] .seg button.on,html[data-theme="dark"] .metric-toggle button.on{color:#0d0d14}
html[data-theme="dark"] .btn-primary{background:var(--brand-strong);border-color:var(--brand-strong);color:#fff}
html[data-theme="dark"] .ai-badge,html[data-theme="dark"] .action .ai{color:#0d0d14}
html[data-theme="dark"] .seg button.on,html[data-theme="dark"] .hotel-btn{box-shadow:none}

/* ---------- master|detail (Engines, Competitors) ---------- */
.md-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--sp6);align-items:start}
.subtab{display:inline-flex;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px;width:fit-content}
.subtab button{border:0;background:none;padding:6px 12px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--text-2);cursor:pointer}
.subtab button.on{background:var(--accent);color:#fff}
html[data-theme="dark"] .subtab button.on{color:#0d0d14}

/* engine list rows */
.eng-row{display:flex;align-items:center;gap:var(--sp4);padding:var(--sp4);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;margin-bottom:10px;transition:border-color .15s,background .15s}
.eng-row:last-child{margin-bottom:0}
.eng-row:hover{background:var(--surface-2)}
.eng-row.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.eng-row .badge{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:17px;flex:none}
.eng-row .em{flex:1;min-width:0}
.eng-row .em b{font-family:var(--font-display);font-size:15px}
.eng-row .stats{display:flex;gap:16px;margin-top:3px;font-size:11.5px;color:var(--muted)}
.eng-row .stats b{font-family:var(--font-mono);color:var(--text);font-weight:600}
.eng-row .spark{width:78px;height:26px;flex:none}
.eng-row .arrow{font-family:var(--font-mono);font-weight:700;font-size:12px;flex:none}
.up{color:var(--good)}.down{color:var(--bad)}

/* detail panel */
.detail .d-head{display:flex;align-items:center;gap:12px;margin-bottom:var(--sp4)}
.detail .d-title{font-family:var(--font-display);font-size:18px;font-weight:700}
.d-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:var(--sp2)}
.d-kpi{background:var(--surface-2);border-radius:var(--r-sm);padding:10px 12px}
.d-kpi .l{font-size:10.5px;color:var(--muted);font-weight:600}
.d-kpi .v{font-family:var(--font-display);font-size:20px;font-weight:800;margin-top:2px}
.d-sec{margin-top:var(--sp4)}
.d-sec h4{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px}
.qlist{display:flex;flex-direction:column;gap:6px}
.qitem{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--text-2)}
.qitem svg{width:15px;height:15px;flex:none;margin-top:2px;stroke-width:2.4}
.qitem.win svg{color:var(--good)}.qitem.lose svg{color:var(--bad)}
.detail .empty{color:var(--muted);font-size:13px;text-align:center;padding:var(--sp10) 0}

/* engine × theme matrix */
.matrix{display:grid;gap:6px;font-size:12px}
.matrix .mh{font-size:11px;color:var(--muted);font-weight:600;display:flex;align-items:center;justify-content:center;text-align:center}
.matrix .mlabel{font-size:12px;color:var(--text-2);display:flex;align-items:center}
.matrix .mcell{height:40px;border-radius:8px;display:grid;place-items:center;font-family:var(--font-mono);font-weight:600}
.mcell.lo{background:var(--bad-soft);color:var(--bad)}
.mcell.mid{background:var(--warn-soft);color:var(--warn)}
.mcell.hi{background:var(--accent-soft);color:var(--accent)}

/* head-to-head */
.hh{display:flex;flex-direction:column;gap:8px}
.hh-row{border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px}
.hh-row .top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.hh-row .htl{font-weight:600;font-size:13px}
.hh-row .q{font-size:12px;color:var(--muted);margin-top:4px}
.rank-vs{font-family:var(--font-mono);font-size:12px;font-weight:700;white-space:nowrap}
.rank-vs .them{color:var(--bad)}.rank-vs .us{color:var(--good)}
.engtag{font-size:10px;font-weight:700;padding:1px 7px;border-radius:6px;color:#fff;white-space:nowrap}
.eng-dots{display:inline-flex;gap:4px}
.eng-dots i{width:9px;height:9px;border-radius:50%;display:inline-block}
.evthumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.evthumb{aspect-ratio:4/3;border-radius:8px;background:linear-gradient(135deg,var(--surface-2),var(--border));display:grid;place-items:center;color:var(--muted);font-size:10px;border:1px solid var(--border)}
.detail .d-btns{display:flex;gap:8px;margin-top:var(--sp4)}
@media(max-width:1100px){.md-grid{grid-template-columns:1fr}}

.tbl tbody tr.sel{background:var(--accent-soft)}
.tbl tbody tr.sel b{color:var(--accent)}

/* ---------- Queries: funnel + chips ---------- */
.funnel{display:flex;flex-direction:column;gap:12px}
.frow{display:grid;grid-template-columns:140px 1fr auto;gap:12px;align-items:center}
.frow .ft{font-weight:600;font-size:13px}
.frow .ft small{color:var(--muted);font-weight:500;font-size:11px;margin-left:6px}
.frow .ftrack{height:24px;border-radius:6px;background:var(--surface-2);overflow:hidden}
.frow .ffill{height:100%;border-radius:6px;display:flex;align-items:center;justify-content:flex-end;padding-right:9px;color:#fff;font-size:11px;font-weight:700;font-family:var(--font-mono)}
.tier{font-size:10px;font-weight:700;padding:1px 6px;border-radius:5px;text-transform:uppercase}
.tier.core{background:var(--accent-soft);color:var(--accent)}
.tier.competitive{background:var(--warn-soft);color:var(--warn)}
.tier.baseline{background:var(--neutral-soft);color:var(--neutral)}
.qeng{display:flex;gap:7px;flex-wrap:wrap}
.qchip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:5px 9px;border-radius:7px;border:1px solid var(--border);color:var(--text)}
.qchip i{width:8px;height:8px;border-radius:50%}
.qchip.off{opacity:.45;color:var(--muted)}
.qchip .r{font-family:var(--font-mono)}

/* ---------- Markets list ---------- */
.mkt-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;margin-bottom:8px}
.mkt-row:last-child{margin-bottom:0}
.mkt-row:hover{background:var(--surface-2)}
.mkt-row.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.mkt-row .flag{font-size:22px}
.mkt-row .mn{font-weight:600;font-size:13.5px}
.mkt-row .mstats{font-size:11.5px;color:var(--muted);margin-top:2px}
.mkt-row .mvis{text-align:right;min-width:108px}
.mkt-row .mvis b{font-family:var(--font-display);font-size:18px;font-weight:800}
.vis-bar{height:6px;border-radius:4px;background:var(--surface-2);overflow:hidden;margin-top:5px}
.vis-bar i{display:block;height:100%;border-radius:4px}
.mh-list{display:flex;flex-direction:column;gap:9px}
.mh-row{display:grid;grid-template-columns:1fr 90px auto;gap:10px;align-items:center;font-size:12.5px}
.mh-row .val{font-family:var(--font-mono);font-weight:600;font-size:12px}

/* ---------- Hotels: € engine assumptions ---------- */
.bench{display:flex;gap:18px;margin-top:4px;flex-wrap:wrap}
.bench .b{font-size:12px;color:var(--text-2)}
.bench .b b{font-family:var(--font-mono)}
.bench .pos{color:var(--good)}.bench .neg{color:var(--bad)}
.assume{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.assume label{font-size:11px;color:var(--text-2);font-weight:600;display:flex;flex-direction:column;gap:4px}
.assume input{font-family:var(--font-mono);font-size:13px;padding:7px 9px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text);width:100%}
.assume input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.assume input:disabled{background:var(--surface-2);color:var(--muted);cursor:not-allowed;opacity:.7}
.ro-note{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:11.5px;font-weight:600;color:var(--muted)}
.ro-note svg{width:13px;height:13px;flex:none;stroke-width:1.9}
.eur-out{margin-top:12px;padding:12px 14px;border-radius:var(--r-md);background:var(--bad-soft);display:flex;align-items:baseline;justify-content:space-between}
.eur-out .l{font-size:12px;color:var(--bad);font-weight:600}
.eur-out .v{font-family:var(--font-mono);font-weight:700;font-size:19px;color:var(--bad)}

/* ---------- Evidence ---------- */
.sel{font-family:var(--font-body);font-size:13px;padding:7px 10px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text)}
.ev-bar{display:flex;gap:var(--sp4);align-items:center;justify-content:space-between;flex-wrap:wrap}
.ev-count{margin-top:10px;font-size:12px;color:var(--muted);font-family:var(--font-mono)}
.ev-ctl{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ev-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp4)}
.ev-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-sm);cursor:pointer;transition:transform .15s,box-shadow .15s}
.ev-card:hover{transform:translateY(-2px);box-shadow:var(--sh-md)}
.ev-shot{aspect-ratio:4/3;background:linear-gradient(135deg,var(--surface-2),var(--border));position:relative;display:grid;place-items:center;color:var(--muted);font-size:11px}
.ev-badge{position:absolute;top:8px;left:8px}
.ev-flag{position:absolute;top:8px;right:8px;font-size:15px}
.ev-st{position:absolute;bottom:10px;right:10px;font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:5px;text-transform:uppercase;letter-spacing:.03em}
.ev-meta .dt{padding-right:98px}   /* дата слева, статус-чип справа — не пересекаются */
.ev-st.shown{background:var(--good-soft);color:var(--good)}
.ev-st.not-visible{background:var(--neutral-soft);color:var(--neutral)}
.ev-st.outranked{background:var(--warn-soft);color:var(--warn)}
.ev-st.ota-cited{background:var(--bad-soft);color:var(--bad)}
.ev-meta{padding:10px 12px}
.ev-meta .h{font-weight:600;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-meta .q{font-size:11px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-meta .dt{font-size:10.5px;color:var(--muted);margin-top:5px;font-family:var(--font-mono)}

/* ---------- Activity ---------- */
.act-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--sp6);align-items:stretch}
.feed{display:flex;flex-direction:column;max-height:600px;overflow-y:auto;padding-right:8px;scrollbar-width:thin}
.feed .day{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;margin:var(--sp4) 0 6px}
.feed .day:first-child{margin-top:0}
.ev{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}
.ev:last-child{border-bottom:0}
.ev .ico{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none;color:#fff}
.ev .ico svg{width:15px;height:15px;stroke-width:2.2}
.ev.drop .ico,.ev.competitor .ico,.rule.drop .ico,.rule.competitor .ico{background:var(--bad)}
.ev.rankdown .ico,.ev.citation .ico,.rule.rankdown .ico,.rule.citation .ico{background:var(--warn)}
.ev.rankup .ico,.ev.reappear .ico,.rule.rankup .ico,.rule.reappear .ico{background:var(--good)}
.ev .ev-main{flex:1;min-width:0}
.ev .et{font-weight:600;font-size:13px}
.ev .es{font-size:11.5px;color:var(--text-2);margin-top:3px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ev-tag{font-size:10px;font-weight:700;padding:1px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em;font-family:var(--font-mono)}
.ev-tag.drop{background:var(--neutral-soft);color:var(--neutral)}
.ev-tag.citation{background:var(--bad-soft);color:var(--bad)}
.ev-tag.rankdown{background:var(--warn-soft);color:var(--warn)}
.ev .tm{margin-left:auto;font-size:11px;color:var(--muted);font-family:var(--font-mono);white-space:nowrap;flex:none}
.cd-sec{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:var(--sp5) 0 var(--sp2)}
.act-note{font-size:12.5px;color:var(--text-2);line-height:1.5}
.rules{display:flex;flex-direction:column;gap:14px}
.rule{display:flex;gap:10px;align-items:flex-start}
.rule .ico{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none;color:#fff}
.rule .ico svg{width:15px;height:15px;stroke-width:2.2}
.rule .rdot{width:9px;height:9px;border-radius:50%;margin-top:5px;flex:none}
.rule b{font-size:13px}
.rule p{font-size:12px;color:var(--text-2);margin-top:2px;line-height:1.45}

/* ---------- Run a Check ---------- */
.rc-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp6);align-items:start}
.gen-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp5)}
.gen-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.gen-q{font-family:var(--font-display);font-size:17px;font-weight:700;line-height:1.35;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px 16px}
.kv{font-size:12px;color:var(--muted)}.kv b{color:var(--text-2);font-weight:600}
.ta{width:100%;min-height:88px;font-family:var(--font-body);font-size:13px;padding:11px 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);resize:vertical}
.ta:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid label{font-size:11.5px;font-weight:600;color:var(--text-2);display:flex;flex-direction:column;gap:5px}
.form-grid label.full{grid-column:1/-1}
.form-grid input,.form-grid .sel{font-family:var(--font-body);font-size:13px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text)}
.toggle{display:inline-flex;border:1px solid var(--border-strong);border-radius:6px;overflow:hidden;width:fit-content}
.toggle button{border:0;background:var(--surface);padding:7px 16px;font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer}
.toggle button.on{background:var(--good);color:#fff}
.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--r-sm);padding:16px;text-align:center;color:var(--muted);font-size:12px;font-weight:500}

/* ---------- Settings (Rate Radar canon: sub-nav has no card; active tab is a compact pill) ---------- */
.set-shell{display:grid;grid-template-columns:208px 1fr;gap:var(--sp6);align-items:start}
.set-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:84px}
.set-nav-label{font:600 10.5px/1 var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:0 10px;margin-bottom:8px}
.set-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;background:none;border-radius:var(--r-sm);color:var(--text-2);font:500 13.5px/1 var(--font-body);text-align:left;cursor:pointer;transition:background .15s,color .15s}
.set-nav-item svg{width:17px;height:17px;flex:none}
.set-nav-item:hover{background:var(--surface)}
.set-nav-item.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.set-pane{min-width:0;max-width:720px;display:flex;flex-direction:column;gap:var(--sp5)}
.set-view{display:none;flex-direction:column;gap:var(--sp5)}
.set-view.active{display:flex}
.set-pane .mp{font-size:13.5px;line-height:1.6;color:var(--text-2);margin:var(--sp3) 0 0}
.set-pane .mp:first-of-type{margin-top:var(--sp2)}
.set-pane .mp b{color:var(--text)}
.set-pane .sec-title{font-size:14.5px}
.mf{font-family:var(--font-mono);font-size:12.5px;background:var(--surface-2);padding:2px 6px;border-radius:5px;color:var(--text-2)}
.save-row{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:var(--sp5)}
.save-row .btn{padding:8px 15px;font-size:12.5px}
.save-status{font-size:12px;font-weight:600;color:var(--muted)}
.save-status.ok{color:var(--good)}
.save-status.err{color:var(--bad)}
.role-chip{font:600 10px/1 var(--font-body);text-transform:uppercase;letter-spacing:.05em;padding:4px 9px;border-radius:20px;white-space:nowrap;background:var(--accent-soft);color:var(--accent)}
.role-chip.role-edit{color:var(--good);background:var(--good-soft)}
.role-chip.role-view{color:var(--text-2);background:var(--border)}
.acc-id{display:flex;align-items:center;gap:var(--sp4);padding:0 2px}
.acc-avatar{width:50px;height:50px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font:700 17px/1 var(--font-display);flex:none}
.acc-id-name{font:700 18px/1.1 var(--font-display);color:var(--text);letter-spacing:-.01em}
.acc-id-sub{display:flex;align-items:center;gap:10px;margin-top:5px;font:500 13px/1 var(--font-mono);color:var(--text-2);flex-wrap:wrap}
.acc-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp4);margin-top:var(--sp5)}
.acc-grid label{display:flex;flex-direction:column;gap:6px;font:600 12px/1 var(--font-body);color:var(--text-2)}
.acc-grid input,.acc-grid select{padding:10px 12px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text);font:500 14px/1.2 var(--font-body)}
.acc-grid select{cursor:pointer}
.acc-grid input:focus,.acc-grid select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.team-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp4);flex-wrap:wrap}
.team-list{margin-top:var(--sp5);display:flex;flex-direction:column}
.team-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4);padding:12px 0;border-top:1px solid var(--border)}
.team-row:first-child{border-top:0}
.team-who{display:flex;align-items:center;gap:12px;min-width:0}
.team-av{width:38px;height:38px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font:700 13px/1 var(--font-display);flex:none}
.team-nm{font:600 13.5px/1.2 var(--font-body);color:var(--text)}
.team-you{font:600 9.5px/1 var(--font-body);text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);padding:2px 6px;border-radius:20px;margin-left:2px;vertical-align:middle}
.team-em{font:500 12px/1.3 var(--font-mono);color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-act{display:flex;align-items:center;gap:10px;flex:none}
.team-role{padding:6px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text);font:600 12.5px/1 var(--font-body);cursor:pointer}
.team-role:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.team-rm{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer}
.team-rm:hover{border-color:var(--bad);color:var(--bad)}
.team-rm svg{width:15px;height:15px}
.team-empty{color:var(--muted);font-size:13px;padding:16px 0}
.invite-form{margin-top:var(--sp5);padding:var(--sp5);border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
.invite-form .save-row{justify-content:flex-end;gap:8px;margin-top:var(--sp4)}
.invite-result{margin-top:var(--sp5);padding:var(--sp5);border:1px solid var(--good);background:var(--good-soft);border-radius:12px}
.invite-result .ir-head{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text)}
.invite-result .ir-head svg{width:18px;height:18px;color:var(--good);flex:none}
.ir-pw{display:flex;align-items:center;gap:10px;margin-top:8px}
.ir-pw code{flex:1;min-width:0;font:600 14px/1 var(--font-mono);background:var(--bg);border:1px solid var(--border-strong);border-radius:8px;padding:11px 12px;color:var(--text);user-select:all;overflow:auto}
.calc{display:flex;flex-direction:column;gap:var(--sp2);margin-top:var(--sp4)}
.calc .cstep{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4);flex-wrap:wrap;padding:var(--sp3) var(--sp4);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r-sm);background:var(--surface-2)}
.calc .cin{font:500 12.5px/1.7 var(--font-mono);color:var(--text-2)}
.calc .cout{margin-left:auto;font:700 14px/1.25 var(--font-body);color:var(--text);white-space:nowrap}
.calc .cstep.total{border-left-color:var(--bad);background:var(--bad-soft)}
.calc .cstep.total .cout{color:var(--bad)}
.note-banner{display:flex;gap:10px;align-items:flex-start;background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp4) var(--sp5);font-size:12.5px;line-height:1.55;color:var(--text-2)}
.note-banner svg{width:16px;height:16px;color:var(--accent);flex:none;margin-top:1px}

/* ---------- product tour (Driver.js) — themed to the design system ---------- */
.driver-popover{font-family:var(--font-body);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:14px;box-shadow:var(--sh-lg);max-width:320px}
.driver-popover-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--text)}
.driver-popover-description{color:var(--text-2);font-size:13px;line-height:1.5}
.driver-popover-progress-text{color:var(--muted);font-size:11px;font-family:var(--font-mono)}
.driver-popover-arrow{display:none}
.driver-popover-footer button{font-family:var(--font-body);font-weight:600;font-size:12.5px;border-radius:8px;text-shadow:none;padding:6px 12px;transition:filter .15s}
.driver-popover-footer button.driver-popover-next-btn{background:var(--brand,var(--accent));color:#fff;border:1px solid var(--brand,var(--accent))}
.driver-popover-next-btn:hover{filter:brightness(1.06)}
.driver-popover-prev-btn{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}
.driver-popover-close-btn{color:var(--muted)}
.driver-popover-close-btn:hover{color:var(--text)}
.driver-popover.aiv-tour-hero{max-width:460px;padding:28px 30px 22px;text-align:center;border-radius:18px;border-left:4px solid var(--brand,var(--accent))}
.driver-popover.aiv-tour-hero .driver-popover-title{font-size:21px;line-height:1.25;margin-bottom:8px}
.driver-popover.aiv-tour-hero .driver-popover-description{font-size:14px;line-height:1.6}
.driver-popover.aiv-tour-hero .driver-popover-progress-text{display:none}
.driver-popover.aiv-tour-hero .driver-popover-footer{margin-top:18px;justify-content:center;gap:10px}
@media(max-width:820px){.set-shell{grid-template-columns:1fr}.set-nav{flex-direction:row;flex-wrap:wrap;position:static;gap:6px}.set-nav-label{display:none}.set-pane{max-width:none}}
@media(max-width:600px){.acc-grid{grid-template-columns:1fr}}

@media(max-width:1100px){.ev-grid{grid-template-columns:repeat(2,1fr)}.act-grid,.rc-grid{grid-template-columns:1fr}}

/* ---------- overflow hygiene (mobile QA) ---------- */
.main,.content,.screen,.card{min-width:0}
.hero>*,.kpi-strip>*,.row2>*,.md-grid>*,.act-grid>*,.rc-grid>*,.set-pane{min-width:0}
.tbl-wrap{max-width:100%}
#engine-matrix{overflow-x:auto}
.matrix{min-width:430px}
@media(max-width:820px){
  .topbar{flex-wrap:wrap;row-gap:10px;padding:var(--sp3) var(--sp5)}
  .topbar-right{width:100%;justify-content:flex-start;flex-wrap:wrap;margin-left:0}
  .topbar > div:not(.topbar-right){flex:1}
}
@media(max-width:520px){
  .kpi-strip{grid-template-columns:1fr 1fr}
  .form-grid{grid-template-columns:1fr}
  .ev-grid{grid-template-columns:1fr 1fr}
}

/* citations split (Overview) — must shrink so the chart canvas doesn't overflow */
.cite-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp5)}
.cite-split>*{min-width:0}
.chart-box{min-width:0}
@media(max-width:560px){.cite-split{grid-template-columns:1fr}}

/* login message */
.login-msg{font-size:12.5px;margin-top:var(--sp4);padding:9px 12px;border-radius:var(--r-sm);display:none}
.login-msg.err{background:var(--bad-soft);color:var(--bad);display:block}
.login-msg.ok{background:var(--good-soft);color:var(--good);display:block}

/* lightbox — evidence screenshot viewer (.hidden{display:none!important} hides it) */
#lightbox{position:fixed;inset:0;z-index:120;background:rgba(15,15,25,.82);display:grid;place-items:center;padding:40px}
#lightbox .lb-inner{max-width:min(1100px,92vw);max-height:88vh;display:flex;flex-direction:column;gap:14px;align-items:center}
#lightbox img{max-width:100%;max-height:80vh;border-radius:var(--r-md);box-shadow:0 24px 60px rgba(0,0,0,.5);background:#fff;object-fit:contain}
#lightbox .lb-cap{color:#fff;font:600 13px/1.4 var(--font-mono);text-align:center}
#lightbox .lb-close{position:absolute;top:18px;right:22px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;cursor:pointer;display:grid;place-items:center}
#lightbox .lb-close svg{width:20px;height:20px}

.cite-note{margin-top:8px;font-size:11px;color:var(--muted);line-height:1.4}

/* ---- Competitors: matched-height card pair (RR "violators" pattern) ----
   the DETAIL card's content sets the pair's height (so it never clips);
   the list card stretches to match and scrolls its rows internally under a
   sticky header. min-height keeps ~10 rows visible when the detail is short. */
#screen-competitors .md-grid{grid-template-columns:1.5fr 1fr;align-items:stretch}
#screen-competitors .md-grid > .card:first-child{display:flex;flex-direction:column;overflow:hidden;min-height:600px;contain:size}
#screen-competitors .md-grid .tbl-wrap{flex:1;overflow:auto;min-height:0}
#screen-competitors .md-grid .tbl thead th{position:sticky;top:0;background:var(--surface);z-index:2}
/* compact columns — must fit the card without horizontal scroll on laptops */
#screen-competitors .tbl th,#screen-competitors .tbl td{padding:11px 8px}
#screen-competitors .tbl td:first-child{max-width:158px;overflow:hidden;text-overflow:ellipsis}
#screen-competitors .tbl .tag{font-size:9.5px;padding:2px 6px}

/* ---- Hotels: same matched-height pair as Competitors ----
   the detail card's content sets the pair's height; the hotels table
   stretches to match and scrolls internally under a sticky header. */
#screen-hotels .md-grid{align-items:stretch}
#screen-hotels .md-grid > .card:first-child{display:flex;flex-direction:column;overflow:hidden;min-height:600px;contain:size}
#screen-hotels .md-grid .tbl-wrap{flex:1;overflow:auto;min-height:0}
#screen-hotels .md-grid .tbl thead th{position:sticky;top:0;background:var(--surface);z-index:2}
#screen-hotels .md-grid{grid-template-columns:1.5fr 1fr}
#screen-hotels .tbl th,#screen-hotels .tbl td{padding:11px 8px}
#screen-hotels .tbl td:first-child{max-width:138px;overflow:hidden;text-overflow:ellipsis}
/* Alerts preview — switches are UI-only until #25 wires them */
/* stale market: kept visible, excluded from KPIs */
.mkt-row.stale{opacity:.55}
.stale-chip{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:600;background:var(--warn-soft);color:var(--warn);vertical-align:middle}

/* ---- Queries: list rows (query full-width, meta line beneath) + matched-height pair ---- */
#screen-queries .md-grid{align-items:stretch}
#screen-queries .md-grid > .card:first-child{display:flex;flex-direction:column;overflow:hidden;min-height:620px;contain:size}
#queries-list{flex:1;overflow:auto;min-height:0}
.q-row{padding:10px 10px;border-bottom:1px solid var(--border);cursor:pointer;border-radius:8px}
.q-row:hover{background:var(--surface-2)}
.q-row.on{background:var(--accent-soft)}
.q-text{font-size:13px;font-weight:600;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.q-meta{display:flex;gap:12px;align-items:center;margin-top:5px;font-size:11.5px;color:var(--muted);white-space:nowrap}
.q-meta b{color:var(--text-2)}
.q-meta .q-top{overflow:hidden;text-overflow:ellipsis;min-width:0}
.q-more{padding:10px;text-align:center;font-size:11px;color:var(--muted);font-family:var(--font-mono)}
#q-search{display:block}
/* Evidence query-scope chip */
.ev-scope{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:600;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.ev-scope button{border:0;background:none;color:var(--accent);font-size:13px;cursor:pointer;line-height:1;padding:0}

/* ==== responsive tail (audit fix №16) ==== */
/* dark theme keeps the true brand hues (badges use dark text there) */
html[data-theme="dark"]{--ai-chatgpt:#10A37F; --ai-gemini:#4285F4; --ai-claude:#CC785C; --ai-perplexity:#20808D}
/* engine×theme matrix scrolls instead of clipping */
#engine-matrix{overflow-x:auto}
#engine-matrix .matrix{min-width:520px}
/* laptop widths: stacked pairs for the matched-height screens */
@media(max-width:1100px){
  #screen-competitors .md-grid,#screen-hotels .md-grid,#screen-queries .md-grid{grid-template-columns:1fr}
  .cite-split{grid-template-columns:1fr}
}
/* mobile */
@media(max-width:820px){
  .action{flex-wrap:wrap}
  .action .a-body{flex:1 1 0;min-width:180px}
  .action .a-btns{flex-basis:100%;margin-left:0;align-self:auto;justify-content:flex-end}
  .subtab{display:flex;flex-wrap:wrap;width:auto}
  .eng-row .spark{display:none}
  .seg button{padding:9px 12px;min-height:38px}
  .icon-btn{width:40px;height:40px}
  .hotel-btn{min-height:40px}
  .subtab button{min-height:36px}
}
/* laptop/tablet: filters row wraps under the title instead of overflowing */
@media(max-width:1180px){
  .topbar{flex-wrap:wrap;row-gap:10px}
  .topbar-right{flex:1 1 100%;justify-content:flex-end}
}

/* ==== Engines/Markets pair alignment + matrix sampling cues ==== */
.mcell.thin{opacity:.5}
#screen-engines .md-grid{align-items:stretch}
#screen-engines .md-grid > .card:first-child{display:flex;flex-direction:column;overflow:hidden;contain:size;min-height:560px}
#engine-list{flex:1;display:flex;flex-direction:column;gap:10px;min-height:0}
#engine-list .eng-row{flex:1;margin-bottom:0;min-height:86px}
#screen-markets .md-grid{align-items:stretch}
#screen-markets .md-grid > .card:first-child{display:flex;flex-direction:column;overflow:hidden;contain:size;min-height:560px}
#market-list{flex:1;display:flex;flex-direction:column;gap:8px;min-height:0}
#market-list .mkt-row{flex:1;margin-bottom:0;min-height:74px}
/* компактный detail рынка: длинный список отелей скроллит внутри */
#market-detail .mh-list{max-height:480px;overflow:auto}
/* engine detail: destination as ONE stacked 100% bar (composition ≠ ranking) */
.dest-stack{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--surface-2);gap:2px}
.dest-stack i{display:block;height:100%;min-width:3px}
.dest-legend{display:flex;gap:14px;margin-top:9px;font-size:11.5px;color:var(--text-2);flex-wrap:wrap}
.dest-legend i{width:9px;height:9px;border-radius:3px;display:inline-block;margin-right:5px;vertical-align:-1px}
.dest-legend b{color:var(--text)}

/* ---------- Site Audit preview (sa- namespace: .funnel/.ring заняты другими экранами) ---------- */
/* nav badge */
.sa-soon{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:var(--warn-soft);color:var(--warn);border-radius:99px;padding:1px 6px;margin-left:auto}
/* preview ribbon */
.sa-ribbon{display:flex;gap:var(--sp3);align-items:flex-start;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:var(--r-md);padding:var(--sp3) var(--sp4);font-size:12.5px;line-height:1.55;color:var(--text-2)}
.sa-ribbon b{color:var(--text)}
.sa-ribbon-ic{width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:7px;background:var(--accent);color:#fff}
.sa-ribbon-ic svg{width:14px;height:14px;stroke-width:2.2}
.sa-ex{flex:none;font-size:10.5px;font-weight:600;color:var(--muted);border:1px dashed var(--border-strong);border-radius:999px;padding:2px 9px;margin-top:2px;white-space:nowrap}
/* KPI strip */
.sa-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp4);margin-top:var(--sp4)}
@media(max-width:980px){.sa-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.sa-kpis{grid-template-columns:1fr}}
.sa-kpi .l{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.sa-kpi .v{font-family:var(--font-display);font-weight:800;font-size:30px;letter-spacing:-.02em;line-height:1.15;margin-top:6px;font-variant-numeric:tabular-nums}
.sa-kpi .s{font-size:12px;color:var(--muted);margin-top:2px}
/* table extras */
.sa-tr{font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.sa-tr.up{color:var(--good)}.sa-tr.dn{color:var(--bad)}
.sa-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;font-variant-numeric:tabular-nums}
.sa-chip.good{background:var(--good-soft);color:var(--good)}
.sa-chip.bad{background:var(--bad-soft);color:var(--bad)}
.sa-chip.mut{background:var(--neutral-soft);color:var(--neutral)}
/* selected-hotel header bar */
.sa-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4);flex-wrap:wrap}
.sa-head-l{display:flex;align-items:center;gap:var(--sp3)}
.sa-title{font-family:var(--font-display);font-size:16px;font-weight:800;letter-spacing:-.02em}
.sa-domain{display:inline-flex;font-size:11.5px;color:var(--text-2);background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:999px;padding:2px 10px;margin-left:9px;vertical-align:2px}
.sa-actions{display:flex;align-items:center;gap:var(--sp2);flex-wrap:wrap}
/* summary trio */
.sa-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp4)}
@media(max-width:980px){.sa-grid3{grid-template-columns:1fr}}
.sa-scorebox{display:flex;align-items:center;gap:var(--sp4)}
.sa-ring{position:relative;flex:none}
.sa-ring.lg{width:118px;height:118px}
.sa-rc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.sa-rc b{font-family:var(--font-display);font-weight:800;font-size:32px;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.sa-rc span{font-size:10px;color:var(--muted);font-weight:600;margin-top:2px}
.sa-fstep{display:grid;grid-template-columns:86px 1fr 40px;align-items:center;gap:10px;font-size:12.5px;margin-bottom:8px}
.sa-fl{color:var(--text-2);font-weight:600}
.sa-fbar{height:14px;border-radius:5px;background:var(--neutral-soft);overflow:hidden}
.sa-fbar i{display:block;height:100%;border-radius:5px;background:var(--accent);opacity:.85}
.sa-fv{font-family:var(--font-mono);font-weight:600;text-align:right;font-size:11.5px;font-variant-numeric:tabular-nums}
.sa-fstep.drop .sa-fbar i{background:var(--bad)}
.sa-fstep.drop .sa-fv{color:var(--bad)}
.sa-fnote{font-size:11.5px;color:var(--bad);font-weight:600;margin-top:4px;line-height:1.45}
.sa-months{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);font-weight:600;margin-top:4px}
/* what changed */
.sa-ai{font-size:9.5px;font-weight:800;letter-spacing:.05em;color:var(--accent);background:var(--accent-soft);border-radius:5px;padding:2px 7px;text-transform:uppercase;white-space:nowrap}
.sa-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}
.sa-wc{font-size:13px;line-height:1.65;color:var(--text-2);max-width:92ch}
.sa-wc b{color:var(--text)}
/* checklist */
.sa-progress{display:flex;align-items:center;gap:var(--sp3);min-width:210px}
.sa-pbar{flex:1;height:8px;border-radius:99px;background:var(--neutral-soft);overflow:hidden}
.sa-pbar i{display:block;height:100%;border-radius:99px;background:var(--good)}
.sa-progress span{font-size:12px;color:var(--text-2);font-weight:600;white-space:nowrap}
.sa-group{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;background:var(--surface);margin-top:var(--sp3)}
.sa-group summary{list-style:none;display:flex;align-items:center;gap:10px;padding:11px var(--sp4);cursor:pointer;user-select:none;background:var(--surface-2)}
.sa-group summary::-webkit-details-marker{display:none}
.sa-group summary:hover .sa-gt{color:var(--text)}
.sa-gt{font-weight:700;font-size:13px;color:var(--text-2)}
.sa-pb{font-family:var(--font-mono);font-size:10.5px;font-weight:700;border-radius:5px;padding:2px 8px}
.sa-pb.p1{background:var(--bad-soft);color:var(--bad)}
.sa-pb.p2{background:var(--warn-soft);color:var(--warn)}
.sa-pb.p3{background:var(--neutral-soft);color:var(--neutral)}
.sa-pb.done{background:var(--good-soft);color:var(--good)}
.sa-cnt{margin-left:auto;font-size:11.5px;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}
.sa-car{color:var(--muted);font-size:11px;transition:transform .16s}
.sa-group[open] .sa-car{transform:rotate(180deg)}
.sa-acts{display:flex;flex-direction:column;gap:var(--sp3);padding:var(--sp4)}
.sa-act{display:flex;gap:var(--sp4);align-items:flex-start;padding:var(--sp4);border:1px solid var(--border);border-left-width:3px;border-radius:var(--r-md);background:var(--surface-2)}
.sa-act.high{border-left-color:var(--bad)}.sa-act.mid{border-left-color:var(--warn)}
.sa-act .ai{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none;color:#fff;background:var(--neutral)}
.sa-act.high .ai{background:var(--bad)}.sa-act.mid .ai{background:var(--warn)}
.sa-act .ai svg{width:16px;height:16px;stroke-width:2}
.sa-act-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.sa-act-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sa-act-t{font-weight:700;font-size:13.5px}
.sa-act-why{font-size:12.5px;color:var(--text-2);line-height:1.55;max-width:92ch}
.sa-badge{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap}
.sa-badge.eff{background:var(--accent-soft);color:var(--accent)}
.sa-badge.dom{background:var(--neutral-soft);color:var(--neutral)}
.sa-badge.reg{background:var(--bad-soft);color:var(--bad)}
.sa-badge.man{background:var(--warn-soft);color:var(--warn)}
.sa-badge.fix{background:var(--good-soft);color:var(--good)}
.sa-copy{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);border-radius:7px;padding:5px 11px;font-size:12px;font-weight:600;cursor:pointer;width:fit-content;box-shadow:var(--sh-sm);transition:border-color .15s,color .15s}
.sa-copy:hover{border-color:var(--accent);color:var(--accent)}
.sa-copy svg{width:13px;height:13px;stroke-width:2}
.sa-done-row{display:flex;align-items:center;gap:10px;padding:9px var(--sp3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);font-size:12.5px;color:var(--muted);font-weight:600}
.sa-done-row svg{width:15px;height:15px;flex:none;color:var(--good);stroke-width:2}
.sa-done-row s{text-decoration-color:color-mix(in srgb,var(--muted) 50%,transparent);flex:1;min-width:0}
.sa-more{font-size:12px;color:var(--muted);font-weight:600;padding:2px var(--sp2)}
.sa-allclear{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--good);font-weight:600;padding:var(--sp2)}
.sa-allclear svg{width:16px;height:16px;stroke-width:2}
/* chart + footer */
.sa-legend{display:flex;gap:14px;font-size:11.5px;color:var(--text-2);font-weight:600;margin-top:6px}
.sa-legend i{display:inline-block;width:10px;height:3px;border-radius:2px;background:var(--accent);vertical-align:3px;margin-right:5px}
.sa-legend .ann i{background:var(--good)}
.sa-note{font-size:11.5px;color:var(--muted);line-height:1.5}
.sa-how{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp4)}
@media(max-width:900px){.sa-how{grid-template-columns:1fr}}
.sa-how-item{display:flex;gap:11px;align-items:flex-start;font-size:12.5px;color:var(--text-2);line-height:1.55}
.sa-how-item .ic{width:28px;height:28px;flex:none;display:grid;place-items:center;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:13px}
.sa-how-item b{color:var(--text)}
/* toast */
#toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(14px);background:var(--text);color:var(--bg);font-size:12.5px;font-weight:600;border-radius:9px;padding:9px 15px;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:80}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* sa- feedback round 14.07: table inner scroll (≈10 rows) + inline copy buttons (Top-Actions pattern) */
.sa-tblwrap{max-height:588px;overflow:auto}
.sa-tblwrap thead th{position:sticky;top:0;background:var(--surface);z-index:2;box-shadow:0 1px 0 var(--border-strong)}
.sa-act{flex-wrap:wrap}
.sa-abtns{display:flex;gap:7px;flex:none;align-self:center;margin-left:auto}
.sa-abtns .btn{padding:5px 10px;font-size:12px;white-space:nowrap}
@media(max-width:700px){.sa-abtns{flex-basis:100%;justify-content:flex-end;margin-left:0}}
.sa-kpi .l .info-wrap{margin-left:5px;vertical-align:-1px}
/* sa- feedback 14.07 №2: чек-лист без двойной серости + фазовые корешки; open-fixes chip; fix-легенда */
.sa-chip.warn{background:var(--warn-soft);color:var(--warn)}
.sa-act{background:var(--surface)}
.sa-done-row{background:var(--surface)}
.sa-group.g1{border-left:3px solid var(--bad)}
.sa-group.g2{border-left:3px solid var(--warn)}
.sa-group.g3{border-left:3px solid var(--neutral)}
.sa-group.gd{border-left:3px solid var(--good)}
.sa-fixlist{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.sa-fixlist div{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--text-2)}
.sa-fixlist .n{width:18px;height:18px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--good);color:#fff;font-family:var(--font-mono);font-size:10.5px;font-weight:700}
.sa-fixlist .sa-badge{margin-left:2px}
/* sa- feedback 14.07 №3: How→ инструкции + теги этапов у драйверов */
.sa-act-how{font-size:12px;color:var(--text-2);display:flex;gap:6px;align-items:flex-start;line-height:1.5}
.sa-act-how b{color:var(--accent);font-weight:700;white-space:nowrap}
.sa-act-how .mono{font-size:11px}
.driver .lbl .stg{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--neutral-soft);border-radius:4px;padding:1px 5px;margin-left:7px;vertical-align:1px}
/* sa- feedback 14.07 №4: чек-лист = язык Top actions (плоские фазы, .action-карточки) + скролл Markets */
.sa-phase{border:0;background:none}
.sa-phase+.sa-phase{border-top:1px solid var(--border)}
.sa-phase summary{list-style:none;display:flex;align-items:center;gap:10px;padding:11px 2px;cursor:pointer;user-select:none}
.sa-phase summary::-webkit-details-marker{display:none}
.sa-phase summary:hover .sa-gt{color:var(--text)}
.sa-phase .actions{padding:2px 0 var(--sp4)}
.sa-phase .action:not(.high):not(.mid) .ai{background:var(--neutral)}
.sa-phase .a-title .sa-badge{margin-left:7px;vertical-align:middle}
.sa-why2{font-size:12.5px;color:var(--text-2);margin-top:4px;line-height:1.55;max-width:92ch}
#market-list{max-height:560px;overflow-y:auto}
