/* samuilife — cards: Kacheln, Listen, Chips, Sheets, Modals
   Aus samuilife_app.html verschoben (Teil 2 §0). Kein Build-Step, file://-fähig. */
/* ── TILES ────────────────────────────────────────── */
#recents{display:none;gap:4px;overflow-x:auto;scrollbar-width:none;align-items:center;
  margin-top:12px;padding-bottom:0px;min-width:0;max-width:100%}
#recents.on{display:flex}
.rec{white-space:nowrap;border:1px solid var(--line);background:var(--paper2);border-radius:999px;
  padding:4px 12px;font-size:13px;font-weight:500;flex-shrink:0}
.rec:active{background:var(--go);border-color:var(--go);color:var(--pure-white)}
#needhead{margin:8px 0 12px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
#arrange{font-family:var(--cond);font-size:12px;font-weight:600;color:var(--dim);
  border:1px solid var(--line);border-radius:999px;padding:4px 12px;white-space:nowrap;flex-shrink:0}
#arrange.on{background:var(--go);border-color:var(--go);color:var(--pure-white)}
.pin{font-size:19px;line-height:1;color:var(--dim);padding:2px 6px;margin-left:6px;
  border:1px solid var(--line);border-radius:8px;min-height:30px}
.pin.on{color:var(--go);border-color:var(--go);background:color-mix(in srgb,var(--go) 12%,transparent)}
.pinned{font-size:13px;color:var(--go);margin-left:4px;vertical-align:3px}
.tile.ispin{border-color:color-mix(in srgb,var(--go) 45%,var(--line))}
#arrangehint{display:none;font-family:var(--cond);font-size:13px;color:var(--sub);
  border-left:2px solid var(--go);padding:4px 0 4px 8px;margin:0 0 8px}
#arrangehint.on{display:block}
#arrangehint b{color:var(--go)}
#needh{font-family:var(--disp);font-size:clamp(18px,5vw,28px);font-weight:700;
  letter-spacing:-.02em;line-height:1.05;opacity:.35}
#gridA{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tile{background:var(--paper2);border:1px solid var(--line);border-radius:var(--r);
  padding:16px 12px 8px;min-width:0}
.tile:focus-within{border-color:var(--go)}
.th{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left}
.th:active{opacity:.55}
.tile .n{font-family:var(--disp);font-weight:700;font-size:28px;letter-spacing:.01em;line-height:1;min-width:0}
.cnt{font-family:var(--mono);font-size:11px;font-weight:400;color:var(--dim);margin-left:8px;vertical-align:5px}
.tile.half .cnt{font-size:11px;vertical-align:3px}
.tile .g{font-size:21px;line-height:1;flex-shrink:0}
.ic{width:26px;height:26px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;opacity:.55}
.tile.half .ic{width:22px;height:22px}
#helpTile .ic{stroke:var(--go);opacity:.85}
/* the descriptor keeps its voice — mono, uppercase, letter-spaced — and every word is a door.
   Tap height equals the line box, so lines touch but never overlap. */
.subs{margin-top:24px;font-family:var(--cond);font-size:12px;font-weight:600;letter-spacing:.03em;
  color:var(--sub);line-height:1.85;opacity:.75}
.sc{font:inherit;letter-spacing:inherit;color:inherit;padding:0;margin:0;display:inline;vertical-align:baseline}
.sc:active{color:var(--go)}
.subs .sep{opacity:.4;padding:0 4px;font-weight:400}
#helpTile{grid-column:auto}
#gridB{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.tile.half{padding:16px 8px 8px;background:transparent;border-style:dashed}
.tile.half .g{font-size:18px}
.tile.half .subs{font-size:11px}
#newsTile{border-style:solid;border-color:var(--net);background:color-mix(in srgb,var(--net) 9%,transparent);position:relative}
#newsTile .dot{position:absolute;top:9px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--net);}
.halflab{font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--dim);margin:16px 0 8px}

/* ── RESULTS ──────────────────────────────────────── */
#results{display:none;padding-top:4px;min-width:0;max-width:100%}#results.on{display:block}
.row{display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:0;padding:12px 0 12px;
  border-bottom:1px solid var(--line);align-items:start;width:100%;text-align:left}
