:root{--dir:rtl;--dirx:1;--start-side:right;--end-side:left;--grad-start:to left}
:root[dir=ltr]{--dir:ltr;--dirx:-1;--start-side:left;--end-side:right;--grad-start:to right}
.langbtn{font-weight:700;min-width:44px}
@font-face{font-family:"Handicrafts";src:url(/vendor/fonts/Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Handicrafts";src:url(/vendor/fonts/Medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Handicrafts";src:url(/vendor/fonts/SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Handicrafts";src:url(/vendor/fonts/Bold.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Handicrafts";src:url(/vendor/fonts/Black.woff2) format("woff2");font-weight:800 900;font-display:swap}
/* Layout: three tabs (map | reports bento | recommendations); details sheet docks beside or below */
:root{
  --bg:#F7F8FC; --surface:#FFFFFF; --surface-2:#EFF1F8; --ink:#1E2140; --muted:#686B8C; --line:#E6E8F2;
  --brand:#5258CC; --c-cyan:#7CC4F0; --c-violet:#7E84E3; --c-indigo:#5258CC; --c-lav:#C5C8F5; --c-blue:#5A9BE0; --c-teal:#4DB6A4; --c-spark:#FF8F7E;
  --s-idea:#9298B4; --s-dev:#E39A27; --s-beta:#3D8BFF; --s-live:#1FA874; --s-paused:#DE5246;
  --halo:#F7F8FC; --scrim:rgba(18,20,47,.3);
  --sh-1:0 1px 2px rgba(40,30,140,.06),0 2px 8px rgba(40,30,140,.05);
  --sh-2:0 1px 2px rgba(40,30,140,.06),0 8px 24px -6px rgba(40,30,140,.14),0 2px 6px rgba(40,30,140,.05);
  --sh-3:0 2px 6px rgba(40,30,140,.08),0 24px 60px -12px rgba(40,30,140,.30);
  --ring:0 0 0 1px rgba(255,255,255,.6) inset;
  --f-display:"Handicrafts",Tahoma,system-ui,sans-serif;
  --f-body:"Handicrafts",Tahoma,system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#13152B; --surface:#1B1E37; --surface-2:#242747; --ink:#EEF0FA; --muted:#A3A6C4; --line:#30345A;
  --brand:#9095EE; --c-cyan:#95D2F4; --c-violet:#A5A9F2; --c-indigo:#9095EE; --c-lav:#CDCFF8; --c-blue:#86B6EC; --c-teal:#73CDBD; --c-spark:#FFA393;
  --s-idea:#8C92B0; --s-dev:#F0AE45; --s-beta:#62A2FF; --s-live:#3CC48E; --s-paused:#F06C60;
  --halo:#13152B; --scrim:rgba(4,4,14,.5);
  --sh-1:0 1px 2px rgba(0,0,0,.3);
  --sh-2:0 1px 2px rgba(0,0,0,.35),0 10px 28px -8px rgba(0,0,0,.6);
  --sh-3:0 2px 8px rgba(0,0,0,.4),0 28px 70px -10px rgba(0,0,0,.75);
  --ring:0 0 0 1px rgba(255,255,255,.04) inset; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#13152B; --surface:#1B1E37; --surface-2:#242747; --ink:#EEF0FA; --muted:#A3A6C4; --line:#30345A;
  --brand:#9095EE; --c-cyan:#95D2F4; --c-violet:#A5A9F2; --c-indigo:#9095EE; --c-lav:#CDCFF8; --c-blue:#86B6EC; --c-teal:#73CDBD; --c-spark:#FFA393;
  --s-idea:#8C92B0; --s-dev:#F0AE45; --s-beta:#62A2FF; --s-live:#3CC48E; --s-paused:#F06C60;
  --halo:#13152B; --scrim:rgba(4,4,14,.5);
  --sh-1:0 1px 2px rgba(0,0,0,.3);
  --sh-2:0 1px 2px rgba(0,0,0,.35),0 10px 28px -8px rgba(0,0,0,.6);
  --sh-3:0 2px 8px rgba(0,0,0,.4),0 28px 70px -10px rgba(0,0,0,.75);
  --ring:0 0 0 1px rgba(255,255,255,.04) inset; color-scheme:dark}

html,body{height:auto}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.6}
*{box-sizing:border-box}
[hidden]{display:none!important}
.wrap{padding-inline:16px;padding-block:14px 28px;max-width:1760px;margin-inline:auto;display:flex;flex-direction:column;gap:14px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--c-blue);outline-offset:2px}
input[type=checkbox]{accent-color:var(--brand);width:16px;height:16px;margin:0}

.fs-native{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}
.f:has(>.fs-btn){position:relative}
.fs-btn{width:100%;text-align:start;padding:10px 12px;padding-inline-end:34px;border:1px solid var(--line);border-radius:10px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat left 12px center;color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[dir=ltr] .fs-btn{background-position:right 12px center}
.fs-btn:focus-visible,.fs-btn[aria-expanded=true]{outline:none;border-color:var(--c-violet);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-violet) 18%,transparent)}
.fs-pop{position:absolute;inset-inline:0;top:calc(100% + 6px);z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.16);padding:6px;display:flex;flex-direction:column;gap:6px}
.fs-pop[hidden]{display:none}
.fs-q{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink);font:inherit}
.fs-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:1px;padding-inline-end:2px}
.fs-opt{text-align:start;border:0;background:none;color:var(--ink);font:inherit;padding:8px 10px;border-radius:8px;cursor:pointer;flex:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fs-opt[hidden]{display:none}
.fs-opt.top{font-weight:700}.fs-opt.root{color:var(--muted)}
.fs-opt:hover{background:color-mix(in srgb,var(--c-violet) 8%,transparent)}
.fs-opt.on{background:color-mix(in srgb,var(--c-violet) 14%,transparent);color:var(--c-violet);font-weight:700}
.fs-list::-webkit-scrollbar{width:6px}.fs-list::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--c-violet) 30%,transparent);border-radius:99px;border:0}
/* scrollbars */
@supports (-moz-appearance:none){*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--c-violet) 45%,transparent) transparent}}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--c-violet) 28%,transparent);border-radius:99px;border:2px solid transparent;background-clip:padding-box}
.sd-scroll::-webkit-scrollbar{width:6px}.sd-scroll::-webkit-scrollbar-thumb{background:transparent}.sd-scroll:hover::-webkit-scrollbar-thumb,.sd-scroll:focus-within::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--c-violet) 30%,transparent);background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(var(--c-cyan),var(--c-violet));background-clip:padding-box}
::-webkit-scrollbar-button{display:none;width:0;height:0}
::-webkit-scrollbar-corner{background:transparent}

/* range */
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:linear-gradient(to left,var(--c-violet),var(--c-cyan) var(--p,50%),var(--surface-2) var(--p,50%));outline-offset:6px;margin:6px 0}
[dir=ltr] input[type=range]{background:linear-gradient(to right,var(--c-violet),var(--c-cyan) var(--p,50%),var(--surface-2) var(--p,50%))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--surface);border:3px solid var(--brand);box-shadow:var(--sh-2);cursor:grab;transition:transform .15s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}
input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--brand);box-shadow:var(--sh-2)}
input[type=range]::-moz-range-track{background:transparent}

/* header */
.top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.brandmark{display:flex;align-items:center;gap:14px;min-width:0}
.brandmark img{height:44px;width:auto}
.logo-dark{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .logo-light{display:none}:root:not([data-theme="light"]) .logo-dark{display:block}}
:root[data-theme="dark"] .logo-light{display:none}:root[data-theme="dark"] .logo-dark{display:block}
.brandmark .sep{width:1px;height:34px;background:var(--line)}
.brandmark h1{font-family:var(--f-display);font-weight:800;font-size:1.35rem;margin:0;line-height:1.2}
.brandmark p{margin:0;color:var(--muted);font-size:.82rem}
.top .spacer{flex:1}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:7px 14px;font-weight:600;display:inline-flex;align-items:center;gap:6px;box-shadow:var(--sh-1);transition:border-color .15s,transform .15s,box-shadow .15s}
.btn:hover{border-color:color-mix(in srgb,var(--c-violet) 55%,var(--line));box-shadow:var(--sh-2)}
.btn:active{transform:translateY(1px)}
.btn.primary{background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 70%,var(--c-violet)));border-color:transparent;color:#fff;box-shadow:0 6px 18px -6px color-mix(in srgb,var(--brand) 70%,transparent)}
.btn.danger{color:color-mix(in srgb,var(--s-paused) 62%,var(--ink))}
.btn.sm{padding:4px 10px;font-size:.8rem;border-radius:8px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.seg{display:inline-flex;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:3px;flex-wrap:wrap;box-shadow:var(--sh-1)}
.seg button{border:0;background:transparent;border-radius:8px;padding:4px 11px;color:var(--muted);font-weight:500;font-size:.82rem;line-height:1.5;transition:background .15s,color .15s}
.seg button:hover{color:var(--ink)}
.seg button[aria-pressed="true"]{background:var(--surface-2);color:var(--ink);font-weight:700;box-shadow:var(--sh-1)}

/* tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{border:0;background:transparent;padding:10px 18px 12px;font-family:var(--f-display);font-weight:700;font-size:1rem;color:var(--muted);position:relative;white-space:nowrap;display:inline-flex;gap:8px;align-items:center}
.tabs button:hover{color:var(--ink)}
.tabs button[aria-selected="true"]{color:var(--ink)}
.tabs button[aria-selected="true"]::after{content:"";position:absolute;inset-inline:12px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:linear-gradient(90deg,var(--c-cyan),var(--c-violet));animation:grow .3s ease-out}
@keyframes grow{from{transform:scaleX(.3);opacity:0}}
.tcount{font-family:var(--f-body);font-size:.72rem;font-weight:600;background:var(--surface-2);color:var(--muted);border-radius:999px;padding:1px 8px}
.tcount.hot{background:color-mix(in srgb,var(--s-paused) 14%,var(--surface));color:color-mix(in srgb,var(--s-paused) 70%,var(--ink))}
.tabpanel{display:flex;flex-direction:column;gap:14px;animation:fadeUp .3s ease-out}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}}
.notice{display:flex;gap:10px;align-items:center;background:var(--surface);border:1px dashed var(--line);border-radius:12px;padding:8px 14px;color:var(--muted);font-size:.85rem}
.notice b{color:var(--ink);font-weight:600}

/* surfaces */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px 18px;min-width:0;box-shadow:var(--sh-1),var(--ring);display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s}
.panel:hover{box-shadow:var(--sh-2),var(--ring)}
.panel>h3{font-family:var(--f-display);font-size:1rem;font-weight:800;margin:0;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.panel>h3 small{font-family:var(--f-body);font-weight:500;color:var(--muted);font-size:.75rem}
.pbody{flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0}
.empty{color:color-mix(in srgb,var(--muted) 80%,var(--ink));font-size:.85rem;padding:10px 0;text-align:center}
.clk{cursor:pointer}

/* filter bar */
.fbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px 14px;box-shadow:var(--sh-1)}
.fbar .fl{font-size:.72rem;color:var(--muted);font-weight:600}
.fgrp{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.chip{font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted);display:inline-flex;gap:6px;align-items:center;border:1px solid transparent;line-height:1.5}
button.chip{cursor:pointer;transition:all .15s}
button.chip:hover{color:var(--ink);border-color:var(--line)}
button.chip[aria-pressed="true"]{background:color-mix(in srgb,var(--brand) 14%,var(--surface));color:var(--ink);border-color:color-mix(in srgb,var(--brand) 40%,transparent)}
.chip i{width:8px;height:8px;border-radius:50%;flex:none}
.fsel{border:1px solid var(--line);background:var(--bg);border-radius:9px;padding:4px 8px;font-size:.8rem;max-width:160px}
.fsearch{border:1px solid var(--line);background:var(--bg);border-radius:9px;padding:4px 10px;font-size:.8rem;width:170px;max-width:100%}
.fbar .grow{flex:1}
.fcount{font-size:.75rem;color:var(--muted)}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 16px;min-width:0;box-shadow:var(--sh-1),var(--ring);text-align:start;position:relative;overflow:hidden;transition:transform .18s,box-shadow .18s}
.kpi::before{content:"";position:absolute;inset-inline-start:0;top:0;width:100%;height:3px;background:var(--kc,var(--c-violet));opacity:.85}
button.kpi:hover{transform:translateY(-2px);box-shadow:var(--sh-2),var(--ring)}
.kpi .l{color:var(--muted);font-size:.78rem;display:block}
.kpi .v{font-family:var(--f-display);font-weight:800;font-size:clamp(1.15rem,1.9vw,1.6rem);line-height:1.25;font-variant-numeric:tabular-nums;display:block;white-space:normal;text-wrap:balance;overflow-wrap:anywhere}
.kpi .s{font-size:.74rem;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1200px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* bento */
.bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:stretch}
.s4{grid-column:span 4}.s5{grid-column:span 5}.s6{grid-column:span 6}.s7{grid-column:span 7}.s8{grid-column:span 8}.s12{grid-column:span 12}
@media (max-width:1100px){.s4,.s5,.s6,.s7,.s8{grid-column:span 6}}
@media (max-width:760px){.bento>*{grid-column:span 12}}

/* charts */
.hbars{display:flex;flex-direction:column;gap:8px}
.hb{display:grid;grid-template-columns:minmax(80px,130px) minmax(0,1fr) 62px;gap:10px;align-items:center;font-size:.82rem;border-radius:8px;padding:2px 4px;margin-inline:-4px;transition:background .15s}
.hb:hover{background:var(--surface-2)}
.hb .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb .tr{height:10px;background:var(--surface-2);border-radius:6px;overflow:hidden}
.hb .tr span{display:block;height:100%;border-radius:6px;transform-origin:right;animation:barIn .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes barIn{from{transform:scaleX(0)}}
.hb .vl{text-align:var(--end-side,left);font-variant-numeric:tabular-nums;color:var(--muted);direction:ltr;white-space:nowrap}
.stack{display:flex;flex-direction:column;gap:12px}
.srow .lab{display:flex;justify-content:space-between;font-size:.82rem;margin-bottom:4px}
.srow .lab span:last-child{color:var(--muted);font-variant-numeric:tabular-nums}
.sbar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--surface-2);gap:2px}
.sbar>span{height:100%;transition:filter .15s,transform .15s}
.sbar>span:hover{filter:brightness(1.12)}
.slegend{display:flex;flex-wrap:wrap;gap:6px}
.donut{display:flex;align-items:center;gap:16px}
.donut svg{width:130px;height:130px;flex:none}
.donut path{cursor:pointer;transition:transform .2s,opacity .2s;transform-origin:center}
.donut path:hover{transform:scale(1.05)}
.list{display:flex;flex-direction:column;gap:4px;font-size:.84rem;flex:1;min-width:0}
.list .row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;border-radius:8px;margin-inline:-8px;transition:background .15s}
.list .row:hover{background:var(--surface-2)}
.list b{font-weight:700;font-variant-numeric:tabular-nums}
.funnel{display:flex;flex-direction:column;gap:6px}
.fstep{display:grid;grid-template-columns:90px minmax(0,1fr) 34px;gap:10px;align-items:center;font-size:.82rem;padding:2px 4px;border-radius:8px;margin-inline:-4px}
.fstep:hover{background:var(--surface-2)}
.fstep .fb{height:26px;border-radius:8px;margin-inline:auto;display:block;min-width:8px;animation:barIn .7s cubic-bezier(.2,.8,.2,1) both;transform-origin:center}
.fstep b{text-align:var(--end-side,left);font-variant-numeric:tabular-nums}
.hist{display:flex;align-items:flex-end;gap:10px;height:150px;padding-top:10px}
.hist .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end;border-radius:8px;padding:2px}
.hist .col:hover{background:var(--surface-2)}
.hist .bar{width:70%;border-radius:8px 8px 3px 3px;background:linear-gradient(var(--c-violet),var(--c-cyan));min-height:4px;transform-origin:bottom;animation:colIn .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes colIn{from{transform:scaleY(0)}}
.hist .n{font-weight:700;font-size:.8rem}.hist .k{font-size:.72rem;color:var(--muted);direction:ltr}
svg.chart{width:100%;height:auto;display:block;direction:ltr;overflow:visible}
svg.chart text{font-family:var(--f-body);fill:var(--muted);font-size:11px}
svg.chart .pt{cursor:pointer;transition:transform .15s}
svg.chart .pt:hover circle{stroke-width:3}
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:.84rem;min-width:720px}
.tbl th{font-weight:700;color:var(--muted);font-size:.75rem;text-align:start;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;background:var(--surface)}
.tbl th button{border:0;background:none;padding:0;color:inherit;font-weight:inherit;display:inline-flex;gap:4px}
.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums}
.tbl tbody tr{transition:background .15s}
.tbl tbody tr:hover{background:var(--surface-2)}
.tbl .mini{width:80px;height:6px;background:var(--surface-2);border-radius:4px;display:inline-block;vertical-align:middle;overflow:hidden;margin-inline-start:6px}
.tbl .mini span{display:block;height:100%;border-radius:4px}
span.ok:empty{width:10px;height:10px;border-radius:50%;background:var(--s-live);display:inline-block}
.no{width:12px;height:12px;border-radius:50%;border:2px dashed color-mix(in srgb,var(--s-paused) 70%,transparent);display:inline-block}
td.cq{text-align:center}
td.cq button{border:0;background:none;padding:4px;border-radius:6px}
td.cq button:hover{background:color-mix(in srgb,var(--s-paused) 12%,transparent)}

/* map */
.mapcard{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;height:calc(100vh - 200px);min-height:340px;box-shadow:var(--sh-2),var(--ring)}
.mapcard::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 80px -30px color-mix(in srgb,var(--c-violet) 30%,transparent)}
.mapcard:fullscreen{border-radius:0;height:100%}
#map{width:100%;height:100%;display:block;direction:ltr;touch-action:none;cursor:grab;user-select:none}
#map:active{cursor:grabbing}
.mapbar{position:absolute;inset-inline:12px;top:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;pointer-events:none;z-index:4}
.mapbar>*{pointer-events:auto}
.tools{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:11px;overflow:hidden;box-shadow:var(--sh-2)}
.tools button{border:0;background:transparent;padding:6px 11px;min-width:34px;font-weight:600;color:var(--ink);transition:background .15s}
.tools button+button{border-inline-start:1px solid var(--line)}
.tools button:hover{background:var(--surface-2)}
.tools button[aria-pressed="true"]{background:color-mix(in srgb,var(--brand) 14%,var(--surface));color:var(--brand)}
.search{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:6px 12px;width:200px;max-width:100%;box-shadow:var(--sh-2)}
.fchip{background:color-mix(in srgb,var(--brand) 14%,var(--surface));color:var(--ink);border:1px solid color-mix(in srgb,var(--brand) 40%,transparent);border-radius:11px;padding:5px 10px;font-size:.8rem;font-weight:600;display:inline-flex;gap:8px;align-items:center;box-shadow:var(--sh-2)}
.fchip button{border:0;background:none;padding:0 2px;color:var(--muted)}
.legend{position:absolute;inset-inline-start:12px;bottom:12px;display:flex;gap:12px;flex-wrap:wrap;font-size:.75rem;color:var(--muted);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:11px;padding:6px 10px;z-index:2;max-width:calc(100% - 24px);box-shadow:var(--sh-1)}
.legend span{display:inline-flex;align-items:center;gap:5px}
.legend i{width:9px;height:9px;border-radius:50%;display:inline-block}
.loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted)}
.hint{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;bottom:12px;font-size:.75rem;color:var(--muted);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:11px;padding:6px 10px;z-index:2;box-shadow:var(--sh-1)}

/* svg nodes */
.link{fill:none;transition:stroke-opacity .25s,stroke-width .25s}
.node{cursor:pointer}
.node text{font-family:var(--f-body);fill:var(--ink);paint-order:stroke;stroke:var(--halo);stroke-width:4px;stroke-linejoin:round;transition:opacity .25s}
.node.track text{font-family:var(--f-display);font-weight:800;font-size:calc(19px * var(--fs,1))}
.node.group text{font-weight:700;font-size:calc(15px * var(--fs,1))}
.node.item text{font-size:calc(14.5px * var(--fs,1));font-weight:500}
.node .sub{fill:var(--muted);font-size:calc(11.5px * var(--fs,1));font-weight:400}
.node .hz{transform-box:fill-box;transform-origin:center;transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
/* more motion: hover effects, twinkle, burst */
.hv-lift .node:hover .sh,.hv-lift .node.sel .sh{transform:translateY(-4px);filter:drop-shadow(0 8px 10px rgba(40,30,120,.25))}
.hv-lift .node .sh{transition:transform .25s cubic-bezier(.2,.9,.25,1.3),filter .25s}
.hv-ring .node:hover .halo-ring{animation:hvRing 1.1s ease-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes hvRing{0%{transform:scale(.9);stroke-opacity:.55}100%{transform:scale(1.9);stroke-opacity:0}}
.hv-shake .node:hover .sh{animation:hvShake .45s ease-in-out;transform-box:fill-box;transform-origin:center}
@keyframes hvShake{20%{transform:rotate(-7deg)}40%{transform:rotate(6deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(2deg)}}
.hv-spot g.node{transition:opacity .25s}
.hv-spot:has(g.node:not(.root):hover) g.node:not(:hover):not(.root){opacity:.28}
.hv-spot:has(g.node:not(.root):hover) path.link{opacity:.25}
.twinkle .node.item .core{animation:twk 3.4s ease-in-out infinite;animation-delay:calc(var(--tw,0) * -1s);transform-box:fill-box;transform-origin:center}
@keyframes twk{0%,100%{opacity:1}45%{opacity:.45}50%{opacity:1;transform:scale(1.18)}55%{opacity:.8}}
@media (prefers-reduced-motion:reduce){.hv-ring .node:hover .halo-ring,.hv-shake .node:hover .sh,.twinkle .node.item .core{animation:none}}
.hv-grow .node:hover .hz,.hv-grow .node.sel .hz{transform:scale(1.22)}
.hv-glow .node:hover .core,.hv-glow .node.sel .core{filter:drop-shadow(0 0 7px currentColor)}
.halo-ring{opacity:0;transition:opacity .2s}
.node:hover .halo-ring,.node.sel .halo-ring{opacity:1}
.node.sel .halo-ring{stroke-opacity:.6!important}
.pulse{opacity:0;transform-box:fill-box;transform-origin:center}
.pulse-on .node.live .pulse{animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(2.4)}}
.breathe .node.track .core{animation:breathe 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes breathe{50%{transform:scale(1.08);filter:brightness(1.1)}}
.knob rect.kface{fill:var(--surface);stroke:var(--line);transition:fill .15s}
.knob rect.khit{fill:transparent;stroke:none}
.knob{cursor:pointer}
.knob text{font-size:10.5px;font-weight:700;fill:var(--muted);stroke:none;font-family:var(--f-body)}
.knob:hover rect.kface{fill:var(--surface-2);stroke:var(--c-violet)}
.ab{opacity:0;transform:scale(.4);transform-box:fill-box;transform-origin:center;transition:opacity .18s,transform .22s cubic-bezier(.3,1.6,.5,1);pointer-events:none}
.hoveradd .node:hover .ab,.hoveradd .node.sel .ab{opacity:1;transform:scale(1);pointer-events:auto}
.ab circle{fill:var(--brand);filter:drop-shadow(0 2px 4px rgba(40,30,120,.35))}
.ab path{stroke:#fff;stroke-width:2;stroke-linecap:round}
.ab:hover circle{fill:var(--c-violet)}
.lbl-groups .node.item:not(:hover):not(.sel) text.lbl,.lbl-groups .node.item:not(:hover):not(.sel) text.sub{opacity:0}
.lbl-min .node:not(.track):not(:hover):not(.sel) text.lbl,.lbl-min .node:not(.track):not(:hover):not(.sel) text.sub{opacity:0}
.dim{opacity:.16}
.link.dim{stroke-opacity:.06!important}
.fade{opacity:.22;transition:opacity .3s}
.link.fade{stroke-opacity:.08!important}
.link.hl{stroke-opacity:1!important}
.node.dragging{cursor:grabbing;filter:drop-shadow(0 8px 14px rgba(40,30,120,.35))}
.node.droptarget .halo-ring{opacity:1;stroke:var(--s-live)!important;stroke-opacity:.7!important;animation:pulse2 .8s ease-in-out infinite alternate}
@keyframes pulse2{to{stroke-width:10}}
.ghost{fill:none;stroke:var(--s-live);stroke-width:2;stroke-dasharray:5 5}
.link.flow{animation:flow var(--flow-dur,1.2s) linear infinite}
.flow-in .link.flow{animation-direction:reverse}
@keyframes flow{to{stroke-dashoffset:-40}}
.guide{fill:none;stroke:var(--line);stroke-dasharray:3 5}

/* floating bits */
.tip{position:absolute;z-index:39;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-2);padding:8px 12px;font-size:.8rem;min-width:150px;max-width:260px;animation:pop .16s ease-out;direction:var(--dir,rtl)}
.tip b{font-family:var(--f-display);font-size:.95rem;display:block}
.tip .r{display:flex;gap:8px;align-items:center;color:var(--muted);margin-top:2px}
.tip .k{font-size:.7rem;color:var(--muted);margin-top:4px}
@keyframes pop{from{opacity:0;transform:translateY(4px) scale(.97)}}
.qa{position:absolute;z-index:39;width:280px;max-width:calc(100% - 24px);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-3);padding:12px;display:flex;flex-direction:column;gap:8px;direction:var(--dir,rtl);animation:pop .2s cubic-bezier(.2,1.2,.4,1)}
.qa .t{font-size:.75rem;color:var(--muted)}
.qa .t b{color:var(--ink)}
.qa input,.qa select{border:1px solid var(--line);background:var(--bg);border-radius:9px;padding:7px 10px;width:100%}
.qa .row{display:flex;gap:6px;align-items:center}
.vpanel{position:absolute;z-index:38;top:58px;inset-inline-end:12px;width:330px;max-width:calc(100% - 24px);max-height:calc(100% - 72px);overflow-y:auto;overflow-x:hidden;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh-3);padding:14px 16px;display:flex;flex-direction:column;gap:14px;direction:var(--dir,rtl);transform-origin:top left}
.vpanel>*{min-width:0}
.vh{display:flex;justify-content:space-between;align-items:center}
.vh h4{margin:0;font-family:var(--f-display);font-size:1.05rem;font-weight:800}
.ptabs{display:flex;gap:2px;background:var(--surface-2);border-radius:11px;padding:3px;flex-wrap:wrap}
.ptabs button{flex:1;border:0;background:transparent;border-radius:8px;padding:5px 6px;font-size:.78rem;font-weight:600;color:var(--muted);white-space:nowrap}
.ptabs button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
.vbody{display:flex;flex-direction:column;gap:14px;animation:fadeUp .2s ease-out}
.vrow{display:flex;flex-direction:column;gap:6px;min-width:0}
.vrow>.lbl{font-size:.76rem;color:var(--muted);font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:8px}
.vrow>.lbl .val{background:var(--surface-2);color:var(--ink);border-radius:6px;padding:0 7px;font-variant-numeric:tabular-nums;direction:ltr;font-size:.74rem}
.vrow .seg{width:100%;box-shadow:none}.vrow .seg button{flex:1;padding:4px 6px}
.swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.swatches button{border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:7px 6px;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:.72rem;color:var(--muted);transition:all .15s}
.swatches button span.c{display:flex;gap:3px}.swatches button span.c i{width:11px;height:11px;border-radius:50%}
.swatches button[aria-pressed="true"]{border-color:var(--brand);color:var(--ink);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 25%,transparent)}
.checks{display:flex;flex-direction:column;gap:8px;font-size:.84rem}
.checks label{display:flex;gap:9px;align-items:center;cursor:pointer}

/* details sheet */
.scrim{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(2.5px);-webkit-backdrop-filter:blur(2.5px);z-index:47;animation:fadeIn .25s ease-out}
.scrim.soft{z-index:40;background:color-mix(in srgb,var(--scrim) 45%,transparent);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.scrim.out{animation:fadeOut .22s ease-in forwards}
@keyframes fadeIn{from{opacity:0}}@keyframes fadeInS{from{opacity:.02}}.site.sx-anim{animation-name:fadeInS}
@keyframes fadeOut{to{opacity:0}}
.sheet{position:fixed;z-index:45;background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-3),var(--ring);display:flex;flex-direction:column;direction:var(--dir,rtl);overflow:hidden}
.sheet.side{top:calc(16px + env(safe-area-inset-top,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));inset-inline-end:calc(16px + var(--aidock,0px));width:min(400px,calc(100% - 32px));border-radius:22px;animation:sideIn .34s cubic-bezier(.2,.9,.25,1)}
.sheet.bottom{inset-inline:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));max-height:min(58vh,560px);border-radius:22px;animation:upIn .34s cubic-bezier(.2,.9,.25,1)}
@media (max-width:720px){.sheet.side{top:auto;inset-inline:10px;width:auto;bottom:calc(10px + env(safe-area-inset-bottom,0px));max-height:70vh;animation:upIn .34s cubic-bezier(.2,.9,.25,1)}}
.sheet.side.out{animation:sideOut .24s ease-in forwards}
.sheet.bottom.out,.sheet.out{animation:upOut .24s ease-in forwards}
@keyframes sideIn{from{opacity:0;transform:translateX(calc(-40px * var(--dirx,1)))}}
@keyframes sideOut{to{opacity:0;transform:translateX(calc(-40px * var(--dirx,1)))}}
@keyframes upIn{from{opacity:0;transform:translateY(40px)}}
@keyframes upOut{to{opacity:0;transform:translateY(40px)}}
.sh-head{padding:16px 18px 12px;display:flex;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);position:relative}
.sh-head::before{content:"";position:absolute;inset-inline:0;top:0;height:4px;background:var(--sc,var(--c-violet))}
.sh-head .ttl{flex:1;min-width:0}
.crumbs{display:flex;flex-wrap:wrap;gap:2px 4px;font-size:.72rem;color:var(--muted)}
.crumbs button{border:0;background:none;padding:0;color:inherit}
.crumbs button:hover{color:color-mix(in srgb,var(--c-violet) 62%,var(--ink));text-decoration:underline}
.sh-head h2{margin:2px 0 0;font-family:var(--f-display);font-weight:800;font-size:1.35rem;line-height:1.3}
.sh-head .en{color:var(--muted);font-size:.8rem;direction:ltr;text-align:var(--start-side,right)}
.sh-body{flex:1;overflow-y:auto;padding:14px 18px 18px;display:flex;flex-direction:column;gap:14px}
.sh-body>*{animation:fadeUp .35s ease-out both}
.sh-body>*:nth-child(2){animation-delay:.04s}.sh-body>*:nth-child(3){animation-delay:.08s}.sh-body>*:nth-child(4){animation-delay:.12s}.sh-body>*:nth-child(5){animation-delay:.16s}.sh-body>*:nth-child(6){animation-delay:.2s}
.sh-foot{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:12px 18px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 50%,var(--surface))}
.mstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.mstat{background:var(--surface-2);border-radius:12px;padding:8px 10px;min-width:0}
.mstat .l{font-size:.7rem;color:var(--muted)}
.mstat .v{font-family:var(--f-display);font-weight:800;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rhero{display:flex;gap:14px;align-items:center}
.rhero svg{width:84px;height:84px;flex:none}
.facts{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:.84rem;margin:0}
.facts dt{color:var(--muted)} .facts dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere}
.lnks{display:flex;gap:6px;flex-wrap:wrap}
.lnks a{font-size:.78rem;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:4px 10px;display:inline-flex;gap:5px;align-items:center;box-shadow:var(--sh-1);transition:border-color .15s,transform .15s}
.lnks a:hover{border-color:var(--c-violet);transform:translateY(-1px)}
.lnks a.soc{font-weight:700;direction:ltr}
.sec-t{font-size:.75rem;color:var(--muted);font-weight:700;margin:0 0 6px}
.kids{display:flex;flex-wrap:wrap;gap:6px}
.kids button{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:4px 10px;font-size:.8rem;display:inline-flex;gap:6px;align-items:center;transition:border-color .15s}
.kids button:hover{border-color:var(--c-violet)}
.kids i{width:8px;height:8px;border-radius:50%}
.minirec{display:flex;flex-direction:column;gap:6px}
.minirec button{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:8px 10px;text-align:start;display:flex;gap:8px;align-items:flex-start;font-size:.82rem}
.minirec button:hover{border-color:var(--c-violet)}
.meter{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden}
.meter>span{display:block;height:100%;border-radius:99px}

/* recommendations */
.rhead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.rhead h2{margin:0;font-family:var(--f-display);font-weight:800;font-size:1.25rem}
.rhead p{margin:0;color:var(--muted);font-size:.82rem}
.catbar{display:flex;gap:6px;flex-wrap:wrap}
.cat{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 12px 4px 6px;display:inline-flex;gap:7px;align-items:center;font-size:.84rem;transition:all .18s}
.cat:hover{border-color:color-mix(in srgb,var(--cc) 50%,var(--line))}
.cat[aria-pressed="true"]{border-color:var(--cc);box-shadow:0 0 0 2px color-mix(in srgb,var(--cc) 25%,transparent),var(--sh-2)}
.cat .ic{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--cc) 15%,var(--surface));color:var(--cc);flex:none}
.cat .ic svg{width:14px;height:14px}
.cat .n{font-weight:700;font-size:.74rem;background:var(--surface-2);border-radius:999px;padding:0 7px;color:var(--muted);font-variant-numeric:tabular-nums}
.cat[aria-pressed="true"] .n{background:var(--cc);color:#fff}
.cat .l{font-weight:600}
.recs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:14px;align-items:stretch}
.rec{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--sh-1),var(--ring);position:relative;overflow:hidden;transition:transform .18s,box-shadow .18s,opacity .3s;animation:fadeUp .35s ease-out both}
.rec:hover{transform:translateY(-2px);box-shadow:var(--sh-2),var(--ring)}
.rec::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:var(--cc)}
.rec.done{opacity:.55}
.rec .hd{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rec .cc{color:color-mix(in srgb,var(--cc) 58%,var(--ink));background:color-mix(in srgb,var(--cc) 13%,var(--surface))}
.pri{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:999px}
.pri.p3{background:color-mix(in srgb,var(--s-paused) 15%,var(--surface));color:color-mix(in srgb,var(--s-paused) 62%,var(--ink))}
.pri.p2{background:color-mix(in srgb,var(--s-dev) 18%,var(--surface));color:color-mix(in srgb,var(--s-dev) 55%,var(--ink))}
.pri.p1{background:var(--surface-2);color:var(--muted)}
.rec h4{margin:0;font-family:var(--f-display);font-size:1.02rem;line-height:1.4}
.rec .why{margin:0;color:var(--muted);font-size:.84rem}
.rec .act{margin:0;font-size:.84rem;background:var(--surface-2);border-radius:10px;padding:8px 10px}
.rec .act b{font-weight:700}
.rec .ft{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:4px}
.rec .ft .grow{flex:1}
.aibox{padding:10px 14px!important;background:linear-gradient(135deg,color-mix(in srgb,var(--c-cyan) 10%,var(--surface)),color-mix(in srgb,var(--c-violet) 12%,var(--surface)));border:1px solid color-mix(in srgb,var(--c-violet) 30%,var(--line));border-radius:18px;padding:14px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;box-shadow:var(--sh-2)}
.aibox .tx{flex:1;min-width:220px}
.aibox b{font-family:var(--f-display);font-size:1.02rem}
.aibox p{margin:0;color:var(--muted);font-size:.78rem}
.aibox .tx{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.aibox .btn{padding:5px 12px;font-size:.84rem}
.spin{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:sp .8s linear infinite;vertical-align:middle}
@keyframes sp{to{transform:rotate(360deg)}}

/* editor */
.drawer{position:fixed;top:0;bottom:0;inset-inline-end:0;width:min(460px,100%);background:var(--surface);border-inline-start:1px solid var(--line);z-index:50;display:flex;flex-direction:column;box-shadow:var(--sh-3);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);animation:drawerIn .34s cubic-bezier(.2,.9,.25,1);border-radius:22px 0 0 22px}
[dir=rtl] .drawer, .drawer[dir=rtl]{border-radius:0 22px 22px 0}
[dir=ltr] .drawer, .drawer[dir=ltr]{border-radius:22px 0 0 22px}
@keyframes drawerIn{from{transform:translateX(calc(-100% * var(--dirx,1)));opacity:.4}}
.drawer.out{animation:drawerOut .24s ease-in forwards}
@keyframes drawerOut{to{transform:translateX(calc(-100% * var(--dirx,1)));opacity:.2}}
.drawer header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.drawer header h2{margin:0;font-family:var(--f-display);font-size:1.15rem}
.drawer form{flex:1;overflow:auto;padding:16px 20px;display:flex;flex-direction:column;gap:14px}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.f{display:flex;flex-direction:column;gap:5px;min-width:0}
.f.full{grid-column:1/-1}
.f label{font-size:.76rem;color:var(--muted);font-weight:600}
.f input:not([type=checkbox]):not([type=range]),.f select,.f textarea{border:1px solid var(--line);background:var(--bg);border-radius:11px;padding:8px 11px;width:100%;min-width:0;transition:border-color .15s,box-shadow .15s}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--c-violet);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-violet) 20%,transparent)}
.f input[type=url]{direction:ltr;text-align:left}
.f textarea{min-height:80px;resize:vertical}
.fs{border:0;padding:0;margin:0}
.fs legend{font-family:var(--f-display);font-weight:800;font-size:.9rem;margin-bottom:8px;padding:0}
.ckrow{display:flex;gap:9px;align-items:center;font-size:.84rem;cursor:pointer}
.drawer footer{display:flex;gap:8px;padding:14px 20px;border-top:1px solid var(--line);flex-wrap:wrap}
.drawer footer .grow{flex:1}
.confirm{background:var(--surface-2);border-radius:12px;padding:10px;font-size:.84rem;display:flex;flex-direction:column;gap:8px;width:100%;animation:fadeUp .2s ease-out}
.toast{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 12px 9px 16px;border-radius:12px;z-index:60;font-size:.86rem;display:flex;gap:12px;align-items:center;box-shadow:var(--sh-3);animation:toastIn .3s cubic-bezier(.2,1.2,.4,1);direction:var(--dir,rtl)}
.toast button{border:0;background:color-mix(in srgb,var(--bg) 18%,transparent);color:var(--bg);border-radius:8px;padding:3px 10px;font-weight:700}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,12px)}}

/* map switcher */
.mapsw{position:relative}
.mapsw .btn{max-width:260px}
.mapsw .btn span.nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mdot{width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,var(--c-cyan),var(--c-violet));flex:none}
.mmenu{position:absolute;top:calc(100% + 8px);inset-inline-start:0;z-index:38;width:320px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-3);padding:8px;display:flex;flex-direction:column;gap:2px;animation:pop .18s ease-out}
.mmenu .mi{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;border:0;background:none;text-align:start;width:100%}
.mmenu .mi:hover{background:var(--surface-2)}
.mmenu .mi[aria-current="true"]{background:color-mix(in srgb,var(--brand) 12%,var(--surface))}
.mmenu .mi .t{flex:1;min-width:0}.mmenu .mi .t b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mmenu .mi .t small{color:var(--muted);font-size:.72rem}
.mmenu .act{display:flex;gap:4px}
.mmenu .act button{border:0;background:none;padding:2px 6px;border-radius:6px;color:var(--muted);font-size:.8rem}
.mmenu .act button:hover{background:var(--surface);color:var(--ink)}
.mmenu hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.mmenu .lim{font-size:.72rem;color:var(--muted);padding:4px 10px}
.btn.ai{background:linear-gradient(135deg,color-mix(in srgb,var(--c-cyan) 16%,var(--surface)),color-mix(in srgb,var(--c-violet) 18%,var(--surface)));border-color:color-mix(in srgb,var(--c-violet) 35%,var(--line))}
.emptymap{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:3}
.emptymap .box{pointer-events:auto;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:20px;padding:22px 24px;box-shadow:var(--sh-3);text-align:center;max-width:380px;display:flex;flex-direction:column;gap:10px;align-items:center;margin-top:180px;animation:fadeUp .3s ease-out}
.emptymap h3{margin:0;font-family:var(--f-display);font-weight:800}
.emptymap p{margin:0;color:var(--muted);font-size:.86rem}
.emptymap .row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}

/* modal */
.modal{position:fixed;inset:0;z-index:55;display:grid;place-items:center;padding:16px;pointer-events:none}
.modal .mbox{pointer-events:auto;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--sh-3);display:flex;flex-direction:column;direction:var(--dir,rtl);animation:modalIn .3s cubic-bezier(.2,1.1,.3,1)}
.modal.out .mbox{animation:modalOut .2s ease-in forwards}
@keyframes modalIn{from{opacity:0;transform:translateY(14px) scale(.97)}}
@keyframes modalOut{to{opacity:0;transform:translateY(10px) scale(.97)}}
.mhead{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.mhead h2{margin:0;font-family:var(--f-display);font-size:1.15rem}
.mbody{padding:16px 20px;display:flex;flex-direction:column;gap:14px}
.mfoot{display:flex;gap:8px;padding:14px 20px;border-top:1px solid var(--line);flex-wrap:wrap}
.tpls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tpl{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:12px;text-align:start;display:flex;flex-direction:column;gap:4px;transition:all .15s}
.tpl:hover{border-color:color-mix(in srgb,var(--c-violet) 50%,var(--line))}
.tpl[aria-pressed="true"]{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 22%,transparent)}
.tpl b{font-family:var(--f-display)}.tpl small{color:var(--muted);font-size:.76rem}
.packs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}

/* AI assistant */
.aip{position:fixed;z-index:44;bottom:calc(16px + env(safe-area-inset-bottom,0px));inset-inline-end:16px;width:min(420px,calc(100% - 32px));height:min(640px,calc(100vh - 32px));background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--sh-3),var(--ring);display:flex;flex-direction:column;direction:var(--dir,rtl);overflow:hidden;animation:aiIn .32s cubic-bezier(.2,1,.3,1);transform-origin:bottom left}
.aip.out{animation:aiOut .22s ease-in forwards}
@keyframes aiIn{from{opacity:0;transform:translateY(20px) scale(.96)}}
@keyframes aiOut{to{opacity:0;transform:translateY(20px) scale(.96)}}
.aih{padding:14px 16px 10px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--c-cyan) 9%,var(--surface)),color-mix(in srgb,var(--c-violet) 11%,var(--surface)))}
.aih .r1{display:flex;align-items:center;gap:10px}
.aih .orb{width:30px;height:30px;border-radius:50%;background:conic-gradient(from 0deg,var(--c-cyan),var(--c-violet),var(--c-blue),var(--c-cyan));animation:sp 6s linear infinite;flex:none;box-shadow:0 0 18px -2px color-mix(in srgb,var(--c-violet) 60%,transparent)}
.aih h3{margin:0;font-family:var(--f-display);font-size:1rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aih h3 small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tokbar{display:flex;align-items:center;gap:8px;font-size:.74rem;color:var(--muted)}
.tokbar .meter{flex:1;height:6px}
.tokbar b{color:var(--ink);font-variant-numeric:tabular-nums}
.aim{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.aim>*{flex-shrink:0}
.msg .tw{overflow-x:auto;max-width:100%;margin:6px 0;border-radius:10px;border:1px solid var(--line)}
.msg .tw table{margin:0!important;min-width:100%;width:max-content!important;max-width:none}
.msg .tw td,.msg .tw th{white-space:normal;min-width:72px;max-width:260px;vertical-align:top}
.msg{max-width:88%;min-width:0;padding:9px 12px;border-radius:16px;font-size:.88rem;line-height:1.7;animation:fadeUp .25s ease-out;overflow-wrap:anywhere}
.msg.u{align-self:flex-start;background:var(--brand);color:#fff;border-end-start-radius:4px}
.msg.a{align-self:flex-end;background:var(--surface-2);border-end-end-radius:4px}
.msg.a p{margin:0 0 6px}.msg.a p:last-child{margin:0}
.msg.a ul{margin:4px 0;padding-inline-start:18px}
.msg .meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;font-size:.7rem;color:var(--muted);align-items:center}
.msg .acts{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.msg .acts div{font-size:.78rem;display:flex;gap:6px;align-items:center}
.sugg{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 10px}
.aif{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);align-items:flex-end}
.aiwrap{flex:1;display:flex;flex-direction:column;border:1px solid var(--line);background:var(--bg);border-radius:14px;transition:border-color .15s,box-shadow .15s;min-width:0}
.aiwrap:focus-within{border-color:var(--c-violet);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-violet) 18%,transparent)}
.aitb{display:flex;align-items:center;gap:2px;padding:4px 6px 0}
.aitb button{all:unset;cursor:pointer;width:28px;height:26px;display:grid;place-items:center;border-radius:7px;color:var(--muted);font-size:.85rem}
.aitb button:hover,.aitb button:focus-visible{background:var(--surface-2);color:var(--ink)}
.aitb button svg{width:16px;height:16px}
.aitb .aihint{margin-inline-start:auto;font-size:.7rem;color:var(--muted);padding-inline-end:4px}
.aif textarea{flex:1;resize:none;border:0;background:transparent;border-radius:14px;padding:6px 12px 9px;max-height:180px;min-height:38px;font:inherit;color:var(--ink);line-height:1.6}
.aif textarea:focus{outline:none}
@media (max-width:520px){.aitb .aihint{display:none}}
.aifab{direction:var(--dir,rtl);opacity:.42;filter:saturate(.55);box-shadow:none!important;transition:opacity .25s,filter .25s,transform .2s!important;position:fixed;z-index:43;bottom:calc(18px + env(safe-area-inset-bottom,0px));inset-inline-end:18px;border:0;border-radius:999px;padding:12px 18px 12px 14px;display:flex;gap:9px;align-items:center;color:#fff;font-weight:700;background:linear-gradient(135deg,var(--c-cyan),var(--c-violet));box-shadow:0 10px 30px -8px color-mix(in srgb,var(--c-violet) 80%,transparent);transition:transform .2s}
.aifab:hover,.aifab:focus-visible{transform:translateY(-2px) scale(1.03);opacity:1;filter:none;box-shadow:0 10px 30px -8px color-mix(in srgb,var(--c-violet) 80%,transparent)}
.aifab .orb{width:20px;height:20px;border-radius:50%;background:conic-gradient(#fff,rgba(255,255,255,.3),#fff);animation:sp 4s linear infinite}

/* admin */
.adm-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.adm-head h2{margin:0;font-family:var(--f-display);font-weight:800;font-size:1.3rem}
.badge{font-size:.7rem;font-weight:700;padding:2px 9px;border-radius:999px;background:color-mix(in srgb,var(--s-dev) 18%,var(--surface));color:color-mix(in srgb,var(--s-dev) 55%,var(--ink))}
.asub{display:flex;gap:4px;flex-wrap:wrap}
.rdy-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.rdy-sum{font-size:.86rem;color:var(--muted)}
.rdy{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rdy li{display:grid;grid-template-columns:26px minmax(120px,190px) 1fr;align-items:center;gap:4px 10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.rdy li i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:900;font-size:.78rem;color:#fff;background:var(--c)}
.rdy li b{font-size:.86rem}.rdy li span{font-size:.82rem;color:var(--muted);overflow-wrap:anywhere}
.rdy li small{grid-column:2/-1;font-size:.78rem;color:color-mix(in srgb,var(--ink) 75%,var(--muted))}
.rdy li.rdy-fail{border-color:color-mix(in srgb,var(--s-paused) 35%,var(--line));background:color-mix(in srgb,var(--s-paused) 4%,var(--surface))}
.rdy li.rdy-warn{border-color:color-mix(in srgb,var(--s-dev) 35%,var(--line))}
.bk{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.bk li{display:flex;justify-content:space-between;gap:10px;font-size:.82rem;padding:6px 10px;border-radius:10px;background:var(--surface-2)}.bk small{color:var(--muted)}
@media (max-width:600px){.rdy li{grid-template-columns:26px 1fr}.rdy li span,.rdy li small{grid-column:2/-1}}
.plans-ed{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:12px}
.plan{border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--surface);position:relative}
.plan.hot{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 18%,transparent)}
.plan input,.plan textarea,.plan select{border:1px solid var(--line);background:var(--bg);border-radius:9px;padding:5px 9px;width:100%;min-width:0;font-size:.84rem;color:var(--ink)}
.plan .g2{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.plan label{font-size:.7rem;color:var(--muted);font-weight:600;display:flex;flex-direction:column;gap:2px}
.plan input[type=checkbox]{width:auto}
.plan label.ckrow{flex-direction:row;align-items:center;gap:8px;font-size:.8rem;color:var(--ink)}
.plan .margin{font-size:.74rem;border-radius:9px;padding:6px 8px;background:var(--surface-2)}
.st{font-size:.72rem;font-weight:700;padding:2px 9px;border-radius:999px;display:inline-flex;gap:5px;align-items:center}
.st i{width:7px;height:7px;border-radius:50%}
.checklist{display:flex;flex-direction:column;gap:8px}
.checklist div{display:flex;gap:10px;align-items:flex-start;font-size:.86rem}
.checklist .n{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);font-weight:700;font-size:.75rem;flex:none}
.sett{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}

/* landing site */
.site{position:fixed;inset:0;z-index:70;background:var(--bg);overflow-y:auto;direction:var(--dir,rtl);animation:fadeIn .3s ease-out}
.site.out{animation:fadeOut .2s ease-in forwards}
.s-wrap{max-width:1180px;margin-inline:auto;padding-inline:20px}
.s-nav{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.s-nav .s-wrap{display:flex;align-items:center;gap:18px;padding-block:12px}
.s-logo{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:900;font-size:1.25rem}
.s-logo .lm{width:34px;height:34px;display:grid;place-items:center;filter:drop-shadow(0 4px 12px color-mix(in srgb,var(--c-violet) 45%,transparent))}.s-logo .lm img{width:100%;height:100%;display:block}
.s-logo .lm i{width:12px;height:12px;border-radius:50%;background:#fff}
.s-links{display:flex;gap:16px;font-size:.9rem;color:var(--muted)}
.s-links a{color:inherit;text-decoration:none}.s-links a:hover{color:var(--ink)}
.s-hero{padding-block:70px 40px;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.s-hero h1{font-family:var(--f-display);font-weight:900;font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.25;margin:0;text-wrap:balance}
.s-hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--c-cyan),var(--c-violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.s-hero p{font-size:1.08rem;color:var(--muted);max-width:520px;margin:16px 0 26px}
.s-cta{display:flex;gap:10px;flex-wrap:wrap}
.s-cta .btn{padding:11px 22px;font-size:1rem;border-radius:13px}
.s-art{aspect-ratio:1;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:28px;box-shadow:var(--sh-3);position:relative;overflow:hidden}
.s-art svg{width:100%;height:100%}
.s-sec{padding-block:56px}
.s-sec h2{font-family:var(--f-display);font-weight:900;font-size:clamp(1.5rem,3vw,2.2rem);margin:0 0 8px;text-align:center}
.s-sec .lead{color:var(--muted);text-align:center;margin:0 auto 32px;max-width:560px}
.s-feats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.s-feat{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:var(--sh-1);transition:transform .2s,box-shadow .2s}
.s-feat:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.s-feat .ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--c-violet) 13%,var(--surface));color:color-mix(in srgb,var(--c-violet) 62%,var(--ink));margin-bottom:10px}
.s-feat .ic svg{width:22px;height:22px}
.s-feat h3{margin:0 0 4px;font-family:var(--f-display);font-size:1.05rem}
.s-feat p{margin:0;color:var(--muted);font-size:.9rem}
.s-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;counter-reset:st}
.s-step{padding:20px;border-radius:20px;background:linear-gradient(160deg,var(--surface),var(--surface-2));border:1px solid var(--line)}
.s-step b{display:block;font-family:var(--f-display);font-size:1.05rem;margin-bottom:4px}
.s-step b::before{counter-increment:st;content:counter(st);display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;font-size:.85rem;margin-inline-end:8px}
.s-step span{color:var(--muted);font-size:.9rem}
.s-bill{display:flex;justify-content:center;margin-bottom:22px}
.s-prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px;align-items:stretch}
.s-price{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:22px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--sh-1);position:relative}
.s-price.hot{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 22%,transparent),var(--sh-2)}
.s-price .tag{position:absolute;top:-11px;inset-inline-start:20px;background:linear-gradient(90deg,var(--c-cyan),var(--c-violet));color:#fff;font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:999px}
.s-price h3{margin:0;font-family:var(--f-display);font-size:1.15rem}
.s-price .pr{font-family:var(--f-display);font-weight:900;font-size:2.1rem;line-height:1}
.s-price .pr small{font-family:var(--f-body);font-weight:500;font-size:.85rem;color:var(--muted)}
.s-price ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:.88rem;flex:1}
.s-price li{display:flex;gap:8px}.s-price li::before{content:"✓";color:color-mix(in srgb,var(--s-live) 62%,var(--ink));font-weight:700}
.s-faq{max-width:760px;margin-inline:auto;display:flex;flex-direction:column;gap:10px}
.s-faq details{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 18px}
.s-faq summary{cursor:pointer;font-weight:700;font-family:var(--f-display)}
.s-faq p{margin:8px 0 0;color:var(--muted)}
.s-final .s-fcta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:6px}
.s-final .btn.sx-ghost2{background:var(--surface);color:var(--brand);border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));box-shadow:none}
.s-final .btn.sx-ghost2:hover{background:color-mix(in srgb,var(--brand) 7%,var(--surface))}
.sx-hero .s-quick{margin-top:18px}
.sx-hero .s-try{max-width:560px;margin:14px auto 0;box-shadow:none;background:color-mix(in srgb,var(--surface) 80%,transparent);border-style:dashed}
.sx-hero .s-try input{font-size:.92rem}
.sx-hero .s-try .btn{background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand);border:0}
.auth{background:radial-gradient(900px 520px at 85% -10%,color-mix(in srgb,var(--c-violet) 16%,transparent),transparent 60%),radial-gradient(800px 500px at 0% 110%,color-mix(in srgb,var(--c-cyan) 14%,transparent),transparent 60%),var(--bg)}
.s-final{text-align:center;background:linear-gradient(135deg,var(--brand),var(--c-violet));color:#fff;border-radius:28px;padding:44px 24px;box-shadow:var(--sh-3)}
.s-final h2{color:#fff}.s-final p{color:rgba(255,255,255,.85);margin:0 0 20px}
.s-final .btn{background:#fff;color:var(--brand);border:0}
.s-foot{padding-block:28px;color:var(--muted);font-size:.84rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;border-top:1px solid var(--line);margin-top:40px}
.s-proto{position:fixed;bottom:16px;inset-inline-start:16px;z-index:6;background:var(--ink);color:var(--bg);border-radius:12px;padding:8px 12px;font-size:.8rem;display:flex;gap:10px;align-items:center;box-shadow:var(--sh-3)}
.s-proto button{border:0;border-radius:8px;padding:3px 10px;background:color-mix(in srgb,var(--bg) 20%,transparent);color:var(--bg);font-weight:700}
@media (max-width:860px){.s-hero{grid-template-columns:1fr;padding-top:40px}.s-feats,.s-steps{grid-template-columns:1fr}.s-links{display:none}}

/* soft blur behind popovers */
.blurbg{position:fixed;inset:0;z-index:35;pointer-events:none;background:color-mix(in srgb,var(--bg) 10%,transparent);backdrop-filter:blur(1.2px);-webkit-backdrop-filter:blur(1.2px);opacity:0;transition:opacity .25s ease}
.blurbg.on{opacity:1}
.mapcard:fullscreen .blurbg{position:fixed}
/* account */
.avatar{width:38px;height:38px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line),var(--sh-1);background:linear-gradient(135deg,var(--c-cyan),var(--c-violet));color:#fff;font-weight:800;font-family:var(--f-display);display:grid;place-items:center;padding:0;font-size:.95rem;transition:transform .15s}
.avatar:hover{transform:scale(1.06)}
.avatar svg{width:55%;height:55%}
.mbox.wide{width:min(860px,100%)}
.acc{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:440px}
.acc nav{border-inline-end:1px solid var(--line);padding:12px;display:flex;flex-direction:column;gap:2px;background:color-mix(in srgb,var(--surface-2) 45%,var(--surface))}
.acc nav button{border:0;background:none;text-align:start;padding:8px 12px;border-radius:10px;color:var(--muted);font-weight:600;display:flex;gap:8px;align-items:center}
.acc nav button svg{width:16px;height:16px}
.acc nav button:hover{color:var(--ink);background:var(--surface)}
.acc nav button[aria-current="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
.acc .pane{padding:18px 20px;display:flex;flex-direction:column;gap:14px;animation:fadeUp .2s ease-out;min-width:0}
.acc .pane h3{margin:0;font-family:var(--f-display);font-size:1.05rem}
.acc .pane .sub{margin:-8px 0 0;color:var(--muted);font-size:.82rem}
@media (max-width:640px){.acc{grid-template-columns:1fr}.acc nav{flex-direction:row;overflow-x:auto;border-inline-end:0;border-bottom:1px solid var(--line)}.acc nav button{white-space:nowrap}}
.who{display:flex;gap:14px;align-items:center}
.who .avatar{width:56px;height:56px;font-size:1.3rem}
.mem{display:flex;flex-direction:column;gap:6px}
.mrow{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:12px;flex-wrap:wrap}
.mrow .avatar{width:32px;height:32px;font-size:.8rem;box-shadow:none;border:0}
.mrow .t{flex:1;min-width:140px}.mrow .t b{display:block}.mrow .t small{color:var(--muted);direction:ltr;display:inline-block}
.mrow select{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:3px 8px;font-size:.8rem}
.inv{display:flex;gap:8px;flex-wrap:wrap}
.inv input,.inv select{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:7px 10px}
.inv input{flex:1;min-width:200px}
.usage{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.usage .u{background:var(--surface-2);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.usage .u .l{font-size:.74rem;color:var(--muted)}.usage .u b{font-variant-numeric:tabular-nums}
.roles{font-size:.78rem;color:var(--muted);display:grid;grid-template-columns:auto 1fr;gap:4px 12px}
.roles b{color:var(--ink)}

/* export */
.mbox.xl{width:min(1080px,100%)}
.exp{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:520px}
.exp .opts{border-inline-end:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;max-height:calc(100vh - 200px)}
.fmts{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.fmt{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:8px 10px;text-align:start;display:flex;flex-direction:column;gap:1px;transition:all .15s}
.fmt b{font-size:.86rem}.fmt small{color:var(--muted);font-size:.7rem}
.fmt:hover{border-color:color-mix(in srgb,var(--c-violet) 50%,var(--line))}
.fmt[aria-pressed="true"]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 18%,transparent)}
.prev{padding:16px;display:flex;flex-direction:column;gap:10px;min-width:0;background:repeating-conic-gradient(var(--surface-2) 0 25%,var(--surface) 0 50%) 0 0/18px 18px}
.prev .pv{flex:1;overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;align-items:flex-start;justify-content:center;max-height:calc(100vh - 260px);min-height:360px;box-shadow:var(--sh-1)}
.prev .pv img{max-width:100%;height:auto;display:block;margin:auto;box-shadow:var(--sh-2)}
.prev .pv .pages{display:flex;flex-direction:column;gap:12px;padding:12px;align-items:center;width:100%}
.prev .pv .pages img{max-width:100%;border:1px solid var(--line);border-radius:6px}
.prev .pv pre{margin:0;padding:14px;font-size:.78rem;white-space:pre-wrap;direction:var(--dir,rtl);text-align:var(--start-side,right);width:100%;font-family:ui-monospace,Menlo,Consolas,monospace}
.prev .pv table{width:100%}
.prev .meta{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:var(--muted);flex-wrap:wrap}
@media (max-width:760px){.exp{grid-template-columns:1fr}.exp .opts{border-inline-end:0;border-bottom:1px solid var(--line);max-height:none}}
/* share */
.share{display:flex;flex-direction:column;gap:14px}
.share .card{border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.share .card h4{margin:0;font-family:var(--f-display);font-size:.95rem}
.share .card p{margin:0;color:var(--muted);font-size:.82rem}
.copyrow{display:flex;gap:6px}
.copyrow input,.copyrow textarea{flex:1;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:7px 10px;font-size:.82rem;min-width:0}
.copyrow textarea{min-height:150px;resize:vertical;font-family:inherit;line-height:1.7}
/* presentation */
.mapcard.present .mapbar,.mapcard.present .legend,.mapcard.present .hint{display:none}
.mapcard.present .node .ab{display:none}
.mapcard.present .knob{transform:scale(1.4);transform-box:fill-box;transform-origin:center}
.mapcard.present .knob rect.kface{fill:var(--brand);stroke:none}
.mapcard.present .knob text{fill:#fff;font-size:13px}
.mapcard.present .node{cursor:pointer}
.mapcard.present.pfs{position:fixed;inset:0;z-index:60;margin:0;border-radius:0;border:0;max-width:none;width:100vw;height:100vh;height:100dvh;min-height:0}
.pbar{flex-wrap:wrap}
.pbar .plvl{flex-basis:100%;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.8rem;color:var(--muted);border-top:1px solid var(--line);padding-top:8px;margin-top:4px}
.pbar .plvl [aria-pressed="true"]{background:var(--brand);color:#fff;border-color:var(--brand)}
.pbar .plvl small{margin-inline-start:auto}
.presenting .aifab,.presenting .aip{display:none!important}
.pbar{position:absolute;z-index:40;bottom:18px;left:50%;transform:translateX(-50%);width:min(760px,calc(100% - 32px));background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh-3);padding:14px 18px;display:flex;gap:14px;align-items:center;direction:var(--dir,rtl);animation:upIn .35s cubic-bezier(.2,.9,.25,1)}
.pbar .txt{flex:1;min-width:0}
.pbar .txt .k{font-size:.72rem;color:var(--muted)}
.pbar .txt h3{margin:0;font-family:var(--f-display);font-size:1.25rem;line-height:1.3;animation:fadeUp .3s ease-out}
.pbar .txt p{margin:2px 0 0;color:var(--muted);font-size:.86rem;animation:fadeUp .35s ease-out}
.pbar .ctl{display:flex;gap:6px;align-items:center}
.pbar .dots{position:absolute;top:-10px;inset-inline:24px;display:flex;gap:3px}
.pbar .dots i{flex:1;height:3px;border-radius:2px;background:var(--line)}
.pbar .dots i.on{background:linear-gradient(90deg,var(--c-cyan),var(--c-violet))}
.ptitle{position:absolute;z-index:40;top:18px;inset-inline-start:22px;font-family:var(--f-display);font-weight:800;font-size:1.1rem;color:var(--ink);background:color-mix(in srgb,var(--surface) 85%,transparent);backdrop-filter:blur(8px);padding:6px 14px;border-radius:12px;border:1px solid var(--line)}
/* assistant extras */
.aimode{display:flex;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:2px}
.aimode button{border:0;background:none;border-radius:7px;padding:2px 8px;font-size:.72rem;color:var(--muted);font-weight:600}
.aimode button[aria-pressed="true"]{background:var(--surface-2);color:var(--ink)}
.msg.a h4{margin:6px 0 4px;font-family:var(--f-display);font-size:.92rem}
.msg.a table{border-collapse:collapse;font-size:.78rem;margin:6px 0;width:100%}
.msg.a td,.msg.a th{border:1px solid var(--line);padding:3px 6px;text-align:start}
.msg.a th{background:var(--surface)}
.ctxchip{display:flex;gap:6px;align-items:center;padding:0 16px 6px;font-size:.75rem;color:var(--muted)}

.chist{flex:1;display:flex;flex-direction:column;min-height:0;width:100%}
.chist>*{width:100%}
.hbar{display:flex;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);align-items:center;flex-wrap:wrap}
.hbar input{flex:1;min-width:140px;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:6px 10px}
.hlist{flex:1;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:4px}
.hrow{display:flex;gap:8px;align-items:center;padding:9px 10px;border-radius:12px;cursor:pointer;border:1px solid transparent;transition:background .15s}
.hrow:hover{background:var(--surface-2)}
.hrow.cur{border-color:color-mix(in srgb,var(--brand) 35%,var(--line));background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.hrow .t{flex:1;min-width:0}.hrow .t b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.88rem}.hrow .t small{color:var(--muted);font-size:.72rem}
.hrow .ha{display:flex;gap:2px;opacity:.35;transition:opacity .15s}.hrow:hover .ha,.hrow:focus-within .ha{opacity:1}
.hrow .ha button{border:0;background:none;padding:3px 6px;border-radius:6px;color:var(--muted);font-size:.8rem}
.hrow .ha button:hover{background:var(--surface);color:var(--ink)}
.hren{width:100%;border:1px solid var(--c-violet);border-radius:8px;padding:4px 8px;background:var(--bg)}
.hfoot{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-top:1px solid var(--line);font-size:.74rem;color:var(--muted)}
.mact{border:0;background:none;padding:1px 6px;border-radius:6px;font-size:.7rem;color:var(--muted)}
.mact:hover{background:var(--surface);color:var(--ink)}
.msg.a .meta{opacity:1}

/* micro-interactions */
.mapcard .mapbar{transition:inset-inline-start .3s cubic-bezier(.2,.9,.25,1)}
.mapcard.with-sheet .vpanel{inset-inline-end:420px}
.mapcard.with-sheet .mapbar{inset-inline-end:min(430px,calc(100% - 320px))}
.legend{max-width:calc(50% - 150px)}
@media (max-width:900px){.legend{max-width:calc(100% - 24px)}}
.link.hov{stroke-opacity:1!important;stroke-width:calc(var(--lw,1.6px) + 1.2px)!important;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--c-violet) 45%,transparent))}
.node.born .sh{animation:born .7s cubic-bezier(.3,1.6,.45,1) both;transform-box:fill-box;transform-origin:center}
.node.born text{animation:fadeIn .5s .2s ease-out both}
@keyframes born{0%{transform:scale(0)}100%{transform:scale(var(--ns,1))}}
.tabpanel{animation:tabIn .35s cubic-bezier(.2,.9,.25,1)}
@keyframes tabIn{from{opacity:0;transform:translateY(8px)}}
.kpi .v{transition:color .2s}
.panel{animation:fadeUp .45s ease-out both}
.bento .panel:nth-child(2){animation-delay:.04s}.bento .panel:nth-child(3){animation-delay:.08s}.bento .panel:nth-child(4){animation-delay:.12s}.bento .panel:nth-child(5){animation-delay:.16s}.bento .panel:nth-child(6){animation-delay:.2s}.bento .panel:nth-child(7){animation-delay:.24s}.bento .panel:nth-child(n+8){animation-delay:.28s}
.kpis .kpi{animation:fadeUp .4s ease-out both}.kpis .kpi:nth-child(2){animation-delay:.03s}.kpis .kpi:nth-child(3){animation-delay:.06s}.kpis .kpi:nth-child(4){animation-delay:.09s}.kpis .kpi:nth-child(5){animation-delay:.12s}.kpis .kpi:nth-child(6){animation-delay:.15s}
.btn,.chip,.seg button,.tools button{-webkit-tap-highlight-color:transparent}
.btn:focus-visible,.seg button:focus-visible,.tools button:focus-visible{outline:2px solid var(--c-violet);outline-offset:2px}
.kbd{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.7rem;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:0 6px;background:var(--surface);color:var(--muted);direction:ltr;display:inline-block;line-height:1.6}
/* command palette */
.cmdk{position:fixed;inset:0;z-index:58;display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;pointer-events:none}
.cmdk .box{pointer-events:auto;width:min(620px,100%);background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh-3);overflow:hidden;direction:var(--dir,rtl);animation:modalIn .22s cubic-bezier(.2,1.1,.3,1)}
.cmdk.out .box{animation:modalOut .16s ease-in forwards}
.cmdk .in{display:flex;gap:10px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}
.cmdk .in svg{width:18px;height:18px;color:var(--muted);flex:none}
.cmdk input{flex:1;border:0;background:none;font-size:1.05rem;outline:none;min-width:0}
.cmdk .res{max-height:min(420px,56vh);overflow-y:auto;padding:6px}
.cmdk .sec{font-size:.7rem;color:var(--muted);font-weight:700;padding:8px 12px 4px}
.cmdk .it{display:flex;gap:10px;align-items:center;padding:8px 12px;border-radius:10px;cursor:pointer}
.cmdk .it[aria-selected="true"]{background:color-mix(in srgb,var(--brand) 10%,var(--surface-2))}
.cmdk .it .ico{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--surface-2);flex:none;font-size:.8rem}
.cmdk .it .t{flex:1;min-width:0}.cmdk .it .t b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdk .it .t small{color:var(--muted);font-size:.72rem}
.cmdk .ft{display:flex;gap:14px;padding:8px 16px;border-top:1px solid var(--line);font-size:.72rem;color:var(--muted);flex-wrap:wrap}
.cmdbtn{display:inline-flex;gap:8px;align-items:center;color:var(--muted)!important;min-width:180px;justify-content:space-between}
/* tour */
.touring .aifab{opacity:1;filter:none}
.tour-ring{position:fixed;z-index:61;border-radius:14px;box-shadow:0 0 0 4px var(--c-violet),0 0 0 9999px rgba(15,14,40,.45);pointer-events:none;transition:all .4s cubic-bezier(.2,.9,.25,1)}
.tour-card{position:fixed;z-index:62;width:min(320px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh-3);padding:16px;direction:var(--dir,rtl);display:flex;flex-direction:column;gap:8px;transition:top .4s cubic-bezier(.2,.9,.25,1),left .4s cubic-bezier(.2,.9,.25,1);animation:pop .25s ease-out}
.tour-card h4{margin:0;font-family:var(--f-display);font-size:1.05rem}
.tour-card p{margin:0;color:var(--muted);font-size:.86rem}
.tour-card .row{display:flex;gap:6px;align-items:center}
.tour-card .dots{display:flex;gap:4px;flex:1}.tour-card .dots i{width:6px;height:6px;border-radius:50%;background:var(--line)}.tour-card .dots i.on{background:var(--brand);width:16px;border-radius:3px}
/* mobile polish */
@media (max-width:760px){
  .mapbar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;inset-inline:8px;padding-bottom:4px}
  .mapbar::-webkit-scrollbar{display:none}
  .mapbar>*{flex:none}
  .mapbar .search{width:150px}
  .mapcard{height:calc(100svh - 230px);min-height:300px}
  .top{gap:8px}
  .top .btn{padding:6px 10px}
  .brandmark img{height:34px}.brandmark h1{font-size:1.1rem}.brandmark p{display:none}
  .cmdbtn{min-width:0}.cmdbtn .lbl,.cmdbtn .kbd{display:none}
  .hint{display:none}
  .legend{display:none}
  #themeSeg{display:none}
  .top .btn .lbl{display:none}
  .top .btn{min-height:36px}
  .brandmark .sep,.brandmark>div{display:none}
  .mapsw .btn{max-width:150px}
  .notice{font-size:.76rem;padding:6px 10px}
  .legend{font-size:.68rem;gap:8px;max-width:calc(100% - 140px)}
}

@media (max-width:700px){
  .seg button{min-height:36px}
  .aimode button{min-height:30px;padding:2px 10px}
  .tbl th button{padding:8px 2px;min-height:32px}
  .s-proto button{padding:6px 12px}
  .fbar .chip,.slegend .chip{min-height:30px}
  .aifab{padding:0;width:52px;height:52px;justify-content:center;border-radius:50%;font-size:0;gap:0}
  .aifab .orb{width:24px;height:24px}
  .kpi .v{font-size:1.35rem}
}
@media (max-width:860px){.s-art{max-width:440px;margin-inline:auto;width:100%}}

/* auth journey */
.auth{position:fixed;inset:0;z-index:80;background:var(--bg);overflow-y:auto;direction:var(--dir,rtl);animation:fadeIn .25s ease-out}
.auth.out{animation:fadeOut .2s ease-in forwards}
.auth::before{content:"";position:fixed;inset:-20% -10% auto auto;width:60vw;height:60vw;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c-violet) 16%,transparent),transparent 65%);pointer-events:none}
.au-wrap{max-width:1040px;margin-inline:auto;padding:16px 20px 40px;position:relative}
.au-top{display:flex;align-items:center;gap:12px;padding-block:6px 20px}
.au-main{display:grid;grid-template-columns:minmax(0,480px);justify-content:center;gap:22px;align-items:start}
.au-main.has-aside{grid-template-columns:minmax(0,480px) minmax(0,340px)}
.au-card{background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--sh-3),var(--ring);padding:24px;display:flex;flex-direction:column;gap:14px;animation:modalIn .35s cubic-bezier(.2,1.1,.3,1)}
.au-body{display:flex;flex-direction:column;gap:12px;animation:fadeUp .3s ease-out}
.au-body h2{margin:0;font-family:var(--f-display);font-weight:900;font-size:1.6rem;line-height:1.3}
.au-body .sub{margin:-4px 0 4px;color:var(--muted)}
.au-body form{display:flex;flex-direction:column;gap:12px}
.au-body .f input,.au-body .f textarea{border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:11px 13px;width:100%;font-size:1rem}
.au-body .f input:focus,.au-body .f textarea:focus{outline:none;border-color:var(--c-violet);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-violet) 20%,transparent)}
.au-body .f textarea{min-height:90px}
.gbtn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#fff!important;color:#1f1f1f!important;border:1px solid #dadce0!important;font-weight:600;text-decoration:none}
.gbtn:hover{background:#f8f9fa!important;box-shadow:0 1px 3px rgba(60,64,67,.25)}
[data-theme=dark] .gbtn,:root[data-theme=dark] .gbtn{background:#131314!important;color:#e3e3e3!important;border-color:#8e918f!important}
/* trial without an account */
/* import: steps, data preview, growing map */
.imp-steps{display:flex;gap:6px;list-style:none;margin:0 0 12px;padding:0;counter-reset:s}
.imp-steps li{flex:1;display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;color:var(--muted);padding:6px 8px;border-radius:10px;background:var(--surface-2)}
.imp-steps li span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:.7rem;background:var(--surface);border:1px solid var(--line)}
.imp-steps li.on{color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,var(--surface))}.imp-steps li.on span{background:var(--brand);color:#fff;border-color:var(--brand)}
.imp-steps li.done{color:color-mix(in srgb,var(--muted) 60%,var(--ink))}.imp-steps li.done span{background:color-mix(in srgb,#16a35f 18%,var(--surface));color:#16a35f;border-color:transparent}
.imp-read{margin:0 0 10px;font-size:.92rem}.imp-read b{color:var(--brand)}
.imp-tbl{overflow:auto;max-height:360px;border:1px solid var(--line);border-radius:12px}
.imp-tbl table{border-collapse:collapse;width:100%;font-size:.8rem}
.imp-tbl th{position:sticky;top:0;background:var(--surface-2);font-weight:800;text-align:start;padding:8px 10px;white-space:nowrap;border-bottom:1px solid var(--line)}
.imp-tbl td{padding:6px 10px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.imp-tbl tbody tr{animation:impRow .35s ease-out both;animation-delay:calc(var(--i) * 40ms)}
@keyframes impRow{from{opacity:0;transform:translateY(6px)}}
.imp-dl{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:6px 10px}
.imp-dl .imp-ol li{animation:impRow .3s ease-out both;animation-delay:calc(min(var(--d,0),3) * 60ms)}
.imp-th .th-root{transform-origin:110px 70px}
.imp-th.grow .th-e{opacity:0;transition:opacity .35s ease}
.imp-th.grow .th-e path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .45s ease}
.imp-th.grow .th-e circle{transform-box:fill-box;transform-origin:center;transform:scale(0);transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.imp-th.grow.play .th-e,.imp-th.grow .th-e.on{opacity:1}
.imp-th.grow.play .th-e path,.imp-th.grow .th-e.on path{stroke-dashoffset:0}
.imp-th.grow.play .th-e circle,.imp-th.grow .th-e.on circle{transform:scale(1)}
.imp-th.grow.play .th-e,.imp-th.grow.play .th-e path,.imp-th.grow.play .th-e circle{transition-delay:calc(var(--o) * 28ms)}
.imp-stage{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 0 4px;text-align:center}
.imp-stw{width:min(520px,100%)}.imp-th.big{width:100%;height:auto}
.imp-th.big .th-root{animation:impPulse 1.4s ease-in-out infinite}
@keyframes impPulse{50%{transform:scale(1.18)}}
.imp-phase{font-size:1rem}
.imp-bar{width:min(360px,90%);height:8px;border-radius:9px;background:var(--surface-2);overflow:hidden}.imp-bar i{display:block;height:100%;width:0;border-radius:9px;background:linear-gradient(90deg,var(--c-cyan),var(--brand));transition:width .2s}
#impCnt{color:var(--muted);font-variant-numeric:tabular-nums}
.imp-nextc{position:fixed;z-index:60;bottom:86px;inset-inline-start:50%;transform:translateX(50%);display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;max-width:calc(100vw - 24px);padding:10px 12px 10px 16px;padding-inline:16px 40px;border-radius:16px;background:var(--surface);border:1px solid color-mix(in srgb,var(--brand) 25%,var(--line));box-shadow:0 18px 40px -14px rgba(30,25,90,.4);animation:impIn .35s cubic-bezier(.2,.9,.25,1.2)}
html[dir=ltr] .imp-nextc{transform:translateX(-50%)}
.imp-nextc>span{color:var(--muted);font-size:.84rem}.imp-nextc>div{display:flex;flex-wrap:wrap;gap:6px}
.imp-nextc .imp-nx{position:absolute;top:8px;inset-inline-end:8px;border:0;background:none;color:var(--muted);cursor:pointer}
.imp-nextc.out{opacity:0;transition:opacity .3s}
@keyframes impIn{from{opacity:0;translate:0 14px}}
@media (max-width:760px){.imp-nextc{bottom:calc(var(--bnavh,0px) + 14px)}}
@media (prefers-reduced-motion:reduce){.imp-tbl tbody tr,.imp-dl .imp-ol li,.imp-th.big .th-root{animation:none}.imp-th.grow .th-e,.imp-th.grow .th-e path,.imp-th.grow .th-e circle{transition:none}}
.trialbar{position:fixed;z-index:46;bottom:16px;inset-inline-start:50%;transform:translateX(50%);display:flex;align-items:center;gap:10px;padding:7px 8px 7px 14px;padding-inline:14px 8px;border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid color-mix(in srgb,var(--brand) 22%,var(--line));box-shadow:0 10px 30px -12px rgba(40,30,120,.35);font-size:.84rem;white-space:nowrap;max-width:calc(100vw - 24px)}
html[dir=ltr] .trialbar{transform:translateX(-50%)}
.trialbar b{font-weight:800}.trialbar small{color:var(--muted);font-weight:600}
.trb-ic{color:var(--brand)}
.trb-m{width:84px;height:6px;border-radius:9px;background:color-mix(in srgb,var(--brand) 14%,var(--surface-2));overflow:hidden;cursor:help}
.trb-m i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--c-cyan),var(--brand));transition:width .4s}
.trialbar.locked{border-color:color-mix(in srgb,#dc3c3c 40%,var(--line))}.trialbar.locked .trb-m i{background:#dc3c3c}
.trialbar .btn{border-radius:999px}
@media (max-width:760px){body.has-side .trialbar{bottom:calc(var(--bnavh) + env(safe-area-inset-bottom,0px) + 10px)}.trialbar small,.trialbar .trb-m{display:none}.trialbar{font-size:.8rem;gap:8px}}

.au-why{display:flex;flex-direction:column;gap:2px;padding:12px 14px;margin:0 0 14px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 12%,var(--surface)),color-mix(in srgb,var(--c-cyan) 10%,var(--surface)));border:1px solid color-mix(in srgb,var(--brand) 25%,var(--line))}
.au-why b{font-size:.98rem}.au-why span{color:color-mix(in srgb,var(--muted) 70%,var(--ink));font-size:.84rem}
.au-try{display:flex;justify-content:center;align-items:center;gap:6px;margin:12px 0 2px;padding:10px;border-radius:12px;border:1px dashed color-mix(in srgb,var(--brand) 40%,var(--line));color:var(--brand);font-weight:800;text-decoration:none;font-size:.9rem;transition:background .15s}
.au-try:hover{background:color-mix(in srgb,var(--brand) 7%,transparent)}
.sx-try{box-shadow:0 12px 30px -10px color-mix(in srgb,var(--brand) 70%,transparent)}
.au-prov{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 2px}
.au-prov.one{grid-template-columns:1fr}
.pbtn{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 10px!important;border-radius:12px!important;background:#fff!important;color:#1f1f1f!important;border:1px solid #dadce0!important;font-weight:600;text-decoration:none;min-height:46px;font-size:.92rem}
.pbtn:hover{background:#f8f9fa!important;box-shadow:0 1px 3px rgba(60,64,67,.25)}
.pbtn.p-apple{background:#000!important;color:#fff!important;border-color:#000!important}
.pbtn.p-apple:hover{background:#1d1d1f!important}
.pbtn .last{position:absolute;top:-8px;inset-inline-end:8px;font-style:normal;font-size:.62rem;font-weight:700;background:var(--brand);color:#fff;border-radius:999px;padding:1px 7px}
.pbtn.busy{pointer-events:none;opacity:.75}
.pbtn .spin{width:14px;height:14px}
:root[data-theme=dark] .pbtn:not(.p-apple){background:#131314!important;color:#e3e3e3!important;border-color:#5f6368!important}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pbtn:not(.p-apple){background:#131314!important;color:#e3e3e3!important;border-color:#5f6368!important}}
.legal{font-size:.76rem;color:var(--muted);margin:12px 0 0;line-height:1.7}
.legal a{color:inherit;text-decoration:underline}
.pbtn .l{display:none}.au-prov.one .pbtn .l{display:inline}.au-prov.one .pbtn .s{display:none}
@media (max-width:460px){.au-prov:not(.one){grid-template-columns:1fr}.au-prov .pbtn .l{display:inline}.au-prov .pbtn .s{display:none}}
.au-or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.8rem;margin:14px 0 10px}
.au-or::before,.au-or::after{content:"";flex:1;height:1px;background:var(--line)}
.em-ask{display:flex;gap:8px;margin:6px 0 2px;width:100%}
.emptymap .box:has(.em-ask){max-width:min(480px,calc(100vw - 32px))}
.em-ask[hidden],.em-tpl[hidden],.em-or[hidden]{display:none}
.em-ask input{flex:1;min-width:0;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit}
.em-tpl{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:4px;align-items:center}
.em-tpl .em-tl{font-size:.74rem;color:var(--muted);font-weight:700;width:100%}
.em-tpl .chip{cursor:pointer;padding:7px 12px;font-size:.84rem;border:1px solid var(--line);background:var(--surface)}
.em-tpl .chip:hover{border-color:var(--brand);color:var(--brand)}
.em-prog{font-size:.84rem;color:var(--ink);font-weight:600;display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}
.emptymap .box.busy .em-tpl,.emptymap .box.busy .em-ask,.emptymap .box.busy .row{opacity:.45;pointer-events:none}
.em-or{color:var(--muted);font-size:.8rem;margin:10px 0 6px}
.au-cta{width:100%;justify-content:center;padding:12px 16px!important;font-size:1rem;border-radius:13px!important;margin-top:4px}
.au-steps{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;gap:4px}
.au-steps li{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;min-width:0}
.au-steps li span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--muted);font-weight:700;font-size:.8rem;transition:all .3s}
.au-steps li b{font-size:.7rem;color:var(--muted);font-weight:600;white-space:nowrap}
.au-steps li.on span{background:var(--brand);color:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 20%,transparent)}
.au-steps li.on b{color:var(--ink)}
.au-steps li.st-ok span{background:color-mix(in srgb,var(--s-live) 18%,var(--surface));color:color-mix(in srgb,var(--s-live) 62%,var(--ink))}
.au-bar{height:4px;border-radius:4px;background:var(--surface-2);overflow:hidden;margin-top:-4px}
.au-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--c-cyan),var(--c-violet));transition:width .5s cubic-bezier(.2,.9,.25,1)}
.lnk{border:0;background:none;padding:6px 2px;min-height:32px;color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.au-back{align-self:flex-start;text-decoration:none;color:var(--muted)}
.alt{margin:0;text-align:center;color:var(--muted);font-size:.88rem}
.err{color:color-mix(in srgb,var(--s-paused) 62%,var(--ink));font-size:.84rem;min-height:1.2em}
.err.shake{animation:shake .35s}
@keyframes shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.hintbox{font-size:.8rem;color:var(--muted);background:var(--surface-2);border-radius:10px;padding:8px 10px}
.otp{display:flex;gap:8px;justify-content:center}
.otp input{width:48px;height:56px;text-align:center;font-size:1.4rem;font-weight:800;border:1px solid var(--line);background:var(--bg);border-radius:12px;font-variant-numeric:tabular-nums}
.otp input:focus{outline:none;border-color:var(--c-violet);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-violet) 20%,transparent)}
.fl2{font-size:.76rem;color:var(--muted);font-weight:600}
.pills{display:flex;flex-wrap:wrap;gap:6px}
.pills button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 13px;font-size:.86rem;transition:all .15s;min-height:36px}
.pills button[aria-pressed="true"]{background:color-mix(in srgb,var(--brand) 12%,var(--surface));border-color:var(--brand);color:var(--ink);font-weight:700}
.au-plans{display:flex;flex-direction:column;gap:8px}
.au-plan{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:14px;display:flex;gap:12px;align-items:center;text-align:start;transition:all .15s}
.au-plan:hover{border-color:color-mix(in srgb,var(--c-violet) 50%,var(--line))}
.au-plan[aria-pressed="true"]{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent);background:color-mix(in srgb,var(--brand) 5%,var(--surface))}
.au-plan .t{flex:1;min-width:0}.au-plan .t b{display:block;font-family:var(--f-display);font-size:1.05rem}.au-plan .t small{color:var(--muted);font-size:.78rem}
.au-plan .pr{font-family:var(--f-display);font-weight:900;font-size:1.25rem;white-space:nowrap}.au-plan .pr small{font-family:var(--f-body);font-weight:500;font-size:.72rem;color:var(--muted)}
.au-meth{width:100%}.au-meth button{flex:1}
.applebtn{background:#000!important;color:#fff!important;border-color:#000!important;font-weight:700}
.au-aside{position:sticky;top:20px}
.au-sum{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--sh-2);animation:fadeUp .35s ease-out}
.au-sum .k{font-family:var(--f-display);font-weight:800}
.au-sum .row{display:flex;justify-content:space-between;gap:10px;font-size:.9rem;color:var(--muted)}
.au-sum .row b{color:var(--ink);font-variant-numeric:tabular-nums}
.au-sum .tot{border-top:1px dashed var(--line);padding-top:10px;font-size:1.05rem;color:var(--ink)}
.au-sum .tot b{font-family:var(--f-display);font-size:1.3rem}
.au-sum .save{font-size:.8rem;color:color-mix(in srgb,var(--s-live) 62%,var(--ink));background:color-mix(in srgb,var(--s-live) 10%,var(--surface));border-radius:8px;padding:6px 10px}
.au-sum ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:5px;font-size:.84rem}
.au-sum li::before{content:"✓ ";color:color-mix(in srgb,var(--s-live) 62%,var(--ink));font-weight:700}
.au-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding-block:10px}
.au-done .note{font-size:.75rem;color:var(--muted);margin:0}
.burst{position:relative;width:96px;height:96px;display:grid;place-items:center;margin-bottom:6px}
.burst .ck{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--s-live),var(--c-teal));color:#fff;font-size:2rem;display:grid;place-items:center;box-shadow:0 12px 30px -8px var(--s-live);animation:born .6s cubic-bezier(.3,1.6,.45,1) both}
.burst i{position:absolute;width:8px;height:8px;border-radius:2px;background:var(--c-violet);top:44px;left:44px;transform:rotate(var(--a)) translateY(0);opacity:0;animation:burst .9s cubic-bezier(.2,.8,.3,1) var(--d) forwards}
.burst i:nth-child(3n){background:var(--c-cyan)}.burst i:nth-child(3n+1){background:var(--s-dev)}
@keyframes burst{0%{opacity:1;transform:rotate(var(--a)) translateY(0)}100%{opacity:0;transform:rotate(var(--a)) translateY(-70px)}}
@media (max-width:860px){.au-main.has-aside{grid-template-columns:minmax(0,520px)}.au-aside{position:static;order:2}}
@media (max-width:520px){.au-wrap{padding:10px 12px 30px}.au-card{padding:18px;border-radius:20px}.au-body h2{font-size:1.35rem}.otp{gap:6px}.otp input{width:42px;height:50px}.au-steps li b{display:none}}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* ===== view modes ===== */
.modesw{position:relative}
.mapbar.mm-open{z-index:40}
@media (max-width:760px){body.mm-open #aiFab{opacity:0;pointer-events:none}}
#modeBtn{display:inline-flex;align-items:center;gap:6px;font-weight:700;box-shadow:var(--sh-2)}
#modeBtn .ico svg,.mm-it .ico svg{width:18px;height:18px}
#modeBtn .ico{display:inline-flex;color:var(--brand)}
.modemenu{width:min(560px,calc(100vw - 32px));max-height:min(70vh,560px);overflow:auto;gap:4px;padding:10px}
.mm-g{font-size:.72rem;font-weight:800;color:var(--muted);padding:6px 6px 2px;letter-spacing:.02em}
.mm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}
.mm-it{display:flex;gap:10px;align-items:flex-start;text-align:start;padding:9px 10px;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer;transition:transform .15s,border-color .15s,background .15s,box-shadow .15s;color:var(--ink)}
.mm-it:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));transform:translateY(-1px);box-shadow:var(--sh-1)}
.mm-it[aria-pressed="true"]{background:color-mix(in srgb,var(--brand) 10%,var(--surface));border-color:var(--brand)}
.mm-it .ico{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);color:var(--brand)}
.mm-it[aria-pressed="true"] .ico{background:var(--brand);color:#fff}
.mm-it .t{display:flex;flex-direction:column;gap:2px;min-width:0}
.mm-it b{font-size:.84rem}.mm-it small{font-size:.7rem;color:var(--muted);line-height:1.45}
.mm-enc{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:6px 8px;align-items:center;padding:4px 6px 2px;font-size:.8rem}
.mm-enc select{padding:6px 8px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit}
.seg.wrap{flex-wrap:wrap}
.galt .alt-el{cursor:pointer;transition:opacity .2s,filter .2s}
.galt .alt-el:hover{filter:brightness(1.08) drop-shadow(0 4px 10px rgba(40,30,140,.18))}
.galt .alt-el.dim{opacity:.18}
.galt .alt-el.sel>rect,.galt .alt-el.sel>circle,.galt path.alt-el.sel{stroke:var(--ink)!important;stroke-width:2.5px!important}
.galt text,.alt-lbl{font-family:var(--f-display,inherit);fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}
.galt .alt-center text{stroke:none}
/* HTML views */
.altview{position:absolute;inset:64px 0 0 0;overflow:auto;padding:6px 14px 60px;z-index:1}
.mapcard.html-view{background:var(--bg)}
.mapcard.html-view .legend,.mapcard.html-view .hint,.mapcard.html-view #zIn,.mapcard.html-view #zOut,.mapcard.html-view #zFit,.mapcard.html-view #replayBtn,.mapcard.html-view #lockBtn{display:none}
.altview .dim{opacity:.28}
.altview .sel{outline:2px solid var(--brand);outline-offset:1px}
/* kanban */
.kb-cols{display:grid;grid-template-columns:repeat(5,minmax(176px,1fr));gap:12px;min-height:100%;align-items:start}
.kcol{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--sh-1);transition:border-color .15s,background .15s;animation:pop .3s ease-out both}
.kcol:nth-child(2){animation-delay:.04s}.kcol:nth-child(3){animation-delay:.08s}.kcol:nth-child(4){animation-delay:.12s}.kcol:nth-child(5){animation-delay:.16s}
.kcol.over{border-color:var(--sc);background:color-mix(in srgb,var(--sc) 8%,var(--surface))}
.kcol header{display:flex;align-items:center;gap:8px;font-size:.88rem;padding:2px 4px}
.kcol header i{width:10px;height:10px;border-radius:50%;background:var(--sc)}
.kcol header b{flex:1}
.kadd{border:1px dashed var(--line);background:none;border-radius:8px;width:30px;height:30px;cursor:pointer;color:var(--muted)}
.kadd:hover{border-color:var(--sc);color:var(--ink)}
.kdrop{display:flex;flex-direction:column;gap:8px;min-height:60px}
.kempty{font-size:.78rem;color:var(--muted);border:1px dashed var(--line);border-radius:12px;padding:14px;text-align:center}
.kcard{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--kc);cursor:pointer;box-shadow:var(--sh-1);transition:transform .15s,box-shadow .15s;font-size:.84rem;color:var(--ink)}
.kcard:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}
.kcard:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.kcard.dragging{opacity:.35}
.kcard.lift{transform:scale(1.03);box-shadow:var(--sh-3)}
.kghost{position:fixed;z-index:200;pointer-events:none;box-shadow:var(--sh-3);opacity:.95;transition:none}
.kcol.over{outline:2px dashed var(--sc);outline-offset:-2px}
.kcard .kt{font-weight:700;line-height:1.4}
.kcard .km{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.kcard .ko,.kcard .kd{font-size:.72rem;color:var(--muted)}
.kcard .kb{display:flex;align-items:center;gap:8px;font-size:.72rem}.kcard .kb .meter{flex:1;height:6px}
/* timeline */
.tl-view{display:flex;flex-direction:column;gap:12px}
.tlv{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-1);overflow:hidden;animation:pop .3s ease-out}
.tlv-lanes{flex:none;width:170px;border-inline-end:1px solid var(--line);background:var(--surface)}
.tlv-h{height:40px;border-bottom:1px solid var(--line);display:flex}
.tlv-ln{display:flex;align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid var(--line);font-size:.84rem}
.tlv-ln i{width:10px;height:10px;border-radius:50%;flex:none}.tlv-ln b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tlv-ln span{color:var(--muted);font-size:.75rem}
.tlv-scroll{flex:1;overflow-x:auto;overflow-y:hidden}
.tlv-grid{position:relative}
.tlv-grid .tlv-h span{flex:none;display:flex;flex-direction:column;justify-content:center;padding:0 8px;font-size:.72rem;color:var(--muted);border-inline-start:1px solid var(--line)}
.tlv-grid .tlv-h span.yr{border-inline-start:2px solid color-mix(in srgb,var(--brand) 40%,var(--line))}
.tlv-grid .tlv-h b{color:var(--ink);font-size:.74rem}
.tlv-row{position:relative;border-bottom:1px solid var(--line);background:repeating-linear-gradient(var(--grad-start,to left),transparent 0 91px,color-mix(in srgb,var(--line) 60%,transparent) 91px 92px)}
.tlv-it{all:unset;box-sizing:border-box;position:absolute;display:flex;align-items:center;gap:6px;max-width:165px;height:34px;padding:0 10px;border-radius:10px;background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--kc);box-shadow:var(--sh-1);font-size:.78rem;cursor:pointer;white-space:nowrap;transition:transform .15s,box-shadow .15s;color:var(--ink)}
.tlv-it:hover{transform:translateY(-2px);box-shadow:var(--sh-2);z-index:2}
.tlv-it:focus-visible{outline:2px solid var(--brand)}
.tlv-it i{width:8px;height:8px;border-radius:50%;background:var(--kc);flex:none}
.tlv-it span{overflow:hidden;text-overflow:ellipsis}.tlv-it small{color:var(--muted)}
.tlv-today{position:absolute;top:0;bottom:0;width:0;border-inline-start:2px dashed var(--s-dev,#E8A33D);pointer-events:none}
.tlv-today span{position:absolute;top:44px;transform:translateX(calc(50% * var(--dirx,1)));font-size:.68rem;font-weight:800;background:var(--s-dev,#E8A33D);color:#fff;border-radius:6px;padding:1px 6px}
.tlv-und{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.8rem;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.tlv-und b{margin-inline-end:6px}
/* outline */
.outline{background:var(--bg)}
.ol-head,.ol-row{display:flex;align-items:center;gap:10px;font-size:.84rem}
.ol-head{position:sticky;top:-6px;z-index:2;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:.74rem;font-weight:800;color:var(--muted);margin-bottom:6px;box-shadow:var(--sh-1)}
.ol-tree,.ol-tree ul{list-style:none;margin:0;padding:0}
.ol-tree{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-1);overflow:hidden;animation:pop .3s ease-out}
.ol-row{padding:6px 12px;padding-inline-start:calc(12px + var(--d)*22px);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);min-height:40px;transition:background .12s}
.ol-row:hover{background:var(--surface-2)}
.ol-track>.ol-row{background:color-mix(in srgb,var(--surface-2) 60%,var(--surface));font-weight:800}
.ol-tg{all:unset;width:22px;height:22px;display:grid;place-items:center;border-radius:6px;cursor:pointer;color:var(--muted);flex:none}
button.ol-tg:hover{background:var(--line)}
.ol-dot{width:10px;height:10px;border-radius:50%;flex:none}
.ol-nm{all:unset;cursor:pointer;font-weight:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink)}
.ol-nm:hover{color:var(--brand);text-decoration:underline}
.ol-nm:focus-visible{outline:2px solid var(--brand)}
.ol-en{color:var(--muted);font-size:.74rem;white-space:nowrap}
.ol-sp{flex:1}
.ol-r{width:120px;display:flex;align-items:center;gap:6px;flex:none}.ol-r .meter{flex:1;height:6px}.ol-r b{font-size:.72rem;width:34px}
.ol-o{width:110px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.78rem}
.ol-dt{width:96px;flex:none;color:var(--muted);font-size:.76rem}
.ol-c{color:var(--muted);font-size:.76rem;font-weight:500}
.ol-head .ol-r,.ol-head .ol-o,.ol-head .ol-dt{display:block}
.ol-head>span:nth-child(3){width:86px}
.ol-row .chip{width:86px;justify-content:center;flex:none}
.ol-add{border:1px dashed var(--line);background:none;border-radius:8px;width:28px;height:28px;cursor:pointer;color:var(--muted);opacity:0;transition:opacity .15s}
.ol-row:hover .ol-add,.ol-add:focus-visible{opacity:1}
#focusChip button{all:unset;cursor:pointer;padding:0 4px;border-radius:6px}
#focusChip button:hover{background:var(--surface-2)}
@media (max-width:760px){
  .modemenu{position:fixed;top:auto;bottom:calc(var(--bnavh,0px) + 12px + env(safe-area-inset-bottom,0px));inset-inline:12px;width:auto;max-height:calc(100vh - var(--bnavh,0px) - 120px);max-height:calc(100dvh - var(--bnavh,0px) - 120px);z-index:60}
  #modeBtn .lbl{display:none}
  .mm-grid{grid-template-columns:1fr 1fr}
  .mm-it small{display:none}
  .mm-enc{grid-template-columns:auto 1fr}
  .altview{inset:58px 0 0 0;padding:4px 8px 40px}
  .kb-cols{grid-template-columns:repeat(5,minmax(230px,82vw));scroll-snap-type:x mandatory}
  .kcol{scroll-snap-align:start}
  .tlv-lanes{width:96px}.tlv-ln{padding:0 8px}.tlv-ln span{display:none}
  .ol-head{display:none}
  .ol-o,.ol-dt,.ol-en{display:none}
  .ol-r{width:70px}.ol-row .chip{width:auto}
  .ol-row{gap:6px;padding-inline-start:calc(8px + var(--d)*14px)}
  .ol-add{opacity:1}
}
@media (max-width:420px){.ol-row .chip{display:none}}
/* table view */
.tblv{display:flex;flex-direction:column;gap:10px}
.tblbar{display:flex;align-items:center;gap:10px;font-size:.86rem}
.tblhint{color:var(--muted);font-size:.78rem}
.tblscroll{overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-1);animation:pop .3s ease-out}
.dtbl{min-width:980px;font-size:.84rem}
.dtbl thead th{position:sticky;top:0;z-index:1;background:var(--surface-2)}
.dtbl th button{all:unset;cursor:pointer;font-weight:800;font-size:.76rem;color:var(--muted);white-space:nowrap}
.dtbl th button:hover,.dtbl th button[aria-sort$="ending"]{color:var(--ink)}
.dtbl td{vertical-align:middle;white-space:nowrap}
.dtbl tbody tr{transition:background .12s}.dtbl tbody tr:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}
.dtbl .tn .lnk{font-weight:700;color:var(--ink);max-width:240px;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:middle}
.dtbl .tn small{display:block;color:var(--muted);font-size:.72rem}
.dtbl .tg{color:var(--muted);max-width:160px;overflow:hidden;text-overflow:ellipsis}
.dtbl .numc{text-align:end}
.dtbl .tr{display:flex;align-items:center;gap:6px}.dtbl .tr .meter{width:60px;height:6px}
.dtbl .cell{font:inherit;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:8px;padding:4px 6px;max-width:150px}
.dtbl .cell:hover{border-color:var(--line);background:var(--bg)}
.dtbl .cell:focus{outline:none;border-color:var(--c-violet);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-violet) 15%,transparent)}
.dtbl .cell.num{width:84px;text-align:end}.dtbl .tr .cell.num{width:58px}
.dtbl tfoot td{background:var(--surface-2);font-size:.8rem}
.dtbl tr.dim{opacity:.3}.dtbl tr.sel{outline:2px solid var(--brand);outline-offset:-2px}
/* cards view */
.cardsv{display:flex;flex-direction:column;gap:18px}
.csec h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:1rem}
.csec h3 i{width:10px;height:10px;border-radius:50%}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.icard{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--kc);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px;cursor:pointer;box-shadow:var(--sh-1);transition:transform .15s,box-shadow .15s;animation:pop .3s ease-out both}
.icard:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.icard:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.icard header{display:flex;gap:10px;align-items:center}
.icard .ring{flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--rc) calc(var(--p)*1%),var(--surface-2) 0)}
.icard .ring b{width:36px;height:36px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-size:.72rem}
.icard .ttl{display:flex;flex-direction:column;min-width:0}.icard .ttl b{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icard .ttl small{color:var(--muted);font-size:.74rem}
.icard .meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.icard .grp{font-size:.74rem;color:var(--muted)}
.icard p{margin:0;font-size:.82rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.6}
.icard dl{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0}.icard dl div{background:var(--surface-2);border-radius:10px;padding:6px 8px}
.icard dt{font-size:.66rem;color:var(--muted)}.icard dd{margin:0;font-weight:700;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icard footer{display:flex;align-items:center;font-size:.78rem}.icard .own{display:inline-flex;align-items:center;gap:6px}
.icard .own svg,.icard .own:not(.muted)::before{flex:none}
.icard .muted{color:var(--muted)}
.icard.dim{opacity:.3}.icard.sel{outline:2px solid var(--brand)}
/* readable document view */
.docv{background:var(--bg)}
.docbar{display:flex;gap:8px;justify-content:flex-end;max-width:820px;margin:0 auto 10px}
.docpage{max-width:820px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh-1);padding:36px 44px;line-height:1.9;animation:pop .3s ease-out}
.docpage h1{font-family:var(--f-display);margin:0;font-size:1.7rem}
.docpage h2{font-size:1.25rem;margin:28px 0 4px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.docpage h3{font-size:1.05rem;margin:18px 0 2px}.docpage h4{font-size:.95rem;margin:14px 0 2px}
.docpage .lnk{all:unset;cursor:pointer}.docpage .lnk:hover{color:var(--brand);text-decoration:underline}
.docpage p{margin:4px 0}.dlead,.dsum,.dmeta,.den{color:var(--muted)}.dsum{font-size:.86rem}
.ditem{padding:4px 0}.ditem .dname{font-weight:700}.ddesc{font-size:.9rem;color:var(--ink);opacity:.85;padding-inline-start:14px;border-inline-start:2px solid var(--line)}
.dkpi{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.dkpi div{background:var(--surface-2);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}.dkpi b{font-size:1.2rem}.dkpi span{font-size:.75rem;color:var(--muted)}
.docv .dim{opacity:.3}.docv .sel{outline:2px solid var(--brand);border-radius:6px}
@media (max-width:760px){.docpage{padding:20px 16px}.dkpi{grid-template-columns:repeat(2,1fr)}.cgrid{grid-template-columns:1fr}}

/* docked assistant (desktop): takes part of the screen, content reflows */
:root{--aiw:400px}
body.ai-docked{padding-inline-end:var(--aiw);--aidock:var(--aiw);transition:padding .28s cubic-bezier(.2,.9,.25,1)}
.aip.docked{top:0;bottom:0;inset-inline-end:0;height:auto;width:var(--aiw);max-width:none;border-radius:0;border:0;border-inline-start:1px solid var(--line);box-shadow:-8px 0 30px -18px rgba(40,30,140,.25);animation:dockIn .3s cubic-bezier(.2,.9,.25,1)}
.aip.docked.out{animation:dockOut .22s ease-in forwards}
@keyframes dockIn{from{opacity:.4;transform:translateX(calc(-30px * var(--dirx,1)))}}
@keyframes dockOut{to{opacity:0;transform:translateX(calc(-30px * var(--dirx,1)))}}
.aires{position:absolute;top:0;bottom:0;inset-inline-start:-4px;width:8px;cursor:col-resize;z-index:3;display:none}
.aip.docked .aires{display:block}
.aires::after{content:"";position:absolute;top:50%;inset-inline-start:2px;width:4px;height:44px;margin-top:-22px;border-radius:4px;background:var(--line);opacity:0;transition:opacity .15s}
.aires:hover::after,.aires.on::after{opacity:1;background:var(--c-violet)}
body.ai-resizing{cursor:col-resize;user-select:none}
@media (max-width:1099px){body.ai-docked{padding-inline-end:0;--aidock:0px}}
/* styled tooltips (replace native title boxes) */
.uitip{position:fixed;z-index:120;pointer-events:none;background:var(--ink);color:var(--bg);font-size:.76rem;font-weight:600;line-height:1.4;padding:6px 10px;border-radius:9px;box-shadow:0 8px 24px -8px rgba(15,14,40,.45);max-width:260px;white-space:normal;text-align:center;opacity:0;transform:translateY(3px);transition:opacity .14s,transform .14s}
.uitip.on{opacity:1;transform:none}
.uitip::after{content:"";position:absolute;left:var(--ax,50%);width:8px;height:8px;background:inherit;transform:translateX(-50%) rotate(45deg);border-radius:2px}
.uitip.below::after{top:-4px}.uitip:not(.below)::after{bottom:-4px}

.aipv{margin-top:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden;display:flex;flex-direction:column;animation:fadeIn .25s ease-out}
.aipv .pv-h{display:flex;align-items:center;gap:5px;padding:6px 8px;border-bottom:1px solid var(--line);flex-wrap:nowrap;min-width:0}.aipv .pv-c{flex:none}
.aipv .pv-ttl{font-weight:800;font-size:.82rem;white-space:nowrap}
.aipv .pv-c{font-size:.74rem;font-weight:800;padding:1px 7px;border-radius:99px;color:color-mix(in srgb,var(--k) 70%,var(--ink));background:color-mix(in srgb,var(--k) 14%,var(--surface));font-variant-numeric:tabular-nums}
.aipv .pv-seg{display:inline-flex!important;flex-direction:row!important;flex:none;width:auto!important;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.aipv .pv-seg button,.aipv .pv-x{all:unset;cursor:pointer;display:grid;place-items:center;width:30px;height:28px;color:var(--muted)}
.aipv .pv-x{border-radius:9px}
.aipv .pv-seg button[aria-pressed="true"]{background:var(--surface-2);color:var(--ink)}
.aipv .pv-seg button:focus-visible,.aipv .pv-x:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.aipv .pv-b{max-height:300px;overflow:auto;overscroll-behavior:contain;background:var(--bg);padding:4px 0}
.aipv .pv-svg{display:block;width:100%;height:auto;font-size:11.5px;font-family:inherit;margin-inline:auto}.aipv.big .pv-svg{flex:none}
.aipv .pv-t{paint-order:stroke;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round}
.aipv .pv-t{fill:var(--ink)}
.aipv .pv-ctx .pv-t{fill:var(--muted)}
.aipv .pv-del .pv-t{text-decoration:line-through;fill:color-mix(in srgb,var(--s-paused) 70%,var(--ink))}
.aipv .pv-add .pv-t,.aipv .pv-upd .pv-t,.aipv .pv-mov .pv-t{font-weight:700}
.aipv .pv-i{fill:#fff;font-size:8.5px;font-weight:900;pointer-events:none}
.aipv .pv-n[data-pvid]{cursor:pointer}
.aipv[data-st]:not([data-st="p"]) .pv-n[data-pvid]{cursor:default}
.aipv .pv-off{opacity:.38}
.aipv .pv-gh rect{fill:var(--surface-2);stroke:var(--line)}.aipv .pv-gh text{fill:var(--muted);font-size:10px;font-weight:700}
.aipv .pv-list{list-style:none;margin:0;padding:4px}
.aipv .pv-list li label{display:flex;gap:8px;align-items:flex-start;padding:6px;border-radius:9px;cursor:pointer}
.aipv .pv-list li label:hover{background:var(--surface-2)}
.aipv .pv-list input{margin-top:3px;accent-color:var(--brand)}
.aipv .pv-k{flex:none;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--k);color:#fff;font-size:.72rem;font-weight:900}
.aipv .pv-l{display:flex;flex-direction:column;min-width:0;font-size:.84rem}.aipv .pv-l b{font-weight:700;overflow-wrap:anywhere}.aipv .pv-l small{color:var(--muted);font-size:.74rem}
.aipv .pv-del .pv-l b{text-decoration:line-through}
.aipv .pv-f{display:flex;gap:8px;align-items:center;padding:8px;border-top:1px solid var(--line);flex-wrap:wrap}
.aipv .pv-f small,.aipv .pv-muted{color:var(--muted);font-size:.76rem}
.aipv .pv-ok{color:color-mix(in srgb,var(--s-live) 70%,var(--ink));font-weight:800;font-size:.82rem}
.aipv[data-st="x"],.aipv[data-st="u"]{opacity:.7}
.aipv.big{position:fixed;inset:max(16px,4vh) max(16px,4vw);z-index:200;max-width:1200px;margin-inline:auto!important;box-shadow:var(--sh-3,0 20px 60px rgba(0,0,0,.3));margin:0}
.aipv.big .pv-b{max-height:none;flex:1;display:flex;align-items:safe center;justify-content:safe center;padding:16px}.aipv.big .pv-list{width:min(720px,100%);align-self:flex-start}
body.pv-big::after{content:"";position:fixed;inset:0;z-index:199;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(2px)}
@media (pointer:coarse){.aipv .pv-seg button,.aipv .pv-x{width:38px;height:38px}.aipv .pv-list li label{padding:9px 6px}}
.aiconfirm{align-self:stretch;border:1px solid color-mix(in srgb,var(--s-paused) 40%,var(--line));background:color-mix(in srgb,var(--s-paused) 7%,var(--surface));border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;animation:pop .2s ease-out}
.aiconfirm .t{font-weight:800;color:color-mix(in srgb,var(--s-paused) 62%,var(--ink))}.aiconfirm p{margin:0;font-size:.88rem}
.aiconfirm .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.aiconfirm .row small{color:var(--muted);font-size:.75rem}
.aiconfirm.yes{border-color:var(--line);background:var(--surface-2)}.aiconfirm.no{opacity:.7}

/* per-map fields */
[data-schema-hide="true"]{display:none!important}
.mstats{grid-template-columns:repeat(var(--kc,3),minmax(0,1fr))}
.rhero.nohero .facts{flex:1}
.ringw{display:flex;flex-direction:column;align-items:center;gap:2px;flex:none}
.ringw small{font-size:.68rem;color:var(--muted);font-weight:600;max-width:96px;text-align:center}
.fbad{color:var(--s-paused,#d9534f);font-weight:600}
.muted{color:var(--muted)}
.se-link{display:inline-flex;align-self:flex-start;font-size:.8rem;margin-top:2px}
.se-tabs{margin:0 20px 6px;align-self:flex-start}
.se-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;padding:6px 20px 12px;min-height:0}
.se-ed{min-width:0}
.se-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.se-top select{flex:1;min-width:200px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:.86rem}
.sfhead,.sfrow{display:grid;grid-template-columns:44px minmax(150px,1.5fr) minmax(110px,1fr) minmax(120px,1fr) 104px 38px;gap:8px;align-items:center}
.sfhead{font-size:.7rem;color:var(--muted);font-weight:700;padding:0 8px 4px}
.sflist{display:flex;flex-direction:column;gap:6px}
.sfrow{border:1px solid var(--line);border-radius:12px;padding:8px;background:var(--surface)}
.sfrow.off{background:var(--surface-2);opacity:.8}
.sfrow .mv{display:flex;flex-direction:column;gap:2px}
.sfrow .mv button{border:1px solid var(--line);background:var(--surface);border-radius:6px;font-size:.6rem;line-height:1;padding:3px 0;color:var(--muted);cursor:pointer}
.sfrow .mv button:disabled{opacity:.35;cursor:default}
.sfrow .nm{display:flex;flex-direction:column;gap:4px;min-width:0}
.sfrow input,.sfrow select{width:100%;min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit;font-size:.84rem}
.sfrow [data-lblen]{font-size:.74rem;padding:4px 8px;color:var(--muted)}
.sfrow .cnt{font-size:.72rem;color:var(--muted)}
.sfrow .opts{grid-column:2/-1}
.se-add{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.se-arch{margin-top:14px;border:1px dashed var(--line);border-radius:12px;padding:8px 12px}
.se-arch summary{cursor:pointer;font-weight:700;font-size:.84rem}
.se-arch .arow{display:flex;align-items:center;gap:8px;padding:6px 0;flex-wrap:wrap}
.se-arch .arow small{color:var(--muted)}
.se-prev{position:sticky;top:0;align-self:start}
.se-sheet{border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--surface);display:flex;flex-direction:column;gap:10px;max-height:62vh;overflow:auto;pointer-events:none}
.se-sheet .sh-body{display:flex;flex-direction:column;gap:12px;padding:0}
.se-imp{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.se-imp li{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:10px;background:var(--surface-2);font-size:.86rem}
.se-imp li span{flex:none;width:18px;text-align:center;font-weight:800}
.se-imp li.warn{background:color-mix(in srgb,var(--s-dev,#e8a33d) 16%,var(--surface))}
.se-imp li.ok span{color:var(--s-live,#2e9e5b)}
.notice.warn{background:color-mix(in srgb,var(--s-dev,#e8a33d) 16%,var(--surface))}
@media (max-width:900px){.se-grid{grid-template-columns:1fr}.se-prev{position:static}}
@media (max-width:640px){.sfhead{display:none}.sfrow{grid-template-columns:30px minmax(0,1fr) 34px}.sfrow .nm{grid-column:2}.sfrow [data-type],.sfrow [data-place],.sfrow .cnt{grid-column:2}.sfrow [data-rm]{grid-column:3;grid-row:1}.sfrow .mv{grid-row:1/span 3}.sfrow>span:last-of-type:empty{display:none}}

#themeSeg button{padding:5px 9px;display:inline-flex;align-items:center}
@media (max-width:1400px){.top #shareBtn .lbl,.top #expBtn .lbl{display:none}.top #shareBtn,.top #expBtn{padding-inline:10px}}
@media (max-width:1180px){.brandmark p{display:none}.top .cmdbtn .lbl,.top .cmdbtn .kbd{display:none}.top .cmdbtn{padding-inline:10px}}
.notice .nx{margin-inline-start:auto;border:0;background:none;color:var(--muted);font-size:1rem;cursor:pointer;padding:2px 6px;border-radius:6px;flex:none}
.notice .nx:hover{background:var(--surface-2);color:var(--ink)}
.tools.lvl button[aria-pressed="true"]{background:color-mix(in srgb,var(--brand) 14%,var(--surface));color:var(--brand);font-weight:700}

/* landing hooks */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.s-offer{position:sticky;top:0;z-index:6;display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:8px 16px;background:linear-gradient(90deg,var(--brand),var(--c-violet));color:#fff;font-weight:700;font-size:.9rem;text-align:center}
.s-offer .btn{background:#fff;color:var(--brand);border:0}
.s-try{display:flex;gap:8px;margin:20px 0 10px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:6px;box-shadow:var(--sh-2)}
.s-try input{flex:1;min-width:0;border:0;background:transparent;padding:10px 12px;font:inherit;font-size:1rem;color:var(--ink);outline:none}
.s-try:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
.s-try .btn{white-space:nowrap;border-radius:12px;padding:10px 18px}
.s-quick{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:16px;font-size:.84rem;color:var(--muted)}
.s-quick .chip{cursor:pointer;border:1px solid var(--line);background:var(--surface)}
.s-quick .chip:hover{border-color:var(--brand);color:var(--brand)}
.s-trust{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;padding:0;margin:16px 0 0;font-size:.84rem;color:var(--muted)}
.s-trust li{white-space:nowrap}
.s-stats{padding-block:8px 28px}.s-stats .s-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center}
.s-stats b{display:block;font-family:var(--f-display);font-size:1.8rem}.s-stats span{color:var(--muted);font-size:.86rem}
.s-vs{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:900px;margin-inline:auto}
.s-vs>div{border-radius:20px;padding:20px 22px;border:1px solid var(--line);background:var(--surface)}
.s-vs h3{margin:0 0 10px;font-family:var(--f-display)}
.s-vs ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.s-vs .bad li::before{content:"✕";color:color-mix(in srgb,var(--s-paused) 62%,var(--ink));font-weight:800;margin-inline-end:8px}
.s-vs .good{border-color:color-mix(in srgb,var(--brand) 40%,var(--line));background:linear-gradient(160deg,var(--surface),color-mix(in srgb,var(--brand) 7%,var(--surface)))}
.s-vs .good li::before{content:"✓";color:color-mix(in srgb,var(--s-live) 62%,var(--ink));font-weight:800;margin-inline-end:8px}
.s-demo{display:flex;flex-direction:column;gap:14px;align-items:center}
.s-dtabs{flex-wrap:wrap;justify-content:center}
.s-dcard{width:100%;display:grid;grid-template-columns:1.5fr 1fr;gap:20px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:var(--sh-2)}
.s-dmap svg{width:100%;height:auto;display:block}
.s-dside{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.s-dside h3{margin:0;font-family:var(--f-display);font-size:1.4rem}.s-dside p{margin:0;color:var(--muted)}.s-dside small{color:var(--muted)}
.s-step .t{font-style:normal;display:inline-block;font-size:.72rem;font-weight:800;color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,var(--surface));border-radius:999px;padding:2px 10px;margin-bottom:6px}
.s-cmp{max-width:900px;margin-inline:auto}
.s-cmp td,.s-cmp th{text-align:center}.s-cmp td:first-child{text-align:start}
.s-cmp .me{background:color-mix(in srgb,var(--brand) 8%,var(--surface));color:var(--brand)}
.s-sticky{position:fixed;inset-inline:12px;bottom:12px;z-index:7;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px 12px;box-shadow:var(--sh-3);font-weight:700;animation:fadeUp .25s ease-out}
.s-sticky[hidden]{display:none}
@media (max-width:760px){.s-try{flex-direction:column}.s-vs,.s-dcard{grid-template-columns:1fr}.s-stats .s-wrap{grid-template-columns:1fr}}
/* traffic analytics */
.trf-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.trf-chart{width:100%;height:180px;display:block}
.trf-leg{display:flex;gap:14px;flex-wrap:wrap;font-size:.78rem;margin-top:6px}.trf-leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-inline-end:5px;vertical-align:-1px}
.funnel{display:flex;flex-direction:column;gap:9px}
.funnel .fl{display:flex;justify-content:space-between;font-size:.82rem}
.funnel .fnb{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.funnel .fnb span{display:block;height:100%;background:linear-gradient(90deg,var(--c-cyan),var(--c-violet));border-radius:999px}
.funnel small{color:var(--muted);font-size:.7rem}
.s3x{grid-column:span 3}
@media (max-width:1100px){.s3x{grid-column:span 6}}
@media (max-width:760px){.s3x,.bento>.s12,.bento>.s5,.bento>.s7{grid-column:1/-1}}
.kpis.mini{grid-template-columns:repeat(6,minmax(0,1fr))}
.kpis.mini .kpi .v{font-size:1.2rem}
@media (max-width:1200px){.kpis.mini{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.kpis.mini{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* viewer (public presentation link) */
.vbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px 14px;margin:8px 0 10px;box-shadow:var(--sh-1)}
.vbar .vt{display:flex;flex-direction:column;min-width:0}.vbar .vt .k{font-size:.74rem;color:var(--muted)}.vbar .vt b{font-family:var(--f-display);font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vbar .vsp{flex:1}
.vbar .vcta{background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand);border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}
body.viewer .top .spacer~*:not(#langBtn):not(#themeSeg){display:none!important}
body.viewer-gone>:not(.vgone):not(script){display:none!important}
.vgone{position:fixed;inset:0;display:grid;place-items:center;background:var(--bg);z-index:50;padding:16px}
.vgone .box{max-width:440px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:28px 24px;box-shadow:var(--sh-3)}
.vgone .ic{font-size:2.2rem}.vgone h2{font-family:var(--f-display);margin:8px 0}.vgone p{color:var(--muted);margin:0 0 16px}
/* share links */
.shl{border-color:color-mix(in srgb,var(--brand) 35%,var(--line))!important;background:linear-gradient(160deg,var(--surface),color-mix(in srgb,var(--brand) 5%,var(--surface)))!important}
.shopts{display:flex;flex-direction:column;gap:8px;margin:6px 0}
.shrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.shrow input{flex:1;min-width:180px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit}
.shnew{display:flex;gap:14px;align-items:center;margin-top:10px;padding:12px;border-radius:14px;background:var(--surface);border:1px dashed var(--brand);animation:fadeUp .25s ease-out}
.shnew .qr{border-radius:10px;background:#fff;padding:4px;flex:none}.shnb{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.shacts{display:flex;gap:6px;flex-wrap:wrap}
.shlist{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.shitem{display:flex;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.shitem .t{flex:1;min-width:0;display:flex;flex-direction:column}.shitem .t small{color:var(--muted);font-size:.74rem}
.shitem.off{opacity:.55}
@media (max-width:520px){.shnew{flex-direction:column;align-items:stretch}.shnew .qr{align-self:center}}
/* getting-started checklist */
.onb{position:relative;display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line));border-radius:16px;padding:10px 14px;padding-inline-end:40px;margin:0 0 12px;box-shadow:var(--sh-1);animation:fadeUp .3s ease-out}
.onb[hidden]{display:none}
.onb-h{display:flex;align-items:center;gap:10px}.onb-h b{font-family:var(--f-display)}.onb-h small{color:var(--muted);font-size:.76rem;white-space:nowrap}
.onb-p{flex:1;max-width:220px;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.onb-p span{display:block;height:100%;background:linear-gradient(90deg,var(--c-cyan),var(--c-violet));border-radius:999px;transition:width .4s}
.onb-s{display:flex;flex-wrap:wrap;gap:6px}
.onb-i{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px 5px 8px;font:inherit;font-size:.82rem;color:var(--ink);cursor:pointer}
.onb-i i{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--line);display:inline-grid;place-items:center;font-style:normal;font-size:.62rem;font-weight:800}
.onb-i.ok{color:var(--muted);text-decoration:line-through}.onb-i.ok i{background:var(--s-live);border-color:var(--s-live);color:#fff}
.onb-i:not(.ok):hover{border-color:var(--brand);color:var(--brand)}
.onb-x{position:absolute;top:8px;inset-inline-end:8px;border:0;background:none;color:var(--muted);cursor:pointer;border-radius:6px;padding:2px 6px}
.onb-x:hover{background:var(--surface-2);color:var(--ink)}
/* admin host: the admin panel only */
body.admin-host #tabbtn-map,body.admin-host #tabbtn-reports,body.admin-host #tabbtn-recs,body.admin-host #addBtn,body.admin-host #shareBtn,body.admin-host #expBtn,body.admin-host #mapsw,body.admin-host #aiFab,body.admin-host #onb{display:none!important}
body.admin-denied .wrap>*:not(header):not(#notice){display:none!important}


/* ================= app shell: side menu, slim top bar, mobile bottom bar ================= */
:root{--sidew:244px;--sidemini:68px;--bnavh:0px}
.sidenav{position:fixed;inset-block:0;inset-inline-start:0;width:var(--sidew);z-index:46;background:var(--surface);border-inline-end:1px solid var(--line);display:flex;flex-direction:column;gap:6px;padding:12px 10px;direction:var(--dir,rtl);transition:width .22s ease,transform .25s ease}
.sidenav[hidden]{display:none!important}
body.has-side{padding-inline-start:var(--sidew);transition:padding .22s ease}
body.has-side.side-mini{--sidew:var(--sidemini)}
.sd-head{display:flex;align-items:center;gap:6px;min-height:44px}
.sd-ws{flex:1;min-width:0;display:flex;align-items:center;gap:10px;border:0;background:none;padding:6px;border-radius:12px;cursor:pointer;color:var(--ink);font:inherit;text-align:start}
.sd-ws:hover{background:var(--surface-2)}
.sd-logo{flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden}.sd-logo img{width:26px;height:26px;object-fit:contain}
.sd-wst{display:flex;flex-direction:column;min-width:0}.sd-wst b{font-family:var(--f-display);font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sd-wst small{color:var(--muted);font-size:.72rem}
.sd-ic{flex:0 0 auto;width:36px;height:36px;border-radius:10px;border:0;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer;font:inherit}
.sd-ic:hover{background:var(--surface-2);color:var(--ink)}.sd-ic.sm{width:28px;height:28px;font-size:1rem}
.sd-add{width:100%;justify-content:center;gap:6px;min-height:40px;margin:2px 0 6px}
.sd-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:2px;margin-inline:-4px;padding-inline:4px}
.sidenav .tabs{display:flex;flex-direction:column;gap:2px;border:0;overflow:visible;padding:0}
.sidenav .tabs button,.sd-i{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:10px;background:none;color:var(--muted);font:inherit;font-family:var(--f-display);font-weight:600;font-size:.92rem;text-align:start;cursor:pointer;position:relative;white-space:nowrap}
.sidenav .tabs button:hover,.sd-i:hover{background:var(--surface-2);color:var(--ink)}
.sidenav .tabs button[aria-selected="true"]{background:color-mix(in srgb,var(--brand) 11%,var(--surface));color:var(--ink)}
.sidenav .tabs button[aria-selected="true"]::after{content:"";position:absolute;inset-block:8px;inset-inline-start:-10px;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--c-cyan),var(--c-violet));bottom:auto;inset-inline-end:auto;height:auto}
.sidenav .tabs button[hidden]{display:none}
.sidenav .tabs .tcount{margin-inline-start:auto}
.sd-ico{display:none}
.sidenav .sd-ico,.bnav .sd-ico,.sd-open .sd-ico{display:inline-grid;place-items:center;flex:0 0 22px}
.sd-sec{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.sd-h{display:flex;align-items:center;justify-content:space-between;padding:0 10px 4px;color:var(--muted);font-size:.74rem;font-weight:700;letter-spacing:.02em}
.sd-maps{display:flex;flex-direction:column;gap:1px}
.sd-map{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:6px 10px;border:0;border-radius:10px;background:none;color:var(--ink);font:inherit;font-size:.88rem;text-align:start;cursor:pointer}
.sd-map:hover{background:var(--surface-2)}.sd-map[aria-current="true"]{background:var(--surface-2);font-weight:700}
.sd-map .mdot{flex:0 0 10px;width:10px;height:10px;border-radius:50%}
.sd-map .t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sd-map small{color:color-mix(in srgb,var(--ink) 80%,var(--surface));font-size:.72rem}
.sd-lim{padding:4px 10px;color:var(--muted);font-size:.72rem}
.sd-foot{border-top:1px solid var(--line);padding-top:8px;display:flex;flex-direction:column;gap:1px}
.sd-foot .sd-i{min-height:36px;font-weight:500;font-size:.88rem}
#sdAI .sd-ico{color:var(--c-violet)}
.sd-prefs{display:flex;align-items:center;gap:6px;padding:6px 4px 0}
.sd-theme button{min-width:30px}
/* collapsed rail */
body.side-mini .sidenav .tcount,body.side-mini .sd-map small,body.side-mini .sd-lim,body.side-mini .sd-prefs .sd-theme{display:none}
body.side-mini .sidenav .sd-l,body.side-mini .sd-map .t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
body.side-mini .sidenav{padding-inline:8px}
body.side-mini .sd-head{flex-direction:column}
body.side-mini .sidenav .tabs button,body.side-mini .sd-i,body.side-mini .sd-map{justify-content:center;padding-inline:0}
body.side-mini .sd-h{justify-content:center;padding:0}
body.side-mini .sd-prefs{justify-content:center}
body.side-mini .sd-add{padding-inline:0}
body.side-mini #sdMin svg{transform:scaleX(-1)}
/* top bar: one slim row when the side menu carries brand, language and theme */
.sd-open{display:none}
body.has-side .top{flex-wrap:nowrap;gap:8px;min-height:48px}
body.has-side .top .brandmark,body.has-side .top #langBtn,body.has-side .top #themeSeg{display:none}
body.has-side .wrap{max-width:1680px;padding-top:10px}
body.has-side .wrap>.tabs{display:none}
body.has-side .mapsw .btn{font-family:var(--f-display);font-weight:800;font-size:1.05rem;border-color:transparent;background:transparent;padding-inline:6px}
body.has-side .mapsw .btn:hover{background:var(--surface-2)}
/* compact onboarding strip */
.onb{flex-direction:row!important;align-items:center;flex-wrap:wrap;gap:8px 12px!important;padding:8px 40px 8px 12px!important}
.onb-h{gap:8px}.onb-p{width:110px;flex:0 0 110px}
.onb-next{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;padding:6px 12px;background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--ink);font:inherit;font-size:.84rem;font-weight:700;cursor:pointer}
.onb-next:hover{background:color-mix(in srgb,var(--brand) 20%,var(--surface))}
.onb-more{border:0;background:none;color:var(--muted);font:inherit;font-size:.8rem;cursor:pointer;text-decoration:underline;padding:4px}
.onb-s{width:100%}.onb-s[hidden]{display:none}
.onb-i.ok{text-decoration:none!important}.onb-i.ok span{text-decoration:line-through}
/* mobile: side menu becomes a drawer + bottom bar */
.side-scrim{position:fixed;inset:0;z-index:45;background:var(--scrim);backdrop-filter:blur(2px)}
.side-scrim[hidden]{display:none}
.bnav{display:none}
.sd-narrow{display:none!important}
@media (max-width:899px){
  .sidenav .sd-narrow{display:flex!important}
  body.has-side .top #shareBtn,body.has-side .top #expBtn,body.has-side .top #accBtn{display:none}
  body.has-side{padding-inline-start:0;--bnavh:62px;padding-bottom:calc(var(--bnavh) + env(safe-area-inset-bottom,0px))}
  body.has-side.side-mini{--sidew:244px}
  .sidenav{transform:translateX(calc(var(--sgn,1) * 105%));box-shadow:var(--sh-3);width:min(300px,86vw);visibility:hidden;transition:transform .25s ease,visibility 0s linear .25s}
  html[dir="ltr"] .sidenav{--sgn:-1}
  body.side-open .sidenav{transform:none;visibility:visible;transition:transform .25s ease}
  body.side-mini .sidenav .sd-l,body.side-mini .sd-map .t,body.side-mini .sd-map small,body.side-mini .sd-prefs .sd-theme,body.side-mini .sidenav .tcount{display:revert}
  #sdMin{display:none}
  body.has-side .sd-open{display:inline-grid;place-items:center;padding:6px 8px}
  body.has-side .bnav{display:flex;position:fixed;inset-inline:0;bottom:0;z-index:44;height:calc(var(--bnavh) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line)}
  .bnav button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:none;color:var(--muted);font:inherit;font-size:.7rem;font-weight:600;cursor:pointer;min-height:44px}
  .bnav button[aria-current="true"]{color:var(--brand)}
  .bnav button[aria-current="true"] .sd-ico{background:color-mix(in srgb,var(--brand) 12%,transparent);border-radius:999px;padding:2px 14px}
  body.has-side .aifab{display:none!important}
  body.has-side .toast{bottom:calc(var(--bnavh) + 14px + env(safe-area-inset-bottom,0px))}
  body.has-side .top .cmdbtn .lbl,body.has-side .top .cmdbtn .kbd{display:none}
  body.has-side.presenting .bnav{display:none}
}
/* ---------- template library ---------- */
.tlib{position:fixed;inset:0;z-index:72;background:var(--bg);overflow-y:auto;direction:var(--dir,rtl);animation:fadeIn .22s ease-out;overscroll-behavior:contain}
body.tl-open #modal{z-index:76}body.tl-open #mscrim{z-index:75}
.toast{z-index:90}
.tl-wrap{max-width:1180px;margin:0 auto;padding:0 16px}
.tl-load{display:flex;gap:10px;align-items:center;justify-content:center;min-height:60vh;color:var(--muted)}
.tl-top{position:sticky;top:0;z-index:2;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:14px 0 10px}
.tl-h{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.tl-h h2{font-family:var(--f-display);margin:0;font-size:1.35rem}.tl-h p{margin:2px 0 0;color:var(--muted);font-size:.86rem}
.tl-search{margin:10px 0 8px}.tl-search input{width:100%;font-size:1rem;padding:12px 16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.tl-search input:focus{outline:2px solid var(--brand);outline-offset:1px}
.tl-cats{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
.tl-cats button{flex:0 0 auto;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-size:.82rem;cursor:pointer;min-height:34px}
.tl-cats button small{color:var(--muted);font-size:.72rem}
.tl-cats button[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}.tl-cats button[aria-pressed="true"] small{color:#ffffffcc}
.tl-fl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.tl-fl select{min-height:34px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:0 10px;font:inherit;font-size:.82rem}
.tl-n{margin-inline-start:auto;color:var(--muted);font-size:.8rem}
.tl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;padding:16px 0}
.tlc{display:flex;gap:12px;text-align:start;border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:12px;cursor:pointer;font:inherit;color:var(--ink);transition:transform .15s,box-shadow .15s,border-color .15s;min-width:0}
.tlc:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:color-mix(in srgb,var(--brand) 40%,var(--line))}
.tlc:hover::after{content:"";position:absolute;inset-inline:0;bottom:-4px;height:4px}
.tlc:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.tl-pv{position:relative;flex:0 0 64px;height:64px;border-radius:14px;background:var(--surface-2);display:grid;place-items:center}
.tl-pv.tl-pvg{color:color-mix(in srgb,var(--gc) 80%,var(--ink));background:color-mix(in srgb,var(--gc) 14%,var(--surface))}
.tl-pve .tl-emo{font-size:1.9rem;line-height:1}
.tl-ic{position:absolute;inset-inline-end:-6px;bottom:-6px;font-size:1.05rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;width:28px;height:28px;display:grid;place-items:center}
.tl-ic.lg{position:static;width:44px;height:44px;font-size:1.4rem;flex:0 0 44px}
.tl-b{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.tl-b b{font-size:.92rem;line-height:1.35}.tl-b small{color:var(--muted);font-size:.78rem}
.tl-d{color:var(--muted);font-size:.78rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tl-m{display:flex;gap:6px;align-items:center;justify-content:space-between;margin-top:auto;padding-top:6px;font-size:.74rem;color:var(--muted)}
.tl-tier{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
.tl-tier.free{background:color-mix(in srgb,var(--s-live) 14%,var(--surface));color:color-mix(in srgb,var(--s-live) 62%,var(--ink))}
.tl-tier.pro{background:color-mix(in srgb,var(--c-violet) 14%,var(--surface));color:color-mix(in srgb,var(--c-violet) 62%,var(--ink))}
.tl-tier.biz{background:color-mix(in srgb,var(--s-dev) 16%,var(--surface));color:color-mix(in srgb,var(--s-dev) 55%,var(--ink))}
.tl-more,.tl-empty{text-align:center;padding:8px 0 24px}.tl-empty p{color:var(--muted)}
.tl-up{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 28px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--c-violet) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--c-violet) 25%,var(--line));font-size:.86rem}
.tl-det{position:fixed;inset:0;z-index:3;background:var(--scrim);display:flex;justify-content:flex-end;animation:fadeIn .18s ease-out}
.tl-dbox{width:min(480px,100%);height:100%;background:var(--surface);display:flex;flex-direction:column;box-shadow:var(--sh-3)}
.tl-dh{display:flex;gap:12px;align-items:center;padding:16px;border-bottom:1px solid var(--line)}
.tl-dh h3{margin:0;font-family:var(--f-display);font-size:1.1rem}.tl-dh small{color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tl-db{flex:1;overflow-y:auto;padding:14px 16px}
.tl-dd{margin:0 0 10px;color:var(--muted)}
.tl-facts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.tl-facts span{background:var(--surface-2);border-radius:999px;padding:4px 10px;font-size:.78rem}
.tl-big{display:grid;place-items:center;padding:6px 0 10px}
.tl-tree,.tl-tree ul{list-style:none;margin:0;padding:0}.tl-tree>li{margin-bottom:10px}
.tl-tree .tk{display:flex;gap:8px;align-items:center;font-weight:700}.tl-tree .tk i{width:10px;height:10px;border-radius:50%}
.tl-tree ul{padding-inline-start:18px;border-inline-start:2px solid var(--line);margin-inline-start:4px}
.tl-tree .gp{display:block;font-weight:600;font-size:.86rem;margin-top:6px}
.tl-tree .it{display:flex;gap:6px;align-items:center;font-size:.82rem;color:var(--muted);padding:1px 0}.tl-tree .it i{width:7px;height:7px;border-radius:50%;flex:0 0 7px}
.tl-note{font-size:.78rem;color:var(--muted)}
.tl-df{display:flex;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line)}.tl-df .primary{flex:1}
.tl-where{display:grid;gap:8px}.tl-where .tpl[disabled]{opacity:.55;cursor:not-allowed}
.tl-ul{margin:0;padding-inline-start:18px}.tl-ul li{margin:3px 0}
.tl-chip{border-style:dashed!important}
.tl-tpl{border-style:dashed}
.s-price li.tl-li{font-weight:700}
.s-tlcats{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:6px 0 16px}
.s-tlcat{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 14px;font:inherit;font-size:.86rem;cursor:pointer;min-height:40px}
.s-tlcat:hover{border-color:var(--brand)}
.s-tlfeat{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;min-height:90px}

.tlc{position:relative}
.tl-main{display:flex;gap:12px;flex:1;min-width:0;text-align:start;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer}
.tl-main:focus-visible{outline:2px solid var(--brand);outline-offset:4px;border-radius:12px}
.tl-star{position:absolute;top:6px;inset-inline-end:6px;width:32px;height:32px;border-radius:999px;border:0;background:transparent;color:var(--muted);font-size:1.1rem;cursor:pointer;display:grid;place-items:center}
.tl-star:hover{background:var(--surface-2)}.tl-star[aria-pressed="true"]{color:color-mix(in srgb,var(--s-dev) 70%,var(--ink))}
.tlc .tl-b{padding-inline-end:22px}
.tl-fl2{display:flex;gap:4px;flex-wrap:wrap}.tl-fl2:empty{display:none}
.tl-flag{font-size:.66rem;font-weight:700;padding:1px 7px;border-radius:999px;white-space:nowrap}
.tl-flag.new{background:color-mix(in srgb,var(--c-cyan) 16%,var(--surface));color:color-mix(in srgb,var(--c-cyan) 55%,var(--ink))}
.tl-flag.hot{background:color-mix(in srgb,var(--s-paused) 13%,var(--surface));color:color-mix(in srgb,var(--s-paused) 62%,var(--ink))}
.tl-flag.used{background:var(--surface-2);color:var(--muted)}
.tl-sel{min-height:34px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:0 10px;font:inherit;font-size:.82rem;max-width:100%}
.tl-tg{min-height:34px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:0 12px;font:inherit;font-size:.8rem;cursor:pointer}
.tl-tg small{color:var(--muted)}.tl-tg[aria-pressed="true"]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,var(--surface))}
.tl-sp{flex:1}
.tl-act{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px;min-height:28px}
.tl-chipx{display:inline-flex;gap:6px;align-items:center;border:0;border-radius:999px;padding:4px 10px;background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--ink);font:inherit;font-size:.76rem;cursor:pointer}
.tl-chipx span{color:var(--muted)}
.tl-clr{border:0;background:none;color:color-mix(in srgb,var(--brand) 70%,var(--ink));font:inherit;font-size:.78rem;cursor:pointer;text-decoration:underline;padding:4px}
.tl-news{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0 0;padding:10px 14px;border-radius:14px;background:color-mix(in srgb,var(--c-cyan) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--c-cyan) 30%,var(--line));font-size:.84rem}
.tl-news span{flex:1;min-width:200px}
.tl-opts{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:0 0 10px;display:grid;gap:8px;background:var(--surface-2)}
.tl-oh{font-weight:700;font-size:.84rem}
.tl-otr{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2px 10px}
.tl-otr small{color:var(--muted)}
.tl-ost{width:max-content;max-width:100%}
.tl-tip{display:block;font-size:.74rem;color:var(--muted);font-weight:400;margin:1px 0 2px}
.tl-tree .it{align-items:flex-start}
.tl-tree .it i{margin-top:6px}
.tl-tree .tn{flex:1;min-width:0}
.tl-meta{font-size:.7rem;color:var(--muted);white-space:nowrap;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:0 7px;margin-top:2px}
.tl-dfav{font-size:1rem;margin-inline-start:auto}.tl-dh .tl-dfav+.btn{margin-inline-start:6px}
.tl-ftog{display:none;min-height:32px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:0 12px;font:inherit;font-size:.8rem;cursor:pointer}
.tl-act .tl-n{margin-inline-start:auto}
@media (max-width:640px){.tl-top{position:static}.tl-fl{display:none}.tl-fl.on{display:flex}.tl-ftog{display:inline-flex;align-items:center}.tl-fl .tl-sel{flex:1 1 45%}.tl-sp{display:none}.tl-meta{display:none}}
@media (max-width:640px){.tl-grid,.s-tlfeat{grid-template-columns:1fr}.tl-h h2{font-size:1.15rem}.tl-dbox{width:100%}.tl-fl .seg{order:3;width:100%;overflow-x:auto}.tl-fl .seg button{flex:1 0 auto}}

/* server updates (admin) */
.upd{display:grid;gap:14px}
.upd .panel{margin:0}
.upd-cur{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.upd-cur>div{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:3px;min-width:0}
.upd-cur .l{font-size:.75rem;color:color-mix(in srgb,var(--muted) 62%,var(--ink))}
.upd-ft{display:flex;gap:8px;align-items:center;font-weight:700;font-size:.95rem;margin-top:-4px}
.upd-ft span{color:var(--muted)}
.upd .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.upd h3 small{color:color-mix(in srgb,var(--muted) 62%,var(--ink))}
.upd-cur b{font-size:.95rem;overflow-wrap:anywhere}
.upd .notice{margin-top:10px}
.notice.err{background:color-mix(in srgb,var(--s-paused,#d9534f) 12%,var(--surface));border-style:solid;color:color-mix(in srgb,var(--s-paused,#d9534f) 55%,var(--ink))}
.upd-help{margin:0 0 10px;color:var(--muted);font-size:.84rem;line-height:1.7}
.upd-drop{display:flex;align-items:center;justify-content:center;gap:10px;min-height:92px;border:2px dashed var(--line);border-radius:14px;padding:14px;cursor:pointer;color:var(--muted);text-align:center;transition:border-color .15s,background .15s}
.upd-drop:hover,.upd-drop.over,.upd-drop:focus-within{border-color:var(--c-violet);background:color-mix(in srgb,var(--c-violet) 6%,transparent);color:var(--ink)}
.upd-drop.has{border-style:solid;color:var(--ink)}
.upd-drop input{position:absolute;width:1px;height:1px;opacity:0}
.upd-drop .ic{font-size:1.4rem}
.upd-go{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:12px}
.upd-go .f{display:grid;gap:4px}
.upd-go .f label{font-size:.78rem;color:var(--muted)}
.upd-go input[inputmode],.upd-rb input{width:9.5em;font:inherit;font-size:1.05rem;letter-spacing:.3em;text-align:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}
.upd-go .ckrow{min-height:38px}
.upd-bar{height:6px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:10px}
.upd-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--c-cyan),var(--c-violet));transition:width .2s}
.upd-st{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:9px 12px;border-radius:10px;font-size:.88rem;margin-bottom:10px}
.upd-st.is-run{background:color-mix(in srgb,var(--c-blue) 10%,var(--surface))}
.upd-st.is-ok{background:color-mix(in srgb,var(--s-live) 14%,var(--surface));color:color-mix(in srgb,var(--s-live) 45%,var(--ink))}
.upd-st.is-bad{background:color-mix(in srgb,var(--s-paused) 13%,var(--surface));color:color-mix(in srgb,var(--s-paused) 55%,var(--ink))}
.upd-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.upd-steps li{display:grid;grid-template-columns:24px 1fr;column-gap:8px;align-items:center;font-size:.86rem}
.upd-steps li small{grid-column:2;color:var(--muted);font-size:.76rem;overflow-wrap:anywhere}
.upd-steps .ic{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.75rem;border:1px solid var(--line);color:var(--muted)}
.upd-steps li.done .ic{background:color-mix(in srgb,var(--s-live) 18%,var(--surface));border-color:transparent;color:color-mix(in srgb,var(--s-live) 50%,var(--ink))}
.upd-steps li.failed .ic{background:color-mix(in srgb,var(--s-paused) 18%,var(--surface));border-color:transparent;color:color-mix(in srgb,var(--s-paused) 60%,var(--ink))}
.upd-steps li.pending .t{color:var(--muted)}
.upd-steps .spin{width:12px;height:12px}
.upd-meta{margin-top:10px;font-size:.76rem;color:var(--muted)}
.upd-rb{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.upd-rb input{width:7.5em;font-size:.9rem;padding:5px 8px}

/* side list (admin panel, settings) + subscriber pages */
.pg-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:0 0 14px;flex-wrap:wrap}
.pg-head h2{margin:0;font-family:var(--f-display);font-size:1.35rem}
.pg-head p{margin:4px 0 0;color:color-mix(in srgb,var(--muted) 80%,var(--ink));font-size:.86rem}
.snav-layout{display:grid;grid-template-columns:228px minmax(0,1fr);gap:18px;align-items:start}
.snav-body{min-width:0;display:flex;flex-direction:column;gap:14px}
.snav{position:sticky;top:12px;display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:8px;box-shadow:var(--sh-1)}
.snav-g{font-size:.72rem;font-weight:700;letter-spacing:.02em;color:color-mix(in srgb,var(--muted) 75%,var(--ink));padding:12px 10px 4px}
.snav-g:first-child{padding-top:4px}
.snav button{display:flex;gap:10px;align-items:center;width:100%;border:0;background:none;padding:9px 10px;border-radius:10px;font:inherit;font-size:.88rem;font-weight:600;color:color-mix(in srgb,var(--muted) 55%,var(--ink));cursor:pointer;text-align:start;min-height:38px}
.snav button svg{flex:none;opacity:.75}
.snav button:hover{background:var(--surface-2);color:var(--ink)}
.snav button[aria-current="page"]{background:color-mix(in srgb,var(--brand) 11%,var(--surface));color:color-mix(in srgb,var(--brand) 70%,var(--ink));box-shadow:inset 3px 0 0 var(--brand)}
[dir="rtl"] .snav button[aria-current="page"]{box-shadow:inset -3px 0 0 var(--brand)}
.snav button[aria-current="page"] svg{opacity:1}
.acc-page .pane{padding:18px 20px;display:flex;flex-direction:column;gap:14px;min-width:0}
.acc-page .pane h3{margin:0;font-family:var(--f-display);font-size:1.05rem}
.acc-page .pane .sub{margin:-8px 0 0;color:var(--muted);font-size:.82rem}
.acc-team .pane{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh-1),var(--ring);max-width:980px}
.acc-team .pane>h3:first-child{display:none}
.acc-team .pane>.sub{margin-top:0}
.sidenav .tabs button.sd-sep{margin-top:10px;position:relative}
.sidenav .tabs button.sd-sep::before{content:"";position:absolute;inset-inline:10px;top:-6px;border-top:1px solid var(--line)}
@media (max-width:899px){
  .snav-layout{grid-template-columns:minmax(0,1fr);gap:12px}
  .snav{position:static;flex-direction:row;overflow-x:auto;scrollbar-width:none;padding:6px;gap:4px;border-radius:14px}
  .snav::-webkit-scrollbar{display:none}
  .snav-g{display:none}
  .snav button{width:auto;flex:none;white-space:nowrap;min-height:36px;padding:7px 12px}
  .snav button[aria-current="page"],[dir="rtl"] .snav button[aria-current="page"]{box-shadow:none}
  .acc-page .pane{padding:14px}
}

/* pending invitations */
.invbar{display:flex;flex-direction:column;gap:6px;margin:0 0 12px}
.inv-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:color-mix(in srgb,var(--c-blue) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--c-blue) 30%,var(--line));border-radius:14px;padding:9px 12px;font-size:.88rem}
.inv-ic{font-size:1rem}.inv-t{flex:1;min-width:200px}.inv-a{display:flex;gap:6px}

/* save status */
.sync-pill{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:90;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:8px 14px;border-radius:999px;font-size:.84rem;box-shadow:var(--sh-2,0 6px 24px rgba(0,0,0,.12));border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.sync-pill[hidden]{display:none}
.sync-pill.off{background:color-mix(in srgb,var(--s-dev) 16%,var(--surface));border-color:color-mix(in srgb,var(--s-dev) 40%,var(--line))}
.sync-pill.ok{background:color-mix(in srgb,var(--s-live) 15%,var(--surface));border-color:color-mix(in srgb,var(--s-live) 40%,var(--line))}
.sync-pill b{background:var(--surface);border-radius:999px;padding:0 8px;font-size:.78rem}
.sync-pill .spin{width:12px;height:12px}
@media (max-width:899px){.sync-pill{top:auto;bottom:calc(76px + env(safe-area-inset-bottom,0px));border-radius:14px}}

/* ===== template marketplace, builder, store ===== */
.tl-src{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 10px}
.tl-src .seg button small{font-size:.72rem;font-weight:500}
.mk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.mk-grid.sm{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.mkc{position:relative;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;transition:box-shadow .15s,transform .15s}
.mkc:hover{box-shadow:var(--sh-2,0 8px 24px rgba(20,20,60,.1));transform:translateY(-1px)}
.mkc[draggable=true]{cursor:grab}.mkc.dragging{opacity:.5}
.mk-main{display:flex;flex-direction:column;width:100%;border:0;background:none;padding:0;text-align:start;font:inherit;color:inherit;cursor:pointer}
.mkc.mine .mk-main{cursor:default}
.mk-band{display:flex;align-items:flex-end;justify-content:flex-end;height:64px;padding:8px 12px;color:#fff;background-image:linear-gradient(135deg,rgba(255,255,255,.18),transparent)}
.mk-n{font-family:var(--f-display);font-weight:800;font-size:1.25rem;line-height:1}.mk-n small{font-size:.7rem;font-weight:600;margin-inline-start:4px;opacity:.9}
.mk-b{display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px}
.mk-b>b{font-family:var(--f-display);font-size:.98rem}
.mk-sel{color:color-mix(in srgb,var(--muted) 70%,var(--ink));font-size:.76rem}
.mk-d{color:color-mix(in srgb,var(--muted) 70%,var(--ink));font-size:.8rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mk-m{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px;font-size:.78rem}
.mk-st{color:color-mix(in srgb,#E39A27 45%,var(--ink));font-weight:700}.mk-nr{color:var(--muted)}
.mk-sales{color:color-mix(in srgb,var(--muted) 70%,var(--ink))}
.mk-price{margin-inline-start:auto;font-weight:800;background:color-mix(in srgb,var(--brand) 11%,var(--surface));color:color-mix(in srgb,var(--brand) 70%,var(--ink));border-radius:999px;padding:3px 10px}
.mk-price.free{background:color-mix(in srgb,var(--s-live) 14%,var(--surface));color:color-mix(in srgb,var(--s-live) 50%,var(--ink))}
.mk-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.mk-new{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;border:2px dashed var(--line);border-radius:16px;background:none;padding:18px;cursor:pointer;color:var(--ink);font:inherit;margin-bottom:14px}
.mk-new span{font-size:1.6rem;line-height:1;color:var(--brand)}.mk-new small{color:var(--muted)}
.mk-new:hover{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 5%,transparent)}
.mk-h{font-family:var(--f-display);font-size:1rem;margin:18px 0 10px}.mk-h small{color:var(--muted);font-weight:500}
.mk-cnt{color:color-mix(in srgb,var(--muted) 75%,var(--ink));font-size:.84rem;margin:6px 0 12px}
.mk-sell{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:color-mix(in srgb,var(--c-violet) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--c-violet) 30%,var(--line));border-radius:16px;padding:12px 16px;margin:6px 0 12px}
.mk-sell>div{flex:1;min-width:220px;display:flex;flex-direction:column;gap:2px}.mk-sell span{font-size:.84rem;color:color-mix(in srgb,var(--muted) 60%,var(--ink))}
.mk-fl{gap:8px}
.mk-dot{width:34px;height:34px;border-radius:10px;flex:none}
.mk-pricebox{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 8px}.mk-pricebox b{font-family:var(--f-display);font-size:1.5rem}.mk-pricebox small{color:var(--muted)}
.mk-tags{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.mk-tags span{font-size:.76rem;background:var(--surface-2);border-radius:999px;padding:2px 9px}
.mk-ic{color:var(--muted);font-size:.75rem}.mk-more{color:var(--muted);font-style:italic}
.mk-seller{background:var(--surface-2);border-radius:12px;padding:10px 12px;margin:12px 0}.mk-seller p{margin:4px 0 0;font-size:.84rem;color:color-mix(in srgb,var(--muted) 60%,var(--ink))}
.mk-revs{list-style:none;margin:0;padding:0;display:grid;gap:8px}.mk-revs li{border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-size:.86rem}.mk-revs p{margin:4px 0 0}
.mk-rf{display:grid;gap:8px;border:1px dashed var(--line);border-radius:12px;padding:10px;margin:12px 0}
.mk-rf textarea{font:inherit;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--surface);color:var(--ink)}
.mk-stars{display:flex;gap:2px;direction:ltr;justify-content:flex-end}.mk-stars label{cursor:pointer;font-size:1.5rem;color:var(--line)}.mk-stars input{position:absolute;opacity:0;width:1px;height:1px}
.mk-stars label:has(input:checked) span[aria-hidden],.mk-stars label:has(~ label input:checked) span[aria-hidden]{color:#E39A27}
.mk-stars:not(:has(input:checked)) label span[aria-hidden]{color:var(--line)}
.mk-stars label:has(input:focus-visible){outline:2px solid var(--brand);border-radius:4px}
.mk-note{color:var(--muted);font-size:.84rem}
.mk-calc .mk-split{display:grid;gap:4px;background:var(--surface-2);border-radius:12px;padding:10px 12px;font-size:.86rem}.mk-split span{display:flex;justify-content:space-between;gap:10px}
/* drop bar when dragging a template card */
.tl-drop{position:fixed;inset-inline:16px;bottom:16px;z-index:120;display:none;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface);border:2px dashed var(--brand);border-radius:16px;padding:12px 14px;box-shadow:var(--sh-2,0 10px 30px rgba(0,0,0,.18))}
.tl-drop.on{display:flex}.tl-drop-h{font-weight:700;margin-inline-end:6px}
.tl-dz{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:8px 14px;background:var(--surface-2);font-size:.86rem}
.tl-dz i{width:10px;height:10px;border-radius:50%}.tl-dz.new{border-style:dashed}
.tl-dz.over{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 14%,var(--surface));transform:scale(1.04)}
/* builder */
.tbd{position:fixed;inset:0;z-index:110;background:var(--bg);display:flex;flex-direction:column}
.tbd[hidden]{display:none}
.tb-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface)}
.tb-title{flex:1 1 280px;min-width:180px;font:inherit;font-family:var(--f-display);font-weight:800;font-size:1.1rem;border:1px solid transparent;border-radius:10px;padding:8px 10px;background:var(--surface-2);color:var(--ink)}
.tb-title:focus{border-color:var(--brand);outline:none}
.tb-cnt{font-size:.8rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink))}
.tb-main{flex:1;display:grid;grid-template-columns:220px minmax(0,1fr) 280px;min-height:0}
.tb-pal,.tb-side{padding:14px;display:flex;flex-direction:column;gap:10px;overflow:auto;background:var(--surface)}
.tb-pal{border-inline-end:1px solid var(--line)}.tb-side{border-inline-start:1px solid var(--line)}
.tb-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface);cursor:grab;font:inherit;color:var(--ink);text-align:start;border-inline-start:4px solid var(--c)}
.tb-chip small{color:color-mix(in srgb,var(--muted) 70%,var(--ink));font-size:.74rem}
.tb-chip.k-track{--c:var(--c-violet)}.tb-chip.k-group{--c:var(--c-cyan)}.tb-chip.k-item{--c:var(--s-live)}
.tb-chip:hover{border-color:var(--c)}
.tb-hint{font-size:.78rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink));margin:0;line-height:1.6}
.tb-iss{font-size:.8rem;background:color-mix(in srgb,var(--s-dev) 13%,var(--surface));border-radius:10px;padding:8px 10px}.tb-iss ul{margin:4px 0 0;padding-inline-start:18px}
.tb-ok{font-size:.82rem;background:color-mix(in srgb,var(--s-live) 13%,var(--surface));color:color-mix(in srgb,var(--s-live) 45%,var(--ink));border-radius:10px;padding:8px 10px}
.tb-canvas{overflow:auto;padding:18px 22px 80px}
.tb-tree,.tb-tree ul{list-style:none;margin:0;padding:0}
.tb-tree ul{padding-inline-start:26px;border-inline-start:2px solid var(--line);margin-inline-start:12px}
.tb-n{margin:4px 0}
.tb-row{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:5px 6px;position:relative}
.tb-n.k-track>.tb-row{border-inline-start:4px solid var(--c-violet);padding-block:8px}
.tb-n.k-group>.tb-row{border-inline-start:4px solid var(--c-cyan)}
.tb-n.sel>.tb-row{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
.tb-row.dragging{opacity:.4}
.tb-h{cursor:grab;color:var(--muted);padding:0 4px;font-size:1rem;user-select:none}
.tb-col{width:18px;height:18px;border-radius:6px;border:0;cursor:pointer;flex:none}
.tb-kd{font-size:.7rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink));background:var(--surface-2);border-radius:6px;padding:2px 6px;flex:none}
.tb-in{flex:1;min-width:80px;font:inherit;border:1px solid transparent;border-radius:8px;padding:6px 8px;background:transparent;color:var(--ink)}
.tb-n.k-track>.tb-row .tb-in{font-weight:800;font-family:var(--f-display)}
.tb-in:focus{border-color:var(--brand);outline:none;background:var(--surface-2)}
.tb-in:placeholder-shown{border-color:color-mix(in srgb,var(--s-dev) 50%,transparent)}
.tb-acts{display:flex;gap:2px;opacity:.55;transition:opacity .15s}
.tb-row:hover .tb-acts,.tb-row:focus-within .tb-acts{opacity:1}
.tb-acts button{border:0;background:none;border-radius:8px;min-width:30px;height:30px;cursor:pointer;color:var(--ink);font-size:.9rem}
.tb-acts button:hover,.tb-acts button:focus-visible{background:var(--surface-2)}
.tb-slot{font-size:.76rem;color:var(--muted);border:1px dashed transparent;border-radius:10px;padding:4px 10px;margin:2px 0}
.tb-tree:hover .tb-slot,.tbd.dragging-on .tb-slot{border-color:var(--line)}
.tb-root{margin-top:12px;border:2px dashed var(--line);border-radius:16px;padding:22px;text-align:center;color:color-mix(in srgb,var(--muted) 70%,var(--ink));display:flex;flex-direction:column;gap:4px}
.dz-before{box-shadow:0 -3px 0 0 var(--brand)}.dz-after{box-shadow:0 3px 0 0 var(--brand)}
.dz-inside{background:color-mix(in srgb,var(--brand) 12%,var(--surface))!important;border-color:var(--brand)!important}
.dz-slot{border-color:var(--brand)!important;background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--ink)}
.tb-f{display:flex;flex-direction:column;gap:5px;font-size:.8rem;color:color-mix(in srgb,var(--muted) 60%,var(--ink))}
.tb-f textarea,.tb-f input,.tb-f select{font:inherit;font-size:.88rem;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface);color:var(--ink)}
.tb-sw{display:flex;gap:6px}.tb-sw button{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer}.tb-sw button[aria-checked=true]{border-color:var(--ink)}
body.tb-open{overflow:hidden}
@media (max-width:899px){.tb-main{grid-template-columns:minmax(0,1fr);overflow:auto}.tb-pal{border:0;flex-direction:row;flex-wrap:wrap;align-items:center}.tb-pal .tb-hint{flex-basis:100%}.tb-chip{flex:1 1 30%}.tb-side{border:0;border-top:1px solid var(--line)}.tb-canvas{overflow:visible;padding:12px}.tb-acts{opacity:1;flex-wrap:wrap}.tb-tree ul{padding-inline-start:12px;margin-inline-start:6px}}
/* store + market admin */
.sl-chip{display:inline-block;font-size:.74rem;font-weight:700;border-radius:999px;padding:2px 9px;background:color-mix(in srgb,var(--c) 15%,var(--surface));color:color-mix(in srgb,var(--c) 55%,var(--ink))}
.sl-why{font-size:.76rem;color:color-mix(in srgb,var(--s-paused) 60%,var(--ink));margin-top:4px}
.sl-acts{display:flex;gap:6px;flex-wrap:wrap}
.sl-steps{margin:0 0 12px;padding-inline-start:20px;display:grid;gap:6px;font-size:.88rem}
.sl-terms{background:var(--surface-2);border-radius:12px;padding:10px 12px}.sl-terms ul{margin:6px 0;padding-inline-start:18px;font-size:.84rem;display:grid;gap:3px}
.mr{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:8px 0}
.mr-h{display:flex;align-items:center;gap:10px}.mr-h>div{flex:1;min-width:0}.mr-h small{display:block;color:color-mix(in srgb,var(--muted) 70%,var(--ink));font-size:.76rem}
.mr-b{margin-top:10px}.mr-b p{margin:0 0 8px;font-size:.88rem}
.mr-a{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}.mr-a input{flex:1;min-width:200px}
/* ===== public site: calm, friendly; follows the theme ===== */
.site{--tab:var(--brand);--tab-ink:#fff;--ovr:30 33 64;--pill:var(--brand);--pill-ink:#fff;--pill-h:color-mix(in srgb,var(--brand) 88%,#000);--halo:var(--bg);
  --s-idea:#9AA0BC;--s-dev:#F0B45C;--s-beta:#6FA8E8;--s-live:#4DB6A4;--s-paused:#EE8B7E;
  --sh-2:0 10px 30px -14px rgba(40,44,90,.22);--sh-3:0 30px 70px -26px rgba(40,44,90,.28);
  background:var(--bg);color:var(--ink);overflow-x:hidden}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .site{--tab:#5258CC;--tab-ink:#fff;--ovr:255 255 255;--pill:#fff;--pill-ink:#1B1E37;--pill-h:#EEF0FA;--sh-2:0 10px 30px -10px rgba(0,0,0,.6);--sh-3:0 30px 80px -20px rgba(0,0,0,.7)}}
:root[data-theme="dark"] .site{--tab:#5258CC;--tab-ink:#fff;--ovr:255 255 255;--pill:#fff;--pill-ink:#1B1E37;--pill-h:#EEF0FA;--sh-2:0 10px 30px -10px rgba(0,0,0,.6);--sh-3:0 30px 80px -20px rgba(0,0,0,.7)}
.site .sx-glow{position:absolute;inset:0 0 auto 0;height:1100px;pointer-events:none;z-index:0;
  background:radial-gradient(60% 45% at 50% 0%,color-mix(in srgb,var(--c-violet) 30%,transparent),transparent 70%),radial-gradient(35% 30% at 85% 30%,color-mix(in srgb,var(--c-cyan) 16%,transparent),transparent 70%),radial-gradient(35% 30% at 10% 40%,color-mix(in srgb,var(--c-indigo) 18%,transparent),transparent 70%)}
.site .sx-glow::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgb(var(--ovr) / .035) 1px,transparent 1px),linear-gradient(90deg,rgb(var(--ovr) / .035) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(70% 60% at 50% 20%,#000,transparent);mask-image:radial-gradient(70% 60% at 50% 20%,#000,transparent)}
.site>section,.site>footer{position:relative;z-index:1}
.site>.s-nav{position:sticky;z-index:6}
.site .s-wrap{max-width:1200px;padding-inline:20px}
.site em{font-style:normal;background:linear-gradient(90deg,var(--c-cyan),var(--brand));-webkit-background-clip:text;background-clip:text;color:transparent}
.site .btn{border-radius:999px}
.site .btn.primary,.site .sx-pill{background:var(--pill);color:var(--pill-ink);border:0;font-weight:800;box-shadow:0 8px 30px -8px color-mix(in srgb,var(--c-violet) 70%,transparent)}
.site .btn.primary:hover,.site .sx-pill:hover{background:var(--pill-h)}
.site .sx-ghost{background:rgb(var(--ovr) / .06);border:1px solid var(--line);color:var(--ink)}
.site .sx-ghost:hover{background:rgb(var(--ovr) / .1)}
.site .s-nav{top:12px;margin:12px auto 0;max-width:1200px;width:calc(100% - 24px);border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface) 72%,transparent);backdrop-filter:blur(18px) saturate(1.4);transition:background .25s,box-shadow .25s}
.site.sx-scrolled .s-nav{background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--sh-2)}
.site .s-nav .s-wrap{padding-block:8px;padding-inline:10px 10px}
.site .s-links{gap:4px}.site .s-links a{padding:7px 12px;border-radius:999px;color:var(--muted)}.site .s-links a:hover{color:var(--ink);background:rgb(var(--ovr) / .06)}
.site .s-logo .lm i{background:var(--bg)}
/* hero */
.site .s-hero{display:block;padding-block:clamp(56px,10vw,110px) 28px;text-align:center}
.site .sx-hero{display:flex;flex-direction:column;align-items:center}
.sx-badge{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--line);background:rgb(var(--ovr) / .04);border-radius:999px;padding:6px 14px;font-size:.84rem;color:var(--muted);margin-bottom:22px}
.site .s-hero h1{font-size:clamp(2.3rem,6.4vw,4.9rem);line-height:1.12;letter-spacing:-.01em;max-width:15ch;margin:0 auto}
.site .sx-sub{font-size:clamp(1rem,1.6vw,1.2rem);color:var(--muted);max-width:640px;margin:20px auto 26px}
.site .s-try{width:min(680px,100%);background:rgb(var(--ovr) / .05);border-color:rgb(var(--ovr) / .14);border-radius:999px;padding:6px;margin:0 0 12px;backdrop-filter:blur(8px)}
.site .s-try input{padding-inline:18px}
.site .s-try .btn{border-radius:999px}
.site .s-quick{justify-content:center}
.site .s-quick .chip{background:rgb(var(--ovr) / .04);border-color:var(--line);color:var(--ink);border-radius:999px}
.site .s-quick .chip:hover{border-color:var(--c-violet);color:var(--ink);background:rgb(var(--ovr) / .08)}
.site .s-cta{justify-content:center;margin-top:6px}
.site .s-cta .btn{border-radius:999px;padding:12px 22px}
.site .s-trust{justify-content:center}
.sx-anim .s-hero .sx-hero>*{animation:sxUpH .7s cubic-bezier(.2,.7,.2,1) both}
.sx-anim .s-hero .sx-hero>:nth-child(2){animation-delay:.06s}.sx-anim .s-hero .sx-hero>:nth-child(3){animation-delay:.12s}.sx-anim .s-hero .sx-hero>:nth-child(n+4){animation-delay:.18s}
@keyframes sxUpH{from{opacity:.02;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes sxUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* showcase window */
.sx-show{padding-bottom:30px}
.sx-roles{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:18px}
.sx-roles>span{font-size:.84rem;color:var(--muted)}
.site .s-dtabs{background:rgb(var(--ovr) / .04);border:1px solid var(--line);border-radius:999px;padding:4px}
.site .s-dtabs button{border-radius:999px}
.site .s-dtabs button{background:transparent;border:1px solid var(--line);color:var(--muted);transition:background .2s,color .2s,border-color .2s}
.site .s-dtabs button:hover{background:rgb(var(--ovr) / .06);color:var(--ink)}
.site .s-dtabs button[aria-pressed=true]{background:var(--tab);color:var(--tab-ink);border-color:transparent;box-shadow:0 6px 18px -8px color-mix(in srgb,var(--brand) 80%,transparent)}
.sx-win{background:linear-gradient(180deg,var(--surface),var(--surface-2));border:1px solid rgb(var(--ovr) / .1);border-radius:22px;overflow:hidden;box-shadow:0 0 0 1px rgb(var(--ovr) / .08),0 40px 100px -30px color-mix(in srgb,var(--c-violet) 45%,transparent),var(--sh-3)}
.sx-wbar{display:flex;align-items:center;gap:6px;padding:11px 14px;border-bottom:1px solid var(--line);background:rgb(var(--ovr) / .025);direction:ltr}
.sx-wbar i{width:10px;height:10px;border-radius:50%;background:rgb(var(--ovr) / .14)}
.sx-wbar i:first-child{background:#F2716688}.sx-wbar i:nth-child(2){background:#F2B24D88}.sx-wbar i:nth-child(3){background:#43C99388}
.sx-wbar span{flex:1;text-align:center;font-size:.78rem;color:var(--muted);margin-inline-end:40px;direction:var(--dir,rtl)}
.sx-hwin{max-width:1100px;margin-inline:auto}
.sx-app{display:grid;grid-template-columns:56px 1fr 320px;min-height:420px}
.sx-side{display:flex;flex-direction:column;gap:8px;align-items:center;padding:14px 0;border-inline-end:1px solid var(--line);background:rgb(var(--ovr) / .015)}
.sx-side span{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:var(--muted)}
.sx-side span.on{background:color-mix(in srgb,var(--c-violet) 22%,transparent);color:var(--ink)}
.sx-side svg{width:18px;height:18px}
.site .sx-app .s-dmap{padding:10px;display:grid;place-items:center}
.site .sx-app .s-dmap svg{max-height:440px}
.sx-float{margin:16px;align-self:center;background:rgb(var(--ovr) / .04);border:1px solid var(--line);border-radius:18px;padding:20px;backdrop-filter:blur(8px)}
.site .s-dside h3{font-size:1.5rem}
.sx-scroll{display:flex;flex-direction:column;align-items:center;gap:8px;margin:34px auto 0;width:max-content;color:var(--muted);font-size:.8rem;text-decoration:none}
.sx-scroll span{width:22px;height:34px;border:1.5px solid rgb(var(--ovr) / .25);border-radius:12px;position:relative}
.sx-scroll span::after{content:"";position:absolute;top:6px;left:50%;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--ink);animation:sxWheel 1.8s infinite}
@keyframes sxWheel{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(10px)}}
/* sections */
.site .s-sec{padding-block:clamp(48px,7vw,90px)}
.site .s-sec h2,.sx-ch h2{font-size:clamp(1.9rem,4.4vw,3.3rem);line-height:1.15;letter-spacing:-.01em}
.site .s-sec .lead{font-size:1.05rem;max-width:620px}
.sx-eye{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.04em;color:var(--brand);margin-bottom:12px}
.sx-c{display:block;text-align:center}
.sx-num{display:block;font-family:var(--f-display);font-weight:900;font-size:3.4rem;line-height:1;margin-bottom:8px;direction:ltr;unicode-bidi:isolate;background:linear-gradient(180deg,rgb(var(--ovr) / .5),rgb(var(--ovr) / .04));-webkit-background-clip:text;background-clip:text;color:transparent}
.sx-cht .sx-num{text-align:start;width:max-content}
.sx-state{text-align:center;font-family:var(--f-display);font-weight:900;font-size:clamp(1.6rem,4vw,2.8rem);margin:0 0 44px;line-height:1.25}
.site .s-pain h2{font-size:clamp(1.4rem,2.6vw,2rem)}
.site .s-vs>div{background:rgb(var(--ovr) / .03);border-color:var(--line);border-radius:24px;padding:26px}
.site .s-vs .good{background:linear-gradient(160deg,color-mix(in srgb,var(--c-violet) 14%,transparent),rgb(var(--ovr) / .02));border-color:color-mix(in srgb,var(--c-violet) 40%,transparent)}
.site .s-feats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.site .s-feat{display:block;color:inherit;text-decoration:none;background:rgb(var(--ovr) / .03);border:1px solid var(--line);border-radius:24px;padding:26px;box-shadow:none;position:relative;overflow:hidden}
.site .s-feat::before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:radial-gradient(80% 60% at 100% 0%,color-mix(in srgb,var(--c-violet) 18%,transparent),transparent 60%);opacity:0;transition:opacity .3s}
.site .s-feat:hover{transform:translateY(-3px);box-shadow:none;border-color:rgb(var(--ovr) / .18)}.site .s-feat:hover::before{opacity:1}
.site .s-feat .ic{background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--brand)}
.sx-fn{position:absolute;top:18px;inset-inline-end:20px;font-family:var(--f-display);font-weight:900;color:rgb(var(--ovr) / .28);font-size:.9rem}
.site .s-feat h3{font-size:1.15rem}
/* chapters */
.sx-ch{padding-block:clamp(56px,8vw,100px);border-top:1px solid var(--line)}
.sx-chg{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,70px);align-items:center}
.sx-ch.flip .sx-cht{order:2}
.sx-cht h2{margin:0 0 14px}
.sx-cht p{color:var(--muted);font-size:1.08rem;margin:0 0 18px;max-width:520px}
.sx-pts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.sx-pts li{display:flex;gap:10px;align-items:flex-start}
.sx-pts li::before{content:"";flex:none;width:18px;height:18px;margin-top:3px;border-radius:50%;background:color-mix(in srgb,var(--c-violet) 22%,transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/11px no-repeat}
/* scroll choreography */
.sx-anim .sx-rv{opacity:0;transform:translateY(46px);filter:blur(8px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1),filter .9s;transition-delay:calc(var(--i,0)*.1s)}
.sx-anim .sx-rv.in{opacity:1;transform:none;filter:none}
.sx-anim .sx-chm.sx-rv{transform:none;filter:none;opacity:1}
.sx-chm[data-sx]{--tx:-90px;--ry:-14deg;perspective:1600px}
.sx-ch.flip .sx-chm[data-sx]{--tx:90px;--ry:14deg}
[dir=ltr] .sx-chm[data-sx]{--tx:90px;--ry:14deg}[dir=ltr] .sx-ch.flip .sx-chm[data-sx]{--tx:-90px;--ry:-14deg}
.sx-anim .sx-chm[data-sx] .sx-win{transform:translateX(calc(var(--tx)*(1 - var(--p,0)))) rotateY(calc(var(--ry)*(1 - var(--p,0)))) scale(calc(.9 + .1*var(--p,0)));opacity:calc(.15 + .85*var(--p,0));will-change:transform}
.sx-anim .sx-hwin[data-sx]{transform-origin:50% 0;transform:perspective(1800px) rotateX(calc(24deg*(1 - var(--p,0)))) scale(calc(.86 + .14*var(--p,0))) translateY(calc(30px*(1 - var(--p,0))));will-change:transform}
.sx-anim .sx-rv .sx-stg>*{opacity:0;transform:translateY(16px) scale(.98);transition:opacity .6s,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(.35s + var(--i,0)*.22s)}
.sx-anim .sx-rv.in .sx-stg>*{opacity:1;transform:none}
.sx-state[data-sx]{--p:1}
.sx-anim .sx-state[data-sx]{background:linear-gradient(var(--sw,270deg),var(--ink) calc(var(--p,0)*120% - 20%),var(--muted) calc(var(--p,0)*120%));-webkit-background-clip:text;background-clip:text;color:transparent}
[dir=ltr] .sx-anim .sx-state[data-sx]{--sw:90deg}
.sx-prog{position:fixed;top:0;inset-inline:0;height:2px;z-index:9;pointer-events:none}
.sx-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--c-cyan),var(--c-violet),var(--brand));transform-origin:var(--po,right);transform:scaleX(0)}
[dir=ltr] .sx-prog i{--po:left}
.sx-rail{position:fixed;top:50%;inset-inline-start:22px;transform:translateY(-50%) translateX(var(--rx,20px));z-index:5;display:flex;flex-direction:column;gap:4px;opacity:0;pointer-events:none;transition:opacity .4s,transform .4s}
[dir=ltr] .sx-rail{--rx:-20px}
.sx-rail.show{opacity:1;pointer-events:auto;transform:translateY(-50%)}
.sx-rail a{display:flex;align-items:center;gap:10px;color:var(--muted);text-decoration:none;font-size:.78rem;padding:4px 8px;border-radius:999px}
.sx-rail a b{font-family:var(--f-display);font-size:.75rem;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);direction:ltr}
.sx-rail a span{opacity:0;transform:translateX(var(--sx,6px));transition:opacity .25s,transform .25s;white-space:nowrap}
.sx-rail:hover a span{opacity:1;transform:none}
.sx-rail a.on{color:var(--ink)}.sx-rail a.on b{background:var(--pill);color:var(--pill-ink);border-color:var(--ink)}
@media (max-width:1320px){.sx-rail{display:none}}
/* mock contents */
.sx-mapdet{position:relative;min-height:360px}
.sx-mapbg{position:absolute;inset:0;opacity:.85}.sx-mapbg svg{width:100%;height:100%}
.sx-sheet{position:absolute;inset-inline-end:16px;bottom:16px;width:min(250px,60%);background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid rgb(var(--ovr) / .12);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px;backdrop-filter:blur(10px);font-size:.84rem}
.sx-sheet small{color:var(--muted)}.sx-sheet>b{font-family:var(--f-display);font-size:1.15rem}
.sx-st{align-self:flex-start;font-size:.72rem;font-weight:700;padding:2px 10px;border-radius:999px;background:color-mix(in srgb,var(--c) 20%,transparent);color:color-mix(in srgb,var(--c) 70%,var(--ink))}
.sx-kv{display:flex;gap:8px;align-items:center;justify-content:space-between;color:var(--muted)}.sx-kv b{color:var(--ink);font-weight:700}
.sx-meter{flex:1;height:6px;border-radius:6px;background:rgb(var(--ovr) / .08);overflow:hidden}.sx-meter i{display:block;height:100%;border-radius:inherit}
.sx-rep{padding:18px;display:flex;flex-direction:column;gap:14px}
.sx-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sx-kpis>div{background:rgb(var(--ovr) / .035);border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.sx-kpis span{font-size:.75rem;color:var(--muted)}.sx-kpis b{font-family:var(--f-display);font-size:1.5rem;line-height:1.2}
.sx-kpis em{all:unset;font-size:.74rem;color:var(--muted)}.sx-kpis em.up{color:var(--s-live)}.sx-kpis em.dn{color:var(--s-dev)}
.sx-chart{background:rgb(var(--ovr) / .025);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}
.sx-chart h4{margin:0 0 2px;font-size:.88rem}
.sx-row{display:grid;grid-template-columns:minmax(62px,auto) 1fr 28px;gap:10px;align-items:center;font-size:.8rem;color:var(--muted)}.sx-row b{color:var(--ink);text-align:end}
.sx-track{height:12px;border-radius:6px;background:rgb(var(--ovr) / .06);overflow:hidden}.sx-track i{display:block;height:100%;border-radius:inherit}
.sx-anim .sx-rv .sx-track i{transform-origin:var(--org,right);transform:scaleX(.05);transition:transform 1.1s .25s cubic-bezier(.2,.7,.2,1)}
.sx-anim .sx-rv.in .sx-track i{transform:none}
[dir=ltr] .sx-track i{--org:left}
.sx-chat{padding:18px;display:flex;flex-direction:column;gap:10px;font-size:.88rem}
.sx-msg{max-width:84%;padding:10px 14px;border-radius:16px;line-height:1.6}
.sx-msg.me{align-self:flex-start;background:var(--pill);color:var(--pill-ink);border-start-start-radius:4px}
.sx-msg.ai{align-self:flex-end;background:rgb(var(--ovr) / .05);border:1px solid var(--line);border-start-end-radius:4px}
.sx-msg.ai b{display:block;font-size:.76rem;color:var(--brand);margin-bottom:2px}
.sx-done{align-self:flex-end;font-size:.8rem;color:var(--s-live);background:color-mix(in srgb,var(--s-live) 12%,transparent);border-radius:999px;padding:5px 12px}
.sx-ask{display:flex;align-items:center;justify-content:space-between;margin-top:4px;border:1px solid rgb(var(--ovr) / .14);border-radius:999px;padding:6px 6px 6px 16px;padding-inline:16px 6px;color:var(--muted)}
.sx-ask i{font-style:normal;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--pill);color:var(--pill-ink);font-weight:800}
.sx-recs{padding:18px;display:flex;flex-direction:column;gap:10px}
.sx-rec{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"t b p" "t s p";gap:2px 12px;align-items:center;background:rgb(var(--ovr) / .03);border:1px solid var(--line);border-inline-start:3px solid var(--c);border-radius:14px;padding:12px 14px}
.sx-tag{grid-area:t;font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--c) 18%,transparent);color:color-mix(in srgb,var(--c) 65%,var(--ink))}
.sx-rec b{grid-area:b;font-size:.9rem}.sx-rec small{grid-area:s;color:var(--muted);font-size:.78rem}
.sx-pri{grid-area:p;font-size:.72rem;color:var(--muted);white-space:nowrap}
.sx-team{padding:18px;display:flex;flex-direction:column;gap:8px}
.sx-mem{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:rgb(var(--ovr) / .03);border:1px solid var(--line)}
.sx-av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:color-mix(in srgb,var(--c) 30%,transparent);color:var(--ink)}
.sx-mem b{flex:1}
.sx-role{font-size:.75rem;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.sx-link{margin-top:6px;display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:14px;border:1px dashed rgb(var(--ovr) / .2);font-size:.85rem}.sx-link small{color:var(--muted)}
/* templates */
.site .s-tlcat{background:rgb(var(--ovr) / .04);border-color:var(--line);color:var(--ink);border-radius:999px}
.site .s-tlcat:hover{border-color:var(--c-violet)}
.site .s-tlfeat .tlc{background:rgb(var(--ovr) / .03);border-color:var(--line)}
.sx-sell{margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:22px 26px;border-radius:24px;border:1px solid color-mix(in srgb,var(--c-violet) 35%,transparent);background:linear-gradient(120deg,color-mix(in srgb,var(--c-violet) 14%,transparent),color-mix(in srgb,var(--c-cyan) 6%,transparent))}
.sx-sell div{display:flex;flex-direction:column;gap:4px;max-width:700px}.sx-sell b{font-family:var(--f-display);font-size:1.15rem}.sx-sell span{color:var(--muted)}
/* steps, pricing, compare, faq */
.site .s-step{background:rgb(var(--ovr) / .03);border-color:var(--line);border-radius:24px;padding:26px}
.site .s-step b::before{background:var(--pill);color:var(--pill-ink)}
.site .s-step .t{display:inline-block;font-style:normal;font-size:.75rem;color:var(--brand);border:1px solid var(--line);border-radius:999px;padding:2px 10px;margin-bottom:12px}
.site .s-bill .seg{border-radius:999px;background:rgb(var(--ovr) / .04);border:1px solid var(--line);padding:4px}.site .s-bill .seg button{border-radius:999px}
.site .s-bill .seg button[aria-pressed=true]{background:var(--tab);color:var(--tab-ink)}
.site .s-price{background:rgb(var(--ovr) / .03);border-color:var(--line);border-radius:26px;box-shadow:none}
.site .s-price.hot{border-color:color-mix(in srgb,var(--c-violet) 60%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--c-violet) 14%,transparent),rgb(var(--ovr) / .02));box-shadow:0 30px 80px -30px color-mix(in srgb,var(--c-violet) 60%,transparent)}
.site .s-price .tag{background:var(--pill);color:var(--pill-ink)}
.site .s-price .btn{border-radius:999px}
.site .s-cmp .tbl{background:transparent}.site .s-cmp .me{background:color-mix(in srgb,var(--c-violet) 12%,transparent);color:var(--ink)}
.site .s-cmpt th[scope=row]{text-align:start;font-weight:600;cursor:default}
.site .s-cmpt th[scope=row][data-tip]{text-decoration:underline dotted color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:4px}
.site .s-cmpt thead th{font-size:13px;white-space:nowrap}
.site .s-cmpt td.v.y{color:#10b981;font-weight:700}
.site .s-cmpt td.v.n{color:var(--muted);opacity:.7}
.site .s-cmpt td.v.p{color:#f59e0b}
.site .s-cmpt td.me b{color:#10b981;font-size:17px}
.site .s-cmpt .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.site .s-cmp{max-width:980px}
.site .s-pcmp-h{text-align:center;font-family:var(--f-display);font-size:1.35rem;margin:42px 0 14px}
.site table.s-pcmp{min-width:0}
.site .s-pcmp th,.site .s-pcmp td{text-align:center;padding:12px 10px}
.site .s-pcmp th[scope=row]{text-align:start;font-weight:700}
.site .s-pcmp td small{color:var(--muted);font-size:11px;display:block;margin-top:2px}
.site .s-pcmp tr.me th,.site .s-pcmp tr.me td{background:color-mix(in srgb,var(--c-violet) 12%,transparent)}
.site .s-pcmp tr.me b{color:var(--brand)}
.site .s-pcmp td[data-tip]{text-decoration:underline dotted color-mix(in srgb,currentColor 30%,transparent);text-underline-offset:4px;cursor:help}
@media (max-width:640px){.site .s-pcmp thead{display:none}.site .s-pcmp,.site .s-pcmp tbody{display:block}.site .s-pcmp tr{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:12px 4px;border-bottom:1px solid var(--line)}.site .s-pcmp th[scope=row]{grid-column:1/-1;border:0;padding:0}.site .s-pcmp td{border:0;padding:6px 2px;white-space:normal}.site .s-pcmp td::before{content:attr(data-c);display:block;font-size:10px;color:var(--muted);font-weight:600}}
.site .s-cmp-note{text-align:center;font-size:12px;color:var(--muted);margin-top:10px}
.site .s-cmpt .pt{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px;background:color-mix(in srgb,#f59e0b 14%,transparent);color:#b45309}
@media (max-width:640px){.site .s-cmp{overflow:visible}.site table.s-cmpt{min-width:0;width:100%}.site .s-cmpt th[scope=row]{white-space:normal}.site .s-cmpt,.site .s-cmpt tbody{display:block}.site .s-cmpt thead{display:none}
.site .s-cmpt tr{display:flex;flex-wrap:wrap;gap:6px;padding:12px 4px;border-bottom:1px solid var(--line,rgba(0,0,0,.08))}
.site .s-cmpt th[scope=row]{flex:1 0 100%;padding:0 0 4px;font-size:14px;border:0}
.site .s-cmpt td{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1 1 0;min-width:0;padding:6px 2px;font-size:13px;border:0;border-radius:8px;background:color-mix(in srgb,currentColor 4%,transparent)}
.site .s-cmpt td::before{content:attr(data-c);font-size:10px;font-weight:600;color:var(--muted);opacity:1;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.site .s-cmpt th[scope=row]{order:-2}.site .s-cmpt td.me{order:-1;flex:1 0 100%;flex-direction:row;justify-content:center;gap:8px}.site .s-cmpt td.me::before{font-size:12px;color:var(--ink)}
.site .s-cmpt .pt{padding:1px 6px;font-size:10px}}

.sx-fqc{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0 0 22px}
.sx-fqc button{border:1px solid var(--line);background:rgb(var(--ovr) / .03);color:var(--ink);border-radius:999px;padding:7px 16px;font:inherit;font-size:.88rem;cursor:pointer}
.sx-fqc button[aria-pressed=true]{background:var(--tab);color:var(--tab-ink);border-color:transparent}
.site .s-faq details{background:rgb(var(--ovr) / .03);border-color:var(--line);border-radius:18px;padding:16px 20px}
.site .s-faq details[open]{background:rgb(var(--ovr) / .05)}
.site .s-faq summary{list-style:none;display:flex;justify-content:space-between;gap:12px}
.site .s-faq summary::-webkit-details-marker{display:none}
.site .s-faq summary::after{content:"+";font-size:1.3rem;line-height:1;color:var(--muted);transition:transform .2s}
.site .s-faq details[open] summary::after{transform:rotate(45deg)}
/* final + footer */
.site .s-final{position:relative;overflow:hidden;background:radial-gradient(80% 120% at 50% 0%,color-mix(in srgb,var(--c-violet) 22%,var(--surface)),var(--surface) 75%);border:1px solid rgb(var(--ovr) / .12);border-radius:32px;padding:clamp(48px,8vw,90px) 24px}
.site .s-final h2{color:var(--ink);font-size:clamp(2rem,5vw,3.6rem)}
.site .s-final p{color:var(--muted)}.site .s-final .sx-eye{color:var(--brand)}
.site .s-final .btn{background:var(--pill);color:var(--pill-ink);padding:13px 26px;font-size:1rem}
.site .s-foot{display:block;border-top:1px solid var(--line);margin-top:20px;padding-block:44px 28px;font-size:.88rem}
.sx-fgrid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:28px}
.sx-fgrid>div{display:flex;flex-direction:column;gap:9px}
.sx-fgrid h3{margin:0 0 4px;font-size:.92rem;color:var(--ink)}
.sx-fgrid a{color:var(--muted);text-decoration:none;width:max-content}.sx-fgrid a:hover{color:var(--ink)}
.sx-fb p{color:var(--muted);margin:4px 0 0;max-width:280px}
.sx-fbot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:36px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}
.site .s-sticky{border-radius:999px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:var(--sh-2);border:1px solid var(--line);backdrop-filter:blur(12px)}
@media (max-width:980px){.sx-app{grid-template-columns:48px 1fr}.sx-float{grid-column:1/-1;margin-top:0}.sx-chg{grid-template-columns:1fr}.sx-ch.flip .sx-cht{order:0}.sx-chm[data-sx]{--tx:0px!important;--ry:0deg!important}.sx-fgrid{grid-template-columns:1fr 1fr}.sx-fb{grid-column:1/-1}}
@media (max-width:860px){.site .s-feats{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.site .s-nav{top:8px;width:calc(100% - 16px)}.site .s-nav .s-wrap{gap:6px}.site .s-nav .btn{padding:6px 11px;font-size:.82rem;min-width:0}.site .s-logo{font-size:1.05rem;gap:7px}.site .s-logo .lm{width:28px;height:28px}.site .s-feats{grid-template-columns:1fr}.sx-app{grid-template-columns:1fr}.sx-side{display:none}.sx-kpis{grid-template-columns:1fr 1fr}.sx-kpis>div:last-child{grid-column:1/-1}.sx-rec{grid-template-areas:"t p" "b b" "s s";grid-template-columns:auto 1fr}.sx-pri{justify-self:end}.sx-num{font-size:2.4rem}.site .s-try{border-radius:22px}.site .s-try .btn{border-radius:16px}.sx-mapdet{min-height:0;display:flex;flex-direction:column}.sx-mapbg{position:relative;height:230px}.sx-sheet{position:static;width:auto;margin:0 12px 12px}.site .s-dtabs{border-radius:22px}}
@media (prefers-reduced-motion:reduce){.sx-scroll span::after{animation:none}}
/* ===== architecture view ===== */
.ar-stack{display:flex;flex-direction:column;max-width:1200px;margin-inline:auto}
.ar-l{border:1px solid color-mix(in srgb,var(--kc) 35%,var(--line));border-radius:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--kc) 9%,var(--surface)),var(--surface));padding:12px 14px 14px;box-shadow:var(--sh-1)}
.ar-l>header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;cursor:pointer}
.ar-l>header b{font-family:var(--f-display);font-size:1.05rem;display:inline-flex;align-items:center;gap:8px}
.ar-l>header b::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--kc)}
.ar-l>header small{color:var(--muted)}
.ar-bar{flex:1;min-width:60px;max-width:180px;height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden}.ar-bar i{display:block;height:100%;background:var(--s-live);border-radius:inherit}
.ar-l .kadd{margin-inline-start:auto}
.ar-bs{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.ar-b{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px}
.ar-b h4{margin:0;font-size:.88rem;display:flex;justify-content:space-between;gap:8px;cursor:pointer}
.ar-b.loose{border-style:dashed}
.ar-cs{display:flex;flex-wrap:wrap;gap:6px}
.ar-c{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:10px;padding:5px 9px;font:inherit;font-size:.82rem;cursor:pointer;max-width:100%;transition:border-color .15s,transform .15s}
.ar-c:hover{border-color:var(--kc,var(--brand));transform:translateY(-1px)}
.ar-c i{width:8px;height:8px;border-radius:50%;flex:none}.ar-c span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ar-c small{color:var(--muted);font-size:.72rem}
.ar-link{display:flex;justify-content:center;gap:60px;height:22px}
.ar-link span{width:2px;height:100%;background:repeating-linear-gradient(180deg,var(--line) 0 4px,transparent 4px 7px);position:relative}
.ar-link span::after{content:"";position:absolute;bottom:-2px;left:-3px;border:4px solid transparent;border-top-color:var(--muted)}
/* ===== matrix view ===== */
.mx-grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:12px;max-width:1200px;margin-inline:auto}
.mx-c{border:1px solid color-mix(in srgb,var(--kc) 35%,var(--line));border-top:4px solid var(--kc);border-radius:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--kc) 8%,var(--surface)),var(--surface));padding:12px 14px;min-height:180px}
.mx-c header{display:flex;align-items:center;gap:8px;margin-bottom:8px;cursor:pointer}
.mx-c header b{font-family:var(--f-display);font-size:1rem;flex:1}
.mx-c ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.mx-c ul ul{padding-inline-start:12px;margin-top:2px}
.mx-c .lnk{display:inline-flex;align-items:center;gap:6px;text-align:start;text-decoration:none;color:var(--ink)}.mx-c .lnk:hover{text-decoration:underline;color:var(--brand)}
.mx-c .lnk i{width:7px;height:7px;border-radius:50%}
.mx-g>.lnk{font-weight:700;color:var(--muted);font-size:.82rem}
@media (max-width:760px){.mx-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:no-preference){
 .ar-l,.ar-b,.mx-c{animation:hierIn .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(min(var(--q,0),24)*55ms)}
 .ar-c{animation:hierIn .4s both;animation-delay:calc(min(var(--q,0),24)*55ms + 160ms)}
 .ar-link span{animation:hierIn .4s both;animation-delay:calc(min(var(--q,0),24)*55ms)}
}
@keyframes hierIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
/* ===== marketplace: layout previews, stagger, hierarchy ===== */
.mkc{--lp-ln:color-mix(in srgb,var(--muted) 45%,transparent);--lp-bg:color-mix(in srgb,var(--ink) 6%,var(--surface));--lp-bx:color-mix(in srgb,var(--ink) 13%,var(--surface))}
.mk-band{position:relative;background:linear-gradient(150deg,color-mix(in srgb,var(--mc,var(--c-violet)) 16%,var(--surface)),color-mix(in srgb,var(--mc,var(--c-violet)) 5%,var(--surface)))!important;color:var(--ink);overflow:hidden}
.mk-band{height:118px!important}
.mk-band .lp{position:absolute;inset:8px 10px 22px;width:calc(100% - 20px);height:calc(100% - 30px);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.mkc:hover .mk-band .lp{transform:scale(1.06)}
.mk-band .mk-n{position:absolute;bottom:4px;inset-inline-end:10px;color:var(--ink);background:none;font-size:.8rem}
.mk-band .mk-n small{color:var(--muted)}
.mk-lay{position:absolute;bottom:5px;inset-inline-start:10px;font-size:.72rem;font-weight:700;color:color-mix(in srgb,var(--mc,var(--c-violet)) 55%,var(--ink));background:color-mix(in srgb,var(--surface) 80%,transparent);border-radius:999px;padding:1px 8px}
.mk-ver{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:var(--brand);color:#fff;font-size:.62rem;font-weight:900;vertical-align:middle}
.mk-lays{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px}
.mk-lays button{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:5px 12px;font:inherit;font-size:.82rem;cursor:pointer}
.mk-lays button[aria-pressed=true]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:color-mix(in srgb,var(--brand) 70%,var(--ink));font-weight:700}
.lp.ico{width:24px;height:14px;color:var(--brand)}
.lp.ico{--lp-ln:currentColor;--lp-bg:color-mix(in srgb,currentColor 18%,transparent);--lp-bx:color-mix(in srgb,currentColor 35%,transparent)}
.mk-dprev{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:12px;margin:10px 0;background:linear-gradient(150deg,color-mix(in srgb,var(--mc) 12%,var(--surface)),var(--surface));--lp-ln:color-mix(in srgb,var(--muted) 45%,transparent);--lp-bg:color-mix(in srgb,var(--ink) 6%,var(--surface));--lp-bx:color-mix(in srgb,var(--ink) 13%,var(--surface))}
.mk-dprev .lp{width:170px;height:96px;flex:none}
.mk-dprev span{display:flex;flex-direction:column;gap:2px}.mk-dprev small,.mk-dprev em{color:var(--muted);font-style:normal;font-size:.8rem}.mk-dprev b{font-family:var(--f-display);font-size:1.15rem}
.tb-lays{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}
.tb-lays button{display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:6px 4px;font:inherit;font-size:.74rem;color:var(--ink);cursor:pointer}
.tb-lays button .lp.ico{width:44px;height:25px}
.tb-lays button[aria-checked=true]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,var(--surface));font-weight:700}
@media (prefers-reduced-motion:no-preference){
 .mk-grid>.mkc{animation:mkIn .55s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--ci,0)*55ms)}
 .mkc .lp .lp-a{animation:lpIn .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--ci,0)*55ms + var(--d,0)*70ms + 180ms);transform-box:fill-box;transform-origin:center}
 .mk-dprev .lp .lp-a{animation:lpIn .5s both;animation-delay:calc(var(--d,0)*80ms + 150ms);transform-box:fill-box;transform-origin:center}
 .mk-reveal li{animation:hierIn .45s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--q,0)*45ms + 120ms)}
}
@keyframes mkIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@keyframes lpIn{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
/* ===== AI presence: glowing, gently animated ===== */
.aifab{opacity:1!important;filter:none!important;isolation:isolate;overflow:visible;background:linear-gradient(135deg,var(--c-cyan),var(--c-violet) 55%,#C77DFF)!important;background-size:200% 200%!important}
.aifab::before{content:"";position:absolute;inset:-5px;border-radius:inherit;z-index:-1;background:conic-gradient(from var(--aig,0deg),var(--c-cyan),var(--c-violet),var(--brand),var(--c-cyan));filter:blur(12px);opacity:.55}
.aifab::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);pointer-events:none}
.aifab .orb{background:radial-gradient(circle at 35% 30%,#fff 0 20%,rgba(255,255,255,.55) 45%,rgba(255,255,255,.15) 70%);box-shadow:0 0 12px rgba(255,255,255,.8)}
@property --aig{syntax:"<angle>";inherits:false;initial-value:0deg}
.ai-orb{display:inline-block;flex:none;width:18px;height:18px;border-radius:50%;background:conic-gradient(from var(--aig,0deg),var(--c-cyan),var(--c-violet),var(--brand),var(--c-cyan));box-shadow:0 0 10px color-mix(in srgb,var(--c-violet) 60%,transparent);position:relative}
.ai-orb::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--surface);opacity:.85}
.ai-orb.sm{width:14px;height:14px}.ai-orb.sm::after{inset:3px}
#sdAI .sd-ico svg,#bnAI .sd-ico svg{color:var(--c-violet);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--c-violet) 70%,transparent))}
#sdAI .sd-ico,#bnAI .sd-ico{position:relative}
#sdAI .sd-ico::after,#bnAI .sd-ico::after{content:"";position:absolute;top:-1px;inset-inline-end:-2px;width:6px;height:6px;border-radius:50%;background:var(--c-cyan);box-shadow:0 0 8px var(--c-cyan)}
.ai-glow,.ai-go{position:relative;border:1px solid transparent!important;background:linear-gradient(var(--surface),var(--surface)) padding-box,conic-gradient(from var(--aig,0deg),var(--c-cyan),var(--c-violet),var(--brand),var(--c-cyan)) border-box!important;color:color-mix(in srgb,var(--c-violet) 70%,var(--ink))!important;font-weight:700}
.ai-go{background:linear-gradient(color-mix(in srgb,var(--c-violet) 10%,var(--surface)),color-mix(in srgb,var(--c-violet) 10%,var(--surface))) padding-box,conic-gradient(from var(--aig,0deg),var(--c-cyan),var(--c-violet),var(--brand),var(--c-cyan)) border-box!important}
.aibox{position:relative;border:1px solid transparent!important;background:linear-gradient(135deg,color-mix(in srgb,var(--c-violet) 9%,var(--surface)),color-mix(in srgb,var(--c-cyan) 6%,var(--surface))) padding-box,conic-gradient(from var(--aig,0deg),var(--c-cyan),var(--c-violet),var(--brand),var(--c-cyan)) border-box!important}
.aibox .tx b::before{content:"✦ ";color:var(--c-violet)}
.ai-acts{margin:6px 0 0;padding-inline-start:18px;font-size:.84rem;color:var(--muted);display:flex;flex-direction:column;gap:2px}
.ai-acts li::marker{content:"↳ ";color:var(--c-violet)}
.ai-smart{margin:2px 0}
.ai-think{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.88rem;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--c-violet) 7%,var(--surface))}
.ai-card{border-radius:14px;padding:12px 14px;background:linear-gradient(135deg,color-mix(in srgb,var(--c-violet) 9%,var(--surface)),color-mix(in srgb,var(--c-cyan) 5%,var(--surface)));border:1px solid color-mix(in srgb,var(--c-violet) 30%,var(--line));display:flex;flex-direction:column;gap:8px;font-size:.9rem}
.ai-card p{margin:0}.ai-card ol{margin:0;padding-inline-start:20px;display:flex;flex-direction:column;gap:3px}
.ai-h{display:flex;align-items:center;gap:8px}.ai-btns{display:flex;gap:6px;flex-wrap:wrap}
.ai-err{margin:0 0 6px;color:var(--muted);font-size:.86rem}
.ai-nudge{position:fixed;z-index:44;bottom:calc(84px + env(safe-area-inset-bottom,0px));inset-inline-end:18px;display:flex;align-items:center;gap:2px;max-width:min(340px,calc(100vw - 36px));background:var(--surface);border:1px solid color-mix(in srgb,var(--c-violet) 40%,var(--line));border-radius:16px;box-shadow:0 18px 50px -12px color-mix(in srgb,var(--c-violet) 55%,transparent),var(--sh-2);padding:4px;animation:nudgeIn .5s cubic-bezier(.2,.8,.2,1.2) both}
.ai-nudge::after{content:"";position:absolute;bottom:-7px;inset-inline-end:30px;width:12px;height:12px;background:var(--surface);border-inline-end:1px solid color-mix(in srgb,var(--c-violet) 40%,var(--line));border-bottom:1px solid color-mix(in srgb,var(--c-violet) 40%,var(--line));transform:rotate(45deg)}
[dir=ltr] .ai-nudge::after{transform:rotate(45deg) scaleX(-1)}
.ai-nudge.out{animation:nudgeOut .25s ease-in both}
.ai-nudge-go{display:flex;align-items:center;gap:10px;border:0;background:none;color:var(--ink);font:inherit;font-size:.88rem;font-weight:700;text-align:start;padding:8px 10px;cursor:pointer;border-radius:12px}
.ai-nudge-go:hover{background:color-mix(in srgb,var(--c-violet) 8%,var(--surface))}
.ai-nudge-x{border:0;background:none;color:var(--muted);width:30px;height:30px;border-radius:50%;cursor:pointer;flex:none}
@keyframes nudgeIn{from{opacity:0;transform:translateY(12px) scale(.92)}to{opacity:1;transform:none}}
@keyframes nudgeOut{to{opacity:0;transform:translateY(8px) scale(.96)}}
@keyframes aiSpin{to{--aig:360deg}}
@keyframes aiBreath{0%,100%{opacity:.4;transform:scale(.96)}50%{opacity:.75;transform:scale(1.04)}}
@keyframes aiTwinkle{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.6)}}
@media (prefers-reduced-motion:no-preference){
 .aifab::before{animation:aiSpin 5s linear infinite,aiBreath 3.2s ease-in-out infinite}
 .ai-orb,.ai-glow,.ai-go,.aibox{animation:aiSpin 4s linear infinite}
 #sdAI .sd-ico::after,#bnAI .sd-ico::after{animation:aiTwinkle 2.4s ease-in-out infinite}
 #sdAI .sd-ico svg,#bnAI .sd-ico svg{animation:aiTwinkle 3.6s ease-in-out infinite;animation-name:aiGlowIco}
}
@keyframes aiGlowIco{0%,100%{filter:drop-shadow(0 0 2px color-mix(in srgb,var(--c-violet) 50%,transparent))}50%{filter:drop-shadow(0 0 7px color-mix(in srgb,var(--c-cyan) 90%,transparent))}}
.presenting .ai-nudge{display:none}
@media (max-width:760px){.ai-nudge{bottom:calc(140px + env(safe-area-inset-bottom,0px))}}
/* account menu + side account row */
.acc-menu{position:fixed;z-index:90;min-width:250px;max-width:calc(100vw - 16px);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-3);padding:6px;display:flex;flex-direction:column;gap:1px;animation:amIn .16s ease-out}
@keyframes amIn{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
.am-who{display:flex;gap:10px;align-items:center;padding:8px 8px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.am-who div{display:flex;flex-direction:column;min-width:0}.am-who b{font-family:var(--f-display)}.am-who small{color:var(--muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-menu [role=menuitem]{display:flex;align-items:center;gap:10px;border:0;background:none;color:var(--ink);font:inherit;font-size:.9rem;padding:9px 10px;border-radius:10px;cursor:pointer;text-align:start}
.acc-menu [role=menuitem]:hover,.acc-menu [role=menuitem]:focus-visible{background:var(--surface-2);outline:none}
.acc-menu svg{width:17px;height:17px;flex:none;color:var(--muted)}
.am-sep{height:1px;background:var(--line);margin:4px 2px}
.acc-menu .am-out{color:color-mix(in srgb,var(--s-paused) 75%,var(--ink))}.acc-menu .am-out svg{color:inherit}
.sd-me{display:flex;align-items:center;gap:4px;padding:6px 4px;border-top:1px solid var(--line);margin-top:4px}
.sd-mebtn{flex:1;min-width:0;display:flex;align-items:center;gap:9px;border:0;background:none;color:var(--ink);font:inherit;padding:6px;border-radius:10px;cursor:pointer;text-align:start}
.sd-mebtn:hover{background:var(--surface-2)}
.sd-mebtn .avatar{width:30px;height:30px;font-size:.8rem;flex:none}
.sd-met{display:flex;flex-direction:column;min-width:0}.sd-met b{font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-met small{color:var(--muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start}
.sd-out{color:color-mix(in srgb,var(--s-paused) 75%,var(--ink))}
body.side-mini .sd-me{flex-direction:column}
/* split hosts: product app has no operator entry; the operator console has its own shell */
body.app-host #tabbtn-admin{display:none!important}
body.admin-host.has-side{--sidew:0px!important}
body.admin-host .wrap>header,body.admin-host #notice,body.admin-host #tabsNav,body.admin-host .ai-nudge,body.admin-host #bnav,body.admin-host #side,body.admin-host .tour-card{display:none!important}
body.admin-host .wrap{padding-top:8px}
.op-bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px max(18px,env(safe-area-inset-right,0px)) 10px max(18px,env(safe-area-inset-left,0px));background:color-mix(in srgb,var(--ink) 92%,var(--brand));color:#fff}
.op-brand{display:flex;align-items:center;gap:9px}.op-brand b{font-family:var(--f-display);font-size:1.1rem}
.op-logo img{width:28px;height:28px;border-radius:8px;display:block;background:#fff}
.op-chip{font-size:.74rem;font-weight:700;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25)}
.op-links{display:flex;gap:4px}.op-links a{color:rgba(255,255,255,.85);text-decoration:none;font-size:.86rem;padding:5px 10px;border-radius:8px}.op-links a:hover{background:rgba(255,255,255,.1);color:#fff}
.op-sp{flex:1}
.op-bar .btn{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.25)}
.op-who{display:flex;align-items:center;gap:8px}.op-who .avatar{width:30px;height:30px;font-size:.8rem}.op-who span:last-child{display:flex;flex-direction:column;line-height:1.25}.op-who small{opacity:.75;font-size:.72rem}
@media (max-width:700px){.op-who span:last-child{display:none}.op-links a{padding:4px 6px}}
/* operator: cost & pricing simulator */
.sim{display:flex;flex-direction:column;gap:14px}
.sim .panel h3{margin:0 0 10px}
.sim-target{padding:16px 18px}
.sim-th{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.sim-th p{margin:4px 0 0;color:var(--muted);font-size:.84rem;max-width:70ch}
.sim-th output{font-family:var(--f-display);font-weight:900;font-size:2rem;color:var(--brand);font-variant-numeric:tabular-nums;line-height:1}
#sim-target{width:100%;margin-top:12px;accent-color:var(--brand)}
.sim-scale{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted)}
.sim-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px;align-items:start}
.sim-grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.sim-fs{display:flex;flex-direction:column;gap:10px}
.sim-f{display:flex;flex-direction:column;gap:4px;font-size:.84rem}.sim-f>span:first-child{color:var(--ink);font-weight:600}.sim-f small{color:var(--muted);font-size:.74rem;line-height:1.5}
.sim-in{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.sim-in:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent)}
.sim-in input{flex:1;min-width:0;border:0;background:none;padding:8px 10px;font:inherit;color:var(--ink);font-variant-numeric:tabular-nums;outline:0}
.sim-in i{font-style:normal;color:var(--muted);font-size:.76rem;padding-inline:8px;white-space:nowrap;background:var(--surface-2);align-self:stretch;display:grid;place-items:center}
.sim-in.sm{width:78px}.sim-in.sm input{padding:5px 6px}
.sim-ph{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.sim-ph h3{margin:0}.sim-acts{display:flex;gap:6px;flex-wrap:wrap}
.sim-t{font-size:.84rem;font-variant-numeric:tabular-nums;white-space:nowrap}.sim-t th,.sim-t td{text-align:center;vertical-align:middle}.sim-t thead th{font-size:.74rem;color:var(--muted);font-weight:600;white-space:normal;min-width:64px}
.sim-t tbody th{text-align:start;font-family:var(--f-display)}
.sim-ti{width:76px;border:1px solid var(--line);border-radius:8px;padding:5px 6px;font:inherit;background:var(--surface);color:var(--ink);text-align:center}
.sim-t .sim-sum{background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.sim-sg{color:var(--brand);font-size:1rem}
.sim .pos{color:color-mix(in srgb,var(--s-live) 55%,var(--ink))}.sim .neg{color:color-mix(in srgb,var(--s-paused) 62%,var(--ink))}
.sim-pill{display:inline-block;font-size:.74rem;font-weight:800;padding:2px 9px;border-radius:999px}
.sim-pill.good{background:color-mix(in srgb,var(--s-live) 16%,var(--surface));color:color-mix(in srgb,var(--s-live) 50%,var(--ink))}
.sim-pill.mid{background:color-mix(in srgb,var(--s-dev) 18%,var(--surface));color:color-mix(in srgb,var(--s-dev) 42%,var(--ink))}
.sim-pill.bad{background:color-mix(in srgb,var(--s-paused) 16%,var(--surface));color:color-mix(in srgb,var(--s-paused) 55%,var(--ink))}
.sim-note{margin:10px 0 0;color:var(--muted);font-size:.78rem;line-height:1.6}
.sim-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.sim-k{background:var(--surface-2);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.sim-k span{font-size:.76rem;color:var(--muted)}.sim-k b{font-family:var(--f-display);font-size:1.25rem;font-variant-numeric:tabular-nums}
.sim-lines{display:flex;flex-direction:column;gap:6px}
.sim-l{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(40px,1fr) auto 44px;gap:10px;align-items:center;font-size:.84rem}
.sim-l b{font-variant-numeric:tabular-nums;text-align:end}.sim-l small{color:var(--muted);text-align:end;font-variant-numeric:tabular-nums}
.sim-bar{height:8px;border-radius:6px;background:var(--surface-2);overflow:hidden}.sim-bar i{display:block;height:100%;border-radius:inherit}
.sim-l.in .sim-bar i{background:var(--s-live)}.sim-l.out .sim-bar i{background:color-mix(in srgb,var(--s-paused) 70%,var(--surface))}
.sim-l.in b{color:color-mix(in srgb,var(--s-live) 55%,var(--ink))}
.sim-l.tot{border-top:1px solid var(--line);padding-top:8px;margin-top:4px;font-weight:800}
/* store ease-of-use */
.ti{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;border:1.5px solid currentColor;color:var(--muted);font:700 .68rem/1 var(--f-body);font-style:normal;cursor:help;vertical-align:middle;opacity:.8}
.ti:hover,.ti:focus-visible{color:var(--brand);opacity:1;outline:none}
.mkc{position:relative}
.mk-q{position:absolute;top:10px;inset-inline-start:10px;z-index:2;border:0;border-radius:999px;padding:6px 14px;font:inherit;font-size:.8rem;font-weight:800;background:var(--brand);color:#fff;box-shadow:0 6px 18px -6px color-mix(in srgb,var(--brand) 70%,transparent);cursor:pointer;opacity:0;transform:translateY(-4px);transition:opacity .2s,transform .2s}
.mkc:hover .mk-q,.mkc:focus-within .mk-q{opacity:1;transform:none}
@media (hover:none){.mk-q{opacity:1;transform:none}}
.mk-sell{padding:10px 14px!important;align-items:center}
.mk-sell b{font-size:.92rem}
.pb-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.pb-chips .chip{cursor:pointer;border:1px solid var(--line);background:var(--surface)}.pb-chips .chip:hover{border-color:var(--brand)}
.sl-share{display:inline-block;vertical-align:middle;font-size:.78rem;font-weight:800;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--s-live) 14%,var(--surface));color:color-mix(in srgb,var(--s-live) 55%,var(--ink));cursor:help;margin-inline-start:6px}
.pg-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.sl-quick{display:flex;gap:8px;flex-wrap:wrap}
.sl-join{max-width:560px}
.sl-hero{display:flex;flex-direction:column;gap:2px;margin-bottom:12px}.sl-hero b{font-family:var(--f-display);font-size:1.1rem}.sl-hero span{color:var(--muted);font-size:.86rem}
.sl-terms details{border:1px solid var(--line);border-radius:10px;padding:8px 12px}.sl-terms summary{cursor:pointer;font-weight:700}.sl-terms ul{margin:8px 0 0}
.sl-check .sl-ch{display:flex;align-items:center;gap:12px;margin-bottom:10px}.sl-check h3{margin:0}
.sl-prog{flex:1;max-width:260px;height:8px;border-radius:8px;background:var(--surface-2);overflow:hidden}.sl-prog i{display:block;height:100%;background:var(--s-live);border-radius:inherit;transition:width .5s}
.sl-check ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.sl-check li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-size:.88rem}
.sl-check li.ok{color:var(--muted)}.sl-check li.next{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.sl-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:.76rem;font-weight:800;background:var(--surface-2);flex:none}
.sl-check li.ok .sl-dot{background:color-mix(in srgb,var(--s-live) 18%,var(--surface));color:color-mix(in srgb,var(--s-live) 55%,var(--ink))}
.sl-check li.next .sl-dot{background:var(--brand);color:#fff}
.sl-check li .btn{margin-inline-start:auto}
.sl-warn{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--s-dev) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--s-dev) 35%,var(--line));margin-bottom:12px;font-weight:700}
/* share panel inside the presentation */
.pcard{position:absolute;z-index:41;top:70px;inset-inline-end:22px;width:min(360px,calc(100% - 32px));max-height:calc(100% - 260px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--sc,var(--c-violet));border-radius:16px;box-shadow:var(--sh-3);overflow:hidden}
.pcard.in{animation:amIn .2s ease-out}
.pc-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 14px 8px}.pc-t small{color:var(--muted);font-size:.75rem}.pc-t h3{margin:2px 0 6px;font-family:var(--f-display);font-size:1.1rem}
.pc-b{padding:4px 14px 14px;overflow:auto;display:flex;flex-direction:column;gap:12px}.pc-b .ringw svg{width:74px;height:74px}
@media (max-width:720px){.pcard{top:auto;bottom:170px;inset-inline:12px;width:auto;max-height:45%}}
.wsrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border:1px dashed var(--line);border-radius:10px;background:var(--surface-2)}
.wsrow .wsurl{font-size:.82rem;color:var(--muted);background:none}.wsrow .wsurl b{color:var(--ink)}
.wsedit{display:inline-flex;align-items:center;gap:2px;font-size:.82rem;color:var(--muted)}.wsedit input{width:150px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;font:inherit;background:var(--surface);color:var(--ink)}
/* assistant: pulse, commands, mentions, follow-ups, voice */
.msg .meta>span{color:color-mix(in srgb,var(--ink) 78%,var(--surface))}
.ai-keys{display:flex;gap:10px;flex-wrap:wrap;font-size:.75rem;color:var(--muted);margin-top:6px}.ai-keys span{display:inline-flex;align-items:center;gap:4px;cursor:help}
.ai-keys kbd{font-family:var(--f-mono,ui-monospace,monospace);font-size:.72rem;min-width:18px;text-align:center;padding:1px 5px;border-radius:5px;border:1px solid var(--line);border-bottom-width:2px;background:var(--surface);color:var(--ink)}
.aipulse{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px;margin:2px 0 6px}
.apc{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:start;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;transition:transform .15s,border-color .15s,box-shadow .15s;animation:apcIn .35s ease-out both}
.apc:nth-child(2){animation-delay:.06s}.apc:nth-child(3){animation-delay:.12s}.apc:nth-child(4){animation-delay:.18s}
.apc b{font-family:var(--f-display);font-size:1.25rem;line-height:1}.apc span{font-size:.74rem;color:var(--muted)}
.apc:hover,.apc:focus-visible{transform:translateY(-2px);border-color:var(--c-violet);box-shadow:var(--sh-2)}
.apc.late b{color:var(--s-paused)}.apc.soon b{color:var(--s-beta,#b45309)}.apc.low b{color:var(--s-dev,#2563eb)}.apc.avg b{color:color-mix(in srgb,var(--c-violet) 55%,var(--ink))}
@keyframes apcIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.aif{position:relative}
.aipop{position:absolute;bottom:calc(100% + 6px);inset-inline:12px;max-height:260px;overflow:auto;z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-3);padding:4px;animation:amIn .14s ease-out}
.aio{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:8px;cursor:pointer}
.aio b{font-weight:600;font-size:.86rem}.aio small{color:var(--muted);font-size:.72rem;white-space:nowrap}
.aio[aria-selected=true]{background:color-mix(in srgb,var(--c-violet) 12%,var(--surface))}
.anext{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}
.anext{padding-top:8px;border-top:1px solid var(--line)}
.anext .nx{font-size:.76rem;text-align:start;white-space:normal;line-height:1.35;background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:5px 10px;border-radius:999px;cursor:pointer;transition:border-color .15s,transform .15s}
.anext .nx::before{content:'↖ ';color:var(--c-violet);font-weight:700}
[dir=ltr] .anext .nx::before{content:'↗ '}
.anext .nx:hover,.anext .nx:focus-visible{border-color:var(--c-violet);transform:translateY(-1px)}
.arefine{display:inline-flex;gap:2px;margin-inline-start:auto}
#aiMic.rec{color:#fff;background:var(--s-paused,#dc2626);animation:micPulse 1.2s ease-in-out infinite}
@keyframes micPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--s-paused,#dc2626) 45%,transparent)}50%{box-shadow:0 0 0 6px transparent}}
@media (prefers-reduced-motion:reduce){.apc,#aiMic.rec{animation:none}}
.plan-box:empty{display:none}.plan-box{display:flex;justify-content:flex-end}
.plan-pend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--s-dev) 35%,var(--line));background:color-mix(in srgb,var(--s-dev) 8%,var(--surface));font-size:.86rem}.plan-pend span{flex:1}
.danger-lnk{color:color-mix(in srgb,var(--s-paused) 70%,var(--ink));font-size:.82rem}
.qnote{display:flex;justify-content:space-between;gap:10px;margin:0 0 10px;padding:8px 12px;border-radius:10px;background:var(--surface-2);font-size:.84rem}.qnote b{color:var(--s-live)}
.rf-amt{font-size:.72rem;color:color-mix(in srgb,var(--s-paused) 70%,var(--ink))}a.cn{font-size:.78rem}
.rf-form{display:flex;flex-direction:column;gap:12px}.rf-form .f{display:flex;flex-direction:column;gap:4px}.rf-form .f span{font-size:.82rem;color:var(--muted)}.rf-form input:not([type=checkbox]){border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit;background:var(--surface);color:var(--ink)}
.s-price.cur{outline:2px solid color-mix(in srgb,var(--s-live) 60%,transparent);outline-offset:-2px}.s-price .cur-tag{background:var(--s-live);color:var(--ink)}.s-price.cur.hot .tag:not(.cur-tag){display:none}
.nf404{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,#05050c 55%,transparent);backdrop-filter:blur(6px)}
.nfbox{width:min(420px,100%);text-align:center;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:28px 24px;box-shadow:var(--sh-3);animation:amIn .25s ease-out}
.nfn{font-family:var(--f-display);font-weight:900;font-size:3.4rem;line-height:1;background:linear-gradient(90deg,var(--c-cyan),var(--c-violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.nfbox h2{margin:10px 0 6px}.nfbox p{color:var(--muted);margin:0 0 16px}.nfa{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
/* short laptop screens: compact side menu so it does not need to scroll */
@media (max-height:820px) and (min-width:900px){.sidenav .tabs button,.sd-i{min-height:34px;padding-block:5px}.sd-foot .sd-i{min-height:32px}.sd-sec{margin-top:6px;padding-top:6px}.sd-head{min-height:38px}.sd-me{padding-block:4px}}
@media (max-height:680px) and (min-width:900px){.sidenav .tabs button,.sd-i{min-height:30px;padding-block:3px;font-size:.86rem}.sd-prefs{padding-top:2px}}
/* map toolbar on medium stages: icons with tooltips so it stays on one row */
.mapcard{container-type:inline-size;container-name:mapc}
@container mapc (max-width:1060px){.mapbar .bl,#modeBtn .lbl{display:none}.mapbar .search{width:140px}.mapbar .tools button{padding-inline:10px}}
.hint.clash{display:none}
.legend .lg-b{all:unset;display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:2px 8px;border-radius:999px;transition:background .15s,opacity .15s}
.legend .lg-b:hover{background:var(--surface-2)}.legend .lg-b:focus-visible{outline:2px solid var(--c-violet);outline-offset:1px}
.legend .lg-b[aria-pressed=true]{background:color-mix(in srgb,var(--c-violet) 14%,var(--surface));color:var(--ink);font-weight:700}
.legend.lg-active .lg-b[aria-pressed=false]{opacity:.55}
.legend .lg-clear{all:unset;cursor:pointer;font-size:.74rem;font-weight:700;padding:2px 10px;border-radius:999px;background:var(--c-violet);color:#fff}
.legend .lg-clear:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
/* map background options */
.mapcard.bg-custom{background-clip:padding-box}
.mapcard.bg-dark #map{--ink:#ECEEFF;--muted:#A9ACD3;--line:rgba(255,255,255,.13)}
.mapcard.bg-dark #map .node text{fill:#ECEEFF}
.bgsw{display:flex;flex-wrap:wrap;gap:8px}
.bgsw button{width:30px;height:30px;border-radius:9px;border:1px solid var(--line);cursor:pointer;padding:0;box-shadow:inset 0 0 0 2px var(--surface)}
.bgsw button.auto{background:linear-gradient(135deg,var(--surface) 50%,#1b1d2b 50%)}
.bgsw button[aria-pressed=true]{outline:2px solid var(--c-violet);outline-offset:2px}
.bgsw button:focus-visible{outline:2px solid var(--c-violet);outline-offset:2px}
.bgpick{position:relative;width:30px;height:30px;border-radius:9px;border:1px dashed var(--line);display:grid;place-items:center;color:var(--muted);cursor:pointer;overflow:hidden}
.bgpick input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.bgpick:focus-within{outline:2px solid var(--c-violet);outline-offset:2px}
.s-hero{position:relative;isolation:isolate}
.sx-neural{position:absolute;inset:-40px 0 0;width:100%;height:calc(100% + 40px);z-index:-1;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 75% 70% at 50% 45%,#000 30%,transparent 80%);mask-image:radial-gradient(ellipse 75% 70% at 50% 45%,#000 30%,transparent 80%);opacity:.9}
/* export preview editing */
.ex-it{position:relative;min-width:0}
.pages .ex-it{width:92%}.pages .ex-it img{width:100%;display:block}
.ex-tools{position:absolute;top:6px;inset-inline-end:6px;display:flex;gap:3px;opacity:0;transition:opacity .15s;z-index:2}
.ex-it:hover .ex-tools,.ex-it:focus-within .ex-tools{opacity:1}
@media (hover:none){.ex-tools{opacity:1}}
.ex-tools button{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:.8rem;line-height:1;cursor:pointer;box-shadow:var(--sh-2);display:grid;place-items:center;padding:0}
.ex-tools button:hover{border-color:var(--brand);color:var(--brand)}
.ex-tools button.del:hover{border-color:var(--s-paused);color:var(--s-paused)}
.ex-tools button:disabled{opacity:.35;cursor:default}
.sld [data-ext]{outline:none;border-radius:4px;cursor:text}
.sld [data-ext]:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 50%,transparent)}
.sld [data-ext]:focus{box-shadow:0 0 0 2px var(--brand);background:color-mix(in srgb,#fff 70%,transparent);color:#1E2140}
.sld .rows span{position:relative}
.ex-rx{border:0;background:transparent;color:inherit;opacity:0;cursor:pointer;font-size:.7em;padding:0 3px;line-height:1}
.sld .rows span:hover .ex-rx,th:hover .ex-rx,.ex-rx:focus-visible{opacity:.75}.ex-rx:hover{opacity:1;color:var(--s-paused)}
@media (hover:none){.ex-rx{opacity:.6}}
.ex-hid{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 12px;width:100%;border-top:1px dashed var(--line);font-size:.8rem;color:var(--muted)}
.ex-hid .chip{font-size:.76rem}
.prev .pv:has(.ex-hid){flex-wrap:wrap;align-content:flex-start}
.ex-title{width:100%;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface);color:var(--ink);font:inherit;font-size:.85rem}
.ex-title:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
.ex-items{margin-top:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.ex-items summary{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;cursor:pointer;font-size:.84rem;list-style:none}
.ex-items summary::-webkit-details-marker{display:none}
.ex-items summary b{font-size:.78rem;color:var(--muted);font-weight:600}
.ex-ib{display:flex;gap:6px;padding:0 10px 8px}.ex-ib input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:var(--bg);color:var(--ink);font:inherit;font-size:.8rem}
.ex-il{max-height:200px;overflow:auto;padding:0 6px 8px;display:flex;flex-direction:column}
.ex-il label{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:7px;font-size:.82rem;cursor:pointer}
.ex-il label:hover{background:var(--surface-2)}.ex-il i{width:8px;height:8px;border-radius:50%;flex:none}
/* quiet chrome: toolbar and legend recede until hovered or focused, so the map leads (text stays at readable contrast) */
@media (hover:hover){
.mapbar>*,.mapbar>* button,.mapbar>* input,.legend{transition:background-color .25s,border-color .25s,box-shadow .25s,color .25s}
.mapbar:not(:hover):not(:focus-within)>*:not(:has([aria-expanded="true"])):not(:has(input:not(:placeholder-shown))){background:color-mix(in srgb,var(--surface) 45%,transparent)!important;box-shadow:none!important;border-color:color-mix(in srgb,var(--line) 55%,transparent)!important;backdrop-filter:none}
.mapbar:not(:hover):not(:focus-within)>*:not(:has([aria-expanded="true"])) button{background:transparent!important;color:var(--muted)!important;border-color:transparent!important;box-shadow:none!important}
.mapbar:not(:hover):not(:focus-within)>*:not(:has([aria-expanded="true"])) svg{opacity:.75}
.legend:not(:hover):not(:focus-within):not(:has([aria-pressed="true"])){background:transparent!important;box-shadow:none!important;border-color:transparent!important}}
/* template library as an app section: below the header, beside the sidebar, under the assistant */
body.tl-emb .tlib,body.tl-emb .tl-det{top:var(--tltop,0px);bottom:0;inset-inline-start:var(--sidew);inset-inline-end:var(--aidock,0px);transition:inset .28s cubic-bezier(.2,.9,.25,1);z-index:40;border-top:1px solid var(--line);border-start-start-radius:18px;animation:fadeIn .18s ease-out}
body.tl-emb .tlib .tl-top{border-start-start-radius:18px}
body.tl-emb .tl-det{position:fixed;inset-inline-start:var(--sidew);inset-inline-end:var(--aidock,0px);border-start-start-radius:18px}
.sd-i[aria-current="page"]{background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--ink)}
@media (max-width:899px){body.tl-emb .tlib,body.tl-emb .tl-det{inset-inline-start:0;bottom:calc(var(--bnavh,0px) + env(safe-area-inset-bottom,0px));border-radius:0}}
body.tl-emb .sidenav .tabs button[aria-selected="true"]{background:none;color:var(--muted)}body.tl-emb .sidenav .tabs button[aria-selected="true"]::after{display:none}
body.tl-emb .bnav button[aria-current="true"]{color:var(--muted)}body.tl-emb .bnav button[aria-current="true"] .sd-ico{background:none}
/* dialogs: the title and the action bar stay put; only the content scrolls */
.modal .mbox{max-height:calc(100dvh - 32px)}
.modal .mbox .mhead{position:sticky;top:0;z-index:5;background:var(--surface);border-start-start-radius:22px;border-start-end-radius:22px}
.modal .mbox .mfoot{position:sticky;bottom:0;z-index:5;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-end-start-radius:22px;border-end-end-radius:22px;margin-top:auto}
/* operator: marketing */
.mk-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))!important}
.mk-ok{font-size:.8rem;font-weight:800;margin-inline-start:4px}.mk-ok.y{color:color-mix(in srgb,var(--s-live) 75%,var(--ink))}.mk-ok.n{color:color-mix(in srgb,var(--s-paused) 75%,var(--ink))}
.mk-f input[aria-invalid="true"],.mk-seo input[aria-invalid="true"]{border-color:var(--s-paused)}
.mk-cnt{color:var(--muted);font-weight:500;font-size:.75rem}
.mk-ev{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;font-size:.82rem}.mk-ev span{display:flex;flex-wrap:wrap;gap:6px}
.mk-ev i{font-style:normal;padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.mk-seo{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:900px){.mk-seo{grid-template-columns:1fr}}
.mk-prev{display:flex;flex-direction:column;gap:12px}
.mk-serp{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface);display:flex;flex-direction:column;gap:2px;min-width:0}
.mk-serp small{color:var(--muted);font-size:.74rem;text-align:start}.mk-serp b{color:#3B5BDB;font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-theme="dark"] .mk-serp b{color:#9AB0FF}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mk-serp b{color:#9AB0FF}}
.mk-serp p{margin:0;color:var(--muted);font-size:.82rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mk-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}
.mk-img{aspect-ratio:1200/630;background:var(--surface-2) center/cover no-repeat}
.mk-card>div:last-child{padding:8px 12px;display:flex;flex-direction:column;gap:2px}.mk-card b{font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mk-card small{color:var(--muted);font-size:.72rem;text-align:start}
.mk-links{display:flex;gap:12px;flex-wrap:wrap;font-size:.8rem}.mk-links a{color:var(--brand)}.mk-links span{color:var(--muted)}
.mk-save{position:sticky;bottom:0;display:flex;justify-content:flex-start;padding:12px 0;background:linear-gradient(transparent,var(--bg) 40%);z-index:2}
.tipi{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--surface-2);color:var(--muted);font-size:.72rem;cursor:help}
/* consent bar */
.mk-cb{position:fixed;inset-inline:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:90;margin-inline:auto;max-width:560px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px 10px 14px;background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-3);font-size:.84rem;direction:var(--dir,rtl);animation:upIn .3s ease-out}
.mk-cb span{flex:1 1 220px;color:var(--ink)}.mk-cb a{color:var(--brand)}
@media (max-width:760px){}
.sx-exit{position:fixed;z-index:80;inset-inline-end:clamp(12px,3vw,28px);bottom:clamp(12px,3vw,28px);width:min(360px,calc(100% - 24px));background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--sh-3);padding:20px 18px 18px;display:flex;flex-direction:column;gap:10px;animation:upIn .35s cubic-bezier(.2,.9,.25,1)}
.sx-exit[hidden]{display:none}
.sx-exit h3{margin:0;font-size:1.15rem;line-height:1.4}
.sx-exq{display:flex;flex-wrap:wrap;gap:6px}
.sx-exx{position:absolute;top:10px;inset-inline-end:10px;width:30px;height:30px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer}
@media (max-width:760px){.sx-exit{inset-inline:12px;width:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px))}}
.sh-foot .ib{width:34px;height:34px;padding:0;display:inline-grid;place-items:center}
.sh-foot .sh-del{margin-inline-start:auto;width:34px;height:34px;padding:0;display:inline-grid;place-items:center;font-size:1rem;font-weight:800;color:color-mix(in srgb,var(--s-paused) 80%,var(--ink));border-color:color-mix(in srgb,var(--s-paused) 30%,var(--line))}
.ed-more{border:1px solid var(--line);border-radius:14px;padding:0 12px;margin-top:4px}
.ed-more>summary{cursor:pointer;padding:10px 2px;font-weight:700;color:var(--muted);list-style:none;display:flex;align-items:center;gap:6px}
.ed-more>summary::-webkit-details-marker{display:none}.ed-more>summary::before{content:"▸";transition:transform .2s}[dir=rtl] .ed-more>summary::before{content:"◂"}.ed-more[open]>summary::before{transform:rotate(-90deg)}
.ed-more[open]{padding-bottom:12px}
.ed-core{border:0;padding:0;margin:0}
.sh-foot .sh-del:hover{background:color-mix(in srgb,var(--s-paused) 12%,var(--surface));border-color:color-mix(in srgb,var(--s-paused) 45%,var(--line))}
/* template library header: calm and compact */
.tl-top{padding:14px 0 6px!important;background:color-mix(in srgb,var(--bg) 94%,transparent)!important}
.tl-h{align-items:center!important;gap:12px!important;flex-wrap:wrap}
.tl-h h2{font-size:1.25rem!important;cursor:default;margin-inline-end:4px!important}
.tl-h .tl-src{display:flex;gap:8px;align-items:center;margin:0;flex:1;min-width:0}
.tl-h .tl-src .seg{background:var(--surface-2);border:0;padding:3px;border-radius:12px}
.tl-h .tl-src .seg button{border-radius:9px;padding:6px 12px;font-size:.84rem}
.tl-h .tl-src .seg button small{opacity:.85;font-size:.72rem;margin-inline-start:2px}
.tl-h .tl-src .seg{display:flex!important;flex-wrap:nowrap;width:auto}
.tl-h .tl-src .seg button{white-space:nowrap}
@media (max-width:640px){.tl-h h2{flex:1}.tl-h .tl-src{order:3;flex-basis:100%}.tl-h .tl-src .seg{flex:1}.tl-h .tl-src .seg button{flex:1}.tl-new span{display:none}.tl-new{padding-inline:12px;height:36px}.tl-fbtn span{display:none}.tl-fbtn{padding:0 12px}}
.tl-new{margin-inline-start:auto;border-radius:10px;color:var(--brand);border-color:color-mix(in srgb,var(--brand) 30%,var(--line));background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.tl-x{border-radius:12px;width:38px;height:38px;padding:0;display:grid;place-items:center}
.tl-sbar{display:flex;gap:8px;align-items:center;margin:12px 0 10px}
.tl-search{position:relative;flex:1;margin:0!important}
.tl-search svg{position:absolute;inset-inline-start:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.tl-search input{padding:11px 16px!important;padding-inline-start:42px!important;border-radius:14px!important;font-size:.95rem!important;background:var(--surface)!important;box-shadow:0 1px 2px rgba(30,33,64,.04)}
.tl-search input:focus{outline:none!important;border-color:var(--brand)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent)!important}
.tl-fbtn{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;flex:none}
.tl-fbtn:hover{border-color:color-mix(in srgb,var(--brand) 40%,var(--line))}
.tl-fbtn[aria-expanded="true"]{background:color-mix(in srgb,var(--brand) 10%,var(--surface));border-color:color-mix(in srgb,var(--brand) 40%,var(--line));color:var(--brand)}
.tl-fbtn b{min-width:20px;height:20px;border-radius:999px;background:var(--brand);color:#fff;font-size:.72rem;display:grid;place-items:center;padding:0 5px}
.tl-cats{gap:4px!important;padding-bottom:2px!important;scrollbar-width:none;-webkit-mask-image:linear-gradient(to left,#000 92%,transparent);mask-image:linear-gradient(to left,#000 92%,transparent)}
[dir=ltr] .tl-cats{-webkit-mask-image:linear-gradient(to right,#000 92%,transparent);mask-image:linear-gradient(to right,#000 92%,transparent)}
.tl-cats::-webkit-scrollbar{display:none}
.tl-cats button{border:0!important;background:transparent!important;color:var(--muted)!important;padding:6px 12px!important;min-height:32px!important;font-weight:600;border-radius:10px!important}
.tl-cats button:hover{color:var(--ink)!important;background:var(--surface-2)!important}
.tl-cats button[aria-pressed="true"]{background:var(--ink)!important;color:var(--surface)!important}
.tl-fl{display:none!important;margin:8px 0 4px!important;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface);gap:10px!important;animation:fadeIn .18s ease-out}
.tl-fl.on{display:flex!important}
.tl-fl .tl-sp{display:none}
.tl-act{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.tl-grid{gap:14px!important;padding:18px 0!important}
/* ===== template builder: build directly on the final shape ===== */
.tb-main{grid-template-columns:minmax(0,1fr) 300px!important}
.tb-canvas{position:relative;padding:0 0 120px!important;background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--ink) 9%,transparent) 1px,transparent 0) 0 0/22px 22px,var(--bg)}
.tb-pal{position:sticky;top:0;z-index:5;flex-direction:row!important;align-items:center;gap:8px!important;padding:10px 16px!important;background:color-mix(in srgb,var(--surface) 92%,transparent)!important;backdrop-filter:blur(8px);border:0!important;border-bottom:1px solid var(--line)!important;overflow:visible!important;flex-wrap:wrap}
.tb-pal-sp{flex:1}
.tb-chip{flex-direction:row!important;align-items:center!important;gap:8px!important;padding:7px 14px!important;border-radius:999px!important;font-weight:700;font-size:.86rem;box-shadow:var(--sh-1)}
.tb-chip i{width:12px;height:12px;border-radius:50%;background:var(--c)}.tb-chip.k-track i{width:14px;height:14px}.tb-chip.k-item i{width:9px;height:9px}
.tb-chip:active{cursor:grabbing}
.tb-iss{font-size:.78rem;padding:5px 10px!important;border-radius:999px!important;cursor:help;color:color-mix(in srgb,var(--s-dev) 60%,var(--ink))}
.tb-ok{font-size:.78rem;padding:5px 10px!important;border-radius:999px!important}
.tb-vis{display:flex;align-items:center;gap:0;padding:36px 28px;min-width:max-content}
.tb-core{flex:none;width:118px;height:118px;border-radius:50%;display:grid;place-items:center;text-align:center;padding:12px;background:var(--surface);border:2px solid color-mix(in srgb,var(--brand) 35%,var(--line));box-shadow:0 0 0 8px color-mix(in srgb,var(--brand) 7%,transparent),var(--sh-2);font-family:var(--f-display);font-weight:800;font-size:.86rem;line-height:1.35;color:var(--ink);overflow:hidden;position:relative;z-index:1}
.tb-core.dz-slot{box-shadow:0 0 0 8px color-mix(in srgb,var(--brand) 25%,transparent)}
.tb-trees{display:flex;flex-direction:column;gap:0;position:relative;padding-inline-start:34px}
.tb-trees::before{content:"";position:absolute;inset-inline-start:0;top:50%;width:34px;border-top:2px solid color-mix(in srgb,var(--brand) 30%,var(--line))}
.tb-tree,.tb-tree ul{list-style:none;margin:0!important;padding:0;border:0!important}
.tb-tree{display:flex;flex-direction:column}
.tb-n{display:flex;align-items:center;margin:0!important;position:relative;padding:5px 0;padding-inline-start:22px;--ln:color-mix(in srgb,var(--tc,var(--brand)) 35%,var(--line))}
.tb-n::before{content:"";position:absolute;inset-inline-start:0;top:50%;width:22px;border-top:2px solid var(--ln)}
.tb-n::after,.tb-slot::after{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;border-inline-start:2px solid var(--ln)}
.tb-tree>.tb-n:first-child::after,.tb-n>ul>li:first-child::after{top:50%}
.tb-tree>.tb-n:last-child::after,.tb-n>ul>li:last-child::after{bottom:50%}
.tb-tree>.tb-n:only-child::after,.tb-n>ul>li:only-child::after{display:none}
.tb-n>ul{display:flex;flex-direction:column;position:relative;padding-inline-start:22px!important}
.tb-n>ul::before{content:"";position:absolute;inset-inline-start:0;top:50%;width:22px;border-top:2px solid var(--ln)}
.tb-n .tb-n{--tc:inherit}
.tb-tree>.tb-n{--tc0:var(--brand)}
.tb-row{flex:none;gap:4px!important;padding:3px 6px!important;border-radius:999px!important;border:2px solid var(--line)!important;background:var(--surface)!important;box-shadow:var(--sh-1);transition:box-shadow .15s,border-color .15s}
.tb-n.k-track>.tb-row{background:color-mix(in srgb,var(--tc,var(--brand)) 16%,var(--surface))!important;border-color:var(--tc,var(--brand))!important;padding:6px 10px!important}
.tb-n.k-track>.tb-row .tb-in{color:var(--ink);font-size:1rem}

.tb-n.k-group>.tb-row{border-color:color-mix(in srgb,var(--tc,var(--brand)) 55%,var(--line))!important;border-inline-start-width:2px!important}
.tb-n.k-group>.tb-row .tb-in{font-weight:700}
.tb-n.k-item>.tb-row{padding:1px 6px!important;font-size:.86rem}
.tb-n.k-item>.tb-row::before{content:"";width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--tc,var(--brand)) 70%,#fff);flex:none;margin-inline-start:4px}
.tb-in{flex:none!important;min-width:0!important;width:auto;field-sizing:content;max-width:260px;padding:5px 6px!important;border-radius:999px!important}
.tb-in:focus{background:color-mix(in srgb,var(--surface-2) 70%,transparent)!important;border-color:transparent!important}
.tb-n.k-track>.tb-row .tb-in:focus{background:var(--surface)!important}
.tb-in:placeholder-shown{border-color:transparent!important;font-style:italic}
.tb-h{opacity:.3;width:14px;padding:0!important;overflow:hidden;transition:opacity .15s}
.tb-row:hover .tb-h,.tb-row:focus-within .tb-h{opacity:1}
.tb-col{width:16px!important;height:16px!important;border-radius:50%!important;background:var(--tc,var(--brand))!important;border:2px solid var(--surface)!important;box-shadow:0 0 0 1px var(--tc,var(--brand))}
.tb-acts{opacity:0!important;width:0;overflow:hidden;transition:opacity .15s}
.tb-row:hover .tb-acts,.tb-row:focus-within .tb-acts{opacity:1!important;width:auto}
.tb-acts button{min-width:26px!important;height:26px!important;font-size:.8rem!important}
.tb-acts .tb-del:hover{color:var(--s-paused)!important}
.tb-n.sel>.tb-row{box-shadow:0 0 0 3px color-mix(in srgb,var(--tc,var(--brand)) 30%,transparent)!important}
.tb-slot{position:relative;padding:4px 0;padding-inline-start:22px;margin:0!important;border:0!important;font-size:0}
.tb-slot::before{content:"";position:absolute;inset-inline-start:0;top:50%;width:22px;border-top:2px dashed var(--ln)}
.tb-n>ul>li.tb-slot:last-child::after{bottom:50%}
.tb-plus{width:28px;height:28px;border-radius:50%;border:2px dashed color-mix(in srgb,var(--tc,var(--brand)) 45%,var(--line));background:var(--surface);color:color-mix(in srgb,var(--tc,var(--brand)) 80%,var(--ink));font-size:1rem;line-height:1;cursor:pointer;display:grid;place-items:center;opacity:.55;transition:opacity .15s,background .15s}
.tb-plus:hover,.tb-plus:focus-visible,.tb-slot.dz-slot .tb-plus{opacity:1;border-style:solid;background:color-mix(in srgb,var(--tc,var(--brand)) 10%,var(--surface))}
.tb-plus.big{width:auto;height:40px;border-radius:999px;padding:0 18px;font-size:.92rem;font-weight:700;opacity:.8}
.tb-root{margin:10px 0 0!important;padding:4px 0!important;border:0!important;background:none!important;display:flex!important;flex-direction:row!important;align-items:center;gap:10px!important;text-align:start!important;position:relative}
.tb-root span{color:var(--muted);font-size:.84rem}
.tb-root.dz-slot .tb-plus{opacity:1;border-style:solid}
.tb-row.dz-before{box-shadow:0 -4px 0 -1px var(--brand)!important}.tb-row.dz-after{box-shadow:0 4px 0 -1px var(--brand)!important}.tb-row.dz-inside{box-shadow:0 0 0 3px var(--brand)!important}
.tb-pal .tb-chip{border:1px solid var(--line)!important}
body.tl-open .tour-card,body.tl-open .tour-ring{display:none!important}
.tb-vis{min-height:62vh}
.tb-side .tb-lays{grid-template-columns:repeat(4,1fr)!important;gap:6px}
.tb-side .tb-lays button{padding:8px 2px!important;min-height:40px}
.tb-side .tb-lays button .lp.ico{width:40px;height:22px}
.tb-side{gap:14px!important}
@media (max-width:700px){
 .tb-vis{flex-direction:column;align-items:stretch;padding:16px 12px;min-width:0}
 .tb-core{width:auto;height:auto;border-radius:16px;padding:10px 14px;align-self:flex-start;box-shadow:var(--sh-1)}
 .tb-trees{padding-inline-start:0;margin-top:10px}.tb-trees::before{display:none}
 .tb-n{flex-direction:column;align-items:flex-start;padding-inline-start:0}
 .tb-n::before,.tb-n::after,.tb-slot::before,.tb-slot::after,.tb-n>ul::before{display:none}
 .tb-n>ul{padding-inline-start:12px!important;margin-inline-start:14px!important;margin-top:4px!important;border-inline-start:2px solid var(--ln)!important}
 .tb-slot{padding-inline-start:0}
 .tb-h{opacity:1!important;width:auto!important}
 .tb-acts{display:none!important}
 .tb-core{width:auto!important;height:auto!important;border-radius:999px!important;padding:8px 18px!important;font-size:.95rem!important;font-weight:700;align-self:flex-start;box-shadow:0 0 0 5px color-mix(in srgb,var(--brand) 12%,transparent)!important}
 .tb-row:focus-within .tb-acts,.tb-n.sel>.tb-row .tb-acts{display:flex!important;opacity:1!important;width:auto!important}
 .tb-in{max-width:58vw}}
@media (max-width:900px){.tb-main{grid-template-columns:1fr!important}.tb-side{border:0!important;border-top:1px solid var(--line)!important}.tb-vis{padding:22px 12px}.tb-core{width:84px;height:84px;font-size:.74rem}}
/* builder: fluid drag & drop + assistant */
.tb-chip,.tb-h{touch-action:none;user-select:none;-webkit-user-select:none}
.tb-row{cursor:grab;touch-action:pan-y}.tb-row .tb-in:focus{cursor:text}
.tbd.tb-dragging,.tbd.tb-dragging *{cursor:grabbing!important;user-select:none}
@media (min-width:701px){.tbd .tb-acts{position:absolute;bottom:100%;inset-inline-end:8px;width:auto!important;overflow:visible;flex-wrap:nowrap;background:var(--surface);border:1px solid var(--line);border-radius:999px;box-shadow:var(--sh-2,0 6px 18px -8px rgba(30,33,64,.3));padding:2px;pointer-events:none;z-index:6;transform:translateY(4px);transition:opacity .15s,transform .15s}
 .tbd .tb-row:hover .tb-acts,.tbd .tb-row:focus-within .tb-acts{pointer-events:auto;transform:none}
 .tbd .tb-row:hover,.tbd .tb-row:focus-within{z-index:5}
 .tbd .tb-n.k-item>.tb-row .tb-acts{bottom:auto;top:50%;inset-inline-end:auto;inset-inline-start:calc(100% + 6px);transform:translate(0,-50%)}
 .tbd .tb-n.k-item>.tb-row:hover .tb-acts,.tbd .tb-n.k-item>.tb-row:focus-within .tb-acts{transform:translate(0,-50%)}}
.tbd.tb-dragging .tb-acts{opacity:0!important;pointer-events:none!important}
body.tb-emb .tbd{top:var(--tltop,0px);bottom:0;inset-inline-start:var(--sidew);inset-inline-end:var(--aidock,0px);z-index:41;border-top:1px solid var(--line);border-inline-start:1px solid var(--line);border-start-start-radius:18px;overflow:hidden;transition:inset .28s cubic-bezier(.2,.9,.25,1);animation:fadeIn .18s ease-out}
body.tb-emb.tb-open{overflow:auto}
@media (max-width:899px){body.tb-emb .tbd{inset-inline-start:0;bottom:calc(var(--bnavh,0px) + env(safe-area-inset-bottom,0px));border-radius:0;border-inline-start:0}}
.tb-askai{display:inline-flex;align-items:center;gap:8px;border:1.5px solid color-mix(in srgb,var(--brand) 35%,var(--line));background:color-mix(in srgb,var(--brand) 7%,var(--surface));color:var(--ink);border-radius:999px;padding:7px 14px 7px 10px;font:inherit;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}
body.tb-open #aiNudge{display:none!important}
.tb-askai:hover,.tb-askai:focus-visible{background:color-mix(in srgb,var(--brand) 14%,var(--surface));border-color:var(--brand)}
.snap-flash{position:absolute;inset:0;z-index:30;pointer-events:none;background:#fff;border-radius:inherit;animation:snapF .5s ease-out forwards}
@keyframes snapF{0%{opacity:.75}100%{opacity:0}}
#snapBtn svg{display:block;margin:auto}
.snap-fab{display:none}
@media (max-width:700px){.mapbar #snapBtn{display:none}
 .snap-fab{display:grid;place-items:center;position:absolute;z-index:5;bottom:calc(12px + env(safe-area-inset-bottom,0px));inset-inline-end:12px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--ink);box-shadow:var(--sh-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer}
 .snap-fab svg{width:20px;height:20px}.snap-fab:active{transform:scale(.94)}.snap-fab[aria-busy="true"]{opacity:.5;pointer-events:none}
 .mapcard.present .snap-fab,.mapcard.with-sheet .snap-fab{display:none}}#snapBtn[aria-busy="true"]{opacity:.5;pointer-events:none}
/* touch: no zoom-on-focus (iOS) and finger-sized targets */
@media (pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{font-size:16px!important}
 .khit{transform:scale(var(--kinv,1))}
 .sheet .crumbs a,.sheet .crumbs button,.sh-crumb a,.sh-crumb button{display:inline-flex;align-items:center;min-height:30px;padding-block:4px}}
@media (max-width:899px){.bnav button>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-inline:2px}}
/* very narrow phones (folded screens, 280–340px) */
@media (max-width:340px){body.has-side .top{gap:5px!important}
 .mapsw{min-width:0;flex:1 1 auto}#mapBtn{min-width:0;max-width:100%;display:flex;align-items:center;gap:5px;overflow:hidden;white-space:nowrap;padding-inline:8px}
 #mapBtn .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:.95rem}
 body.has-side .top .btn{flex-shrink:0}body.has-side .top #addBtn .bl,body.has-side .top #addBtn .lbl{display:none}
 .bnav{max-width:100vw;overflow:hidden}.bnav button{min-width:0!important;flex:1 1 0!important;font-size:.64rem!important;padding-inline:0;letter-spacing:-.01em}.bnav button[aria-current="true"] .sd-ico{padding:2px 8px!important}
 .bnav button>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-inline:2px}
 .tlib .seg{min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}.tlib .seg::-webkit-scrollbar{display:none}.tlib .seg button{flex:none}.bnav button .sd-ico{padding:2px 8px!important}
 .drawer,.tlib,.tbd,.aip,.sheet{max-width:100vw!important;min-width:0!important}}
/* touch on wider screens (landscape phones, tablets): finger-sized small controls */
@media (pointer:coarse){.legend .lg-b,.seg button,.sd-theme button,.aimode button,[data-editq],th button,th [role=button]{min-height:32px!important}
 th button,th [role=button]{min-width:32px;justify-content:center}
 [data-editq]{min-width:30px}
 .bnav button{min-height:48px}}
.fv-msg{display:flex;align-items:center;gap:6px;margin-top:6px;color:color-mix(in srgb,var(--s-paused,#D9534F) 72%,var(--ink));font-size:.82rem;font-weight:600;line-height:1.4;animation:fvIn .18s ease-out}
.fv-msg svg{flex:none}
.fv-bad,.fv-bad:focus{border-color:var(--s-paused,#D9534F)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--s-paused,#D9534F) 16%,transparent)!important;outline:none}
.fv-shake{animation:fvShake .32s cubic-bezier(.36,.07,.19,.97)}
@keyframes fvShake{20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}
@keyframes fvIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fv-shake,.fv-msg{animation:none}}
.sn-box{width:min(820px,calc(100vw - 24px))}
.sn-body{display:flex;flex-direction:column;gap:10px}
.sn-seg{align-self:flex-start}
.sn-pv{display:grid;place-items:center;min-height:180px;max-height:min(58vh,560px);overflow:auto;border:1px solid var(--line);border-radius:14px;background:repeating-conic-gradient(var(--surface-2) 0 25%,var(--surface) 0 50%) 0 0/18px 18px;padding:10px;transition:opacity .2s}
.sn-pv.busy{opacity:.45}
.sn-pv img{display:block;max-width:100%;max-height:calc(min(58vh,560px) - 24px);width:auto;height:auto;border-radius:8px;box-shadow:var(--sh-2)}
.sn-meta{font-size:.78rem;color:var(--muted);direction:ltr;text-align:end}
.hm{gap:22px;padding-bottom:24px}
.hm-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:6px 2px 0}
.hm-hi h1{margin:0;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:800;letter-spacing:-.01em}
.hm-hi p{margin:4px 0 0;color:var(--muted);font-size:.9rem;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.hm-sep{opacity:.5}
.hm-acts{display:flex;gap:8px;flex-wrap:wrap}.hm-acts .btn{min-height:40px}
.hm-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.hm-k{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 16px;min-height:76px;box-shadow:var(--sh-1);min-width:0}
.hm-k>b{font-size:1.45rem;font-weight:800;line-height:1.1}.hm-k>span{color:var(--muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hm-k:has(.hm-ring){flex-direction:row;align-items:center;gap:10px}
.hm-ring{--p:0;width:46px;height:46px;border-radius:50%;flex:none;display:grid;place-items:center;background:conic-gradient(var(--c-teal,#4DB6A4) calc(var(--p)*1%),var(--surface-2) 0)}
.hm-ring b{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--surface);font-size:.72rem;font-weight:800}
.hm-h{display:flex;align-items:baseline;gap:8px;margin-bottom:-10px}.hm-h h2{margin:0;font-size:1.05rem}.hm-h small{color:var(--muted);font-size:.8rem}
.hm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.hm-card{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--sh-1);transition:transform .18s cubic-bezier(.2,.9,.25,1),box-shadow .18s,border-color .18s}
.hm-card:hover,.hm-card:focus-within{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:color-mix(in srgb,var(--mc,var(--brand)) 45%,var(--line))}
.hm-card.cur{border-color:color-mix(in srgb,var(--mc,var(--brand)) 55%,var(--line))}
.hm-open{all:unset;cursor:pointer;display:block;background:radial-gradient(120% 90% at 50% 45%,color-mix(in srgb,var(--mc,var(--brand)) 9%,var(--surface)),var(--surface-2,var(--bg)));aspect-ratio:16/9.4;border-bottom:1px solid var(--line)}
.hm-open:focus-visible{outline:2px solid var(--brand);outline-offset:-3px;border-radius:18px 18px 0 0}
.hm-th{width:100%;height:100%;display:block}
.hm-meta{padding:10px 14px 12px;display:flex;flex-direction:column;gap:6px}
.hm-t{display:flex;align-items:center;gap:8px;min-width:0}.hm-t b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.98rem}
.hm-more{border:0;background:none;color:var(--muted);border-radius:10px;min-width:32px;min-height:32px;font-size:1.1rem;cursor:pointer;line-height:1}.hm-more:hover,.hm-more:focus-visible{background:var(--surface-2);color:var(--ink)}
.hm-s{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:.8rem;flex-wrap:wrap}.hm-live{color:var(--s-live)}.hm-ago{margin-inline-start:auto}
.hm-bar{height:5px;border-radius:999px;background:var(--surface-2);overflow:hidden}.hm-bar i{display:block;height:100%;border-radius:inherit;background:var(--mc,var(--brand))}
.hm-add{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:200px;border:2px dashed color-mix(in srgb,var(--brand) 30%,var(--line));border-radius:18px;color:var(--brand);font-weight:700;transition:background .18s,border-color .18s}
.hm-add:hover,.hm-add:focus-visible{background:color-mix(in srgb,var(--brand) 6%,transparent);border-color:var(--brand)}
.hm-plus{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 12%,var(--surface));font-size:1.4rem}
.hm-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.hm-pan{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:12px 10px;box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:2px}
.hm-pan h3{margin:2px 6px 6px;font-size:.92rem;display:flex;gap:6px;align-items:center}
.hm-it{all:unset;box-sizing:border-box;min-width:0;max-width:100%;cursor:pointer;display:flex;align-items:center;gap:10px;padding:8px 8px;border-radius:12px;min-height:40px}
.hm-it:hover,.hm-it:focus-visible{background:var(--surface-2)}.hm-it:focus-visible{outline:2px solid var(--brand)}
.hm-it .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}
.hm-chip{font-size:.74rem;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.hm-chip.soon{background:color-mix(in srgb,var(--c-teal,#4DB6A4) 16%,var(--surface));color:color-mix(in srgb,var(--c-teal,#4DB6A4) 55%,var(--ink))}
.hm-chip.late{background:color-mix(in srgb,var(--s-paused) 14%,var(--surface));color:color-mix(in srgb,var(--s-paused) 70%,var(--ink))}
.hm-empty{margin:6px 8px 8px;color:var(--muted);font-size:.86rem}
body.on-home #mapsw,body.on-home #expBtn,body.on-home #shareBtn,body.on-home #addBtn,body.on-home #notice{display:none!important}
@media (max-width:899px){.hm-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.hm-kpis .hm-k:nth-child(n+4){display:none}.hm-cols{grid-template-columns:minmax(0,1fr)}
 .hm-hero{align-items:stretch;flex-direction:column}.hm-acts{display:grid;grid-template-columns:1fr 1fr}.hm-acts .btn{justify-content:center}.hm-acts #hmNew{grid-column:1/-1}.hm-acts .btn:only-child{grid-column:1/-1}.hm-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
 .hm-add{min-height:160px}.hm-k{padding:10px 12px;min-height:64px}.hm-k>b{font-size:1.2rem}}
@media (max-width:360px){.hm-grid{grid-template-columns:1fr 1fr}.hm-meta{padding:8px 10px 10px}.hm-s .hm-ago{display:none}}
@media (prefers-reduced-motion:reduce){.hm-card{transition:none}.hm-card:hover{transform:none}}
.sx-hook{font-size:clamp(1.05rem,2vw,1.35rem)!important;line-height:1.6}
.sx-rot{position:relative;display:inline-block;vertical-align:top;height:1.6em;line-height:1.6em;overflow:hidden;color:var(--brand);font-weight:800;padding-inline:2px}
.sx-rot b{display:block;white-space:nowrap;line-height:inherit;background:linear-gradient(90deg,var(--c-violet),var(--c-cyan,#7CC4F0));-webkit-background-clip:text;background-clip:text;color:transparent;transition:transform .5s cubic-bezier(.2,.9,.25,1),opacity .4s}
.sx-rot b.nx{position:absolute;inset-inline-start:2px;top:0;transform:translateY(100%);opacity:0}
.sx-rot.go b:not(.nx){transform:translateY(-100%);opacity:0}.sx-rot.go b.nx{transform:none;opacity:1}.sx-rot b.hid{transition:none}
.sx-sub2{color:var(--muted);font-size:.92em}
.sx-marq{overflow:hidden;padding:10px 0 4px;-webkit-mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.sx-mq{display:flex;gap:10px;width:max-content;animation:sxMq 46s linear infinite}
.sx-mq span{white-space:nowrap;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:rgb(var(--ovr) / .03);font-weight:600;font-size:.9rem;color:var(--muted)}
.sx-marq:hover .sx-mq{animation-play-state:paused}
@keyframes sxMq{to{transform:translateX(-50%)}}[dir=rtl] .sx-mq{animation-name:sxMqR}@keyframes sxMqR{to{transform:translateX(50%)}}
.sx-hk{font-weight:700;color:var(--ink)!important;font-size:1rem!important}
.sx-uses{display:flex!important;flex-wrap:nowrap!important;justify-content:flex-start!important;overflow-x:auto;max-width:min(100%,1100px);scrollbar-width:none;gap:4px;scroll-snap-type:x proximity;-webkit-mask:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent);mask:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent);padding-inline:18px!important}
.sx-uses::-webkit-scrollbar{display:none}
.sx-uses button{flex:none;display:inline-flex;align-items:center;gap:6px;scroll-snap-align:center;white-space:nowrap;min-height:38px}
.sx-app{grid-template-columns:56px 1fr 300px!important}
.dm-wrap{display:flex;flex-direction:column;min-width:0;border-inline-end:1px solid var(--line)}
.dm-tools{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.dm-sw{display:flex;gap:2px;background:rgb(var(--ovr) / .04);border:1px solid var(--line);border-radius:12px;padding:3px;overflow-x:auto;scrollbar-width:none;max-width:100%}
.dm-sw::-webkit-scrollbar{display:none}
.dm-sw button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:9px;color:var(--muted);font-size:.82rem;font-weight:600;white-space:nowrap;min-height:28px;transition:background .2s,color .2s}
.dm-sw button:hover{color:var(--ink)}.dm-sw button:focus-visible{outline:2px solid var(--brand)}
.dm-sw button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
.dm-sw button[aria-pressed=true] svg{color:var(--brand)}
.dm-hint{font-size:.78rem;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.dm-hint::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--s-live);box-shadow:0 0 0 0 color-mix(in srgb,var(--s-live) 60%,transparent);animation:dmPing 1.8s infinite}
@keyframes dmPing{70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.dm{position:relative;height:440px;overflow:hidden;direction:ltr}
.dm-l{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.dm-l path{fill:none;stroke-linecap:round}
.dm-hd{position:absolute;inset:0;pointer-events:none}
.dm-h{position:absolute;top:18px;display:flex;align-items:center;gap:6px;justify-content:center;font-size:.76rem;font-weight:700;color:var(--muted);padding:6px 0;border-radius:10px;background:rgb(var(--ovr) / .035);animation:fadeIn .5s both;direction:var(--dir,rtl)}
.dm-h i{width:8px;height:8px;border-radius:50%;background:var(--sc)}
.dm-q{top:16px;background:none;border-inline-start:1px dashed var(--line);border-radius:0}
.dm-axis{position:absolute;top:46px;height:2px;background:linear-gradient(90deg,var(--line),color-mix(in srgb,var(--brand) 40%,var(--line)),var(--line));animation:fadeIn .5s both}
.dm-th{position:absolute;top:22px;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:10px;font-size:.74rem;color:var(--muted);padding:0 14px;animation:fadeIn .5s both;direction:var(--dir,rtl)}
.dm-n{position:absolute;left:0;top:0;display:flex;align-items:center;gap:6px;white-space:nowrap;transition:transform .85s cubic-bezier(.2,.85,.25,1),opacity .5s,width .6s,padding .6s,background-color .5s,border-color .5s,box-shadow .5s,border-radius .6s;will-change:transform;direction:var(--dir,rtl);font-size:.78rem;color:var(--ink)}
.dm.dm-instant .dm-n{transition:none!important}
.dm-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--sc);box-shadow:0 0 0 2px var(--surface);transition:all .5s}
.dm-n.k-root .dm-dot{width:46px;height:46px;background:var(--surface);border:3px solid var(--c-violet);box-shadow:0 0 0 8px color-mix(in srgb,var(--c-violet) 12%,transparent)}
.dm-n.k-root .dm-t{display:none}
.dm-n.k-track .dm-dot{width:24px;height:24px;background:var(--c);box-shadow:0 0 0 4px var(--surface)}
.dm-n.k-track .dm-t{font-weight:800;font-size:.84rem}
.dm-n.k-group .dm-dot{width:14px;height:14px;background:var(--c);opacity:.75}
.dm-n.k-group .dm-t{font-weight:700;color:var(--muted)}
.dm-n .dm-t{paint-order:stroke;text-shadow:0 0 3px var(--surface),0 0 6px var(--surface)}
.dm-st,.dm-bar,.dm-pc{display:none}
.dm[data-lay=radial] .dm-n.k-item .dm-t,.dm[data-lay=radial] .dm-n.k-group .dm-t{font-size:.72rem}
.dm[data-lay=board] .dm-n.k-item{width:calc(25% - 18px);max-width:180px;padding:9px 10px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);border-inline-start:3px solid var(--c)}
.dm[data-lay=board] .dm-n.k-item .dm-t,.dm[data-lay=table] .dm-n.k-item .dm-t,.dm[data-lay=timeline] .dm-n.k-item .dm-t{overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.dm[data-lay=board] .dm-n.k-item .dm-bar{display:block;position:absolute;inset-inline:10px;bottom:4px;height:3px}
.dm[data-lay=board] .dm-n.k-item{padding-bottom:12px}
.dm-bar{background:var(--surface-2);border-radius:999px;overflow:hidden}.dm-bar u{display:block;height:100%;background:var(--sc);border-radius:inherit}
.dm[data-lay=table] .dm-n.k-item{width:min(calc(100% - 30px),560px);display:grid;grid-template-columns:auto 1.6fr 1fr 1fr;padding:6px 14px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}
.dm[data-lay=table] .dm-n.k-item .dm-st{display:inline-flex;align-items:center;gap:5px;font-style:normal;font-size:.72rem;color:var(--muted)}
.dm[data-lay=table] .dm-n.k-item .dm-st::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sc)}
.dm[data-lay=table] .dm-n.k-item .dm-bar{display:block;height:6px;width:100%}
.dm[data-lay=table] .dm-n.k-item .dm-pc{display:none}
.dm[data-lay=timeline] .dm-n.k-item{padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--c) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 40%,var(--line));max-width:150px}
.dm[data-lay=timeline] .dm-n.k-track{width:120px;justify-content:flex-start}
.dm[data-lay=mind] .dm-n.k-item,.dm[data-lay=org] .dm-n.k-item{font-size:.72rem}
.dm[data-lay=org] .dm-n{flex-direction:column;gap:3px}
.dm[data-lay=org] .dm-n.k-item .dm-t{max-width:84px;overflow:hidden;text-overflow:ellipsis}
.sx-story{position:relative;height:300vh}
.sx-stk{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;overflow:hidden}
.sx-stw{display:grid;grid-template-columns:minmax(260px,.8fr) 1.4fr;gap:36px;align-items:center;width:100%}
.sx-cap{position:relative;display:flex;flex-direction:column;gap:6px}
.sx-cap p{margin:0;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.6;color:var(--muted);opacity:.28;transform:translateX(0);transition:opacity .45s,transform .45s,color .45s}
.sx-cap p b{display:block;font-family:var(--f-display);font-size:clamp(1.6rem,3.4vw,2.6rem);font-weight:900;color:var(--ink);line-height:1.2}
.sx-cap p.on{opacity:1;color:var(--ink)}
.sx-dots{display:flex;gap:6px;margin-top:10px}.sx-dots i{width:22px;height:4px;border-radius:999px;background:var(--line);transition:background .3s,width .3s}.sx-dots i.on{background:var(--brand);width:40px}
.sx-stage{position:relative;aspect-ratio:16/11;width:100%;max-height:72vh;border-radius:28px;background:radial-gradient(70% 70% at 50% 50%,color-mix(in srgb,var(--c-violet) calc(var(--core,0)*14%),transparent),transparent),rgb(var(--ovr) / .02);border:1px solid var(--line);overflow:hidden;direction:ltr}
.sx-sl{position:absolute;inset:0;width:100%;height:100%}
.sx-sl{overflow:visible}.sx-sl path{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-opacity:.8}
.sx-sl path.l2{stroke-width:1.5;stroke-opacity:.5}
.sx-core{position:absolute;left:50%;top:50%;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:3px solid var(--c-violet);transform:translate(-50%,-50%) scale(calc(.2 + .8*var(--core,0)));opacity:var(--core,0);box-shadow:0 0 0 calc(var(--core,0)*12px) color-mix(in srgb,var(--c-violet) 14%,transparent),0 0 60px -6px color-mix(in srgb,var(--c-violet) calc(var(--fin,0)*60%),transparent)}
.sf{position:absolute;left:0;top:0;--t:0;white-space:nowrap;font-size:.84rem;will-change:transform;direction:var(--dir,rtl)}
.sf-a{display:block;padding:10px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:0 14px 30px -14px rgba(30,33,64,.35);opacity:calc(1 - var(--t));transform:scale(calc(1 - .35*var(--t)));transition:none;font-weight:600;color:var(--muted)}
.sf-b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(calc(.6 + .4*var(--t)));opacity:var(--t);display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--ink)}
.sf-b i{width:12px;height:12px;border-radius:50%;background:var(--sc);box-shadow:0 0 0 3px var(--surface)}
.sf.k-track .sf-b{font-family:var(--f-display);font-size:1rem;font-weight:900}.sf.k-track .sf-b i{width:26px;height:26px;background:var(--tc);box-shadow:0 0 0 5px var(--surface)}
.sx-fin{position:absolute;inset-inline:0;bottom:16px;display:flex;justify-content:center;gap:8px;opacity:var(--fin,0);transform:translateY(calc((1 - var(--fin,0))*16px));direction:var(--dir,rtl)}
.sx-chip{padding:6px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.8rem;font-weight:700;box-shadow:var(--sh-1)}.sx-chip.ok{color:var(--s-live)}
.sx-reco{position:absolute;top:16px;inset-inline-end:16px;max-width:260px;display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:16px;background:linear-gradient(160deg,color-mix(in srgb,var(--c-violet) 16%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--c-violet) 40%,var(--line));box-shadow:var(--sh-2);font-size:.82rem;opacity:var(--fin,0);transform:translateY(calc((1 - var(--fin,0))*-14px)) scale(calc(.94 + .06*var(--fin,0)));direction:var(--dir,rtl)}
.sx-reco b{color:var(--brand)}
@media (max-width:899px){.sx-app{grid-template-columns:1fr!important}.sx-app .s-dside{display:none}.dm-wrap{border:0}.dm{height:380px}.dm-hint{display:none}.dm-sw button span{display:none}.dm-sw button{padding:7px 11px}
 .dm[data-lay=board] .dm-n.k-item{width:calc(25% - 8px);padding:7px 6px;font-size:.66rem}.dm[data-lay=board] .dm-n.k-item .dm-dot{display:none}
 .dm[data-lay=table] .dm-n.k-item{grid-template-columns:auto 1.6fr 1fr;font-size:.72rem}.dm[data-lay=table] .dm-n.k-item .dm-bar{display:none}.dm-th{grid-template-columns:1.6fr 1fr}.dm-th b:last-child{display:none}
 .dm[data-lay=org] .dm-n.k-item .dm-t,.dm[data-lay=radial] .dm-n.k-item .dm-t{max-width:70px;overflow:hidden;text-overflow:ellipsis;font-size:.62rem}
 .dm[data-lay=mind] .dm-n.k-item .dm-t{font-size:.66rem}.dm[data-lay=timeline] .dm-n.k-item{max-width:84px;font-size:.62rem;padding:3px 7px}.dm[data-lay=timeline] .dm-n.k-track{width:70px;font-size:.68rem}
 .sx-story{height:260vh}.sx-stw{grid-template-columns:1fr;gap:14px}.sx-cap{min-height:9.5em}.sx-cap p{position:absolute;inset-inline:0;top:26px}.sx-cap p:not(.on){opacity:0;transform:translateY(8px)}.sx-cap .sx-dots{position:absolute;top:0;inset-inline-end:0;margin:0}
 .sx-stage{aspect-ratio:auto;height:min(58vh,460px)}.sf{font-size:.7rem}.sf-a{padding:7px 10px}.sx-reco{display:none}.sx-fin{flex-wrap:wrap;padding-inline:8px}}
@media (prefers-reduced-motion:reduce){.sx-mq{animation:none;flex-wrap:wrap;width:auto;justify-content:center}.sx-story{height:auto}.sx-stk{position:static;height:auto;padding:60px 0}.sx-cap p{opacity:1}.dm-n{transition:none}}
.tl-tree2{display:flex;flex-direction:column;gap:10px}
.tl-trk{border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:linear-gradient(160deg,color-mix(in srgb,var(--tc) 7%,var(--surface)),var(--surface));border-inline-start:4px solid var(--tc)}
.tl-trk h4{margin:0 0 8px;display:flex;align-items:center;gap:8px;font-size:1rem}
.tl-trk h4 i{width:10px;height:10px;border-radius:50%;background:var(--tc)}
.tl-trk h4 small{margin-inline-start:auto;color:var(--muted);font-weight:600;font-size:.76rem;background:var(--surface-2);padding:2px 8px;border-radius:999px}
.tl-grp{display:flex;flex-direction:column;gap:6px;padding:4px 0}
.tl-grp+.tl-grp{border-top:1px dashed var(--line);padding-top:8px;margin-top:2px}
.tl-gn{font-size:.78rem;font-weight:700;color:var(--muted);display:inline-flex;align-items:center;gap:4px;width:max-content;cursor:default}
.tl-gi{font-style:normal;font-size:.8rem;opacity:.7}
.tl-its{display:flex;flex-wrap:wrap;gap:6px}
.tl-it{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.86rem;line-height:1.35}
.tl-it i{width:7px;height:7px;border-radius:50%;background:var(--sc)}
details.tl-opts{border:1px solid var(--line);border-radius:14px;padding:0 12px}
details.tl-opts>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:10px 0;min-height:40px}
details.tl-opts>summary::-webkit-details-marker{display:none}
details.tl-opts>summary::after{content:"⌄";margin-inline-start:auto;color:var(--muted);transition:transform .2s}
details.tl-opts[open]>summary::after{transform:rotate(180deg)}
details.tl-opts>summary small{color:var(--muted);font-weight:500;font-size:.76rem}
details.tl-opts[open]{padding-bottom:12px}
body:has(#tlDet) .aifab{display:none!important}
.tl-vis{display:flex;flex-direction:column;gap:10px}
.tl-vsw{align-self:flex-start}
.tl-dm{height:320px;border:1px solid var(--line);border-radius:16px;background:radial-gradient(80% 60% at 50% 50%,color-mix(in srgb,var(--c-violet) 5%,var(--surface)),var(--surface))}
.tl-dm .dm-n .dm-t{max-width:140px;overflow:hidden;text-overflow:ellipsis}
.tl-dm[data-lay=mind] .dm-n.k-item .dm-t{max-width:150px}
.tl-dm[data-lay=radial] .dm-n.k-item .dm-t,.tl-dm[data-lay=radial] .dm-n.k-group .dm-t{max-width:84px;font-size:.66rem}
.tl-dm .dm-n.k-root .dm-dot{width:34px;height:34px}
.aih2{padding:10px 12px 0!important;gap:8px!important}
.aih2 .r1{display:flex;align-items:center;gap:6px}
.aih2 h3{flex:1;min-width:0;margin:0;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aib{all:unset;cursor:pointer;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;color:var(--muted);transition:background .15s,color .15s;flex:none}
.aib:hover,.aib:focus-visible{background:var(--surface-2);color:var(--ink)}.aib:focus-visible{outline:2px solid var(--brand)}
.aib[aria-pressed=true]{background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand)}
.aib.sm{width:26px;height:26px;border-radius:8px;font-size:.9rem}
.aib svg{width:18px;height:18px}
.tokbar.slim{display:flex;align-items:center;gap:8px;padding:2px 4px 8px;font-size:.72rem;color:var(--muted);border-bottom:1px solid var(--line)}
.tokbar.slim .meter{flex:1;height:4px;border-radius:999px;background:var(--surface-2);overflow:hidden;display:block}
.tokbar.slim .meter>span{display:block;height:100%;border-radius:inherit}
.tokbar.slim b{font-weight:700;color:var(--muted);font-size:.72rem}
.tokbar.slim.low b{color:var(--s-paused)}
.ai-hello2{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:26px 12px 10px;background:none!important;border:0!important;box-shadow:none!important;max-width:none!important}
.ai-hello2 .orb.lg{width:46px;height:46px}
.ai-hello2 h4{margin:4px 0 0;font-size:1.25rem;font-family:var(--f-display)}
.ai-hello2 p{margin:0;color:var(--muted);font-size:.9rem}
.aipulse2{display:flex!important;flex-wrap:wrap;justify-content:center;gap:6px!important;padding:8px 6px!important;grid-template-columns:none!important}
.aipulse2 .apc{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:6px;padding:6px 12px!important;border-radius:999px!important;min-height:34px;box-shadow:none!important}
.aipulse2 .apc b{font-size:.92rem!important}.aipulse2 .apc span{font-size:.78rem!important}
.sugg2[hidden]{display:none!important}
.sugg2{display:flex!important;flex-direction:column;gap:6px!important;padding:6px 12px!important}
.sugg2 .chip{display:flex!important;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:start;padding:10px 14px!important;border-radius:14px!important;min-height:42px;white-space:normal;font-size:.88rem}
.sugg2 .chip i{font-style:normal;color:var(--muted)}
.aif2{display:block!important;padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px))!important}
.aibox{display:block!important;border:1.5px solid var(--line);border-radius:18px;background:var(--surface);padding:8px 8px 6px 12px;transition:border-color .15s,box-shadow .15s}
.aibox:focus-within{border-color:color-mix(in srgb,var(--brand) 55%,var(--line));box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 12%,transparent)}
.aibox textarea{display:block;width:100%;border:0!important;outline:0;background:none!important;box-shadow:none!important;resize:none;padding:4px 2px!important;min-height:26px;max-height:180px;font:inherit;color:var(--ink)}
.aibar{position:relative;display:flex;align-items:center;gap:4px;margin-top:2px}
.aitier{position:static}
.aitb2{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:600;color:var(--muted);min-height:24px}
.aitb2:hover,.aitb2:focus-visible,.aitb2[aria-expanded=true]{background:var(--surface-2);color:var(--ink)}
.aitierm{position:absolute;bottom:calc(100% + 8px);inset-inline-start:0;max-width:calc(100% - 4px);z-index:5;min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-3);padding:6px;display:flex;flex-direction:column;gap:2px}
.aitierm[hidden]{display:none}
.aitierm button{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:10px;min-height:32px}
.aitierm button:hover,.aitierm button:focus-visible{background:var(--surface-2)}
.aitierm button[aria-pressed=true]{background:color-mix(in srgb,var(--brand) 10%,transparent)}
.aitierm button[aria-pressed=true] b::after{content:" ✓";color:var(--brand)}
.aitierm small{color:var(--muted);font-size:.74rem}
.aibar .aihint{font-size:.74rem;color:var(--muted);padding:4px 6px;border-radius:8px;letter-spacing:.1em;cursor:help;opacity:.8}
.aisend{all:unset;cursor:pointer;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--brand);color:#fff;box-shadow:var(--sh-1);transition:transform .15s,opacity .15s}
.aisend:hover{transform:translateY(-1px)}.aisend:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.aisend:disabled{opacity:.4;cursor:default;transform:none}
.aisend.stop{background:var(--ink)}
:root{--geo-empty:color-mix(in srgb,var(--ink) 11%,var(--surface))}
.geov,.calv,.scv{display:flex;flex-direction:column;gap:10px;padding:8px 14px 18px!important}
.geo-bar,.cal-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.geo-sets{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%}.geo-sets::-webkit-scrollbar{display:none}.geo-sets button{white-space:nowrap}
.geo-m select{border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:6px 10px;font:inherit;font-size:.84rem;min-height:34px}
.geo-leg{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;color:var(--muted);margin-inline-start:auto}
.geo-leg i{width:12px;height:12px;border-radius:3px}
.geo-grad{width:90px;height:10px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--brand) 16%,var(--surface)),var(--brand))}
[dir=rtl] .geo-grad{background:linear-gradient(270deg,color-mix(in srgb,var(--brand) 16%,var(--surface)),var(--brand))}
.geo-main{flex:1;min-height:0;display:grid;grid-template-columns:1fr 280px;gap:12px}
.geo-svgw{min-height:300px;display:grid;place-items:center;border:1px solid var(--line);border-radius:18px;background:radial-gradient(90% 80% at 50% 45%,color-mix(in srgb,var(--c-cyan) 7%,var(--surface)),var(--surface));padding:8px;overflow:hidden}
.geo-svg{width:100%;height:100%;max-height:min(66vh,620px);direction:ltr}
.geo-ctx{fill:color-mix(in srgb,var(--ink) 3%,var(--surface));stroke:color-mix(in srgb,var(--ink) 8%,var(--surface));stroke-width:.5;pointer-events:none}
.geo-r{stroke:var(--surface);stroke-width:1.1;cursor:pointer;transition:fill .35s,opacity .2s,stroke .2s;outline:none}
.geo-r:hover,.geo-r:focus-visible{stroke:var(--ink);stroke-width:1.6}
.geo-r.on{stroke:var(--brand);stroke-width:2.4}
.geo-lb{pointer-events:none}
.geo-lb circle{fill:var(--surface);stroke:var(--brand);stroke-width:1.4;opacity:.95}
.geo-lb text{fill:var(--ink);font-weight:800;text-anchor:middle;font-family:var(--f-body)}
.geo-side{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:12px;display:flex;flex-direction:column;gap:8px;overflow:auto;min-height:0}
.geo-side h4{margin:0;font-size:.98rem}
.geo-sh{display:flex;align-items:center;gap:6px}.geo-sh h4{flex:1}
.geo-row{all:unset;cursor:pointer;position:relative;display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;font-size:.86rem;overflow:hidden;min-height:24px}
.geo-row:hover,.geo-row:focus-visible{background:var(--surface-2)}
.geo-row i{position:absolute;inset-inline-start:0;bottom:2px;height:3px;border-radius:999px;background:color-mix(in srgb,var(--brand) 55%,transparent)}
.geo-kp{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.geo-kp span{display:flex;flex-direction:column;align-items:center;padding:8px 4px;border-radius:12px;background:var(--surface-2);font-size:.72rem;color:var(--muted)}.geo-kp b{font-size:1.05rem;color:var(--ink)}
.geo-list{display:flex;flex-direction:column;gap:2px}.geo-it{display:flex;align-items:center;gap:4px}.geo-it .lnk{flex:1;display:flex;align-items:center;gap:8px;text-align:start;padding:7px 6px;border-radius:8px;min-height:24px}.geo-it .lnk i{width:8px;height:8px;border-radius:50%;flex:none}
.geo-hint,.geo-none{margin:0;color:var(--muted);font-size:.84rem;line-height:1.6}.geo-none{padding-top:6px;border-top:1px dashed var(--line)}
.geo-add{border:1px dashed color-mix(in srgb,var(--brand) 40%,var(--line));border-radius:12px;padding:0 10px}
.geo-add>summary{cursor:pointer;padding:9px 0;font-weight:700;color:var(--brand);font-size:.86rem;list-style:none;min-height:24px}.geo-add>summary::-webkit-details-marker{display:none}
.geo-pick{max-height:200px;overflow:auto;display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.geo-add[open]{padding-bottom:10px}
.geo-cred{color:var(--muted);font-size:.7rem;opacity:.75;direction:ltr;text-align:end}
.cal-bar h4{margin:0;font-size:1.05rem;min-width:9ch;text-align:center}.cal-bar small{color:var(--muted)}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-wd{font-size:.72rem;color:var(--muted);text-align:center;padding:4px 0;font-weight:700}
.cal-d{min-height:92px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:5px;display:flex;flex-direction:column;gap:3px;transition:background .15s,border-color .15s;min-width:0}
.cal-d.off{background:none;border-style:dashed;opacity:.35}.cal-d.now{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 20%,transparent)}
.cal-d.dz{background:color-mix(in srgb,var(--brand) 10%,var(--surface));border-color:var(--brand)}
.cal-n{font-size:.74rem;color:var(--muted);font-weight:700}
.cal-it{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:.72rem;padding:3px 6px;border-radius:7px;background:color-mix(in srgb,var(--kc) 14%,var(--surface));border-inline-start:3px solid var(--kc);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:20px}
.cal-it i{width:6px;height:6px;border-radius:50%;background:var(--sc);flex:none}.cal-it:focus-visible{outline:2px solid var(--brand)}
.cal-more{font-size:.68rem;color:var(--muted)}
.cal-tray{border:1px dashed var(--line);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:6px}.cal-tray small{color:var(--muted);font-size:.74rem}
.cal-trayl{display:flex;flex-wrap:wrap;gap:6px}.cal-trayl .cal-it{max-width:200px;padding:5px 9px}
.sc-wrap{flex:1;min-height:300px;border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:6px}
.sc-svg{width:100%;height:100%;direction:ltr}
.sc-g{stroke:var(--line);stroke-width:1}.sc-t{fill:var(--muted);font-size:11px}.sc-ax{fill:var(--muted);font-size:12px;font-weight:700}
.sc-zero{fill:color-mix(in srgb,var(--muted) 6%,transparent);stroke:var(--line);stroke-dasharray:3 3}
.sc-zone{fill:color-mix(in srgb,var(--s-live) 8%,transparent)}.sc-zl{fill:color-mix(in srgb,var(--s-live) 70%,var(--ink));font-size:11px;font-weight:700}
.sc-p{cursor:pointer;outline:none}.sc-p circle{fill-opacity:.72;stroke-width:2;transition:fill-opacity .2s}.sc-p:hover circle,.sc-p:focus-visible circle{fill-opacity:1}
.sc-l{fill:var(--ink);font-size:11px;font-weight:700;paint-order:stroke;stroke:var(--surface);stroke-width:3px}
.sc-note{color:var(--muted);font-size:.76rem}
.altview .sc-i{display:grid;place-items:center;width:26px;height:26px;margin:10px 2px 0;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:.9rem;line-height:1;cursor:help;box-shadow:0 1px 2px rgba(16,24,40,.05);transition:color .15s,border-color .15s}
.altview .sc-i:hover,.altview .sc-i:focus-visible{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 40%,var(--line));outline:none}
@media (max-width:899px){.geov,.calv,.scv{padding:6px 8px 14px!important}.geo-main{grid-template-columns:1fr}.geo-svgw{min-height:240px}.geo-side{max-height:none}.geo-leg{margin-inline-start:0}
 .cal-d{min-height:64px;padding:3px;border-radius:9px}.cal-it{font-size:0;padding:0;width:8px;height:8px;border-radius:50%;background:var(--kc);border:0;min-height:8px}.cal-it i{display:none}.cal-d{flex-direction:row;flex-wrap:wrap;align-content:flex-start;gap:3px}.cal-n{width:100%}
 .cal-trayl .cal-it{font-size:.72rem;width:auto;height:auto;padding:5px 9px;border-radius:7px;background:color-mix(in srgb,var(--kc) 14%,var(--surface));min-height:24px}}
#tabbtn-map{display:none!important}
.sd-map[aria-current="true"]{background:none;font-weight:700}
body.on-map .sd-map[aria-current="true"]{background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--ink)}
body.on-map .sd-map[aria-current="true"] .t{color:var(--brand)}
.trf-gs{margin-inline-start:auto;font-size:.74rem;font-weight:600}.trf-gs button{padding:4px 10px;min-height:28px}
.panel h3:has(.trf-gs){display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.trf-geo{min-height:240px;display:grid;place-items:center}.trf-svg{width:100%;max-height:360px}.trf-svg .geo-r{cursor:default}
.sx-geow{display:grid;grid-template-columns:minmax(260px,.9fr) 1.3fr;gap:36px;align-items:center}
.sx-gtxt h2{margin:6px 0 10px}.sx-gsets{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.sx-gsets .chip{min-height:38px}.sx-gsets .chip[aria-pressed=true]{background:var(--tab);color:var(--tab-ink);border-color:transparent}
.sx-views{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.sx-views .sx-vmore{border-style:solid;color:var(--brand);font-weight:800;cursor:help;background:color-mix(in srgb,var(--brand) 6%,transparent)}.sx-views span{font-size:.76rem;color:var(--muted);padding:4px 10px;border-radius:999px;border:1px dashed var(--line)}
.sx-gmap{aspect-ratio:7/5;border-radius:28px;border:1px solid var(--line);background:radial-gradient(80% 70% at 50% 45%,color-mix(in srgb,var(--c-cyan) 9%,transparent),transparent),rgb(var(--ovr) / .02);padding:14px;display:grid;place-items:center;overflow:hidden}
.sx-gmap .geo-svg{max-height:none}
.sx-gr{fill:var(--geo-empty);transition:fill .7s cubic-bezier(.2,.9,.25,1) var(--d),transform .7s cubic-bezier(.2,.9,.25,1) var(--d);transform-box:fill-box;transform-origin:center;cursor:default}
.sx-gmap.in .sx-gr{fill:var(--f)}.sx-gmap.in .sx-gr:not([data-v="0"]){animation:sxPop .7s cubic-bezier(.2,.9,.25,1.4) var(--d) both}
@keyframes sxPop{0%{transform:scale(.92)}60%{transform:scale(1.04)}100%{transform:none}}
@media (max-width:899px){.sx-geow{grid-template-columns:1fr;gap:16px}.sx-gmap{aspect-ratio:auto;height:300px;border-radius:20px}}
@media (prefers-reduced-motion:reduce){.sx-gr{transition:none;animation:none!important}}
.mapcard .altview{top:calc(var(--mbh,52px) + 8px)!important}
.tb-ghost{position:fixed!important;top:0;left:0;z-index:300;pointer-events:none;margin:0!important;opacity:.95;box-shadow:0 18px 40px -12px rgba(30,33,64,.35)!important;transition:none;will-change:transform;border-radius:999px;background:var(--surface)}
.tb-ghost.tb-chip{border-radius:999px}
.tb-row.dragging{opacity:.3}
.tb-row.dz-before,.tb-row.dz-after,.tb-row.dz-inside{transition:box-shadow .12s}
.tbd.tb-dragging .tb-plus{opacity:.9}
.tb-row.tb-new{animation:tbNew 2.4s ease-out}
@keyframes tbNew{0%,30%{box-shadow:0 0 0 4px color-mix(in srgb,var(--c-cyan) 45%,transparent)}100%{box-shadow:var(--sh-1)}}
.tb-ai{display:flex;align-items:center;gap:6px;flex:1 1 320px;min-width:220px;max-width:560px;border:1px solid color-mix(in srgb,var(--c-violet) 35%,var(--line));border-radius:999px;padding:3px 3px 3px 12px;padding-inline:12px 3px;background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-violet) 8%,transparent)}
.tb-ai input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:.86rem;color:var(--ink);outline:none;padding:6px 0}
.tb-ai .btn{border-radius:999px}
.tb-aiq{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px 0}
.tb-aiq .chip{font-size:.8rem;border-radius:999px;background:var(--surface);border:1px solid color-mix(in srgb,var(--c-violet) 25%,var(--line))}
.tb-aiq .chip:hover{border-color:var(--c-violet)}
.tbd.tb-thinking .tb-vis{opacity:.55;filter:saturate(.6);transition:opacity .2s}
.tbd.tb-thinking .tb-core{animation:tbPulse 1.2s ease-in-out infinite}
@keyframes tbPulse{50%{box-shadow:0 0 0 14px color-mix(in srgb,var(--c-violet) 18%,transparent),var(--sh-2)}}
@media (prefers-reduced-motion:reduce){.tb-row.tb-new,.tbd.tb-thinking .tb-core{animation:none}}
.deckpv{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;width:100%;align-content:start}
.sld{position:relative;aspect-ratio:16/9;background:#F7F8FC;border:1px solid var(--line);border-radius:8px;overflow:hidden;padding:12px 12px 8px;display:flex;flex-direction:column;gap:6px;color:#1E2140;font-size:.62rem}
.sld.dark{background:radial-gradient(120% 120% at 85% 0%,#3A3F8F,#1E2140 60%);color:#fff;justify-content:center}
.sld.dark b{font-size:1rem;font-weight:900}.sld.dark small{color:#C5C8F5}.sld.dark i{font-style:normal;color:#7CC4F0}
.sld em{font-style:normal;font-weight:900;font-size:.8rem}.sld s{position:absolute;inset:0 0 auto;height:3px}
.sld .sn{position:absolute;inset-inline-start:6px;bottom:4px;font-size:.55rem;opacity:.5}
.sld img{flex:1;min-height:0;object-fit:contain;width:100%}
.sld .kp{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.sld .kp span{background:#fff;border:1px solid #E6E8F2;border-radius:4px;padding:3px;display:flex;flex-direction:column;font-size:.5rem;color:#686B8C}.sld .kp b{color:#5258CC;font-size:.75rem}
.sld .bar{display:flex;height:7px;border-radius:3px;overflow:hidden;margin-top:auto}.sld .bar i{display:block}
.sld .rows{display:grid;gap:2px}.sld .rows span{display:flex;align-items:center;gap:4px;background:#fff;border-radius:3px;padding:1px 4px;white-space:nowrap;overflow:hidden}
.sld .rows i{width:5px;height:5px;border-radius:50%;flex:none}.sld .rows u{text-decoration:none;margin-inline-start:auto;color:#686B8C}
.pshare{position:absolute;z-index:41;bottom:150px;left:50%;transform:translateX(-50%);width:min(380px,calc(100% - 32px));background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-3);padding:14px;display:flex;flex-direction:column;gap:10px;animation:amIn .18s ease-out}
.ps-h{display:flex;justify-content:space-between;align-items:center}.ps-h b{font-family:var(--f-display)}
.pshare .copyrow{display:flex;gap:6px}.pshare .copyrow input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:inherit;font-size:.8rem;background:var(--surface-2);color:var(--ink)}
.ps-via{display:flex;gap:6px;flex-wrap:wrap}.ps-via a{text-decoration:none}
.ps-days{align-self:flex-start}.ps-note{margin:0;color:var(--muted);font-size:.84rem}
#psBox{display:flex;flex-direction:column;gap:8px}

/* builder toolbar v2: one calm row */
.tb-pal{flex-wrap:nowrap!important;gap:10px!important;padding:8px 14px!important;min-height:52px;overflow-x:auto;overflow-y:visible;scrollbar-width:none}
.tb-pal::-webkit-scrollbar{display:none}
.tb-seg{display:inline-flex;flex:none;padding:3px;gap:2px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.tb-seg .tb-chip{flex:none!important;border:0!important;box-shadow:none!important;background:transparent;border-radius:9px!important;padding:6px 12px!important;height:32px;font-size:.84rem!important;font-weight:700;gap:7px!important;white-space:nowrap;color:var(--ink)}
.tb-seg .tb-chip:hover{background:var(--surface)!important;box-shadow:var(--sh-1)!important}
.tb-seg .tb-chip:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.tb-seg .tb-chip i{width:9px!important;height:9px!important;flex:none}
.tb-seg .tb-chip.k-track i{width:11px!important;height:11px!important}
.tb-seg .tb-chip.k-item i{width:7px!important;height:7px!important}
.tb-div{flex:none;width:1px;height:24px;background:var(--line)}
.tb-aisplit{position:relative;display:inline-flex;flex:none}
.tb-aisplit .tb-askai{height:38px;box-sizing:border-box;padding:0 14px 0 10px!important;font-size:.84rem;font-weight:800;white-space:nowrap;border-width:1px!important}
.tb-aisplit .tb-askai .ai-orb{width:18px;height:18px}
.tb-aisplit:has(.tb-aimore) .tb-askai{border-start-end-radius:0!important;border-end-end-radius:0!important;padding-inline-end:10px!important}
.tb-aimore{all:unset;box-sizing:border-box;cursor:pointer;height:38px;width:30px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));border-inline-start:0;border-start-end-radius:999px;border-end-end-radius:999px;background:color-mix(in srgb,var(--brand) 7%,var(--surface));color:color-mix(in srgb,var(--brand) 70%,var(--ink))}
.tb-aimore:hover,.tb-aimore[aria-expanded="true"]{background:color-mix(in srgb,var(--brand) 16%,var(--surface))}
.tb-aimore:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.tb-aim{position:fixed;z-index:60;min-width:220px;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--sh-3,0 14px 40px rgba(0,0,0,.18));display:flex;flex-direction:column;gap:2px}
.tb-aim[hidden]{display:none}
.tb-aim button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;font-size:.86rem;color:var(--ink)}
.tb-aim button span{color:var(--c-violet);font-size:.8rem}
.tb-aim button:hover,.tb-aim button:focus-visible{background:var(--surface-2)}
.tb-ico{all:unset;box-sizing:border-box;cursor:pointer;flex:none;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;border:1px solid var(--line);background:var(--surface);color:var(--muted)}
.tb-ico:hover:not(:disabled){color:var(--ink);border-color:color-mix(in srgb,var(--ink) 25%,var(--line))}
.tb-ico:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.tb-ico:disabled{opacity:.4;cursor:not-allowed}
.tb-iss,.tb-ok{flex:none;display:inline-flex!important;align-items:center;gap:6px;height:28px;box-sizing:border-box;padding:0 10px!important;border-radius:999px!important;font-size:.8rem!important;font-weight:800;font-variant-numeric:tabular-nums}
.tb-iss i{width:7px;height:7px;border-radius:50%;background:var(--s-dev)}
.tb-ok{width:28px;justify-content:center;padding:0!important}
.tb-starts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:22px 0 0;padding:14px 16px;border:1px dashed color-mix(in srgb,var(--c-violet) 30%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--surface) 80%,transparent);max-width:520px}
.tb-starts b{flex-basis:100%;font-size:.78rem;color:var(--muted);font-weight:700}
.tb-starts button{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:.84rem;font-weight:700;color:var(--ink)}
.tb-starts button span{color:var(--c-violet)}
.tb-starts button:hover,.tb-starts button:focus-visible{border-color:var(--c-violet);background:color-mix(in srgb,var(--c-violet) 7%,var(--surface))}
.tb-starts button:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
@media (pointer:coarse){.tb-seg .tb-chip{height:40px}.tb-aisplit .tb-askai,.tb-aimore,.tb-ico{height:44px}.tb-ico{width:44px}.tb-aimore{width:36px}.tb-starts button{min-height:44px}}
@media (max-width:640px){.tb-aisplit .tb-askai span:last-child{display:none}.tb-aisplit .tb-askai{padding:0 12px!important}}

.tb-vis.tb-empty{min-height:0;padding-top:12vh!important;justify-content:center}
.tb-canvas>.tb-starts{margin:26px auto 0;justify-content:center}
.tb-canvas>.tb-starts b{text-align:center}
.tb-info{display:none}
.tbd.tb-narrow .tb-info{display:grid}
/* template designer side panel: rail + sections, folds to the rail while working on the canvas */
@media (min-width:901px){.tb-main{grid-template-columns:minmax(0,1fr) 356px!important;position:relative;transition:grid-template-columns .25s ease}.tbd.tbs-mini .tb-main{grid-template-columns:minmax(0,1fr) 52px!important}}
.tb-side{padding:0!important;flex-direction:row!important;gap:0!important;overflow:hidden!important;transition:box-shadow .2s}
.tbs-rail{order:2;width:52px;flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0;border-inline-start:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 70%,var(--surface))}
.tbs-rail button{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:var(--muted);background:none;border:0;cursor:pointer;position:relative;transition:background .15s,color .15s}
.tbs-rail button:hover{background:color-mix(in srgb,var(--brand) 8%,transparent);color:var(--ink)}
.tbs-rail button[aria-selected=true]{background:color-mix(in srgb,var(--brand) 15%,var(--surface));color:var(--brand)}
.tbs-rail .tbs-pin[aria-pressed=true]{color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,transparent)}
.tbs-tabs{display:flex;flex-direction:column;align-items:center;gap:4px}
.tbs-sep{width:22px;height:1px;background:var(--line);margin:2px 0}
.tbs-body{padding-bottom:90px!important}
.tbs-dot{position:absolute;top:7px;inset-inline-end:7px;width:7px;height:7px;border-radius:50%;background:var(--brand)}
.tbs-body{flex:1;min-width:0;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain}
.tbs-h b{font-size:.95rem;font-weight:800}
.tbs-hint{margin:-4px 0 0;color:var(--muted);font-size:.8rem}
.tbs-row{display:flex;flex-direction:column;gap:6px;font-size:.8rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink));font-weight:700}
.tbs-row label{display:flex;justify-content:space-between;align-items:center}.tbs-row label b{color:var(--ink);font-variant-numeric:tabular-nums}
.tbs-row input[type=range]{width:100%;accent-color:var(--brand)}
.tbs-row .seg{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:4px;width:100%;padding:3px;border-radius:12px;background:var(--surface-2)}
.tbs-row .seg button{flex:1 1 auto;width:auto!important;font-size:.76rem;padding:6px 8px;border-radius:9px;white-space:nowrap}
.tbs-ck{display:flex;align-items:center;gap:8px;font-size:.84rem;cursor:pointer}.tbs-ck input{accent-color:var(--brand);width:16px;height:16px}
.tbs-lays{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:6px}
.tbs-lays button{display:flex!important;flex-direction:column;align-items:center;gap:2px;padding:6px 2px!important;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;min-height:0!important}
.tbs-lays button .tl-thumb{width:34px;height:34px}.tbs-lays button small{font-size:.66rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tbs-lays button[aria-checked=true]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 9%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 25%,transparent)}
.tbs-lays button[aria-checked=true] small{color:var(--brand);font-weight:800}
.tbs-pal{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.tbs-pal button{display:flex;gap:3px;justify-content:center;padding:8px 4px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer}
.tbs-pal button i{width:12px;height:12px;border-radius:50%}
.tbs-pal button[aria-checked=true]{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 25%,transparent)}
.tbs-pre{display:flex;flex-wrap:wrap;gap:6px}
.tbs-pre button{flex:1 1 40%;padding:8px;border-radius:10px;border:1px dashed color-mix(in srgb,var(--brand) 40%,var(--line));background:color-mix(in srgb,var(--brand) 5%,var(--surface));color:var(--brand);font-weight:800;font-size:.8rem;cursor:pointer}
.tbs-pre button:hover{background:color-mix(in srgb,var(--brand) 12%,var(--surface))}
.tbs-reset{align-self:flex-start}
.tbs-play{align-self:flex-start}
.tbs-demo{border:1px solid var(--line);border-radius:12px;background:var(--surface-2);min-height:0}
.tbs-demo:empty{display:none}
.tbs-dn.pl{animation:tbsPl 1.6s ease-in-out infinite}
@keyframes tbsPl{50%{opacity:.55}}
.tbd.tbs-mini .tbs-body{display:none}
.tbd.tbs-mini.tbs-peek .tb-side{position:absolute;inset-block:0;inset-inline-end:0;width:356px;z-index:25;box-shadow:0 18px 50px -12px rgba(30,25,90,.35)}
.tbd.tbs-mini.tbs-peek .tbs-body{display:flex;animation:tbsIn .18s ease-out}
@keyframes tbsIn{from{opacity:0;transform:translateX(calc(var(--dirx,-1) * -10px))}}
.tbd.tb-narrow .tbs-rail{display:none}
.tbd.tb-narrow .tbs-body{display:flex!important}
@media (max-width:900px){.tbs-tabs{flex-direction:row}.tbs-rail{flex-direction:row;width:auto;border:0;border-bottom:1px solid var(--line);padding:6px;justify-content:center}.tb-side{flex-direction:column!important}}
.tbd.tb-narrow .tb-main{grid-template-columns:minmax(0,1fr)!important;position:relative}
.tbd.tb-narrow .tb-side{position:absolute;inset-block:0;inset-inline-end:0;width:min(330px,92%);z-index:20;border:0!important;border-inline-start:1px solid var(--line)!important;box-shadow:var(--sh-3,0 14px 40px rgba(0,0,0,.18));transform:translateX(calc(var(--dirx,-1) * 104%));visibility:hidden;transition:transform .22s ease,visibility 0s .22s}
[dir="ltr"] .tbd.tb-narrow .tb-side,.tbd.tb-narrow .tb-side:dir(ltr){--dirx:1}
.tbd.tb-narrow.tb-side-open .tb-side{transform:none;visibility:visible;transition:transform .22s ease}
.tbd.tb-narrow.tb-side-open .tb-info{background:var(--surface-2);color:var(--ink)}

.tb-top{flex-wrap:nowrap!important;gap:8px!important}
.tb-top .tb-title{flex:1 1 auto;min-width:0}
.tb-top>.btn,.tb-top>.tb-ico{flex:none}
@media (max-width:440px){.tb-top{flex-wrap:wrap!important}.tb-top .tb-title{flex:1 1 100%;order:-1;min-height:44px}.tb-top>.btn{min-height:40px}}
.tbd.tb-narrow .tb-cnt{display:none}
.tbd.tb-narrow .tl-sp{display:none}

.tb-canvas>.tb-starts{box-sizing:border-box;width:calc(100% - 24px)}
@media (max-width:640px){.tb-cnt{display:none!important}.tb-top{padding:8px 10px!important}.tb-pal{gap:6px!important;padding:8px 10px!important}.tb-div{display:none}.tb-seg .tb-chip{padding:6px 10px!important}.tb-vis.tb-empty{padding-top:6vh!important}}

/* ===== views v2 ===== */
.v2-wrap{overflow:auto;max-width:100%}
.v2-bar{display:flex;justify-content:flex-start;gap:8px;padding:4px 2px 10px}
.v2-seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;padding:2px;background:var(--surface-2);gap:2px}
.v2-seg button{all:unset;cursor:pointer;padding:5px 12px;border-radius:8px;font-size:.8rem;font-weight:700;color:var(--muted)}
.v2-seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
.v2-seg button:focus-visible{outline:2px solid var(--brand)}
@media (pointer:coarse){.v2-seg button{padding:10px 14px}}
.altview svg [role="button"]{cursor:pointer}
.altview svg [role="button"]:focus-visible{outline:none}
.altview svg [role="button"]:focus-visible>rect,.altview svg [role="button"]:focus-visible>circle,.altview svg [role="button"]:focus-visible>polygon{stroke:var(--brand)!important;stroke-width:3px}
.altview svg text{fill:var(--ink);font-family:inherit}
.altview .dim{opacity:.28}
/* gantt */
.gn-svg{display:block;font-size:12px}
.gn-g{stroke:var(--line);stroke-dasharray:2 4}
.gn-mt{fill:var(--muted)!important;font-size:11px;font-weight:700}
.gn-h rect{fill:var(--surface-2)}
.gn-h text{font-weight:800;font-size:12.5px}
.gn-bg{fill:transparent}
.gn-r:hover .gn-bg{fill:color-mix(in srgb,var(--brand) 5%,transparent)}
.gn-l{font-size:12px}
.gn-b{fill:color-mix(in srgb,var(--c) 22%,var(--surface));stroke:color-mix(in srgb,var(--c) 55%,var(--line))}
.gn-r.late .gn-b{fill:color-mix(in srgb,var(--s-paused) 18%,var(--surface));stroke:var(--s-paused);stroke-dasharray:4 3}
.gn-today{stroke:var(--s-paused);stroke-width:1.6}
.gn-tt{fill:var(--s-paused)!important;font-size:10.5px;font-weight:800}
/* funnel */
.altview.fnv{display:flex;flex-direction:column}
.fn{display:flex;flex-direction:column;align-items:stretch;gap:16px;padding:10px 6px 6px;max-width:860px;margin:auto;width:100%}
.fn-kpis{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.fn-k{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:92px;padding:8px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.fn-k b{font-size:1.05rem;font-weight:900;line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap}
.fn-k small{font-size:.68rem;font-weight:700;color:var(--muted)}
.fn-k.t-ok b{color:var(--s-live)}.fn-k.t-mid b{color:color-mix(in srgb,var(--s-dev) 80%,var(--ink))}.fn-k.t-low b{color:var(--s-paused)}
.fn-k.t-worst{border-color:currentColor;border-color:color-mix(in srgb,var(--s-paused) 30%,var(--line));background:color-mix(in srgb,var(--s-paused) 5%,var(--surface))}
.fn-body{display:flex;flex-direction:column;gap:3px;padding-inline:112px}
.fn-shape{filter:drop-shadow(0 8px 16px rgba(16,24,40,.07))}
.fn-s{width:100%;position:relative;z-index:0}
.fn-s summary{list-style:none;cursor:pointer;padding:0}
.fn-s summary::-webkit-details-marker{display:none}
.fn-row{display:block}
.fn-shape{display:flex;justify-content:center;min-width:0;position:relative}
.fn-bar{width:var(--w);min-height:clamp(72px,10vh,104px);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:10px calc(var(--tap) + 6px);text-align:center;color:var(--ink);
  background:linear-gradient(180deg,color-mix(in srgb,var(--sc) 46%,var(--surface)),color-mix(in srgb,var(--sc) 30%,var(--surface)));
  clip-path:polygon(0 0,100% 0,calc(100% - var(--tap)) 100%,var(--tap) 100%);transition:filter .18s,transform .18s;transform-origin:50% 0;animation:fnIn .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}
.fn-s:first-child .fn-bar{border-radius:12px 12px 0 0}
.fn-s:last-child .fn-bar{border-radius:0 0 10px 10px}
@keyframes fnIn{from{opacity:0;transform:scaleX(.82)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fn-bar{animation:none}}
.fn-bar b{font-weight:800;font-size:.82rem;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.85}
.fn-n{font-weight:900;font-size:1.6rem;line-height:1.15;font-variant-numeric:tabular-nums}
.fn-pc{font-size:.66rem;font-weight:700;color:color-mix(in srgb,var(--ink) 62%,transparent);white-space:nowrap}
.fn-side{position:absolute;top:50%;left:calc((100% - var(--w))/2 + var(--w)*var(--tn)/200 - 14px);transform:translate(-100%,-50%);display:flex;flex-direction:column;align-items:flex-end;gap:4px;filter:none}
.fn-side:empty{display:none}
.fn-cv{display:inline-flex;align-items:baseline;gap:6px;padding:3px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap}
.fn-cv b{display:inline-flex;align-items:center;gap:3px;font-size:.84rem;font-weight:900}
.fn-cv small{font-size:.68rem;font-weight:700;color:var(--muted)}
.fn-ar{font-size:.72rem;opacity:.75}
.fn-cv0 b{color:var(--muted)}
.fn-cv.t-ok b{color:var(--s-live)}.fn-cv.t-mid b{color:color-mix(in srgb,var(--s-dev) 80%,var(--ink))}.fn-cv.t-low b{color:var(--s-paused)}
.fn-cv.worst{border-color:color-mix(in srgb,var(--s-paused) 30%,var(--line));background:color-mix(in srgb,var(--s-paused) 5%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--s-paused) 8%,transparent)}
.fn-rev{display:inline-flex;align-items:baseline;gap:4px;font-size:.78rem;font-weight:800;color:var(--ink);padding-inline-start:4px;white-space:nowrap;font-variant-numeric:tabular-nums}
.fn-rev small{font-size:.66rem;font-weight:700;color:var(--muted)}
.fn-s summary:hover .fn-bar{filter:brightness(1.03) saturate(1.08)}
.fn-s summary:focus-visible{outline:none}.fn-s summary:focus-visible .fn-bar{filter:brightness(.94)}
.fn-s summary:focus-visible .fn-cv{outline:2px solid var(--brand);outline-offset:2px}
.fn-s[open] .fn-bar{filter:saturate(1.15) brightness(.97)}
.fn-list{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:10px 0 8px;max-width:100%}
.fn-foot{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 16px}
.fnv .sc-note{margin:0;cursor:help;color:var(--muted)}
.fn-p{display:flex;align-items:center;gap:6px;margin:0;color:var(--muted);font-size:.8rem}.fn-p i,.fn-list i,.hx-list i,.br-n i,.rd-leg i,.hx-t i{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.fn-list .chip,.hx-list .chip{display:inline-flex;align-items:center;gap:6px}
@media (max-width:600px){.fn-body{padding-inline:54px}.fn-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.fn-k{border-radius:12px}.fn-k b{font-size:.92rem}.fn-k small{font-size:.6rem;text-align:center;line-height:1.2}.fn-side{left:calc((100% - var(--w))/2 + var(--w)*var(--tn)/200 - 8px)}.fn-bar{min-height:68px}.fn-n{font-size:1.3rem}.fn-k{min-width:0;padding:6px 4px}.fn-cv{padding:2px 7px}.fn-cv small{display:none}.fn-rev small{display:none}}
/* heatmap */
.hx-t{border-collapse:separate;border-spacing:4px;min-width:560px;width:100%;table-layout:fixed}.hx-t th:first-child{width:22%}.hx-t th:last-child{width:9%}
.hx-t th{font-size:.8rem;font-weight:700;color:color-mix(in srgb,var(--muted) 70%,var(--ink));text-align:center;white-space:nowrap}
.hx-t thead th i{margin-inline-end:5px}
.hx-t tbody th{text-align:start}.hx-t tbody th .lnk{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--ink)}
.hx-c{all:unset;box-sizing:border-box;cursor:pointer;width:100%;min-height:44px;display:grid;place-items:center;border-radius:10px;font-weight:800;font-variant-numeric:tabular-nums;font-size:.86rem;
  background:color-mix(in srgb,var(--c-violet) var(--p),var(--surface));color:var(--ink);border:1px solid var(--line)}
.hx-c:disabled{cursor:default;color:var(--muted);background:var(--surface)}
.hx-c:not(:disabled):hover,.hx-c.on{outline:2px solid var(--brand);outline-offset:-1px}
.hx-c:focus-visible{outline:2px solid var(--brand)}
.hx-tot{text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.hx-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:12px 4px}.hx-list>b{flex-basis:100%;font-size:.84rem}
/* radar */
.rd{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:center}
.rd-svg{max-width:100%;height:auto;overflow:visible}
.rd-g{fill:none;stroke:var(--line)}
.rd-a{font-size:11.5px;font-weight:700;fill:color-mix(in srgb,var(--muted) 70%,var(--ink))!important}
.rd-p polygon{fill:var(--c);fill-opacity:.14;stroke:var(--c);stroke-width:2}
.rd-p circle{fill:var(--c)}
.rd-p:hover polygon{fill-opacity:.3}
.rd-leg{display:flex;flex-direction:column;gap:6px;min-width:160px}
.rd-leg .chip{display:inline-flex;align-items:center;gap:7px;justify-content:flex-start}
.rd-leg .chip[aria-pressed="false"]{opacity:.45;text-decoration:line-through}
/* fishbone */
.fb-svg{display:block;font-size:11.5px;margin-inline:auto}
.fb-spine{stroke:var(--ink);stroke-width:3.5;stroke-linecap:round;opacity:.75}
.fb-bone{stroke:var(--c);stroke-width:2.4;stroke-linecap:round}
.fb-tag{fill:color-mix(in srgb,var(--c) 16%,var(--surface));stroke:var(--c);stroke-width:1.5}
.fb-tt{font-weight:800;font-size:12px}
.fb-hit{fill:transparent}.fb-r:hover .fb-hit{fill:color-mix(in srgb,var(--c) 8%,transparent)}.fb-r line{stroke:color-mix(in srgb,var(--c) 55%,var(--line));stroke-width:1.4}
.fb-r:hover text{fill:var(--brand)}
.fb-more{fill:var(--muted)!important;font-size:10.5px;font-weight:700}
.fb-head path{fill:color-mix(in srgb,var(--brand) 14%,var(--surface));stroke:var(--brand);stroke-width:2}
.fb-head text{font-weight:900;font-size:12.5px}
/* network */
.nw{height:100%;min-height:420px;display:flex}
.nw-svg{width:100%;height:auto;max-height:calc(100vh - 220px);min-height:400px;font-size:10.5px}
.nw-l{stroke-opacity:.35;stroke-width:1.1}
.nw-n circle{stroke-width:2}
.nw-n.k-root circle{fill:var(--surface);stroke-width:3}
.nw-n.k-track text{font-weight:800;font-size:12px}.nw-n.k-group text{font-weight:700}.nw-n.k-item text{fill:color-mix(in srgb,var(--muted) 70%,var(--ink))!important}
.nw-n text{paint-order:stroke;stroke:var(--bg);stroke-width:3px}
.nw-n[role="button"]:hover circle{stroke-width:3.5}
/* sankey */
.sk-svg{display:block;font-size:12px}
.sk-f{fill-opacity:.32;transition:fill-opacity .15s}.sk-f:hover{fill-opacity:.6}
.sk-l{font-weight:700}
/* bars */
.br{display:flex;flex-direction:column;gap:12px;max-width:900px;margin:6px auto 0;width:100%}
.br-r{display:grid;grid-template-columns:minmax(110px,190px) 1fr auto;align-items:center;gap:12px}
.br-n{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.br-t{display:flex;height:22px;border-radius:7px;background:var(--surface-2);overflow:hidden}
.br-s{display:block;height:100%;min-width:3px;transition:width .4s}
.br-v{font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:800;min-width:44px;text-align:start}
.br-leg{display:flex;flex-wrap:wrap;gap:12px;padding:14px 2px 0;font-size:.78rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink))}.br-leg span{display:inline-flex;align-items:center;gap:5px}.br-leg i{width:9px;height:9px;border-radius:3px}
@media (max-width:560px){.br-r{grid-template-columns:1fr auto}.br-t{grid-column:1/-1;order:3}}
/* icicle */
.ic-svg{display:block;font-size:11.5px}
.ic-n rect{fill:color-mix(in srgb,var(--c) 26%,var(--surface));stroke:color-mix(in srgb,var(--c) 60%,var(--line))}
.ic-n.k-item rect{fill:color-mix(in srgb,var(--c) 40%,var(--surface))}
.ic-n.k-root rect{fill:color-mix(in srgb,var(--brand) 16%,var(--surface))}
.ic-n.k-track text,.ic-n.k-root text{font-weight:800}
.ic-n[role="button"]:hover rect{fill:color-mix(in srgb,var(--c) 45%,var(--surface))}
.ic-c{fill:var(--muted);font-weight:700}
/* swimlanes */
.sw{display:grid;grid-template-columns:minmax(110px,150px) repeat(var(--n),minmax(0,1fr));gap:6px;min-width:880px;width:100%}
.sw .kcard{min-width:0}.sw .kcard .km{flex-wrap:wrap}
.sw-h{position:sticky;top:0;z-index:2;background:var(--bg);padding:6px 8px;font-size:.8rem;font-weight:800;display:flex;align-items:center;gap:6px}
.sw-h i{width:9px;height:9px;border-radius:50%;background:var(--sc)}
.sw-u{position:sticky;inset-inline-start:0;z-index:1;background:color-mix(in srgb,var(--kc) 10%,var(--surface));border:1px solid var(--line);border-inline-start:4px solid var(--kc);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:4px}
.sw-u .lnk{font-weight:800;color:var(--ink);text-align:start}.sw-u .tcount{align-self:flex-start}
.sw .sw-c{min-height:72px;margin:0!important;width:auto!important;max-width:none!important;flex:none!important;background:color-mix(in srgb,var(--sc) 5%,var(--surface));border:1px dashed var(--line);border-radius:12px;padding:6px}
.sw .sw-c.over{border-color:var(--brand);border-style:solid;background:color-mix(in srgb,var(--brand) 7%,var(--surface))}
.sw .sw-c .kdrop{display:flex;flex-direction:column;gap:6px;min-height:56px}

/* presentation: data panel on the side for any node */
.mapcard.present .pcard{top:64px;inset-inline-end:16px;width:min(360px,38%);max-height:calc(100% - 64px - var(--pbh,200px))}
.pc-d{margin:0;font-size:.86rem;line-height:1.7;color:color-mix(in srgb,var(--muted) 60%,var(--ink))}
.pc-k{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:8px}
.pc-k>div{background:var(--surface-2);border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.pc-k b{font-size:1.05rem;font-variant-numeric:tabular-nums}.pc-k small{font-size:.72rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink))}
.pc-st{display:flex;height:10px;border-radius:99px;overflow:hidden;gap:2px}
.pc-l{display:flex;flex-direction:column;gap:2px}.pc-l>b{font-size:.78rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink));margin-bottom:4px}
.pc-i{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:8px;padding:8px;border-radius:10px;font-size:.88rem}
.pc-i:hover,.pc-i:focus-visible{background:var(--surface-2)}.pc-i:focus-visible{outline:2px solid var(--brand)}
.pc-i i{width:9px;height:9px;border-radius:50%;flex:none}.pc-i span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-i small{color:var(--muted);font-variant-numeric:tabular-nums}
@media (max-width:720px){.mapcard.present .pcard{top:auto;bottom:calc(var(--pbh,170px));inset-inline:10px;width:auto;max-height:45%}}
/* narrow map: one horizontal toolbar row, one legend row */
.lvl .li{display:none}
@container mapc (max-width:780px){
  .mapbar{flex-wrap:nowrap!important;gap:6px!important}
  .mapbar>*{flex:none}
  .mapbar #replayBtn{display:none}
  .mapbar #zFit .lt{display:none}
  .mapbar #zFit{width:36px!important;min-width:36px!important;height:36px;padding:0!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7085' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:center!important}
  .mapbar .lvl .lt{display:none}.mapbar .lvl .li{display:block}
  .mapbar .lvl button{padding-inline:9px!important}
  .mapbar .search{width:38px!important;padding-inline:0!important;text-indent:-999px;cursor:pointer;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7085' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") center/16px no-repeat;transition:width .2s}
  .mapbar #q{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7085' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:16px!important}
  .mapbar #q:focus,.mapbar #q:not(:placeholder-shown){background-position:left 10px center!important}
  .mapbar .search:focus,.mapbar .search:not(:placeholder-shown){width:170px!important;text-indent:0;padding-inline:12px 32px!important;background-position:left 10px center}
  .legend{max-width:calc(100% - 24px)!important;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;gap:10px!important;white-space:nowrap}
  .legend::-webkit-scrollbar{display:none}
}
@container mapc (max-width:600px){.mapbar #fsBtn{display:none}}
@media (pointer:coarse){@container mapc (max-width:780px){.mapbar #zIn,.mapbar #zOut{display:none}}}
@container mapc (max-width:420px){#modeBtn .car{display:none}#modeBtn{padding-inline:10px!important}}
@container mapc (max-width:350px){.mapbar #lvl2{display:none}}
@container mapc (max-width:400px){.mapbar #lockBtn{display:none}.mapbar{gap:4px!important}.mapbar .lvl button,.mapbar .tools button{padding-inline:7px!important}}
@container mapc (min-width:781px){.legend{max-width:calc(100% - 300px)}}

/* custom styles */
.swatches .sw-my{position:relative;display:flex}
.swatches .sw-my>button[data-v]{flex:1;min-width:0}
.swatches .sw-my>button[data-v]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.swatches .sw-ed{position:absolute;top:3px;inset-inline-end:3px;width:24px;height:24px;padding:0!important;border-radius:8px!important;font-size:.75rem!important;display:grid!important;place-items:center;opacity:0;transition:opacity .15s;border:0!important;background:var(--surface-2)!important}
.swatches .sw-my:hover .sw-ed,.swatches .sw-ed:focus-visible{opacity:1}
@media (hover:none){.swatches .sw-ed{opacity:1}}
.swatches .sw-new{border-style:dashed!important;color:var(--brand)!important;font-weight:700;justify-content:center}
.swatches .sw-new span{font-size:1.05rem;line-height:1}
.ped{display:flex;flex-direction:column;gap:14px}
.ped-top{display:flex;gap:8px;align-items:center}.ped-top input{flex:1;min-width:0;font-weight:700}
.ped-prev{display:flex;height:10px;border-radius:99px;overflow:hidden}.ped-prev i{flex:1}
.ped-sec{display:flex;flex-direction:column;gap:8px}.ped-sec>b{font-size:.78rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink))}
.ped-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ped-c{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer}
.ped-c input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.ped-c span{width:38px;height:38px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line),var(--sh-1);transition:transform .15s}
.ped-c:hover span{transform:scale(1.08)}
.ped-c:focus-within span{box-shadow:0 0 0 2px var(--brand)}
.ped-c small{font-size:.68rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink));text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ped-c.low span{outline:2px dashed var(--s-dev);outline-offset:2px}
.ped-gen{display:flex;gap:10px;align-items:center}.ped-gen .ped-c span{width:34px;height:34px}
.ped-gen .seg{flex:1;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.ped-gen .seg button{padding:7px 4px!important;font-size:.76rem}
body.ped-on .blurbg{opacity:0!important}
.ped-act{display:flex;gap:6px;align-items:center;flex-wrap:wrap;position:sticky;bottom:-2px;background:var(--surface);padding:8px 0 2px;border-top:1px solid var(--line)}

/* import */
.imp-box{width:min(760px,calc(100vw - 24px))!important}
.imp{display:flex;flex-direction:column;gap:14px}
.imp-tabs{align-self:flex-start}
.imp-drop{display:flex;flex-direction:column;align-items:center;gap:10px;padding:34px 18px;border:2px dashed color-mix(in srgb,var(--brand) 35%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--brand) 4%,var(--surface));cursor:pointer;text-align:center;transition:background .15s,border-color .15s}
.imp-drop:hover,.imp-drop.over,.imp-drop:focus-visible{background:color-mix(in srgb,var(--brand) 10%,var(--surface));border-color:var(--brand);outline:none}
.imp-ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:1.5rem;color:#fff;background:linear-gradient(135deg,var(--c-violet),var(--c-cyan))}
.imp-fmts{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.imp-fmts i{font-style:normal;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:99px;background:var(--surface);border:1px solid var(--line);color:color-mix(in srgb,var(--muted) 70%,var(--ink))}
#impMsg{min-height:1.2em;color:color-mix(in srgb,var(--muted) 60%,var(--ink));font-size:.84rem;display:flex;align-items:center;gap:6px}
.imp-tip{margin:0;font-size:.8rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink));text-align:center}
.imp-tx{width:100%;min-height:240px;box-sizing:border-box;border:1px solid var(--line);border-radius:14px;padding:12px;font:inherit;background:var(--surface);color:var(--ink);resize:vertical}
.imp-sum{display:flex;gap:16px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}
.imp-thw{flex:none;width:180px;background:var(--surface);border-radius:12px;border:1px solid var(--line)}.imp-th{display:block;width:100%;height:auto}
.imp-st{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.imp-st>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.imp-k{display:flex;gap:8px;flex-wrap:wrap}.imp-k span{display:flex;flex-direction:column;padding:6px 12px;border-radius:12px;background:var(--surface);font-size:.74rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink))}.imp-k b{font-size:1.15rem;color:var(--ink);font-variant-numeric:tabular-nums}
.imp-warn{margin:0;font-size:.8rem;color:color-mix(in srgb,var(--s-dev) 65%,var(--ink))}
.imp-map{display:flex;flex-direction:column;gap:8px}.imp-h{font-size:.84rem}
.imp-sh{display:flex;gap:8px;align-items:center;font-size:.82rem}
.imp-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.imp-col{display:flex;flex-direction:column;gap:3px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}
.imp-col>span{font-weight:700;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.imp-col small{color:var(--muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:1em}
.imp-col select{font:inherit;font-size:.8rem;padding:6px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}
.imp-ai{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--c-violet) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--c-violet) 25%,var(--line));font-size:.84rem}
.imp-pv summary{cursor:pointer;font-weight:700;font-size:.84rem;padding:4px 0}
.imp-ol{list-style:none;margin:6px 0 0;padding:8px;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.imp-ol li{display:flex;align-items:center;gap:7px;padding:3px 0;padding-inline-start:calc(var(--d) * 18px);font-size:.84rem}
.imp-ol li i{width:8px;height:8px;border-radius:50%;flex:none}.imp-ol li.k-track{font-weight:800}.imp-ol li.k-group{font-weight:700}
.imp-ol li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.imp-ol li small{color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums}
.imp-more{margin:4px 0 0;font-size:.76rem;color:var(--muted)}
.imp-to{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.imp-to input{flex:1;min-width:160px}.imp-to small{color:var(--muted)}
body.imp-dragging::after{content:"⇪";position:fixed;inset:12px;z-index:300;border:3px dashed var(--brand);border-radius:24px;background:color-mix(in srgb,var(--brand) 10%,transparent);display:grid;place-items:center;font-size:3rem;color:var(--brand);pointer-events:none}
@media (max-width:560px){.imp-sum{flex-direction:column;align-items:stretch}.imp-thw{width:100%}.imp-cols{grid-template-columns:1fr 1fr}}

/* showcase templates */
.tl-cats .tl-showc{background:linear-gradient(135deg,color-mix(in srgb,var(--c-violet) 16%,var(--surface)),color-mix(in srgb,var(--c-cyan) 16%,var(--surface)))!important;border-color:color-mix(in srgb,var(--c-violet) 40%,var(--line))!important;font-weight:800!important}
.tl-cats .tl-showc[aria-pressed="true"]{background:var(--brand)!important;color:#fff!important}
.tl-cats .tl-showc small{opacity:.8;font-weight:700}
.tl-pv.tl-pvx{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--brand);background:linear-gradient(160deg,color-mix(in srgb,var(--c-violet) 12%,var(--surface)),color-mix(in srgb,var(--c-cyan) 10%,var(--surface)))}
.tl-pvx .tl-layn{font-size:.68rem;font-weight:800;color:color-mix(in srgb,var(--brand) 75%,var(--ink));white-space:nowrap}
.tl-flag.real{background:color-mix(in srgb,var(--c-violet) 15%,var(--surface));color:color-mix(in srgb,var(--c-violet) 60%,var(--ink));font-weight:800}
.tl-xf{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0}
.tl-xf>b{font-size:.78rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink));margin-inline-end:4px}
.tl-xf span{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:700;padding:4px 10px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line)}
.tl-xf span small{font-weight:600;color:var(--muted);font-size:.68rem}
.tl-xf.st span i{width:8px;height:8px;border-radius:50%;background:var(--sc)}
.tl-live{position:relative;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow-x:auto;overflow-y:hidden;padding:4px 0}
.tl-live *{pointer-events:none}
.tl-live .altview{position:static;inset:auto;height:auto;min-height:0;max-height:none;overflow:visible;display:block}
.tl-live .tl-lsvg{display:block;max-height:540px;direction:ltr}
.tl-data{overflow:auto;border:1px solid var(--line);border-radius:12px;max-height:420px}
.tl-data table{border-collapse:collapse;width:100%;font-size:.8rem;min-width:560px}
.tl-data th{position:sticky;top:0;background:var(--surface-2);text-align:start;padding:8px 10px;font-size:.74rem;color:color-mix(in srgb,var(--muted) 70%,var(--ink));white-space:nowrap}
.tl-data td{padding:7px 10px;border-top:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums}
.tl-data td:first-child{white-space:normal;min-width:180px}.tl-data td b{display:block}.tl-data td small{color:var(--muted);font-size:.7rem}
.tl-st{display:inline-flex;align-items:center;gap:5px;font-weight:700}.tl-st i{width:8px;height:8px;border-radius:50%;background:var(--sc)}

.se-st{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:var(--surface)}
.se-st summary{cursor:pointer;font-weight:700;font-size:.86rem}.se-st summary small{font-weight:400;color:var(--muted);font-size:.74rem;margin-inline-start:6px}
.se-stg{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:10px}
.se-stg label{display:flex;align-items:center;gap:6px}.se-stg i{width:10px;height:10px;border-radius:50%;background:var(--sc);flex:none}
.se-stg input{flex:1;min-width:0;font:inherit;font-size:.84rem;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink)}
select:disabled{color:color-mix(in srgb,var(--ink) 72%,transparent)}
select[data-pf]{color:var(--ink);background-color:var(--surface)}

/* live presence */
.pres-bar{display:flex;align-items:center;margin-inline-start:10px;padding-inline-start:4px}
.pres-bar[hidden]{display:none}
.pr-av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font:700 12px/1 inherit;color:#fff;background:var(--prc,#7c5cff);border:2px solid var(--bg,#fff);margin-inline-start:-8px;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s}
.pr-av:first-child{margin-inline-start:0}
.pr-av:hover,.pr-av:focus-visible{transform:translateY(-2px);z-index:2}
.pr-av img{width:100%;height:100%;object-fit:cover}
.pr-av.ed{box-shadow:0 0 0 2px var(--prc)}
.pr-av.more{background:var(--muted,#6b7280);font-size:11px}
.pr-live{width:7px;height:7px;border-radius:50%;background:#10b981;margin-inline-start:6px;animation:prLive 2s infinite}
@keyframes prLive{0%{box-shadow:0 0 0 0 rgba(16,185,129,.6)}70%{box-shadow:0 0 0 7px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
#map g.node.pres-on .sh,.alt-el.pres-on{filter:drop-shadow(0 0 3px var(--prc)) drop-shadow(0 0 1px var(--prc))}
#map g.node.pres-ed .sh,.alt-el.pres-ed{animation:prGlow 1.6s ease-in-out infinite}
@keyframes prGlow{50%{filter:drop-shadow(0 0 9px var(--prc)) drop-shadow(0 0 2px var(--prc))}}
.ed-pres{display:flex;align-items:center;gap:8px;margin:0 16px 8px;padding:8px 12px;border-radius:10px;font-size:13px;background:color-mix(in srgb,var(--prc) 12%,transparent);border:1px solid color-mix(in srgb,var(--prc) 40%,transparent)}
.ed-pres[hidden]{display:none}
.ed-pres .pr-dot{width:8px;height:8px;border-radius:50%;background:var(--prc);animation:prLive 2s infinite}
@media (max-width:600px){.pres-bar{margin-inline-start:4px}.pr-av{width:24px;height:24px;font-size:11px}}
@media (prefers-reduced-motion:reduce){.pr-live,.pres-ed,.ed-pres .pr-dot{animation:none}}

/* large maps */
#map .cull{display:none}
#map.big.moving .node *,#map.big.moving .node{animation:none!important;filter:none!important;transition:none!important}
#map.big.moving .amb{display:none}
#map.big.moving .node text,#map.big.moving .node .hz>:not(.core),#map.big.moving .node .knobw,#map.big.moving .node .hit{display:none}
#map.big.far .node.item text.sub,#map.big.far .node .knobw{display:none}
#map.big.far2 .node.item text.lbl{display:none}
#map.big .node.item .halo-ring{display:none}
.pwa-ios{margin:0;padding-inline-start:20px;display:grid;gap:10px;font-size:15px}

/* integrations */
.ig-list{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:14px}
.ig-card{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface);display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0}
.ig-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ig-h b{font-size:15px}
.ig-ico{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:13px;color:#fff;background:linear-gradient(135deg,var(--c-cyan),var(--brand))}
.ig-i{width:20px;height:20px;border-radius:50%;display:inline-grid;place-items:center;font-size:12px;font-weight:700;color:var(--muted);border:1px solid var(--line);cursor:help}
.ig-st{font-size:12px;font-weight:600;padding:2px 9px;border-radius:99px;margin-inline-start:auto}
.ig-st.ok{background:color-mix(in srgb,#10b981 14%,transparent);color:#047857}
.ig-st.off{background:color-mix(in srgb,var(--muted) 12%,transparent);color:var(--muted)}
.ig-st.bad{background:color-mix(in srgb,#ef4444 14%,transparent);color:#b91c1c}
.ig-row{display:flex;gap:8px;align-items:center}
.ig-row input{flex:1;min-width:0;font-size:16px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2,var(--surface));color:var(--ink)}
.ig-sw{position:relative;width:40px;height:24px;flex:0 0 auto}
.ig-sw input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1}
.ig-sw span{position:absolute;inset:0;border-radius:99px;background:var(--line);transition:background .2s}
.ig-sw span::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:inset-inline-start .2s}
.ig-sw input:checked+span{background:var(--brand)}
.ig-sw input:checked+span::after{inset-inline-start:19px}
.ig-sw input:disabled+span{opacity:.45}
.ig-sw input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.ig-ev{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.ig-ev .lbl{font-weight:600;font-size:13px;margin-inline-end:4px}
.ig-chk{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:99px;font-size:13px;cursor:pointer;min-height:24px}
.ig-chk input{margin:0;width:16px;height:16px}
@media (prefers-color-scheme:dark){.ig-st.ok{color:#6ee7b7}.ig-st.bad{color:#fca5a5}}
:root[data-theme=dark] .ig-st.ok{color:#6ee7b7}:root[data-theme=dark] .ig-st.bad{color:#fca5a5}
.rv-ed input,.rv-ed select{width:100%;min-width:70px;font:inherit;font-size:14px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.rv-ed td{padding:4px}.rv-fx{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:.85rem}.rv-fx input{width:90px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:14px}
.em-fast{margin-inline-start:10px;font-weight:600;border-color:color-mix(in srgb,var(--brand) 40%,var(--line));color:var(--brand);animation:emFast .4s ease-out}
@keyframes emFast{from{opacity:0;transform:translateY(4px)}}

/* styled dropdowns (Chromium 135+: customizable select; other browsers keep the native list) */
@supports (appearance:base-select){
 select{appearance:base-select;align-items:center}
 select::picker-icon{content:"";width:8px;height:8px;margin-inline-start:10px;border:0;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.55;transition:transform .2s}
 select:open::picker-icon{transform:translateY(2px) rotate(225deg)}
 ::picker(select){appearance:base-select;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 18px 44px -14px rgba(20,22,60,.35),0 2px 8px rgba(20,22,60,.08);padding:6px;margin-block:6px;max-height:min(360px,60vh);opacity:0;translate:0 -6px;transition:opacity .16s,translate .16s,overlay .16s allow-discrete,display .16s allow-discrete}
 select:open::picker(select){opacity:1;translate:0 0}
 @starting-style{select:open::picker(select){opacity:0;translate:0 -6px}}
 select option{padding:9px 12px;border-radius:9px;font:inherit;font-size:.9rem;cursor:pointer;display:flex;align-items:center;gap:8px;min-height:36px;outline:none}
 select option::checkmark{content:"";width:5px;height:10px;border:0;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:translateY(-2px) rotate(45deg);order:1;margin-inline-start:auto}
 select option:not(:checked)::checkmark{visibility:hidden}
 select option:hover,select option:focus-visible{background:color-mix(in srgb,var(--brand) 9%,transparent)}
 select option:checked{color:var(--brand);font-weight:600;background:color-mix(in srgb,var(--brand) 12%,transparent)}
 select option:disabled{opacity:.45;cursor:not-allowed}
 select optgroup{font-size:.75rem;color:var(--muted);padding:6px 8px 2px}
 @media (prefers-reduced-motion:reduce){::picker(select){transition:none}}
}

/* template cards: calmer, fewer elements (details live in the tooltip and the preview) */
.tlib .tl-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))!important;gap:18px!important;padding:20px 0!important}
.tlib .tlc{flex-direction:column;padding:0;border-radius:18px;overflow:hidden;gap:0}
.tlib .tl-main{flex-direction:column;gap:0;width:100%}
.tlib .tl-main>.tl-pv{flex:0 0 auto;width:100%;height:112px;border-radius:0;background:linear-gradient(160deg,color-mix(in srgb,var(--brand) 7%,var(--surface-2)),var(--surface-2))}
.tlib .tl-main>.tl-pv svg{transform:scale(1.35)}
.tlib .tl-main>.tl-pv .tl-ic{display:none}
.tlib .tlc .tl-b{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;padding-inline-end:14px}
.tlib .tlc .tl-b b{font-size:.98rem;line-height:1.35}
.tlib .tl-d,.tlib .tlc .tl-b>small{display:none!important}
.tlib .tl-fl2{position:absolute;top:10px;inset-inline-start:10px;display:flex;gap:4px;z-index:1}
.tlib .tl-fl2 .tl-flag.real{display:none}
.tlib .tl-m{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.78rem;color:var(--muted)}
.tlib .tl-star{position:absolute;top:8px;inset-inline-end:8px;opacity:0;transition:opacity .15s;background:color-mix(in srgb,var(--surface) 85%,transparent);border-radius:99px;width:30px;height:30px;z-index:1}
.tlib .tlc:hover .tl-star,.tlib .tl-star[aria-pressed=true],.tlib .tl-star:focus-visible{opacity:1}
@media (hover:none){.tlib .tl-star{opacity:1}}
.v-rel{margin:10px 0 0;font-size:.75rem;color:var(--muted);display:inline-flex;align-items:center;gap:6px;cursor:help}.v-rel::before{content:"i";width:16px;height:16px;border-radius:50%;border:1px solid var(--line);display:inline-grid;place-items:center;font-size:10px;font-weight:700}
.mapcard.no-levels .tools.lvl #colAll,.mapcard.no-levels .tools.lvl #lvl2,.mapcard.no-levels .tools.lvl #expAll{display:none}
.mapcard.svg-alt #lockBtn{display:none}