/* ASCEND v2.2: original CSS extracted in existing cascade order. */
body{margin:0}
/* v1.9 read-only analytics: compact, accessible and responsive. */
.insight-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}
.insight-kpi{padding:12px;border:1px solid var(--line);border-radius:12px;min-width:0;background:var(--surface)}
.insight-kpi strong{display:block;font:600 25px/1.2 var(--mono);font-variant-numeric:tabular-nums;margin-top:4px}
.insight-kpi small{display:block;font-size:12px;margin-top:3px;color:var(--muted)}
.insight-kpi .good{color:var(--good)}
.insight-kpi .down{color:var(--ice)}
.insight-key{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.insight-lead{font-size:13px;color:var(--muted);line-height:1.5;margin:7px 0}
.insight-row{display:flex;align-items:center;gap:9px;margin-top:9px;font-size:12px}
.insight-row .label{width:92px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.insight-row .bar{flex:1;min-width:0}
.insight-row .mono{min-width:47px;text-align:right}
.insight-series-key{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0 4px}
.insight-series-key .label{line-height:1.2}
.insight-metric-chips .chip{flex:1}
@media(max-width:340px){.insight-kpis{grid-template-columns:1fr}.insight-row .label{width:70px}}

/* ASCEND v2.1: functional accessibility and small-phone workout refinements. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-to-content{position:fixed;left:12px;top:-110px;z-index:90;padding:12px 18px;background:var(--surface);color:var(--fg);border:2px solid var(--ice);border-radius:12px;font-weight:700}
.skip-to-content:focus{top:calc(10px + env(safe-area-inset-top,0px))}
#ascend-main{display:block;min-width:0;scroll-margin-top:110px}
.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:60px;letter-spacing:0;font-size:12px!important;line-height:1.15}
.tab-icon{width:21px;height:21px;display:block;flex:none}
.tab-icon svg{display:block;width:100%;height:100%;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}
.tab[aria-current="page"]{color:var(--fg)}
.tab[aria-current="page"] .tab-icon{color:var(--ember)}
.strip .tab{min-height:52px}
body:not(.navtop){padding-bottom:calc(175px + env(safe-area-inset-bottom,0px))}
.quick-workout{padding:14px 15px;border:1px solid var(--ice);border-radius:18px;background:var(--surface)}
.quick-workout .quick-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px}
.quick-workout .quick-meter{height:8px;border-radius:99px;background:var(--surface2);overflow:hidden}
.quick-workout .quick-meter>i{display:block;background:var(--ice);height:100%;transition:width .18s linear}
.quick-workout .quick-name{font-size:21px;margin-top:12px;line-height:1.1}
.quick-workout .quick-meta{font-size:12px;color:var(--muted);margin-top:3px}
.quick-workout .quick-fields{display:flex;flex-wrap:wrap;gap:9px;align-items:flex-end;margin:12px 0}
.quick-workout .quick-fields label{display:flex;flex-direction:column;gap:4px;flex:1 1 92px;min-width:85px;font-size:12px;color:var(--muted)}
.quick-workout .quick-fields input,.quick-workout .quick-fields select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:500 16px var(--mono);padding:8px}
.quick-workout .quick-actions{display:flex;align-items:stretch;gap:8px}
.quick-workout .quick-actions .quick-next{flex:1;min-height:52px;font:700 20px var(--display)}
.quick-workout .quick-actions .quick-undo{min-height:52px;white-space:nowrap}
.quick-workout .quick-note{margin:8px 0 0;font-size:12px;color:var(--muted)}
.quick-focus-toggle{min-height:44px}
.ex[aria-label]{scroll-margin-top:130px}
@media(max-width:350px){.quick-workout .quick-actions{flex-wrap:wrap}.quick-workout .quick-actions .quick-next,.quick-workout .quick-actions .quick-undo{width:100%;flex:auto}}
@media(prefers-reduced-motion:reduce){.tab,.set,.btn,.quick-workout .quick-meter>i{transition:none!important;animation:none!important}}
@media(forced-colors:active){.quick-workout{border:2px solid CanvasText}.tab[aria-current="page"]{outline:2px solid Highlight;outline-offset:-3px}.quick-workout .quick-meter>i{background:Highlight}}


/* Layout: one narrow phone-first column. Sticky level strip on top, five-tab bar at the bottom, quest cards between. */
:root{
  --bg:#eef1f7; --surface:#ffffff; --surface2:#e6eaf3; --line:#d3d9e6;
  --fg:#121829; --muted:#4a5373; --r1:#b91c1c; --r2:#a8360a; --r3:#8a5200; --r4:#136b34;
  --ember:#a83509; --ember-ink:#ffffff; --ice:#0a7395; --good:#1a7746; --warn:#995c00;
  --display:"Saira Condensed","Arial Narrow",Impact,sans-serif;
  --body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0b0e17; --surface:#131828; --surface2:#1a2036; --line:#262e48;
    --fg:#e8ecf6; --muted:#8c97b4; --r1:#ef4444; --r2:#f97316; --r3:#eab308; --r4:#22c55e;
    --ember:#ff7a45; --ember-ink:#1a0a02; --ice:#6fd0f2; --good:#58d68d; --warn:#f0b04a;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0b0e17; --surface:#131828; --surface2:#1a2036; --line:#262e48;
  --fg:#e8ecf6; --muted:#8c97b4; --r1:#ef4444; --r2:#f97316; --r3:#eab308; --r4:#22c55e;
  --ember:#ff7a45; --ember-ink:#1a0a02; --ice:#6fd0f2; --good:#58d68d; --warn:#f0b04a;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{background:var(--bg)}
body{color:var(--fg);font:15px/1.45 var(--body);padding-inline:16px;padding-block:0 150px;-webkit-text-size-adjust:100%}
#app{max-width:560px;margin:0 auto}
h1,h2,h3{font-family:var(--display);font-weight:700;margin:0;text-wrap:balance;letter-spacing:.01em}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--ice);outline-offset:2px}
.mono{font-family:var(--mono)}
.label{font:500 12px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)}
.ember{color:var(--ember)}
.warn{color:var(--warn)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.strip{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);padding-block:12px 10px;border-bottom:1px solid var(--line)}
.strip-row{display:flex;align-items:center;gap:12px}
.rank{width:42px;height:42px;flex:none;display:grid;place-items:center;border:2px solid var(--ice);color:var(--ice);font:700 24px/1 var(--display);border-radius:3px}
.strip-main{flex:1;min-width:0}
.strip-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.strip-top b{font:700 20px/1 var(--display);letter-spacing:.02em}
.bar{height:8px;background:var(--surface2);border-radius:2px;overflow:hidden;margin-top:6px}
.bar>i{display:block;height:100%;background:var(--ember);transition:width .5s ease}
.bar.ice>i{background:var(--ice)}
.flame{font:600 13px/1 var(--mono);color:var(--ember);white-space:nowrap}