.row.sel{background:var(--paper2);padding-left:8px;padding-right:8px;margin-left:-8px;margin-right:-8px;border-radius:12px}
/* one row chosen: the rest step back so the eye stays where it landed */
#list.picked .row{opacity:.35;transition:opacity .18s}
#list.picked .row.sel{opacity:1}
@media(prefers-reduced-motion:reduce){#list.picked .row{transition:none}}
.rmain{min-width:0}
.rl1{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rg{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-size:14px;
  background:color-mix(in srgb,var(--go) 16%,transparent);flex-shrink:0}
.rg.net{background:color-mix(in srgb,var(--net) 18%,transparent);border-radius:50%}
.rg.shut{background:var(--paper2)}
.row .nm{font-family:var(--disp);font-weight:600;font-size:22px;letter-spacing:-.02em}
.row .how{display:block;margin:0 0 0px 32px;font-family:var(--cond);font-size:11px;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:var(--dim)}
.prod{font-family:var(--cond);font-size:12px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--dim)}
/* top block: identity left, state right */
/* the right column is a fixed track: nothing in it can move the left one */
#s-grid{display:grid;grid-template-columns:minmax(0,1fr) 104px;align-items:start;gap:12px}
#s-left{min-width:0}
#s-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:0}
#s-crumb{font-family:var(--cond);font-size:11px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--dim);margin-bottom:4px;line-height:1.3;opacity:.9}
#s-crumb b{color:var(--dim);font-weight:600}
#s-crumb i{font-style:normal;opacity:.45;margin:0 4px}
#s-state{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:0px;margin:0;min-width:0}
.sthr{font-family:var(--cond);font-size:12px;color:var(--sub);opacity:.8;white-space:nowrap}
/* price: the caveat is a mark on the number */
.askp{width:18px;height:18px;border-radius:50%;border:1px solid var(--line);color:var(--dim);
  font-family:var(--mono);font-size:11px;display:inline-grid;place-items:center;margin:0 8px 0 0px}
.askp:active{border-color:var(--go);color:var(--go)}
#ptip{position:fixed;left:18px;right:18px;z-index:2900;max-width:420px;margin:0 auto;
  background:var(--ink);color:var(--paper);border-radius:12px;padding:12px 12px;
  font-family:var(--cond);font-size:13px;line-height:1.45;box-shadow:var(--sh-sheet);
  opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .14s,transform .14s}
#ptip.on{opacity:1;transform:none}
/* the fold */
#s-more{margin:0px 0 8px}
#s-more summary{list-style:none;cursor:pointer;font-family:var(--cond);font-size:12px;
  font-weight:600;color:var(--dim);padding:4px 0}
#s-more summary::-webkit-details-marker{display:none}
#s-more summary::after{content:' ▾';opacity:.6}
#s-more[open] summary::after{content:' ▴'}
#s-moreb{display:flex;flex-direction:column;gap:4px;padding:4px 0 4px}
.ml{font-size:13px;color:var(--sub);opacity:.9}
.ml.warn{color:var(--go);opacity:1}
.wct{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;margin-left:8px;
  border-radius:999px;background:color-mix(in srgb,var(--go) 30%,var(--paper));
  color:color-mix(in srgb,var(--go) 45%,var(--ink));font-family:var(--mono);font-size:11px}
#s-addr{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--dim);
  margin:4px 0}
.addrtxt{color:var(--sub)}
.tt{font-family:var(--cond);font-size:14px;font-weight:600;color:var(--ink)}
#s-state{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:8px 0 8px}
.stlab{font-family:var(--cond);font-size:16px;font-weight:700;letter-spacing:.06em}
.stlab.open{color:var(--ok-text)}.stlab.shut{color:var(--go-text)}.stlab.inst{color:var(--net)}
.sthr{font-family:var(--cond);font-size:14px;color:var(--sub)}
#s-price{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:0 0 8px}
.pricebig{font-family:var(--cond);font-size:16px;font-weight:700}
#s-why{font-size:13px;color:var(--dim);line-height:1.45;margin:4px 0 0}
#s-badges{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}
.hint{font-family:var(--cond);font-size:12px;font-weight:600;color:var(--sub);
  border:1px solid var(--line);border-radius:999px;padding:4px 12px;text-align:left;
  max-width:100%;white-space:normal;line-height:1.3}
.hint.crit{border-color:var(--go);color:var(--go)}
.hint:active{background:var(--paper2)}
.row .wy{font-size:13px;color:var(--sub);display:block;margin:0px 0 0 32px;line-height:1.4;opacity:.9}
.row .inc{display:block;margin:4px 0 0 32px;font-family:var(--cond);font-size:12px;
  color:color-mix(in srgb,var(--warn) 34%,var(--ink))}
.badges{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;
  column-gap:0;row-gap:4px;margin-top:4px}
.cta{margin-left:auto;align-self:center;font-family:var(--cond);font-size:12px;font-weight:700;
  letter-spacing:.02em;border-radius:999px;padding:4px 12px;white-space:nowrap;flex-shrink:0;
  border:1px solid transparent;line-height:1.15}
