/* =============================================================
   AKCIOVÝ GENIUS — design system
   Editorial finance · paper · hairline · mobile-first
   DNA: teplý papier, ink, zelený kicker, modré dáta, 1px linky,
        veľká tučná numerika, žiadne tiene — len vlasové linky.
   ============================================================= */

/* ---------- 1. TOKENS ---------------------------------------- */
:root{
  /* papier — teplá biela, ako sa číta tlač */
  --bg:#f6f5f2;
  --surface:#ffffff;
  --surface-2:#fbfaf8;
  --surface-3:#efede8;
  --elevated:#ffffff;

  /* linky — jediný jazyk delenia */
  --line:rgba(16,16,20,.11);
  --line-strong:rgba(16,16,20,.20);
  --line-accent:rgba(13,138,78,.30);

  /* ink */
  --text:#111114;
  --text-2:#5a5a61;
  --text-3:#8c8c94;

  /* hlas vs dáta — zelený kicker, modrá čísla */
  --kicker:#0d8a4e;
  --data:#2b96e0;
  --ink:#111114;

  /* sémantika — červená/zelená drží (akciová konvencia) */
  --accent:#2b96e0;
  --accent-soft:rgba(43,150,224,.10);
  --accent-line:rgba(43,150,224,.32);
  --pos:#0d8a4e;
  --pos-soft:rgba(13,138,78,.09);
  --neg:#cf3b33;
  --neg-soft:rgba(207,59,51,.09);
  --warn:#a9700f;
  --warn-soft:rgba(169,112,15,.10);
  --info:#2b96e0;

  /* úrovne (novinky) */
  --lv-high:#cf3b33;
  --lv-med:#a9700f;
  --lv-low:#8c8c94;

  /* rytmus — viac vzduchu, editoriálny dych */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px;
  --s6:28px; --s7:36px; --s8:48px; --s9:64px;
  --gutter:24px;

  /* rádius — tlačový, nie nadývaný */
  --r-xs:4px; --r-sm:6px; --r:10px; --r-lg:14px; --r-full:999px;

  /* typografia */
  --font:'Inter',-apple-system,BlinkMacSystemFont,'SF Pro Text',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --t-display:34px; --t-h1:21px; --t-h2:15px; --t-body:15px;
  --t-sm:13px; --t-xs:12px; --t-2xs:11px;

  /* zvýšenie — vlasová linka, nie tieň */
  --shadow-sheet:0 -1px 0 var(--line);
  --shadow-modal:0 24px 64px rgba(17,17,20,.16);

  /* layout */
  --nav-h:56px;
  --top-h:52px;
  --ease:cubic-bezier(.32,.72,0,1);
}

/* ---------- 2. RESET ----------------------------------------- */
*{box-sizing:border-box;margin:0;padding:0}
/* [hidden] musí přebít každé display:… — jinak .x{display:flex} skryje
   schování elementy (ticky, badge, panely) a UI ukazuje falešný stav */
