:root{--bg:#08111f;--panel:#101b2e;--panel2:#0a1423;--text:#eef4ff;--muted:#91a0bb;--line:#243451;--blue:#79a8ff;--green:#39d49b;--yellow:#f0c55f;--red:#ff7373;--flap:#141b25;--flap2:#0b1018;--flapline:#05080d}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100vh;color:var(--text);background:linear-gradient(180deg,#0b1728,#08111f 45%);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
button,input,select{font:inherit}.card{background:rgba(16,27,46,.96);border:1px solid var(--line);border-radius:15px}.topbar{max-width:1120px;margin:auto;padding:20px 16px 12px;display:flex;justify-content:space-between;align-items:end;gap:12px}.eyebrow{font-size:10px;font-weight:850;letter-spacing:.16em;color:var(--blue);margin-bottom:7px}h1{font-size:clamp(27px,7vw,44px);line-height:1;margin:0 0 6px;letter-spacing:-.045em}h2,h3,p{margin-top:0}.topbar p,.section-title p{color:var(--muted);margin-bottom:0}.header-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.primary,.ghost{border:0;border-radius:10px;padding:9px 11px;font-weight:800;cursor:pointer}.primary{background:#eef4ff;color:#08111f}.ghost{background:#17253d;border:1px solid #2b3e60;color:#eef4ff}.ghost.small{font-size:10px;padding:7px 9px}
main{max-width:1120px;margin:auto;padding:0 16px 55px}.connection{padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}.connection strong{font-size:12px}.connection span{display:block;color:var(--muted);font-size:9px;margin-top:2px}.connection-badges{display:flex;gap:5px;flex-shrink:0}.badge,.sector-tag,.signal,.ticker-badge,.confidence-pill{border-radius:999px;padding:4px 7px;font-size:9px;font-weight:850}.neutral{background:#1b2a43;color:#afc0dd}.live{background:rgba(57,212,155,.13);color:#6ee7b7}.warn{background:rgba(240,197,95,.14);color:#ffda7d}.off{background:rgba(255,115,115,.1);color:#ff9d9d}
.controls{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px;margin-bottom:9px}.segmented{display:flex;gap:2px}.seg{border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:750;padding:7px 8px;cursor:pointer}.seg.active{background:#1e2d48;color:#fff}select{background:#0b1525;border:1px solid #2b3b5a;border-radius:8px;padding:7px;color:#eef4ff;max-width:145px}
.quick-stats{display:grid;grid-template-columns:1fr;gap:5px;margin-bottom:13px}.quick{display:grid;grid-template-columns:94px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 11px;min-width:0}.quick span{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.045em}.quick strong{display:block;font-size:12px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick small{color:#dbe5f5;font-size:10px;font-weight:800;white-space:nowrap;text-align:right}.section-title{display:flex;justify-content:space-between;align-items:end;margin:12px 2px 6px;gap:10px}.section-title h2{margin:0 0 2px;font-size:19px}.section-title p{font-size:10px}.text-btn{border:0;background:transparent;color:#7ea8ed;font-size:9px;padding:4px;cursor:pointer}
.table-head{display:grid;grid-template-columns:minmax(150px,2.25fr) 82px 72px 64px 48px 16px;gap:4px;padding:0 8px 4px;color:#6f819f;font-size:7.5px;text-transform:uppercase;letter-spacing:.04em}.watchlist{display:grid;gap:5px}.stock-line{overflow:hidden}.stock-line summary{list-style:none;display:grid;grid-template-columns:minmax(150px,2.25fr) 82px 72px 64px 48px 16px;gap:4px;align-items:center;padding:8px;cursor:pointer;min-height:46px}.stock-line summary::-webkit-details-marker{display:none}.stock-line[open] summary{background:#132039;border-bottom:1px solid var(--line)}
.company-wrap{min-width:0;display:block}.company-name{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f3f7ff}.relative{position:relative;display:flex;align-items:center;align-self:stretch;min-width:0;padding-bottom:0}.relative .ratio{align-self:center}.relative small{position:absolute;left:2px;bottom:-1px;font-size:6.5px;line-height:1;color:#7f91ae;margin:0;pointer-events:none}.buy-cell{display:flex;align-items:center;gap:4px}.signal-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:0 0 auto}.signal-dot.green{background:var(--green)}.signal-dot.yellow{background:var(--yellow)}.signal-dot.red{background:var(--red)}.chevron{color:#8395b1;font-size:13px;transition:.18s transform}.stock-line[open] .chevron{transform:rotate(180deg)}
/* V6.5: Fallblatt-Zeichen; Relativwert exakt auf gleicher Grundlinie bei unveränderter Aktienzeilenhöhe. */
.flap-board{display:inline-flex;align-items:center;gap:.75px;white-space:nowrap;min-width:0;font-family:"SFMono-Regular",Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;line-height:1;transform:scaleY(1.16);transform-origin:left center}
.flap-char{--cw:10.2px;position:relative;display:inline-grid;place-items:center;width:var(--cw);height:18px;border:1px solid #303846;border-radius:2.5px;background:linear-gradient(to bottom,#1a1b1c 0 48.5%,#070809 49% 51%,#111315 51.5% 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.055),inset 0 -1px 0 rgba(0,0,0,.6),0 1px 1px rgba(0,0,0,.34);color:#f6f1d8;font-size:10.4px;font-weight:900;text-shadow:0 1px 0 #000;overflow:hidden}
.flap-char::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#020303;box-shadow:0 1px 0 rgba(255,255,255,.04);z-index:2;pointer-events:none}
.flap-char::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.025),transparent 38%,rgba(0,0,0,.16));pointer-events:none}
.flap-char.punct{--cw:7.6px}.flap-char.currency{--cw:9px;color:#d9e2ee}.flap-char.minus{--cw:8.8px}.flap-char.space{--cw:3px;border:0;background:transparent;box-shadow:none}.flap-char.space::before,.flap-char.space::after{display:none}
.price .flap-char,.gap .flap-char,.yield .flap-char{font-size:10.1px}.ratio .flap-char{font-size:10.3px}.buyScore .flap-char{font-size:10.7px}.buyScore{justify-content:center}
.flap-char.flash{animation:charFlip .52s cubic-bezier(.2,.75,.28,1) both;animation-delay:calc(var(--i) * 32ms)}
@keyframes charFlip{0%{transform:perspective(150px) rotateX(0);filter:brightness(1)}38%{transform:perspective(150px) rotateX(-82deg);filter:brightness(.55)}56%{transform:perspective(150px) rotateX(42deg);filter:brightness(1.25)}100%{transform:perspective(150px) rotateX(0);filter:brightness(1)}}
.expand-panel{padding:11px 12px 12px;background:#0d1829}.expand-head{display:flex;justify-content:space-between;gap:10px;align-items:start;margin-bottom:9px}.expand-head>div{display:flex;flex-direction:column;min-width:0}.detail-name-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.expand-head .name{font-size:13px}.ticker-badge{background:#273955;color:#d5e2f7}.sector-tag{background:#1d3151;color:#bfd0ff}.source-status{color:#8495af;font-size:8px;margin-top:3px}.signal.green{background:rgba(57,212,155,.12);color:#72e7bb;border:1px solid rgba(57,212,155,.3)}.signal.yellow{background:rgba(240,197,95,.12);color:#ffda7d;border:1px solid rgba(240,197,95,.28)}.signal.red{background:rgba(255,115,115,.1);color:#ff9d9d;border:1px solid rgba(255,115,115,.28)}
.score-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:8px}.score-strip>div,.detail-card{background:var(--panel2);border:1px solid #20314d;border-radius:9px;padding:7px}.score-strip span,.detail-card span{display:block;color:var(--muted);font-size:8px}.score-strip strong,.detail-card strong{display:block;margin-top:3px;font-size:12px}.score-strip .trap{color:#ff9b9b}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.expand-panel h3{font-size:10px;color:#9eb0cc;margin:11px 0 5px;text-transform:uppercase;letter-spacing:.06em}.metric-list{display:grid;gap:4px}.detail-line{display:grid;grid-template-columns:1fr auto;gap:8px;background:var(--panel2);border:1px solid #20314d;border-radius:8px;padding:6px 8px;font-size:9px;align-items:center}.detail-line span{color:#9caac0}.metric-value{display:flex;align-items:center;gap:5px}.confidence-pill{padding:2px 5px;font-size:7px;background:#1a2a42;color:#aebfda}.confidence-pill.high{background:rgba(57,212,155,.11);color:#6ee7b7}.confidence-pill.medium{background:rgba(240,197,95,.11);color:#ffda7d}.confidence-pill.low{background:rgba(255,115,115,.09);color:#ff9d9d}.coverage-note{font-size:7.5px;color:#8092ad;margin-top:2px}.source-box{background:#0a1423;border:1px solid #243552;border-radius:9px;padding:8px;margin-top:9px;font-size:8.5px;line-height:1.45;color:#aebbd0}.source-box a{color:#88b0ff}.row-actions{display:flex;justify-content:flex-end;margin-top:7px}.info{margin-top:10px;padding:10px;color:#becbe0;font-size:9px;line-height:1.5}
.update-summary{display:grid;gap:7px}.update-row{background:#0a1423;border:1px solid #243552;border-radius:10px;padding:9px}.update-row-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:5px}.update-row-head strong{font-size:12px}.update-row p{margin:0;color:#aebbd0;font-size:9px;line-height:1.45}.update-ok{color:#6ee7b7}.update-fail{color:#ff9d9d}dialog{width:min(720px,94vw);max-height:86vh;overflow:auto;background:#0d1727;color:#eef4ff;border:1px solid #314361;border-radius:18px;padding:0;box-shadow:0 30px 90px rgba(0,0,0,.55)}dialog::backdrop{background:rgba(0,0,0,.72)}.dialog-body{padding:15px}.dialog-head{display:flex;justify-content:space-between;gap:10px;align-items:start}.dialog-head h2{font-size:20px;margin:0 0 10px}
@media(max-width:760px){.table-head,.stock-line summary{grid-template-columns:minmax(104px,1.7fr) 54px 64px 51px 46px 42px 14px;gap:3px}.company-name{font-size:10px}}
@media(max-width:620px){.topbar{align-items:flex-start;flex-direction:column}.header-actions{width:100%;justify-content:stretch}.header-actions button{flex:1}.controls{align-items:stretch;flex-direction:column}.segmented{justify-content:space-between}.seg{flex:1}.controls select{max-width:none;width:100%}.table-head,.stock-line summary{grid-template-columns:minmax(128px,2fr) 68px 58px 54px 40px 12px;padding-left:6px;padding-right:6px;gap:3px}.table-head{font-size:6.7px}.company-name{font-size:9.3px}.relative small{font-size:6px;bottom:-1px}.signal-dot{width:6px;height:6px}.detail-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:390px){.table-head,.stock-line summary{grid-template-columns:122px 64px 54px 50px 38px 11px;gap:2px}.company-name{font-size:8.7px}}

@media(max-width:620px){.quick{grid-template-columns:82px minmax(0,1fr) auto}.quick strong{font-size:11px}.quick small{font-size:9px}.flap-board{transform:scaleY(1.20)}.flap-char{--cw:9.8px;height:17px;font-size:10.2px}.flap-char.punct{--cw:7.2px}.flap-char.currency{--cw:8.5px}.flap-char.minus{--cw:8.4px}.price .flap-char,.gap .flap-char,.yield .flap-char{font-size:9.9px}.ratio .flap-char{font-size:10.1px}.buyScore .flap-char{font-size:10.4px}}

.update-warn{color:#ffda7d}.update-row p .update-warn{font-weight:700}

/* V7.1 — mREIT Dividend Safety */
.dividend-safety{
  margin:0 0 8px;
  padding:11px 12px;
  border-radius:12px;
  border:1px solid #2b3f60;
  background:#0a1423;
  display:grid;
  grid-template-columns:1fr auto;
  gap:3px 10px;
  align-items:center;
}
.dividend-safety>div:first-child span{
  display:block;color:#8fa3c2;font-size:8px;font-weight:850;letter-spacing:.13em
}
.dividend-safety>div:first-child strong{
  display:block;margin-top:3px;font-size:20px;letter-spacing:-.03em
}
.dividend-safety .safety-status{
  border-radius:999px;padding:4px 8px;font-size:9px;font-weight:850;white-space:nowrap
}
.dividend-safety p{
  grid-column:1/-1;margin:3px 0 0;color:#aebbd0;font-size:9px;line-height:1.4
}
.dividend-safety.good{border-color:rgba(57,212,155,.35)}
.dividend-safety.good .safety-status{background:rgba(57,212,155,.13);color:#6ee7b7}
.dividend-safety.mid{border-color:rgba(240,197,95,.35)}
.dividend-safety.mid .safety-status{background:rgba(240,197,95,.13);color:#ffda7d}
.dividend-safety.bad{border-color:rgba(255,115,115,.35)}
.dividend-safety.bad .safety-status{background:rgba(255,115,115,.12);color:#ff9d9d}
.dividend-safety.neutral .safety-status{background:#1b2a43;color:#afc0dd}