.cta.go{background:var(--go);border-color:var(--go);color:var(--pure-white)} /* B6: Vollton, AA gemessen */
.cta.book{background:var(--ok);border-color:var(--ok);color:var(--on-ok)} /* B6: Vollton, AA gemessen */
.cta.mute{background:transparent;border-color:var(--line);color:var(--sub)}
.cta:active{transform:scale(.96)}
.mic{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-right:4px;flex-shrink:0}
.bdg{display:inline-flex;align-items:center;font-family:var(--cond);font-size:11px;font-weight:600;
  letter-spacing:.02em;border:1px solid transparent;border-radius:999px;padding:4px 8px;margin:0 4px 0 0;
  background:var(--paper2);color:var(--sub)}
.bdg.rem,.bdg.via{background:color-mix(in srgb,var(--net) 22%,var(--paper));
  color:color-mix(in srgb,var(--net) 30%,var(--ink))}
.bdg.come{background:color-mix(in srgb,var(--ok) 20%,var(--paper));
  color:color-mix(in srgb,var(--ok) 32%,var(--ink))}
.bdg.tier{background:color-mix(in srgb,var(--warn) 22%,var(--paper));
  color:color-mix(in srgb,var(--warn) 32%,var(--ink))}
.bdg.top{background:color-mix(in srgb,var(--warn) 26%,var(--paper));
  color:color-mix(in srgb,var(--warn) 40%,var(--ink));letter-spacing:.06em}
.bdg.budget{background:color-mix(in srgb,var(--ok) 18%,var(--paper));
  color:color-mix(in srgb,var(--ok) 30%,var(--ink));letter-spacing:.06em}
.bdg.home{background:var(--paper2);color:var(--sub)}
.bdg.ahead{background:color-mix(in srgb,var(--ok) 20%,var(--paper));
  color:color-mix(in srgb,var(--ok) 32%,var(--ink))}
.bdg.date{background:color-mix(in srgb,var(--net) 22%,var(--paper));
  color:color-mix(in srgb,var(--net) 30%,var(--ink))}
.bdg.rem2{background:var(--net);color:var(--pure-white)}
.meter{text-align:right;font-family:var(--mono);min-width:74px;flex-shrink:0}
.mline{display:block}
.meter .stt{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.meter .big{font-size:18px;font-weight:600;line-height:1.05}
.meter .sm{font-size:11px;color:var(--dim);text-transform:uppercase;margin-left:0px}
.stt.open{color:var(--ok)}.stt.shut{color:var(--dim)}.stt.inst{color:var(--net)}
#refine{margin-top:8px;position:relative;min-width:0;max-width:100%}
#chev{position:absolute;right:-4px;top:50%;transform:translateY(-50%);z-index:5;
  width:30px;height:30px;border-radius:50%;background:var(--paper);border:1px solid var(--line);
  display:none;place-items:center;font-size:16px;color:var(--ink);
  box-shadow:var(--sh-fade)}
#chev.on{display:grid}
#chev:active{transform:translateY(-50%) scale(.9)}
#refine-chips{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0;padding:0 32px 0px 0;align-items:center;scroll-behavior:smooth;min-width:0;max-width:100%}
#refine-chips::-webkit-scrollbar{display:none}
.rfgroup{display:flex;gap:4px;align-items:center;flex-shrink:0}
.rflab{font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--dim);margin-right:0px}
.rfsep{width:1px;height:20px;background:var(--line);flex-shrink:0;margin:0 4px}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--dim)}
.rf{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:4px 12px;font-size:13px;white-space:nowrap;flex-shrink:0}
.rf.on{background:var(--go);border-color:var(--go);color:var(--pure-white);font-weight:600}
.rf.tier.on{background:var(--warn);border-color:var(--warn);color:var(--pure-black)}
#more{display:block;width:100%;margin-top:16px;padding:12px;border:1px dashed var(--line);border-radius:var(--r);font-family:var(--mono);font-size:12px;color:var(--dim)}