.stack{display:flex;flex-direction:column;gap:12px;padding-block:16px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:14px;min-width:0}
.card.hot{border-color:var(--ember)}
.card h2{font-size:26px;line-height:1.05}
.card h3{font-size:20px;line-height:1.1}
.notice{border:1px solid var(--warn);background:var(--surface);border-radius:4px;padding:12px 14px}
.notice p{margin:0 0 8px}
.row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.btn{border:1px solid var(--line);background:var(--surface2);padding:10px 14px;border-radius:3px;font-weight:600;min-height:44px}
.btn.primary{background:var(--ember);border-color:var(--ember);color:var(--ember-ink);font-family:var(--display);font-size:20px;letter-spacing:.04em;text-transform:uppercase;width:100%}
.btn.primary[disabled]{opacity:.4;cursor:not-allowed}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn.ghost{background:transparent}
.btn.sm{min-height:36px;padding:6px 10px;font-size:13px}
.btn[aria-pressed="true"]{border-color:var(--ice);color:var(--ice)}
label.btn:focus-within{outline:2px solid var(--ice);outline-offset:2px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);background:var(--surface);padding:10px 14px;border-radius:3px;min-height:44px;font-weight:500}
.chip[aria-pressed="true"]{border-color:var(--ember);box-shadow:inset 0 0 0 1px var(--ember);font-weight:600}
.chip.wide{text-align:left;display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%}
.chip[disabled]{cursor:default}
.chip.sm{min-height:36px;padding:6px 10px;font-size:13px}

