:root{--bg:#fbf6ee;--card:#fffdf9;--ink:#2a2233;--mute:#6f6679;--line:#e6dccb;--accent:#b4501c;--accent2:#5b2a86;--gold:#c8962e;--ok:#2e7d4f;--bad:#b3261e;--chart:#fffaf0}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#17121f;--card:#211a2e;--ink:#f1eaf7;--mute:#a89cb8;--line:#3a2f4d;--accent:#f0955a;--accent2:#b99aee;--gold:#e5b94e;--ok:#6fcf97;--bad:#ff8a80;--chart:#1b1527;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#17121f;--card:#211a2e;--ink:#f1eaf7;--mute:#a89cb8;--line:#3a2f4d;--accent:#f0955a;--accent2:#b99aee;--gold:#e5b94e;--ok:#6fcf97;--bad:#ff8a80;--chart:#1b1527;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;min-width:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.top{background:linear-gradient(135deg,#3b1a5e,#8a3a14);color:#fff;padding:18px max(16px,env(safe-area-inset-right,0px)) 18px max(16px,env(safe-area-inset-left,0px))}
.brand{max-width:1100px;margin:auto;display:flex;gap:14px;align-items:center}
.om{font-size:40px;color:#ffd98a}
h1{margin:0;font-size:22px}.brand p{margin:0;opacity:.8;font-size:14px}
main{max-width:1100px;margin:auto;padding:16px max(16px,env(safe-area-inset-right,0px)) 16px max(16px,env(safe-area-inset-left,0px));display:grid;gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
h2{margin:0 0 10px;font-size:18px}
label{display:block;font-size:13px;color:var(--mute);margin-bottom:10px}
input,select{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit}
input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row3{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px}
.hint{font-size:12.5px;color:var(--mute);margin:6px 0}
.primary{width:100%;padding:12px;border:0;border-radius:10px;background:var(--accent);color:#fff;font:600 16px inherit;cursor:pointer}
.primary:hover{filter:brightness(1.08)}
.ghost{border:1px solid var(--line);background:transparent;color:var(--ink);padding:7px 12px;border-radius:8px;cursor:pointer;margin-left:auto}
.error{color:var(--bad);font-weight:600}
.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.summary h2{grid-column:1/-1;margin:0}
.kv small{display:block;color:var(--mute);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.kv b{font-size:17px;color:var(--accent2)}
.tabs{display:flex;gap:6px;overflow-x:auto;margin:12px 0 4px;border-bottom:1px solid var(--line)}
.tabs button{border:0;background:transparent;color:var(--mute);padding:10px 14px;font:600 14px inherit;cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}
.tabs button.on{color:var(--accent);border-color:var(--accent)}
.toolbar{display:flex;gap:8px;align-items:center;margin:10px 0;flex-wrap:wrap}
.seg input{display:none}.seg span{padding:6px 12px;border:1px solid var(--line);border-radius:20px;cursor:pointer;font-size:14px;color:var(--ink)}
.seg input:checked+span{background:var(--accent2);color:#fff;border-color:var(--accent2)}
.seg{margin:0}
.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
figure{margin:0}figcaption{font-weight:600;margin-bottom:8px;text-align:center}
svg.chart{width:100%;height:auto;max-width:440px;display:block;margin:auto}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--mute)}
.tag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;background:var(--line)}
.tag.good{background:color-mix(in srgb,var(--ok) 22%,transparent);color:var(--ok)}
.tag.bad{background:color-mix(in srgb,var(--bad) 22%,transparent);color:var(--bad)}
.dasha-row{border-bottom:1px solid var(--line)}
.dasha-row summary{padding:10px 4px;cursor:pointer;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.dasha-row.now summary{font-weight:700;color:var(--accent)}
.dasha-row summary span.d{color:var(--mute);font-size:13px;margin-left:auto}
.antars{padding:0 0 10px 18px}.antars div{display:flex;justify-content:space-between;padding:3px 0;font-size:14px}
.antars .now{color:var(--accent);font-weight:700}
.yoga{padding:10px 0;border-bottom:1px solid var(--line)}.yoga:last-child{border:0}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
footer{max-width:1100px;margin:auto;padding:8px max(16px,env(safe-area-inset-right,0px)) 32px max(16px,env(safe-area-inset-left,0px));color:var(--mute);font-size:12.5px}
@media(max-width:560px){.row3{grid-template-columns:1fr 1fr}.row3 label:last-child{grid-column:1/-1}}
@media print{.top,.form-card,.tabs,.toolbar,footer,.hint{display:none}.tab{display:block!important}body{background:#fff;color:#000}}

.vsel{font:600 15px inherit;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);max-width:100%}
td.l{background:color-mix(in srgb,var(--gold) 16%,transparent);font-weight:600}

.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.gcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;cursor:zoom-in;text-align:center}
.gcard:hover{border-color:var(--accent)}
.gcard b{display:block;font-size:14px}.gcard small{display:block;color:var(--mute);font-size:12px;min-height:16px;margin-bottom:4px}
dialog{border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);width:min(560px,94vw);padding:16px}
dialog::backdrop{background:rgba(0,0,0,.55)}
dialog h3{margin:8px 0;text-align:center}
@media print{.gallery{grid-template-columns:repeat(3,1fr)}dialog{display:none}}
main>*,.row2>*,.row3>*,.charts>*,.summary>*,.grid2>*{min-width:0}
main{grid-template-columns:minmax(0,1fr)}

.tag.mid{background:color-mix(in srgb,var(--gold) 28%,transparent);color:var(--ink)}
.pnow{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.score{font-size:40px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.score.good{color:var(--ok)}.score.mid{color:var(--gold)}.score.bad{color:var(--bad)}
.themes{margin:6px 0 0;padding-left:18px;color:var(--ink);font-size:14px}
.pchart{width:100%;height:auto;display:block}
.pchart text{fill:var(--mute);font:11px system-ui,sans-serif}
.pchart .bg{fill:var(--ok)}.pchart .bm{fill:var(--gold)}.pchart .bb{fill:var(--bad)}
.pchart .sg{fill:color-mix(in srgb,var(--ok) 26%,var(--card))}.pchart .sm{fill:color-mix(in srgb,var(--gold) 30%,var(--card))}.pchart .sb{fill:color-mix(in srgb,var(--bad) 26%,var(--card))}
.pchart .seglab{fill:var(--ink);font-weight:600}
.pchart .now{stroke:var(--accent2);stroke-width:2;stroke-dasharray:4 3}.pchart .nowlab{fill:var(--accent2);font-weight:700}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--mute);margin-top:6px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}
.ptext{font-size:14.5px;margin:4px 0 8px;max-width:75ch}
.antars .row{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:6px 0;border-bottom:1px dashed var(--line)}
.antars .row small{color:var(--mute);grid-column:1/-1;font-size:12.5px}
.mini{display:flex;gap:3px;align-items:flex-end;height:44px;margin-top:8px}
.mini span{flex:1;border-radius:2px 2px 0 0;min-width:0}
.mini .good{background:var(--ok)}.mini .mid{background:var(--gold)}.mini .bad{background:var(--bad)}
.minilab{display:flex;gap:3px;font-size:10px;color:var(--mute)}.minilab span{flex:1;text-align:center;min-width:0}
details.dasha-row .ptext,details.dasha-row .meta{padding:0 4px}
.meta{font-size:13px;color:var(--mute)}

:root{--c1:#b4501c;--c2:#5b2a86;--c3:#2e7d4f;--c4:#c8962e;--c5:#2a6f97;--c6:#a23b72}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--c1:#f0955a;--c2:#b99aee;--c3:#6fcf97;--c4:#e5b94e;--c5:#6bb6e0;--c6:#e58bb8}}
:root[data-theme="dark"]{--c1:#f0955a;--c2:#b99aee;--c3:#6fcf97;--c4:#e5b94e;--c5:#6bb6e0;--c6:#e58bb8}
.hb{display:grid;grid-template-columns:78px minmax(0,1fr) 96px;gap:4px 10px;align-items:center;margin:9px 0}
.hb .nm{font-weight:600;font-size:14px}
.hb .tr{position:relative;height:24px;background:color-mix(in srgb,var(--line) 55%,transparent);border-radius:5px;overflow:hidden}
.hb .tr i{position:absolute;top:0;bottom:0;display:block}
.hb .mk{position:absolute;top:-3px;bottom:-3px;width:0;border-left:2px dashed var(--ink);z-index:2}
.hb .neg{background:repeating-linear-gradient(45deg,var(--bad),var(--bad) 3px,transparent 3px,transparent 6px);opacity:.8;z-index:1}
.hb .val{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;font-size:14px}
.hb .sub{grid-column:2/4;font-size:12px;color:var(--mute);margin-top:-2px}
.hb .fill{border-radius:0 5px 5px 0}
.fgood{background:var(--ok)}.fmid{background:var(--gold)}.fbad{background:var(--bad)}
.key{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--mute);margin:8px 0}
.key i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.heat td{text-align:center;font-variant-numeric:tabular-nums}
.heat td.h{text-align:left}
.avbtn{margin:0}

.placebox{position:relative;margin-bottom:10px}
.placebox>label{display:block;font-size:13px;color:var(--mute)}
#placeList{position:absolute;z-index:20;left:0;right:0;top:64px;margin:0;padding:4px;list-style:none;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);max-height:280px;overflow:auto}
#placeList li{padding:8px 10px;border-radius:7px;cursor:pointer;font-size:14px;display:flex;justify-content:space-between;gap:10px}
#placeList li small{color:var(--mute);white-space:nowrap}
#placeList li[aria-selected="true"],#placeList li:hover{background:color-mix(in srgb,var(--accent2) 16%,transparent)}
.rcard{border-bottom:1px solid var(--line);padding:6px 0}
.rcard summary{cursor:pointer;display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:6px 0;font-weight:600}
.rcard dl{margin:4px 0 8px;display:grid;grid-template-columns:110px minmax(0,1fr);gap:4px 12px;font-size:14px}
.rcard dt{color:var(--mute);font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;padding-top:2px}
.rcard dd{margin:0;max-width:75ch}
.rtext{font-size:14.5px;margin:6px 0;max-width:80ch}
@media(max-width:560px){.rcard dl{grid-template-columns:1fr}.rcard dt{padding:0}}

/* Reports tab */
.rsw{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 12px}
.rsw button,.pnav button{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:8px 14px;border-radius:20px;font:600 14px inherit;cursor:pointer}
.rsw button.on,.pnav button.on{background:var(--accent2);color:#fff;border-color:var(--accent2)}
.pnav{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 8px}.pnav button{padding:5px 11px;font-size:13px;font-weight:500}
.pctl{display:flex;gap:8px;margin:0 0 6px}.pctl button{padding:4px 10px;font-size:13px}
details.pt{border:1px solid var(--line);border-radius:10px;margin:8px 0;background:var(--card)}
details.pt>summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;font-weight:600;list-style:none}
details.pt>summary::-webkit-details-marker{display:none}
details.pt .pn{flex:none;width:26px;height:26px;border-radius:50%;background:var(--accent2);color:#fff;display:grid;place-items:center;font-size:13px}
details.pt .ptt{flex:1;min-width:0}
.pbody{padding:0 14px 4px;max-width:100%}.pbody p{max-width:80ch}
.pfoot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 14px 14px}
.repchart{max-width:380px;margin:0 auto}
.loshu{display:grid;grid-template-columns:repeat(3,72px);gap:4px;margin:6px 0 12px}
.loshu .ls{height:72px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;font-size:22px;font-weight:700;color:var(--mute);letter-spacing:.06em}
.loshu .ls.has{background:color-mix(in srgb,var(--accent2) 16%,transparent);color:var(--accent2)}
@media(max-width:560px){.pnav button{font-size:12px}.loshu{grid-template-columns:repeat(3,64px)}.loshu .ls{height:64px}}

/* Sea-blue two-row navigation */
:root{--sea-d:#08485f;--sea-m:#0e86a8;--sea-l:#e6f6fb;--sea-b:#bfe3ee;--sea-t:#0a6a8a}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--sea-l:#10303b;--sea-b:#1d5568;--sea-t:#9fdcef}}
:root[data-theme="dark"]{--sea-l:#10303b;--sea-b:#1d5568;--sea-t:#9fdcef}
#tabs,#repSwitch{display:none!important}
.sea1,.sea2{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.sea1::-webkit-scrollbar,.sea2::-webkit-scrollbar{display:none}
.sea1{background:linear-gradient(180deg,#0a5c78,var(--sea-d));padding:8px 8px 0;border-radius:14px 14px 0 0;margin-top:12px}
.sea1 button{border:0;background:transparent;color:#bfe6f2;padding:11px 18px;font:700 15px inherit;border-radius:10px 10px 0 0;cursor:pointer;white-space:nowrap}
.sea1 button.on{background:var(--sea-l);color:#06506b}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .sea1 button.on{color:#9fdcef}}
:root[data-theme="dark"] .sea1 button.on{color:#9fdcef}
.sea1 button:not(.on):hover{background:rgba(255,255,255,.12);color:#fff}
.sea2{background:var(--sea-l);padding:10px;border-radius:0 0 14px 14px;border:1px solid var(--sea-b);border-top:0;margin-bottom:12px;flex-wrap:wrap}
.sea2 button{border:1px solid #7cc3d8;background:var(--card);color:var(--sea-t);padding:7px 14px;border-radius:999px;font:600 14px inherit;cursor:pointer;white-space:nowrap}
.sea2 button.on{background:var(--sea-m);border-color:var(--sea-m);color:#fff;box-shadow:0 2px 6px rgba(14,134,168,.35)}
.sea1 button:focus-visible,.sea2 button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.sea2 button:focus-visible{outline-color:var(--sea-m)}
@media(max-width:560px){.sea1 button{padding:10px 12px;font-size:14px}.sea2{flex-wrap:nowrap}}
@media print{.sea1,.sea2{display:none}}
.pbody h4{margin:14px 0 4px;font-size:15px;color:var(--sea-t)}
.pbody .rcard{margin:6px 0}
.pfoot .primary{width:auto;padding:10px 20px;font-size:15px}
.pfoot .ghost{margin-left:0;padding:9px 14px}

.logo{width:56px;height:56px;border-radius:14px;flex:none;box-shadow:0 2px 10px rgba(0,0,0,.35)}

/* partner place picker + paywall */
.combo{position:relative}
#pPlaceList{position:absolute;z-index:20;left:0;right:0;top:64px;margin:0;padding:4px;list-style:none;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);max-height:280px;overflow:auto}
#pPlaceList li{padding:8px 10px;border-radius:7px;cursor:pointer;font-size:14px;display:flex;justify-content:space-between;gap:10px}
#pPlaceList li small{color:var(--mute);white-space:nowrap}
#pPlaceList li[aria-selected="true"],#pPlaceList li:hover{background:color-mix(in srgb,var(--accent2) 16%,transparent)}

footer .contact{margin-top:10px}footer .contact a{white-space:nowrap}
.repload{padding:30px;text-align:center;color:var(--mute)}
.kpgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin:12px 0}
.kpcard{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--card)}
.kpcard.good{border-left:5px solid #2e9e6b}.kpcard.mid{border-left:5px solid #d9a62b}.kpcard.low{border-left:5px solid #b4545c}
.kpcard .tag{margin-left:8px}