[hidden]{display:none!important}
html,body{overflow-x:clip}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font);
  font-size:var(--t-body);
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  max-width:560px;
  margin:0 auto;
  min-height:100dvh;
  padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px);
  overscroll-behavior-y:none;
}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
input,textarea,select{background:none;border:0;outline:none;-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
h1,h2,h3{font-weight:600;letter-spacing:-.011em;line-height:1.25}
::selection{background:rgba(94,140,255,.3)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.up{color:var(--pos)} .dn{color:var(--neg)} .fl{color:var(--text-2)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ic{font-family:'tabler-icons'!important;font-style:normal;font-weight:normal;font-feature-settings:"liga";display:inline-block;vertical-align:-.125em;text-rendering:optimizeLegibility;line-height:1;flex:0 0 auto}

/* ---------- 3. SHELL ---------------------------------------- */
.topbar{
  position:sticky;top:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;gap:var(--s3);
  height:calc(var(--top-h) + env(safe-area-inset-top));
  padding:env(safe-area-inset-top) var(--gutter) 0;
  background:rgba(246,245,242,.86);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
}
.brand{display:flex;align-items:center;gap:9px;min-width:0}
.brand-mark{
  width:22px;height:22px;flex:0 0 auto;border-radius:6px;
  background:var(--ink);
  display:grid;place-items:center;
  font-size:12px;font-weight:700;color:#fff;letter-spacing:-.04em;
}
.brand-name{font-size:15px;font-weight:600;letter-spacing:-.015em;white-space:nowrap}
.brand-sub{font-size:var(--t-2xs);color:var(--text-3);line-height:1.2;white-space:nowrap}
.topbar-right{display:flex;align-items:center;gap:var(--s2);flex:0 0 auto}

.iconbtn{
  width:32px;height:32px;border-radius:var(--r-full);
  display:grid;place-items:center;position:relative;
  color:var(--text-2);transition:background .16s,color .16s;
}
.iconbtn:active{background:var(--surface-3);color:var(--text)}
.iconbtn .ic{font-size:18px}
.pip{
  position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;
  background:var(--neg);opacity:0;transform:scale(.5);transition:opacity .2s,transform .2s;
}
.pip.on,.pip.inline.on{opacity:1;transform:scale(1)}

/* market session — single line, calm */
.session{
  display:flex;align-items:center;gap:6px;
  font-size:var(--t-2xs);color:var(--text-3);white-space:nowrap;
}
.session .dot{width:5px;height:5px;border-radius:50%;background:var(--text-3);flex:0 0 auto}
.session.regular .dot{background:var(--pos)}
.session.pre .dot{background:var(--warn)}
.session.after .dot{background:var(--info)}

/* session line under header */
.subhead{
  padding:2px var(--gutter) 0;
  font-size:var(--t-2xs);color:var(--text-3);
}

/* ---------- 4. VIEW / SECTION -------------------------------- */
.view{padding:0 var(--gutter);animation:viewin .26s var(--ease) both}
@keyframes viewin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* section header — the workhorse: label + optional right action */
.sec{
  display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);
  margin:var(--s6) 0 var(--s3);
  font-size:var(--t-2xs);font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--text-3);
}
.sec:first-child{margin-top:var(--s5)}
#view-home>.sec:first-of-type{margin-top:var(--s6)}
.sec .hint{font-size:var(--t-2xs);font-weight:400;letter-spacing:0;text-transform:none;color:var(--text-3)}
.sec-action{
  font-size:var(--t-xs);font-weight:500;letter-spacing:0;text-transform:none;
  color:var(--accent);display:flex;align-items:center;gap:2px;flex:0 0 auto;
}
.sec-action .ic{font-size:13px}
.ptitle{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin:var(--s6) 0 var(--s1)}
.p-h1{font-size:var(--t-h1);font-weight:650;letter-spacing:-.02em}
.rectitle{font-size:var(--t-sm);color:var(--text-2);margin-bottom:var(--s4)}
.note{font-size:var(--t-xs);color:var(--text-3);line-height:1.5;margin-top:var(--s5)}

/* ---------- 5. SEARCH ---------------------------------------- */
.search{
  display:flex;align-items:center;gap:10px;height:46px;margin:var(--s5) 0 0;
  padding:0 14px;border-radius:var(--r);
  background:var(--surface-2);border:1px solid var(--line);
  color:var(--text-3);font-size:var(--t-sm);text-align:left;width:100%;
  transition:border-color .16s,background .16s;
}
.search .ic{font-size:16px;flex:0 0 auto}
.search span{flex:1 1 auto}
.search:active{background:var(--surface-3);border-color:var(--line-strong)}
.searchrow{display:flex;gap:var(--s2);align-items:center}
.searchrow input{
  flex:1 1 auto;min-width:0;height:42px;padding:0 14px;border-radius:var(--r);
  background:var(--surface-2);border:1px solid var(--line);
  font-family:var(--mono);font-size:15px;letter-spacing:.04em;text-transform:uppercase;
}
.searchrow input::placeholder{color:var(--text-3);letter-spacing:0;text-transform:none;font-family:var(--font)}

/* ---------- 6. BUTTONS --------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:40px;padding:0 16px;border-radius:var(--r-sm);
  background:var(--accent);color:#fff;
  font-size:var(--t-sm);font-weight:550;letter-spacing:-.005em;
  transition:opacity .16s,transform .12s;
}
.btn:active{opacity:.88;transform:scale(.985)}
.btn.ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--line)}
.btn.danger{background:var(--neg-soft);color:var(--neg)}
.btn.sm{height:34px;padding:0 13px;font-size:var(--t-xs)}
.btn.block{width:100%}
.btn[disabled]{opacity:.4;pointer-events:none}
.btn.is-loading{color:transparent;position:relative}
.btn.is-loading::after{
  content:"";position:absolute;width:15px;height:15px;border-radius:50%;
  border:2px solid rgba(255,255,255,.34);border-top-color:#fff;
  animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.chip{
  display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 12px;
  border-radius:var(--r-full);background:var(--surface-2);
  border:1px solid var(--line);color:var(--text-2);
  font-size:var(--t-xs);white-space:nowrap;
  transition:background .16s,color .16s,border-color .16s;
}
.chip.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}
.chip.tool .ic{font-size:14px}
.chips{display:flex;gap:var(--s2);overflow-x:auto;padding:2px 0;scrollbar-width:none;-ms-overflow-style:none}
.chips::-webkit-scrollbar{display:none}

/* ---------- 7. MARKET STRIP ---------------------------------- */
.mstrip{
  display:flex;gap:var(--s2);overflow-x:auto;margin:0 calc(-1*var(--gutter));padding:2px var(--gutter);
  scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;
}
.mstrip::-webkit-scrollbar{display:none}
.mitem{
  flex:0 0 auto;scroll-snap-align:start;
  min-width:92px;padding:7px 10px;border-radius:var(--r-sm);
  background:var(--surface);border:1px solid var(--line);
  display:flex;flex-direction:column;gap:3px;
}
.mitem-t{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;color:var(--text-3)}
.mitem-row{display:flex;align-items:baseline;gap:5px}
.mitem-p{font-family:var(--mono);font-size:12.5px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.mitem-c{font-family:var(--mono);font-size:10.5px;font-weight:500;font-variant-numeric:tabular-nums}

/* ---------- 8. NEWS ROWS ------------------------------------ */
.nws{display:flex;flex-direction:column}
.nrow-h{
  display:flex;align-items:center;gap:var(--s2);
  padding:var(--s4) 0 var(--s1);width:100%;text-align:left;
}
.nrow-h::after{content:"";flex:1 1 auto;height:1px;background:var(--line);margin-left:var(--s1)}
.nrow{position:relative;display:block;width:100%;text-align:left;padding:10px 0 12px 13px;border-bottom:1px solid var(--line)}
.nrow:last-child{border-bottom:0}
.nrow::before{
  content:"";position:absolute;left:0;top:11px;bottom:13px;width:2px;border-radius:0 2px 2px 0;
  background:var(--lv-low);opacity:.5;transition:opacity .2s;
}
.nrow.lv-HIGH::before{background:var(--lv-high);opacity:1}
.nrow.lv-MEDIUM::before{background:var(--lv-med);opacity:.85}
.nrow:active{background:var(--surface)}
.nrow-hd{display:flex;align-items:center;gap:6px;margin-bottom:4px;flex-wrap:wrap}
.nrow-tk{
  font-family:var(--mono);font-size:var(--t-sm);font-weight:600;letter-spacing:-.01em;
  display:inline-flex;align-items:center;gap:4px;
}
.nrow-lv{font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3)}
.nrow.lv-HIGH .nrow-lv{color:var(--lv-high)}
.nrow.lv-MEDIUM .nrow-lv{color:var(--lv-med)}
.nrow-t{font-size:var(--t-sm);font-weight:500;line-height:1.4;letter-spacing:-.006em;color:var(--text);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nrow-s{font-size:var(--t-2xs);line-height:1.45;color:var(--text-2);margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nrow-f{display:flex;align-items:center;gap:7px;margin-top:5px;font-size:10.5px;color:var(--text-3)}
.nrow-f .dot{width:2px;height:2px;border-radius:50%;background:currentColor;opacity:.6}
.nrow.fresh{animation:newsin .38s var(--ease) both}
@keyframes newsin{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.mfmeta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--t-2xs);color:var(--text-3);margin-bottom:var(--s2)}
.mffilters{display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-full);padding:2px}
.mff{
  height:26px;padding:0 11px;border-radius:var(--r-full);
  font-size:10.5px;font-weight:600;letter-spacing:.05em;color:var(--text-3);
  transition:background .16s,color .16s;white-space:nowrap;
}
.mff.on{background:var(--surface-3);color:var(--text)}

/* ---------- 9. DATA ROWS ------------------------------------ */
.list{display:flex;flex-direction:column}
.row{
  display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;
  padding:12px 0;border-bottom:1px solid var(--line);min-height:44px;
}
.list>.row:last-child{border-bottom:0}
.row>.body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.row>.body>b{font-family:var(--mono);font-size:var(--t-sm);font-weight:600;letter-spacing:-.01em;display:block}
.row .meta{font-size:var(--t-2xs);color:var(--text-3);line-height:1.35}
.row .meta a{color:var(--accent)}
.row-side{flex:0 0 auto;display:flex;align-items:center;gap:8px;text-align:right}
.tag{font-family:var(--mono);font-size:var(--t-xs);font-variant-numeric:tabular-nums;color:var(--text-2)}
.tag.bull{color:var(--pos)} .tag.bear{color:var(--neg)} .tag.neu{color:var(--text-2)}
.del,.nrow-del{
  width:26px;height:26px;flex:0 0 auto;border-radius:var(--r-full);
  display:grid;place-items:center;color:var(--text-3);font-size:14px;
  transition:background .16s,color .16s;
}
.del:active,.nrow-del:active{background:var(--neg-soft);color:var(--neg)}

/* watchlist + portfolio preview rows */
.wrow,.prow{
  display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;
  padding:10px 0;border-bottom:1px solid var(--line);min-height:44px;
}
.wrow:active,.prow:active{background:var(--surface)}
.wrow-tk,.prow-tk{font-family:var(--mono);font-size:var(--t-sm);font-weight:600;letter-spacing:-.01em;flex:0 0 auto;width:52px}
.wrow-mid,.prow-mid{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--t-xs);color:var(--text-3)}
.wrow-side,.prow-side{flex:0 0 auto;text-align:right;display:flex;flex-direction:column;gap:1px;align-items:flex-end}
.wrow-p,.prow-p{font-family:var(--mono);font-size:var(--t-sm);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.wrow-c,.prow-c{font-family:var(--mono);font-size:var(--t-2xs);font-weight:500;font-variant-numeric:tabular-nums}

/* portfolio preview headline */
.pfprev{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s4);padding:var(--s2) 0 var(--s4)}
.pfprev-l{display:flex;flex-direction:column;gap:5px;min-width:0}
.pfprev-v{font-family:var(--mono);font-size:var(--t-display);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.035em;line-height:1.05}
.pfprev-s{font-family:var(--mono);font-size:var(--t-sm);font-weight:500;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:6px}
.pfprev-r{flex:0 0 auto;display:flex;align-items:center;gap:var(--s3)}
.spark{width:76px;height:30px;flex:0 0 auto;overflow:visible}
.spark path.line{fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.spark path.area{stroke:none;opacity:.16}

/* ---------- 10. NOTIFICATION PROMPT ------------------------- */
.nperm{
  display:flex;align-items:center;gap:9px;margin:var(--s4) 0 0;
  padding:10px 0 11px;border-bottom:1px solid var(--line);min-height:44px;
}
.nperm-i{display:flex;align-items:center;gap:8px;flex:0 0 auto;color:var(--text-2)}
.nperm-i .ic{font-size:15px}
.nperm-t{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;gap:7px}
.nperm-t strong{font-size:var(--t-xs);font-weight:550;letter-spacing:-.005em;white-space:nowrap;flex:0 0 auto}
.nperm-t span{font-size:var(--t-2xs);color:var(--text-3);line-height:1.35;min-width:0;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.nperm-b{
  flex:0 0 auto;height:28px;padding:0 12px;border-radius:var(--r-full);
  background:var(--accent);color:#fff;font-size:var(--t-xs);font-weight:550;
}
.nperm-b:active{opacity:.85}
.nperm-b.done{background:var(--surface-3);color:var(--text-2)}
.nperm-x{width:24px;height:24px;flex:0 0 auto;border-radius:var(--r-full);color:var(--text-3);font-size:13px;display:grid;place-items:center}

/* ---------- 11. BOTTOM NAV ---------------------------------- */
.tabbar{
  position:fixed;bottom:0;left:0;right:0;z-index:50;
  max-width:560px;margin:0 auto;
  height:calc(var(--nav-h) + env(safe-area-inset-bottom));
  padding:0 var(--s2) env(safe-area-inset-bottom);
  display:grid;grid-template-columns:repeat(5,1fr);
  background:rgba(246,245,242,.94);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-top:1px solid var(--line);
}
.tabbar button{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  color:var(--text-3);position:relative;min-height:44px;
  transition:color .18s var(--ease);
}
.tabbar button .ic{font-size:19px;transition:transform .22s var(--ease)}
.tabbar button span{font-size:10px;font-weight:500;letter-spacing:.01em}
.tabbar button.on{color:var(--accent)}
.tabbar button.on .ic{transform:translateY(-1px)}
.tabbar button:active .ic{transform:scale(.9)}

/* More sheet */
.more-sheet{position:fixed;inset:0;z-index:70}
.more-bg{position:absolute;inset:0;background:rgba(17,17,20,.34);animation:fadein .2s both}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.more-card{
  position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:560px;
  background:var(--elevated);border-radius:var(--r-lg) var(--r-lg) 0 0;
  border-top:1px solid var(--line-strong);
  box-shadow:var(--shadow-sheet);
  padding:8px 0 calc(10px + env(safe-area-inset-bottom));
  animation:sheetup .3s var(--ease) both;
}
@keyframes sheetup{from{transform:translate(-50%,100%)}to{transform:translate(-50%,0)}}
.more-grip{width:34px;height:4px;border-radius:2px;background:var(--line-strong);margin:4px auto 12px}
.more-item{
  display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;
  padding:13px var(--gutter);min-height:50px;border-bottom:1px solid var(--line);
}
.more-item:active{background:var(--surface-3)}
.more-item .ic{font-size:18px;color:var(--text-2);flex:0 0 auto}
.more-item-t{flex:1 1 auto;display:flex;flex-direction:column;gap:1px}
.more-item-t b{font-size:var(--t-body);font-weight:500}
.more-item-t span{font-size:var(--t-2xs);color:var(--text-3)}
.more-item .chev{font-size:15px;color:var(--text-3);flex:0 0 auto}

/* ---------- 12. SHEETS / MODALS ----------------------------- */
.nsheet{position:fixed;inset:0;z-index:80}
.nsheet-bg,.recmodal-bg{position:absolute;inset:0;background:rgba(17,17,20,.36);animation:fadein .2s both}
.nsheet-card{
  position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:560px;
  max-height:88dvh;display:flex;flex-direction:column;
  background:var(--elevated);border-radius:var(--r-lg) var(--r-lg) 0 0;
  border-top:1px solid var(--line-strong);box-shadow:var(--shadow-sheet);
  animation:sheetup .32s var(--ease) both;
}
.nsheet-grip,.recmodal-grip{width:34px;height:4px;border-radius:2px;background:var(--line-strong);margin:8px auto 10px;flex:0 0 auto}
.nsheet-h{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:0 var(--gutter) var(--s3);flex:0 0 auto}
.nsheet-h h3{font-size:var(--t-h2);font-weight:600}
.nsheet-acts{display:flex;align-items:center;gap:var(--s2)}
.nclose,.rm-close{width:28px;height:28px;border-radius:var(--r-full);display:grid;place-items:center;color:var(--text-3);font-size:14px}
.nclose:active,.rm-close:active{background:var(--surface-3)}
.nbtn{
  height:30px;padding:0 12px;border-radius:var(--r-full);background:var(--surface-3);
  color:var(--text-2);font-size:var(--t-xs);font-weight:500;
}
.nbtn:active{background:var(--surface-2)}
.nbtn.on{background:var(--accent-soft);color:var(--accent)}
.nbtn.danger{color:var(--neg)}
.nsheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 var(--gutter);
  -webkit-overflow-scrolling:touch}
.nsheet-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--gutter) 0;flex:0 0 auto}
.nfaint{font-size:var(--t-2xs);color:var(--text-3)}
.npush{padding:0 var(--gutter);padding-bottom:var(--s3);flex:0 0 auto}
.np-h{display:flex;align-items:center;gap:6px;font-size:var(--t-xs);font-weight:550;margin-bottom:3px}
.np-dot{width:5px;height:5px;border-radius:50%;background:var(--text-3);flex:0 0 auto}
.np-dot.ok{background:var(--pos)} .np-dot.warn{background:var(--warn)} .np-dot.off{background:var(--text-3)}
.np-act{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.nsec-h{
  position:sticky;top:0;z-index:2;background:var(--elevated);
  padding:var(--s3) 0 var(--s2);font-size:var(--t-2xs);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);
  display:flex;align-items:center;justify-content:space-between;
}
.nempty{text-align:center;padding:var(--s8) 0;color:var(--text-3);font-size:var(--t-sm)}
.nempty .big{font-size:28px;display:block;margin-bottom:var(--s2);opacity:.5}