/* ── EXHAUST + WEB ────────────────────────────────── */
#exhaust{display:none;margin-top:16px}#exhaust.on{display:block}
#ex-head{font-family:var(--disp);font-size:18px;font-weight:700;letter-spacing:-.025em;margin-bottom:4px}
#ex-sub{font-size:13px;color:var(--dim);line-height:1.45}
.rung{display:flex;gap:12px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:8px;background:var(--paper2)}
.rung .num{font-family:var(--mono);font-size:11px;color:var(--dim);border:1px solid var(--line);border-radius:4px;padding:4px 4px;flex-shrink:0}
.rung .t{flex:1}.rung .t b{display:block;font-weight:600;font-size:14px}
.rung .t span{font-size:12px;color:var(--dim)}
.rung.done{opacity:.38}
.rung.web{background:var(--paper);border-style:dashed;border-color:var(--dim)}
.rung.web.armed{background:var(--ink);color:var(--paper);border-style:solid;border-color:var(--ink)}
.rung.web.armed .t span{color:var(--on-acc-dim)}
.rung.web.armed .num{border-color:var(--on-acc-line);color:var(--on-acc-dim)}
#gaplog{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--paper2)}
#gaplog .add{margin-top:8px;width:100%;border:1px solid var(--ok);color:var(--ok);border-radius:8px;padding:12px;font-size:13px;font-weight:600}
#webx{position:fixed;inset:0;z-index:3000;background:var(--paper);transform:translateY(100%);transition:transform .26s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
#webx.on{transform:none}
#webx-bar{display:flex;gap:8px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--ink);color:var(--paper)}
#webx-bar .bk{border:1px solid var(--on-acc-line);border-radius:999px;padding:8px 12px;font-family:var(--mono);font-size:11px;white-space:nowrap}
#webx-bar .ti{flex:1;min-width:0;font-family:var(--mono);font-size:11px;opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#webx-body{flex:1;overflow-y:auto;padding:20px 16px 40px;max-width:640px;margin:0 auto;width:100%}
#webx-body h2{font-family:var(--disp);font-size:22px;font-weight:700;letter-spacing:-.03em;margin-bottom:4px}
#webx-body p{font-size:14px;color:var(--dim);line-height:1.5}
#qprev{margin:16px 0;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--paper2)}
#qprev .qq{font-family:var(--mono);font-size:14px;line-height:1.5;word-break:break-word;margin-top:4px}
#qprev .parts{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
#qprev .parts span{font-family:var(--mono);font-size:11px;border:1px solid var(--line);border-radius:4px;padding:4px 8px;color:var(--dim);background:var(--paper)}
#engines{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}
#engines button{border:1px solid var(--line);border-radius:12px;padding:12px 12px;text-align:left;background:var(--paper2)}
#engines button b{display:block;font-family:var(--disp);font-size:16px;font-weight:700}
#engines button span{font-size:11px;color:var(--dim);font-family:var(--mono)}
#engines button:first-child{background:var(--ink);color:var(--paper);border-color:var(--ink)}
#engines button:first-child span{color:var(--on-acc-dim)}

