:root{
  --bg:#f6f7fb; --surface:#fff; --ink:#161a2d; --muted:#6b7190; --line:#e8eaf2; --soft:#f1f2f9;
  --accent:#5b3df5; --accent-bg:#ece9fe; --good:#157a4a; --warn:#a86300; --bad:#c0362c;
  --good-bg:#e3f3ea; --warn-bg:#fbefd6; --bad-bg:#fbe4e1;
  --sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0f1120; --surface:#171a2e; --ink:#e9ebf7; --muted:#9aa0c0; --line:#262a47; --soft:#1e2240;
  --accent:#9b87ff; --accent-bg:#2a2466; --good:#5bd49a; --warn:#e9b04f; --bad:#f08075;
  --good-bg:#17392b; --warn-bg:#3a2d12; --bad-bg:#3d1c19; color-scheme:dark}}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased;padding:0}
.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}
.content{min-width:0;max-width:1240px;width:100%;padding:0 clamp(16px,3vw,36px) 56px;display:grid;grid-template-columns:minmax(0,1fr);gap:26px;align-content:start}
#page{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;min-width:0}
#appview{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0}
header{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}
h1{margin:0;font-size:1.5rem;letter-spacing:-.03em;font-weight:700}
.sub{color:var(--muted);font:400 .78rem var(--mono)}
.tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
button{font:inherit;color:inherit}
.btn{padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-size:.85rem;font-weight:600;cursor:pointer}
.btn:hover{border-color:var(--accent)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h2{margin:0 0 10px;font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.pill{display:inline-block;padding:2px 8px;border-radius:99px;font:600 .68rem/1.5 var(--mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.high{background:var(--bad-bg);color:var(--bad)}.med{background:var(--warn-bg);color:var(--warn)}.low{background:var(--soft);color:var(--muted)}.ok{background:var(--good-bg);color:var(--good)}.acc{background:var(--accent-bg);color:var(--accent)}

/* summary tiles */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;min-width:0;display:grid;gap:2px}
.stat span{color:var(--muted);font-size:.78rem}
.stat b{font:600 1.7rem/1.15 var(--mono);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.stat.off b{color:var(--muted)}
.stat svg{margin-top:4px}

/* connect card */
.connect{background:var(--accent-bg);border:1px solid var(--accent);border-radius:14px;padding:16px 18px;display:grid;gap:8px}
.connect h3{margin:0;font-size:1rem}
.connect ol{margin:0;padding-left:20px;display:grid;gap:6px;font-size:.88rem}
.connect code{font:500 .78rem var(--mono);background:var(--surface);padding:1px 6px;border-radius:5px;word-break:break-all}
.connect p{margin:0;font-size:.88rem;color:var(--muted)}

/* chips */
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{padding:4px 12px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-size:.78rem;font-weight:600;cursor:pointer;text-transform:none;letter-spacing:0}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink)}

/* fix list */
.fix{display:grid;grid-template-columns:64px minmax(0,1fr);gap:2px 12px;padding:12px 16px;border-top:1px solid var(--line);align-items:start}
.fix:first-child{border-top:0}
.fix .what{font-weight:600;min-width:0}
.fix .why{grid-column:2;color:var(--muted);font-size:.85rem;min-width:0}
.fix .app{color:var(--accent)}

/* app rows */
.row{border-top:1px solid var(--line)}.row:first-child{border-top:0}
.head{width:100%;display:grid;grid-template-columns:44px minmax(0,1.4fr) repeat(5,minmax(0,.8fr)) 128px;gap:12px;align-items:center;padding:12px 16px;background:none;border:0;text-align:left;cursor:pointer}
.head:hover{background:var(--soft)}
.head img,.ph{width:44px;height:44px;border-radius:11px;background:var(--soft);display:block}
.appname{font-weight:600}
.m small{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}
.m span{font:600 .9rem var(--mono);font-variant-numeric:tabular-nums}
.m .muted{color:var(--muted);font-weight:400}
.score{display:flex;align-items:center;gap:8px;font:700 .95rem var(--mono)}
.bar{flex:1;height:6px;border-radius:4px;background:var(--soft);overflow:hidden}.bar i{display:block;height:100%;border-radius:4px}
.detail{padding:6px 16px 20px;display:grid;gap:18px;background:var(--bg);border-top:1px solid var(--line)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0;display:grid;gap:10px;align-content:start}
.card h3{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.funnel{display:grid;gap:8px}
.fn{display:grid;grid-template-columns:92px 1fr auto;gap:10px;align-items:center;font-size:.85rem}
.fn .t{height:22px;background:var(--soft);border-radius:6px;overflow:hidden}.fn .t i{display:block;height:100%;background:var(--accent);border-radius:6px;min-width:2px}
.fn b{font:600 .85rem var(--mono);font-variant-numeric:tabular-nums}
.rate{font-size:.82rem;color:var(--muted)}
.meter{height:6px;border-radius:4px;background:var(--soft);overflow:hidden}.meter i{display:block;height:100%;border-radius:4px}
.kv{display:grid;gap:3px;font-size:.88rem;min-width:0}
.kv small{color:var(--muted);font:600 .68rem var(--sans);text-transform:uppercase;letter-spacing:.07em}
.kv .val{font-family:var(--mono);font-size:.82rem;word-break:break-word}
.checks{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.checks li{display:grid;grid-template-columns:56px 1fr;gap:10px;align-items:start;font-size:.88rem}
.checks li span{min-width:0}.checks em{color:var(--muted);font-style:normal}
.idea{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;font-size:.85rem;padding:5px 0;border-top:1px solid var(--line)}
.idea:first-of-type{border-top:0}
.ideas-list{display:grid}
.sugg{font:500 .82rem var(--mono);background:var(--soft);border-radius:8px;padding:8px 10px;word-break:break-all;user-select:all}
.note-box{border:1px solid var(--line);background:var(--soft);border-radius:10px;padding:12px;display:grid;gap:10px;font-size:.85rem}
.note-box.ok{background:var(--good-bg);border-color:var(--good)}.note-box.med{background:var(--warn-bg);border-color:var(--warn)}
textarea{width:100%;font:500 .82rem var(--mono);padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);resize:vertical}
.tabbar{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}
.tab{padding:9px 14px;border:0;border-bottom:2px solid transparent;background:none;font-weight:600;font-size:.85rem;color:var(--muted);cursor:pointer;white-space:nowrap}
.tab:hover{color:var(--ink)}.tab[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)}
header.topbar{position:sticky;top:0;z-index:6;height:60px;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);margin-inline:calc(-1*clamp(16px,3vw,36px));padding-inline:clamp(16px,3vw,36px);flex-wrap:nowrap}
header.topbar h1{font-size:1.15rem}
header.topbar .sub{font-size:.7rem}
.empty{color:var(--muted);font-size:.88rem}
@media(max-width:820px){
  .head{grid-template-columns:44px minmax(0,1fr) 96px}.head .m{display:none}
  .fn{grid-template-columns:78px 1fr auto}
}

/* ---- structure: shared header, breadcrumb, app page ---- */
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand a{color:inherit;text-decoration:none}
.crumb{font-size:.82rem;color:var(--muted)}
.crumb a{color:var(--accent);text-decoration:none;font-weight:600}
.crumb a:hover{text-decoration:underline}
a.head{color:inherit;text-decoration:none}
a.head:focus-visible{outline-offset:-2px}
.go{color:var(--muted);font-size:1.1rem}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.toolbar select,.toolbar input{padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;font-size:.85rem}
.apphead{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.apphead img,.apphead .ph{width:64px;height:64px;border-radius:15px}
.apphead h1{font-size:1.35rem}
.apphead .links{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.apphead .links a{font-size:.78rem;font-weight:600;color:var(--accent);text-decoration:none;border:1px solid var(--line);border-radius:99px;padding:2px 10px}
.bigscore{text-align:right;font:700 1.9rem/1 var(--mono)}
.bigscore small{display:block;font:600 .66rem var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:4px}
.pagenav{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;position:sticky;top:60px;z-index:4;background:var(--bg)}
.pagenav a{padding:10px 16px;border-bottom:2px solid transparent;font-weight:600;font-size:.88rem;color:var(--muted);text-decoration:none;white-space:nowrap}
.pagenav a:hover{color:var(--ink)}
.pagenav a[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent)}
.pagenav .n{margin-left:6px;font:600 .68rem var(--mono);background:var(--bad-bg);color:var(--bad);border-radius:99px;padding:1px 7px}
.view{display:grid;gap:18px}
.view>*,.split>*,.wrap>*{min-width:0}
.split{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:16px;align-items:start}
.fieldlist{display:grid;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.fieldlist button{display:grid;gap:2px;text-align:left;padding:10px 14px;border:0;border-top:1px solid var(--line);background:none;cursor:pointer;min-width:0}
.fieldlist button:first-child{border-top:0}
.fieldlist button:hover{background:var(--soft)}
.fieldlist button[aria-current="true"]{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}
.fieldlist b{font-size:.85rem}
.fieldlist small{color:var(--muted);font:400 .72rem var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.group{display:grid;gap:8px}
.group>h3{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-size:.85rem;font-weight:600;z-index:20}
.skeleton{height:120px;border-radius:14px;background:linear-gradient(90deg,var(--soft),var(--surface),var(--soft));background-size:200% 100%;animation:sk 1.4s infinite}
@keyframes sk{to{background-position:-200% 0}}
@media(max-width:820px){
  .split{grid-template-columns:minmax(0,1fr)}
  .apphead{grid-template-columns:52px minmax(0,1fr)}
  .apphead img,.apphead .ph{width:52px;height:52px}
  .bigscore{grid-column:1/-1;text-align:left}
  .pagenav{top:0;position:static}
}

/* ---- admin shell: fixed sidebar ---- */
.side{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--surface);border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:18px}
.logo{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-weight:700;letter-spacing:-.02em;padding:4px 8px}
.logo span{display:grid;line-height:1.2}
.logo small{color:var(--muted);font:500 .68rem var(--mono);letter-spacing:0}
.snav,.sapps{display:grid;gap:2px;align-content:start}
.snav a{display:block;padding:8px 10px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.snav a:hover{background:var(--soft);color:var(--ink)}
.snav a[aria-current="page"]{background:var(--accent-bg);color:var(--accent)}
.slabel{margin:14px 10px 4px;color:var(--muted);font:700 .68rem var(--sans);text-transform:uppercase;letter-spacing:.09em}
@media(max-width:820px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px 12px;flex-direction:row;align-items:center;gap:10px;overflow-x:auto}
  .logo small{display:none}
  .snav{display:flex;gap:4px;align-items:center}
  .slabel{display:none}
  .sapps{display:flex;gap:4px}
  header.topbar{height:auto;min-height:60px;flex-wrap:wrap;padding-block:8px;position:static}
  .pagenav{top:0}
}

/* ---- admin polish ---- */
.side{background:#0f1b17;border-right:0;color:#c9d6d1;width:236px}
.logo{color:#fff;padding:6px 8px 14px;border-bottom:1px solid #223530;margin-bottom:2px}
.logo small{color:#7f968f}
.snav a{display:flex;align-items:center;gap:10px;color:#a9bbb5}
.snav a:hover{background:#182924;color:#fff}
.snav a[aria-current="page"]{background:#1f6b5a;color:#fff}
.snav svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.slabel{color:#6f8780}
.sapps{max-height:calc(100vh - 230px);overflow-y:auto;padding-right:2px}
.sapps a{font-weight:500;font-size:.84rem;padding:6px 10px}
.sapps i{flex:none;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font:700 .7rem var(--sans);font-style:normal;color:#fff}
.sapps span{overflow:hidden;text-overflow:ellipsis}

header.topbar{height:56px;gap:16px}
header.topbar>div:first-child{min-width:0;display:flex;align-items:baseline;gap:12px}
header.topbar h1{font-size:1.05rem;white-space:nowrap}
header.topbar .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.7rem}
header.topbar .tools{flex-wrap:nowrap;flex:none}
header.topbar .btn,header.topbar select.btn{padding:6px 12px;font-size:.8rem;border-radius:8px}
header.topbar #aiWrap{display:flex;align-items:center;gap:6px;font-size:.7rem}
#who{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 10px;border:1px solid var(--line);border-radius:99px;background:var(--surface);font-size:.72rem;color:var(--ink)}
#who:empty{display:none}
#out{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}
@media(max-width:1180px){#aiWrap{display:none!important}}
@media(max-width:980px){header.topbar .sub{display:none}}

.stat{border-radius:12px;padding:16px 18px;border-top:3px solid var(--accent)}
.stat:nth-child(2){border-top-color:#3b82f6}.stat:nth-child(3){border-top-color:#8b5cf6}
.stat:nth-child(4){border-top-color:#f59e0b}.stat:nth-child(5){border-top-color:#ec4899}.stat:nth-child(6){border-top-color:#10b981}
.stat span{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;font-weight:600}
.stat b{font-size:1.6rem}
.panel{border-radius:12px;box-shadow:0 1px 2px rgba(15,27,23,.04)}
h2{font-size:.72rem}
@media(max-width:820px){.sapps{max-height:none}.side{background:#0f1b17}.snav a{white-space:nowrap}}

/* ---- access page ---- */
#accessView{display:grid;gap:22px}
.acc-add{padding:18px 20px;display:grid;gap:14px}
.acc-add h3{margin:0 0 4px;font-size:1rem}
.acc-add p{margin:0;max-width:62ch}
#accessForm{display:flex;gap:8px;flex-wrap:wrap}
#accessForm input{flex:1;min-width:220px;padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:inherit;font:inherit;font-size:.9rem}
.urow{display:flex;align-items:center;gap:14px;padding:12px 16px;border-top:1px solid var(--line)}
.urow:first-child{border-top:0}
.urow .who{flex:1;min-width:0;display:grid;gap:2px}
.urow .who b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.urow .who .pill{justify-self:start}
.urow .av{flex:none;width:36px;height:36px;border-radius:50%;background:var(--accent-bg);color:var(--accent);display:grid;place-items:center;font-weight:700}

.fixlink{display:flex;align-items:center;gap:12px;padding:14px 18px;color:inherit;text-decoration:none}
.fixlink:hover{border-color:var(--accent)}
.fixlink b{flex:1}
.fixlink .sub{flex:2}

.split2{display:flex;gap:8px;font:600 .66rem var(--mono);letter-spacing:.02em;flex-basis:100%}
.score{flex-wrap:wrap}
.crit{background:var(--bad);color:#fff}
.fixrow{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:4px 14px;padding:14px 16px;border-top:1px solid var(--line);align-items:start}
.fixrow:first-child{border-top:0}
.fixrow .what{font-weight:600;min-width:0}
.fixrow .why{grid-column:2;color:var(--muted);font-size:.85rem}
.fixrow .meta{grid-column:2;display:flex;gap:8px;flex-wrap:wrap;align-items:center;font:500 .7rem var(--mono);color:var(--muted)}
.fixrow .act{grid-column:3;grid-row:1 / span 3;align-self:center}
.fixrow.done .what{text-decoration:line-through;color:var(--muted)}
.statline{display:flex;gap:10px;flex-wrap:wrap}
.statline .stat{flex:1;min-width:140px}
.fixfilters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between}
@media(max-width:700px){.fixrow{grid-template-columns:1fr}.fixrow .why,.fixrow .meta,.fixrow .act{grid-column:1;grid-row:auto}}

/* ---- history, ranks, competitors ---- */
.hrow{padding:14px 16px;border-top:1px solid var(--line);display:grid;gap:10px}
.hrow:first-child{border-top:0}
.hhead{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.diff{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.diff small,.gap small,.cmp small,.cmphead small{color:var(--muted);font:600 .66rem var(--sans);text-transform:uppercase;letter-spacing:.07em}
.diff .val{background:var(--soft);border-radius:8px;padding:8px 10px;font:500 .78rem var(--mono);white-space:pre-wrap;word-break:break-word}
.hmeta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.kwgroup{border-top:1px solid var(--line)}.kwgroup:first-child{border-top:0}
.kwhead{padding:12px 16px 4px;font-weight:700}
.comp{border-top:1px solid var(--line);padding-bottom:10px}
.cmp,.cmphead{display:grid;grid-template-columns:minmax(0,1.4fr) 1fr 1fr;gap:10px;padding:5px 16px;font-size:.88rem;align-items:center}
.cmp span,.cmphead b{font:600 .85rem var(--mono)}
.gap{padding:8px 16px;display:grid;gap:6px}
@media(max-width:700px){.diff{grid-template-columns:1fr}}

/* ---- ASO Studio look: light sidebar, purple accent, cards ---- */
.shell{grid-template-columns:248px minmax(0,1fr)}
.side{background:var(--surface);color:var(--ink);border-right:1px solid var(--line);padding:18px 14px;width:auto;gap:14px}
.logo{color:var(--ink);border-bottom:0;padding:2px 8px 10px;margin:0;gap:10px;font-size:1.05rem}
.logo small{display:none}
.logo .mark{width:34px;height:34px;border-radius:10px;background:var(--accent);display:grid;place-items:center;flex:none}
.logo .mark svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.snav a{color:var(--ink);font-weight:500;padding:9px 12px;border-radius:10px;gap:12px}
.snav a:hover{background:var(--soft);color:var(--ink)}
.snav a[aria-current="page"]{background:var(--accent-bg);color:var(--accent);font-weight:600}
.snav svg{stroke-width:1.7}
.sfoot{margin-top:auto;display:grid;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px}
.sfoot .slabel{margin:0;color:var(--ink);font:700 .78rem var(--sans);text-transform:none;letter-spacing:0}
.store{display:flex;align-items:center;gap:10px}
.store b{display:block;font-size:.8rem}.store small{display:block;font-size:.7rem;color:var(--muted)}
.store small.on{color:var(--good)}
.ico{flex:none;width:32px;height:32px;border-radius:9px;display:block;background-size:60%;background-repeat:no-repeat;background-position:center}
.ico.ios{background-color:#1c8dff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 18l5-13 5 13M8.5 14h7'/%3E%3C/svg%3E")}
.ico.and{background-color:#12a672;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M6 4l13 8-13 8z'/%3E%3C/svg%3E")}

header.topbar{height:64px;background:color-mix(in srgb,var(--surface) 92%,transparent);border-bottom:1px solid var(--line);gap:16px;justify-content:space-between}
.gsearch{display:flex;align-items:center;gap:8px;flex:1;max-width:460px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--surface)}
.gsearch svg{width:17px;height:17px;flex:none;fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round}
.gsearch input{flex:1;border:0;outline:0;background:none;font:inherit;font-size:.88rem;padding:10px 0;color:var(--ink);min-width:0}
.chipuser{display:inline-flex;align-items:center;gap:8px;max-width:210px;padding:4px 12px 4px 4px;border:1px solid var(--line);border-radius:99px;background:var(--surface);font:500 .75rem var(--sans);color:var(--ink)}
.chipuser:empty{display:none}
.chipuser i{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font:700 .78rem var(--sans);font-style:normal;flex:none}
.chipuser span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:6px}
.pagehead h1{font-size:1.7rem;letter-spacing:-.03em}
.sub2{color:var(--muted);font-size:.9rem;margin-top:2px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn:hover{border-color:var(--accent)}
.panel,.card,.stat,.apphead{border-radius:14px;box-shadow:0 1px 2px rgba(22,26,45,.04)}
.stat{border-top:1px solid var(--line)!important}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.tab[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)}
.fixlink b{font-weight:600}
@media(max-width:820px){.shell{grid-template-columns:minmax(0,1fr)}.side{background:var(--surface)}.sfoot{display:none}.pagehead h1{font-size:1.35rem}.gsearch{max-width:none}}

/* ---- dashboard panels ---- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;align-items:center;gap:14px;min-width:0}
.kic{flex:none;width:46px;height:46px;border-radius:12px;display:grid;place-items:center}
.kic svg,.dph svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.kbody{flex:1;min-width:0;display:grid;gap:1px}
.kbody span{color:var(--muted);font-size:.8rem}
.kbody b{font:700 1.6rem/1.15 var(--sans);letter-spacing:-.03em}
.kx{font-size:.72rem;display:flex;align-items:center;gap:4px}
.ksp{flex:none}
.ico.mini{width:16px;height:16px;border-radius:5px;display:inline-block;vertical-align:-3px;background-size:70%}
.dgrid{display:grid;gap:14px}
.g2{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr)}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g2b{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.dp{padding:16px 18px;overflow:visible}
.dph{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.dph h3{margin:0;font-size:1rem}
.dph a{font-size:.8rem;font-weight:600;color:var(--accent);text-decoration:none}
.legend{display:flex;gap:14px;font-size:.75rem;color:var(--muted)}
.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.dempty{color:var(--muted);font-size:.86rem;padding:18px 4px}
.dempty a{color:var(--accent);font-weight:600}
.trow,.frow,.crow,.strow{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit;min-width:0}
.trow:first-child,.frow:first-child,.crow:first-child{border-top:0}
.trow:hover,.frow:hover,.crow:hover,.strow:hover{background:var(--soft)}
.rk{width:16px;color:var(--muted);font-size:.8rem}
.trow img,.crow img{border-radius:8px;flex:none}
.tn{flex:1;min-width:0;display:grid}
.tn b,.fw b{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tn small,.fw small{color:var(--muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tv{display:grid;text-align:right;font:700 .9rem var(--mono)}
.tv small{font:500 .65rem var(--sans);color:var(--muted)}
.pf{display:flex;gap:4px}
.pf .ico{width:18px;height:18px;border-radius:5px}
.fw{display:grid;min-width:0;flex:1}
.kwr{display:grid;grid-template-columns:1.3fr 1fr .5fr .6fr;gap:8px;padding:8px 0;border-top:1px solid var(--line);font-size:.84rem;align-items:center}
.kwr b{font-family:var(--mono)}
.kwh{border-top:0;color:var(--muted);font:600 .68rem var(--sans);text-transform:uppercase;letter-spacing:.06em}
.fr{display:grid;grid-template-columns:90px 1fr 48px;gap:10px;align-items:center;padding:8px 0}
.fr small{display:block;color:var(--muted);font-size:.72rem}.fr b{font:700 .95rem var(--mono)}
.ft{height:22px;background:var(--soft);border-radius:6px;overflow:hidden}.ft i{display:block;height:100%;border-radius:6px}
.fr>span{font:600 .75rem var(--mono);color:var(--muted);text-align:right}
.strow{display:grid;grid-template-columns:1.4fr .8fr .9fr .7fr;gap:8px;font-size:.84rem}
.stth{color:var(--muted);font:600 .68rem var(--sans);text-transform:uppercase;letter-spacing:.06em;border-top:0}
.sn{display:flex;align-items:center;gap:8px;font-weight:600;min-width:0}.sn img{border-radius:6px}
@media(max-width:1100px){.g2,.g3,.g2b{grid-template-columns:minmax(0,1fr)}}

.kpis{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.ksp{width:84px}.ksp svg{width:100%;height:auto;display:block}
.kbody b{font-size:1.45rem;white-space:nowrap}

/* ---- clone of the ASO Studio mockup: chrome ---- */
.snav{gap:1px}
.snav a{padding:8px 12px;font-size:.88rem}
.snav a span{flex:1}
.snav .chev{width:14px;height:14px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-left:auto}
.newb{font:700 .62rem var(--sans);background:var(--accent-bg);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:6px;padding:1px 6px}
.snav .slabel{margin:12px 12px 4px;color:var(--muted);font:700 .66rem var(--sans);text-transform:uppercase;letter-spacing:.09em}
.side{overflow-y:auto}
.sfoot{border:0;padding:0;gap:12px;margin-top:auto}
.usage{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:8px}
.ur{display:flex;justify-content:space-between;align-items:baseline}
.ur b{font-size:.82rem}.ur small{font:500 .72rem var(--mono);color:var(--muted)}
.ub{height:6px;border-radius:4px;background:var(--soft);overflow:hidden}.ub i{display:block;height:100%;background:var(--accent);border-radius:4px}
.ud{font-size:.68rem;color:var(--muted)}
.cs{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:10px}
.cs .slabel{margin:0;font:700 .8rem var(--sans);color:var(--ink);text-transform:none;letter-spacing:0}
.store .tick{margin-left:auto;width:18px;height:18px;border-radius:50%;background:var(--soft);flex:none}
.store .tick.on{background:var(--good) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.500l4 4 8-9'/%3E%3C/svg%3E") center/70% no-repeat}
.store small.on::before{content:"● ";font-size:.6rem}

header.topbar{height:64px;padding-block:0}
.gsearch{max-width:520px;height:42px}
.gsearch kbd{font:600 .68rem var(--sans);color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:2px 6px;background:var(--soft);flex:none}
.tools{gap:10px;flex-wrap:nowrap}
.rangepick{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:0 10px;height:42px;background:var(--surface)}
.rangepick svg{width:17px;height:17px;fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round;flex:none}
.rangepick select{border:0;background:none;font:inherit;font-size:.86rem;font-weight:500;color:var(--ink);outline:0;cursor:pointer}
.iconbtn{position:relative;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;cursor:pointer;color:var(--ink);padding:0;text-decoration:none}
.iconbtn:hover{border-color:var(--accent)}
.iconbtn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.iconbtn .dot{position:absolute;top:9px;right:10px;width:9px;height:9px;border-radius:50%;background:var(--bad);border:2px solid var(--surface)}
.usermenu{position:relative}
.chipuser{display:flex;align-items:center;gap:10px;height:42px;padding:0 10px 0 6px;border:0;background:none;cursor:pointer;max-width:none;border-radius:10px}
.chipuser:hover{background:var(--soft)}
.chipuser i{width:34px;height:34px;font-size:.9rem}
.uname{display:grid;text-align:left;line-height:1.2}.uname b{font-size:.84rem}.uname small{color:var(--muted);font-size:.7rem}
.chipuser .dn{width:15px;height:15px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round}
.chipuser[hidden]{display:none}
.umenu{position:absolute;right:0;top:48px;z-index:20;min-width:240px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 28px rgba(22,26,45,.14);padding:12px;display:grid;gap:10px}
.umenu[hidden]{display:none}
.umenu .sub{font-size:.74rem;word-break:break-all}
.pagehead{align-items:center}
.pbtn{display:flex;gap:10px;margin-left:auto}
.pbtn .btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;text-decoration:none;color:inherit}
.pbtn .btn.primary{color:#fff}
.pbtn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pagehead>.sub{flex-basis:100%;order:3;font-size:.68rem}
@media(max-width:1100px){.uname,.chipuser .dn,.gsearch kbd{display:none}}
@media(max-width:820px){.tools{flex-wrap:wrap}.pbtn{margin-left:0}}

/* ---- clone of the ASO Studio mockup: dashboard ---- */
.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.kpi{position:relative;text-decoration:none;color:inherit;padding:18px;align-items:flex-start;gap:14px}
.kpi:hover{border-color:var(--accent)}
.kgo{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.kpi .kgo{position:absolute;top:16px;right:14px}
.kbody b{font-size:1.9rem}
.kx .dl{font:700 .74rem var(--sans);padding:2px 8px;border-radius:99px}
.dl.up{background:var(--good-bg);color:var(--good)}.dl.down{background:var(--bad-bg);color:var(--bad)}
.ksp{align-self:flex-end;width:120px}
.dgrid{gap:16px}
.r2{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)}
.r3{grid-template-columns:minmax(0,1.25fr) minmax(0,1.1fr) minmax(0,1fr)}
.r4{grid-template-columns:minmax(0,1.15fr) minmax(0,1.25fr) minmax(0,1fr)}
.dp{padding:18px 20px}
.dph h3{font-size:1.02rem}
.dph a{font-size:.8rem}
.aih{display:flex;align-items:center;gap:8px}.aih svg{width:18px;height:18px;fill:var(--accent);stroke:none}
.seg{display:inline-flex;background:var(--soft);border-radius:10px;padding:3px;gap:2px}
.seg button{border:0;background:none;padding:6px 14px;border-radius:8px;font:600 .78rem var(--sans);color:var(--muted);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px rgba(22,26,45,.12)}
.dsub{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.rangepick.sm{height:34px;padding:0 8px}.rangepick.sm select{font-size:.78rem}
.trow{display:grid;grid-template-columns:22px minmax(0,1.6fr) 56px 64px 64px 70px;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.trow.th{border-top:0;color:var(--muted);font:600 .68rem var(--sans);text-transform:uppercase;letter-spacing:.05em;padding-top:2px}
.trow.th:hover,.trow:hover{background:none}
a.trow:hover{background:var(--soft)}
.tn2{display:flex;align-items:center;gap:10px;min-width:0}
.tn2 img{border-radius:9px;flex:none}
.tn2 span{display:grid;min-width:0}.tn2 b{font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tn2 small{color:var(--muted);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.num{font:600 .84rem var(--mono);font-variant-numeric:tabular-nums}
.av2{display:inline-grid;place-items:center;border-radius:9px;color:#fff;font:700 .85rem var(--sans);flex:none}
.pf{display:flex;gap:5px;align-items:center}.pf .ico{width:20px;height:20px;border-radius:6px}
.kwr{grid-template-columns:1.2fr 1fr .9fr .6fr .6fr;font-size:.82rem}
.kwr .num{text-align:center}.kwh span:nth-child(n+3){text-align:center}
.fr{grid-template-columns:130px 1fr 50px;padding:12px 0}
.ft{height:30px;border-radius:8px}.ft i{border-radius:8px}
.rv{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit}
.rv:first-child{border-top:0}.rv:hover{background:var(--soft)}
.rb{display:grid;gap:2px;flex:1;min-width:0}.rb b{font-size:.86rem}.rb small{color:var(--muted);font-size:.74rem;line-height:1.35}
.stars{color:#f5a524;letter-spacing:1px;font-size:.78rem}.stars .off{color:var(--line)}
.sug{display:flex;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.sug:first-child{border-top:0}
.sug img{border-radius:9px;flex:none}
.sw{display:grid;gap:1px;flex:1;min-width:0}.sw b{font-size:.84rem}.sw small{color:var(--muted);font-size:.74rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.btn.sm{padding:6px 14px;font-size:.78rem;text-decoration:none;color:inherit;flex:none}
.btn.primary.sm{color:#fff}
.strow{grid-template-columns:1.3fr 1fr 1fr .9fr}
.crow{gap:12px}.crow img{border-radius:9px}
.tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:3px}.tags i{font:500 .68rem var(--sans);font-style:normal;background:var(--soft);border-radius:6px;padding:2px 8px;color:var(--muted)}
@media(max-width:1280px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.r2,.r3,.r4{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.kpis{grid-template-columns:minmax(0,1fr)}.trow{grid-template-columns:20px minmax(0,1fr) 52px 56px}.trow>:nth-child(5),.trow>:nth-child(6){display:none}}

/* ---- listings, analytics, reviews, localization ---- */
.lsrow{padding:16px 18px;border-top:1px solid var(--line);display:grid;gap:12px}.lsrow:first-child{border-top:0}
.lshead{display:flex;align-items:center;gap:12px}
.lsgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.lscol{background:var(--soft);border-radius:12px;padding:12px 14px;display:grid;gap:8px}
.lscol h4{margin:0;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.lsl{display:grid;grid-template-columns:90px 1fr auto;gap:8px;align-items:baseline;font-size:.86rem}
.lsl small{color:var(--muted)}.lsl b{font-weight:500;word-break:break-word}.lsl span{font:500 .72rem var(--mono);color:var(--muted)}.lsl span.good{color:var(--good)}
.anr{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:10px;padding:11px 16px;border-top:1px solid var(--line);align-items:center;text-decoration:none;color:inherit}
.anr.anh{border-top:0;color:var(--muted);font:600 .68rem var(--sans);text-transform:uppercase;letter-spacing:.06em}
a.anr:hover{background:var(--soft)}
@media(max-width:700px){.anr{grid-template-columns:1.4fr 1fr 1fr}.anr>:nth-child(n+4){display:none}}

.trow{grid-template-columns:18px minmax(80px,1.5fr) 46px 58px 50px 58px;gap:8px}
.trow.th span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.r2{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}

/* ---- My Apps ---- */
.kdot{width:30px;height:30px;border-radius:9px;flex:none;position:relative;background:var(--soft)}
.kdot{background:transparent!important;box-shadow:inset 0 0 0 10px var(--soft)}
.kdot::after{content:"";position:absolute;inset:9px;border-radius:50%;background:inherit}
.mabar{display:flex;gap:10px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line);align-items:center}
.mabar .gsearch{flex:1;min-width:240px;max-width:none;height:40px}
.mabar .btn{height:40px;display:inline-flex;align-items:center;gap:8px}
.mabar svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.matable{overflow-x:auto}
.mar{display:grid;grid-template-columns:28px minmax(200px,1.8fr) 60px 120px 130px 110px 150px 140px 110px 110px 50px 40px;gap:10px;align-items:center;padding:12px 16px;border-top:1px solid var(--line);min-width:1300px}
.mar.mah{border-top:0;color:var(--muted);font:600 .72rem var(--sans)}
.mar.mah small{display:block;font-weight:500;font-size:.66rem}
.mar:not(.mah):hover{background:var(--soft)}
.mar .tn2{text-decoration:none;color:inherit}.mar .tn2 img{border-radius:10px}
.cat{display:inline-block;background:var(--accent-bg);color:var(--accent);border-radius:6px;padding:3px 9px;font-size:.74rem;font-weight:500}
.stk{display:grid;line-height:1.3}.stk b{font-size:.86rem}.stk small{color:var(--muted);font-size:.72rem}
.mtr{display:flex;align-items:center;gap:8px}
.mtr .dl{background:none;padding:0;font-size:.72rem}
.kmenu{position:relative}
.iconbtn.sm{width:32px;height:32px;font-size:1.1rem;border-color:transparent}
.kmenu .umenu{top:36px;min-width:200px;gap:2px;padding:6px}
.umenu a{display:block;padding:8px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:.84rem}
.umenu a:hover{background:var(--soft)}
.dist{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.dleg{display:grid;gap:12px;flex:1;min-width:180px}
.dleg div{display:flex;justify-content:space-between;font-size:.86rem}
.dleg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}
.dleg b{font-weight:500;color:var(--muted)}
.pbar{display:grid;grid-template-columns:100px 1fr 70px;gap:12px;align-items:center;padding:14px 0;font-size:.88rem}
.pbar span{display:flex;align-items:center;gap:8px}
.pbar .ub{height:10px}.pbar b{font-weight:500;color:var(--muted);text-align:right}
.catr{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:.88rem}
.catr:first-child{border-top:0}.catr span{display:flex;align-items:center;gap:10px}
.catr .av2{border-radius:7px;font-size:.7rem}

/* ---- fixes for My Apps status tiles ---- */
.kdot{width:34px;height:34px;border-radius:10px;flex:none;display:grid;place-items:center;box-shadow:none;position:static;background:color-mix(in srgb,currentColor 14%,var(--surface))!important}
.kdot::after{content:"";position:static;width:12px;height:12px;border-radius:50%;background:currentColor;inset:auto}
.mabar .gsearch input{font-size:.86rem}

/* ---- store listing pages ---- */
.pagehead.slim{margin:0;min-height:0}.pagehead.slim .sub{order:0}
.subnav{display:grid;gap:1px;margin:2px 0 6px 22px;padding-left:12px;border-left:1px solid var(--line)}
.subnav a{padding:7px 12px;border-radius:8px;font-size:.84rem;color:var(--ink);text-decoration:none}
.subnav a:hover{background:var(--soft)}
.subnav a[aria-current="page"]{background:var(--accent-bg);color:var(--accent);font-weight:600}
.snav a.parent{color:var(--accent);font-weight:600;background:var(--accent-bg)}
.apppick{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:0 10px;height:42px;background:var(--surface)}
.apppick img,.apppick .av2{width:24px;height:24px;border-radius:6px}
.apppick select{border:0;background:none;font:500 .86rem var(--sans);color:var(--ink);outline:0;max-width:180px;cursor:pointer}
.crumbs{font-size:.84rem;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--accent)}.crumbs span:last-child{color:var(--ink);font-weight:600}
.ahead{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:10px}
.aicon{width:76px;height:76px;border-radius:18px;flex:none}
.ahead .av2{width:76px!important;height:76px!important;border-radius:18px;font-size:1.6rem}
.ainfo{flex:1;min-width:220px;display:grid;gap:3px}
.arow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.arow h2{margin:0;font-size:1.6rem;letter-spacing:-.02em}
.asub{font-size:1rem}.ameta{color:var(--muted);font-size:.85rem}.ameta span{margin:0 6px;color:var(--line)}
.aright{display:grid;gap:12px;justify-items:end}
.aact{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.aact .btn{padding:9px 16px;border-radius:10px}
.platrow{display:flex;align-items:center;gap:10px}
.seg.big button{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;font-size:.84rem}
.ptabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;margin-top:6px}
.ptabs a{padding:11px 16px;color:var(--muted);text-decoration:none;font-weight:500;font-size:.88rem;border-bottom:2px solid transparent;white-space:nowrap}
.ptabs a:hover{color:var(--ink)}.ptabs a[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.sub2tabs{margin-top:-10px}
.egrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(250px,.75fr);gap:16px;align-items:start}
.eside{display:grid;gap:16px}
.lgrid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr) minmax(0,.95fr);gap:16px;align-items:start}
.ef{display:grid;gap:6px;margin-bottom:14px}
.efh{display:flex;justify-content:space-between;font-size:.86rem;font-weight:500}
.req{color:var(--bad)}
.cnt{color:var(--muted);font:500 .74rem var(--mono)}.cnt.over{color:var(--bad);font-weight:700}
.ef input,.ef textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;font-size:.9rem;background:var(--surface);color:var(--ink);resize:vertical}
.ef input:focus,.ef textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);border-color:var(--accent)}
.linkbtn{border:0;background:none;color:var(--accent);font:600 .76rem var(--sans);cursor:pointer;padding:0;justify-self:start}
.langpick{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:4px 8px;font-size:1rem}
.langpick select{border:0;background:none;font:500 .82rem var(--sans);color:var(--ink);outline:0;max-width:190px}
.banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--accent-bg);color:var(--ink);border-radius:10px;padding:10px 14px;font-size:.85rem;margin-bottom:12px}
.banner span{display:flex;gap:8px}
.aibox{border:1px solid var(--accent);border-radius:12px;padding:12px;display:grid;gap:8px;margin-bottom:12px;background:var(--accent-bg)}
.sug2{text-align:left;white-space:pre-wrap;font-weight:500;line-height:1.4}
.expbox{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.expbox>span{font-size:1.2rem}.expbox div{flex:1;display:grid}.expbox small{color:var(--muted)}
.efoot{display:flex;justify-content:space-between;gap:10px;margin-top:6px}
.efoot .btn{padding:10px 18px;border-radius:10px}
.phone{border:1px solid var(--line);border-radius:26px;padding:18px 16px;background:var(--surface);box-shadow:inset 0 0 0 6px var(--soft)}
.pv{display:grid;grid-template-columns:76px 1fr;gap:14px;align-items:start}
.pvicon{width:76px;height:76px;border-radius:18px;object-fit:cover;background:var(--soft)}
.pvt{display:grid;gap:3px;min-width:0}.pvt b{font-size:1.25rem;line-height:1.2;word-break:break-word}.pvt .dev{color:var(--muted);font-size:.84rem}
.pv.play .pvt .dev{color:#01875f;font-weight:600}
.pvstats{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0}
.pvstats div{display:grid}.pvstats b{font-size:.92rem}.pvstats small{color:var(--muted);font-size:.7rem}
.pvstats div+div{border-left:1px solid var(--line)}
.pvbtn{grid-column:1/-1;text-align:center;border-radius:10px;padding:10px;font-weight:700;color:#fff}
.pvbtn.play{background:#01875f}
.pvbtn.ios{grid-column:auto;justify-self:start;background:#0a84ff;border-radius:99px;padding:4px 18px;font-size:.84rem;margin-top:4px}
.pvdesc{grid-column:1/-1;font-size:.84rem}.pvdesc p{margin:4px 0 0;color:var(--muted);white-space:pre-line}
.pvpromo{grid-column:1/-1;font-size:.84rem;background:var(--soft);border-radius:10px;padding:8px 10px}
.pvshots{grid-column:1/-1;display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.pvshots img{height:200px;border-radius:12px;flex:none;border:1px solid var(--line)}
.pvnoshots{grid-column:1/-1;color:var(--muted);font-size:.8rem;text-align:center;padding:16px;border:1px dashed var(--line);border-radius:12px}
.tip{display:flex;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:10px}
.tip .ti{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 .74rem var(--sans)}
.tip.ok .ti{background:var(--good)}.tip.warn .ti{background:#f59e0b}.tip.info .ti{background:#2f7df6}
.tip div{display:grid;gap:2px}.tip b{font-size:.84rem}.tip small{color:var(--muted);font-size:.76rem;line-height:1.4}
#sideSeg{display:flex;width:100%}#sideSeg button{flex:1}
.ckh{display:flex;justify-content:space-between;margin-bottom:8px}.ckh span{color:var(--muted);font-weight:600}
.ckl{display:grid;gap:8px;margin-top:12px;font-size:.84rem}
.ckl div{display:flex;align-items:center;gap:8px;color:var(--muted)}
.ckl i{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font:700 .62rem var(--sans);font-style:normal;color:#fff}
.ckl .ok{color:var(--ink)}.ckl .ok i{background:var(--good);border-color:var(--good)}
.loclist{display:grid;gap:2px}
.loc{display:flex;align-items:center;gap:12px;border:0;background:none;padding:12px 10px;border-radius:10px;text-align:left;cursor:pointer;font:inherit;color:inherit;border-bottom:1px solid var(--line)}
.loc:hover{background:var(--soft)}.loc.on{background:var(--accent-bg)}
.fl{font-size:1.5rem;line-height:1}
.ln{flex:1;display:grid}.ln b{font-weight:500;font-size:.9rem}.ln small{color:var(--muted);font-size:.7rem}
.ln .def{color:var(--accent);background:var(--surface);border:1px solid var(--accent);border-radius:4px;padding:0 5px;justify-self:start;font-weight:600}
.loc .pill{background:none;padding:0;text-transform:none;letter-spacing:0;font:600 .76rem var(--sans)}
.loc .pill.ok{color:var(--good)}.loc .pill.acc{color:#2f7df6}.loc .pill.low{color:var(--muted)}
.chv{color:var(--muted)}
.mgrid{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px}
.mgrid img{height:260px;border-radius:12px;border:1px solid var(--line)}
.mgrid.icon img{height:96px;border-radius:22px}.mgrid.wide img{height:160px}
@media(max-width:1300px){.egrid,.lgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.eside{grid-column:1/-1;grid-template-columns:1fr 1fr}}
@media(max-width:900px){.egrid,.lgrid,.eside{grid-template-columns:minmax(0,1fr)}.aright{justify-items:start}}

.arow h2{text-transform:none;letter-spacing:-.02em;color:var(--ink);font-size:1.6rem;display:block}
.dph h3,.panel h3{text-transform:none;letter-spacing:0;color:var(--ink)}

.ef .aibox{margin:6px 0 0}

/* new-version dialog */
.vdlg{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,var(--ink) 45%,transparent);backdrop-filter:blur(4px);animation:vf .15s ease}
.vbox{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;display:grid;gap:10px;box-shadow:0 24px 60px rgba(20,16,60,.28);animation:vp .2s cubic-bezier(.2,.9,.3,1.2)}
.vic{width:46px;height:46px;border-radius:14px;background:var(--accent-bg);display:grid;place-items:center}
.vic svg{width:22px;height:22px;stroke:var(--accent);stroke-width:2.4;fill:none;stroke-linecap:round}
.vbox h3{margin:4px 0 0;font-size:1.2rem;letter-spacing:-.01em}
.vbox p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.55}.vbox p b{color:var(--ink)}
.vbox label{margin-top:6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.vrow{display:flex;align-items:center;gap:10px}
.vrow svg{width:18px;height:18px;stroke:var(--muted);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}
.vold{padding:10px 14px;border-radius:10px;background:var(--soft);color:var(--muted);font:600 .95rem var(--mono);text-decoration:line-through}
.vbox input{flex:1;min-width:0;padding:10px 14px;border-radius:10px;border:2px solid var(--accent);background:var(--surface);color:var(--ink);font:700 1.05rem var(--mono);outline:none;box-shadow:0 0 0 4px var(--accent-bg)}
.vbox input.bad{border-color:var(--bad);box-shadow:0 0 0 4px var(--bad-bg)}
#verr{color:var(--bad);font-size:.8rem;min-height:1em}
.vact{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.vact .btn{padding:10px 18px}
@keyframes vf{from{opacity:0}}@keyframes vp{from{opacity:0;transform:translateY(10px) scale(.96)}}

/* rank impact under each AI suggestion */
.imp{display:grid;gap:3px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-size:.78rem;color:var(--muted);font-weight:500}
.imp>b{color:var(--good);font-weight:700;font-size:.82rem}
.imp .iw b{color:var(--ink)}.imp .iw i{font-style:normal;color:var(--muted)}.imp .iw.warn{color:var(--warn);font-weight:600}
.imp small{font-size:.68rem;opacity:.8}

/* keyword strength under each AI suggestion */
.kws{display:grid;gap:5px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-size:.78rem;color:var(--muted);font-weight:500}
.kws i{font-style:normal}.kws .kwt b{font-weight:700}
.kwbar{display:block;height:6px;border-radius:99px;background:var(--soft);overflow:hidden}.kwbar i{display:block;height:100%;border-radius:99px}
.kwm{display:flex;flex-wrap:wrap;gap:4px}.kwm u{text-decoration:none;padding:1px 8px;border-radius:99px;background:var(--accent-bg);color:var(--accent);font-size:.72rem;font-weight:600}
.best{font-style:normal;padding:1px 8px;border-radius:99px;background:var(--good-bg);color:var(--good);font-weight:700;font-size:.72rem}

/* keywords page */
.krtabs{margin-bottom:16px}
.krkpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.krk{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.krk span{display:block;color:var(--muted);font-size:.8rem}.krk b{font-size:1.7rem;letter-spacing:-.02em;margin-right:8px}
.krk i{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none}.krk i svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.krgrid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:16px;align-items:start}.krgrid.one{grid-template-columns:minmax(0,1fr)}
.krmain,.krside{display:grid;gap:16px;min-width:0}.krbot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.krp,.krs{padding:16px 18px}
.krsearch{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.krin{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--surface)}
.krin svg{width:18px;height:18px;stroke:var(--muted);stroke-width:2;fill:none;flex:none}.krin input{border:0;outline:0;background:none;color:var(--ink);font:500 .92rem var(--sans);padding:10px 0;width:100%}
.krcountry{padding:9px 14px;border:1px solid var(--line);border-radius:10px;font-size:.85rem;font-weight:600}
.krfilters{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.krtw{overflow-x:auto}
.krt{width:100%;border-collapse:collapse;font-size:.86rem}
.krt th{text-align:left;font-size:.72rem;font-weight:600;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.krt td{padding:11px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.krt tr:last-child td{border-bottom:0}
.krt.sm th,.krt.sm td{padding:9px 8px}.krt td:first-child{white-space:normal}
.kp{display:inline-block;min-width:38px;text-align:center;padding:3px 10px;border-radius:8px;font-weight:700;font-size:.82rem}
.kp.hi{background:var(--good-bg);color:var(--good)}.kp.md{background:var(--warn-bg);color:var(--warn)}.kp.lo{background:var(--bad-bg);color:var(--bad)}
.rl{display:inline-flex;align-items:center;gap:8px}.rl b{width:26px;font-weight:600}.rl i{display:block;width:70px;height:7px;border-radius:99px;background:var(--soft);position:relative;overflow:hidden}.rl i::after{content:"";position:absolute;inset:0;width:var(--w);background:var(--good);border-radius:99px}
.krnote{margin-top:12px;color:var(--muted);font-size:.74rem;line-height:1.5}.krnote b{color:var(--ink)}
.krsh{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.krsh b{display:inline-flex;align-items:center;gap:8px;font-size:1rem}.krsh b svg{width:18px;height:18px;stroke:var(--accent);fill:none;stroke-width:2;stroke-linejoin:round}
.beta{font-size:.68rem;font-weight:700;color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:1px 7px;margin-left:8px}
.krsd{margin:0 0 8px;font-size:.78rem}
.plus{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--accent);font-weight:700;font-size:1rem;cursor:pointer;line-height:1}.plus:hover{border-color:var(--accent);background:var(--accent-bg)}
.krmore{display:inline-block;margin-top:10px;color:var(--accent);font-weight:600;font-size:.84rem;text-decoration:none}
.krleg{display:flex;gap:14px;align-items:center;font-size:.78rem;margin-bottom:6px}.krleg i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.krsvg{width:100%;height:auto;display:block}
.kradd{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 12px}.kradd input{flex:1;min-width:200px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:500 .9rem var(--sans)}
@media(max-width:1100px){.krgrid{grid-template-columns:minmax(0,1fr)}.krkpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.krbot{grid-template-columns:minmax(0,1fr)}}

/* ai optimizer */
.opgrid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}.opgrid.one{grid-template-columns:minmax(0,1fr)}
.opp{padding:18px 20px}.opsh{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.opsh .sub{display:block;margin-top:2px}
.opt1{font-size:1.05rem}.opt2{margin:6px 0 12px;font-size:1.1rem;text-transform:none;letter-spacing:0;color:var(--ink)}.opt3{display:block;margin:16px 0 8px;font-size:.92rem}
.optiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.opt{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:14px;min-width:0}
.opt i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none}.opt i svg{width:18px;height:18px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.opt b{display:block;font-size:1.15rem}.opt span{display:block;color:var(--muted);font-size:.76rem}.opbig{font-size:1.7rem!important}
.optabs{display:flex;gap:2px;border:1px solid var(--line);border-radius:10px;overflow-x:auto;margin-bottom:14px}
.optabs button{flex:1;border:0;background:none;padding:11px 14px;font:600 .84rem var(--sans);color:var(--muted);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent}
.optabs button[aria-selected="true"]{color:var(--accent);background:var(--accent-bg);border-bottom-color:var(--accent)}
.opcols{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:16px;align-items:start}
.opcl{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:.88rem}
.opcb{border:1px solid var(--line);border-radius:10px;padding:12px;font-size:.88rem;white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto}
.opsgs{display:grid;gap:8px}
.opsg{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer}
.opsg.on{border-color:var(--accent);background:var(--accent-bg)}
.opsg input{margin-top:4px;accent-color:var(--accent);flex:none}.opbody{flex:1;min-width:0;display:grid;gap:6px}.optx{font-size:.9rem;font-weight:600;white-space:pre-wrap;overflow-wrap:anywhere}.opn{color:var(--muted);font-size:.78rem;white-space:nowrap}
.opbest{justify-self:start;font-size:.72rem;font-weight:700;color:var(--good);border:1px solid var(--good);border-radius:6px;padding:1px 8px}
.optags{display:flex;gap:6px;flex-wrap:wrap}.optags u,.opw u{text-decoration:none;font-size:.72rem;color:var(--muted);background:var(--soft);border-radius:99px;padding:2px 10px}.optags u.g{background:var(--good-bg);color:var(--good);font-weight:600}
.opvs{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:8px;align-items:stretch}
.opcard{padding:14px 16px;display:grid;gap:10px;align-content:start}.opnew{border-color:var(--good);background:color-mix(in srgb,var(--good-bg) 40%,var(--surface))}
.opcmp small{color:var(--muted);font-size:.72rem}.opcmp p{margin:2px 0 0;font-size:.86rem;overflow-wrap:anywhere;white-space:pre-wrap}.opcmp p.new{color:var(--good);font-weight:600}
.oparrow{align-self:center;text-align:center;color:var(--muted);font-size:1.2rem}.oppot{font-size:.74rem;font-weight:700;color:var(--good)}
.opchip{padding:5px 14px;border-radius:10px;background:var(--soft);font-weight:600;font-size:.82rem}.oppv{display:flex;justify-content:center}.oppv .pv{width:100%;max-width:340px}
.opbd{display:flex;align-items:center;gap:18px;margin-top:10px}.opdn{width:130px;height:130px;flex:none}.opbd ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;flex:1}.opbd li{display:flex;align-items:center;gap:8px;font-size:.84rem}.opbd li span{flex:1}.opdot{width:10px;height:10px;border-radius:50%;flex:none}
.opimp{list-style:none;margin:0;padding:0;display:grid;gap:8px}.opimp li{display:flex;gap:10px;align-items:flex-start;font-size:.84rem}.opimp i{font-style:normal;width:18px;height:18px;border-radius:50%;background:var(--good);color:#fff;display:grid;place-items:center;font-size:.7rem;flex:none}
.opw{white-space:normal!important}.opw u{margin:0 4px 4px 0;display:inline-block}
.opl{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:6px 12px;background:var(--surface)}.opl select{border:0;background:none;color:var(--ink);font:600 .85rem var(--sans)}
@media(max-width:1100px){.opgrid{grid-template-columns:minmax(0,1fr)}.optiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.opcols,.opvs{grid-template-columns:minmax(0,1fr)}.oparrow{transform:rotate(90deg)}}

/* analytics overview */
.ankpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}
.ankpis .krk{padding:14px 16px;align-items:flex-start}.ankpis .krk b{font-size:1.45rem;display:inline-block}.ankpis .krk small{display:block;margin-top:2px}
.ankpis .krk i{width:36px;height:36px}
.angrid{display:grid;gap:16px;margin-bottom:16px}.angrid.g2{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.angrid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.anp{padding:16px 18px;min-width:0;margin-bottom:16px}.angrid .anp{margin-bottom:0}
.anfun{display:flex;align-items:flex-start;gap:6px;overflow-x:auto;padding:12px 0 4px}
.anfs{flex:1;min-width:110px;display:grid;gap:6px}.anfs small{color:var(--muted);font-size:.8rem}.anfs b{font-size:1.5rem}.anfs em{font-style:normal;color:var(--muted);font-size:.8rem}
.anfb{display:block;height:26px;border-radius:5px;background:var(--soft);overflow:hidden}.anfb i{display:block;height:100%;border-radius:5px}.anfs.off b{color:var(--muted)}
.anar{align-self:center;color:var(--muted);font-size:1.4rem;padding:0 4px}
.anshare{display:inline-flex;align-items:center;gap:8px;min-width:120px}.anshare i{display:block;flex:1;max-width:80px;height:6px;border-radius:99px;background:var(--soft);position:relative;overflow:hidden}.anshare i::after{content:"";position:absolute;inset:0;width:var(--w);background:var(--accent);border-radius:99px}
@media(max-width:1250px){.ankpis{grid-template-columns:repeat(3,minmax(0,1fr))}.angrid.g3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:900px){.angrid.g2,.angrid.g3{grid-template-columns:minmax(0,1fr)}.ankpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* competitors */
.cpkpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.cpgrid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:16px;align-items:start}
.cptop{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px}.cptop .anp{margin-bottom:0}
.cpi{border-radius:9px;flex:none;display:block}.tn2{display:inline-flex;align-items:center;gap:10px}
.cptools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.cptools .krin{min-width:180px;flex:none}.cptools .krin input{padding:7px 0}
.cpact{display:flex;gap:8px;align-items:center}.cmpbtn{color:var(--accent);border-color:var(--accent)}
.cpadd{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px;display:grid;gap:8px;background:var(--soft)}.cpadd form{display:flex;gap:8px}.cpadd input{flex:1;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:500 .9rem var(--sans)}
.cpsug{display:grid;gap:8px}.cpsug .opt1{font-size:.84rem}.cpsug+.cpsug{margin-top:4px}
.cpins{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:12px}.cpins li{display:flex;gap:10px;align-items:flex-start;font-size:.86rem;line-height:1.45}.cpins .opdot{margin-top:6px}
.cpgap{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}.cpgap li{display:flex;align-items:center;gap:10px;font-size:.86rem}.cpgap li span:first-child{flex:1}.cpn{color:var(--muted);font-size:.78rem}
.cpck{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:.7rem;color:#fff;font-weight:700}.cpck.y{background:var(--good)}.cpck.n{background:var(--bad)}
.cpnm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cpw{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.cpshots{padding:12px 0;border-top:1px solid var(--line);display:grid;gap:10px}.cpshots .who{display:flex;align-items:center;gap:10px}.cpshots .pvshots{display:flex;gap:10px;overflow-x:auto}.cpshots .pvshots img{height:240px;width:auto;border-radius:10px;flex:none}
@media(max-width:1250px){.cpkpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.cpgrid,.cptop{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.cpkpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ratings & reviews */
.rvkpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.rvkpis .krk b{font-size:1.6rem}.rvkpis .stars{font-size:1rem}
.rvgrid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:16px;align-items:start}
.rvbd{display:grid;gap:10px;margin-top:6px}.rvbd>div{display:grid;grid-template-columns:70px minmax(0,1fr) 48px 40px;gap:10px;align-items:center;font-size:.84rem}.rvbd.tp>div{grid-template-columns:140px minmax(0,1fr) 40px}
.rvbd em{font-style:normal;color:var(--muted);text-align:right}.rvbd b{text-align:right}
.rvbar{display:block;height:8px;border-radius:99px;background:var(--soft);overflow:hidden}.rvbar i{display:block;height:100%;border-radius:99px}
.rvins{list-style:none;margin:8px 0 14px;padding:0;display:grid;gap:11px}.rvins li{display:flex;gap:10px;align-items:center;font-size:.85rem}.rvins li span{flex:1}.rvins em{font-style:normal;color:var(--muted);font-size:.76rem}
.rvfilt{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.rvfilt .krin{flex:1;min-width:200px}
.rvsubs{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:6px}
.rvsub{border:0;background:none;padding:10px 14px;font:600 .86rem var(--sans);color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.rvsub[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)}
.rvdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--bad)}
.rvr{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);align-items:start}.rvr:last-child{border-bottom:0}
.rvp{padding-top:3px}.rvh{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rvh b{font-size:.98rem}.rvm{color:var(--muted);font-size:.8rem;margin-top:2px}.rvbody p{margin:8px 0 0;font-size:.88rem;line-height:1.5;overflow-wrap:anywhere}
.rvside{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.rvrep{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--soft);font-size:.84rem}.rvrep p{margin:4px 0 0}
.rvcomp{margin-top:10px;display:grid;gap:8px}.rvcomp textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:500 .88rem var(--sans);resize:vertical}
.rvtpl{display:flex;gap:6px;flex-wrap:wrap}.rvtpl .btn{text-align:left;max-width:100%}.rvact{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rvact .sub{margin-right:auto}
.rvtp{padding:12px 0;border-top:1px solid var(--line);display:grid;gap:8px}.rvtl{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;font-size:.86rem}
@media(max-width:1250px){.rvkpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.rvgrid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.rvkpis{grid-template-columns:repeat(2,minmax(0,1fr))}.rvr{grid-template-columns:24px minmax(0,1fr)}.rvside{grid-column:2;justify-content:flex-start}}

/* experiments */
.exkpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.exgrid{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(0,1fr);gap:16px;margin-bottom:16px;align-items:start}.exgrid .anp{margin-bottom:0}
.exvars{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.exvar{border:1px solid var(--line);border-radius:12px;padding:10px;min-width:0;background:var(--soft)}.exvh{display:flex;align-items:center;gap:8px;font-size:.84rem;font-weight:600;margin-bottom:8px}
.exvh i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:.72rem;font-weight:700;flex:none}
.exshots{display:flex;gap:6px;overflow-x:auto}.exshots img{height:190px;width:auto;border-radius:8px;flex:none}.exempty{min-height:90px;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:.78rem;padding:8px}
.exdl{display:grid;grid-template-columns:auto 1fr;gap:12px 16px;margin:14px 0 0;font-size:.86rem}.exdl dt{color:var(--muted)}.exdl dd{margin:0;text-align:right;font-weight:500}
.exreg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.exres{border:1px solid var(--line);border-radius:12px;padding:14px 16px}.exres small{color:var(--muted);font-size:.8rem}.exres b{display:block;font-size:1.6rem;color:var(--muted)}
@media(max-width:1100px){.exkpis,.exreg{grid-template-columns:repeat(2,minmax(0,1fr))}.exgrid{grid-template-columns:minmax(0,1fr)}}

/* in-app events */
.evgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}.evgrid .krside{display:grid;gap:16px}#evSide{display:grid;gap:16px}
.evcols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
.evf{margin-bottom:14px}.evl{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.84rem;font-weight:600;margin-bottom:6px}.evl .sub{font-weight:400}.req{color:var(--bad)}
.evf input,.evf textarea,.evsel{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:500 .9rem var(--sans)}.evf textarea{resize:vertical}
.evf input:focus,.evf textarea:focus,.evsel:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.evdt{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}
.evimg{display:grid;gap:6px;margin-bottom:20px}.evpic{aspect-ratio:16/9;border-radius:12px;background:var(--soft);display:grid;place-items:center;overflow:hidden;border:1px solid var(--line)}.evpic img{width:100%;height:100%;object-fit:cover}
.evup{justify-content:center;cursor:pointer;width:100%}.evup.off{opacity:.5;pointer-events:none}
.evlocs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.evphone{border:8px solid #111;border-radius:34px;padding:16px 14px 18px;background:var(--surface);max-width:340px;margin:0 auto;overflow:hidden}.evnotch{width:90px;height:20px;border-radius:12px;background:#111;margin:-8px auto 12px}
.evapp{display:flex;gap:12px;align-items:center}.evic{width:56px;height:56px;border-radius:13px}.evapp b{display:block;font-size:1.05rem}.evapp span{display:block;color:var(--muted);font-size:.8rem}.evapp i{display:inline-block;margin-top:6px;font-style:normal;background:#0a7cff;color:#fff;font-weight:700;font-size:.78rem;padding:3px 18px;border-radius:99px}
.evhn{margin:16px 0 8px;font-size:.74rem;font-weight:700;color:var(--accent);letter-spacing:.05em}
.evcard{border-radius:14px;min-height:170px;background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;padding:14px;color:#fff}.evcard small{font-size:.66rem;font-weight:700;opacity:.85}.evcard b{font-size:1rem}.evcard span{font-size:.76rem;opacity:.9}
.evsr{padding:6px 0}
.evck{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;font-size:.84rem}.evck li{display:flex;gap:8px;align-items:center}.evck i{font-style:normal;width:18px;height:18px;border-radius:50%;background:var(--soft);color:#fff;display:grid;place-items:center;font-size:.68rem;flex:none}.evck li.ok i{background:var(--good)}
.evbtns{display:flex;justify-content:space-between;gap:10px}.evbtns .btn{padding:11px 20px}
@media(max-width:1100px){.evgrid,.evcols{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.evck{grid-template-columns:1fr}}

/* approvals & publishing */
.pbpipe{display:flex;align-items:center;gap:8px;padding:18px 20px;margin-bottom:16px;overflow-x:auto}
.pbstep{display:flex;gap:12px;align-items:center;flex:1;min-width:190px}.pbstep i{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--soft);color:var(--muted)}
.pbstep i svg{width:22px;height:22px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.pbstep b{display:block;font-size:.92rem}.pbstep span{display:block;color:var(--muted);font-size:.78rem;line-height:1.35}
.pbstep.done i{background:var(--good-bg);color:var(--good)}.pbstep.now i{background:var(--accent);color:#fff}.pbar{color:var(--muted);font-size:1.4rem}
.pbstores{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.pbstore{display:flex;align-items:center;gap:16px;padding:16px 18px}.pbstore>div{flex:1;min-width:0}.pbstore b{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pbico .big{width:42px;height:42px;display:block}
.pbgrid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:16px;align-items:start}
.pbnote{max-width:220px;white-space:normal!important;color:var(--muted)}
.pbdet td{background:var(--soft)}.pbdl{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:8px}.pbdl small{display:block;color:var(--muted);font-size:.7rem}.pbdet pre{margin:0;white-space:pre-wrap;font:500 .84rem var(--sans)}
.pbcl{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:12px}.pbcl li{display:flex;gap:10px;align-items:flex-start;font-size:.86rem}.pbcl small{display:block;color:var(--muted);font-size:.74rem}
.pbck{font-style:normal;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:.7rem;font-weight:700;color:#fff;flex:none}.pbck.ok{background:var(--good)}.pbck.no{background:var(--bad)}.pbck.mn{background:#aab0c8}
.pbnotes{border:1px solid var(--line);border-radius:10px;padding:12px;font-size:.86rem;white-space:pre-wrap;max-height:190px;overflow:auto}
#pbnt{width:100%;padding:10px 12px;border:1px solid var(--accent);border-radius:10px;background:var(--surface);color:var(--ink);font:500 .86rem var(--sans);resize:vertical}
.pbacts{display:grid;gap:10px}.pbacts .btn{width:100%;justify-content:center;padding:13px}.pbdraft{color:var(--accent);border-color:var(--accent)}
.pbshots img{height:300px}
@media(max-width:1100px){.pbgrid,.pbstores{grid-template-columns:minmax(0,1fr)}}

/* integrations */
.itgridwrap{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);gap:16px;align-items:start}.itmain{display:grid;gap:18px;min-width:0}
.itgrp h3{margin:0 0 10px;font-size:1.02rem;text-transform:none;letter-spacing:0;color:var(--ink)}
.itgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.itcard{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:10px;align-content:start;min-width:0}.itcard.soon{background:color-mix(in srgb,var(--soft) 55%,var(--surface))}
.ithead{display:flex;gap:12px;align-items:flex-start}.itlogo{width:46px;height:46px;flex:none;display:grid;place-items:center}.itlogo .big{width:44px;height:44px;display:block}.itlogo .av2{width:46px!important;height:46px!important;border-radius:12px}
.ithead b{display:block;font-size:.98rem}.ithead p{margin:2px 0 0;color:var(--muted);font-size:.8rem;line-height:1.4}
.itfoot{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.itfoot small{color:var(--muted);font-size:.7rem}
.itbtns{display:flex;gap:8px}.itbtns .btn{flex:1;justify-content:center}
.itman{border-top:1px solid var(--line);padding-top:10px;display:grid;gap:8px;font-size:.82rem}.itman p{margin:0;color:var(--muted)}
.itkey{display:flex;gap:6px}.itkey input{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:500 .82rem var(--sans)}
.itapp{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:.78rem}
.itact{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:14px}.itact li{display:flex;gap:12px;align-items:center}.itact li div{flex:1;min-width:0}.itact b{display:block;font-size:.86rem}.itact small{display:block;color:var(--muted);font-size:.74rem}.itact em{font-style:normal;color:var(--muted);font-size:.72rem;white-space:nowrap}.itact span{width:30px;height:30px;display:grid;place-items:center;flex:none}
.itlinks{display:grid;gap:8px}.itlinks .btn{justify-content:center}
@media(max-width:1100px){.itgridwrap{grid-template-columns:minmax(0,1fr)}}
.tabn{display:inline-block;min-width:18px;padding:0 6px;border-radius:99px;background:var(--bad-bg);color:var(--bad);font-size:.7rem;font-weight:700;text-align:center;margin-left:4px}

/* access permissions */
.acpre{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:12px}
.acm{display:grid;gap:2px;margin-top:12px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.acr{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--line);flex-wrap:wrap}.acr:first-child{border-top:0}.acr small{display:block;color:var(--muted);font-size:.74rem}.acr b{font-size:.88rem}
.acu{flex-wrap:wrap}.acbtn{display:flex;gap:8px}
.acedit{padding:14px 16px 16px;background:var(--soft);border-top:1px solid var(--line)}.acact{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}

:root[data-theme="dark"]{--bg:#0f1120;--surface:#171a2e;--ink:#e9ebf7;--muted:#9aa0c0;--line:#262a47;--soft:#1e2240;--accent:#9b87ff;--accent-bg:#2a2466;--good:#5bd49a;--warn:#e9b04f;--bad:#f08075;--good-bg:#17392b;--warn-bg:#3a2d12;--bad-bg:#3d1c19;color-scheme:dark}

/* settings */
.stgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start;margin-bottom:16px}.stbot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.stt{margin:0 0 4px;font-size:1.1rem;text-transform:none;letter-spacing:0;color:var(--ink)}
.stcols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:14px}.stcols>div{display:grid;gap:8px;align-content:start}
.stl{font-size:.82rem;font-weight:600;margin-top:6px}.stsel{width:100%;padding:10px 12px;text-align:left;background:var(--surface);font-weight:500}.stfull{margin-top:8px}
.stro{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:.9rem;font-weight:500}.stro small{display:block;color:var(--muted);font-size:.74rem;font-weight:400;margin-top:2px}
.stck{display:flex;gap:10px;align-items:flex-start;padding:8px 0;cursor:pointer}.stck input{margin-top:3px;width:17px;height:17px;accent-color:var(--accent);flex:none}.stck b{display:block;font-size:.86rem}.stck small{display:block;color:var(--muted);font-size:.76rem;margin-top:1px}
.strow2{display:flex;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}.strow2:first-of-type{border-top:0}.strow2>div{flex:1;min-width:0}.strow2 b{display:block;font-size:.88rem}.strow2 small{display:block;color:var(--muted);font-size:.76rem;margin-top:1px}
.sti{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex:none;font-style:normal}.sti svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.stact{min-width:84px;justify-content:center;color:var(--accent);border-color:var(--accent);cursor:pointer}.stdanger{min-width:84px;justify-content:center;color:var(--bad);border-color:var(--bad)}
.stsoon{font-size:.66rem;font-weight:700;color:var(--muted);margin-right:8px;text-transform:uppercase;letter-spacing:.05em}
.stsw{position:relative;display:inline-block;width:42px;height:24px;flex:none}.stsw input{opacity:0;width:0;height:0}.stsw i{position:absolute;inset:0;background:#c9cde0;border-radius:99px;transition:.15s}.stsw i::after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.15s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.stsw input:checked+i{background:var(--accent)}.stsw input:checked+i::after{transform:translateX(18px)}.stsw.off{opacity:.55}
.stprof{display:flex;gap:16px;align-items:center;margin:14px 0}.stprof img,.stprof>i{width:64px;height:64px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--accent);color:#fff;font-style:normal;font-size:1.5rem;font-weight:700}
.stlist{margin:10px 0 0;padding-left:18px;display:grid;gap:8px;font-size:.88rem;color:var(--muted)}.stlist b{color:var(--ink)}
@media(max-width:1100px){.stgrid,.stbot,.stcols{grid-template-columns:minmax(0,1fr)}}

/* ASO Studio: shared visual system and responsive workspace. */
:root{--bg:#f5f7fc;--line:#e9edf6;--accent:#6945ff;--accent-bg:#eeeaff;--muted:#67718c}
:root[data-theme="dark"]{--bg:#101321;--surface:#191d30;--ink:#eef0fc;--muted:#a5aecb;--line:#2c324c;--soft:#22283e;--accent:#ab96ff;--accent-bg:#302654;--good:#5bd49a;--good-bg:#17392b;--warn:#e9b04f;--warn-bg:#3a2d12;--bad:#f08075;--bad-bg:#3d1c19;color-scheme:dark}
.content{max-width:none;padding:0 24px 36px;gap:20px}
.shell{grid-template-columns:240px minmax(0,1fr)}
.side{padding:18px 12px;gap:16px;scrollbar-width:thin}
.logo{font-size:1.2rem;letter-spacing:-.045em;padding:0 10px 12px;min-height:38px}
.logo .mark{background:linear-gradient(145deg,#9773ff,#6035ff);box-shadow:0 3px 9px #6945ff20;border-radius:11px}
.snav a{font-size:.83rem;padding:10px 12px;border-radius:8px;transition:background .15s,color .15s}
.snav a[aria-current="page"]{background:linear-gradient(100deg,var(--accent-bg),color-mix(in srgb,var(--accent-bg) 60%,var(--surface)));color:var(--accent)}
.snav .newb{flex:none;font-size:.6rem;font-weight:600}
header.topbar{margin-inline:-24px;padding-inline:24px;height:66px;position:sticky;top:0;z-index:8;backdrop-filter:blur(14px);flex-wrap:nowrap}
.gsearch{max-width:560px;min-width:100px;height:38px;border-radius:7px;transition:border-color .15s,box-shadow .15s}
.gsearch:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.gsearch input{font-size:.8rem}.gsearch kbd{background:transparent;border:0}
.rangepick,.iconbtn{height:36px;border-radius:7px}.iconbtn{width:36px}
.bell{border-color:transparent;background:transparent}
.pagehead{margin:0;gap:12px}.pagehead h1{font-size:1.5rem;line-height:1.25}.sub2{font-size:.83rem;margin-top:5px;line-height:1.5}
.pagehead>.sub:empty{display:none}.pbtn .btn{padding:9px 14px;font-size:.78rem;border-radius:7px}
.btn{transition:background .15s,border-color .15s,box-shadow .15s}.btn.primary{background:linear-gradient(125deg,#7953ff,#643aff);border-color:#734aff;box-shadow:0 2px 4px #6945ff15}
.btn.primary:hover{background:linear-gradient(125deg,#6943ed,#542adf);box-shadow:0 3px 10px #6945ff25}
#page{gap:16px}.panel,.kpi,.card,.anp,.itcard{border-radius:10px;box-shadow:0 2px 8px #15234a03}
.kpis{gap:16px}.kpi{padding:16px;gap:12px;min-height:108px;flex-wrap:wrap;transition:border-color .15s,box-shadow .15s}
.kpi:hover{box-shadow:0 4px 16px #6945ff0d}.kic{width:38px;height:38px;border-radius:9px}.kbody{padding-right:10px}.kbody b{font-size:1.65rem;margin-top:3px}.kbody span{font-size:.76rem}.ksp{position:absolute;right:16px;bottom:12px;width:42%;max-width:140px;opacity:.9;pointer-events:none}.kpi:has(.ksp:not(:empty)) .kx{padding-bottom:22px}.kpi .kgo{width:13px;top:20px}
.r2{grid-template-columns:minmax(0,1.22fr) minmax(0,1fr)}
.r3{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.85fr)}
.r4{grid-template-columns:minmax(0,1.1fr) minmax(0,1.2fr) minmax(0,.85fr)}
.dp{padding:16px;min-width:0;overflow-x:auto}.dph h3{font-size:.94rem;letter-spacing:-.025em}.dph a{font-size:.74rem;white-space:nowrap}.dph{margin-bottom:14px}.dsub{margin-block:12px}
.trow{grid-template-columns:18px minmax(105px,1fr) 42px 60px 58px 52px;gap:7px}.trow .ksp{position:static;width:52px}.trow.th{font-size:.6rem;letter-spacing:0;text-transform:none}.tn2 b{font-size:.78rem}.tn2 small{font-size:.67rem}.num{font-size:.74rem}
.fr{grid-template-columns:112px minmax(45px,1fr) 40px;gap:8px}.ft{height:24px}.fr b{font:600 .87rem var(--sans)}
.seg{border:1px solid var(--line);border-radius:7px;background:var(--bg)}.seg button{padding:5px 12px;border-radius:5px;font-size:.7rem}.seg button[aria-pressed="true"]{background:var(--accent-bg);box-shadow:none}
.usage,.cs{border-radius:9px;background:var(--surface)}.usage .ub i{background:#3483ff}.cs .store{padding-block:4px}.ur b,.cs .slabel{font-size:.73rem}.ur small{font-size:.64rem}
.connect{max-width:680px;padding:28px;border-radius:12px;border:1px solid var(--line);background:var(--surface);box-shadow:0 8px 30px #18264c06}.connect h3{font-size:1.2rem;margin-top:0;letter-spacing:-.025em}.connect p{color:var(--muted);font-size:.9rem}.connect #err{color:var(--bad)}
.nav-toggle,.nav-backdrop{display:none}.skip-link{position:fixed;top:-80px;left:16px;z-index:50;padding:10px 16px;background:var(--surface);color:var(--accent);border:2px solid var(--accent);border-radius:8px}.skip-link:focus{top:10px}
@media(min-width:1600px){.content{padding-inline:32px}header.topbar{margin-inline:-32px;padding-inline:32px}.dp{padding:20px}.snav a{padding-block:11px}.shell{grid-template-columns:250px minmax(0,1fr)}}
@media(min-width:821px) and (max-width:1280px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.r2,.r3,.r4{grid-template-columns:repeat(2,minmax(0,1fr))}.r2>:first-child{grid-column:1/-1}.r3>:last-child,.r4>:last-child{grid-column:1/-1}.shell{grid-template-columns:218px minmax(0,1fr)}.pbtn{flex-wrap:wrap}}
@media(max-width:820px){.shell{grid-template-columns:minmax(0,1fr)}.content{padding:0 16px 28px;gap:18px}header.topbar{margin-inline:-16px;padding-inline:16px;position:sticky;height:62px;gap:10px}.nav-toggle{display:grid;flex:none}.side{position:fixed;inset:0 auto 0 0;width:260px;height:100dvh;z-index:31;flex-direction:column;align-items:stretch;gap:16px;transform:translateX(-100%);transition:transform .2s;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--line)}.side .snav{display:grid}.side .sfoot{display:grid}.nav-open{overflow:hidden}.nav-open .side{transform:translateX(0)}.nav-backdrop{display:block;position:fixed;inset:0;background:#10182d66;backdrop-filter:blur(2px);z-index:30;border:0;width:100%;height:100%}.side .logo{flex:none}.snav a{padding-block:11px}.tools{flex-wrap:nowrap;gap:5px}.topbar .rangepick{display:none}.gsearch{max-width:none}.gsearch input{font-size:.76rem}.r2,.r3,.r4{grid-template-columns:minmax(0,1fr)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pagehead h1{font-size:1.4rem}.pbtn{margin-left:0}.connect{padding:22px}.pagehead>.sub{font-size:.63rem}}
@media(max-width:480px){.kpis{gap:10px}.kpi{padding:12px;gap:8px;min-height:110px}.kic{width:30px;height:30px;border-radius:7px}.kic svg{width:18px;height:18px}.kbody span{font-size:.67rem}.kbody b{font-size:1.35rem}.kpi .kgo{display:none}.ksp{right:12px;bottom:10px}.kbody{padding-right:0}.pbtn{width:100%;gap:8px}.pbtn .btn{justify-content:center;flex:1;padding:9px 10px;font-size:.72rem}.dp{padding:14px}.legend{gap:8px;font-size:.65rem}.dph{flex-wrap:wrap}.trow{grid-template-columns:18px minmax(90px,1fr) 38px 56px}.kwr{min-width:380px}.strow{min-width:420px}.gsearch kbd{display:none}.uname{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* ---- store connections on the Integrations page ---- */
/* Where a workspace pastes its own App Store Connect key and Play service account. */
.itsteps { margin: 0 0 12px; padding-left: 20px; display: grid; gap: 5px; color: var(--muted); font-size: 13px; }
.itsteps code { background: var(--soft); border-radius: 5px; padding: 1px 5px; font-size: 11.5px; color: var(--ink); }
.itform { display: grid; gap: 10px; margin-top: 4px; }
.itform label { display: grid; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--muted); }
.itform input, .itform textarea {
  font: inherit; font-size: 13px; color: var(--ink); background: var(--bg);
  border: 1px solid var(--line); border-radius: 9px; padding: 8px 10px; width: 100%;
}
.itform textarea { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 11.5px; resize: vertical; min-height: 92px; }
.itform input:focus, .itform textarea:focus { outline: 2px solid var(--accent); outline-offset: -1px; border-color: var(--accent); }
.itrow { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.itnote { border: 1px solid var(--line); background: var(--soft); border-radius: 9px; padding: 8px 10px; font-size: 12.5px; margin-bottom: 8px; overflow-wrap: anywhere; }
.itnote.ok { border-color: color-mix(in srgb, var(--good) 40%, var(--line)); background: color-mix(in srgb, var(--good) 9%, transparent); }
.itnote.bad { border-color: color-mix(in srgb, var(--bad) 40%, var(--line)); background: color-mix(in srgb, var(--bad) 9%, transparent); }
.itbucket { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: end; font-size: 12.5px; font-weight: 600; color: var(--muted); margin: 4px 0 2px; }
.itbucket input { grid-column: 1; font: inherit; font-weight: 400; font-size: 13px; color: var(--ink); background: var(--bg); border: 1px solid var(--line); border-radius: 9px; padding: 8px 10px; }
.btn.bad:hover:not(:disabled) { border-color: var(--bad); color: var(--bad); }

/* ---- busy spinner ---- */
/* Shown while any backend call is in flight. Several of them take the better part of a minute,
   and without this the page looks stuck. */
.busy {
  position: fixed; right: 22px; bottom: 22px; width: 50px; height: 50px; z-index: 60;
  opacity: 0; visibility: hidden; transition: opacity .18s ease;
  pointer-events: none; display: grid; place-items: center;
  background: var(--panel); border-radius: 50%; box-shadow: 0 2px 10px rgba(17, 20, 43, .14);
}
.busy.on { opacity: 1; visibility: visible; }
.busy svg { width: 50px; height: 50px; fill: none; stroke-width: 4; }
.busy circle { stroke: var(--soft); }
.busy path { stroke: var(--accent); stroke-linecap: round; transform-origin: 25px 25px; animation: busyspin .8s linear infinite; }
@keyframes busyspin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .busy path { animation-duration: 2.4s; }
}

/* ---- analytics empty state ---- */
/* A board of blank cards looks like a mock-up. When there is no data, this explains why. */
.anempty { text-align: center; display: grid; justify-items: center; gap: 8px; padding: 34px 22px; }
.anempty .anemptyic { width: 34px; height: 34px; fill: none; stroke: var(--muted); stroke-width: 1.8; stroke-linecap: round; opacity: .55; }
.anempty h3 { margin: 2px 0 0; font-size: 16px; }
.anempty p { margin: 0; max-width: 56ch; color: var(--muted); font-size: 13.5px; }
.anempty .btn { margin-top: 6px; }
.anskel { height: 120px; margin-bottom: 14px; }

/* ---- notification composer ---- */
.pushrow { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pushrow > label { display: grid; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--muted); }
@media (max-width: 720px) { .pushrow { grid-template-columns: 1fr; } }
.pushwrap { max-width: 720px; margin-bottom: 14px; }

/* ---- early access: the closed-testing tester list ---- */
/* The pending addresses are shown as plain text so they can be selected and copied by hand where
   the clipboard is blocked. */
.eawrap { max-width: 760px; margin-bottom: 16px; }
.eapaste {
  width: 100%; font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 11.5px;
  line-height: 1.7; color: var(--ink); background: var(--bg); border: 1px solid var(--line);
  border-radius: 9px; padding: 9px 10px; resize: vertical;
}
.eawrap .sub2 { max-width: 62ch; }
@media(max-width:560px){ .eawrap .itrow .btn { flex: 1 1 auto; justify-content: center; } }