/* notification rows */
.nnotif{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);position:relative}
.nnotif.read{opacity:.5}
.nnotif-ic{flex:0 0 auto;font-size:15px;width:22px;text-align:center;opacity:.85}
.nnotif-m{flex:1 1 auto;min-width:0}
.nnotif-t{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:2px}
.nnotif-tkr{font-family:var(--mono);font-size:var(--t-xs);font-weight:600}
.pr{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.pr.HIGH{color:var(--neg)} .pr.MEDIUM{color:var(--warn)}
.nnotif-title{font-size:var(--t-sm);font-weight:500;line-height:1.35}
.nnotif-desc{font-size:var(--t-xs);color:var(--text-2);margin-top:2px;line-height:1.4}
.nnotif-ai{font-size:var(--t-2xs);color:var(--info);margin-top:4px;line-height:1.4}
.nnotif-meta{font-size:var(--t-2xs);color:var(--text-3);margin-top:4px}
.nnotif-act{flex:0 0 auto;display:flex;flex-direction:column;gap:2px;justify-content:center}
.nnotif-go{width:24px;height:24px;display:grid;place-items:center;color:var(--text-3);font-size:12px}
.nnotif-tag{padding:1px 6px;border-radius:var(--r-xs);background:var(--surface-3);font-size:10px}

/* prefs */
.npref-sec{margin-top:var(--s5);font-size:var(--t-2xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-bottom:var(--s2)}
.npref-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);min-height:44px}
.npref-row .tkr{font-family:var(--mono);font-size:var(--t-sm);font-weight:600;flex:0 0 auto;width:56px}
.npref-row .nm{flex:1 1 auto;min-width:0;font-size:var(--t-xs);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ntgl{width:40px;height:24px;border-radius:var(--r-full);background:var(--surface-3);position:relative;flex:0 0 auto;transition:background .2s}
.ntgl::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--text-3);transition:transform .2s var(--ease),background .2s}
.ntgl.on{background:var(--accent-soft)}
.ntgl.on::after{transform:translateX(16px);background:var(--accent)}
.ncat{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:var(--r-full);background:var(--surface-2);font-size:var(--t-2xs);color:var(--text-2);border:1px solid var(--line)}
.ncat.on{background:var(--pos-soft);color:var(--pos);border-color:transparent}
.npref-block{margin-top:var(--s4)}
.npref-cats{display:flex;gap:6px;flex-wrap:wrap;margin-top:var(--s2)}
.npick{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-full);padding:2px}
.npick button{height:26px;padding:0 11px;border-radius:var(--r-full);font-size:var(--t-2xs);color:var(--text-3)}
.npick button.on{background:var(--surface-3);color:var(--text)}

/* record modal */
.recmodal{position:fixed;inset:0;z-index:80}
.recmodal-card{
  position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:560px;
  max-height:86dvh;display:flex;flex-direction:column;
  background:var(--elevated);border-radius:var(--r-lg) var(--r-lg) 0 0;
  border-top:1px solid var(--line-strong);box-shadow:var(--shadow-modal);
  padding:8px 0 calc(14px + env(safe-area-inset-bottom));
  animation:sheetup .3s var(--ease) both;
}
.rm-h{display:flex;align-items:center;gap:10px;padding:0 var(--gutter) var(--s3);flex:0 0 auto}
.rm-tkr{font-family:var(--mono);font-size:var(--t-h2);font-weight:600;letter-spacing:-.01em}
.rm-nm{flex:1 1 auto;min-width:0;font-size:var(--t-xs);color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rm-rows{flex:1 1 auto;overflow-y:auto;padding:0 var(--gutter)}

/* ---------- 13. STATES -------------------------------------- */
.skel{
  height:56px;border-radius:var(--r);margin-bottom:var(--s2);
  background:linear-gradient(90deg,var(--surface) 25%,var(--surface-3) 50%,var(--surface) 75%);
  background-size:200% 100%;animation:shimmer 1.4s infinite linear;
}
@keyframes shimmer{to{background-position:-200% 0}}
.skel-t{height:14px;width:44%;border-radius:6px;background:var(--surface-2);margin-bottom:8px}
.skel-l{height:10px;width:70%;border-radius:5px;background:var(--surface-2)}
.status{text-align:center;padding:var(--s6) 0;color:var(--text-3);font-size:var(--t-sm);line-height:1.5}
.status .big{display:block;font-size:22px;margin-bottom:var(--s2);opacity:.6}
.status .elapsed{display:block;margin-top:var(--s2);font-size:var(--t-2xs);color:var(--text-3);font-family:var(--mono)}
.empty-s{text-align:center;padding:var(--s7) 0;color:var(--text-3);font-size:var(--t-sm);line-height:1.5}
.empty-s b{display:block;font-size:var(--t-body);font-weight:500;color:var(--text-2);margin-bottom:4px}
.err{color:var(--neg);font-size:var(--t-xs);line-height:1.5}

/* ---------- 14. STAT / METRIC ROWS ------------------------- */
.stats{display:flex;flex-direction:column}
.stat{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);padding:9px 0;border-bottom:1px solid var(--line)}
.stat:last-child{border-bottom:0}
.stat .k{font-size:var(--t-xs);color:var(--text-3)}
.stat .v{font-family:var(--mono);font-size:var(--t-sm);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* ---------- 15. SHORT SHEET / MISC ------------------------- */
.card{
  padding:var(--s3) 0;display:flex;flex-direction:column;gap:3px;
  border-bottom:1px solid var(--line);
}
.card .k{font-size:var(--t-2xs);color:var(--text-3);letter-spacing:.02em}
.card .v{font-family:var(--mono);font-size:var(--t-h2);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.card .v.sm{font-size:var(--t-body)}
.card .sub{font-size:var(--t-2xs);color:var(--text-3)}
.grid{display:grid;gap:var(--s3)}
.g2{grid-template-columns:repeat(2,1fr)}
.g4{grid-template-columns:repeat(2,1fr)}
@media (min-width:420px){.g4{grid-template-columns:repeat(4,1fr)}}

.appcard{
  display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;
  padding:13px 0;border-bottom:1px solid var(--line);min-height:48px;
}
.appcard .ic{font-size:17px;color:var(--text-2);flex:0 0 auto}
.appcard-t{flex:1 1 auto;display:flex;flex-direction:column;gap:1px}
.appcard-t b{font-size:var(--t-sm);font-weight:500}
.appcard-t span{font-size:var(--t-2xs);color:var(--text-3)}
.appcard .chev{font-size:14px;color:var(--text-3);flex:0 0 auto}

.chartbox{margin:var(--s4) 0}
#chart{height:320px}
#chart:empty{display:none}
.masthead{display:flex;align-items:baseline;gap:10px;margin-top:var(--s4);flex-wrap:wrap}
.masthead .tkr{font-family:var(--mono);font-size:22px;font-weight:600;letter-spacing:-.02em}
.masthead .px{font-family:var(--mono);font-size:var(--t-h2);font-variant-numeric:tabular-nums}
.masthead .tf{font-size:var(--t-2xs);color:var(--text-3)}

/* report / AI prose */
.report{
  font-size:var(--t-body);line-height:1.62;color:var(--text-2);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:var(--s4);margin-top:var(--s3);overflow-x:auto;
}
.report h1,.report h2,.report h3{color:var(--text);margin:var(--s5) 0 var(--s2);font-size:var(--t-h2)}
.report h1:first-child,.report h2:first-child,.report h3:first-child{margin-top:0}
.report p{margin-bottom:var(--s3)}
.report strong{color:var(--text);font-weight:600}
.report ul,.report ol{margin:0 0 var(--s3) 18px}
.report li{margin-bottom:5px}
.report code{font-family:var(--mono);font-size:var(--t-xs);background:var(--surface-2);padding:1px 5px;border-radius:4px}
.report pre.code{font-family:var(--mono);font-size:var(--t-xs);background:var(--surface-2);padding:var(--s3);border-radius:var(--r-sm);overflow-x:auto;margin-bottom:var(--s3);line-height:1.5}
.report .err{color:var(--neg)}

/* profile accordion */
.phead{margin:var(--s5) 0 var(--s2)}
.phead .v{font-size:var(--t-h1);font-weight:650;letter-spacing:-.02em}
.phead .s{font-size:var(--t-xs);color:var(--text-3);margin-top:2px}
.psec{border-bottom:1px solid var(--line)}
.psec>summary{
  display:flex;align-items:center;gap:10px;padding:13px 0;min-height:44px;
  cursor:pointer;list-style:none;
}
.psec>summary::-webkit-details-marker{display:none}
.psec>summary .n{font-family:var(--mono);font-size:var(--t-2xs);color:var(--text-3);flex:0 0 auto}
.psec>summary .nm{flex:1 1 auto;font-size:var(--t-sm);font-weight:500}
.psec>summary .meta{font-size:var(--t-2xs);color:var(--text-3);font-family:var(--mono);flex:0 0 auto}
.psec>summary .ic{font-size:15px;color:var(--text-3);transition:transform .22s var(--ease);flex:0 0 auto}
.psec[open]>summary .ic{transform:rotate(90deg)}
.psec-b{padding:0 0 var(--s4) 26px;font-size:var(--t-sm);line-height:1.6;color:var(--text-2)}

/* timeline */
/* osa časové přímky. Element s třídou "tl" v HTML nikdy nebyl a #tlBody
   je <div>, takže .tl li::before (barevná značka) nikdo neslyšel. */
.tl,.tl-body{padding-left:2px}
.tl li,.tl-body li{position:relative;margin:0;padding:0 0 14px 18px;
  border-left:1px solid var(--line);list-style:none}
.tl li:last-child,.tl-body li:last-child{padding-bottom:0;border-left-color:transparent}
.tl li::before,.tl-body li::before{content:"";position:absolute;left:-3.5px;top:5px;
  width:6px;height:6px;border-radius:50%;background:var(--line-strong)}
.tl li.pos::before,.tl-body li.pos::before{background:var(--pos)}
.tl li.neg::before,.tl-body li.neg::before{background:var(--neg)}
.tl li.neu::before,.tl-body li.neu::before{background:var(--text-3)}
.tld{font-family:var(--mono);font-size:var(--t-2xs);color:var(--text-3);margin-bottom:2px}
.tlb{font-size:var(--t-sm);line-height:1.5;color:var(--text-2)}
.tl-f{display:inline-block;margin-top:4px;font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.tl-f.pos{color:var(--pos)} .tl-f.neg{color:var(--neg)} .tl-f.neu{color:var(--text-3)} .tl-f.unc{color:var(--warn)}

/* news intel cards inside profile */
.nc{display:flex;flex-direction:column;gap:7px}
.ni{padding:var(--s3) 0;border-bottom:1px solid var(--line)}
.ni:last-child{border-bottom:0}
.ni-h{display:flex;align-items:center;gap:7px;margin-bottom:4px;flex-wrap:wrap}
.ibadge{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:var(--r-xs)}
.ibadge.pos{background:var(--pos-soft);color:var(--pos)}
.ibadge.neg{background:var(--neg-soft);color:var(--neg)}
.ibadge.neu{background:var(--surface-3);color:var(--text-2)}
.ibadge.unc{background:var(--warn-soft);color:var(--warn)}
.imp{font-family:var(--mono);font-size:var(--t-2xs);color:var(--text-3)}
.nsrc{font-size:var(--t-2xs);color:var(--text-3);margin-left:auto}
.ntitle{font-size:var(--t-sm);font-weight:500;line-height:1.4}
.nsum{font-size:var(--t-xs);color:var(--text-2);line-height:1.5;margin-top:3px}
.nwhy{font-size:var(--t-2xs);color:var(--text-3);line-height:1.5;margin-top:5px;display:flex;gap:6px}
.nwhy .nkk{color:var(--text-2);flex:0 0 auto}

/* what changed + thesis impact */
.ih{font-size:var(--t-2xs);font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);margin:var(--s4) 0 var(--s2)}
.wc .wcrow2{display:flex;align-items:baseline;gap:8px;padding:5px 0}
.wc .wcrow2 .st{font-size:var(--t-sm);font-weight:500;flex:0 0 auto}
.wc .wcrow2 .m{font-size:var(--t-2xs);color:var(--pos);flex:1 1 auto}
.wc .wcrow2 .dt{font-family:var(--mono);font-size:var(--t-2xs);color:var(--text-3);flex:0 0 auto}
.tibox ol{counter-reset:t;padding-left:2px}
.tibox li{counter-increment:t;position:relative;padding:5px 0 5px 20px;font-size:var(--t-xs);line-height:1.5;color:var(--text-2)}
.tibox li::before{content:counter(t);position:absolute;left:0;top:5px;width:14px;height:14px;border-radius:50%;background:var(--surface-3);color:var(--text-3);font-size:9px;display:grid;place-items:center;font-family:var(--mono)}

/* forms */
.alertform{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap;margin:var(--s3) 0}
.alertform input,.alertform select{
  height:38px;padding:0 12px;border-radius:var(--r-sm);
  background:var(--surface-2);border:1px solid var(--line);
  font-size:var(--t-sm);font-family:var(--mono);
}
.alertform input.t{flex:0 0 96px;text-transform:uppercase;letter-spacing:.04em}
.alertform input.p,.alertform select{flex:1 1 100px;min-width:0}
.alertform select{font-family:var(--font);cursor:pointer}
@media (max-width:359px){.alertform input.t,.alertform input.p{flex:1 1 100%}}

/* textarea */
textarea{
  width:100%;min-height:70px;padding:10px 12px;border-radius:var(--r-sm);
  background:var(--surface-2);border:1px solid var(--line);
  font-size:var(--t-sm);line-height:1.5;resize:vertical;
}

/* ---------- 16. REDUCED MOTION ----------------------------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ---------- 17. PORTFOLIO ----------------------------------- */
.pill{
  display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;
  border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--line);
  font-size:var(--t-2xs);color:var(--text-3);white-space:nowrap;
}
.pill .dot{width:5px;height:5px;border-radius:50%;background:var(--text-3)}
.pill.on .dot{background:var(--pos)} .pill.warn .dot{background:var(--warn)}

.phead-v{margin:var(--s5) 0 var(--s1)}
.pvlabel{font-size:var(--t-2xs);color:var(--text-3);letter-spacing:.02em}
.pvnum{font-family:var(--mono);font-size:clamp(32px,9vw,40px);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1.05;margin-top:3px}
.pvpl{display:flex;align-items:baseline;gap:8px;margin-top:6px}
.plabel{font-size:var(--t-2xs);color:var(--text-3)}
.pvpl .pnl-up,.pvpl .pnl-down{font-family:var(--mono);font-size:var(--t-body);
  font-weight:500;font-variant-numeric:tabular-nums}
.pvpl .psep{color:var(--text-3);font-size:var(--t-2xs)}

.pbox{margin:var(--s5) 0}
.pfchart{position:relative;height:170px;margin:0 -2px;touch-action:pan-y}
.pfchart svg{display:block;width:100%;height:100%;overflow:visible}
.pfx{position:absolute;top:0;bottom:0;width:1px;background:rgba(16,16,20,.16);pointer-events:none;transform:translateX(-.5px)}
.pfx-dot{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);transform:translate(-50%,-50%)}
.perfdates{display:flex;justify-content:space-between;font-family:var(--mono);font-size:var(--t-2xs);color:var(--text-3);margin-top:2px;padding:0 1px}
.plstrip{display:flex;gap:var(--s1);margin-top:var(--s3);overflow-x:auto;scrollbar-width:none}
.plstrip::-webkit-scrollbar{display:none}
.pli{flex:1 0 auto;min-width:52px;padding:7px 6px;border-radius:var(--r-xs);background:var(--surface);border:1px solid transparent;text-align:center;transition:background .16s,border-color .16s}
.pli.on{background:var(--surface-2);border-color:var(--line-strong)}
.pli-r{display:block;font-size:10px;font-weight:600;letter-spacing:.05em;color:var(--text-3)}
.pli.on .pli-r{color:var(--text-2)}
.pli-v{display:block;font-family:var(--mono);font-size:var(--t-2xs);color:var(--text-3);margin-top:2px}
.pli-p{display:block;font-family:var(--mono);font-size:var(--t-xs);font-weight:500;margin-top:1px}