/* ── DESK / NEWS ──────────────────────────────────── */
#desk,#news{display:none;margin-top:12px;border-radius:var(--r);overflow:hidden}
#desk.on,#news.on{display:block}
#desk{border:1px solid var(--net)}
#news{border:1px solid var(--net)}
#desk-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;background:color-mix(in srgb,var(--net) 12%,transparent);border-bottom:1px solid var(--line)}
.dh{font-family:var(--disp);font-size:18px;font-weight:700;letter-spacing:-.025em}
.ds{font-family:var(--mono);font-size:11px;color:var(--dim);display:flex;gap:4px;align-items:center;margin-top:4px}
#desk-human{border:1px solid var(--net);color:var(--net);border-radius:999px;padding:8px 12px;font-family:var(--mono);font-size:11px;white-space:nowrap;flex-shrink:0}
#desk-human.armed{background:var(--net);color:var(--pure-white);font-weight:600}
#thread{padding:12px;display:flex;flex-direction:column;gap:12px;max-height:330px;overflow-y:auto}
.msg{max-width:88%;font-size:14px;line-height:1.5}
.msg.me{align-self:flex-end;background:var(--ink);color:var(--paper);border-radius:12px 12px 4px 12px;padding:8px 12px}
.msg.ai{align-self:flex-start;background:var(--paper2);border:1px solid var(--line);border-radius:12px 12px 12px 4px;padding:12px 12px}
.msg .src{font-family:var(--mono);font-size:11px;color:var(--dim);margin-top:8px;display:block;border-top:1px solid var(--line);padding-top:4px}
.msg .jump{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.msg .jump button{border:1px solid var(--net);color:var(--net);border-radius:999px;padding:4px 12px;font-size:12px}
#desk-ask{display:flex;gap:8px;padding:12px 12px;border-top:1px solid var(--line)}
#desk-ask input{flex:1;border:1px solid var(--line);background:var(--paper2);border-radius:999px;padding:12px 16px;font:inherit;font-size:14px;color:var(--ink);outline:none;min-width:0}
#desk-ask button{width:42px;height:42px;border-radius:50%;background:var(--net);color:var(--pure-white);flex-shrink:0}
#desk-seed{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:0 12px 12px;min-width:0;max-width:100%}
#desk-seed::-webkit-scrollbar{display:none}
#desk-seed button{white-space:nowrap;border:1px solid var(--line);background:var(--paper2);border-radius:999px;padding:8px 12px;font-size:12px;color:var(--dim);flex-shrink:0}
.newsitem{padding:12px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:flex-start}
.newsitem .tm{font-family:var(--mono);font-size:11px;color:var(--dim);white-space:nowrap;padding-top:4px;min-width:56px}
.newsitem b{font-size:14px;font-weight:600;display:block}
.newsitem span{font-size:13px;color:var(--dim)}
.newsitem .nmeta{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.newsitem .kd{font-family:var(--mono);font-size:11px;letter-spacing:.06em;border-radius:999px;
  padding:4px 8px;border:1px solid var(--line);color:var(--dim);display:inline-block}
.newsitem.urgent{border-left:3px solid var(--go);padding-left:8px}
.newsitem.warning{border-left:3px solid var(--warn);padding-left:8px}
.newsitem .corr{display:block;margin-top:4px;font-size:12px;color:var(--go);
  border-left:2px solid var(--go);padding-left:8px}

/* ── ASK BAR ──────────────────────────────────────── */
#ask{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:12px 18px calc(11px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--paper) 78%,transparent);max-width:540px}
@media(min-width:900px){#ask{left:max(0px,calc(50vw - 600px))}}
body:not(.active) #rail{display:none}
#rail{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:8px;min-width:0;max-width:100%}
#rail::-webkit-scrollbar{display:none}
.rchip{white-space:nowrap;border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:8px 12px;font-size:13px;font-weight:500;display:flex;gap:8px;align-items:center;box-shadow:var(--sh-overlay);flex-shrink:0}
.rchip .ic{width:19px;height:19px;opacity:.7}
.rg .ic{width:17px;height:17px;opacity:.8}
#prov-hero .ic{width:56px;height:56px;opacity:.4}
.ph .ic{width:26px;height:26px;opacity:.45}
.mk.demo .ic{width:16px;height:16px;stroke:var(--go);opacity:1}
.rchip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
#askbox{display:flex;gap:8px;align-items:center;background:var(--paper2);border:1px solid var(--line);border-radius:999px;padding:8px 8px 8px 16px;box-shadow:var(--sh-sheet)}
#askbox input{flex:1;border:0;background:none;font:inherit;font-size:16px;color:var(--ink);outline:none;min-width:0}
#mic{width:40px;height:40px;border-radius:50%;background:var(--go);color:var(--pure-white);flex-shrink:0}

/* ── PROVENANCE + INFO MENU ───────────────────────── */
.prov{font-family:var(--cond);font-size:12px;font-weight:600;border-radius:999px;
  padding:4px 12px;display:inline-flex;align-items:center;gap:8px;white-space:normal;text-align:left}
.prov.public{border:1px solid var(--line);color:var(--dim)}
.prov.people{border:1px solid var(--ok);color:var(--ok)}
.prov.owner{border:1px solid var(--net);color:var(--net)}
.prov .i{width:15px;height:15px;border-radius:50%;border:1px solid currentColor;
  display:grid;place-items:center;font-family:var(--mono);font-size:11px;flex-shrink:0}
#infopop,#reportpop{position:fixed;inset:0;z-index:2650;background:var(--scrim);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  display:none;align-items:flex-end;justify-content:center;padding:0}
#infopop.on,#reportpop.on{display:flex}
@media(min-width:640px){#infopop,#reportpop{align-items:center;padding:20px}}
#ip-card,#rp2-card{background:var(--paper);border-radius:16px 16px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));
  width:100%;max-width:460px;box-shadow:var(--sh-sheet)}
@media(min-width:640px){#ip-card,#rp2-card{border-radius:16px}}
#ip-note{font-size:13px;color:var(--dim);line-height:1.55;margin:12px 0 16px}
#ip-acts{display:flex;flex-direction:column;gap:8px}
.ipa{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;
  border:1px solid var(--line);background:var(--paper2);border-radius:12px;padding:12px;
  font-size:14px;font-weight:500;text-align:left}
.ipa span{color:var(--go);font-family:var(--mono)}
.ipa:active{border-color:var(--go)}
.ipx{width:100%;margin-top:12px;padding:12px;border-radius:8px;
  font-family:var(--cond);font-size:13px;color:var(--dim)}
#rp2-q{font-family:var(--disp);font-size:22px;font-weight:700;letter-spacing:-.02em}
#rp2-s{font-family:var(--cond);font-size:13px;color:var(--dim);margin-top:4px}
#rp2-opts{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.rr{border:1px solid var(--line);background:var(--paper2);border-radius:12px;padding:12px;
  font-size:14px;text-align:left}
.rr:active{border-color:var(--go);color:var(--go)}
#rp2-ok{font-size:13px;color:var(--ok);line-height:1.55;margin-top:12px}
#rp2-ok b{color:var(--ink)}

/* ── RENT DISAMBIGUATION ──────────────────────────── */
#rentpick{position:fixed;inset:0;z-index:2600;background:var(--scrim);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;padding:20px}
#rentpick.on{display:flex}
#rp-card{background:var(--paper);border-radius:16px;padding:20px;width:100%;max-width:420px;box-shadow:var(--sh-sheet)}
#rp-q{font-family:var(--disp);font-size:22px;font-weight:700;letter-spacing:-.03em}
#rp-s{font-size:13px;color:var(--dim);margin-top:4px}
#rp-opts{display:flex;flex-direction:column;gap:8px;margin-top:16px}
#rp-opts button{display:flex;gap:12px;align-items:center;border:1px solid var(--line);background:var(--paper2);
  border-radius:12px;padding:12px;text-align:left;font-size:14px;font-weight:600}
#rp-opts button span.ic{font-size:22px}
#rp-opts button small{display:block;font-family:var(--mono);font-size:11px;color:var(--dim);font-weight:400;margin-top:0px}
#rp-x{width:100%;margin-top:12px;padding:12px;border-radius:8px;font-family:var(--mono);font-size:11px;color:var(--dim)}

/* ── PRECISION MODAL ──────────────────────────────── */
#pmodal{position:fixed;inset:0;z-index:2500;background:var(--scrim);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:none;
  align-items:flex-end;justify-content:center}
#pmodal.on{display:flex}
@media(min-width:640px){#pmodal{align-items:center}}
#pm-card{background:var(--paper);width:100%;max-width:540px;max-height:88dvh;display:flex;flex-direction:column;
  border-radius:16px 16px 0 0;box-shadow:var(--sh-sheet)}
@media(min-width:640px){#pm-card{border-radius:16px}}
#pm-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 12px;border-bottom:1px solid var(--line)}
#pm-title{font-family:var(--disp);font-size:18px;font-weight:700;letter-spacing:-.03em}
#pm-count{font-family:var(--mono);font-size:12px;color:var(--dim);margin-top:4px}
#pm-count b{color:var(--go);font-size:14px}
#pm-x{width:34px;height:34px;border-radius:50%;background:var(--paper2);flex-shrink:0}
#pm-body{overflow-y:auto;padding:4px 16px 12px}
.pdim{padding:12px 0;border-bottom:1px solid var(--line)}
.pdim:last-child{border-bottom:0}
.pdim .dl{font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
.pdim .dv{display:flex;flex-wrap:wrap;gap:8px}
.pv{border:1px solid var(--line);background:var(--paper2);border-radius:8px;padding:8px 12px;font-size:13px;display:flex;gap:8px;align-items:center}
.pv b{font-family:var(--mono);font-size:11px;font-weight:400;color:var(--dim)}
.pv.on{background:var(--go);border-color:var(--go);color:var(--pure-white);font-weight:600}
.pv.on b{color:var(--on-acc-dim)}
.pv:disabled{opacity:.3;cursor:default}
#pm-foot{display:flex;gap:8px;padding:13px 18px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
#pm-foot button{flex:1;padding:12px 8px;border-radius:12px;font-weight:600;font-size:14px}

/* ── SHEET / PROVIDER ─────────────────────────────── */
/* Read outdoors, at speed. When a card is up, everything behind it goes dark
   so there is exactly one thing on screen to look at. */
#scrim{position:fixed;inset:0;background:var(--scrim);z-index:1500;opacity:0;
  pointer-events:none;transition:opacity .22s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
#scrim.on{opacity:1;pointer-events:auto}
#sheet{position:fixed;inset:auto 0 0 0;z-index:1600;background:var(--paper);border-top:1px solid var(--line);border-radius:16px 16px 0 0;padding:13px 18px calc(20px + env(safe-area-inset-bottom));transform:translateY(101%);transition:transform .25s cubic-bezier(.4,0,.2,1);box-shadow:var(--sh-sheet);max-width:540px;margin:0 auto}
#sheet.on{transform:none}
.grab{width:38px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 8px}
#s-name{font-family:var(--disp);font-size:22px;font-weight:700;letter-spacing:-.03em;margin:0;line-height:1.15}
#s-addr{font-family:var(--cond);font-size:13px;color:var(--dim)}
#s-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 8px}
.st1{font-family:var(--cond);font-size:16px;font-weight:600}
.st1.open{color:var(--ok)}.st1.shut{color:var(--go)}.st1.inst{color:var(--net)}
.dotsep{color:var(--dim)}
.modeswap{font-family:var(--cond);font-size:13px;font-weight:600;color:var(--sub);
  border:1px solid var(--line);border-radius:999px;padding:4px 8px;margin-left:0px}
.modeswap:active{border-color:var(--go);color:var(--go)}
.pricerow{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.pricerow b{font-family:var(--cond);font-size:14px;font-weight:600;margin-right:4px}
.pay{font-family:var(--cond);font-size:11px;font-weight:600;color:var(--sub);
  border:1px solid var(--line);border-radius:999px;padding:0px 8px}
.paynone{font-family:var(--cond);font-size:12px;color:var(--go)}
.whytxt{font-size:13px;color:var(--dim);margin-top:4px;line-height:1.45}
#s-badges{margin:8px 0 0px}
#facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
#facts div{background:var(--paper2);border-radius:8px;padding:8px}
#facts .k{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}
#facts .v{font-family:var(--mono);font-size:14px;font-weight:600;margin-top:0px}
#bell{display:flex;font-size:13px;align-items:center;gap:4px;background:transparent;color:var(--dim);
  border:1px solid var(--line);border-radius:999px;padding:4px 8px 4px 8px}
#bell.on{background:var(--net);border-color:var(--net);color:var(--pure-white)}
#bell b{font-family:var(--mono);font-size:11px;font-weight:600}
#s-badges2{display:flex;flex-wrap:wrap;gap:4px;min-width:0;margin-top:8px}
#rembox{width:100%;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
/* the option list drops out of flow so it cannot push the left column */
.rempanel{position:absolute;right:0;top:calc(100% + 5px);z-index:5;background:var(--paper);
  border:1px solid var(--net);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:4px;
  box-shadow:var(--sh-sheet);min-width:172px}
#rembox{position:relative}
.remtog{display:inline-flex;align-items:center;font-family:var(--cond);font-size:12px;font-weight:600;
  color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:4px 12px;white-space:nowrap}
.remtog.on{border-color:var(--net);color:var(--net)}
.remtog .cv{margin-left:4px;opacity:.6}
.remtog .mic{color:currentColor}
.rempanel{display:flex;flex-direction:column;gap:4px;margin-top:4px;align-items:flex-end}
.remchips{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}
.remc{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:8px 12px;font-size:12px}
.remc.on{background:var(--net);border-color:var(--net);color:var(--pure-white);font-weight:600}
.remok{font-family:var(--mono);font-size:11px;color:var(--net);margin-top:8px}
#remsheet{position:fixed;inset:auto 0 0 0;z-index:1700;background:var(--paper);border-top:1px solid var(--line);
  border-radius:16px 16px 0 0;padding:13px 18px calc(20px + env(safe-area-inset-bottom));
  transform:translateY(101%);transition:transform .25s cubic-bezier(.4,0,.2,1);max-width:540px;margin:0 auto;
  box-shadow:var(--sh-sheet)}
#remsheet.on{transform:none}
.remrow{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.remrow b{display:block;font-size:14px;font-weight:600}
.remrow span span{font-family:var(--mono);font-size:11px;color:var(--dim)}
.sponsor{display:block;margin-top:4px;font-family:var(--cond);font-size:12px;color:var(--sub);
  border-left:2px solid var(--warn);padding-left:8px;line-height:1.45}
.sponsor b{color:var(--warn-text);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-right:4px}
.remrow button{width:30px;height:30px;border-radius:50%;background:var(--paper2);flex-shrink:0}
#payline{font-family:var(--mono);font-size:11px;color:var(--dim);margin:0 0 8px;border-left:2px solid var(--go);padding-left:8px;line-height:1.5}
.modes{display:flex;gap:4px;margin:0px 0 8px}
.mode{flex:1;border:1px solid var(--line);border-radius:8px;padding:8px 4px;text-align:center;font-size:11px;font-family:var(--mono)}
.mode .mi{font-size:18px;display:block;margin-bottom:4px}
.mode.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
#acts{display:flex;gap:8px}
#acts button{flex:1;padding:8px 8px;border-radius:12px;font-weight:600;font-size:14px;line-height:1.25}
#acts .pinfo{flex:0 0 auto;width:60px;height:60px;padding:0;border-radius:12px;background:var(--paper2);
  border:1px solid var(--line);font-family:var(--cond);font-size:11px;font-weight:600;
  color:var(--sub);letter-spacing:.02em;line-height:1.25}
#acts .pinfo:active{border-color:var(--go);color:var(--go)}
#acts{align-items:stretch}
.primary{background:var(--go);color:var(--pure-white)}
.primary.net{background:var(--net)}
.ghost{background:var(--paper2);border:1px solid var(--line)}

/* ── Teil 6 Phase 1: Entdecken-Kopf ── */
#discoverhead{display:flex;flex-direction:column;gap:8px;margin:4px 0 12px}
#loc1{display:inline-flex;align-items:center;gap:8px;font-family:var(--cond);font-size:12px;
  color:var(--sub);min-height:24px;align-self:flex-start}
#searchentry{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;
  background:var(--paper2);border:1px solid var(--line);border-radius:12px;padding:12px 16px;
  color:var(--dim);font-size:14px;text-align:left}