.ex{display:flex;flex-direction:column;gap:10px}
.ex-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.ex-name{background:none;border:0;padding:0;text-align:left;font:700 21px/1.1 var(--display);letter-spacing:.01em}
.ex-meta{font:400 12px/1.3 var(--mono);color:var(--muted);margin-top:4px}
.cue{font-size:14px;color:var(--muted);border-left:2px solid var(--ice);padding-left:10px}
.sets{display:flex;flex-wrap:wrap;gap:8px}
.set{width:48px;height:48px;border:1px solid var(--line);background:var(--surface2);border-radius:3px;font:500 15px/1 var(--mono)}
.set[aria-pressed="true"]{background:var(--ember);border-color:var(--ember);color:var(--ember-ink)}
.set-detail-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.set-detail-grid{width:100%;background:var(--surface2);border:1px solid var(--line);border-radius:4px;padding:10px;margin-top:4px}
.set-detail-row{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line)}
.set-detail-row label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.set-detail-row .fld{width:94px;min-height:40px;padding:6px;color:var(--fg);background:var(--surface)}
.set-detail-row select.fld{width:92px}
@media(max-width:380px){.set-detail-row{gap:4px}.set-detail-row .fld{width:74px}}
.wt{display:flex;align-items:center;gap:6px}
.wt input{width:78px;min-height:40px;padding:6px 8px;background:var(--bg);border:1px solid var(--line);border-radius:3px;font:500 15px/1 var(--mono);text-align:right}
.wt span{font:400 12px var(--mono);color:var(--muted)}
.progress{font:500 12px/1 var(--mono);color:var(--muted)}
.alt{display:flex;flex-direction:column;gap:6px}
.rk{display:inline-grid;place-items:center;min-width:32px;height:24px;padding:0 6px;border:1.5px solid var(--ice);color:var(--ice);font:700 15px/1 var(--display);border-radius:3px;vertical-align:middle}
.rk.hi{border-color:var(--ember);color:var(--ember)}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{border:1px solid var(--line);border-radius:3px;padding:10px;background:var(--bg);min-width:0}
.tile b{font:700 34px/1 var(--display);display:block;margin-top:6px}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}
.day{padding:8px 0;border:1px solid var(--line);border-radius:3px;font:500 12px var(--mono);color:var(--muted);background:transparent}
.day.on{border-color:var(--ember);color:var(--fg)}
.day.now{background:var(--surface2)}
button.day{min-height:44px;cursor:pointer}
button.day[aria-pressed="true"]{border-color:var(--ember);color:var(--fg);box-shadow:inset 0 0 0 1px var(--ember);font-weight:600}
.hist{display:flex;justify-content:space-between;gap:12px;padding-block:10px;border-top:1px solid var(--line)}
.hist:first-child{border-top:0}
.hbtn{background:none;border:0;padding:0;text-align:left;flex:1;min-width:0;font:500 15px/1.35 var(--body)}
.hbtn span{display:block}
.chart{width:100%;height:auto;display:block}
.chart .b{fill:var(--ember)}
.chart .t{fill:var(--muted);font:400 10px var(--mono)}
.chart .g{stroke:var(--line);stroke-width:1}
.chart .proj{stroke:var(--ice);stroke-width:2;stroke-dasharray:5 4;fill:none}
.chart .act{stroke:var(--ember);stroke-width:2;fill:none}
.chart .dot{fill:var(--ember)}
textarea{width:100%;min-height:90px;background:var(--bg);border:1px solid var(--line);border-radius:3px;padding:10px;font:400 14px/1.4 var(--body)}
textarea.mono{font:400 12px/1.4 var(--mono)}
textarea.short{min-height:60px}
input.fld{width:100%;min-height:46px;background:var(--bg);border:1px solid var(--line);border-radius:3px;padding:10px 12px;font-size:17px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fields .full{grid-column:1/-1}
.sync{font:400 12px var(--mono);color:var(--muted)}
.pill{display:inline-block;padding:3px 8px;border:1px solid var(--line);border-radius:2px;font:500 11px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pill.pr{color:var(--ember);border-color:var(--ember)}
.pill.ok{color:var(--good);border-color:var(--good)}
.badge{border:1px solid var(--line);border-radius:3px;padding:10px;min-width:0;background:var(--bg)}
.badge.off b{opacity:.6}
.badge b{display:block;font:700 17px/1.1 var(--display)}
.badge span{font-size:12px;color:var(--muted);display:block}
.avatar{width:100%;max-width:230px;height:auto;display:block;margin:0 auto}
.avatar .bb{fill:var(--surface2);stroke:var(--line);stroke-width:1.2}
.avatar .mu{fill:var(--surface);fill-opacity:.55;stroke:var(--line);stroke-width:1;cursor:pointer}
.avatar .mu.fr{stroke:var(--ice);stroke-width:2}
.avatar .mu.sel{stroke:var(--fg);stroke-width:2.2}
.safe *{animation:none!important;transition:none!important}
.emblem{width:96px;height:96px;flex:none;display:block}
.avw{position:relative;width:96px;height:96px;flex:none;border-radius:50%;overflow:hidden;background:var(--surface2);display:grid;place-items:center}
.avl{font-family:var(--display);font-size:46px;font-weight:700;line-height:1;color:var(--ember)}
.avimg{width:100%;height:100%;object-fit:cover;display:block}
.emblem .o{fill:none;stroke:var(--ice);stroke-width:1.6}
.emblem .i{fill:none;stroke:var(--ember);stroke-width:1.6}
.emblem .k{stroke:var(--muted);stroke-width:1}
.emblem .c{fill:var(--ember)}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;font:500 12px var(--mono);color:var(--muted)}
.cal{background:none;padding:0;cursor:default}button.cal{cursor:pointer}.cal.sel{box-shadow:0 0 0 2px var(--c3)}.daypanel{margin-top:12px;padding-top:10px;border-top:1px solid var(--glass-line)}.cal.pre{opacity:.35}.cal.q{background:linear-gradient(135deg,var(--ember),color-mix(in srgb,var(--ember) 50%,var(--c3)));border-color:var(--ember);color:#fff}.cal.s{background:color-mix(in srgb,var(--ice) 35%,transparent);border-color:var(--ice);color:var(--fg)}
.cal.pz{border-style:dashed;border-color:var(--ice);color:var(--fg)}.cal.miss{border-color:var(--ember);color:var(--ember)}.cal.plan{border-color:var(--fg);color:var(--fg)}.cal.tdy{outline:2px solid var(--fg);outline-offset:1px}
.lg{display:inline-block;width:10px;height:10px;border-radius:3px;border:1px solid var(--line);margin-right:5px;vertical-align:-1px}
.lg.q{background:var(--ember);border-color:var(--ember)}.lg.s{background:var(--ice);border-color:var(--ice)}.lg.pz{border-style:dashed;border-color:var(--ice)}.lg.miss{border-color:var(--ember)}.lg.plan{border-color:var(--fg)}
.foldbtn{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.foldbtn h3{margin:0}
.card.fold{padding-block:14px}
.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.photos button{padding:0;border:1px solid var(--line);border-radius:3px;background:var(--bg);aspect-ratio:3/4;overflow:hidden}
.photos img,.cmp img{width:100%;height:100%;object-fit:cover;display:block}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cmp figure{margin:0}
.cmp img{aspect-ratio:3/4;border-radius:3px}
.cmp figcaption{font:400 11px var(--mono);color:var(--muted);margin-top:4px}
.pview img{max-width:100%;max-height:68vh;border-radius:3px}

.hold{position:relative;overflow:hidden;width:100%;min-height:64px;border:2px solid var(--ember);background:transparent;border-radius:3px;font:700 22px/1 var(--display);letter-spacing:.06em;text-transform:uppercase;touch-action:none;user-select:none;-webkit-user-select:none}
.hold i{position:absolute;inset:0 auto 0 0;width:0;background:var(--ember);opacity:.35}
.hold span{position:relative}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:8;background:var(--surface);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom,0px)}
.tab{background:none;border:0;border-top:3px solid transparent;padding:12px 2px 10px;font:600 14px/1 var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);min-height:52px}
.tab[aria-current="page"]{color:var(--fg);border-top-color:var(--ember)}
.rest{position:fixed;left:16px;right:16px;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:7;max-width:528px;margin:0 auto;background:var(--fg);color:var(--bg);border-radius:4px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.rest b{font:500 22px/1 var(--mono)}
.rest button{background:transparent;border:1px solid currentColor;color:inherit;border-radius:3px;padding:6px 12px;min-height:36px}
.veil{position:fixed;inset:0;z-index:20;background:rgba(5,8,16,.78);display:grid;place-items:center;padding:24px}
.modal{background:var(--surface);border:2px solid var(--ember);border-radius:4px;padding:28px 22px;max-width:360px;width:100%;text-align:center;display:flex;flex-direction:column;gap:12px}
.modal .big{font:700 84px/0.9 var(--display);color:var(--ember)}
@media (prefers-reduced-motion:no-preference){
  .modal{animation:pop .35s ease-out}
  @keyframes pop{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}
}
@media (max-width:380px){.set{width:44px;height:44px}.card h2{font-size:24px}.tab{font-size:13px;letter-spacing:.03em}}
/* ===== glass layer: translucent surfaces over a lit mesh backdrop ===== */
:root{
  --glass:rgba(255,255,255,.55);--glass2:rgba(255,255,255,.38);--glass-line:rgba(255,255,255,.7);--glass-edge:rgba(18,24,41,.10);
  --glass-shadow:0 8px 32px rgba(40,56,110,.14);--blur:blur(18px) saturate(160%);
  --orb1:rgba(212,71,15,.28);--orb2:rgba(11,122,158,.30);--orb3:rgba(120,90,220,.20);
  --glow:rgba(212,71,15,.35);--c3:#7855dc;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --glass:rgba(24,31,56,.52);--glass2:rgba(34,44,78,.40);--glass-line:rgba(255,255,255,.14);--glass-edge:rgba(0,0,0,.35);
  --glass-shadow:0 10px 36px rgba(0,0,0,.45);--orb1:rgba(255,122,69,.30);--orb2:rgba(111,208,242,.24);--orb3:rgba(140,100,255,.26);--glow:rgba(255,122,69,.45);--c3:#8c64ff}}
:root[data-theme="dark"]{--glass:rgba(24,31,56,.52);--glass2:rgba(34,44,78,.40);--glass-line:rgba(255,255,255,.14);--glass-edge:rgba(0,0,0,.35);
  --glass-shadow:0 10px 36px rgba(0,0,0,.45);--orb1:rgba(255,122,69,.30);--orb2:rgba(111,208,242,.24);--orb3:rgba(140,100,255,.26);--glow:rgba(255,122,69,.45);--c3:#8c64ff}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(60vmax 60vmax at 8% 6%,var(--orb1),transparent 60%),radial-gradient(55vmax 55vmax at 100% 30%,var(--orb2),transparent 60%),radial-gradient(60vmax 60vmax at 20% 100%,var(--orb3),transparent 60%)}
.strip{background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-bottom:1px solid var(--glass-line);margin-inline:-16px;padding-inline:16px;box-shadow:0 4px 20px rgba(0,0,0,.12)}
.card,.notice,.modal{background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-line);border-radius:18px;
  box-shadow:var(--glass-shadow),inset 0 1px 0 rgba(255,255,255,.35),inset 0 0 0 1px var(--glass-edge)}
.card{position:relative;overflow:hidden}
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:46%;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.14),transparent);border-radius:18px 18px 0 0}
.card>*{position:relative}
.card.hot{border-color:var(--ember);box-shadow:var(--glass-shadow),0 0 28px -4px var(--glow),inset 0 1px 0 rgba(255,255,255,.35)}
.notice{border-color:var(--warn)}
.tile,.badge,.btn,.chip,.set,.day,textarea,input.fld,.wt input{background:var(--glass2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-color:var(--glass-line);border-radius:12px}
.btn,.chip,.set,.day{transition:transform .12s ease,box-shadow .2s ease,border-color .2s ease}
.btn:active,.chip:active,.set:active,.day:active{transform:scale(.95)}
.btn.primary{background:linear-gradient(135deg,color-mix(in srgb,var(--ember) 88%,#fff),var(--ember) 45%,color-mix(in srgb,var(--ember) 55%,var(--c3)));border-color:transparent;border-radius:14px;box-shadow:0 6px 22px -6px var(--glow),inset 0 1px 0 rgba(255,255,255,.4)}
.chip[aria-pressed="true"],button.day[aria-pressed="true"]{background:color-mix(in srgb,var(--ember) 16%,var(--glass2));box-shadow:0 0 14px -4px var(--glow),inset 0 0 0 1px var(--ember)}
.set[aria-pressed="true"]{background:linear-gradient(180deg,color-mix(in srgb,var(--ember) 80%,#fff),var(--ember));box-shadow:0 0 16px -2px var(--glow)}
.btn[aria-pressed="true"]{box-shadow:0 0 14px -4px var(--ice)}
.tabs{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom,0px));max-width:536px;margin:0 auto;border:1px solid var(--glass-line);border-radius:22px;overflow:hidden;
  background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--glass-shadow),inset 0 1px 0 rgba(255,255,255,.3);padding-bottom:0}
.tab[aria-current="page"]{border-top-color:var(--ember);background:linear-gradient(180deg,color-mix(in srgb,var(--ember) 18%,transparent),transparent)}
.rest{bottom:calc(76px + env(safe-area-inset-bottom,0px));background:var(--glass);color:var(--fg);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-line);border-radius:16px;box-shadow:var(--glass-shadow)}
.veil{background:rgba(5,8,20,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.modal{border:1px solid var(--ember);box-shadow:0 0 60px -10px var(--glow),var(--glass-shadow)}
.hold{border-radius:18px;background:var(--glass2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body{padding-block:0 170px}
/* gamified chrome: glowing XP bar, rank badge, streak flame */
.bar{height:10px;border-radius:99px;background:rgba(128,140,180,.22);box-shadow:inset 0 1px 3px rgba(0,0,0,.25)}
.bar>i{border-radius:99px;background:linear-gradient(90deg,var(--ember),var(--c3) 62%,var(--ice));box-shadow:0 0 12px var(--glow);position:relative;overflow:hidden}
.bar.ice>i{background:linear-gradient(90deg,var(--ice),var(--c3))}
.bar>i::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-100%)}
.rank{border-radius:12px;background:var(--glass2);box-shadow:0 0 16px -2px var(--ice),inset 0 1px 0 rgba(255,255,255,.35)}
.rk{border-radius:8px;background:var(--glass2)}
.rk.hi{box-shadow:0 0 12px -2px var(--ember)}
.pill{border-radius:99px;background:var(--glass2)}
.pill.pr{box-shadow:0 0 12px -3px var(--ember)}
.emblem{filter:drop-shadow(0 0 8px var(--glow))}
.avatar{filter:drop-shadow(0 6px 18px rgba(0,0,0,.25))}
.avatar .bb{fill:url(#bodyg);stroke:var(--glass-line)}
.avatar .mu{fill:var(--glass);fill-opacity:.35;stroke:var(--glass-line)}
.avatar .dt{fill:none;stroke:var(--fg);stroke-opacity:.22;stroke-width:.9;stroke-linecap:round;pointer-events:none}
.avatar .mf{mix-blend-mode:normal}
.avatar .mu.fr{filter:drop-shadow(0 0 4px var(--ice))}
@media (prefers-reduced-motion:no-preference){
  @keyframes shine{0%,55%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
  @keyframes flick{0%,100%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 12px var(--ember)}}
  @keyframes breathe{0%,100%{box-shadow:var(--glass-shadow),0 0 18px -4px var(--glow)}50%{box-shadow:var(--glass-shadow),0 0 34px -2px var(--glow)}}
  @keyframes breathe2{50%{box-shadow:0 0 18px 0 var(--ember)}}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .card,.notice,.modal,.tabs,.strip,.rest{background:var(--surface)}
}

/* colour pass: no white wash, dark neutral anatomy, tier colours do the talking */
:root{--mu0:#c3cbe3;--body0:#aab4d4;--glass:rgba(206,216,240,.50);--glass2:rgba(190,203,234,.42);--glass-line:rgba(255,255,255,.35);--blur:blur(18px) saturate(140%)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--mu0:#2b3556;--body0:#1b2340}}
:root[data-theme="dark"]{--mu0:#2b3556;--body0:#1b2340}
.card::before{background:linear-gradient(180deg,rgba(255,255,255,.05),transparent)}
.card,.notice,.modal,.tabs{box-shadow:var(--glass-shadow),inset 0 1px 0 rgba(255,255,255,.12),inset 0 0 0 1px var(--glass-edge)}
.avatar{filter:none;max-width:250px}
.avatar .bb{fill:var(--body0);stroke:rgba(0,0,0,.35);stroke-width:1}
.avatar .mu{fill:var(--mu0);fill-opacity:1;stroke:rgba(0,0,0,.4);stroke-width:.8}
.avatar .mu.fr{stroke:#fff;stroke-width:1.8;filter:none}
.avatar .mu.sel{stroke:var(--fg);stroke-width:2.2}
.avatar .mf{fill-opacity:.92;stroke:rgba(0,0,0,.35);stroke-width:.6}
.avatar .sh{stroke:none}
.avatar .bsh{stroke:none}
.avatar .bb,.avatar .mu{stroke-linejoin:round}
.avatar .dt{stroke:#000;stroke-opacity:.38;stroke-width:.9}
.avatar .bxs{fill:var(--body0);fill-opacity:.45;stroke:var(--glass-line);stroke-width:.7;stroke-linejoin:round}
.avatar .bxb{fill:var(--body0);stroke:rgba(0,0,0,.35);stroke-width:.7;stroke-linejoin:round}
.avatar .bxm{fill:var(--mu0);stroke:rgba(0,0,0,.5);stroke-opacity:var(--def,1);stroke-width:.8;stroke-linejoin:round;cursor:pointer}
.rrow{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:10px 0 0}.rr{background:none;border:0;padding:6px 0;display:flex;flex-direction:column;align-items:center;gap:6px;color:inherit;cursor:pointer;border-radius:12px;font:inherit}.rr[aria-pressed=true]{background:rgba(128,140,180,.16)}.rr .ringp{width:60px;height:60px}.rr .ringp b{width:46px;height:46px;font-size:14px}.avatar .bxc{fill:var(--body0);stroke:var(--body0);stroke-width:1.4;pointer-events:none}
.avatar .bxd{fill:none;stroke:#000;stroke-opacity:.28;stroke-width:.7;stroke-linecap:round;pointer-events:none}.avatar .bxz{fill:none;stroke:var(--fg);stroke-opacity:.6;stroke-width:.9;stroke-dasharray:3 2.5;pointer-events:none}
.avatar .bxg{fill-opacity:.94;stroke:none;pointer-events:none}
.avatar .bxf{stroke:none;pointer-events:none}
.avatar .bxl{fill:none;stroke:#fff;stroke-opacity:.14;stroke-width:.6;stroke-linecap:round;pointer-events:none}
.avatar .bxh{fill:none;stroke:#fff;stroke-width:1.1;stroke-linejoin:round;pointer-events:none;filter:drop-shadow(0 0 3px #fff);animation:bxp 3.4s ease-in-out infinite}
.avatar .bxo{fill:none;stroke:var(--fg);stroke-width:2;stroke-linejoin:round;pointer-events:none}
@keyframes bxp{0%,100%{stroke-opacity:.5}50%{stroke-opacity:1}}
@media (prefers-reduced-motion:reduce){.avatar .bxh{animation:none}}
.chip .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:baseline}
.legend{display:flex;justify-content:center;gap:10px;margin:2px 0 8px;font:500 11px var(--mono);color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.pals{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.pal{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--glass-line);border-radius:12px;background:var(--glass2);font-weight:600;text-align:left;min-height:46px}
.pal[aria-pressed="true"]{border-color:var(--ember);box-shadow:0 0 14px -4px var(--glow),inset 0 0 0 1px var(--ember)}
.pal .sw{width:26px;height:26px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 2px rgba(255,255,255,.25)}
.mv{width:104px;flex:none;border-radius:12px;background:var(--glass2);border:1px solid var(--glass-line)}
.mv .mv-g{stroke:var(--line);stroke-width:1.2}
.mv .mv-bo,.mv .mv-ao{fill:none;stroke:var(--surface);opacity:.95;stroke-width:8.6;stroke-linecap:round;stroke-linejoin:round}
.mv .mv-ho{display:none}
.mv .mv-b{fill:none;stroke:var(--muted);stroke-width:5.4;stroke-linecap:round;stroke-linejoin:round}
.mv .mv-a{fill:none;stroke:var(--ember);stroke-width:5.4;stroke-linecap:round;stroke-linejoin:round}
.mv .mv-h{fill:var(--muted);stroke:var(--surface);stroke-width:2;paint-order:stroke}
.mv .mv-b2{fill:none;stroke:var(--muted);opacity:.55;stroke-width:5.4;stroke-linecap:round;stroke-linejoin:round}
.mv .mv-a2{fill:none;stroke:var(--ember);opacity:.55;stroke-width:5.4;stroke-linecap:round;stroke-linejoin:round}
.mv .mv-p{fill:var(--glass-line);stroke:var(--line);stroke-width:1.4;stroke-linecap:round}
.mv .mv-i{fill:none;stroke:var(--ice);stroke-width:2.4}
.mv .mv-ih{fill:var(--ice);stroke:none}
.mv .mv-ln{fill:none;stroke:var(--ice);stroke-width:1.2;opacity:.8}
.cuewrap{display:flex;gap:12px;align-items:center}
/* navigation lives in the sticky header so it is always on screen */
.strip .tabs{position:static;left:auto;right:auto;bottom:auto;max-width:none;margin:10px 0 0;border-radius:14px;box-shadow:none;background:var(--glass2);-webkit-backdrop-filter:none;backdrop-filter:none;z-index:auto}
.strip .tab{min-height:44px;padding:10px 2px}
.strip .rest{position:static;left:auto;right:auto;bottom:auto;max-width:none;margin:8px 0 0;z-index:auto}
body{padding-block:0 130px}
body.navtop{padding-block:0 48px}
#app>.tabs{background:color-mix(in srgb,var(--surface) 86%,transparent)}

/* ===== v1.2: calmer layout, one hero per screen ===== */
.hero{padding:20px 18px}
.hero h2{font-size:36px;line-height:1;margin-top:8px}
.hero::after{content:"";position:absolute;right:-50px;top:-50px;width:190px;height:190px;border-radius:50%;background:radial-gradient(closest-side,var(--glow),transparent);opacity:.5;pointer-events:none}
.herometa{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font:500 13px var(--mono);color:var(--muted)}
.exnames{margin:12px 0 18px;color:var(--muted);font-size:14.5px;line-height:1.55}
.btn.primary.big{min-height:60px;font-size:25px;border-radius:18px}
.aura{background:none;border:0;padding:6px 0;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.stat3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.st3{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px 12px;border:1px solid var(--glass-line);border-radius:18px;background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--glass-shadow)}
.st3 .label{font-size:10px;letter-spacing:.1em;text-align:center}
.ringp{--p:0;--c:var(--ember);width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--c) calc(var(--p)*1%),rgba(128,140,180,.25) 0);transition:background .5s}
.st3.ice .ringp{--c:var(--ice)}.st3.good .ringp{--c:var(--good)}
.ringp b{width:50px;height:50px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font:700 15px/1 var(--display);letter-spacing:.02em}
.rowf{padding:0}
.rowf .foldbtn,.card .foldbtn{padding:2px 0}
.rowf>.foldbtn{padding:15px 16px}
.rowf .rbody{padding:0 16px 16px}
.rt{font:700 19px/1.1 var(--display);letter-spacing:.01em}
.rs{font:500 12px var(--mono);color:var(--muted);display:inline-flex;align-items:center}
.chv{display:inline-block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:-3px 2px 0 10px;transition:transform .2s}
.chv.up{transform:rotate(-135deg);margin-top:3px}
.navlist{display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.navrow{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:16px;background:none;border:0;border-top:1px solid var(--glass-line);text-align:left;color:inherit}
.navrow:first-child{border-top:0}
.navrow b{font:700 19px/1.1 var(--display);display:block}
.navrow small{color:var(--muted);font-size:13px;display:block;margin-top:2px}
.chev{font-size:26px;line-height:1;color:var(--muted)}
.navrow:active{background:var(--glass2)}
.subhead{display:flex;align-items:center;gap:12px}
.seg{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:4px;border-radius:16px;background:var(--glass2);border:1px solid var(--glass-line)}
.seg button{border:0;background:none;padding:10px 1px;border-radius:12px;font:600 12px/1 var(--display);letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.seg button[aria-selected="true"]{background:var(--glass);color:var(--fg);box-shadow:0 2px 10px rgba(0,0,0,.18),inset 0 0 0 1px var(--glass-line)}
.bignum{display:flex;align-items:baseline;gap:10px;margin:10px 0 12px;flex-wrap:wrap}
.bignum b{font:700 68px/1 var(--display);color:var(--ember);letter-spacing:.01em}
.bignum span{color:var(--muted);font-size:15px}
.macs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.mac{display:flex;flex-direction:column;gap:4px;min-width:0}
.mac .mono{font-size:15px}.mac .bar{margin-top:2px;height:7px}
.abt p{margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.5}
.abt b{color:var(--fg)}
.card h3{font-size:21px}
.muted.hint{font-size:13px}
@media (prefers-reduced-motion:no-preference){
  #app.anim .stack>*{animation:rise .36s backwards cubic-bezier(.2,.7,.2,1)}
  #app.anim .stack>*:nth-child(2){animation-delay:.04s}#app.anim .stack>*:nth-child(3){animation-delay:.08s}#app.anim .stack>*:nth-child(4){animation-delay:.12s}#app.anim .stack>*:nth-child(n+5){animation-delay:.16s}
  @keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .set.pop{animation:setpop .45s cubic-bezier(.2,1.4,.4,1)}
  @keyframes setpop{0%{transform:scale(.8)}50%{transform:scale(1.22);box-shadow:0 0 0 8px var(--glow)}100%{transform:scale(1)}}
  .modal .big{animation:bigpop .7s cubic-bezier(.2,1.3,.4,1)}
  @keyframes bigpop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
  .modal::before{content:"";position:absolute;inset:-2px;border-radius:inherit;pointer-events:none;background:conic-gradient(from 0deg,transparent,var(--glow),transparent 40%);opacity:.0;animation:sweep 1.4s ease-out}
  @keyframes sweep{0%{opacity:.9;transform:rotate(0)}100%{opacity:0;transform:rotate(200deg)}}
  .ringp b,.bignum b{animation:none}
}
@media (max-width:380px){.hero h2{font-size:32px}.bignum b{font-size:58px}}

/* ===== rank badges: tiered, metallic, game-style ===== */
.rkbtn{background:none;border:0;padding:0;flex:none;display:block}
.rkb{--t1:#cbd5e1;--t2:#64748b;--t3:#334155;position:relative;display:inline-grid;place-items:center;width:46px;height:52px;flex:none;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--t2) 70%,transparent));isolation:isolate}
.rkb i{position:absolute;inset:0;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.rkb .o{background:linear-gradient(145deg,var(--t1),var(--t2) 48%,var(--t3))}
.rkb .n{inset:3px;background:radial-gradient(120% 100% at 50% 0,color-mix(in srgb,var(--t2) 38%,#0b0f1d),#070a14 78%)}
.rkb b{position:relative;font:900 22px/1 Orbitron,var(--display);font-style:italic;letter-spacing:.02em;padding-right:2px;background:linear-gradient(180deg,#fff 5%,var(--t1) 45%,var(--t2) 95%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 1px 0 rgba(0,0,0,.6))}
.rkb.t-ss b{font-size:17px}.rkb.t-sss b{font-size:13px;letter-spacing:0}
.rkb.t-d{--t1:#bbf7d0;--t2:#22c55e;--t3:#14532d}
.rkb.t-c{--t1:#bae6fd;--t2:#0ea5e9;--t3:#1e3a8a}
.rkb.t-b{--t1:#ddd6fe;--t2:#8b5cf6;--t3:#4c1d95}
.rkb.t-a{--t1:#fef08a;--t2:#f59e0b;--t3:#92400e}
.rkb.t-s{--t1:#fecdd3;--t2:#ef4444;--t3:#7f1d1d}
.rkb.t-ss{--t1:#f5d0fe;--t2:#d946ef;--t3:#5b21b6}
.rkb.t-sss .o{background:conic-gradient(from 0deg,#ff5d8f,#ffd166,#7dffb3,#4cc9f0,#b388ff,#ff5d8f)}
.rkb.t-sss{--t1:#fff;--t2:#ffd166;--t3:#b388ff;filter:drop-shadow(0 0 10px rgba(255,209,102,.7))}
.rkb.sm{width:30px;height:34px}.rkb.sm b{font-size:14px}.rkb.sm.t-ss b{font-size:11px}.rkb.sm.t-sss b{font-size:8.5px}
.rkb.lg{width:104px;height:116px}.rkb.lg b{font-size:48px}.rkb.lg.t-ss b{font-size:38px}.rkb.lg.t-sss b{font-size:29px}
.modal .rkb,.rkb{border:0;background:none;padding:0;box-shadow:none}.rkline{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px}
button.flame{background:none;border:0;padding:6px 0;font:600 13px/1 var(--mono)}
@media (prefers-reduced-motion:no-preference){
 @keyframes rkshine{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
 @keyframes rkholo{to{filter:hue-rotate(360deg)}}
 @keyframes rkpulse{50%{filter:drop-shadow(0 0 14px color-mix(in srgb,var(--t2) 90%,transparent))}}
}

/* ===== v1.2.x touch targets: 44px hit areas without changing the look ===== */
.aura,button.flame{padding:12px 6px;margin:-12px -6px;min-height:44px;display:inline-flex;align-items:center}
.foldbtn{min-height:44px;display:flex;align-items:center;justify-content:space-between;width:100%}
.rowf>.foldbtn{min-height:52px}
button[data-act=calm]{min-width:44px;min-height:44px}
select.fld{min-height:44px}
.rkb b{font-family:Orbitron,"Arial Black",Impact,var(--display)}
.btn.sm,.chip.sm{min-height:44px}.seg button{min-height:44px}
button[data-act=delrw],button[data-act=remwater]{min-width:44px}
.pal.locked{opacity:.5}.pal.locked .sw{filter:grayscale(.7)}
.card.warnc{border-color:#f97316}
.card.loot{border-color:var(--ember)}
.toolbody{background:var(--glass2);border:1px solid var(--glass-line);border-radius:12px;padding:10px 12px;margin:4px 0 2px}
.gm{position:fixed;inset:0;z-index:30;background:var(--bg);display:flex;flex-direction:column;padding:max(12px,env(safe-area-inset-top)) 0 max(14px,env(safe-area-inset-bottom))}
.gmtop{display:flex;justify-content:space-between;align-items:center;padding:6px 16px 10px;gap:8px}
.gmmid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:8px 20px;min-height:0;overflow:hidden}
.gmfig{max-height:34vh;display:flex;justify-content:center;overflow:hidden}
.gmclock{font-size:84px;font-weight:600;line-height:1;color:var(--ember)}.gmclock small{font-size:22px;color:var(--muted)}
.gmbot{padding:0 16px}
.hc{fill:var(--glass-line)}.hc.h1{fill:var(--ember);fill-opacity:.35}.hc.h2{fill:var(--ember);fill-opacity:.6}.hc.h3{fill:var(--ember);fill-opacity:.82}.hc.h4{fill:var(--ember)}
.cal{aspect-ratio:auto;min-height:44px}

.rpt{position:fixed;inset:0;z-index:90;background:#fff;color:#111;overflow:auto}
.rptbar{position:sticky;top:0;display:flex;gap:8px;justify-content:space-between;padding:10px 16px;background:#eef1f7;border-bottom:1px solid #ccd}
.rptpage{max-width:680px;margin:0 auto;padding:20px 16px 40px;font:15px/1.5 system-ui,sans-serif;color:#111}
.rptpage h1{font-size:24px;margin:0}.rptpage h2{font-size:15px;text-transform:uppercase;letter-spacing:.06em;margin:22px 0 6px;border-bottom:1px solid #bbb;padding-bottom:4px;color:#333}
.rsub,.rfoot{color:#555;font-size:13px;margin:4px 0}.rr{display:flex;justify-content:space-between;gap:12px;padding:3px 0;border-bottom:1px dotted #ddd}.rr span{min-width:0;overflow-wrap:anywhere}.rr b{white-space:nowrap}.rh{color:#555;font-size:13px}
.rchart{max-width:420px;margin:10px 0;--ember:#c1410e;--ice:#0a7395;--muted:#444;--line:#bbb;--fg:#111}
@media print{body>*:not(#app){display:none!important}#app>*:not(.rpt){display:none!important}.rpt{position:static;overflow:visible}.rptbar{display:none}.rptpage{max-width:none;padding:0}}
.pfigs{display:flex;gap:6px;margin-top:10px;overflow:hidden}.pfig{flex:1;min-width:0;background:var(--glass2,transparent);border-radius:10px;padding:4px;display:flex;align-items:flex-end;justify-content:center}.pfig .mv{height:46px!important;width:auto;max-width:100%}

.seg.progress-seg{display:flex;overflow-x:auto;scrollbar-width:thin;overscroll-behavior-x:contain}
.seg.progress-seg button{flex:1 0 76px;white-space:nowrap}
.assess-test{border-top:1px solid var(--line);padding:14px 0}
.assess-test-input{display:flex;gap:8px;align-items:center;margin-top:8px}
.assess-test-input input.fld{max-width:120px;min-width:0;flex:1 0 95px}
.assess-test-input select.fld{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:9px 6px;min-height:44px;flex:2;max-width:100%;min-width:0;font-size:13px}
@media(max-width:350px){.assess-test-input{flex-wrap:wrap}.assess-test-input input.fld{max-width:100%}}


/* v2.2 integration export panel: small, readable and explicitly optional. */
.integration-export{margin-top:12px;border-top:1px solid var(--line);padding:12px 0 4px}
.integration-export h4{margin:0;font-size:15px}
.integration-export .btn{min-height:44px;max-width:100%;white-space:normal;text-align:center}
.integration-export #lifemsg{margin-top:8px}

/* v2.3: in-app, local-only readiness report */
.quality-panel{border:1px solid var(--line,#354056);border-radius:12px;padding:12px;margin:10px 0 12px}
.quality-panel h4{font-size:15px;line-height:1.3}
.quality-panel .row{align-items:center;gap:8px;flex-wrap:wrap}
.quality-results{display:grid;gap:7px;margin-top:6px}
.quality-row{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.4;color:var(--fg,#e9edf5)}
.quality-mark{display:inline-grid;place-items:center;border-radius:100%;width:18px;height:18px;min-width:18px;background:var(--surface2,#252b40);font-size:12px}
.quality-pass{color:#67d1a4}.quality-warn{color:#ffc46b}.quality-info{color:var(--muted,#9da8be)}