.pmetrics{display:flex;gap:var(--s5);margin:var(--s4) 0;padding:var(--s3) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pmetric .k{display:block;font-size:var(--t-2xs);color:var(--text-3);margin-bottom:2px}
.pmetric .v{font-family:var(--mono);font-size:var(--t-body);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.01em}

.hsec{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);margin:var(--s6) 0 var(--s2)}
.hlabel{font-size:var(--t-2xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.hcount{font-family:var(--mono);font-size:var(--t-2xs);color:var(--text-3)}

/* holding row */
.hrow{display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;padding:12px 0;border-bottom:1px solid var(--line);min-height:48px}
.hrow:active{background:var(--surface)}
.hrow-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
/* ticker v mono, název na samostatném řádku v sans-serif */
.hrow-main b{font-family:var(--mono);font-size:var(--t-sm);font-weight:600;letter-spacing:-.01em}
.hrow-main .hn{font-family:var(--font);font-size:var(--t-xs);font-weight:400;color:var(--text-2);
  line-height:1.35;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hrow-sub{font-size:var(--t-2xs);color:var(--text-3);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hthesis{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:500;letter-spacing:.03em;color:var(--text-3);margin-top:2px}
.hthesis::before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;flex:0 0 auto}
.hthesis.strengthen{color:var(--pos)} .hthesis.stable{color:var(--info)} .hthesis.weaken{color:var(--neg)} .hthesis.review{color:var(--warn)}
.hrow-right{flex:0 0 auto;text-align:right;display:flex;flex-direction:column;gap:1px;align-items:flex-end}
.hval{font-family:var(--mono);font-size:var(--t-sm);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.hpnl{font-family:var(--mono);font-size:var(--t-2xs);font-variant-numeric:tabular-nums}
.hpct{font-family:var(--mono);font-size:var(--t-2xs);font-weight:500;font-variant-numeric:tabular-nums}
.hpct.up{color:var(--pos)} .hpct.dn{color:var(--neg)}
.hpnl.pnl-up,.hpct.pnl-up,.hval.pnl-up{color:var(--pos)}
.hpnl.pnl-down,.hpct.pnl-down,.hval.pnl-down{color:var(--neg)}

/* industry */
.indtitle{font-size:var(--t-h2);font-weight:600;margin:var(--s7) 0 var(--s4)}
.donutwrap{display:flex;align-items:center;gap:var(--s5)}
.donutbox{position:relative;flex:0 0 auto;width:112px;height:112px}
.donut{display:block;width:100%;height:100%;transform:rotate(-90deg)}
.donut circle{fill:none;stroke-width:4.5;transition:opacity .2s,stroke-width .2s;cursor:pointer}
.donut.has-sel circle{opacity:.28}
.donut circle.sel{opacity:1;stroke-width:6}
.donutc{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.donutc b{display:block;font-family:var(--mono);font-size:var(--t-h2);font-weight:600;letter-spacing:-.02em}
.donutc span{display:block;font-size:10px;color:var(--text-3);margin-top:1px}
.donutlegend{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}
.ilg{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:6px 0;min-height:32px;border-radius:var(--r-xs)}
.ilg:active{background:var(--surface-2)}
.ilg-dot{width:6px;height:6px;border-radius:2px;flex:0 0 auto}
.ilg-name{flex:1 1 auto;min-width:0;font-size:var(--t-xs);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ilg-pct{font-family:var(--mono);font-size:var(--t-xs);color:var(--text-2);flex:0 0 auto}
.ilg-val{display:none}
.indhold{margin-top:var(--s3)}
.ihhead{font-size:var(--t-xs);color:var(--text-3);padding:var(--s2) 0}
@media (max-width:360px){
  .donutwrap{flex-direction:column;align-items:stretch;gap:var(--s4)}
  .donutbox{align-self:center}
  .donutlegend{width:100%}
}

/* t212 history accordion */
.ih{font-size:var(--t-2xs);color:var(--text-3);font-family:var(--mono);margin:var(--s3) 0 var(--s1)}
.tprow{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:9px 0;border-bottom:1px solid var(--line)}
.tprow span{font-size:var(--t-xs);color:var(--text-2)}
.tprow b{font-family:var(--mono);font-size:var(--t-sm);font-weight:500;font-variant-numeric:tabular-nums}

/* ---------- 18. RECORDS ------------------------------------ */
.recload{display:flex;align-items:center;gap:9px;font-size:var(--t-xs);color:var(--text-3);padding:var(--s2) 0}
.recload .sp{width:12px;height:12px;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--accent);animation:spin .7s linear infinite;flex:0 0 auto}
.recgrid{display:flex;flex-direction:column}
.recrow{
  display:flex;flex-direction:column;gap:7px;width:100%;text-align:left;
  padding:13px 0;border-bottom:1px solid var(--line);min-height:56px;
}
.recrow[aria-disabled]{opacity:.4;pointer-events:none}
.recrow:active{background:var(--surface)}
.recrow-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);min-width:0}
.recrow-h{display:flex;align-items:center;gap:9px;min-width:0;flex:1 1 auto}
.recrow-h .ic{font-size:15px;width:18px;text-align:center;flex:0 0 auto}
.recrow-h .lbl{font-size:var(--t-sm);font-weight:500;line-height:1.3;min-width:0}
.recrow-num{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:1px;white-space:nowrap}
.recrow-v{font-family:var(--mono);font-size:var(--t-body);font-weight:600;
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.2}
.recrow-p{font-family:var(--mono);font-size:var(--t-xs);font-weight:500;font-variant-numeric:tabular-nums}
.recrow-p.pnl-up,.recrow-v.pnl-up{color:var(--pos)}
.recrow-p.pnl-down,.recrow-v.pnl-down{color:var(--neg)}
.recrow-sub{display:flex;align-items:baseline;gap:6px;font-size:var(--t-2xs);
  color:var(--text-3);min-width:0}
.recrow-sub .tkr{font-family:var(--mono);font-weight:600;color:var(--text-2);flex:0 0 auto}
.recrow-sub .nm{color:var(--text-3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recrow-sub .per{margin-left:auto;padding-left:8px;flex:0 0 auto}
.recrow .none{font-size:var(--t-2xs);color:var(--text-3)}
.recstats{display:grid;grid-template-columns:repeat(2,1fr);gap:0 var(--s5)}
.rstat{padding:10px 0;border-bottom:1px solid var(--line)}
.rstat .k{display:block;font-size:var(--t-2xs);color:var(--text-3);margin-bottom:2px}
.rstat .v{font-family:var(--mono);font-size:var(--t-body);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* record chart */
.rmchart{margin-top:var(--s3);position:relative}
.rm-hint{font-size:var(--t-2xs);color:var(--text-3);margin-bottom:var(--s2)}
.rm-empty{display:grid;place-items:center;height:130px;color:var(--text-3);font-size:var(--t-xs);background:var(--surface);border-radius:var(--r-sm)}
.rm-legend{display:flex;gap:var(--s4);font-size:var(--t-2xs);color:var(--text-3);margin-top:var(--s2);flex-wrap:wrap}
.rm-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);padding:9px 0;border-bottom:1px solid var(--line)}
.rm-row .k{font-size:var(--t-xs);color:var(--text-2)}
.rm-row .v{font-family:var(--mono);font-size:var(--t-sm);font-weight:500;font-variant-numeric:tabular-nums;text-align:right}

/* ---------- 19. WATCHLIST / ALERTS ------------------------- */
.wl-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);margin:var(--s5) 0 var(--s2)}
.sent{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:var(--r-full);font-size:var(--t-2xs);font-weight:600;letter-spacing:.04em}
.sent.bullish{background:var(--pos-soft);color:var(--pos)}
.sent.bearish{background:var(--neg-soft);color:var(--neg)}
.sent.neutral{background:var(--surface-3);color:var(--text-2)}

/* ---------- 20. NEWS HEADER ROW ------------------------------ */
.nws-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3)}
.nws-head .iconbtn{color:var(--text-3)}
.nws-head .iconbtn .ic{font-size:16px}
#mfRefresh.spin .ic{animation:spin .9s linear infinite}