#searchentry svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
#hotrow{margin:0 0 8px}
.hotrail{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.hotrail::-webkit-scrollbar{display:none}
.hotc{flex:0 0 auto;display:flex;align-items:center;gap:8px;background:var(--paper);
  border:1px solid var(--line);border-radius:12px;padding:8px;min-height:48px;max-width:230px;text-align:left}
.hotc img{width:44px;height:34px;border-radius:8px;object-fit:cover}
.hotc-b{display:flex;flex-direction:column;min-width:0}
.hotc-b b{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.hotc-b span{font-family:var(--cond);font-size:11px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.hotc.more{background:var(--paper2)}
.trcount{font-family:var(--mono);font-size:11px;color:var(--dim);letter-spacing:.06em;margin:8px 0 4px}
/* Audit HOCH: #ask bleibt ueberall erreichbar — der Sucheinstieg oben ist die SUCHE, die Leiste unten die FRAGE */

#locopts svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;vertical-align:-2px;margin-right:4px}

/* ── Teil 6 Phase 6: vier Button-Stufen ── */
.btn-p{background:var(--go);border:1px solid var(--go);color:var(--pure-white);font-weight:700;min-height:44px;border-radius:12px}
.btn-s{background:var(--paper);border:1px solid var(--line);color:var(--ink);font-weight:600;min-height:44px;border-radius:12px}
.btn-q{background:none;border:0;color:var(--sub);font-weight:600;min-height:44px}
.btn-d{background:var(--danger);border:1px solid var(--danger);color:var(--on-danger);font-weight:700;min-height:44px;border-radius:999px}
.btn-d.line{background:none;color:var(--danger-text);border-color:var(--danger)}
/* Phase 5: unsichtbare Hit-Erweiterung für kleine Icon-Bedienelemente (Optik unverändert) */
#themeqk,#bell,.refresh,#adrbtn,#allfilters,.recentre,#arrange,
.isv,.mfc,.ptab,.sgx,.pkclose,.shsort,.rec,.hint,.qty button,.clq button,#chev,.tb,
#wordmark,#loc1,#searchentry,.trsel,.vcfbtn,.govcall,.st,.sgmain,.hotc,.trrow,.ofrow,.govrow a,
.ibrow,.lgrow,.lgcat,.pkacts button,.pkacts a{position:relative}
#themeqk::before,#bell::before,.refresh::before,#allfilters::before,.recentre::before,#arrange::before,.isv::before,.mfc::before,.ptab::before,
.sgx::before,.pkclose::before,.shsort::before,.rec::before,.hint::before,.qty button::before,
.clq button::before,#chev::before,#wordmark::before,#loc1::before,.refresh::before,
.trsel::before,.vcfbtn::before{content:'';position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);width:max(100%,44px);height:max(100%,44px)}
/* Zeilen-Targets: volle Breite, Mindesthöhe */
.trrow,.ofrow,.ibrow,.lgrow,.lgcat,.sgmain,.hotc,.govcall,#searchentry{min-height:44px}
/* Skalenknöpfe/Header-Zeilen: eigene Hitareas */
.st::before,#refresh::before,.sc::before{content:'';position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);width:max(100%,32px);height:max(100%,44px)}
#refresh::before{width:max(100%,44px)}
.back::before,#mic::before,.msn::before,.isq button::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,44px);height:max(100%,44px)}
#refresh,.sc,#scaleL,.back,#mic,.msn,.isq button{position:relative}
#scaleL{min-height:44px}
.th{min-height:44px}
.rowact{font-family:var(--cond);font-size:12px;font-weight:700;color:var(--go-text)}

.tile .subs{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile .n{display:inline-flex;gap:8px;align-items:baseline}
/* C26: QR-Buttons gleiche Höhe */
.qrbtns button{min-height:52px}
/* C28: Betrag im Zahlen-Font mit Baht-Deckung */
.qramt{font-family:var(--cond)}
/* C30: via-Zeile bricht nicht in die Preisspalte */
.trmain span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:52vw;display:block}
/* C37: Event-Hero ohne Loch zur Datumszeile */
.evhero{margin-bottom:8px}
/* C24: deaktivierte Optionszeile lesbar */
.isv[disabled],.isv.dis{color:var(--sub);opacity:.8}
.wmore{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center}
.wmore b{font-size:16px}
.wmore span{font-family:var(--cond);font-size:12px;color:var(--sub)}
.flchips{display:inline-flex;gap:4px}

/* Audit K1: Sheet + Scrim ueber Profil (prov 2000/prov-cta 2010), unter panelpage */
body:has(#itemsheet.on) #scrim{z-index:2090}
.mdist{display:block;font-family:var(--mono);font-size:11px;color:var(--dim);margin-top:2px}
.ofmore{font-family:var(--cond);font-size:11px;color:var(--dim);margin-left:8px}
.depnext{color:var(--ok-text)}
.deppast{opacity:.55}
.fbook{margin-top:4px;font-size:12px;padding:8px 12px;min-height:36px}