/* ---------- 21. DOPLNĚNÉ KOMPONENTY (původní názvy JS) ------------------- */
.empty-s b,.mfempty b{display:block;font-weight:500;color:var(--text-2);margin-bottom:4px}
.mfempty,.mferr{text-align:center;padding:var(--s6) var(--s2);font-size:var(--t-sm);color:var(--text-3);line-height:1.5}
.mferr{color:var(--neg)}
.mfempty code,.mferr code{font-family:var(--mono);font-size:var(--t-2xs);color:var(--text-3);
  display:block;margin-top:6px;word-break:break-all}
.report.tg{white-space:normal}
.perr{color:var(--neg);font-size:var(--t-xs);padding:var(--s2) 0}
.rule{height:1px;background:var(--line);margin:var(--s4) 0}
.eline{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);
  padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--t-sm)}
.eline:last-child{border-bottom:0}
.wcrow{padding:11px 0;border-bottom:1px solid var(--line)}
.npref-note{font-size:var(--t-2xs);color:var(--text-3);margin:var(--s2) 0;line-height:1.45}
.rm-chart{margin-top:var(--s3)}
.rm-note{font-size:var(--t-2xs);color:var(--text-3);margin-top:var(--s2)}
.tls{font-size:var(--t-2xs);color:var(--text-3);margin-top:3px;line-height:1.4}
.per{font-family:var(--mono);font-size:var(--t-2xs);color:var(--text-3)}
.src{font-size:var(--t-2xs);color:var(--text-3)}
.wcrow .m{font-size:var(--t-2xs)}

/* notifikační řádek — smazat, kopírat, přechod */
.nnotif-del{flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;
  color:var(--text-3);font-size:12px;border-radius:var(--r-full)}
.nnotif-del:active{background:var(--neg-soft);color:var(--neg)}

/* sentiment */
.sent{border:0}
.recrow-sub{display:flex;align-items:center;gap:6px;font-size:var(--t-2xs);color:var(--text-3);flex-wrap:wrap}
.nnotif-nm{font-size:var(--t-2xs);color:var(--text-3);min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.nnotif-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.nnotif-meta .dot{opacity:.5}
.nnotif-title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nnotif-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nnotif .nnotif-tkr{font-size:var(--t-sm)}
/* Plotly graf — průhwrné pozadí, mřížka jen jemná */
.chartbox .modebar{display:none!important}
#chart .xtick text,#chart .ytick text{font-family:'JetBrains Mono',ui-monospace,monospace}
#chart .gtitle{font-family:'Inter',system-ui,sans-serif!important;font-size:13px!important}

/* ---------- 22. DOTYKOVÉ CÍLE (min. 44px) ----------------------------- */
/* vizuálně malé, ale hmatelná plocha 44px — nemění rozvržení */
.sec-action,.nperm-b,.nperm-x,.nclose,.rm-close,.mfrefresh,.nrow-go,
.del,.nnotif-del,.nnotif-go,.nrow-del,.chip,.nbtn{position:relative}
.sd-back::after,.sd-star::after,.chip::after,.sd-why-row::after,.sd-news::after,
.sd-fcell::after,.sd-perf-i::after{
  content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%);
}
.sd-back::after,.sd-star::after{left:-6px;right:-6px}
.sec-action::after,.nperm-b::after,.nperm-x::after,.nclose::after,
.rm-close::after,.mfrefresh::after,.nnotif-go::after,.del::after,
.nnotif-del::after,.nrow-del::after{
  content:"";position:absolute;left:0;right:0;top:50%;height:44px;
  transform:translateY(-50%);
}
.nperm-b::after,.chip::after,.nbtn::after{left:-4px;right:-4px}
.nclose::after,.rm-close::after,.nperm-x::after{left:-8px;right:-8px}
.del::after,.nnotif-del::after,.nrow-del::after,.nnotif-go::after{top:0;bottom:0;height:auto;left:-6px;right:-6px;transform:none}
/* tenké prvky necháme mít i viditelnou výšku pro čitelnost */
.sec-action{min-height:20px;padding:3px 0}
.chip{min-height:34px}
.nbtn{min-height:32px}

/* ══════════════════════════════════════════════════════════════════
   STOCK DETAIL  (/stock/{TICKER})
   Stejný jazyk jako zbytek appky: section header + data rows + thin
   dividers. Žádné velké karty, žádné barevné bordery.
   ══════════════════════════════════════════════════════════════════ */

/* --- header --- */
.sd-head{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s5) 0 0}
.sd-back{position:relative;width:32px;height:32px;flex:0 0 auto;border-radius:var(--r-full);
  display:grid;place-items:center;color:var(--text-2);font-size:17px;margin-top:2px}
.sd-back:active{background:var(--surface-2)}
.sd-headmain{flex:1 1 auto;min-width:0}
.sd-tkrow{display:flex;align-items:center;gap:8px}
.sd-tk{font-family:var(--mono);font-size:23px;font-weight:600;letter-spacing:-.025em;line-height:1.1}
.sd-star{position:relative;width:32px;height:32px;flex:0 0 auto;border-radius:var(--r-full);
  display:grid;place-items:center;color:var(--text-3);font-size:17px}
.sd-star:active{background:var(--surface-2)}
.sd-star.on{color:var(--warn)}
.sd-nm{font-size:var(--t-sm);color:var(--text-2);margin-top:3px;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sd-session{display:inline-flex;align-items:center;gap:5px;margin-top:7px;
  font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3)}
.sd-session::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.sd-session.open{color:var(--pos)}
.sd-session.pre{color:var(--warn)}
.sd-session.after{color:var(--info)}

/* --- price --- */
.sd-px{display:flex;align-items:baseline;gap:10px;margin:var(--s3) 0 0;flex-wrap:wrap}
.sd-px-v{font-family:var(--mono);font-size:32px;font-weight:600;
  font-variant-numeric:tabular-nums;letter-spacing:-.035em;line-height:1.05}
.sd-px-c{font-family:var(--mono);font-size:var(--t-body);font-weight:500;font-variant-numeric:tabular-nums}
.sd-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px}
.sd-badge{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 9px;
  border-radius:var(--r-full);font-size:var(--t-2xs);font-weight:500;
  background:var(--surface-2);color:var(--text-2);border:1px solid var(--line)}
.sd-badge.inpf{background:var(--pos-soft);color:var(--pos);border-color:transparent}

/* --- chart --- */
.sd-tf{margin:var(--s5) 0 var(--s2);gap:5px}
.sd-chartbox{position:relative;margin:0 -2px}
#sdChart{height:250px;touch-action:pan-y}
#sdVolChart{height:52px;margin-top:2px}
#sdChart .modebar{display:none!important}
.sd-charterr{margin-top:var(--s3);font-size:var(--t-xs);color:var(--neg)}

/* --- výkonnost: horizontální strip --- */
.sd-perf{display:flex;gap:var(--s2);overflow-x:auto;margin:0 calc(-1*var(--gutter));
  padding:2px var(--gutter) 4px;scrollbar-width:none}
.sd-perf::-webkit-scrollbar{display:none}
.sd-perf-i{position:relative;flex:0 0 auto;min-width:74px;padding:8px 10px;border-radius:var(--r-sm);
  background:var(--surface);border:1px solid var(--line);text-align:center}
.sd-perf-i b{display:block;font-family:var(--mono);font-size:var(--t-sm);font-weight:500;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.sd-perf-i span{display:block;font-size:10px;color:var(--text-3);margin-bottom:2px;
  font-weight:600;letter-spacing:.05em}

/* --- why is it moving --- */
.sd-why-row{position:relative;display:flex;align-items:flex-start;gap:10px;padding:11px 0;
  border-bottom:1px solid var(--line)}
.sd-why-row:last-child{border-bottom:0}
.sd-why-ic{flex:0 0 auto;font-size:15px;width:20px;text-align:center}
.sd-why-m{flex:1 1 auto;min-width:0}
.sd-why-t{font-size:var(--t-sm);line-height:1.4;font-weight:500}
.sd-why-s{font-size:var(--t-2xs);color:var(--text-3);margin-top:3px;
  display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sd-lv{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.sd-lv.HIGH{color:var(--neg)} .sd-lv.MEDIUM{color:var(--warn)} .sd-lv.LOW{color:var(--text-3)}
.sd-none{font-size:var(--t-sm);color:var(--text-3);line-height:1.5;padding:var(--s2) 0}

/* --- obecné data rows --- */
.sd-rows{display:flex;flex-direction:column}
.sd-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);
  padding:9px 0;border-bottom:1px solid var(--line);min-height:32px}
.sd-row:last-child{border-bottom:0}
.sd-row-k{font-size:var(--t-xs);color:var(--text-2);flex:0 0 auto;min-width:0}
.sd-row-v{font-family:var(--mono);font-size:var(--t-sm);font-weight:500;
  font-variant-numeric:tabular-nums;text-align:right;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sd-row-v a{color:var(--accent)}
.sd-row-sub{font-size:var(--t-2xs);color:var(--text-3);text-align:right;flex:0 0 auto}
.sd-row-col{flex:1 1 auto;min-width:0}
.sd-row-note{font-size:var(--t-2xs);color:var(--text-3);line-height:1.4;margin-top:2px}
.sd-est{display:inline-flex;align-items:center;height:18px;padding:0 7px;margin-left:6px;
  border-radius:var(--r-xs);background:var(--warn-soft);color:var(--warn);
  font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}

/* --- news (compact) --- */
.sd-news{display:block;position:relative;width:100%;text-align:left;padding:11px 0;
  border-bottom:1px solid var(--line);position:relative;padding-left:13px}
.sd-news::before{content:"";position:absolute;left:0;top:12px;bottom:13px;width:2px;
  border-radius:0 2px 2px 0;background:var(--lv-low);opacity:.5}
.sd-news.lv-HIGH::before{background:var(--lv-high);opacity:1}
.sd-news.lv-MEDIUM::before{background:var(--lv-med);opacity:.85}
.sd-news:active{background:var(--surface)}
.sd-news-h{display:flex;align-items:center;gap:6px;margin-bottom:3px;flex-wrap:wrap}
.sd-news-t{font-size:var(--t-sm);font-weight:500;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sd-news-m{display:flex;align-items:center;gap:6px;margin-top:4px;
  font-size:10.5px;color:var(--text-3)}

/* --- fundamentals (grid) --- */
.sd-fund{display:flex;flex-direction:column}
.sd-fund-g{display:grid;grid-template-columns:repeat(2,1fr);gap:0 var(--s4)}
.sd-fcell{position:relative;padding:9px 0;border-bottom:1px solid var(--line);min-width:0}
.sd-fcell .k{font-size:var(--t-2xs);color:var(--text-3);display:block;margin-bottom:2px}
.sd-fcell .v{font-family:var(--mono);font-size:var(--t-body);font-weight:500;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.sd-fcell .p{font-size:10.5px;color:var(--text-3);margin-top:1px}
.sd-fcell .g{font-family:var(--mono);font-size:10.5px;margin-top:1px}

/* --- position --- */
.sd-pos{display:flex;flex-direction:column}
.sd-pos-top{display:flex;align-items:baseline;justify-content:space-between;
  gap:var(--s3);padding:var(--s2) 0 var(--s3);border-bottom:1px solid var(--line)}
.sd-pos-sh{font-family:var(--mono);font-size:var(--t-h1);font-weight:600;letter-spacing:-.025em}
.sd-pos-pl{font-family:var(--mono);font-size:var(--t-body);font-weight:500;text-align:right}
.sd-pos-pl .p{display:block;font-size:var(--t-2xs)}

/* --- AI --- */
.sd-ai-tag{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  color:var(--info);background:var(--surface-2);padding:2px 7px;border-radius:var(--r-xs)}
.sd-ai ul{display:flex;flex-direction:column;gap:7px}
.sd-ai li{position:relative;padding-left:14px;font-size:var(--t-sm);line-height:1.5;color:var(--text-2)}
.sd-ai li::before{content:"";position:absolute;left:2px;top:8px;width:4px;height:4px;
  border-radius:50%;background:var(--text-3)}
.sd-ai .sd-none{padding:var(--s3) 0}

/* --- sources --- */
.sd-sources .sd-row-v{font-family:var(--font);font-size:var(--t-xs);font-weight:400;color:var(--text-2)}
.sd-sources .sd-row-k{color:var(--text-3)}

/* hodnota a period pod ní — jinak se "153,707,809Q2 2026" slejí */
.sd-fcell .v{display:block}
.sd-fcell .p{display:block}
.sd-row-col{display:flex;flex-direction:column;gap:1px;min-width:0}

/* ══════════════════════════════════════════════════════════════════
   🌅 DAILY BRIEF
   Není to karta. Sekční hlavička, tenké oddělovače, hodně vzduchu.
   ══════════════════════════════════════════════════════════════════ */
.db{position:relative;margin:var(--s6) 0 0;padding-top:var(--s4);border-top:1px solid var(--line)}
.db-h{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
.db-h-l{display:flex;align-items:center;gap:7px;min-width:0}
.db-ico{font-size:14px;line-height:1}
.db-t{font-size:var(--t-2xs);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}
.db-sess{font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  color:var(--text-3);white-space:nowrap;flex:0 0 auto}
.db-sess.pre{color:var(--warn)}
.db-sess.open{color:var(--pos)}
.db-sess.after{color:var(--info)}
.db-greet{margin-top:9px;font-size:19px;font-weight:600;letter-spacing:-.02em;line-height:1.2}
.db-sub{font-size:var(--t-xs);color:var(--text-3);margin-top:3px}

/* položka briefu */
.db-item{
  display:block;width:100%;text-align:left;position:relative;
  padding:13px 0 14px 15px;border-bottom:1px solid var(--line);
}
.db-item::before{content:"";position:absolute;left:0;top:14px;bottom:15px;width:2px;
  border-radius:0 2px 2px 0;background:var(--lv-low);opacity:.45}
.db-item.imp-HIGH::before{background:var(--lv-high);opacity:1}
.db-item.imp-MEDIUM::before{background:var(--lv-med);opacity:.85}
.db-item:active{background:var(--surface)}
.db-item-h{display:flex;align-items:center;gap:6px;margin-bottom:4px;flex-wrap:wrap}
.db-ic{font-size:13px;line-height:1;flex:0 0 auto}
.db-tk{font-family:var(--mono);font-size:var(--t-xs);font-weight:600;letter-spacing:-.01em}
.db-cat{font-size:9.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3)}
.db-imp{font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.db-imp.HIGH{color:var(--lv-high)}
.db-imp.MEDIUM{color:var(--lv-med)}
.db-imp.LOW{color:var(--text-3)}
.db-head{display:block;font-size:var(--t-sm);font-weight:550;line-height:1.4;letter-spacing:-.006em}
.db-sum{display:-webkit-box;font-size:var(--t-xs);line-height:1.5;color:var(--text-2);
  margin-top:3px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.db-why{display:-webkit-box;font-size:var(--t-2xs);line-height:1.45;color:var(--text-3);
  margin-top:4px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.db-meta{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:10.5px;flex-wrap:wrap;
  color:var(--text-3);}
.db-meta .dot{width:2px;height:2px;border-radius:50%;background:currentColor;opacity:.55}
.db-src{color:var(--accent)}
.db-sk{padding:12px 0;border-bottom:1px solid var(--line)}
.db-empty{font-size:var(--t-sm);color:var(--text-2);line-height:1.5;padding:var(--s2) 0 var(--s3)}
.db-empty b{display:block;font-weight:500;color:var(--text);margin-bottom:3px;font-size:var(--t-body)}
.db-all{
  display:flex;align-items:center;justify-content:center;gap:4px;width:100%;
  min-height:44px;margin-top:2px;font-size:var(--t-xs);font-weight:500;color:var(--accent);
}
.db-all .ic{font-size:13px}
.db-all:active{background:var(--surface)}

/* full page */
.db-list-full{margin-top:var(--s3)}
.dbf-filters{display:flex;gap:5px;overflow-x:auto;margin:var(--s4) 0 0;padding-bottom:2px;
  scrollbar-width:none}
.dbf-filters::-webkit-scrollbar{display:none}

/* notifikační banner v chybovém stavu — místo skrytí vysvětlení */
.nperm.dbad{background:linear-gradient(135deg,rgba(245,181,68,.10),transparent)}
.nperm.dbad .nperm-t strong{color:var(--warn)}
.nperm.dbad .nperm-b{background:var(--warn);color:#241a05}

/* "See all" / "Show less" — šipka se otočí, ať je stav jasný */
#mfSeeAll .ic{transition:transform .22s var(--ease)}
#mfSeeAll.collapsed .ic{transform:rotate(-90deg)}

/* ── filtry času + řazení v Important News ───────────────────────── */
.mftools{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);
  margin-bottom:var(--s2)}
.mff-sm{padding:1px}
.mff-sm .mff{height:24px;padding:0 9px;font-size:10px}
.mfsort{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;
  border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--line);
  color:var(--text-2);font-size:10.5px;font-weight:500;white-space:nowrap;min-height:26px;
  position:relative;
}
.mfsort .ic{font-size:12px}
.mfsort:active{background:var(--surface-3)}
.mfsort::after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
.mfsort[data-sort="time"]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}
.mfsort[data-sort="time"] .ic{transform:rotate(90deg)}
.mfsort .ic{transition:transform .2s var(--ease)}
@media (max-width:360px){
  .mftools{flex-direction:column;align-items:stretch}
  .mfsort{justify-content:center;min-height:34px}
}

/* ── zisk / ztráta ────────────────────────────────────────────────
   Jediná definice pro celou aplikaci. JS generuje `pnl-up`/`pnl-down`
   (portfolio, hlavička, P/L strip, records); radar zase `up`/`dn`.
   Oba systémy tedy musí být obarvené, jinak čísla zůstanou bílá. */
.pnl-up,.up{color:var(--pos)}
.pnl-down,.dn{color:var(--neg)}

/* ══════════════════════════════════════════════════════════════════
   🚨 MARKET RADAR
   Stejný jazyk jako zbytek: section header, tenké dividery, žádné
   velké karty. Signály jednoho tickeru jsou JEDEN řádek, ne čtyři alerty.
   ══════════════════════════════════════════════════════════════════ */
.rd-sub{font-size:var(--t-sm);color:var(--text-2);margin-bottom:var(--s3)}
.rd-filters{display:flex;gap:5px;margin-bottom:var(--s3)}
.rd-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-size:10.5px;color:var(--text-3);margin-bottom:var(--s4)}

/* --- event --- */
.rd-card{
  display:block;width:100%;text-align:left;position:relative;
  padding:14px 0 15px 15px;border-bottom:1px solid var(--line);
}
/* animace jen u nově přidané karty — na elementu se přehrávala každých
   60 s i bez jakékoli změny dat */
.rd-card[data-new]{animation:rdin .34s var(--ease) both}
@keyframes rdin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.rd-card::before{content:"";position:absolute;left:0;top:15px;bottom:16px;width:2px;
  border-radius:0 2px 2px 0;background:var(--lv-med);opacity:.7}
.rd-card.imp-HIGH::before{background:var(--lv-high);opacity:1}
.rd-card:active{background:var(--surface)}
.rd-top{display:flex;align-items:center;gap:7px;margin-bottom:4px;flex-wrap:wrap}
.rd-ic{font-size:13px;line-height:1;flex:0 0 auto}
.rd-tk{font-family:var(--mono);font-size:var(--t-sm);font-weight:600;letter-spacing:-.01em}
.rd-badge{font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  padding:1px 6px;border-radius:var(--r-xs);background:var(--surface-2);color:var(--text-3)}
.rd-card.imp-HIGH .rd-badge{background:var(--neg-soft);color:var(--neg)}
.rd-new{font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--accent);
  background:var(--accent-soft);padding:1px 5px;border-radius:var(--r-xs)}
.rd-state{font-size:9px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.rd-state.ACTIVE{color:var(--pos)}
.rd-state.RESOLVED{color:var(--text-3)}
.rd-head{font-size:var(--t-sm);font-weight:550;line-height:1.4;letter-spacing:-.006em}

/* metriky: pohyb + objem vedle sebe, ne v plné šířce */
.rd-metrics{display:flex;gap:var(--s5);margin-top:8px;flex-wrap:wrap}
.rd-m{display:flex;flex-direction:column;gap:1px}
.rd-m .k{font-size:10px;color:var(--text-3)}
.rd-m .v{font-family:var(--mono);font-size:var(--t-body);font-weight:500;
  font-variant-numeric:tabular-nums;letter-spacing:-.015em}
.rd-m .v.up{color:var(--pos)} .rd-m .v.dn{color:var(--neg)}

/* signály — krátké řádky, ne samostatné alerty */
.rd-sigs{display:flex;flex-direction:column;gap:4px;margin-top:9px}
.rd-sig{display:flex;align-items:flex-start;gap:7px;font-size:var(--t-2xs);
  line-height:1.45;color:var(--text-2)}
.rd-sig .ic-s{font-size:11px;flex:0 0 auto;line-height:1.45}
.rd-sig .txt{min-width:0;flex:1 1 auto}
.rd-sig .k{color:var(--text-3)}
.rd-sig-lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--text-3)}
.rd-why{font-size:var(--t-2xs);color:var(--text-3);margin-top:7px;line-height:1.45}
.rd-foot{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:10.5px;
  color:var(--text-3);flex-wrap:wrap}
.rd-foot .dot{width:2px;height:2px;border-radius:50%;background:currentColor;opacity:.55}
.rd-more{color:var(--accent);font-weight:500}
.rd-sk{padding:13px 0 15px 15px;border-bottom:1px solid var(--line)}

.rd-empty{text-align:left;padding:var(--s4) 0 var(--s5);border-bottom:1px solid var(--line)}
.rd-empty b{display:block;font-size:var(--t-body);font-weight:500;color:var(--text);
  margin-bottom:3px}
.rd-empty span{font-size:var(--t-xs);color:var(--text-2);line-height:1.5;display:block}

/* market context */
.rd-ctx{display:flex;flex-direction:column}
.rd-crow{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);
  padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--t-xs)}
.rd-crow:last-child{border-bottom:0}
.rd-crow .k{color:var(--text-2);font-family:var(--mono);font-size:var(--t-2xs)}
.rd-crow .v{font-family:var(--mono);font-size:var(--t-xs);font-variant-numeric:tabular-nums}
.rd-crow.self{background:rgba(43,150,224,.07);border-radius:var(--r-xs);
  padding-left:8px;padding-right:8px}

/* radar detail sheet */
.rdd-h{display:flex;align-items:center;gap:8px;padding:0 var(--gutter) 4px;flex:0 0 auto}
.rdd-tk{font-family:var(--mono);font-size:var(--t-h1);font-weight:600;letter-spacing:-.02em}
.rdd-close{margin-left:auto}
.rdd-body{flex:1 1 auto;overflow-y:auto;padding:0 var(--gutter) var(--s5);
  -webkit-overflow-scrolling:touch}
.rdd-sec{margin-top:var(--s5)}
.rdd-sec h4{font-size:var(--t-2xs);font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--text-3);margin-bottom:var(--s2)}
.rdd-px{display:flex;align-items:baseline;gap:9px;padding-bottom:var(--s3)}
.rdd-px .v{font-family:var(--mono);font-size:30px;font-weight:600;
  font-variant-numeric:tabular-nums;letter-spacing:-.035em;line-height:1.05}
.rdd-px .c{font-family:var(--mono);font-size:var(--t-body);font-weight:500}
.rdd-tl{padding-left:4px}
.rdd-tl li{position:relative;padding:0 0 12px 16px;border-left:1px solid var(--line);list-style:none}
.rdd-tl li:last-child{border-left-color:transparent;padding-bottom:0}
.rdd-tl li::before{content:"";position:absolute;left:-3px;top:5px;width:5px;height:5px;
  border-radius:50%;background:var(--text-3)}
.rdd-tl .t{font-family:var(--mono);font-size:10.5px;color:var(--text-3);margin-bottom:2px}
.rdd-tl .x{font-size:var(--t-xs);line-height:1.45;color:var(--text-2)}
.rdd-note{font-size:var(--t-2xs);color:var(--text-3);line-height:1.55;margin-top:var(--s3);
  padding:var(--s3);background:var(--surface);border-radius:var(--r-sm)}
.rd-scope{font-size:9px;font-weight:600;letter-spacing:.07em;color:var(--text-3);
  margin-left:auto;padding-left:8px;white-space:nowrap}
.rdd-m{display:flex;flex-direction:column;gap:1px}
.rdd-m .k{font-size:10px;color:var(--text-3)}
.rdd-m .v{font-family:var(--mono);font-size:var(--t-sm);font-weight:500;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.rdd-metrics{display:flex;gap:var(--s5);flex-wrap:wrap}
#rdCtxSec[hidden]{display:none}

/* ══════════════════════════════════════════════════════════════════
   🔒 PŘIHLÁŠENÍ
   Server běží veřejně (tunel), takže bez hesla si kdokoli přečte
   portfolio. Obrazovka je součástí appky, ne samostatná stránka —
   service worker si tak do cache uloží jen shell, ne login.
   ══════════════════════════════════════════════════════════════════ */
#authGate{position:fixed;inset:0;z-index:200;display:flex;align-items:center;
  justify-content:center;padding:var(--gutter);
  background:radial-gradient(120% 80% at 50% 0%,#0e1420 0%,var(--bg) 62%)}
#authGate[hidden]{display:none}
#authForm{width:100%;max-width:340px}
.auth-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}
.auth-mark{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;
  background:linear-gradient(145deg,var(--accent),#2b4fd4);color:#fff;
  font-family:var(--mono);font-size:20px;font-weight:700;margin-bottom:4px}
.auth-card h1{font-size:var(--t-h2);font-weight:600;letter-spacing:-.02em}
.auth-sub{font-size:var(--t-xs);color:var(--text-2);line-height:1.5;margin-bottom:var(--s3)}
#authPw{width:100%;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:12px 14px;color:var(--text);
  font-family:var(--mono);font-size:15px;text-align:center;letter-spacing:.08em}
#authPw:focus{outline:none;border-color:var(--accent)}
#authGo{width:100%;margin-top:var(--s2)}
.auth-err{font-size:var(--t-xs);color:var(--neg);min-height:1.2em}
.auth-err[hidden]{display:none}

/* vyřešené eventy — „co se stalo, když jste nebyli" */
.rd-hist{padding:12px 0 14px 15px;border-bottom:1px solid var(--line);position:relative}
.rd-hist::before{content:"";position:absolute;left:0;top:13px;bottom:15px;width:2px;
  border-radius:0 2px 2px 0;background:var(--text-3);opacity:.35}
.rd-hist-t{display:flex;align-items:center;gap:7px;margin-bottom:4px;flex-wrap:wrap}
#rdHistSec[hidden]{display:none}

/* offline banner — data z minulosti, ale jasně označená */
#offlineBar{display:flex;align-items:center;gap:8px;padding:9px var(--gutter);
  background:var(--warn-soft);border-bottom:1px solid var(--line);
  font-size:var(--t-2xs);color:var(--text-2);line-height:1.4}
#offlineBar[hidden]{display:none}
#offlineBar .ic{flex:0 0 auto;color:var(--warn);font-size:14px}
#offlineBar span{flex:1 1 auto;min-width:0}
#offlineBar b{color:var(--text);font-family:var(--mono);font-weight:500}
#offRetry{flex:0 0 auto;background:var(--surface-2);border:1px solid var(--line);
  border-radius:var(--r-xs);padding:4px 9px;font-size:10.5px;color:var(--text-2)}
#offRetry:active{background:var(--surface-3)}

/* offline banner — musí říct CO selhalo, ne jen "offline" */
#offlineBar span{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}
#offlineBar #offTitle{font-weight:600;color:var(--text);font-size:var(--t-2xs)}
.off-why{font-size:var(--t-2xs);color:var(--warn);line-height:1.4}
.off-when{font-size:10px;color:var(--text-3)}
.off-when[hidden]{display:none}

/* =============================================================
   20. EDITORIAL LAYER
   Papír, vlasové linky, zelený kicker, modré dáta. Toto je vizuálny
   jazyk celé appky — přepisuje tmavý „premium fintech" původní
   návrh, ale NEMÁŽE layout (grid/flex/spacing zůstává).
   ============================================================= */

html,body{background:var(--bg)}
body{color:var(--text);-webkit-font-smoothing:antialiased}
::selection{background:var(--accent-soft);color:var(--text)}

/* ---------- 20.1 STICKY CHROME — papír místo skla ---------- */
.topbar{
  background:rgba(246,245,242,.88);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(14px) saturate(150%);
  -webkit-backdrop-filter:blur(14px) saturate(150%);
}
.brand-mark{background:var(--ink);border-radius:var(--r-xs);color:#fff}
.brand-name{font-weight:750;letter-spacing:-.022em}
.brand-sub{letter-spacing:.02em}
.tabbar{
  background:rgba(246,245,242,.94);
  border-top:1px solid var(--line);
  box-shadow:none;
}
.tabbar button{color:var(--text-3);font-weight:550}
.tabbar button.on{color:var(--text)}
.tabbar button.on .ic{color:var(--kicker)}

/* ---------- 20.2 KICKER — zelený editoriální label ---------- */
.sec{
  color:var(--kicker);
  font-size:11px;font-weight:750;letter-spacing:.17em;
  padding-bottom:var(--s2);
  border-bottom:1px solid var(--line);
  margin-bottom:var(--s4);
}
.sec:first-child{margin-top:var(--s6)}
.sec .hint{color:var(--text-3);letter-spacing:.04em;font-weight:500}
.sec-action{color:var(--data);font-weight:650;letter-spacing:.01em}

/* ---------- 20.3 DISPLAY — veľké, tučné, tesné ---------- */
.p-h1{
  font-size:var(--t-h1);font-weight:800;letter-spacing:-.032em;
  line-height:1.04;text-transform:uppercase;
}
.rectitle{color:var(--text-2);font-size:var(--t-body)}
.note{color:var(--text-3)}

.masthead{margin-top:var(--s5);gap:var(--s2)}
.masthead .tkr{
  font-family:var(--font);font-size:var(--t-display);font-weight:800;
  letter-spacing:-.038em;line-height:.94;text-transform:uppercase;
}
.masthead .px{
  font-family:var(--font);font-size:22px;font-weight:750;
  font-variant-numeric:tabular-nums;letter-spacing:-.03em;
}
.masthead .tf{
  color:var(--text-3);font-size:10.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
}

/* ---------- 20.4 ČÍSLA — veľká, tučná, tabular ---------- */
.mitem{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  min-width:118px;padding:13px 15px;gap:6px;
}
.mitem-t{
  font-family:var(--font);font-size:10px;font-weight:750;
  letter-spacing:.15em;text-transform:uppercase;color:var(--text-3);
}
.mitem-p{
  font-family:var(--font);font-size:20px;font-weight:800;
  letter-spacing:-.035em;font-variant-numeric:tabular-nums;
}
.mitem-c{font-family:var(--font);font-size:12px;font-weight:750;letter-spacing:-.01em}

.stat{padding:var(--s3) 0}
.stat .k{
  font-size:10px;font-weight:750;letter-spacing:.14em;
  text-transform:uppercase;color:var(--text-3);
}
.stat .v{
  font-family:var(--font);font-size:17px;font-weight:800;
  font-variant-numeric:tabular-nums;letter-spacing:-.028em;
}

.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:var(--s4);gap:5px;
}
.card .k{
  font-size:10px;font-weight:750;letter-spacing:.15em;
  text-transform:uppercase;color:var(--text-3);
}
.card .v{
  font-family:var(--font);font-size:27px;font-weight:800;
  font-variant-numeric:tabular-nums;letter-spacing:-.038em;
}
.card .sub{font-size:var(--t-xs);color:var(--text-2)}

/* ---------- 20.5 CHIPY A TLAČIDLÁ ---------- */
.chip{
  background:var(--surface);border:1px solid var(--line-strong);
  color:var(--text-2);font-weight:600;border-radius:var(--r-full);
}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}

.btn{
  background:var(--ink);color:#fff;font-weight:700;
  border-radius:var(--r-sm);letter-spacing:.005em;
}
.btn.ghost{
  background:transparent;color:var(--text);border:1px solid var(--line-strong);
}
.btn.danger{background:var(--neg-soft);color:var(--neg)}
.btn.is-loading::after{border-color:rgba(255,255,255,.34);border-top-color:#fff}

/* ---------- 20.6 RIADKY — linka namiesto plochy ---------- */
.list,.nws,.stats{padding-top:2px}
.list>.row,.nrow,.wrow,.prow,.appcard{
  background:transparent;border-color:var(--line);
}
.list>.row,.wrow,.prow,.appcard{padding:var(--s4) 0}
.row>.body>b{font-weight:650;letter-spacing:-.012em}
.row .meta{color:var(--text-3);font-size:var(--t-xs)}
.tag{
  font-size:9.5px;font-weight:750;letter-spacing:.13em;text-transform:uppercase;
  border-radius:var(--r-full);padding:3px 9px;
}

.nrow-tk{
  font-family:var(--font);font-size:13px;font-weight:800;letter-spacing:-.02em;
}
.nrow-lv{
  font-size:9.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  border-radius:var(--r-full);padding:3px 9px;
}
.nrow-t{font-weight:600;letter-spacing:-.012em;line-height:1.34}
.nrow-s{color:var(--text-3);line-height:1.45}
.nrow.fresh{background:var(--pos-soft)}

/* ---------- 20.7 NOVINKY (intel) ---------- */
.nnotif{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:none;
}
.ibadge{
  font-size:9.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  border-radius:var(--r-full);padding:3px 10px;
}
.nsec-h{
  color:var(--kicker);font-size:10px;font-weight:750;
  letter-spacing:.16em;text-transform:uppercase;
}
.nwhy .nkk{
  color:var(--kicker);font-size:9.5px;font-weight:750;
  letter-spacing:.14em;text-transform:uppercase;
}
.ntitle{font-weight:650;letter-spacing:-.014em;line-height:1.32}
.nsum{color:var(--text-2);line-height:1.5}

/* ---------- 20.8 BLOKY A AKÉDIOVÉ OBJEKTY ---------- */
.report,.psec,.nsheet-card,.more-card,.nperm,.recmodal-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
}
.psec>summary .n,.psec>summary .nm{font-weight:650;letter-spacing:-.012em}
.tl li::before,.tl-body li::before{width:7px;height:7px}
.skel{background:var(--surface-3);border-radius:var(--r-xs)}

.search,.searchrow input{
  background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);
}

/* ---------- 20.9 RESPONSÍVNE — bez horizontálneho scrollu ---------- */
@media (max-width:380px){
  .masthead .tkr{font-size:28px}
  .card .v{font-size:24px}
  .mitem{min-width:106px}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* nperm podnadpis nesmí přetékat (nowrap) — na 320px se krátil text */
.nperm-t span{white-space:normal;overflow-wrap:anywhere}

/* =============================================================
   21. BEGINNER POLISH
   Člověk, který appku nezná, musí trefit prstem a pochopit, kde je.
   ============================================================= */

/* dotykové cíle — min. 44 px (Apple HIG), nikdy méně pro řádek/kartu */
.row,.appcard,.wrow,.prow,.list>.row{min-height:52px}
.appcard{padding:var(--s4) 0;min-height:56px}
.btn{min-height:46px}
.chip{min-height:38px}
.mitem{min-height:76px}
.tabbar button{min-height:52px}

/* čitelnost — delší řádky, větší mezery, méně „hustých" odstavců */
body{line-height:1.5}
.row>.body>b{font-size:15px;line-height:1.38}
.row .meta{line-height:1.45}
.nrow-t{font-size:15px;line-height:1.38}
.nsum,.report{line-height:1.58}

/* hierarchie — nadpis sekce je landmark, ne dekorace */
.sec{font-size:11.5px;margin-top:var(--s7)}

/* zřetelný fokus — klávesnice iVoiceOver, ne jen :hover */
:focus-visible{outline:2px solid var(--data);outline-offset:2px;border-radius:var(--r-xs)}

/* číselné hodnoty nikdy nesmí být jen „někde vpravo" */
.mitem-p,.card .v,.stat .v{letter-spacing:-.03em}

/* prázdné stavy — srozumitelné, ne „Nic" */
.empty-s,.status .big{color:var(--text-2);font-size:15px;line-height:1.5}

/* upozornění (důležitost) musí být vidět i barvosleposti */
.nrow-lv,.ibadge{border:1px solid currentColor}
.nrow.lv-HIGH .nrow-lv{background:var(--lv-high);color:#fff;border-color:transparent}
.nrow.lv-MEDIUM .nrow-lv{background:var(--lv-med);color:#fff;border-color:transparent}

/* bezpečná zóna dole pro palec */
.tabbar button{padding-bottom:calc(env(safe-area-inset-bottom) + 2px)}

/* vysvětlující řádek pod nadpisem — začínající musí vědět, co kouká */
.p-lede{
  font-size:var(--t-body);line-height:1.5;color:var(--text-2);
  margin:calc(-1*var(--s2)) 0 var(--s5);max-width:46ch;
}
@media (max-width:360px){.p-lede{font-size:var(--t-sm)}}

/* sentiment + shrnutí u podání a zpráv (nikdy anglicky) */
.sd-cls{
  font-size:9.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  padding:3px 9px;border-radius:var(--r-full);
}
.sd-cls.pos{background:var(--pos-soft);color:var(--pos)}
.sd-cls.neu{background:rgba(140,140,150,.12);color:var(--text-2)}
.sd-cls.neg{background:var(--neg-soft);color:var(--neg)}
.sd-digest{
  display:block;font-size:13.5px;line-height:1.5;color:var(--text-2);
  margin-top:5px;
}
.sd-also-w{
  display:flex;align-items:center;gap:6px;margin-top:6px;
  font-size:11px;color:var(--text-3);
}
.sd-also{
  color:var(--data);border-bottom:1px solid var(--accent-line);
  padding-bottom:1px;
}

/* radar když je klid — musí říct, že BĚŽEL a co prohlédl */
.rd-quiet{
  display:flex;flex-direction:column;gap:4px;
  padding:var(--s4) 0;
}
.rd-quiet b{font-size:15px;font-weight:650;letter-spacing:-.015em}
.rd-quiet span{font-size:13px;line-height:1.5;color:var(--text-2)}
.rd-quiet .rd-quiet-when{font-size:11.5px;color:var(--text-3)}

/* ═══ DIAGNOSTIKA ═══ */
.diag-card{
  display:flex;flex-direction:column;gap:3px;
  padding:var(--s3) 0;border-bottom:1px solid var(--line);
}
.diag-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.diag-row b{font-size:14px;font-weight:600;letter-spacing:-.01em}
.diag-card>span{font-size:12.5px;line-height:1.45;color:var(--text-2)}
.diag-ms{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}
.diag-tag{
  flex:none;font-size:10.5px;font-weight:650;letter-spacing:.02em;
  padding:3px 7px;border-radius:var(--r-full);
  background:var(--surface-2);color:var(--text-2);
}
.diag-ok   .diag-tag{background:var(--pos-soft);color:var(--pos)}
.diag-warn .diag-tag{background:var(--warn-soft);color:var(--warn)}
.diag-bad  .diag-tag{background:var(--neg-soft);color:var(--neg)}
.diag-bad{border-left:2px solid var(--neg);padding-left:10px}

/* ═══ SHRNUTÍ PORTFOLIA ═══ */
.psummary{
  margin:10px 0 2px;font-size:12.5px;line-height:1.5;color:var(--text-2);
}
.psummary b{font-weight:650;color:var(--text);font-variant-numeric:tabular-nums}

/* ═══ SLOVNÍK ═══ */
/* display:flex by beztohle přebil atribut [hidden] — panel by byl vidět pořád */
#slovnik[hidden]{display:none}
#slovnik{
  position:fixed;inset:auto 0 0 0;z-index:90;
  max-height:78vh;display:flex;flex-direction:column;
  background:var(--surface);border-top:1px solid var(--line);
  box-shadow:var(--shadow-sheet);
  padding-bottom:env(safe-area-inset-bottom);
}
.sl-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:var(--s4) var(--s4) var(--s3);border-bottom:1px solid var(--line);
  position:sticky;top:0;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;
}
.sl-head h3{margin:0;font-size:16px;font-weight:650;letter-spacing:-.02em}
.sl-x{
  border:0;background:var(--surface-2);color:var(--text-2);cursor:pointer;
  width:28px;height:28px;border-radius:var(--r-full);font-size:13px;line-height:1;
}
.sl-body{overflow-y:auto;padding:0 var(--s4) var(--s4);-webkit-overflow-scrolling:touch}
.sl-q,.sl-back{
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 10px;
  width:100%;text-align:left;background:none;border:0;cursor:pointer;
  padding:var(--s3) 0;border-bottom:1px solid var(--line);color:inherit;
}
.sl-q span{grid-column:1;font-size:12.5px;line-height:1.45;color:var(--text-2)}
.sl-q .ic{grid-column:2;grid-row:1/3;color:var(--text-3);font-size:14px}
.sl-q:active{background:var(--surface-2)}
.sl-main{display:block;padding:var(--s3) 0}
.sl-main b{display:block;font-size:15px;font-weight:650;margin-bottom:4px}
.sl-main span{font-size:13.5px;line-height:1.55;color:var(--text-2)}
.sl-back{
  grid-template-columns:1fr;font-size:12.5px;color:var(--text-3);
  padding:var(--s3) 0;font-weight:600;
}

/* ═══ ZPRÁVY V DETAILU RADARU ═══ */
.rdd-news{
  padding:var(--s3) 0;border-bottom:1px solid var(--line);
}
.rdd-news:last-of-type{border-bottom:0}
.rdd-news .t{
  font-size:13.5px;line-height:1.45;font-weight:600;color:var(--text);
}
.rdd-news .w{
  margin-top:5px;font-size:12.5px;line-height:1.5;color:var(--text-2);
  padding-left:9px;border-left:2px solid var(--line-accent);
}
.rdd-news .m{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px;
  font-size:11px;color:var(--text-3);
}
.rdd-news .m a{color:var(--accent);text-decoration:none;font-weight:600}
.rdd-news .lv{padding:2px 6px;border-radius:var(--r-full);font-weight:650}
.rdd-news .lv.high{background:var(--neg-soft);color:var(--neg)}
.rdd-news .lv.medium{background:var(--warn-soft);color:var(--warn)}

/* ═══ AI RANNÍ SOUHRN ═══ */
.db-ai{
  margin:10px 0 2px;padding:11px 13px;
  background:var(--surface-2);border:1px solid var(--line);
  border-left:2px solid var(--accent-line);border-radius:var(--r-sm);
}
.db-ai[hidden]{display:none}
.db-ai-tag{
  display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--accent);margin-bottom:5px;
}
.db-ai-t{
  margin:0;font-size:13.5px;line-height:1.55;color:var(--text);
}
.db-ai-n{
  margin:7px 0 0;font-size:10.5px;line-height:1.4;color:var(--text-3);
}

/* ═══ AI VYSVĚTLENÍ „PROČ SE TO HÝBE" ═══ */
.sd-why-ai{
  padding:11px 12px;margin:0 0 12px;
  background:var(--surface-2);border:1px solid var(--line);
  border-left:2px solid var(--accent-line);border-radius:var(--r-sm);
}
.sd-why-ai p{
  margin:0;font-size:13.5px;line-height:1.55;color:var(--text);
}
.sd-why-ai p.n{
  margin:7px 0 0;font-size:10.5px;line-height:1.4;color:var(--text-3);
}
