:root{
  --bg:#06131d;--bg2:#071924;--panel:#0b1d29;--panel2:#0c2230;--line:#1b3545;--muted:#8ca0ad;--text:#f3f7f9;--cyan:#0fa8e8;--cyan2:#28bcff;--green:#29d66f;--red:#ff4b59;--amber:#ffad26;--purple:#8b68d8;--finora-sidebar-width:232px;--calendar-date-column:50px;--calendar-native-column:76px;--calendar-czk-column:84px;--calendar-countdown-column:80px;--calendar-type-column:116px;--calendar-event-columns:var(--calendar-date-column) minmax(0,1fr) var(--calendar-native-column) var(--calendar-czk-column) var(--calendar-countdown-column) var(--calendar-type-column);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 75% 0,#0a2230 0,#06131d 30%,#041019 75%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,select,textarea,input{font:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--finora-sidebar-width);position:fixed;inset:0 auto 0 0;background:linear-gradient(180deg,#06131d,#061722);border-right:1px solid var(--line);padding:17px 11px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;height:48px;padding:0 12px 12px}.brand-mark{width:31px;height:31px;border-radius:9px 9px 14px 14px;background:linear-gradient(140deg,#20c6ff,#0875d6);display:grid;place-items:center;font-weight:900;font-size:20px;transform:skew(-5deg);box-shadow:0 8px 26px #0aa6e744}.brand-word{font-weight:800;font-size:20px;letter-spacing:-.4px}.nav{display:flex;flex-direction:column;gap:8px;margin-top:8px}.nav-item{border:1px solid transparent;background:transparent;color:#aebac2;height:43px;border-radius:5px;display:flex;align-items:center;gap:15px;padding:0 14px;cursor:pointer;text-align:left}.nav-item span{width:18px;text-align:center;font-size:19px;color:#d9e3e8}.nav-item b{font-size:13px;font-weight:500}.nav-item:hover{background:#0b2230;color:white}.nav-item.active{border-color:#0d8fca;background:linear-gradient(90deg,#0b3a55,#0a2534);color:#26b9ff;box-shadow:inset 3px 0 0 #0da8ec}.nav-item.active span{color:#20bafc}.sidebar-spacer{flex:1}.profile-card,.sync-card{background:#0b1c28;border:1px solid #203847;border-radius:10px;margin:0 4px 10px;padding:10px;display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;background:#405462;display:grid;place-items:center;font-size:13px}.profile-card strong{display:block;font-size:12px}.profile-card small{display:block;color:#2ebaff;font-size:11px;margin-top:2px}.profile-card>span{margin-left:auto}.sync-card{display:block;position:relative}.sync-card small{display:block;color:var(--muted);font-size:10px}.sync-card strong{font-size:11px}.sync-card i{position:absolute;right:12px;bottom:12px;width:7px;height:7px;border-radius:50%;background:#37d878;box-shadow:0 0 12px #37d878}.main{margin-left:var(--finora-sidebar-width);width:calc(100% - var(--finora-sidebar-width));padding:0 20px 28px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between}.topbar-left{display:flex;align-items:center;gap:20px}.topbar h1{font-size:23px;margin:0;letter-spacing:-.5px}.topbar p{display:none;margin:2px 0 0;color:var(--muted);font-size:11px}.api-badge{border:1px solid #1d3748;background:#0b1b27;border-radius:7px;padding:7px 11px;color:#9faeb7;font-size:11px}.api-badge i{font-style:normal;margin-left:7px}.top-actions{display:flex;gap:8px;align-items:center}.icon-btn{width:40px;height:40px;border:0;background:transparent;color:white;font-size:20px;border-radius:10px;cursor:pointer}.icon-btn:hover{background:#0a2230}.sync-btn{border:0;border-radius:9px;background:linear-gradient(180deg,#10b4f3,#0796d6);color:white;padding:12px 17px;font-weight:700;cursor:pointer;box-shadow:0 10px 24px #0698db25}.sync-btn span{font-size:19px;margin-right:7px}.sync-btn:disabled{opacity:.55;cursor:wait}.dashboard{max-width:1600px;margin:0 auto}.kpis{display:grid;grid-template-columns:repeat(7,1fr);gap:12px}.kpi{min-width:0;background:linear-gradient(180deg,#0c202d,#0a1b27);border:1px solid #1d3747;border-radius:13px;padding:15px 16px 12px;min-height:122px}.kpi label{color:#a9b6bd;font-size:12px}.kpi strong{display:block;font-size:22px;letter-spacing:.1px;margin:7px 0 6px;white-space:nowrap}.kpi strong.green{color:var(--green)}.spark{height:31px;width:100%;margin-top:4px}.content-grid{display:grid;gap:13px;margin-top:13px}.top-grid{grid-template-columns:minmax(390px,1.85fr) minmax(330px,1.2fr) minmax(265px,.98fr)}.lower-grid{grid-template-columns:minmax(700px,3.08fr) minmax(265px,.98fr)}.card{background:linear-gradient(180deg,#0b1e2b,#091a25);border:1px solid #1d3747;border-radius:13px;box-shadow:inset 0 1px 0 #ffffff06}.card h2{font-size:15px;margin:0;letter-spacing:-.2px}.card-head{display:flex;align-items:center;justify-content:space-between;padding:16px 17px 6px}.chart-card{height:327px}.chart-card select{background:#0b1b27;color:#d7e1e6;border:1px solid #253c4b;border-radius:8px;padding:7px 10px}.big-chart{height:264px;padding:0 14px 12px}.big-chart svg{width:100%;height:100%;overflow:visible}.grid-line{stroke:#173344;stroke-width:1;stroke-dasharray:2 4}.axis-text{fill:#8097a6;font-size:11px}.area{fill:url(#chartFill)}.line-main{fill:none;stroke:#13aef0;stroke-width:2.3;filter:drop-shadow(0 0 3px #14b8ff55)}.chart-dot{fill:#35c4ff;stroke:#d9f5ff;stroke-width:2}.chart-tag{fill:#edf7fb}.chart-tag-text{fill:#10202a;font-size:10px;font-weight:800}.allocation-card{height:327px;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.allocation-col{min-width:0}.allocation-col h2{margin-bottom:11px}.donut-wrap{display:flex;justify-content:center}.donut{width:142px;height:142px;border-radius:50%;display:grid;place-items:center;position:relative;box-shadow:inset 0 0 0 1px #ffffff0a}.donut:after{content:"";position:absolute;width:86px;height:86px;background:#0a1d29;border-radius:50%;border:1px solid #1d3747}.donut>div{z-index:2;text-align:center}.donut strong{display:block;font-size:12px}.donut small{color:#8fa2ad;font-size:10px}.legend{margin-top:10px}.legend-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:6px;font-size:9px;color:#aebbc3;margin:4px 0}.legend-row i{width:7px;height:7px;border-radius:2px}.legend-row span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.right-stack{display:flex;flex-direction:column;gap:13px}.alert-card{min-height:154px}.counter{background:#314554;color:#eef6fa;min-width:21px;height:21px;border-radius:50%;display:grid;place-items:center;font-size:10px}.alert-item{display:grid;grid-template-columns:37px 1fr 12px;align-items:center;margin:7px 13px;border:1px solid #203847;border-radius:9px;padding:9px 8px;gap:7px}.alert-icon{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;font-size:17px}.alert-item strong{display:block;font-size:11px}.alert-item small{color:#a1b1ba;font-size:10px}.alert-item .chev{color:#b9c5cc}.danger .alert-icon{background:#431e28;border:1px solid #9f3446;color:#ff5260}.warning .alert-icon{background:#4c3513;border:1px solid #9f6d16;color:#ffc343}.success .alert-icon{background:#123d2b;border:1px solid #167246;color:#35dd81}.calendar-card{flex:1;min-height:159px}.calendar-item{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:9px 14px;border-top:1px solid #193545}.calendar-item:first-child{border-top:0}.ticker-badge{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#0f79ba;color:white;font-size:9px;font-weight:800}.calendar-item small{display:block;color:#78909e;font-size:8px}.calendar-item strong{display:block;font-size:10px}.calendar-item>strong{font-size:10px}.text-link{border:0;background:transparent;color:#1cb3f3;padding:8px 17px 13px;font-size:10px;cursor:pointer}.positions-card{min-height:410px}.table-actions{display:flex;gap:8px}.ghost-btn{background:#0b2635;border:1px solid #25475a;color:#d7e6ed;border-radius:8px;padding:7px 10px;font-size:10px;cursor:pointer}.ghost-btn:hover{border-color:#0aa9ed;color:white}.table-wrap{overflow:auto;margin:5px 15px 0;border:1px solid #1e3948;border-radius:9px}.positions-card table{width:100%;border-collapse:collapse;min-width:760px}.positions-card th{font-size:10px;color:#8da1ad;text-align:left;padding:8px 10px;background:#091923;font-weight:500;white-space:nowrap}.positions-card td{padding:8px 10px;border-top:1px solid #193443;font-size:11px;white-space:nowrap}.company{display:flex;align-items:center;gap:10px}.company-logo{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:10px;color:white;background:linear-gradient(140deg,#15aeea,#435ce1)}.company strong{font-size:11px}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.bottom-right{min-height:410px}.perf-card{padding-bottom:15px}.perf-card .card-head strong{font-size:12px}.perf-row{display:flex;justify-content:space-between;padding:7px 16px;font-size:10px;color:#96a8b1}.perf-row strong{font-size:11px}.mini-comparison{height:68px;padding:2px 14px}.mini-comparison svg{width:100%;height:100%}.bench-line{fill:none;stroke:#8996a0;stroke-width:1.4}.portfolio-line{fill:none;stroke:#13aef0;stroke-width:2}.ai-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:15px}.ai-orb,.modal-icon{width:39px;height:39px;border-radius:12px;background:radial-gradient(circle at 30% 25%,#70dcff,#1588dd 45%,#754ade);display:grid;place-items:center;box-shadow:0 0 24px #249ffb40}.ai-card h2{margin-bottom:3px}.ai-card p{margin:0;color:#8fa2ad;font-size:9px}.ai-card button{background:#0c76ad;border:1px solid #1e9ed8;color:white;border-radius:7px;padding:8px 10px;font-size:9px;cursor:pointer}.mobile-menu{display:none}.modal{position:fixed;inset:0;background:#01080dc9;backdrop-filter:blur(8px);display:grid;place-items:center;z-index:100;padding:20px}.modal.hidden{display:none}.modal-card{width:min(520px,100%);background:linear-gradient(180deg,#0d2330,#081923);border:1px solid #244557;border-radius:18px;padding:25px;position:relative;box-shadow:0 30px 100px #000b}.modal-card.wide{width:min(720px,100%)}.modal-close{position:absolute;right:15px;top:12px;width:34px;height:34px;border:0;background:transparent;color:#b8c6ce;font-size:25px;cursor:pointer}.modal-card h2{margin:15px 0 7px}.modal-card p{color:#9aabb4;font-size:13px;line-height:1.5}.drop-zone{margin-top:17px;min-height:145px;border:1px dashed #2c617d;background:#091d29;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.drop-zone input{display:none}.drop-zone strong{color:#2fc2ff}.drop-zone small{color:#879aa6;margin-top:5px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.danger-outline{background:transparent;border:1px solid #73303a;color:#ff7580;border-radius:8px;padding:8px 12px;cursor:pointer}.modal textarea{width:100%;background:#071823;color:#dce8ee;border:1px solid #244758;border-radius:10px;padding:12px;resize:vertical;line-height:1.5}.full{width:100%;margin-top:12px}.ai-result{margin-top:15px;white-space:pre-wrap;background:#071823;border:1px solid #1d3949;border-radius:10px;padding:14px;color:#c9d7de;min-height:90px;font-size:13px;line-height:1.55}.toast{position:fixed;right:22px;bottom:22px;transform:translateY(30px);opacity:0;background:#0b2532;border:1px solid #2a566c;color:white;border-radius:10px;padding:12px 16px;z-index:200;transition:.25s;box-shadow:0 18px 60px #0008;font-size:12px}.toast.show{transform:none;opacity:1}.toast.error{border-color:#7e3440;color:#ff9ca4}.mode-note{background:#0a2635;border:1px solid #21516a;border-radius:9px;padding:10px 12px;color:#a8c7d7;font-size:11px;margin:0 0 13px}
@media(max-width:1260px){.kpis{grid-template-columns:repeat(3,1fr)}.top-grid{grid-template-columns:1.6fr 1fr}.right-stack{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.lower-grid{grid-template-columns:1fr}.bottom-right{grid-column:auto;display:grid;grid-template-columns:1fr 1fr;min-height:auto}}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.main{margin-left:0;width:100%;padding:0 12px 20px}.mobile-menu{display:block;background:transparent;border:0;color:white;font-size:22px}.api-badge{display:none}.topbar{height:68px}.topbar p{display:block}.topbar h1{font-size:19px}.top-actions .icon-btn:nth-of-type(2),.top-actions .icon-btn:nth-of-type(3){display:none}.sync-btn{padding:10px 11px;font-size:11px}.kpis{grid-template-columns:repeat(2,1fr)}.top-grid,.lower-grid{grid-template-columns:1fr}.allocation-card{height:auto}.right-stack,.bottom-right{grid-column:auto;display:flex}.chart-card{height:320px}}
@media(max-width:560px){.main{padding:0 9px 18px}.topbar-left{gap:6px}.top-actions{gap:2px}.sync-btn{font-size:0;padding:10px}.sync-btn span{font-size:19px;margin:0}.kpis{grid-template-columns:1fr 1fr;gap:8px}.kpi{min-height:105px;padding:12px}.kpi strong{font-size:17px}.content-grid{gap:9px;margin-top:9px}.allocation-card{grid-template-columns:1fr}.donut{width:154px;height:154px}.right-stack{gap:9px}.ai-card{grid-template-columns:38px 1fr}.ai-card button{grid-column:1/-1}.modal{padding:10px}.modal-card{padding:20px}.topbar h1{font-size:18px}}

/* Finora v0.2 - full pages */
.app-page{display:none}.app-page.active{display:block}.page-wrap{max-width:1600px;margin:0 auto 40px}.page-wrap.narrow{max-width:1050px}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:4px 0 16px}.page-heading h2{margin:0;font-size:25px;letter-spacing:-.6px}.page-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}.search-input{min-width:280px;background:#081a25;border:1px solid #244455;border-radius:10px;color:#eaf3f7;padding:11px 13px;outline:none}.search-input:focus{border-color:#0ea9e9;box-shadow:0 0 0 3px #0ea9e915}.notice-strip{max-width:1600px;margin:0 auto 12px;background:#102534;border:1px solid #2a5269;color:#bcd0da;padding:10px 13px;border-radius:10px;font-size:11px;line-height:1.45}.notice-strip.hidden{display:none}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:13px}.stats-grid{grid-template-columns:repeat(6,1fr)}.metric-card{background:linear-gradient(180deg,#0c202d,#0a1b27);border:1px solid #1d3747;border-radius:12px;padding:15px;min-height:90px}.metric-card small{display:block;color:#91a4ae;font-size:10px}.metric-card strong{display:block;font-size:18px;margin-top:8px}.metric-card span{display:block;color:#78909e;font-size:9px;margin-top:5px}.page-card{margin-bottom:13px;min-height:100px}.table-wrap.large{margin-bottom:15px;max-height:650px}.page-card table{width:100%;border-collapse:collapse;min-width:950px}.page-card th{font-size:10px;color:#8da1ad;text-align:left;padding:10px;background:#091923;font-weight:500;white-space:nowrap;position:sticky;top:0;z-index:2}.page-card td{padding:9px 10px;border-top:1px solid #193443;font-size:11px;white-space:nowrap}.empty-cell{text-align:center;color:#78909e!important;padding:35px!important}.empty-small{padding:18px;color:#78909e;font-size:11px}.two-col{display:grid;grid-template-columns:1.5fr 1fr;gap:13px}.bar-chart{height:270px;padding:20px 18px 14px;display:flex;align-items:flex-end;gap:12px;overflow-x:auto}.bar-col{height:100%;min-width:46px;display:grid;grid-template-rows:20px 1fr 18px;align-items:end;text-align:center}.bar-value{font-size:8px;color:#91a8b5;white-space:nowrap}.bar-track{height:100%;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #244657}.bar-fill{width:23px;min-height:3px;border-radius:5px 5px 1px 1px;background:linear-gradient(180deg,#29c1ff,#0a7fc2);box-shadow:0 0 18px #19aef033}.bar-col small{font-size:8px;color:#7f95a1;padding-top:4px}.rank-list{padding:7px 15px 15px}.rank-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #173442}.rank-row:first-child{border-top:0}.rank-num{width:24px;height:24px;border-radius:7px;background:#102c3b;color:#7fbdd8;display:grid;place-items:center;font-size:9px}.rank-main{flex:1}.rank-main>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:10px}.rank-main strong{font-size:10px}.rank-main span{color:#a9bac3}.rank-track{height:4px;border-radius:10px;background:#122b38;margin-top:6px;overflow:hidden}.rank-track i{display:block;height:100%;background:linear-gradient(90deg,#0e93d1,#25c4ff);border-radius:10px}.info-list{padding:10px 16px}.info-row{display:grid;grid-template-columns:25px 1fr;gap:8px;padding:10px 0;border-top:1px solid #173442}.info-row:first-child{border-top:0}.info-row span{color:#21b8f6}.info-row p{margin:0;color:#a2b4bd;font-size:11px;line-height:1.5}.calendar-full{padding:7px 15px 18px}.calendar-event{display:grid;grid-template-columns:54px 28px 1fr auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid #183544}.calendar-event:first-child{border-top:0}.date-chip{border:1px solid #285066;background:#0b2634;border-radius:8px;padding:6px 5px;text-align:center;font-size:9px;color:#b9d2de}.calendar-event small{display:block;color:#78909e;font-size:9px;margin-top:2px}.calendar-event strong{font-size:11px}.settings-card{padding:4px 16px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 2px;border-top:1px solid #183544}.setting-row:first-child{border-top:0}.setting-row strong{font-size:12px}.setting-row small{display:block;color:#8196a2;margin-top:4px;font-size:10px}.pill,.status-pill{border:1px solid #34505e;background:#10232d;color:#9db0b9;border-radius:100px;padding:5px 9px;font-size:9px}.pill.on,.status-pill.on{border-color:#17683f;background:#103a29;color:#46df86}.api-grid{display:grid;gap:12px}.api-card{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;padding:17px}.api-icon{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#0b85c0,#13bffb);display:grid;place-items:center;font-weight:800;font-size:12px}.api-icon.ai{background:radial-gradient(circle at 30% 25%,#70dcff,#1588dd 45%,#754ade)}.api-card h3{margin:0 0 4px;font-size:14px}.api-card p{margin:0;color:#91a4ae;font-size:10px;line-height:1.5}.api-card code{color:#48c8ff}.muted-value{color:#718793!important}
@media(max-width:1260px){.stats-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.metric-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.page-heading{align-items:stretch;flex-direction:column}.search-input{width:100%;min-width:0}.api-card{grid-template-columns:42px 1fr}.api-card .status-pill{grid-column:2}}
@media(max-width:560px){.metric-grid,.stats-grid{grid-template-columns:1fr 1fr}.metric-card{min-height:80px}.metric-card strong{font-size:15px}.page-heading h2{font-size:21px}.calendar-event{grid-template-columns:50px 25px 1fr}.calendar-event>strong:last-child{grid-column:3}.api-card{grid-template-columns:36px 1fr}.api-icon{width:34px;height:34px;font-size:9px}}

/* -------------------------------------------------------------------------
   Finora v0.3 – balanced dashboard + interactive portfolio intelligence
   ------------------------------------------------------------------------- */
.top-grid{grid-template-columns:minmax(430px,1.85fr) minmax(360px,1.18fr) minmax(285px,.97fr);align-items:stretch}
.top-grid>.card,.top-grid>.right-stack{height:350px;min-height:350px}
.chart-card,.allocation-card{height:350px}
.big-chart{height:286px}
.right-stack{min-height:0}
.top-grid>.right-stack{display:grid;grid-template-rows:1fr 1fr;gap:13px}
.top-grid>.right-stack>.card{min-height:0;overflow:hidden}
.alert-card,.calendar-card{min-height:0}
.lower-grid{align-items:stretch;grid-template-columns:minmax(720px,3.05fr) minmax(285px,.97fr)}
.positions-card,.bottom-right{height:430px;min-height:430px}
.bottom-right{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:13px}
.bottom-right>.card{min-height:0}
.kpis{align-items:stretch}
.kpi{height:122px}

.alert-item,.calendar-item,.legend-row,.rank-button,.event-row,.news-item,.allocation-position{font:inherit;color:inherit;appearance:none;-webkit-appearance:none}
.alert-item{width:calc(100% - 26px);background:#0a1b26;text-align:left;cursor:pointer}
.alert-item:hover{border-color:#2b5d75;background:#0c2533;transform:translateY(-1px)}
.calendar-item{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.calendar-item:hover{background:#0c2533}
.legend-row{width:100%;border:0;background:transparent;padding:2px 0;cursor:pointer;text-align:left}
.legend-row:hover{color:#e8f6fc}
.clickable-row{cursor:pointer;transition:background .15s ease}
.clickable-row:hover td{background:#0d2634}
.rank-button{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;padding-left:0;padding-right:0}
.rank-button:hover{background:#0c2431}
.card-subtitle{display:block;color:#8197a4;font-size:9px;margin-top:4px}
.sync-btn.compact{padding:9px 13px;font-size:10px;white-space:nowrap}

.calendar-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 13px}
.filter-chip{border:1px solid #244758;background:#0a1d29;color:#9eb0ba;border-radius:999px;padding:8px 12px;font-size:10px;cursor:pointer}
.filter-chip:hover,.filter-chip.active{border-color:#0da8ec;background:#0b3449;color:#35c4ff}
.calendar-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.85fr);gap:13px;align-items:start}
.calendar-layout>.page-card{margin-bottom:0;min-height:520px}
.event-list,.news-list{padding:7px 14px 14px}
.event-row{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;border:0;border-top:1px solid #173746;background:transparent;text-align:left;padding:11px 2px;cursor:pointer}
.event-row:first-child{border-top:0}
.event-row:hover{background:#0c2533}
.event-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#123247;border:1px solid #24536c;color:#3dc8ff;font-size:15px;flex:0 0 auto}
.event-icon.earnings{background:#15314c;border-color:#284f79;color:#55b9ff}
.event-icon.dividend{background:#123b2b;border-color:#246245;color:#4ee293}
.event-icon.news{background:#3c2d16;border-color:#6d5127;color:#ffc45d}
.event-main{min-width:0}
.event-main small{display:block;color:#78909e;font-size:9px;margin-bottom:2px}
.event-main strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-main span{display:block;color:#91a5af;font-size:9px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-type{font-size:9px;color:#92a9b4;border:1px solid #244656;background:#0b2330;padding:5px 8px;border-radius:999px}
.news-list{display:flex;flex-direction:column}
.news-item{position:relative;width:100%;border:0;border-top:1px solid #173746;background:transparent;color:inherit;text-align:left;padding:12px 2px;cursor:pointer}
.news-item:first-child{border-top:0}
.news-item:hover{background:#0c2533}
.news-meta{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.news-meta>span{font-size:9px;font-weight:800;color:#34c3ff;background:#0b3348;border:1px solid #21556e;border-radius:5px;padding:3px 5px}
.news-meta small{color:#7d919d;font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.news-item>strong{display:block;font-size:11px;line-height:1.35;padding-right:54px}
.news-item p{margin:5px 0 0;color:#8fa2ad;font-size:9px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.importance{position:absolute;right:2px;top:14px;color:#f2ae35;font-size:7px;letter-spacing:1px}
.compact-news{padding:0}.compact-news .news-item p{display:none}

.api-icon.market{background:linear-gradient(145deg,#12856f,#20c49c)}

.modal-card.detail-card{width:min(1020px,96vw);max-height:90vh;overflow:auto;padding:24px 26px 28px}
.detail-loading{padding:60px;text-align:center;color:#8fa3ae}
.detail-header{display:flex;align-items:center;gap:14px;padding-right:40px;margin-bottom:17px}
.detail-header .detail-logo{width:52px;height:52px;border-radius:15px;background:linear-gradient(145deg,#0a8fd1,#27c7ff);display:grid;place-items:center;font-size:16px;font-weight:900;box-shadow:0 9px 30px #0aa8e744}
.detail-header h2{font-size:22px;margin:1px 0 3px}
.detail-header small{color:#30c2ff;font-size:10px;font-weight:800}
.detail-header p{margin:0;color:#8fa2ad;font-size:10px}
.detail-header .detail-ai{margin-left:auto}
.detail-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin:0 0 16px}
.detail-metrics .metric-card{min-height:78px;padding:12px}.detail-metrics .metric-card strong{font-size:14px}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:8px}
.detail-grid>section,.detail-section{background:#081a24;border:1px solid #1e3a49;border-radius:12px;padding:12px}
.detail-grid h3,.detail-section h3{margin:0 0 8px;font-size:12px}
.detail-section{margin-top:13px}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.section-title span{color:#8197a4;font-size:9px}
.detail-table{margin:8px 0 0;max-height:290px}
.detail-table table{width:100%;border-collapse:collapse;min-width:620px}
.detail-table th{background:#091923;color:#8196a2;font-size:9px;text-align:left;padding:8px;position:sticky;top:0}
.detail-table td{border-top:1px solid #173746;padding:8px;font-size:10px;white-space:nowrap}
.event-detail-box{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;background:#081a24;border:1px solid #1e3a49;border-radius:12px;padding:14px;margin-top:14px}
.event-detail-box>div{background:#0b222f;border:1px solid #1b3a49;border-radius:9px;padding:10px}
.event-detail-box small{display:block;color:#7e939f;font-size:9px}.event-detail-box strong{display:block;margin-top:4px;font-size:12px}
.article-text{background:#081a24;border:1px solid #1e3a49;border-radius:12px;padding:15px;color:#a8bac3;font-size:12px;line-height:1.6;margin-top:12px}
.external-link{display:inline-block;margin-top:13px;color:#27bfff;font-size:11px;text-decoration:none;border:1px solid #245068;background:#0b2a3a;padding:8px 11px;border-radius:8px}
.external-link:hover{border-color:#18bafa;color:white}
.allocation-detail{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.allocation-position{border:1px solid #1e3d4d;background:#091d29;border-radius:10px;display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center;text-align:left;padding:9px;cursor:pointer}
.allocation-position:hover{border-color:#2b6a86;background:#0c2634}
.allocation-position strong{display:block;font-size:11px}.allocation-position small{display:block;color:#8196a2;font-size:9px;margin-top:2px}.allocation-position>span{color:#c4d1d7;font-size:10px}

@media(max-width:1260px){
  .top-grid{grid-template-columns:minmax(420px,1.55fr) minmax(350px,1fr)}
  .top-grid>.right-stack{grid-column:1/-1;height:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:none}
  .top-grid>.right-stack>.card{min-height:180px}
  .lower-grid{grid-template-columns:1fr}
  .positions-card{height:auto;min-height:430px}.bottom-right{height:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:none}
  .calendar-layout{grid-template-columns:1fr 1fr}
  .detail-metrics{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .top-grid,.lower-grid,.calendar-layout,.detail-grid{grid-template-columns:1fr}
  .top-grid>.card,.top-grid>.right-stack,.chart-card,.allocation-card{height:auto;min-height:0}
  .chart-card{height:330px}.big-chart{height:268px}
  .allocation-card{min-height:330px}
  .top-grid>.right-stack{grid-template-columns:1fr}
  .bottom-right{grid-template-columns:1fr}
  .calendar-layout>.page-card{min-height:0}
  .detail-metrics{grid-template-columns:repeat(2,1fr)}
  .modal-card.detail-card{padding:20px}
}
@media(max-width:560px){
  .kpi{height:auto;min-height:105px}
  .allocation-card{grid-template-columns:1fr}
  .calendar-toolbar{gap:6px}.filter-chip{padding:7px 9px}
  .event-row{grid-template-columns:34px minmax(0,1fr)}.event-type{grid-column:2;justify-self:start}
  .detail-header{align-items:flex-start}.detail-header .detail-ai{margin-left:0;position:absolute;right:18px;top:68px}
  .detail-metrics{grid-template-columns:1fr 1fr}
  .allocation-detail{grid-template-columns:1fr}
  .event-detail-box{grid-template-columns:1fr}
}

/* -------------------------------------------------------------------------
   Finora v0.4 – layout polish, secure API setup, transaction price timeline
   ------------------------------------------------------------------------- */
.card,.content-grid>*,.right-stack>*,.allocation-col,.kpi,.api-card>*,.calendar-item>*,.alert-item>*{min-width:0}
.kpis{grid-template-columns:repeat(7,minmax(0,1fr))}
.kpi{overflow:hidden;display:flex;flex-direction:column}
.kpi label{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi strong{font-size:clamp(16px,1.45vw,22px);max-width:100%;overflow:hidden;text-overflow:ellipsis}
.kpi>div:not(.spark){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi .spark{margin-top:auto;flex:0 0 31px}
.top-grid{grid-template-columns:minmax(0,1.82fr) minmax(0,1.18fr) minmax(250px,.96fr)}
.lower-grid{grid-template-columns:minmax(0,3.05fr) minmax(250px,.96fr)}
.card{overflow:hidden}
.chart-card,.allocation-card,.top-grid>.right-stack{max-width:100%}
.allocation-card{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.legend-row span:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.alert-item>div:nth-child(2),.calendar-item>div:nth-child(2){min-width:0}
.alert-item strong,.alert-item small,.calendar-item strong{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.alert-item strong,.calendar-item strong{white-space:nowrap}
.alert-item small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;overflow:hidden}
.calendar-item>div:nth-child(2)>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-item>strong:last-child{white-space:nowrap}
.ai-card>div:nth-child(2){min-width:0}.ai-card p{white-space:normal;line-height:1.35}
.perf-row span{min-width:0;padding-right:8px}

.dividend-forecast-card{min-height:126px;margin-bottom:13px;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:22px;background:radial-gradient(circle at 88% 30%,#0c4b63 0,#0b2635 24%,#091a25 63%)}
.forecast-copy{min-width:0}.forecast-copy small{display:block;color:#86a0ad;font-size:10px}.forecast-copy strong{display:block;font-size:28px;letter-spacing:-.5px;margin:5px 0 4px;color:#55d8ff}.forecast-copy span{display:block;color:#91a5af;font-size:10px;line-height:1.45;max-width:680px}
.forecast-visual{display:flex;align-items:center;gap:13px;flex:0 0 auto}.forecast-visual>div:last-child strong{display:block;font-size:14px}.forecast-visual>div:last-child small{display:block;color:#79909c;font-size:9px;margin-top:2px}.forecast-ring{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#0b2330 55%,transparent 57%),conic-gradient(#25c7ff 0 72%,#173d4d 72% 100%);box-shadow:0 0 24px #13baf02c}.forecast-ring span{font-size:11px;font-weight:800;color:#dff7ff}

.api-card{grid-template-columns:48px minmax(0,1fr) auto}
.api-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:190px}
.api-actions .ghost-btn{white-space:nowrap}.api-key-btn{min-width:92px}
.api-key-modal-card{width:min(560px,100%)}
.secret-field{display:block;margin:14px 0}.secret-field>span{display:block;color:#a7bac4;font-size:10px;font-weight:700;margin:0 0 6px}
.secret-field input,.secret-field select{width:100%;background:#081923;color:#edf7fb;border:1px solid #29495a;border-radius:9px;padding:11px 12px;outline:none}
.secret-field input:focus,.secret-field select:focus{border-color:#18bafa;box-shadow:0 0 0 3px #0aa9ed15}
.secret-note{border:1px solid #21495c;background:#0a2635;color:#8fa7b3;border-radius:9px;padding:10px 11px;font-size:9px;line-height:1.45;margin-top:12px}
.api-key-modal-actions{justify-content:space-between}

.trade-section{padding:14px 14px 12px}
.trade-chart-wrap{margin-top:10px;border:1px solid #1b3948;background:linear-gradient(180deg,#081923,#07151e);border-radius:11px;padding:10px 12px 9px;overflow:hidden}
.trade-chart-note{color:#8ba1ad;font-size:9px;line-height:1.45;margin:0 2px 7px}
.trade-chart-wrap svg{display:block;width:100%;height:310px;overflow:visible}
.trade-grid{stroke:#173746;stroke-width:1;stroke-dasharray:3 5}.trade-axis{fill:#78909e;font-size:10px}
.trade-price-line{fill:none;stroke:#27bfff;stroke-width:2.2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px #16b8ff44)}
.trade-marker line{stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:.68}.trade-marker circle{stroke:#eaf9ff;stroke-width:1.3;vector-effect:non-scaling-stroke}
.trade-marker.buy line{stroke:#39d98a}.trade-marker.buy circle{fill:#29d66f}.trade-marker.sell line{stroke:#ff6470;stroke-dasharray:4 3}.trade-marker.sell circle{fill:#ff4b59}
.trade-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:5px 2px 1px;color:#8ea3ae;font-size:9px}.trade-legend span{display:flex;align-items:center;gap:6px}.trade-legend i{width:14px;height:3px;border-radius:3px;display:block}.trade-legend i.buy{background:#29d66f}.trade-legend i.sell{background:#ff4b59}.trade-legend i.price{background:#27bfff}
.trade-event-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.trade-event-card{min-width:0;background:#0a202c;border:1px solid #1b3a49;border-radius:9px;padding:9px}.trade-event-card small{display:block;color:#748c98;font-size:8px}.trade-event-card strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;margin:3px 0}.trade-event-card span{display:block;color:#c4d3da;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:1380px){
  .kpi strong{font-size:18px}
  .top-grid{grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr)}
  .top-grid>.right-stack{grid-column:1/-1;height:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:none}
  .top-grid>.right-stack>.card{min-height:180px}
  .lower-grid{grid-template-columns:1fr}
  .positions-card{height:auto;min-height:430px}.bottom-right{height:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:none}
}
@media(max-width:900px){
  .kpi strong{font-size:18px}.api-card{grid-template-columns:42px minmax(0,1fr)}.api-actions{grid-column:2;justify-content:flex-start;max-width:none}.dividend-forecast-card{align-items:flex-start}.forecast-copy strong{font-size:24px}.trade-chart-wrap svg{height:270px}.trade-event-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .kpi strong{font-size:16px}.dividend-forecast-card{flex-direction:column}.forecast-visual{width:100%;justify-content:flex-start}.trade-chart-wrap{padding:8px 5px}.trade-chart-wrap svg{height:235px}.trade-event-strip{grid-template-columns:1fr 1fr}.api-actions{grid-column:1/-1}.api-key-btn{min-width:0}.forecast-copy span{font-size:9px}
}
@media(max-width:900px){
  .top-grid,.lower-grid,.calendar-layout,.detail-grid{grid-template-columns:1fr}
  .top-grid>.right-stack{grid-template-columns:1fr;grid-column:auto}
  .bottom-right{grid-template-columns:1fr}
  .top-grid>.card,.top-grid>.right-stack,.chart-card,.allocation-card{height:auto;min-height:0}
  .chart-card{height:330px}.allocation-card{min-height:330px}
}
/* compact dashboard summaries so no text leaks outside fixed overview cards */
.alert-item{margin:5px 13px;padding:6px 8px;grid-template-columns:31px minmax(0,1fr) 10px;gap:7px}
.alert-icon{width:27px;height:27px;font-size:14px}.alert-item strong{font-size:10px}.alert-item small{font-size:8px;white-space:nowrap;display:block;text-overflow:ellipsis;overflow:hidden}
.positions-card,.bottom-right{height:450px;min-height:450px}
@media(max-width:1380px){.positions-card{height:auto;min-height:450px}.bottom-right{height:auto;min-height:0}}
@media(min-width:1381px){
  .top-grid>.card,.top-grid>.right-stack{height:420px;min-height:420px}
  .chart-card,.allocation-card{height:420px}
  .big-chart{height:356px}
}

/* -------------------------------------------------------------------------
   Finora v0.5 – Trading 212 Pies, real logos, area trade chart, smart market data
   ------------------------------------------------------------------------- */
.logo-shell{position:relative;overflow:hidden;display:grid;place-items:center;background:#102b39;flex:0 0 auto}
.logo-shell img{width:100%;height:100%;object-fit:contain;background:#fff;padding:3px;display:block}
.logo-shell .logo-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#effaff;font-size:9px;font-weight:800}
.company-logo.logo-shell{width:26px;height:26px;border-radius:7px}
.detail-logo.logo-shell{width:50px;height:50px;border-radius:13px;font-size:14px}
.detail-logo.logo-shell .logo-fallback{font-size:14px}
.allocation-position .company-logo{width:32px;height:32px}

.pies-overview-card{margin:13px 0;padding-bottom:13px;overflow:visible}
.pies-overview-card.hidden,.portfolio-pies-card.hidden{display:none}
.pie-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 13px}
.portfolio-pie-cards{padding:0}
.pie-overview-item{appearance:none;border:1px solid #1c3c4c;background:linear-gradient(145deg,#0b202c,#081923);color:#e8f5fa;border-radius:12px;padding:12px;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:11px;align-items:center;text-align:left;cursor:pointer;min-width:0;transition:.18s ease}
.pie-overview-item:hover{transform:translateY(-1px);border-color:#2e7896;background:linear-gradient(145deg,#0c2836,#0a1e29)}
.pie-mini-ring{--progress:0deg;width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#0b202c 57%,transparent 59%),conic-gradient(#22c4fb 0 var(--progress),#173b4a var(--progress) 360deg);box-shadow:inset 0 0 0 1px #173949}
.pie-mini-ring span{font-size:8px;font-weight:800;color:#bcecff}
.pie-card-copy{min-width:0}.pie-card-copy small,.pie-card-copy span{display:block;color:#7f98a5;font-size:8px}.pie-card-copy strong{display:block;font-size:11px;margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pie-card-result{text-align:right}.pie-card-result strong{display:block;font-size:10px;white-space:nowrap}.pie-card-result small{display:block;font-size:8px;margin-top:2px}
.pie-status-message{grid-column:1/-1;padding:18px}

.pie-detail-logo{display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#24c8ff,#075c82 58%,#07344a);color:#eafaff}
.pie-holdings{display:grid;gap:7px;margin-top:9px}
.pie-holding-row{appearance:none;width:100%;border:1px solid #173847;background:#091d28;color:#eaf4f8;border-radius:10px;padding:9px 11px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;cursor:pointer}
.pie-holding-row:hover{border-color:#2b728d;background:#0b2633}.pie-holding-row .company-logo{width:32px;height:32px}
.pie-holding-main{min-width:0}.pie-holding-main>div:first-child{display:flex;justify-content:space-between;gap:10px;min-width:0}.pie-holding-main strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pie-holding-main span,.pie-holding-main small{color:#7893a0;font-size:8px}.pie-share-bars{height:7px;position:relative;background:#102f3e;border-radius:5px;margin:5px 0;overflow:hidden}.pie-share-bars i{position:absolute;left:0;top:0;height:100%;border-radius:5px}.pie-share-bars .target{background:#6e8491;opacity:.42}.pie-share-bars .current{background:#1cbdf5;z-index:2;height:4px;top:1.5px}

.trade-price-area{fill:url(#tradeAreaFill)}
.trade-price-line{stroke-width:2.35}
.trade-marker line{stroke-width:1.6;opacity:.9;stroke-dasharray:none!important}
.trade-marker polygon{stroke:none}.trade-marker.buy polygon{fill:#31d883}.trade-marker.sell polygon{fill:#ff5d6b}.trade-marker circle{stroke-width:1.1}.trade-marker.buy circle{fill:#31d883;stroke:#dffff0}.trade-marker.sell circle{fill:#ff5d6b;stroke:#ffe6e8}

.cache-policy-card{background:linear-gradient(135deg,#0a202c,#092331)}
.api-icon.cache{background:#0b3c4f;color:#68dcff}.api-icon.muted-api{opacity:.7}

@media(max-width:1200px){.pie-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.pie-cards{grid-template-columns:1fr}.pie-overview-item{grid-template-columns:44px minmax(0,1fr) auto}.pie-holding-row{grid-template-columns:32px minmax(0,1fr)}.pie-holding-row>strong:last-child{grid-column:2}}

/* -------------------------------------------------------------------------
   Finora v0.5.1 – history recovery + visual polish
   ------------------------------------------------------------------------- */
.topbar{height:64px}
.topbar-left{min-height:40px}
.page-wrap{padding-top:4px}

/* Compact allocation legends so they sit comfortably below both donuts. */
.legend{margin-top:8px}
.legend-row{font-size:8px;line-height:1.15;margin:3px 0;gap:5px;grid-template-columns:8px minmax(0,1fr) auto}
.legend-row i{width:6px;height:6px}
.legend-row span:last-child{font-size:8px;color:#91a6b1}

/* When only live snapshots exist, explain the chart instead of leaving a blank card. */
.chart-empty{height:100%;display:grid;place-items:center;text-align:center;color:#7893a0;font-size:11px;padding:28px;line-height:1.5}

/* Clear CTA when a fresh installation lost the old local history database. */
.inline-link-btn{border:0;background:transparent;color:#2bc1ff;padding:0 2px;font-weight:700;font-size:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.history-source-notice{display:flex;align-items:center;gap:5px}
.history-source-notice.hidden{display:none}

/* Trading 212 Pie detail: current and target lines use separate lanes instead of overlapping. */
.pie-share-bars{height:10px;background:transparent;border-radius:0;margin:6px 0;overflow:visible;display:flex;flex-direction:column;gap:3px;justify-content:center}
.pie-share-bars i{position:static!important;display:block;height:3px!important;min-width:2px;border-radius:5px}
.pie-share-bars .current{background:#1cbdf5;z-index:auto}
.pie-share-bars .target{background:#6e8491;opacity:.55}

/* Keep pie cards calm even with long names and results. */
.pie-overview-item{overflow:hidden;min-height:72px}
.pie-card-copy span{line-height:1.3}
.pie-card-result{min-width:68px}

@media(max-width:900px){.topbar{height:60px}.legend-row{font-size:8px}.legend-row span:last-child{font-size:8px}}

/* -------------------------------------------------------------------------
   Finora v0.6 – taxes, 30-year dividend projection, spacing fixes
   ------------------------------------------------------------------------- */
/* The section title already exists in the left navigation.  Keep only a quiet
   description/control row inside pages so names are never visually duplicated. */
.page-heading{min-height:42px;margin-bottom:10px;align-items:center}
.page-heading>div{min-width:0}
.page-heading p{margin:0;color:#8fa5b0;font-size:11px;line-height:1.45}

/* Portfolio Pie cards need breathing room above the parent card border. */
.portfolio-pies-card{padding-bottom:15px!important;overflow:hidden}
.portfolio-pie-cards{padding:0 13px 1px!important;margin-bottom:0}
.portfolio-pie-cards .pie-overview-item{margin-bottom:1px}

/* Dividend projection */
.dividend-projection-card{margin-top:13px;padding-bottom:14px;overflow:hidden}
.projection-head{gap:16px;align-items:center;padding-top:22px}
.projection-summary{display:grid;grid-template-columns:repeat(2,minmax(170px,1fr));gap:9px;min-width:370px;max-width:430px}
.projection-summary span{border:1px solid #1c3b4b;background:#091c27;border-radius:10px;padding:11px 13px;min-width:0}
.projection-summary small{display:block;color:#78919d;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.projection-summary strong{display:block;margin-top:4px;font-size:13px;color:#dff5fd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.projection-summary .projection-total-summary strong{color:var(--green)}
.projection-summary .projection-growth-summary strong.positive{color:var(--green)}
.projection-summary .projection-growth-summary strong.negative{color:var(--red)}
.projection-chart-wrap{overflow-x:auto;margin:7px 16px 0;padding:8px 1px 5px;border-top:1px solid #173443}
.projection-chart{height:250px;min-width:980px;display:grid;grid-template-columns:repeat(var(--projection-columns,20),minmax(22px,1fr));gap:5px;align-items:end}
.projection-bar-col{height:225px;display:grid;grid-template-rows:20px 1fr 18px;align-items:end;text-align:center;min-width:0}
.projection-bar-value{font-size:7px;color:#8ea5b0;white-space:nowrap;overflow:visible}
.projection-bar-track{height:180px;position:relative;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(180deg,#08192355,#0b263444);border-radius:5px 5px 2px 2px;overflow:hidden}
.projection-bar-fill{width:68%;min-height:3px;border-radius:5px 5px 1px 1px;background:linear-gradient(180deg,#35caff,#0b8fce);box-shadow:0 0 10px #1cbdf52d}
.projection-bar-col small{font-size:7px;color:#6f8996;transform:rotate(-48deg);transform-origin:center;white-space:nowrap;margin-bottom:1px}
.projection-bar-col.milestone .projection-bar-fill{background:linear-gradient(180deg,#67e2ff,#10a9e8)}
.projection-bar-col.milestone small,.projection-bar-col.milestone .projection-bar-value{color:#d5f5ff;font-weight:700}
.projection-note{margin:7px 17px 0;color:#718995;font-size:8px;line-height:1.45}

/* Taxes */
.tax-page-heading{display:flex;justify-content:space-between;gap:14px}
.law-pill{border:1px solid #27637c;background:#0b3041;color:#69dbff;border-radius:999px;padding:6px 10px;font-size:9px;font-weight:800;white-space:nowrap}
.tax-law-strip{margin-bottom:13px;line-height:1.5;color:#a9c1cc}
.tax-law-strip strong{color:#e7f7fd}
.tax-metrics{margin-bottom:13px}
.tax-top-grid{margin-bottom:13px}
.tax-control-card{padding-bottom:15px;min-height:280px}
.tax-input{display:block;margin:12px 17px 4px}
.tax-input>span{display:block;color:#9eb1ba;font-size:9px;font-weight:700;margin-bottom:6px}
.tax-input>div{display:flex;align-items:center;border:1px solid #244758;background:#071923;border-radius:9px;overflow:hidden;max-width:360px}
.tax-input input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#edf8fc;padding:10px 12px;font-size:12px}
.tax-input b{padding:0 12px;color:#7f98a5;font-size:9px;font-weight:600}
.tax-input small{display:block;color:#6f8793;font-size:8px;margin-top:5px;line-height:1.4}
.tax-test-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:11px 17px 0}
.tax-test{min-width:0;border:1px solid #1b3948;background:#091d28;border-radius:9px;padding:9px 10px}
.tax-test small,.tax-test span{display:block;color:#78909d;font-size:8px;line-height:1.35}
.tax-test strong{display:block;color:#dbeaf0;font-size:11px;margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tax-test.pass{border-color:#1f5c48;background:#0a251f}.tax-test.pass strong{color:#42db91}
.tax-dividend-method{padding:12px 17px;font-size:12px;line-height:1.55;color:var(--muted);overflow-wrap:anywhere;min-width:0}
.tax-dividend-method>strong,.tax-country strong{color:var(--text)}
.tax-dividend-method p{margin:8px 0 12px}
.tax-country-list{display:grid;gap:8px;min-width:0}
.tax-country{padding:10px 0;border-bottom:1px solid var(--line);min-width:0}
.tax-country>strong,.tax-country>span{display:block}
.tax-country a,.tax-dividend-method>a{font-size:12px}
.tax-dividend-method a,#tax-dividend-body a{color:#76c5ef;text-decoration:underline;overflow-wrap:anywhere}
html[data-theme="light"] .tax-dividend-method a,html[data-theme="light"] #tax-dividend-body a{color:#09668f}
.tax-test.warn{border-color:#765528;background:#2b2111}.tax-test.warn strong{color:#ffc45b}
.tax-table-card{margin-bottom:13px;padding-bottom:13px}
.tax-table-card table{min-width:920px}
.table-sub{display:block;color:#748d99;font-size:8px;margin-top:2px}
.warning-text{color:#ffc45b!important}
.tax-country-note{display:block;color:#708995;font-size:8px;margin:7px 17px 0}
.tax-disclaimer{padding:16px 17px;margin-bottom:15px}
.tax-disclaimer>h2{margin-bottom:10px}.tax-disclaimer>p{color:#728a96;font-size:8px;line-height:1.5;margin:10px 0 0}

@media(max-width:1100px){
  .projection-head{display:block;padding-top:22px}.projection-summary{min-width:0;width:100%;max-width:none;margin-top:10px;grid-template-columns:repeat(2,minmax(150px,1fr))}
  .tax-top-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .portfolio-pie-cards{padding:0 10px 2px!important}.portfolio-pies-card{padding-bottom:12px!important}
  .projection-summary{grid-template-columns:1fr}.projection-chart{min-width:900px}
  .tax-test-grid{grid-template-columns:1fr}.tax-page-heading{align-items:flex-start}.law-pill{font-size:8px}
}

/* Finora 0.7 — position chart ranges + treaty-aware tax detail */
.position-range-bar{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap;margin:2px 0 8px}
.position-range-btn{border:1px solid #244758;background:#081b26;color:#8fa8b4;border-radius:7px;padding:6px 9px;font:700 9px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer;transition:.16s ease}
.position-range-btn:hover{color:#dff6ff;border-color:#287294;background:#0a2533}
.position-range-btn.active{color:#eafdff;border-color:#159bd0;background:#0d3344;box-shadow:inset 0 0 0 1px rgba(24,186,250,.08)}
.tax-country-source,.tax-rate-sub{display:block;margin-top:2px;color:#6f8793;font-size:7.5px;line-height:1.3;font-weight:500;white-space:normal}
.tax-table-card table{min-width:1280px}
@media(max-width:700px){.position-range-bar{justify-content:flex-start}.position-range-btn{padding:6px 8px}.tax-table-card table{min-width:1180px}}

/* -------------------------------------------------------------------------
   Finora v0.8 — local user login + account settings
   ------------------------------------------------------------------------- */
.login-body{margin:0;min-height:100vh;background:#05121b;color:#eaf7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow:hidden}
.login-stage{position:relative;min-height:100vh;display:grid;place-items:center;padding:28px;isolation:isolate;background:linear-gradient(145deg,#06131d 0%,#071923 100%)}
.login-card{position:relative;z-index:2;width:min(400px,calc(100vw - 40px));box-sizing:border-box;padding:30px;border:1px solid rgba(83,174,222,.30);border-radius:18px;background:linear-gradient(145deg,rgba(13,46,64,.96) 0%,rgba(8,27,38,.98) 58%,rgba(10,35,49,.98) 100%);box-shadow:0 24px 70px rgba(0,0,0,.34),inset 0 1px 0 rgba(149,216,247,.055)}
.login-card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 16% 0%,rgba(47,166,224,.10),transparent 42%);opacity:.9}
.login-brand{position:relative;z-index:1;display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-brand-mark{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#1bc7ff,#128cd0);box-shadow:0 10px 26px rgba(15,173,232,.24);font-size:24px;font-weight:900;color:#04131c}.login-brand strong{display:block;font-size:19px;letter-spacing:.1px}.login-brand span{display:block;color:#658291;font-size:10px;margin-top:2px}
.login-copy{position:relative;z-index:1;margin-bottom:20px}.login-copy h1{font-size:25px;line-height:1.15;margin:0}.login-copy p{margin:0;color:#78939f;font-size:10px;line-height:1.45}
.login-form{position:relative;z-index:1;display:grid;gap:15px}.login-form label>span{display:block;color:#9bb0ba;font-size:9px;font-weight:800;margin:0 0 6px 2px}.login-form input{box-sizing:border-box;width:100%;border:1px solid #234456;background:#071a24;color:#edf9fd;border-radius:11px;padding:12px 13px;outline:none;font-size:12px;transition:.15s ease}.login-form input:focus{border-color:#1a9fd3;box-shadow:0 0 0 3px rgba(25,175,230,.08)}
.password-input-wrap{position:relative}.password-input-wrap input{padding-right:44px}.password-input-wrap button{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;background:transparent;color:#7895a2;cursor:pointer;border-radius:8px}.password-input-wrap button:hover{background:#0c2937;color:#d7f5ff}
.login-error{min-height:15px;color:#ff7b85;font-size:9px;line-height:1.4}.login-submit{height:46px;border:0;border-radius:11px;background:linear-gradient(135deg,#37d887,#20b96d);color:#052217;font-weight:900;display:flex;align-items:center;justify-content:space-between;padding:0 16px;cursor:pointer;box-shadow:0 12px 28px rgba(32,185,109,.20)}.login-submit:hover{filter:brightness(1.06);transform:translateY(-1px)}.login-submit:disabled{opacity:.65;cursor:wait;transform:none}.login-submit b{font-size:18px}.login-foot{position:relative;z-index:1;display:flex;justify-content:center;border-top:1px solid rgba(75,144,178,.22);margin-top:22px;padding-top:13px;color:#6b8997;font-size:8px}.login-foot b{color:#7ca0b0}
.login-glow{display:none}
.password-strength-note{border:1px solid #224552;background:#0a202b;color:#77919c;border-radius:9px;padding:9px 11px;font-size:8.5px;line-height:1.45;margin-top:4px}.settings-card .danger-outline{white-space:nowrap}.profile-card strong{max-width:112px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:520px){.login-stage{padding:16px}.login-card{width:100%;padding:24px 20px;border-radius:18px}.login-copy h1{font-size:23px}.login-foot{flex-direction:column;gap:5px}.setting-row{align-items:flex-start}.setting-row>button{margin-top:2px}}


/* =========================================================
   Finora v0.8.1 — light / dark appearance switch
   ========================================================= */
.theme-switch{display:flex;align-items:center;gap:4px;padding:3px;border:1px solid #25485a;background:#081c27;border-radius:10px;flex:0 0 auto}
.theme-switch button{border:0;background:transparent;color:#8298a4;border-radius:7px;padding:7px 10px;font-size:9px;font-weight:800;cursor:pointer;transition:.16s ease;white-space:nowrap}
.theme-switch button:hover{color:#eaf6fa;background:#0c2937}.theme-switch button.active{color:#f4fbfe;background:#137eae;box-shadow:0 4px 14px #0877aa33}

html[data-theme="light"]{--bg:#f4f7f9;--bg2:#eef3f6;--panel:#ffffff;--panel2:#f7fafb;--line:#d8e3e9;--muted:#667985;--text:#14252f;--cyan:#078fc8;--cyan2:#0ba8e8;--green:#0b9d51;--red:#d83b49;--amber:#c98009;--purple:#7558c8;color-scheme:light}
html[data-theme="light"] body{background:radial-gradient(circle at 75% 0,#e7f5fb 0,#f4f7f9 33%,#edf3f6 100%);color:var(--text)}
html[data-theme="light"] .sidebar{background:linear-gradient(180deg,#ffffff,#f2f7f9);border-color:#d6e2e8;box-shadow:6px 0 30px #41606f0a}
html[data-theme="light"] .brand-word{color:#14252f}
html[data-theme="light"] .nav-item{color:#647985}
html[data-theme="light"] .nav-item span{color:#55707e}
html[data-theme="light"] .nav-item:hover{background:#e9f4f9;color:#153140}
html[data-theme="light"] .nav-item.active{border-color:#6dc9ee;background:linear-gradient(90deg,#dff4fc,#edf8fc);color:#087eaf;box-shadow:inset 3px 0 0 #0da8ec}
html[data-theme="light"] .nav-item.active span{color:#0a91c8}
html[data-theme="light"] .profile-card,html[data-theme="light"] .sync-card{background:#fff;border-color:#d6e3e9;box-shadow:0 6px 18px #17394a0b}
html[data-theme="light"] .avatar{background:#dce8ed;color:#344d59}
html[data-theme="light"] .topbar h1{color:#14252f}
html[data-theme="light"] .api-badge{border-color:#d4e2e9;background:#fff;color:#637985}
html[data-theme="light"] .icon-btn{color:#334c58}
html[data-theme="light"] .icon-btn:hover{background:#e6f1f6}
html[data-theme="light"] .kpi,html[data-theme="light"] .metric-card{background:linear-gradient(180deg,#fff,#f8fbfc);border-color:#d7e3e9;box-shadow:0 8px 24px #2548590a}
html[data-theme="light"] .kpi label,html[data-theme="light"] .metric-card small{color:#6b7f8a}
html[data-theme="light"] .card{background:linear-gradient(180deg,#ffffff,#f9fbfc);border-color:#d6e2e8;box-shadow:0 8px 28px #2145550a,inset 0 1px 0 #ffffff}
html[data-theme="light"] .chart-card select,html[data-theme="light"] select{background:#fff;color:#25404d;border-color:#cadbe3}
html[data-theme="light"] .grid-line{stroke:#dfe8ec}
html[data-theme="light"] .axis-text{fill:#718590}
html[data-theme="light"] .chart-tag{fill:#163846}
html[data-theme="light"] .chart-tag-text{fill:#f4fbfe}
html[data-theme="light"] .donut:after{background:#fff;border-color:#d7e3e9}
html[data-theme="light"] .donut small,html[data-theme="light"] .legend-row{color:#667a85}
html[data-theme="light"] .counter{background:#e2ebef;color:#2d4652}
html[data-theme="light"] .alert-item,html[data-theme="light"] .calendar-item{border-color:#dde7eb}
html[data-theme="light"] .alert-item small,html[data-theme="light"] .calendar-item small{color:#718590}
html[data-theme="light"] .calendar-item{border-top-color:#dce7ec}
html[data-theme="light"] .ticker-badge{color:white}
html[data-theme="light"] .ghost-btn{background:#fff;border-color:#bfd2dc;color:#385361}
html[data-theme="light"] .ghost-btn:hover{background:#eef8fc;border-color:#47b8e4;color:#0b6f99}
html[data-theme="light"] .table-wrap{border-color:#d5e2e8;background:#fff}
html[data-theme="light"] .positions-card th,html[data-theme="light"] .page-card th{background:#edf3f6;color:#607681}
html[data-theme="light"] .positions-card td,html[data-theme="light"] .page-card td{border-top-color:#e0e8ec}
html[data-theme="light"] .perf-row{color:#667c87}
html[data-theme="light"] .ai-card p{color:#697e89}
html[data-theme="light"] .modal{background:#27404b70}
html[data-theme="light"] .modal-card{background:linear-gradient(180deg,#fff,#f6fafb);border-color:#cadbe3;box-shadow:0 30px 100px #18374625}
html[data-theme="light"] .modal-close{color:#526b77}
html[data-theme="light"] .modal-card p{color:#647985}
html[data-theme="light"] .search-input,html[data-theme="light"] .secret-field input,html[data-theme="light"] .secret-field select,html[data-theme="light"] textarea,html[data-theme="light"] input{background:#fff;color:#18323f;border-color:#c9dbe3}
html[data-theme="light"] .search-input:focus,html[data-theme="light"] input:focus,html[data-theme="light"] textarea:focus{border-color:#25a8db;box-shadow:0 0 0 3px #25a8db18}
html[data-theme="light"] .notice-strip{background:#edf8fc;border-color:#c8e5f0;color:#496675}
html[data-theme="light"] .bar-track,html[data-theme="light"] .rank-track{background:#e6eef2;border-color:#bfd1d9}
html[data-theme="light"] .rank-row,html[data-theme="light"] .info-row,html[data-theme="light"] .setting-row{border-color:#dfe8ec}
html[data-theme="light"] .rank-num{background:#e5f4fa;color:#1b86af}
html[data-theme="light"] .rank-main span,html[data-theme="light"] .info-row p,html[data-theme="light"] .setting-row small{color:#667b86}
html[data-theme="light"] .pill,html[data-theme="light"] .status-pill{border-color:#c9d7de;background:#f1f5f7;color:#607580}
html[data-theme="light"] .pill.on,html[data-theme="light"] .status-pill.on{border-color:#83d6aa;background:#e7f8ef;color:#16804a}
html[data-theme="light"] .api-card p{color:#687e89}
html[data-theme="light"] .pie-overview-item{border-color:#d3e2e8;background:linear-gradient(145deg,#fff,#f4f9fb);color:#17313d}
html[data-theme="light"] .pie-holding-row{border-color:#d7e3e9;background:#fff;color:#18323f}
html[data-theme="light"] .allocation-position{color:#18323f}
html[data-theme="light"] .empty-small,html[data-theme="light"] .muted-value{color:#748894!important}
html[data-theme="light"] .theme-switch{border-color:#cbdbe2;background:#edf3f6}
html[data-theme="light"] .theme-switch button{color:#6b7f89}
html[data-theme="light"] .theme-switch button:hover{color:#17313e;background:#dcecf3}
html[data-theme="light"] .theme-switch button.active{color:#fff;background:#0b91c8;box-shadow:0 4px 14px #1588b52b}

html[data-theme="light"] .login-body{background:#eef4f7;color:#17313d}
html[data-theme="light"] .login-stage{background:linear-gradient(145deg,#f7fafb 0%,#eef5f8 100%)}
html[data-theme="light"] .login-card{border-color:rgba(90,169,208,.36);background:linear-gradient(145deg,#f8fcff 0%,#f2f9fd 58%,#edf6fb 100%);box-shadow:0 24px 70px rgba(44,75,90,.14),inset 0 1px 0 rgba(255,255,255,.85)}
html[data-theme="light"] .login-card::before{background:radial-gradient(circle at 16% 0%,rgba(61,170,224,.12),transparent 43%)}
html[data-theme="light"] .login-brand span,html[data-theme="light"] .login-copy p{color:#6d828d}
html[data-theme="light"] .login-eyebrow{border-color:#b9e0f0;background:#e7f6fc;color:#087da9}
html[data-theme="light"] .login-form label>span{color:#607681}
html[data-theme="light"] .login-form input{border-color:#c9dbe3;background:#fff;color:#18323f}
html[data-theme="light"] .password-input-wrap button{color:#536d79}
html[data-theme="light"] .login-foot{border-color:#d9e5ea;color:#718690}
html[data-theme="light"] .login-foot b{color:#4c6875}


/* =========================================================
   Finora v0.9 — overview redesign from user review
   ========================================================= */
.brand{height:56px;align-items:center;padding-bottom:8px}
.brand-copy{min-width:0;display:flex;flex-direction:column;justify-content:center;line-height:1.05}
.brand-version{display:block;margin-top:5px;color:#5f8597;font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.topbar-left{min-width:0}
.top-actions{gap:9px}
.top-theme-switch{height:40px;padding:3px 4px;background:#081c27}
.top-theme-switch button{height:32px;padding:0 9px}
.ai-top-btn{height:40px;border:1px solid #28607a;border-radius:10px;background:linear-gradient(135deg,#0c3347,#112b4b);color:#eaf9ff;padding:0 14px;font-weight:800;font-size:10px;cursor:pointer;display:flex;align-items:center;gap:8px;box-shadow:inset 0 1px 0 #ffffff08}
.ai-top-btn span{font-size:17px;color:#55d4ff}.ai-top-btn:hover{border-color:#1eaee8;background:linear-gradient(135deg,#0d4058,#173565)}
.kpi{min-height:122px}.kpi:not(.has-spark){display:flex;flex-direction:column;justify-content:center}.kpi-sub{font-size:8.5px!important;line-height:1.35;margin-top:-3px!important;color:#8098a5;white-space:normal}.kpi.has-spark .spark{height:28px;margin-top:3px}
.top-calendar-stack{display:block;min-width:0}.overview-calendar-card{height:327px;min-height:327px;display:flex;flex-direction:column;overflow:hidden}.overview-calendar-card #calendar-list{flex:1;min-height:0;overflow:hidden}.overview-calendar-card .calendar-item{padding:7px 13px}.overview-calendar-card .text-link{margin-top:auto;padding-top:7px}.history-card{min-height:245px;padding-bottom:7px}.history-card .alert-item{margin-top:6px;margin-bottom:6px}.bottom-right{justify-content:flex-start}.bottom-right .ai-card{margin-top:0}

html[data-theme="light"] .brand-version{color:#78909b}
html[data-theme="light"] .ai-top-btn{border-color:#bfdce8;background:linear-gradient(135deg,#e5f5fb,#edf3ff);color:#174256;box-shadow:0 5px 16px #2145550b}
html[data-theme="light"] .ai-top-btn span{color:#0b95cf}
html[data-theme="light"] .ai-top-btn:hover{border-color:#77c8e7;background:linear-gradient(135deg,#dff3fb,#e8efff)}
html[data-theme="light"] .kpi-sub{color:#738993}

@media(max-width:1260px){.top-calendar-stack{grid-column:1/-1}.overview-calendar-card{height:auto;min-height:280px}.overview-calendar-card #calendar-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}.overview-calendar-card .calendar-item:nth-child(2){border-top:0}}
@media(max-width:900px){.top-theme-switch button{font-size:0;width:34px}.top-theme-switch button:first-child:before{content:"☾";font-size:14px}.top-theme-switch button:last-child:before{content:"☀";font-size:14px}.ai-top-btn{font-size:0;width:40px;padding:0;justify-content:center}.ai-top-btn span{font-size:18px}.overview-calendar-card #calendar-list{grid-template-columns:1fr}.overview-calendar-card .calendar-item:nth-child(2){border-top:1px solid #193545}}
@media(max-width:560px){.top-theme-switch{height:38px}.ai-top-btn{height:38px}.brand-version{font-size:7px}}

/* =========================================================
   Finora v0.9.3 — restored Pies + truthful performance bars
   ========================================================= */
.performance-kpi{justify-content:flex-start!important;padding-top:12px!important}
.performance-kpi-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;min-width:0}
.performance-kpi-head label{min-width:0}
.performance-kpi-head small{color:#67828f;font-size:7.5px;white-space:nowrap;margin-top:1px}
.performance-bars{display:grid;gap:7px;margin-top:8px}
.performance-bar-row>div{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:3px;min-width:0}
.performance-bar-row span{color:#93a6af;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.performance-bar-row strong{font-size:9px!important;margin:0!important;letter-spacing:0!important;overflow:visible!important}
.performance-bar-row i{display:block;height:6px;border-radius:999px;background:#102a37;overflow:hidden;border:1px solid #1e3a49}
.performance-bar-row i b{display:block;height:100%;border-radius:999px;min-width:3px}
.performance-bar-row.mine i b{background:#29d66f}
.performance-bar-row.mine strong{color:#29d66f}
.performance-bar-row.benchmark i b{background:#16aeef}
.performance-bar-row.benchmark strong{color:#16aeef}
.performance-relative{font-size:7.8px;margin-top:6px;color:#718c99;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.performance-relative.positive{color:#29d66f!important}.performance-relative.negative{color:#ff6678!important}
.pie-empty-state{margin:10px 15px 15px;padding:15px 16px;border:1px dashed #2b5266;border-radius:11px;background:#0a202c;display:grid;gap:5px}
.pie-empty-state strong{font-size:11px;color:#e1edf2}.pie-empty-state span{font-size:10px;color:#9eb1ba;line-height:1.45}.pie-empty-state small{font-size:8.5px;color:#68838f;line-height:1.4}
html[data-theme="light"] .performance-kpi-head small,html[data-theme="light"] .performance-relative{color:#718690}
html[data-theme="light"] .performance-bar-row span{color:#697f89}
html[data-theme="light"] .performance-bar-row i{background:#edf3f5;border-color:#d5e2e7}
html[data-theme="light"] .pie-empty-state{background:#f6fafb;border-color:#b9d4df}
html[data-theme="light"] .pie-empty-state strong{color:#244653}
html[data-theme="light"] .pie-empty-state span{color:#607b86}
html[data-theme="light"] .pie-empty-state small{color:#8399a2}
@media(max-width:560px){.performance-kpi-head small{display:none}.performance-bar-row span{font-size:7.5px}.performance-relative{font-size:7px}}

/* Finora v0.9.4 — split calendar + market-history reconstruction */
.calendar-event-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.calendar-event-columns>.page-card{min-height:430px}
.calendar-news-wide{margin-top:13px}
.calendar-news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.calendar-news-grid .news-item{min-width:0}
@media(max-width:900px){.calendar-event-columns,.calendar-news-grid{grid-template-columns:1fr}.calendar-event-columns>.page-card{min-height:0}}

/* Finora v0.9.5 — dual portfolio history */
.performance-history-card{margin-top:13px;height:327px}
.performance-history-card .big-chart{height:264px}
.performance-area{fill:url(#perfHistoryFill)}
.performance-line{fill:none;stroke:#30d58d;stroke-width:2.3;filter:drop-shadow(0 0 3px #30d58d44)}
.performance-dot{fill:#30d58d;stroke:#e6fff3;stroke-width:2}
.zero-line{stroke:#5b6f7b;stroke-width:1;stroke-dasharray:4 4}
html[data-theme="light"] .performance-line{stroke:#16895a}
html[data-theme="light"] .performance-dot{fill:#16895a;stroke:#fff}
@media(max-width:900px){.performance-history-card{height:320px}.performance-history-card .big-chart{height:258px}}

/* =========================================================
   Finora v0.9.6 — one truthful dual-axis portfolio chart
   ========================================================= */
.portfolio-dual-card{height:350px}
.portfolio-dual-card .big-chart{height:270px}
/* P011: keep the chart and its time axis inside the desktop card. */
@media(min-width:721px){
  .dashboard .top-grid>.t212-account-card{height:420px;min-height:420px;display:flex;flex-direction:column}
  .dashboard .top-grid>.t212-account-card>.t212-account-chart{height:auto;flex:1;min-height:0}
}
.dual-history-legend{display:flex;align-items:center;gap:14px;padding:0 16px 2px;color:#8ea3ae;font-size:8.5px;flex-wrap:wrap}
.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.legend-dot.account{background:#16aeef}.legend-dot.performance{background:#30d58d}
.dual-performance-line{fill:none;stroke:#30d58d;stroke-width:2.4;filter:drop-shadow(0 0 3px #30d58d33)}
.performance-axis{fill:#65b992!important}
html[data-theme="light"] .dual-history-legend{color:#667d88}
html[data-theme="light"] .dual-performance-line{stroke:#16895a}
html[data-theme="light"] .performance-axis{fill:#16895a!important}
@media(max-width:900px){.portfolio-dual-card{height:330px}.portfolio-dual-card .big-chart{height:250px}}


/* Finora v0.9.8 — local company logos, readable allocations, event countdowns */
.company-logo.logo-shell{width:30px;height:30px;border-radius:8px;background:#0c2230}
.logo-shell img{padding:2px;object-fit:contain}
.donut>div{display:none!important}
.legend{margin-top:10px;display:grid;gap:3px}
.legend-row{font-size:10px!important;line-height:1.25!important;margin:2px 0!important;gap:7px!important;grid-template-columns:8px minmax(0,1fr) auto!important;align-items:start!important}
.legend-row i{width:7px!important;height:7px!important;margin-top:3px}
.legend-row span:nth-child(2){white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:normal}
.legend-row span:last-child{font-size:9.5px!important;white-space:nowrap;color:#a9bbc4!important}
.event-side{display:grid;justify-items:end;gap:5px;min-width:76px;border-left:1px solid #1f3d4d;padding-left:11px}
.event-countdown{font-size:10px;color:#d9edf5;white-space:nowrap}
.event-countdown.dividend-estimate{color:#43dc8b}
.event-fx-note{display:block;color:#758e9b;font-size:8px;margin-top:4px;font-weight:500}
html[data-theme="light"] .event-side{border-left-color:#d8e4e9}
html[data-theme="light"] .event-countdown{color:#294a59}
html[data-theme="light"] .event-countdown.dividend-estimate{color:#16804a}
@media(max-width:760px){.event-side{grid-column:2;justify-items:start;border-left:0;border-top:1px solid #1f3d4d;padding:6px 0 0;margin-top:3px}.legend-row{font-size:9.5px!important}}

/* Finora 0.9.8 */
.event-native-amount{font-size:10px;color:#d8e8ef;white-space:nowrap}
.event-days{font-size:9px;color:#8299a6;white-space:nowrap}
html[data-theme="light"] .event-native-amount{color:#294a59}
html[data-theme="light"] .event-days{color:#6e838e}

/* =========================================================
   Finora v0.9.9 — overview cleanup, equal pies, sortable positions
   ========================================================= */
.overview-calendar-card{height:350px!important;min-height:350px!important}
.top-calendar-stack{height:350px!important;min-height:350px!important}
.pies-overview-card .pie-cards,.portfolio-pie-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.pies-overview-card .pie-overview-item,.portfolio-pie-cards .pie-overview-item{width:100%;min-width:0}
.lower-grid{grid-template-columns:1fr!important}
.positions-card{width:100%;height:auto!important;min-height:450px}
.positions-card .table-wrap{width:calc(100% - 30px)}
.positions-card table{width:100%;min-width:920px}
.table-actions{align-items:center;flex-wrap:wrap}
.sort-select{background:#0b2635;border:1px solid #25475a;color:#d7e6ed;border-radius:8px;padding:7px 9px;font-size:10px;min-width:190px;outline:none}
.sort-select:focus{border-color:#0aa9ed;box-shadow:0 0 0 2px #0aa9ed22}
.portfolio-controls{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.portfolio-controls .search-input{min-width:250px}
.company-logo.logo-shell{box-shadow:inset 0 0 0 1px #ffffff0b}
.company-logo.logo-shell img{padding:2px;background:#fff}
@media(min-width:1381px){.overview-calendar-card,.top-calendar-stack{height:420px!important;min-height:420px!important}}
@media(max-width:1260px){.overview-calendar-card,.top-calendar-stack{height:auto!important;min-height:280px!important}.pies-overview-card .pie-cards,.portfolio-pie-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:720px){.pies-overview-card .pie-cards,.portfolio-pie-cards{grid-template-columns:1fr!important}.portfolio-controls{justify-content:stretch}.portfolio-controls .sort-select,.portfolio-controls .search-input{width:100%;min-width:0}.sort-select{min-width:0;max-width:100%}}
html[data-theme="light"] .sort-select{background:#f3f7f9;border-color:#cadbe3;color:#2e4a58}


/* =========================================================
   Finora v0.10.0 — login + dividend / overview redesign
   ========================================================= */
#upcoming-dividends .event-row{padding:15px 8px;grid-template-columns:42px minmax(0,1fr) minmax(125px,auto);gap:14px}
#upcoming-dividends .event-main strong{font-size:13px;line-height:1.25}
#upcoming-dividends .event-main span{font-size:10px;margin-top:3px}
#upcoming-dividends .event-side{text-align:right;align-items:flex-end}
#upcoming-dividends .event-native-amount{font-size:13px;font-weight:850;color:#eefaff}
#upcoming-dividends .dividend-estimate{font-size:15px;font-weight:900;color:#34d985;margin-top:3px}
#upcoming-dividends .event-days{margin-top:2px}
.dividend-year-chart{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr));gap:7px!important;overflow:visible!important;padding:28px 10px 14px!important;height:285px!important}
.dividend-year-chart .bar-col{min-width:0!important;width:auto!important;grid-template-rows:24px 1fr 20px}
.dividend-year-chart .bar-value{font-size:8px;overflow:visible}
.dividend-year-chart .bar-fill{width:min(26px,62%)!important;margin:0 auto}
.dividend-year-chart .bar-col small{font-size:9px}
@media(max-width:900px){.dividend-year-chart{gap:4px!important}.dividend-year-chart .bar-value{font-size:7px;transform:rotate(-35deg);transform-origin:center}.dividend-year-chart .bar-fill{width:min(20px,70%)!important}}
@media(max-width:640px){.dividend-year-chart{overflow-x:auto!important;grid-template-columns:repeat(12,42px);justify-content:start}}


/* =========================================================
   Finora v0.10.1 — compact KPIs, info tips, range update
   ========================================================= */
.kpis{grid-template-columns:repeat(8,minmax(0,1fr))!important;gap:9px!important}
.kpi{padding:13px 12px 11px!important;min-height:116px!important}
.kpi label{font-size:10.5px!important;line-height:1.25}
.kpi strong{font-size:clamp(15px,1.25vw,20px)!important}
.performance-kpi-head label{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;font-size:10.5px!important;line-height:1.2}
.performance-kpi-head{min-height:25px;align-items:flex-start}
.overview-title-with-info{display:flex;align-items:center;gap:7px;min-width:0}
.info-tip{width:17px;height:17px;border-radius:50%;border:1px solid #315063;color:#8da7b5;display:inline-grid;place-items:center;font-size:10px;font-weight:800;line-height:1;cursor:help;flex:0 0 auto;outline:none}
.info-tip:hover,.info-tip:focus{color:#dff7ff;border-color:#18bafa;background:#0a2a39}
html[data-theme="light"] .info-tip{border-color:#c3d5dd;color:#728994;background:#f8fbfc}
html[data-theme="light"] .info-tip:hover,html[data-theme="light"] .info-tip:focus{color:#11698d;border-color:#69b9d8;background:#eaf7fb}
@media(max-width:1380px){.kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:900px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}}


/* =========================================================
   Finora v0.10.2 — wider performance KPI + top-layer info tips
   ========================================================= */
@media(min-width:1381px){
  .kpis{grid-template-columns:repeat(7,minmax(0,.86fr)) minmax(225px,1.55fr)!important;gap:8px!important}
  .kpi{padding-left:10px!important;padding-right:10px!important}
  .performance-kpi{padding-left:14px!important;padding-right:14px!important}
  .performance-bar-row span{font-size:8.5px}
  .performance-bar-row strong{font-size:9.5px!important}
  .performance-relative{font-size:8px}
}
.info-tooltip-layer{
  position:fixed;
  z-index:10000;
  width:max-content;
  max-width:min(340px,calc(100vw - 24px));
  padding:10px 12px;
  border:1px solid #31566a;
  border-radius:9px;
  background:#061722;
  color:#dcecf3;
  box-shadow:0 14px 42px #000a;
  font-size:11px;
  line-height:1.45;
  white-space:normal;
  pointer-events:none;
}
.info-tooltip-layer.hidden{display:none}
html[data-theme="light"] .info-tooltip-layer{background:#ffffff;color:#294a59;border-color:#bad3de;box-shadow:0 14px 42px #3657662b}

/* Finora v0.10.3 — portfolio table controls + compact position count */
.portfolio-table-head{gap:16px;padding-bottom:10px}
.portfolio-table-head>h2{flex:0 0 auto}
.portfolio-table-controls{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.portfolio-search-group{display:flex;align-items:center;gap:8px}
.portfolio-search-group .search-input{min-width:250px}
.position-count-pill{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 11px;border:1px solid #294b5c;background:#0b2635;color:#b9ccd5;border-radius:999px;font-size:10px;white-space:nowrap}
.portfolio-positions-card .table-wrap.large{margin-top:0}
@media(max-width:900px){.portfolio-table-head{align-items:stretch;flex-direction:column}.portfolio-table-controls{margin-left:0;justify-content:stretch}.portfolio-search-group{flex:1;min-width:0}.portfolio-search-group .search-input{flex:1;width:auto;min-width:0}.portfolio-table-controls .sort-select{width:100%;min-width:0}}
@media(max-width:560px){.portfolio-search-group{align-items:stretch;flex-direction:column}.position-count-pill{align-self:flex-start}}
html[data-theme="light"] .position-count-pill{background:#eef5f8;border-color:#c7d9e1;color:#47616d}

/* v0.10.7: real transparent brand logos + buy markers anchored from chart top */
.logo-shell{background:#0c2230!important}.logo-shell img,.company-logo.logo-shell img,.detail-logo.logo-shell img{background:transparent!important;padding:1px!important;object-fit:contain!important}
.trade-marker.buy.top-marker line{stroke:#39d98a;stroke-width:1.35;opacity:.72}.trade-marker.buy.top-marker polygon{fill:#31d883}.trade-marker.buy.top-marker circle{fill:#31d883;stroke:#dffff0}

/* v0.10.8 — curated position branding */
.logo-shell.has-logo{background:transparent!important;box-shadow:none!important;border-color:transparent!important;overflow:visible!important}
.logo-shell.has-logo img{background:transparent!important;padding:1px!important;object-fit:contain!important;filter:none!important}
.company-logo.logo-shell.has-logo{border-radius:6px!important}
.detail-logo.logo-shell.has-logo{border-radius:10px!important}

/* v0.10.8 — slightly larger curated marks for a broker-like portfolio table */
.company-logo.logo-shell.has-logo{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;border-radius:7px!important}

/* -------------------------------------------------------------------------
   Finora v0.10.9 — light-theme portfolio contrast + dividend layout polish
   ------------------------------------------------------------------------- */
/* Portfolio rows: never reuse the dark hover surface in light mode. */
html[data-theme="light"] .clickable-row:hover td{
  background:#e8f4f8!important;
  color:#173440;
}
html[data-theme="light"] .clickable-row:hover .company strong{color:#102b37}
html[data-theme="light"] .clickable-row:hover td.positive{color:#0b8f4a!important}
html[data-theme="light"] .clickable-row:hover td.negative{color:#c92f3d!important}
html[data-theme="light"] .pie-holding-row:hover,
html[data-theme="light"] .allocation-position:hover{
  background:#eaf5f9;
  border-color:#75bfd9;
  color:#173440;
}
html[data-theme="light"] .pie-holding-row:hover strong,
html[data-theme="light"] .allocation-position:hover strong{color:#102b37}

/* Dividend top row: estimate + upcoming dividends side by side. */
.dividend-top-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:13px;
  margin-bottom:13px;
  align-items:stretch;
}
.dividend-top-grid>.card{margin-bottom:0!important;min-height:340px;height:340px}
.dividend-top-grid .dividend-forecast-card{
  min-height:340px;
  padding:24px 24px;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}
.dividend-top-grid .forecast-copy strong{font-size:32px;margin-top:7px}
.dividend-top-grid .forecast-copy span{max-width:560px}
.dividend-top-grid .forecast-visual{margin-top:24px;gap:17px}
.dividend-top-grid .forecast-ring{width:76px;height:76px}
.dividend-top-grid .forecast-ring span{font-size:13px}
.upcoming-dividends-card{display:flex;flex-direction:column;min-width:0}
.upcoming-dividends-card .card-head{flex:0 0 auto;gap:10px}
.upcoming-dividends-card .event-list{flex:1;min-height:0;overflow-y:auto;padding-bottom:12px}
.upcoming-dividends-card .event-row{padding-top:10px!important;padding-bottom:10px!important}

/* Paid monthly dividends are green. Raise value labels away from the bars. */
.dividend-year-chart .bar-value{transform:translateY(-6px)}
.dividend-year-chart .bar-col.paid .bar-fill{
  background:linear-gradient(180deg,#45df91,#0b9d58)!important;
  box-shadow:0 0 16px #24c97838!important;
}
html[data-theme="light"] .dividend-year-chart .bar-col.paid .bar-fill{
  background:linear-gradient(180deg,#35ca7c,#078c49)!important;
  box-shadow:0 0 12px #0b9d5128!important;
}

@media(max-width:980px){
  .dividend-top-grid{grid-template-columns:1fr}
  .dividend-top-grid>.card{height:auto;min-height:300px}
  .upcoming-dividends-card .event-list{max-height:360px}
}

/* -------------------------------------------------------------------------
   Finora v0.10.10 — calmer KPI surfaces + polished upcoming dividends
   ------------------------------------------------------------------------- */
/* Overview KPI cards: subtle blue separation from the page background. */
.kpi{
  background:linear-gradient(155deg,#0d2838 0%,#0b202e 58%,#0a1d2a 100%)!important;
  border-color:#23485c!important;
  box-shadow:inset 0 1px 0 #ffffff08,0 8px 26px #008fd00c!important;
}
.kpi:hover{border-color:#2a5a72!important}
html[data-theme="light"] .kpi{
  background:linear-gradient(155deg,#f8fdff 0%,#eef8fc 62%,#edf6fa 100%)!important;
  border-color:#bfd9e5!important;
  box-shadow:inset 0 1px 0 #ffffff,0 8px 24px #286b8a0d!important;
}
html[data-theme="light"] .kpi:hover{border-color:#9cc9dc!important}

/* Dividend status cards: restrained, distinct accents without becoming loud. */
#dividend-metrics .metric-card{position:relative;overflow:hidden;border-color:#244758;box-shadow:inset 0 1px 0 #ffffff06}
#dividend-metrics .metric-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#2aaee8;opacity:.9}
#dividend-metrics .metric-paid{background:linear-gradient(155deg,#0d2b28,#0a211f)}
#dividend-metrics .metric-paid:before{background:#39d98a}
#dividend-metrics .metric-estimate{background:linear-gradient(155deg,#0d2839,#0a1f2d)}
#dividend-metrics .metric-estimate:before{background:#36bdf7}
#dividend-metrics .metric-payments{background:linear-gradient(155deg,#17283a,#0e1f30)}
#dividend-metrics .metric-payments:before{background:#7fa9ff}
#dividend-metrics .metric-upcoming{background:linear-gradient(155deg,#102d34,#0b2229)}
#dividend-metrics .metric-upcoming:before{background:#45c9c2}
#dividend-metrics .metric-upcoming span{color:#8fb7be}
html[data-theme="light"] #dividend-metrics .metric-card{box-shadow:0 7px 20px #3765790a}
html[data-theme="light"] #dividend-metrics .metric-paid{background:linear-gradient(155deg,#f5fcf8,#edf8f2);border-color:#c6e3d2}
html[data-theme="light"] #dividend-metrics .metric-estimate{background:linear-gradient(155deg,#f7fcff,#edf7fc);border-color:#c6dde8}
html[data-theme="light"] #dividend-metrics .metric-payments{background:linear-gradient(155deg,#f8faff,#f0f5fc);border-color:#cbd9ed}
html[data-theme="light"] #dividend-metrics .metric-upcoming{background:linear-gradient(155deg,#f5fbfb,#edf8f8);border-color:#c5e1df}

/* Upcoming dividends: logo + clean metadata + compact amount tile. */
#upcoming-dividends{padding:9px 14px 14px}
#upcoming-dividends .upcoming-dividend-row{
  grid-template-columns:42px minmax(0,1fr) minmax(118px,auto)!important;
  gap:12px!important;
  margin:5px 0;
  padding:11px 10px!important;
  border:1px solid transparent!important;
  border-radius:11px;
  background:#0a1d29;
  transition:background .15s ease,border-color .15s ease,transform .15s ease;
}
#upcoming-dividends .upcoming-dividend-row:first-child{border-top:1px solid transparent!important}
#upcoming-dividends .upcoming-dividend-row:hover{background:#0d2735;border-color:#285064!important;transform:translateY(-1px)}
.upcoming-logo{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:8px;display:grid;place-items:center;overflow:visible;background:transparent}
.upcoming-logo img{width:100%;height:100%;object-fit:contain;background:transparent;padding:1px}
.upcoming-logo .logo-fallback{width:36px;height:36px;border-radius:8px;place-items:center;font-size:10px;font-weight:850;color:#fff}
#upcoming-dividends .event-main strong{font-size:12.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upcoming-dividend-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px;color:#8299a5;font-size:9px}
.upcoming-dividend-meta>span{display:inline-flex!important;margin:0!important;overflow:visible!important;white-space:nowrap!important;color:inherit!important}
.upcoming-ticker{padding:2px 6px;border-radius:5px;background:#102d3d;border:1px solid #244d61;color:#7fd5f7!important;font-weight:800;letter-spacing:.2px}
.upcoming-due{color:#48d48e!important}
.upcoming-amount{justify-self:end;min-width:116px;padding:8px 10px;border-radius:9px;background:linear-gradient(155deg,#0f2b31,#0b2429);border:1px solid #225044;text-align:right}
.upcoming-amount strong{display:block;color:#43dd8d;font-size:13px;white-space:nowrap}
.upcoming-amount small{display:block;color:#819aa5;font-size:9px;margin-top:3px;white-space:nowrap}
html[data-theme="light"] #upcoming-dividends .upcoming-dividend-row{background:#f8fbfc}
html[data-theme="light"] #upcoming-dividends .upcoming-dividend-row:hover{background:#eef7fa;border-color:#b9d6e1!important}
html[data-theme="light"] .upcoming-ticker{background:#edf7fb;border-color:#c9e0e9;color:#197aa1!important}
html[data-theme="light"] .upcoming-due{color:#12804b!important}
html[data-theme="light"] .upcoming-amount{background:linear-gradient(155deg,#f2fbf6,#eaf7f0);border-color:#c1dfcd}
html[data-theme="light"] .upcoming-amount strong{color:#10844d}
html[data-theme="light"] .upcoming-amount small{color:#6d838c}

@media(max-width:700px){
  #upcoming-dividends .upcoming-dividend-row{grid-template-columns:38px minmax(0,1fr)!important}
  .upcoming-logo,.upcoming-logo .logo-fallback{width:34px;height:34px;min-width:34px;min-height:34px}
  .upcoming-amount{grid-column:2;justify-self:start;text-align:left;min-width:0;margin-top:2px}
}


/* -------------------------------------------------------------------------
   Finora v0.10.11 — 10 equal overview KPIs in two rows
   ------------------------------------------------------------------------- */
.kpis{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:10px!important;
}
.kpi{
  min-height:118px!important;
  height:118px;
  padding:13px 14px 11px!important;
  background:linear-gradient(145deg,#12384c 0%,#0e2d3f 45%,#0a2231 78%,#091d2a 100%)!important;
  border-color:#2b5368!important;
  box-shadow:inset 0 1px 0 #ffffff0a,0 8px 25px #087fb412!important;
}
.kpi:hover{
  border-color:#3b6b82!important;
  background:linear-gradient(145deg,#153f55 0%,#103247 48%,#0b2636 100%)!important;
}
.kpi label{color:#bad0db!important}
.kpi .kpi-sub{font-size:9px;color:#7fa3b4;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi .kpi-sub.positive{color:#79cba4!important}
.performance-kpi{min-width:0!important}
.performance-kpi .performance-relative{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme="light"] .kpi{
  background:linear-gradient(145deg,#e9f7fd 0%,#f1faff 48%,#f8fdff 82%,#ffffff 100%)!important;
  border-color:#bad9e8!important;
  box-shadow:inset 0 1px 0 #ffffff,0 8px 24px #3a83a318!important;
}
html[data-theme="light"] .kpi:hover{
  background:linear-gradient(145deg,#def2fb 0%,#edf8fd 52%,#f8fdff 100%)!important;
  border-color:#91c5dc!important;
}
html[data-theme="light"] .kpi label{color:#547181!important}
html[data-theme="light"] .kpi .kpi-sub{color:#7694a3}
html[data-theme="light"] .kpi .kpi-sub.positive{color:#2a8659!important}
@media(max-width:1200px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important}.kpi{height:auto;min-height:112px!important}}
@media(max-width:900px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){.kpis{grid-template-columns:1fr 1fr!important}.kpi{min-height:105px!important;padding:11px!important}.kpi strong{font-size:16px!important}}


/* -------------------------------------------------------------------------
   Finora v0.10.12 — positive interest marker + unified dividend KPI surface
   ------------------------------------------------------------------------- */
.kpi-plus{
  display:inline-block;
  font-size:.58em;
  font-weight:900;
  vertical-align:super;
  margin-right:4px;
  line-height:1;
  color:#59d994;
}

/* Dividend status cards now use the same restrained blue separation as overview KPIs. */
#dividend-metrics .metric-card,
#dividend-metrics .metric-paid,
#dividend-metrics .metric-estimate,
#dividend-metrics .metric-payments,
#dividend-metrics .metric-upcoming{
  background:linear-gradient(145deg,#12384c 0%,#0e2d3f 45%,#0a2231 78%,#091d2a 100%)!important;
  border-color:#2b5368!important;
  box-shadow:inset 0 1px 0 #ffffff0a,0 8px 25px #087fb412!important;
}
#dividend-metrics .metric-card:hover{
  border-color:#3b6b82!important;
  background:linear-gradient(145deg,#153f55 0%,#103247 48%,#0b2636 100%)!important;
}
#dividend-metrics .metric-card:before{background:#2aaee8!important;opacity:.72}
#dividend-metrics .metric-card small{color:#bad0db!important}
#dividend-metrics .metric-card span{color:#7fa3b4!important}
html[data-theme="light"] #dividend-metrics .metric-card,
html[data-theme="light"] #dividend-metrics .metric-paid,
html[data-theme="light"] #dividend-metrics .metric-estimate,
html[data-theme="light"] #dividend-metrics .metric-payments,
html[data-theme="light"] #dividend-metrics .metric-upcoming{
  background:linear-gradient(145deg,#e9f7fd 0%,#f1faff 48%,#f8fdff 82%,#ffffff 100%)!important;
  border-color:#bad9e8!important;
  box-shadow:inset 0 1px 0 #ffffff,0 8px 24px #3a83a318!important;
}
html[data-theme="light"] #dividend-metrics .metric-card:hover{
  background:linear-gradient(145deg,#def2fb 0%,#edf8fd 52%,#f8fdff 100%)!important;
  border-color:#91c5dc!important;
}
html[data-theme="light"] #dividend-metrics .metric-card small{color:#547181!important}
html[data-theme="light"] #dividend-metrics .metric-card span{color:#7694a3!important}


/* -------------------------------------------------------------------------
   Finora v0.10.13 — neutral interest KPIs + fullscreen control
   ------------------------------------------------------------------------- */
.fullscreen-btn{
  width:39px;height:39px;display:grid;place-items:center;flex:0 0 auto;
  border:1px solid #274858;border-radius:9px;
  background:linear-gradient(180deg,#0d2735,#0a202d);
  color:#b9cbd4;cursor:pointer;transition:.16s ease;
}
.fullscreen-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fullscreen-btn:hover{color:#f2fbff;border-color:#3b7189;background:linear-gradient(180deg,#123447,#0c2938)}
.fullscreen-btn.active{color:#39c6ff;border-color:#168fc1;background:linear-gradient(180deg,#10384c,#0c2c3d);box-shadow:0 0 0 1px #1fb6f21a inset}
html[data-theme="light"] .fullscreen-btn{border-color:#c6dbe5;background:linear-gradient(180deg,#ffffff,#edf5f8);color:#506d7b;box-shadow:0 4px 14px #35657a0b}
html[data-theme="light"] .fullscreen-btn:hover{color:#0b6f99;border-color:#8fc7dc;background:linear-gradient(180deg,#f8fdff,#e6f4fa)}
html[data-theme="light"] .fullscreen-btn.active{color:#087fae;border-color:#69b8d5;background:linear-gradient(180deg,#e4f6fd,#d9f0f9)}
@media(max-width:720px){.fullscreen-btn{width:36px;height:36px}.fullscreen-btn svg{width:16px;height:16px}}


/* =========================================================
   Finora v0.10.14 — cleaner login card
   ========================================================= */


/* =========================================================
   Finora v0.10.16 — reliable login → dashboard transition
   ========================================================= */
.finora-entry-transition{
  position:fixed;inset:0;z-index:100000;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(circle at 50% 42%,#0c2c3d 0%,#071a25 36%,#04111a 72%,#020a10 100%);
  color:#edfaff;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .48s ease,visibility .48s step-end;isolation:isolate;
}
html.finora-entry-pending .finora-entry-transition{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .28s ease,visibility 0s}
html.finora-entry-pending .login-stage{opacity:0;transform:scale(.985);filter:blur(5px);transition:opacity .34s ease,transform .34s ease,filter .34s ease}
html.finora-entry-pending .app-shell{opacity:0;transform:scale(.997);transition:opacity .45s ease,transform .45s ease}
html:not(.finora-entry-pending) .app-shell{opacity:1;transform:none;transition:opacity .45s ease,transform .45s ease}
.finora-entry-transition.is-leaving{opacity:0!important;pointer-events:none!important}
.finora-entry-grid{position:absolute;inset:-12%;opacity:.18;background-image:linear-gradient(#5acfff18 1px,transparent 1px),linear-gradient(90deg,#5acfff18 1px,transparent 1px);background-size:58px 58px;transform:perspective(780px) rotateX(64deg) translateY(24%);transform-origin:center bottom;animation:finoraGridDrift 8s linear infinite}
.finora-entry-glow{position:absolute;width:48vw;height:48vw;max-width:720px;max-height:720px;border-radius:50%;filter:blur(80px);opacity:.14}
.finora-entry-glow-a{left:-18vw;top:-24vw;background:#1aa8ed;animation:finoraGlow 6s ease-in-out infinite alternate}
.finora-entry-glow-b{right:-22vw;bottom:-28vw;background:#28d5b0;animation:finoraGlow 7s 1s ease-in-out infinite alternate-reverse}
.finora-market-scene{position:absolute;inset:8% 4% 8%;opacity:.72}
.finora-market-chart{position:absolute;left:-2%;right:-2%;bottom:6%;width:104%;height:48%;overflow:visible}
.finora-market-area{fill:url(#finoraEntryArea);opacity:.88}
.finora-market-line{fill:none;stroke:#45caf7;stroke-width:2.4;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-dasharray:1450;stroke-dashoffset:1450;filter:drop-shadow(0 0 8px #25bff177);animation:finoraTrace 1.65s cubic-bezier(.22,.75,.26,1) forwards}
.finora-market-line-soft{stroke:#89e6ff;stroke-width:7;opacity:.08;filter:blur(5px);animation-duration:1.9s}
.finora-market-points circle{fill:#b7efff;stroke:#0d7fa8;stroke-width:2;opacity:0;filter:drop-shadow(0 0 5px #39c9ff);animation:finoraPoint .55s 1.05s ease forwards}
.finora-candles{position:absolute;inset:15% 7% 16%;opacity:.30}
.finora-candles i{position:absolute;left:var(--x);bottom:var(--b);width:5px;height:var(--h);border-radius:3px;background:#39d9a0;box-shadow:0 0 12px #39d9a033;transform-origin:center bottom;animation:finoraCandle 1.15s var(--d) ease both}
.finora-candles i:before{content:"";position:absolute;left:2px;top:-13px;width:1px;height:calc(100% + 26px);background:currentColor;color:#39d9a0;opacity:.75}
.finora-candles i.down{background:#59a8d9}.finora-candles i.down:before{color:#59a8d9}
.finora-entry-center{position:relative;z-index:4;display:flex;flex-direction:column;align-items:center;text-align:center;transform:translateY(-2vh)}
.finora-entry-mark-wrap{position:relative;width:92px;height:92px;display:grid;place-items:center;margin-bottom:20px}
.finora-entry-mark-wrap>span{position:absolute;inset:-10px;border:1px solid #4dcfff45;border-radius:30px;animation:finoraRing 2.2s ease-in-out infinite}
.finora-entry-mark-wrap:after{content:"";position:absolute;inset:-23px;border:1px solid #4dcfff16;border-radius:38px;animation:finoraRing 2.2s .25s ease-in-out infinite}
.finora-entry-mark{width:76px;height:76px;border-radius:24px;display:grid;place-items:center;font-size:38px;font-weight:900;letter-spacing:-2px;color:#03121a;background:linear-gradient(145deg,#76dcff,#20afe8 58%,#23c9c2);box-shadow:0 18px 52px #0db4ec42,0 0 0 1px #a9edff52 inset}
.finora-entry-name{font-size:27px;font-weight:900;letter-spacing:.24em;margin-right:-.24em;text-shadow:0 0 22px #58d6ff2e}
.finora-entry-status{height:20px;margin-top:13px;display:flex;align-items:center;gap:9px;color:#8fb6c8;font-size:11px;font-weight:750;letter-spacing:.04em}
.finora-entry-status b{display:flex;gap:4px}.finora-entry-status b i{width:4px;height:4px;border-radius:50%;background:#52cdf8;animation:finoraDots 1.1s infinite ease-in-out}.finora-entry-status b i:nth-child(2){animation-delay:.15s}.finora-entry-status b i:nth-child(3){animation-delay:.3s}
.finora-entry-progress{width:190px;height:2px;margin-top:18px;border-radius:99px;background:#4fcfff19;overflow:hidden}
.finora-entry-progress span{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,transparent,#43cbf8,#55e1bb,transparent);animation:finoraProgress 1.15s ease-in-out infinite}
.finora-entry-transition.is-ready .finora-entry-mark{box-shadow:0 18px 52px #27d7a03d,0 0 0 1px #b9ffe456 inset;background:linear-gradient(145deg,#8cf0c8,#3bd59d 55%,#29bdf3)}
.finora-entry-transition.is-ready .finora-entry-progress span{width:100%;animation:none;background:linear-gradient(90deg,#29bdf3,#48dda9)}
@keyframes finoraTrace{to{stroke-dashoffset:0}}
@keyframes finoraPoint{to{opacity:.9}}
@keyframes finoraGridDrift{to{background-position:58px 58px}}
@keyframes finoraGlow{from{transform:scale(.86) translate3d(0,0,0)}to{transform:scale(1.08) translate3d(4vw,2vh,0)}}
@keyframes finoraCandle{0%{opacity:0;transform:scaleY(.15)}100%{opacity:1;transform:scaleY(1)}}
@keyframes finoraRing{0%,100%{opacity:.22;transform:scale(.92)}50%{opacity:.65;transform:scale(1.04)}}
@keyframes finoraDots{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@keyframes finoraProgress{0%{transform:translateX(-130%)}100%{transform:translateX(350%)}}
html[data-theme="light"] .finora-entry-transition{background:radial-gradient(circle at 50% 42%,#f8fdff 0%,#edf8fc 42%,#e4f1f6 74%,#dceaf0 100%);color:#123847}
html[data-theme="light"] .finora-entry-grid{opacity:.24;background-image:linear-gradient(#158cb118 1px,transparent 1px),linear-gradient(90deg,#158cb118 1px,transparent 1px)}
html[data-theme="light"] .finora-entry-status{color:#5e8190}
html[data-theme="light"] .finora-entry-name{text-shadow:none}
html[data-theme="light"] .finora-entry-mark{box-shadow:0 18px 48px #349ac22b,0 0 0 1px #ffffff80 inset}
@media(max-width:700px){.finora-market-scene{inset:10% -18%}.finora-entry-mark-wrap{width:82px;height:82px}.finora-entry-mark{width:68px;height:68px;border-radius:21px;font-size:34px}.finora-entry-name{font-size:23px}.finora-entry-grid{background-size:44px 44px}}
.login-paused .login-visual-line,.login-paused .login-visual-bars,.login-paused .login-visual-donut{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.finora-entry-grid,.finora-entry-glow,.finora-market-line,.finora-market-points circle,.finora-candles i,.finora-entry-mark-wrap>span,.finora-entry-mark-wrap:after,.finora-entry-status b i,.finora-entry-progress span{animation:none!important}.finora-market-line{stroke-dashoffset:0}.finora-market-points circle{opacity:.85}.finora-entry-transition,.login-stage,.app-shell{transition-duration:.12s!important}}

/* v0.10.16: browser-safe overlay compositing (Safari / Chromium on macOS). */
.finora-entry-transition{
  width:100vw;height:100dvh;min-height:100vh;
  -webkit-transform:translateZ(0);transform:translateZ(0);
  -webkit-backface-visibility:hidden;backface-visibility:hidden;
  contain:layout paint;
}
html.finora-entry-pending,html.finora-entry-pending body{overflow:hidden}
html.finora-entry-pending .finora-entry-transition{display:grid}
@supports not (height:100dvh){.finora-entry-transition{height:100vh}}


/* =========================================================
   Finora v0.10.18 — instant navigation + settings cleanup + complete light theme
   ========================================================= */
.sidebar-logout{
  width:calc(100% - 8px);height:35px;margin:-3px 4px 10px;padding:0 11px;
  display:flex;align-items:center;gap:9px;border:1px solid #3d4650;border-radius:9px;
  background:linear-gradient(180deg,#0b1c28,#091923);color:#9baeb8;
  cursor:pointer;transition:.16s ease;text-align:left;
}
.sidebar-logout span{width:20px;text-align:center;font-size:16px;color:#d17e86;transform:rotate(180deg)}
.sidebar-logout b{font-size:10px;font-weight:700}
.sidebar-logout:hover{border-color:#74404a;color:#f0cbd0;background:linear-gradient(180deg,#241a21,#17171d)}
.sidebar-logout:hover span{color:#ff7b88}
.sidebar-logout:disabled{opacity:.55;cursor:wait}

.sync-btn{
  height:40px;padding:0 14px;border:1px solid #2a9d61;border-radius:10px;
  background:linear-gradient(180deg,#24b86f,#159455);color:#f4fff9;
  font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;
  box-shadow:inset 0 1px 0 #ffffff18,0 7px 20px #0e8d4d24;
  transition:.16s ease;white-space:nowrap;
}
.sync-btn span{font-size:17px;margin-right:7px}
.sync-btn:hover:not(:disabled){border-color:#43ce83;background:linear-gradient(180deg,#2bc97a,#18a25d);box-shadow:inset 0 1px 0 #ffffff22,0 8px 22px #159b562e}
.sync-btn:disabled{opacity:.55;cursor:wait}

/* Settings — grouped, easier to scan */
.settings-page{max-width:1180px;margin:0 auto 40px}
.settings-heading{margin-bottom:14px}
.settings-grid,.settings-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;align-items:start}
.settings-section-grid{align-items:stretch}.settings-section{min-width:0}
.settings-system-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:13px}
.settings-subheading{display:flex;align-items:center;justify-content:space-between;margin:22px 2px 10px}.settings-subheading h3{margin:0;font-size:15px;color:#c5d9e2}
.own-t212-credentials{display:grid;grid-template-columns:150px minmax(160px,1fr) minmax(160px,1fr);gap:10px;padding:15px 0 13px;border-top:1px solid #183544}.own-t212-credentials label{display:grid;gap:6px}.own-t212-credentials label>span{font-size:9px;color:#8196a2}.own-t212-credentials input,.own-t212-credentials select{height:40px;border:1px solid #244758;background:#071923;color:#e7f1f5;border-radius:9px;padding:0 11px;outline:none}.own-t212-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}

.own-t212-readonly-confirm{grid-column:1/-1!important;display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px!important;padding:12px 13px;border:1px solid #27516a;border-radius:10px;background:rgba(16,55,75,.42);color:#dceaf0}.own-t212-readonly-confirm input{width:18px!important;height:18px!important;min-width:18px;margin:1px 0 0;padding:0!important;accent-color:#39c785}.own-t212-readonly-confirm span{font-size:11px!important;line-height:1.45;color:#b9d1dc!important}.own-t212-onboarding{grid-column:1/-1;padding:14px;border:1px solid #21495f;border-radius:11px;background:rgba(5,24,34,.72);display:grid;gap:10px}.own-t212-onboarding-head,.own-t212-onboarding-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.own-t212-onboarding-head strong{font-size:12px;color:#e8f3f7}.own-t212-onboarding-head b{font-size:13px;color:#58d99a;white-space:nowrap}.own-t212-onboarding-segments{display:grid;grid-template-columns:repeat(28,minmax(3px,1fr));gap:3px}.own-t212-onboarding-segment{height:9px;border-radius:3px;background:#173746;border:1px solid #244b5d;transition:none}.own-t212-onboarding-segment.filled{background:#38c982;border-color:#52dda0;box-shadow:0 0 7px rgba(56,201,130,.22)}.own-t212-onboarding-meta{font-size:10px;color:#89a7b5}.own-t212-onboarding.complete{border-color:#2d8b62;background:rgba(15,72,50,.22)}.own-t212-onboarding.failed{border-color:#7c3f48;background:rgba(93,33,43,.18)}.own-t212-onboarding.failed #own-t212-onboarding-percent,.own-t212-onboarding.failed #own-t212-onboarding-result{color:#ff9fa9}.own-t212-onboarding.complete #own-t212-onboarding-result{color:#70e0a9}html[data-theme="light"] .own-t212-readonly-confirm{background:#eef8fb;border-color:#bfd8e3;color:#23414f}html[data-theme="light"] .own-t212-readonly-confirm span{color:#41616f!important}html[data-theme="light"] .own-t212-onboarding{background:#f7fbfc;border-color:#c8dfe8}html[data-theme="light"] .own-t212-onboarding-head strong{color:#233f4d}html[data-theme="light"] .own-t212-onboarding-segment{background:#e1ecef;border-color:#d0e0e5}html[data-theme="light"] .own-t212-onboarding-segment.filled{background:#2eb977;border-color:#249763}
html[data-theme="light"] .settings-subheading h3{color:#2b424e}html[data-theme="light"] .own-t212-credentials{border-top-color:#dfe8ec}html[data-theme="light"] .own-t212-credentials input,html[data-theme="light"] .own-t212-credentials select{background:#fff;color:#213641;border-color:#cad9df}
.settings-group{padding:0 16px 3px;min-height:0}
.settings-group-wide{grid-column:1/-1}
.settings-group-head{display:flex;align-items:center;gap:11px;padding:17px 2px 13px;border-bottom:1px solid #183544}
.settings-group-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(145deg,#0d4058,#0a2838);border:1px solid #24546a;color:#51cfff;font-size:15px}
.settings-group-head h3{margin:0;font-size:13px}
.settings-group-head p{margin:3px 0 0;color:#8196a2;font-size:9px;line-height:1.4}
.settings-group .setting-row:first-of-type{border-top:0}

/* Light theme — components that previously kept dark-only surfaces */
html[data-theme="light"] .sidebar-logout{border-color:#d2dfe5;background:linear-gradient(180deg,#ffffff,#f4f8fa);color:#607784}
html[data-theme="light"] .sidebar-logout span{color:#ad6570}
html[data-theme="light"] .sidebar-logout:hover{border-color:#e0aeb5;background:linear-gradient(180deg,#fffafa,#fff4f5);color:#8f3947}
html[data-theme="light"] .sync-btn{border-color:#71c99a;background:linear-gradient(180deg,#35bd78,#22a564);color:#fff;box-shadow:inset 0 1px 0 #ffffff42,0 6px 18px #168b4b24}
html[data-theme="light"] .sync-btn:hover:not(:disabled){border-color:#4fbc82;background:linear-gradient(180deg,#3bc981,#22ae68)}
html[data-theme="light"] .settings-group-head{border-bottom-color:#dfe8ec}
html[data-theme="light"] .settings-group-icon{background:linear-gradient(145deg,#eaf7fc,#dff1f8);border-color:#bfdce8;color:#087fae}
html[data-theme="light"] .settings-group-head p{color:#667b86}

html[data-theme="light"] .calendar-toolbar{background:transparent}
html[data-theme="light"] .filter-chip{background:#ffffff;border-color:#cbdce4;color:#58707c;box-shadow:0 3px 10px #244b5d08}
html[data-theme="light"] .filter-chip:hover{background:#eef8fc;border-color:#9bcfe2;color:#146b8d}
html[data-theme="light"] .filter-chip.active{background:linear-gradient(180deg,#e3f5fc,#d8eff8);border-color:#72c3e1;color:#087eae;box-shadow:inset 0 0 0 1px #ffffff80}
html[data-theme="light"] .event-row,html[data-theme="light"] .news-item{border-top-color:#dce7ec;color:#18323f}
html[data-theme="light"] .event-row:hover,html[data-theme="light"] .news-item:hover{background:#eef7fa}
html[data-theme="light"] .event-main small{color:#6f838e}
html[data-theme="light"] .event-main span{color:#647b87}
html[data-theme="light"] .event-type{color:#55717e;border-color:#c8dce5;background:#f1f7f9}
html[data-theme="light"] .news-meta>span{color:#087aa7;background:#e9f7fc;border-color:#bee1ee}
html[data-theme="light"] .news-meta small{color:#6f838e}
html[data-theme="light"] .news-item p{color:#617884}
html[data-theme="light"] .date-chip{border-color:#c6dbe4;background:#eef7fa;color:#345666}
html[data-theme="light"] .calendar-event{border-top-color:#dce7ec}

html[data-theme="light"] .detail-loading{color:#667d88}
html[data-theme="light"] .detail-header p{color:#667d88}
html[data-theme="light"] .detail-grid>section,
html[data-theme="light"] .detail-section,
html[data-theme="light"] .event-detail-box,
html[data-theme="light"] .article-text{
  background:#f8fbfc;border-color:#d3e2e8;color:#294a59;
}
html[data-theme="light"] .section-title span{color:#6c818c}
html[data-theme="light"] .detail-table th{background:#edf3f6;color:#607681}
html[data-theme="light"] .detail-table td{border-top-color:#dde7eb;color:#294a59}
html[data-theme="light"] .event-detail-box>div{background:#ffffff;border-color:#d7e4e9}
html[data-theme="light"] .event-detail-box small{color:#6d838e}
html[data-theme="light"] .article-text{color:#4e6875}
html[data-theme="light"] .external-link{color:#087fae;border-color:#b9d8e5;background:#eef8fc}
html[data-theme="light"] .external-link:hover{border-color:#5bb9dc;color:#075f83;background:#e5f5fb}
html[data-theme="light"] .allocation-position{border-color:#d5e3e9;background:#ffffff;color:#18323f}
html[data-theme="light"] .allocation-position:hover{border-color:#9bcddd;background:#eef7fa}
html[data-theme="light"] .allocation-position small{color:#6d818c}
html[data-theme="light"] .allocation-position>span{color:#3f5d6b}

html[data-theme="light"] .trade-chart-wrap{border-color:#cfdfe6;background:linear-gradient(180deg,#ffffff,#f5f9fb);box-shadow:inset 0 1px 0 #fff}
html[data-theme="light"] .trade-chart-note,html[data-theme="light"] .trade-legend{color:#667d88}
html[data-theme="light"] .trade-grid{stroke:#dbe6eb}
html[data-theme="light"] .trade-axis{fill:#6e838e}
html[data-theme="light"] .trade-marker circle{stroke:#ffffff}
html[data-theme="light"] .trade-event-card{background:#ffffff;border-color:#d7e4e9}
html[data-theme="light"] .trade-event-card small{color:#718590}
html[data-theme="light"] .trade-event-card span{color:#496571}
html[data-theme="light"] .position-range-btn{border-color:#c8dbe3;background:#f7fafb;color:#617985}
html[data-theme="light"] .position-range-btn:hover{color:#116f94;border-color:#8fc8dd;background:#edf8fc}
html[data-theme="light"] .position-range-btn.active{color:#ffffff;border-color:#168fc0;background:#1596c8;box-shadow:none}
html[data-theme="light"] .projection-chart-wrap{border-top-color:#dce7ec}
html[data-theme="light"] .secret-note{border-color:#c8dfe8;background:#eef8fb;color:#54717e}
html[data-theme="light"] .password-strength-note{border-color:#d3e2e8;background:#f4f8fa;color:#667d88}
html[data-theme="light"] .ai-result{background:#f8fbfc;border-color:#d5e3e9;color:#294a59}
html[data-theme="light"] .drop-zone{background:#f6fafb;border-color:#a9cfdc;color:#294a59}

@media(max-width:900px){
  .settings-grid{grid-template-columns:1fr}.settings-group-wide{grid-column:auto}
  .sync-btn{height:40px;padding:0 12px;font-size:10px}
}
@media(max-width:560px){
  .sync-btn{height:38px;width:38px;padding:0;font-size:0}
  .sync-btn span{font-size:18px;margin:0}
  .settings-group{padding-left:12px;padding-right:12px}
  .settings-group .setting-row{align-items:flex-start;flex-direction:column;gap:10px}
}

/* =========================================================
   Finora v0.10.19 — blue sidebar + API inside Settings + info-first copy
   ========================================================= */
/* Sidebar is optically separated with the same restrained blue family as KPI cards. */
.sidebar{
  background:linear-gradient(165deg,#103247 0%,#0c293a 44%,#092130 72%,#071a27 100%)!important;
  border-right-color:#2a5064!important;
  box-shadow:inset -1px 0 0 #ffffff05,8px 0 28px #007fb00c;
}
.profile-card{background:linear-gradient(155deg,#0d2b3c,#0a2230)!important;border-color:#294b5d!important}
.sidebar-logout{background:linear-gradient(155deg,#0d2b3b,#091f2c)!important;border-color:#315063!important}
html[data-theme="light"] .sidebar{
  background:linear-gradient(165deg,#e9f7fd 0%,#eff9fd 48%,#f6fcfe 78%,#fbfeff 100%)!important;
  border-right-color:#b9d9e7!important;
  box-shadow:inset -1px 0 0 #ffffff,8px 0 28px #2b72900f;
}
html[data-theme="light"] .profile-card{background:linear-gradient(155deg,#f7fcff,#edf7fb)!important;border-color:#c4dde8!important}
html[data-theme="light"] .sidebar-logout{background:linear-gradient(155deg,#f7fcff,#eef7fb)!important;border-color:#cadde6!important}

/* Page-level explanatory copy is now reduced to one unobtrusive info control. */
.page-info-heading{min-height:28px!important;margin:0 0 9px!important;align-items:center!important}
.page-info-only{display:flex;align-items:center;min-height:20px}
.page-info-tip{width:18px;height:18px}
.page-info-heading .search-input{margin-left:auto}

/* Consistent title + info layouts across cards, Settings and API. */
.settings-group-title,.setting-label-with-info,.api-title-with-info,.tax-label-with-info{
  display:flex;align-items:center;gap:7px;min-width:0;
}
.settings-group-title h3,.api-title-with-info h3{margin:0}
.setting-label-with-info strong{display:block}
.tax-label-with-info{width:max-content;max-width:100%}
.settings-group-head>div{min-width:0}
.settings-group-head{padding-bottom:14px}

/* API is now a subsection of Settings instead of a top-level navigation page. */
.settings-api-section{margin-top:14px}
.settings-api-heading{display:flex;align-items:center;justify-content:space-between;margin:0 2px 10px}
.settings-api-heading h3{font-size:14px;margin:0}
.settings-api-section .api-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.settings-api-section .api-card{
  grid-template-columns:42px minmax(0,1fr) auto;
  min-height:78px;padding:14px 15px;
}
.settings-api-section .api-icon{width:38px;height:38px;border-radius:11px}
.settings-api-section .api-actions{gap:7px}
.settings-api-section .api-title-with-info .info-tip{width:16px;height:16px;font-size:9px}
.settings-api-section #market-cache-status{margin-top:5px}

/* Static explanatory subtitles have been removed from the layout; dynamic statuses remain visible. */
.card-head .overview-title-with-info{align-items:center}

@media(max-width:980px){
  .settings-api-section .api-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .settings-api-section .api-card{grid-template-columns:38px minmax(0,1fr)}
  .settings-api-section .api-actions{grid-column:2;justify-content:flex-start}
  .page-info-heading{gap:10px}
}


/* Finora v0.10.20 — cleaner page headers + contextual info only */
.forecast-label-with-info{display:flex;align-items:center;gap:7px;min-width:0}
.forecast-label-with-info small{margin:0}
.page-controls-heading{min-height:0;margin-bottom:14px;justify-content:flex-end}
.tax-page-heading.page-controls-heading{justify-content:flex-end}
.settings-heading{margin-bottom:18px}


/* =========================================================
   Finora v0.10.21 — interface alignment + hidden upgrade history
   ========================================================= */

/* The info control must keep its compact circular geometry even inside
   forecast text, where generic span rules previously distorted it. */
.info-tip{padding:0!important;text-align:center;-webkit-appearance:none;appearance:none}
.forecast-copy .info-tip{
  display:inline-grid!important;width:17px!important;height:17px!important;min-width:17px!important;
  max-width:17px!important;margin:0!important;line-height:1!important;color:#8da7b5!important;
}
html[data-theme="light"] .forecast-copy .info-tip{color:#728994!important}
.forecast-label-with-info{align-items:center!important}

/* Fullscreen is now a labelled top-bar control, matching the other actions. */
.fullscreen-btn{
  width:auto!important;height:40px!important;min-width:128px;padding:0 12px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
  border-radius:9px!important;white-space:nowrap;font-size:11px;font-weight:700;
}
.fullscreen-btn svg{width:17px!important;height:17px!important;flex:0 0 auto}
.fullscreen-label{display:inline-block;line-height:1}

/* Settings summary cards are one clean, equal-height row on desktop. */
.settings-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:13px!important;align-items:stretch!important;
}
.settings-group,.settings-group-wide{
  grid-column:auto!important;height:100%;min-height:238px!important;
}
.settings-group{display:flex;flex-direction:column}
.settings-group .setting-row{flex:1}

/* API cards also keep a consistent footprint. */
.settings-api-section .api-grid{align-items:stretch}
.settings-api-section .api-card{height:100%;min-height:86px!important}

/* Portfolio controls: same height, radius and visual weight; search stays wider. */
.portfolio-table-controls{align-items:center!important;gap:9px!important}
.portfolio-search-group{gap:9px!important}
.portfolio-search-group .search-input,
.portfolio-table-controls .sort-select,
.position-count-pill{
  height:38px!important;min-height:38px!important;border-radius:9px!important;
  border-width:1px!important;font-size:10px!important;
}
.portfolio-search-group .search-input{
  width:300px!important;min-width:300px!important;padding:0 12px!important;
}
.position-count-pill{
  min-width:94px!important;padding:0 12px!important;border-radius:9px!important;
}
.portfolio-table-controls .sort-select{
  width:220px!important;min-width:220px!important;padding:0 31px 0 11px!important;
}

@media(max-width:1180px){
  .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .settings-group,.settings-group-wide{min-height:220px!important}
  .settings-grid .settings-group:last-child{grid-column:1/-1!important}
}
@media(max-width:900px){
  .settings-grid{grid-template-columns:1fr!important}
  .settings-grid .settings-group:last-child{grid-column:auto!important}
  .settings-group,.settings-group-wide{min-height:0!important}
  .portfolio-search-group .search-input,.portfolio-table-controls .sort-select{width:100%!important;min-width:0!important}
  .position-count-pill{min-width:94px!important}
}
@media(max-width:720px){
  .fullscreen-btn{min-width:40px!important;width:40px!important;padding:0!important}
  .fullscreen-label{display:none}
}
@media(max-width:560px){
  .portfolio-search-group{align-items:stretch!important;flex-direction:column!important}
  .position-count-pill{align-self:stretch!important;width:100%!important}
}


/* =========================================================
   Finora v0.10.22 — overview KPI context + complete value
   ========================================================= */
.kpi-label-with-info{
  display:flex;align-items:center;gap:6px;min-width:0;min-height:18px;
}
.kpi-label-with-info label{
  min-width:0;line-height:1.25;
}
.kpi-info-tip{
  width:16px!important;height:16px!important;min-width:16px!important;max-width:16px!important;
  font-size:9px!important;line-height:1!important;flex:0 0 16px!important;
}


/* =========================================================
   Finora v0.10.23 — transparent overview KPI info controls
   ========================================================= */
.kpi-info-tip{
  background:transparent!important;
  box-shadow:none!important;
  border:1px solid #315063!important;
  color:#8da7b5!important;
  font-family:inherit!important;
  font-style:normal!important;
  font-weight:700!important;
}
.kpi-info-tip:hover,.kpi-info-tip:focus{
  background:transparent!important;
  border-color:#18bafa!important;
  color:#dff7ff!important;
}
html[data-theme="light"] .kpi-info-tip{
  background:transparent!important;
  border-color:#aebfc8!important;
  color:#6f858f!important;
}
html[data-theme="light"] .kpi-info-tip:hover,
html[data-theme="light"] .kpi-info-tip:focus{
  background:transparent!important;
  border-color:#56aeca!important;
  color:#11698d!important;
}

/* =========================================================
   Finora v0.10.27 — light surfaces + transaction context
   ========================================================= */
/* Overview calendar: a hover in light mode must remain a light surface. */
html[data-theme="light"] .overview-calendar-card .calendar-item,
html[data-theme="light"] .calendar-card .calendar-item{
  background:#ffffff!important;
}
html[data-theme="light"] .overview-calendar-card .calendar-item:hover,
html[data-theme="light"] .calendar-card .calendar-item:hover{
  background:#ffffff!important;
  color:#14252f!important;
}

/* Dividend monthly chart: keep the complete plotting surface clean white. */
html[data-theme="light"] .dividend-months-card,
html[data-theme="light"] .dividend-months-card .dividend-year-chart,
html[data-theme="light"] .dividend-year-chart .bar-track{
  background:#ffffff!important;
}
html[data-theme="light"] .dividend-year-chart .bar-track{
  border-bottom-color:#dce7ec!important;
}

/* Transactions: metrics first, search directly below them. */
.transaction-search-row{
  display:flex;align-items:center;justify-content:flex-start;
  margin:0 0 13px;
}
.transaction-search-row .search-input{
  width:min(430px,100%);min-width:min(430px,100%);height:38px;padding:0 12px;
  border-radius:9px;
}
.metric-label-with-info{
  display:flex;align-items:center;gap:6px;min-width:0;min-height:17px;
}
.metric-label-with-info small{margin:0!important;min-width:0;line-height:1.25}
.metric-info-tip{
  width:16px!important;height:16px!important;min-width:16px!important;max-width:16px!important;
  flex:0 0 16px!important;font-size:9px!important;
  background:transparent!important;box-shadow:none!important;
  border:1px solid #315063!important;color:#8da7b5!important;
}
.metric-info-tip:hover,.metric-info-tip:focus{
  background:transparent!important;border-color:#18bafa!important;color:#dff7ff!important;
}
html[data-theme="light"] .metric-info-tip{
  background:transparent!important;border-color:#aebfc8!important;color:#6f858f!important;
}
html[data-theme="light"] .metric-info-tip:hover,
html[data-theme="light"] .metric-info-tip:focus{
  background:transparent!important;border-color:#56aeca!important;color:#11698d!important;
}
@media(max-width:560px){
  .transaction-search-row .search-input{width:100%;min-width:0}
}



/* =========================================================
   Finora v0.10.28 — light tax surfaces + clearer dividends
   ========================================================= */
/* Overview calendar: light-theme hover matches the full Calendar section. */
html[data-theme="light"] .overview-calendar-card .calendar-item:hover,
html[data-theme="light"] .calendar-card .calendar-item:hover{
  background:#eef7fa!important;
  color:#14252f!important;
}

/* Taxes: remove dark-only nested surfaces in light mode. */
html[data-theme="light"] .tax-control-card,
html[data-theme="light"] .tax-table-card,
html[data-theme="light"] .tax-disclaimer{
  background:#ffffff!important;
  border-color:#d6e2e8!important;
}
html[data-theme="light"] .tax-input>div{
  background:#ffffff!important;
  border-color:#c9dbe3!important;
}
html[data-theme="light"] .tax-input input{color:#18323f!important}
html[data-theme="light"] .tax-input b,
html[data-theme="light"] .tax-input>span,
html[data-theme="light"] .tax-test small,
html[data-theme="light"] .tax-test span,
html[data-theme="light"] .tax-disclaimer>p,
html[data-theme="light"] .tax-country-source,
html[data-theme="light"] .tax-rate-sub{color:#667b86!important}
html[data-theme="light"] .tax-test{
  background:#ffffff!important;
  border-color:#d8e4e9!important;
  box-shadow:0 3px 12px #244b5d08;
}
html[data-theme="light"] .tax-test strong{color:#233f4c!important}
html[data-theme="light"] .tax-test.pass{
  background:#f1fbf6!important;
  border-color:#bfe2cf!important;
}
html[data-theme="light"] .tax-test.pass strong{color:#11804b!important}
html[data-theme="light"] .tax-test.warn{
  background:#fff8ec!important;
  border-color:#ead0a2!important;
}
html[data-theme="light"] .tax-test.warn strong{color:#a86608!important}
html[data-theme="light"] .tax-disclaimer .info-row{border-color:#e1e9ed!important}

.tax-table-search-row{padding:0 17px 12px}
.tax-table-search-row .search-input{width:min(430px,100%);height:38px;padding:0 12px;border-radius:9px}
/* P041: desktop tax readability, without changing the mobile arrangement. */
@media(min-width:981px){
 [data-view="taxes"] .tax-input>span{font-size:12px;line-height:1.5}
 [data-view="taxes"] .tax-input input{font-size:15px;font-variant-numeric:tabular-nums}
 [data-view="taxes"] .tax-input>div:focus-within{outline:2px solid var(--cyan);outline-offset:2px}
 [data-view="taxes"] .tax-input select:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
 [data-view="taxes"] .tax-input input:disabled{opacity:.55}
 [data-view="taxes"] .tax-simple-help,
 [data-view="taxes"] .tax-test small,
 [data-view="taxes"] .tax-test span,
 [data-view="taxes"] .tax-disclaimer>p{font-size:12px!important;line-height:1.55!important}
 [data-view="taxes"] .tax-test strong{font-size:14px;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
 [data-view="taxes"] .tax-table-card th,
 [data-view="taxes"] .tax-table-card td{font-size:12px;padding:12px}
 [data-view="taxes"] .tax-table-card th:nth-last-child(-n+4),
 [data-view="taxes"] .tax-table-card td:nth-last-child(-n+4){text-align:right;font-variant-numeric:tabular-nums}
 [data-view="taxes"] #tax-sales-body td:nth-child(3),
 [data-view="taxes"] .tax-table-card:has(#tax-sales-body) th:nth-child(3){text-align:right;font-variant-numeric:tabular-nums}
 [data-view="taxes"] .tax-table-card td.empty-cell{text-align:center}
 [data-view="taxes"] #tax-income-result{font-size:13px;line-height:1.6;color:var(--text);margin:14px 17px;overflow-wrap:anywhere}
 [data-view="taxes"] #tax-income-form>button{margin:10px 17px 0;min-height:38px;padding:8px 14px;font-size:13px}
}

/* Dividend header: simpler labels, white/light forecast surface and compact mini stats. */
.forecast-mini-grid{display:grid!important;grid-template-columns:repeat(2,minmax(112px,1fr));gap:10px!important;width:min(360px,100%)}
.forecast-mini{border:1px solid #244758;background:#0a202c;border-radius:11px;padding:12px 14px;min-width:0}
.forecast-mini small{display:block;color:#78909c;font-size:9px;margin-bottom:5px}
.forecast-mini strong{display:block;font-size:14px!important;margin:0!important;color:#dff7ff!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme="light"] .dividend-forecast-card{
  background:linear-gradient(145deg,#ffffff 0%,#f4fbfe 58%,#edf7fb 100%)!important;
  border-color:#c9dfe8!important;
}
html[data-theme="light"] .dividend-forecast-card .forecast-copy small{color:#5f7885!important}
html[data-theme="light"] .dividend-forecast-card .forecast-copy strong{color:#087fac!important}
html[data-theme="light"] .forecast-mini{background:#ffffff;border-color:#d2e1e7;box-shadow:0 4px 14px #244b5d08}
html[data-theme="light"] .forecast-mini small{color:#6b808b!important}
html[data-theme="light"] .forecast-mini strong{color:#294a59!important}
@media(max-width:620px){.forecast-mini-grid{grid-template-columns:1fr 1fr;width:100%}.tax-table-search-row .search-input{width:100%}}


/* =========================================================
   Finora v0.10.29 — true portfolio return + tighter dividends
   ========================================================= */
#dividend-metrics .info-tip,.dividend-forecast-card .info-tip,.upcoming-dividends-card .info-tip,.dividend-projection-card .info-tip,.dividend-months-card .info-tip{background:transparent!important;box-shadow:none!important;border:1px solid #315063!important;color:#8da7b5!important}
#dividend-metrics .info-tip:hover,#dividend-metrics .info-tip:focus,.dividend-forecast-card .info-tip:hover,.dividend-forecast-card .info-tip:focus,.upcoming-dividends-card .info-tip:hover,.upcoming-dividends-card .info-tip:focus,.dividend-projection-card .info-tip:hover,.dividend-projection-card .info-tip:focus,.dividend-months-card .info-tip:hover,.dividend-months-card .info-tip:focus{background:transparent!important;border-color:#18bafa!important;color:#dff7ff!important}
html[data-theme="light"] #dividend-metrics .info-tip,html[data-theme="light"] .dividend-forecast-card .info-tip,html[data-theme="light"] .upcoming-dividends-card .info-tip,html[data-theme="light"] .dividend-projection-card .info-tip,html[data-theme="light"] .dividend-months-card .info-tip{background:transparent!important;border-color:#aebfc8!important;color:#6f858f!important}
html[data-theme="light"] #dividend-metrics .info-tip:hover,html[data-theme="light"] #dividend-metrics .info-tip:focus,html[data-theme="light"] .dividend-forecast-card .info-tip:hover,html[data-theme="light"] .dividend-forecast-card .info-tip:focus,html[data-theme="light"] .upcoming-dividends-card .info-tip:hover,html[data-theme="light"] .upcoming-dividends-card .info-tip:focus,html[data-theme="light"] .dividend-projection-card .info-tip:hover,html[data-theme="light"] .dividend-projection-card .info-tip:focus,html[data-theme="light"] .dividend-months-card .info-tip:hover,html[data-theme="light"] .dividend-months-card .info-tip:focus{border-color:#56aeca!important;color:#11698d!important}
.dividend-top-grid>.card{min-height:285px!important;height:285px!important}
.dividend-top-grid .dividend-forecast-card{min-height:285px!important;padding:25px 28px!important;justify-content:center!important;gap:20px}
.dividend-top-grid .forecast-copy strong{font-size:42px!important;line-height:1.05;margin-top:11px!important;letter-spacing:-1.1px}
.forecast-main-caption{display:block!important;margin-top:7px!important;font-size:9px!important;color:#78909c!important}
.forecast-compact-stat{display:flex!important;align-items:center;justify-content:space-between;gap:18px!important;width:min(380px,100%);margin-top:0!important;padding:12px 15px;border:1px solid #244758;border-radius:11px;background:#0a202c}
.forecast-compact-stat small{margin:0;color:#78909c;font-size:9px}.forecast-compact-stat strong{margin:0!important;color:#dff7ff!important;font-size:18px!important;white-space:nowrap}
html[data-theme="light"] .forecast-compact-stat{background:#fff;border-color:#d2e1e7;box-shadow:0 4px 14px #244b5d08}html[data-theme="light"] .forecast-compact-stat small{color:#6b808b!important}html[data-theme="light"] .forecast-compact-stat strong{color:#294a59!important}
.projection-chart-wrap{overflow-x:hidden!important;padding-left:0!important;padding-right:0!important}
.projection-chart{width:100%!important;min-width:0!important;grid-template-columns:repeat(var(--projection-columns,20),minmax(0,1fr))!important;gap:3px!important}
.projection-bar-col{min-width:0!important}.projection-bar-fill{width:74%!important}.projection-bar-col small{transform:none!important;font-size:7px!important;line-height:1;overflow:visible;margin-bottom:2px!important}
.dividend-history-card .card-head{gap:12px;flex-wrap:wrap}.dividend-history-search{margin-left:auto;width:min(330px,100%);height:38px}
@media(max-width:760px){.dividend-top-grid>.card{height:auto!important;min-height:260px!important}.dividend-history-search{width:100%;margin-left:0}.projection-chart{gap:2px!important}.projection-bar-col small{font-size:6px!important}}

/* =========================================================
   Finora v0.10.30 — richer total return KPI + calendar logos
   ========================================================= */
.portfolio-yield-kpi{
  justify-content:center!important;
  gap:0;
}
.portfolio-yield-kpi>strong{
  margin:5px 0 1px!important;
}
.portfolio-yield-profit{
  font-size:12px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.05px;
  margin-top:0;
}
.portfolio-yield-monthly{
  display:grid;
  grid-template-columns:auto auto;
  justify-content:start;
  align-items:baseline;
  column-gap:6px;
  row-gap:0;
  margin-top:5px;
  font-size:8.5px;
  color:#8098a5;
  line-height:1.15;
}
.portfolio-yield-monthly span{font-weight:600}
.portfolio-yield-monthly b{font-size:9.5px;font-weight:800;color:inherit}
.portfolio-yield-monthly small{grid-column:1/-1;font-size:7.5px;color:#6f8997;margin-top:1px}
.calendar-logo{
  width:26px;
  height:26px;
  min-width:26px;
  min-height:26px;
  border-radius:7px;
  display:grid;
  place-items:center;
  overflow:visible;
  background:transparent;
}
.calendar-logo img{width:100%;height:100%;object-fit:contain;background:transparent;padding:1px}
.calendar-logo .logo-fallback{width:26px;height:26px;border-radius:7px;font-size:8px;font-weight:850;color:#fff}
html[data-theme="light"] .portfolio-yield-monthly{color:#6d8998}
html[data-theme="light"] .portfolio-yield-monthly small{color:#829aa6}
@media(max-width:560px){
  .portfolio-yield-profit{font-size:11px}
  .portfolio-yield-monthly{font-size:8px;margin-top:4px}
  .portfolio-yield-monthly b{font-size:9px}
}

/* =========================================================
   Finora v0.10.31 — cleaner total return + dividend polish
   ========================================================= */
/* Total portfolio return: keep the main value dominant and compress the two
   derived figures into one calm footer row. */
.portfolio-yield-kpi{
  justify-content:flex-start!important;
  gap:0!important;
}
.portfolio-yield-kpi .portfolio-yield-total{
  margin:7px 0 8px!important;
}
.portfolio-yield-summary{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  width:100%;
  margin-top:auto;
}
.portfolio-yield-item{
  min-width:0;
  padding:6px 8px;
  border:1px solid #1d3d4d;
  border-radius:8px;
  background:#0b202c;
}
.portfolio-yield-item span{
  display:block;
  margin:0 0 2px!important;
  color:#7893a1;
  font-size:7.5px;
  line-height:1.1;
  font-weight:650;
  white-space:nowrap;
}
.portfolio-yield-item b{
  display:block;
  font-size:10px;
  line-height:1.15;
  font-weight:850;
  white-space:nowrap;
}
html[data-theme="light"] .portfolio-yield-item{
  background:#f8fcfe;
  border-color:#d4e3e9;
}
html[data-theme="light"] .portfolio-yield-item span{color:#6d8795}
@media(max-width:560px){
  .portfolio-yield-summary{gap:5px}
  .portfolio-yield-item{padding:5px 6px}
  .portfolio-yield-item b{font-size:9px}
}

/* Dividend KPI cards should visually match overview KPI cards: no colored
   side stripe and a single subtle blue surface. */
#dividend-metrics .metric-card:before{display:none!important;content:none!important}
#dividend-metrics .metric-card,
#dividend-metrics .metric-paid,
#dividend-metrics .metric-estimate,
#dividend-metrics .metric-payments,
#dividend-metrics .metric-upcoming{
  background:linear-gradient(145deg,#0d2838 0%,#0b202e 62%,#0a1d2a 100%)!important;
  border-color:#23485c!important;
  box-shadow:0 8px 24px #00000018,inset 0 1px 0 #ffffff05!important;
}
html[data-theme="light"] #dividend-metrics .metric-card,
html[data-theme="light"] #dividend-metrics .metric-paid,
html[data-theme="light"] #dividend-metrics .metric-estimate,
html[data-theme="light"] #dividend-metrics .metric-payments,
html[data-theme="light"] #dividend-metrics .metric-upcoming{
  background:linear-gradient(145deg,#ffffff 0%,#f5fbfe 58%,#eef7fb 100%)!important;
  border-color:#c7dde7!important;
  box-shadow:0 7px 20px #3765790a!important;
}

/* Base metric span rules have higher specificity inside #dividend-metrics.
   Reassert the compact circular info-control geometry explicitly. */
#dividend-metrics .metric-card .metric-info-tip,
#dividend-metrics .metric-card .info-tip{
  display:inline-grid!important;
  place-items:center!important;
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  max-width:16px!important;
  flex:0 0 16px!important;
  margin:0!important;
  padding:0!important;
  border-radius:50%!important;
  font-size:9px!important;
  line-height:1!important;
  background:transparent!important;
  box-shadow:none!important;
  border:1px solid #315063!important;
  color:#8da7b5!important;
}
html[data-theme="light"] #dividend-metrics .metric-card .metric-info-tip,
html[data-theme="light"] #dividend-metrics .metric-card .info-tip{
  background:transparent!important;
  border-color:#aebfc8!important;
  color:#6f858f!important;
}

/* Next-year estimate: tighter, clearer hierarchy. */
.dividend-top-grid>.card{min-height:250px!important;height:250px!important}
.dividend-top-grid .dividend-forecast-card{
  min-height:250px!important;
  padding:22px 26px!important;
  gap:15px!important;
}
.dividend-top-grid .forecast-copy strong{
  font-size:46px!important;
  line-height:1!important;
  margin-top:13px!important;
}
.forecast-main-caption{display:none!important}
.forecast-compact-stat{
  width:min(330px,100%)!important;
  padding:10px 13px!important;
}

/* Upcoming dividend rows: slightly stronger separation, still calm. */
#upcoming-dividends .upcoming-dividend-row{
  background:#0b2230!important;
  border:1px solid #1d3d4c!important;
  box-shadow:0 4px 12px #00000012;
  margin:7px 0!important;
}
#upcoming-dividends .upcoming-dividend-row:first-child{border-top:1px solid #1d3d4c!important}
#upcoming-dividends .upcoming-dividend-row:hover{
  background:#102b3a!important;
  border-color:#315c70!important;
}
html[data-theme="light"] #upcoming-dividends .upcoming-dividend-row{
  background:#fbfdfe!important;
  border-color:#d6e5eb!important;
  box-shadow:0 4px 12px #31576a0b;
}
html[data-theme="light"] #upcoming-dividends .upcoming-dividend-row:first-child{border-top-color:#d6e5eb!important}
html[data-theme="light"] #upcoming-dividends .upcoming-dividend-row:hover{
  background:#eef7fa!important;
  border-color:#b8d4df!important;
}


/* Finora v0.10.32 — stronger blue emphasis for Pies and dividend summary cards */
.pies-overview-card .pie-overview-item,
.portfolio-pie-cards .pie-overview-item{
  background:linear-gradient(145deg,#0d2a3a 0%,#0b2332 58%,#091d2a 100%)!important;
  border-color:#2b5368!important;
  box-shadow:0 8px 22px #00000016,inset 0 1px 0 #ffffff07!important;
}
.pies-overview-card .pie-overview-item:hover,
.portfolio-pie-cards .pie-overview-item:hover{
  background:linear-gradient(145deg,#103247 0%,#0d2939 58%,#0b2231 100%)!important;
  border-color:#39728c!important;
}
html[data-theme="light"] .pies-overview-card .pie-overview-item,
html[data-theme="light"] .portfolio-pie-cards .pie-overview-item{
  background:linear-gradient(145deg,#f9fdff 0%,#eef8fc 58%,#e8f4f9 100%)!important;
  border-color:#bdd9e5!important;
  box-shadow:0 8px 22px #315d720d,inset 0 1px 0 #ffffff!important;
}
html[data-theme="light"] .pies-overview-card .pie-overview-item:hover,
html[data-theme="light"] .portfolio-pie-cards .pie-overview-item:hover{
  background:linear-gradient(145deg,#f4fbfe 0%,#e5f3f9 58%,#deeff6 100%)!important;
  border-color:#9fc9da!important;
}

/* Dividend summary cards: a touch more blue than v0.10.31 while keeping the same clean style. */
#dividend-metrics .metric-card,
#dividend-metrics .metric-paid,
#dividend-metrics .metric-estimate,
#dividend-metrics .metric-payments,
#dividend-metrics .metric-upcoming{
  background:linear-gradient(145deg,#0f3043 0%,#0c2636 58%,#0a202e 100%)!important;
  border-color:#2b586f!important;
  box-shadow:0 9px 25px #0000001d,inset 0 1px 0 #ffffff07!important;
}
#dividend-metrics .metric-card:hover{
  background:linear-gradient(145deg,#12384d 0%,#0f2c3d 58%,#0c2433 100%)!important;
  border-color:#39728c!important;
}
html[data-theme="light"] #dividend-metrics .metric-card,
html[data-theme="light"] #dividend-metrics .metric-paid,
html[data-theme="light"] #dividend-metrics .metric-estimate,
html[data-theme="light"] #dividend-metrics .metric-payments,
html[data-theme="light"] #dividend-metrics .metric-upcoming{
  background:linear-gradient(145deg,#fbfeff 0%,#eef8fc 58%,#e8f4f9 100%)!important;
  border-color:#b9d7e4!important;
  box-shadow:0 8px 22px #315d720d!important;
}
html[data-theme="light"] #dividend-metrics .metric-card:hover{
  background:linear-gradient(145deg,#f6fcff 0%,#e6f4fa 58%,#dff0f7 100%)!important;
  border-color:#9ec8da!important;
}

/* =========================================================
   Finora v0.10.33 — dividend column balance + transactions polish
   ========================================================= */
/* Dividends: left column = forecast + monthly chart, right column = tall upcoming list. */
.dividend-top-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-areas:
    "forecast upcoming"
    "months upcoming";
  grid-template-rows:250px 330px;
  gap:13px!important;
  align-items:stretch!important;
}
.dividend-top-grid .dividend-forecast-card{
  grid-area:forecast;
  height:250px!important;
  min-height:250px!important;
  margin:0!important;
}
.dividend-top-grid .dividend-months-card{
  grid-area:months;
  height:330px!important;
  min-height:330px!important;
  margin:0!important;
  min-width:0;
}
.dividend-top-grid .dividend-months-card .dividend-year-chart{
  height:270px!important;
  padding-top:24px!important;
}
.dividend-top-grid .upcoming-dividends-card{
  grid-area:upcoming;
  height:auto!important;
  min-height:593px!important;
  margin:0!important;
}
.dividend-top-grid .upcoming-dividends-card .event-list{
  max-height:none!important;
  overflow-y:auto!important;
}

/* Transactions: a slightly stronger blue surface, still consistent with the rest of Finora. */
#tx-metrics .metric-card{
  background:linear-gradient(145deg,#0e2d3f 0%,#0b2433 58%,#0a1f2c 100%)!important;
  border-color:#28556b!important;
  box-shadow:0 8px 23px #00000019,inset 0 1px 0 #ffffff06!important;
}
#tx-metrics .metric-card:hover{
  background:linear-gradient(145deg,#12364a 0%,#0e2a3a 58%,#0b2331 100%)!important;
  border-color:#39728c!important;
}
html[data-theme="light"] #tx-metrics .metric-card{
  background:linear-gradient(145deg,#fbfeff 0%,#eef8fc 58%,#e8f4f9 100%)!important;
  border-color:#bdd8e4!important;
  box-shadow:0 8px 22px #315d720c!important;
}
html[data-theme="light"] #tx-metrics .metric-card:hover{
  background:linear-gradient(145deg,#f6fcff 0%,#e7f4fa 58%,#e1f1f7 100%)!important;
  border-color:#a5ccdc!important;
}

/* Transaction KPI info icons: counter the generic .metric-card span rule. */
#tx-metrics .metric-card .metric-info-tip,
#tx-metrics .metric-card .info-tip{
  display:inline-grid!important;
  place-items:center!important;
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  max-width:16px!important;
  flex:0 0 16px!important;
  margin:0!important;
  padding:0!important;
  border-radius:50%!important;
  font-size:9px!important;
  line-height:1!important;
  background:transparent!important;
  box-shadow:none!important;
  border:1px solid #315063!important;
  color:#8da7b5!important;
}
#tx-metrics .metric-card .metric-info-tip:hover,
#tx-metrics .metric-card .metric-info-tip:focus,
#tx-metrics .metric-card .info-tip:hover,
#tx-metrics .metric-card .info-tip:focus{
  background:transparent!important;
  border-color:#18bafa!important;
  color:#dff7ff!important;
}
html[data-theme="light"] #tx-metrics .metric-card .metric-info-tip,
html[data-theme="light"] #tx-metrics .metric-card .info-tip{
  background:transparent!important;
  border-color:#aebfc8!important;
  color:#6f858f!important;
}
html[data-theme="light"] #tx-metrics .metric-card .metric-info-tip:hover,
html[data-theme="light"] #tx-metrics .metric-card .metric-info-tip:focus,
html[data-theme="light"] #tx-metrics .metric-card .info-tip:hover,
html[data-theme="light"] #tx-metrics .metric-card .info-tip:focus{
  border-color:#56aeca!important;
  color:#11698d!important;
}

/* Search now belongs visually to the transaction table card. */
.transaction-table-card{padding-top:0!important;overflow:hidden}
.transaction-table-toolbar{
  display:flex;
  align-items:center;
  min-height:58px;
  padding:10px 14px;
  border-bottom:1px solid #193443;
}
.transaction-table-toolbar .search-input{
  width:min(430px,100%);
  min-width:min(430px,100%);
  height:38px;
  padding:0 12px;
  border-radius:9px;
}
.transaction-table-card .table-wrap.large{margin-bottom:0}
@media(min-width:981px){
 .transaction-table-card th:nth-child(n+5),.transaction-table-card td:nth-child(n+5){text-align:right;font-variant-numeric:tabular-nums}
 .transaction-table-card td:nth-child(3){white-space:normal;min-width:130px;max-width:230px;overflow-wrap:anywhere}
 .transaction-table-card td.empty-cell{text-align:center}
}
#tx-count{display:none}
@media(min-width:901px){
  .transaction-table-toolbar{gap:16px;flex-wrap:wrap}
  #tx-count{display:inline;margin-left:auto;color:var(--muted);font-size:12px}
}
html[data-theme="light"] .transaction-table-toolbar{border-bottom-color:#d9e6eb}

@media(max-width:980px){
  .dividend-top-grid{
    grid-template-columns:1fr!important;
    grid-template-areas:"forecast" "upcoming" "months";
    grid-template-rows:auto!important;
  }
  .dividend-top-grid .dividend-forecast-card{height:auto!important;min-height:240px!important}
  .dividend-top-grid .upcoming-dividends-card{height:auto!important;min-height:430px!important}
  .dividend-top-grid .dividend-months-card{height:auto!important;min-height:330px!important}
  .dividend-top-grid .upcoming-dividends-card .event-list{max-height:520px!important}
}
@media(max-width:560px){
  .transaction-table-toolbar .search-input{width:100%;min-width:0}
}

/* Finora v0.10.34 — unified Calendar market block + equal columns */
.calendar-market-combined{
  overflow:hidden;
  padding:0;
}
.calendar-market-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
}
.calendar-market-pane{
  min-width:0;
  min-height:430px;
  display:flex;
  flex-direction:column;
}
.calendar-market-pane + .calendar-market-pane{
  border-left:1px solid #1d3948;
}
.calendar-market-pane .card-head{
  min-height:55px;
  margin:0;
  padding:12px 15px;
  border-bottom:1px solid #183544;
}
.calendar-market-pane .calendar-full{
  flex:1;
  min-height:0;
  padding:6px 15px 16px;
}
.calendar-market-status{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  min-height:42px;
  padding:9px 15px;
  border-top:1px solid #1d3948;
  background:linear-gradient(180deg,#0b202d,#091b26);
  color:#90a7b3;
  font-size:9.5px;
  line-height:1.35;
}
.calendar-market-status>span{
  border:1px solid #2b5368;
  border-radius:999px;
  padding:3px 7px;
  color:#61c8f2;
  background:#0b2a3a;
  font-weight:700;
  white-space:nowrap;
}
.calendar-market-status>strong{color:#cfe0e7;font-size:9.5px}
.calendar-market-status>small{color:#8198a4;font-size:9px}

html[data-theme="light"] .calendar-market-pane + .calendar-market-pane{
  border-left-color:#d9e5ea;
}
html[data-theme="light"] .calendar-market-pane .card-head{
  border-bottom-color:#dce7ec;
}
html[data-theme="light"] .calendar-market-status{
  border-top-color:#d9e5ea;
  background:linear-gradient(180deg,#f8fcfe,#eff7fa);
  color:#637b87;
}
html[data-theme="light"] .calendar-market-status>span{
  border-color:#b9dce9;
  background:#edf8fc;
  color:#0d7fa9;
}
html[data-theme="light"] .calendar-market-status>strong{color:#315361}
html[data-theme="light"] .calendar-market-status>small{color:#6f858f}

@media(max-width:900px){
  .calendar-market-columns{grid-template-columns:1fr}
  .calendar-market-pane{min-height:0}
  .calendar-market-pane + .calendar-market-pane{border-left:0;border-top:1px solid #1d3948}
  html[data-theme="light"] .calendar-market-pane + .calendar-market-pane{border-top-color:#d9e5ea}
}


/* Finora v0.10.35 — calendar event glyphs + IPO */
.event-glyph{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.event-dollar{font-size:18px;font-weight:900;line-height:1}
.event-ipo-mark{font-size:8px;font-weight:900;letter-spacing:.2px}
.event-icon.ipo{background:#2f2448;border-color:#59447d;color:#c9a7ff}
.ipo-impact{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.ipo-impact>div{border:1px solid #244657;background:#0b2230;border-radius:10px;padding:12px}
.ipo-impact small{display:block;color:#78909e;font-size:9px;margin-bottom:5px;text-transform:uppercase;letter-spacing:.3px}
.ipo-impact strong{display:block;font-size:11px;line-height:1.45;color:#dce9ef}
html[data-theme="light"] .event-icon.ipo{background:#f2ecfb;border-color:#d7c8ee;color:#7954a5}
html[data-theme="light"] .ipo-impact>div{background:#fff;border-color:#d9e6eb}
html[data-theme="light"] .ipo-impact strong{color:#263f4b}
@media(max-width:700px){.ipo-impact{grid-template-columns:1fr}}

.calendar-ipo-wide{margin-top:13px}
.calendar-ipo-wide .ipo-calendar-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.calendar-ipo-wide .event-row{min-width:0}
.event-side .ipo-value{font-size:10px;color:#cbb3ff}
html[data-theme="light"] .event-side .ipo-value{color:#6f5197}
@media(max-width:900px){.calendar-ipo-wide .ipo-calendar-list{grid-template-columns:1fr}}


/* =========================================================
   Finora v0.10.36 — larger Settings + clearer Taxes
   ========================================================= */
/* Settings should use the same visual scale and page width as the other main sections. */
.tax-input select{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}
.tax-income-guide{margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:10px;background:rgba(35,169,222,.06)}
.tax-income-guide p{font-size:12px;line-height:1.6;color:var(--muted);margin:12px 0 0}
.tax-income-guide td,.tax-income-guide th{white-space:normal;font-size:12px;padding:10px 8px}
.tax-income-guide #tax-income-result{color:var(--text);font-weight:600}
.t212-csv-section{border-top:1px solid var(--line);margin-top:14px;padding:18px 0;min-width:0}
.t212-csv-section h3{margin:0 0 10px}.t212-csv-section h4{margin:14px 0 8px;overflow-wrap:anywhere}
#t212-csv-form{display:grid;gap:9px;margin:16px 0}
#t212-csv-form label{font-size:12px;font-weight:600}
#t212-csv-file{width:100%;min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}
#t212-csv-limits,#t212-csv-status{font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.t212-csv-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.t212-csv-documents{display:grid;gap:7px}.t212-csv-documents button{text-align:left;white-space:normal;overflow-wrap:anywhere}
.t212-csv-table{max-width:100%;overflow:auto;max-height:300px;border:1px solid var(--line);border-radius:8px}
.t212-csv-table table{border-collapse:collapse;font-size:11px;width:max-content;min-width:100%}
.t212-csv-table th,.t212-csv-table td{padding:8px;text-align:left;border-bottom:1px solid var(--line);max-width:260px;overflow-wrap:anywhere;white-space:normal}
@media(min-width:721px){
  .page-card .tax-income-guide table{width:100%;min-width:0;table-layout:fixed}
  .page-card .tax-income-guide td,.page-card .tax-income-guide th{white-space:normal;overflow-wrap:anywhere}
}
.settings-page{max-width:1600px!important;margin:0 auto 40px!important}
.settings-heading{margin-bottom:16px!important}
.settings-heading h2{font-size:25px!important}
.settings-grid{gap:16px!important}
.settings-group,.settings-group-wide{
  min-height:276px!important;padding:0 20px 8px!important;border-radius:13px!important;
}
.settings-group-head{padding:20px 2px 16px!important;gap:13px!important}
.settings-group-icon{width:42px!important;height:42px!important;border-radius:12px!important;font-size:17px!important}
.settings-group-head h3,.settings-group-title h3{font-size:15px!important}
.settings-group .setting-row{padding:20px 2px!important;gap:24px!important}
.settings-group .setting-row strong{font-size:13px!important}
.settings-group .setting-row small{font-size:10px!important;line-height:1.45!important}
.settings-page .pill,.settings-page .status-pill{padding:7px 11px!important;font-size:10px!important}
.settings-page .ghost-btn{min-height:36px!important;padding:8px 12px!important;font-size:10px!important}
.settings-page .theme-switch{padding:4px!important}
.settings-page .theme-switch button{min-height:32px!important;padding:0 12px!important;font-size:10px!important}
.settings-api-section{margin-top:18px!important}
.settings-api-heading{margin-bottom:12px!important}
.settings-api-heading h3{font-size:16px!important}
.settings-api-section .api-grid{gap:14px!important}
.settings-api-section .api-card{min-height:108px!important;padding:19px 20px!important;gap:15px!important;border-radius:13px!important}
.settings-api-section .api-icon{width:44px!important;height:44px!important;border-radius:12px!important;font-size:13px!important}
.settings-api-section .api-card h3{font-size:14px!important}
.settings-api-section .api-card .card-subtitle{font-size:9.5px!important;line-height:1.45!important}
@media(max-width:1180px){.settings-group,.settings-group-wide{min-height:245px!important}}
@media(max-width:900px){.settings-group,.settings-group-wide{min-height:0!important}.settings-page{max-width:1600px!important}}
@media(max-width:900px){.settings-section-grid,.settings-system-grid{grid-template-columns:1fr!important}.own-t212-credentials{grid-template-columns:1fr}.own-t212-actions{grid-column:auto;justify-content:flex-start}.own-t212-readonly-confirm,.own-t212-onboarding{grid-column:auto!important}.own-t212-onboarding-segments{gap:2px}.own-t212-onboarding-meta{align-items:flex-start;flex-direction:column}}

/* Taxes: results first, legal-rule reference lower on the page. */
.tax-metrics{margin-top:0!important}
.tax-top-grid{margin-top:0!important}
.tax-rules-card{padding-bottom:15px!important}
.tax-rules-card .card-head{padding-bottom:10px!important}
.tax-rules-summary{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 13px;
  padding:5px 17px 2px;color:#9fb2bc;font-size:10px;line-height:1.45;
}
.tax-rules-summary>strong{grid-column:1/-1;color:#dcebf1;font-size:11px;margin-bottom:1px}
.tax-rules-summary>span{position:relative;padding:9px 11px 9px 26px;border:1px solid #1d3b4a;background:#091e29;border-radius:9px}
.tax-rules-summary>span:before{content:"✓";position:absolute;left:10px;top:9px;color:#43d891;font-weight:800}
.tax-simple-help{display:block!important;color:#76909c!important;font-size:8.5px!important;line-height:1.45!important;margin-top:7px!important;max-width:520px}
.tax-label-with-info>span:first-child{font-weight:700}
.tax-control-card .tax-input{margin-top:14px}
.tax-test span{white-space:normal!important}
html[data-theme="light"] .tax-rules-card{background:#fff!important;border-color:#d6e2e8!important}
html[data-theme="light"] .tax-rules-summary{color:#617985!important}
html[data-theme="light"] .tax-rules-summary>strong{color:#294553!important}
html[data-theme="light"] .tax-rules-summary>span{background:#f7fbfd!important;border-color:#d8e5ea!important}
html[data-theme="light"] .tax-simple-help{color:#667d88!important}
@media(max-width:760px){.tax-rules-summary{grid-template-columns:1fr}.tax-rules-summary>strong{grid-column:auto}}

/* =========================================================
   Finora v0.10.40 — TOTP two-factor authentication
   ========================================================= */
.login-setup-warning.hidden,
.login-form.hidden,
#two-factor-setup-stage.hidden,
.two-factor-qr-stage.hidden,
.two-factor-disable-stage.hidden{display:none!important}
.login-two-factor-copy{display:grid;gap:4px;padding:2px 2px 3px}
.login-two-factor-copy strong{font-size:14px;color:#e7f4f9}
.login-two-factor-copy span{font-size:10px;line-height:1.45;color:#8299a5}
.login-back-btn{border:0;background:transparent;color:#7fa4b5;font-size:10px;cursor:pointer;padding:3px 4px 0;text-align:center}
.login-back-btn:hover{color:#24baf5}
.two-factor-modal-card{width:min(520px,100%)}
.two-factor-qr-wrap{display:flex;justify-content:center;margin:14px 0 12px}
.two-factor-qr-wrap img{display:block;width:220px;max-width:100%;height:auto;padding:12px;background:#fff;border:1px solid #335565;border-radius:14px;box-shadow:0 14px 34px #0005}
.two-factor-secret{margin:0 0 15px;padding:11px 12px;border:1px solid #234758;background:#071b26;border-radius:10px}
.two-factor-secret small{display:block;color:#8199a5;font-size:9px;margin-bottom:6px}
.two-factor-secret code{display:block;color:#45c9ff;font-size:11px;line-height:1.5;word-break:break-all;user-select:all}
.two-factor-qr-stage p,.two-factor-disable-stage p{margin-bottom:14px}
html[data-theme="light"] .login-two-factor-copy strong{color:#25414f}
html[data-theme="light"] .login-two-factor-copy span{color:#687f8b}
html[data-theme="light"] .login-back-btn{color:#5d7a89}
html[data-theme="light"] .two-factor-secret{background:#f5fafc;border-color:#cedfe7}
html[data-theme="light"] .two-factor-secret code{color:#087eae}
html[data-theme="light"] .two-factor-qr-wrap img{border-color:#cfdee5;box-shadow:0 14px 34px #38546424}

/* Finora v0.10.41 — mandatory first-time 2FA enrollment on login */
.login-enroll-qr-wrap{display:flex;justify-content:center;align-items:center;margin:2px 0 4px}
.login-enroll-qr-wrap img{width:190px;height:190px;object-fit:contain;background:#fff;border-radius:16px;padding:10px;box-shadow:0 16px 42px rgba(0,0,0,.24)}
.login-enroll-secret{display:flex;flex-direction:column;gap:5px;align-items:center;text-align:center}
.login-enroll-secret small{color:var(--muted,#7f9aaa);font-size:11px}
.login-enroll-secret code{font-size:11px;word-break:break-all;letter-spacing:.5px;color:var(--text,#e8f5fb)}
html[data-theme="light"] .login-enroll-secret code{color:#173c4b}

/* =========================================================
   Finora v0.10.43 — Calendar logos/unread badge + heatmap
   ========================================================= */
.calendar-nav-item{position:relative}
.nav-notification-badge{
  margin-left:auto;min-width:20px;height:20px;padding:0 6px;border:2px solid #06131d;border-radius:999px;
  display:grid;place-items:center;background:#29d66f;color:#042012;font-style:normal;font-size:9px;font-weight:900;
  line-height:1;box-shadow:0 0 0 1px #53ef98aa,0 0 16px #29d66f66;
}
.nav-notification-badge[hidden]{display:none!important}
html[data-theme="light"] .nav-notification-badge{border-color:#f6fafc;background:#18bf65;color:#fff;box-shadow:0 0 0 1px #0a9e50aa,0 4px 12px #2dbf6c30}

/* Calendar: actual company marks are primary; event type remains a small color dot. */
.calendar-company-logo-wrap{position:relative;width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto}
.calendar-company-logo{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:10px;display:grid;place-items:center;overflow:visible;background:transparent}
.calendar-company-logo img{width:100%;height:100%;object-fit:contain;padding:2px;background:transparent}
.calendar-company-logo .logo-fallback{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:9px;font-weight:900;color:#fff}
.calendar-type-dot{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;border:2px solid #0b1e2b;background:#4fa9d4;box-shadow:0 1px 5px #0009}
.calendar-type-dot.earnings{background:#46b8ff}.calendar-type-dot.dividend{background:#36dc84}.calendar-type-dot.news{background:#ffc45d}.calendar-type-dot.ipo{background:#b891f4}
html[data-theme="light"] .calendar-type-dot{border-color:#fff}

/* Visually separate every calendar row, with a stronger owned-portfolio cue. */
.calendar-market-pane .calendar-full{display:flex!important;flex-direction:column;gap:7px!important;padding-top:11px!important}
.calendar-market-pane .event-row{
  border:1px solid #1c3b4b!important;border-radius:10px!important;background:linear-gradient(180deg,#0a202c,#091b26)!important;
  padding:10px 10px!important;grid-template-columns:40px minmax(0,1fr) auto!important;gap:11px!important;transition:border-color .16s ease,background .16s ease,transform .16s ease;
}
.calendar-market-pane .event-row:hover{transform:translateY(-1px);border-color:#356478!important;background:linear-gradient(180deg,#0d2937,#0a2230)!important}
.portfolio-calendar-pane{background:linear-gradient(180deg,#0b211e22,#0b1e2b00)}
.portfolio-calendar-pane .card-head{background:linear-gradient(90deg,#12332666,#0b1e2b00);box-shadow:inset 3px 0 0 #29d66f}
.portfolio-calendar-pane .event-row{border-color:#21513e!important;box-shadow:inset 3px 0 0 #24b86833}
.portfolio-calendar-pane .event-row:hover{border-color:#2e7c5a!important;background:linear-gradient(180deg,#0d2a25,#0a211f)!important}
.external-calendar-pane .card-head{background:linear-gradient(90deg,#10304455,#0b1e2b00)}
html[data-theme="light"] .calendar-market-pane .event-row{background:#fff!important;border-color:#d8e5ea!important;box-shadow:0 3px 10px #17394a0a}
html[data-theme="light"] .calendar-market-pane .event-row:hover{background:#f3f9fb!important;border-color:#a7cedd!important}
html[data-theme="light"] .portfolio-calendar-pane .card-head{background:linear-gradient(90deg,#e9f8ef,#fff)}
html[data-theme="light"] .portfolio-calendar-pane .event-row{border-color:#c9e9d6!important;box-shadow:inset 3px 0 0 #32b86e33}
html[data-theme="light"] .external-calendar-pane .card-head{background:linear-gradient(90deg,#eaf5fa,#fff)}

.calendar-news-item{display:grid!important;grid-template-columns:38px minmax(0,1fr) auto!important;gap:11px!important;align-items:start!important;padding:11px 10px!important;border:1px solid #1c3b4b!important;border-radius:10px!important;margin:7px 0!important;background:linear-gradient(180deg,#0a202c,#091b26)!important}
.calendar-news-logo{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:10px;display:grid;place-items:center;overflow:visible;background:transparent}
.calendar-news-logo img{width:100%;height:100%;object-fit:contain;padding:2px;background:transparent}
.calendar-news-logo .logo-fallback{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:9px;font-weight:900;color:#fff}
.calendar-news-copy{min-width:0}.calendar-news-copy>strong{display:block;font-size:11px;line-height:1.35;padding-right:8px}.calendar-news-copy p{margin:5px 0 0;color:#8fa2ad;font-size:9px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
html[data-theme="light"] .calendar-news-item{background:#fff!important;border-color:#d8e5ea!important}.calendar-news-copy>strong{min-width:0}
html[data-theme="light"] .calendar-news-copy p{color:#617884}

/* Trading-212-style portfolio heatmap: tile area follows portfolio weight. */
.heatmap-card{margin-top:13px;overflow:hidden;padding-bottom:11px}
.heatmap-head{padding-bottom:9px;gap:16px;flex-wrap:wrap}
.heatmap-legend{display:flex;align-items:center;gap:13px;color:#8ea4af;font-size:9px;white-space:nowrap}
.heatmap-legend span{display:flex;align-items:center;gap:5px}
.heatmap-swatch{width:10px;height:10px;border-radius:3px;border:1px solid #ffffff1c}.heatmap-swatch.down{background:#a83243}.heatmap-swatch.flat{background:#244352}.heatmap-swatch.up{background:#168453}
.portfolio-heatmap{position:relative;height:285px;margin:0 13px;border-radius:10px;overflow:hidden;background:#061721;border:1px solid #193847}
.heatmap-tile{position:absolute;border:1px solid transparent;border-radius:7px;color:white;padding:7px;overflow:hidden;cursor:pointer;text-align:left;appearance:none;-webkit-appearance:none;box-shadow:inset 0 1px 0 #ffffff12;transition:filter .14s ease,transform .14s ease,z-index .14s ease,left .24s ease,top .24s ease,width .24s ease,height .24s ease,border-color .24s ease;will-change:left,top,width,height}
.heatmap-tile:hover{filter:brightness(1.16);transform:scale(.995);z-index:3}
.heatmap-logo{width:25px;height:25px;position:absolute;left:8px;top:8px;border-radius:7px;display:grid;place-items:center;background:#ffffffeb;padding:2px;box-shadow:0 2px 8px #0004}
.heatmap-logo img{width:100%;height:100%;object-fit:contain}.heatmap-logo .logo-fallback{width:21px;height:21px;border-radius:5px;display:grid;place-items:center;font-size:7px;font-weight:900;color:#fff}
.heatmap-copy{height:100%;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;min-width:0}.heatmap-copy strong{font-size:13px;font-weight:900;line-height:1.05;text-shadow:0 1px 3px #0007}.heatmap-copy b{font-size:11px;margin-top:4px;text-shadow:0 1px 3px #0007}.heatmap-name{display:block;align-self:flex-start;margin-top:auto;max-width:100%;font-size:9px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px #0007}.heatmap-value{display:block;align-self:flex-start;font-size:8px;margin-top:2px;color:#e9f4ef;text-shadow:0 1px 3px #0007}.heatmap-tile.small{padding:5px}.heatmap-tile.small .heatmap-logo{width:19px;height:19px;left:5px;top:5px}.heatmap-tile.small .heatmap-logo .logo-fallback{width:15px;height:15px;font-size:6px}.heatmap-tile.small .heatmap-copy strong{font-size:9px}.heatmap-tile.small .heatmap-copy b{font-size:8px;margin-top:2px}.heatmap-tile.medium .heatmap-copy strong{font-size:11px}.heatmap-tile.medium .heatmap-copy b{font-size:9px}
.heatmap-status{padding:7px 16px 0;color:#76909d;font-size:8.5px;line-height:1.4}.heatmap-empty{position:absolute;inset:0;display:grid;place-items:center;color:#78909d;font-size:10px}
html[data-theme="light"] .portfolio-heatmap{background:#e9f1f5;border-color:#d1e0e7}html[data-theme="light"] .heatmap-status{color:#6e838e}html[data-theme="light"] .heatmap-legend{color:#647b87}

@media(max-width:900px){.portfolio-heatmap{height:330px}.heatmap-legend{width:100%;justify-content:flex-start}}
@media(max-width:560px){.portfolio-heatmap{height:390px;margin:0 9px}.heatmap-head{padding-left:13px;padding-right:13px}.heatmap-legend{gap:8px;font-size:8px}.calendar-market-pane .event-row{grid-template-columns:40px minmax(0,1fr)!important}.calendar-market-pane .event-side{grid-column:2!important;justify-self:start!important;align-items:flex-start!important;text-align:left!important}.calendar-news-item{grid-template-columns:36px minmax(0,1fr)!important}.calendar-news-item .importance{grid-column:2!important}}


/* Finora v0.10.44 — continuous heatmap scale + independent Pies status */
.heatmap-scale{gap:3px;align-items:center}.heatmap-scale span{gap:0}.heatmap-scale small{margin-left:7px;font-size:8px;color:#718994;font-weight:700}
.heatmap-scale .heatmap-swatch{width:13px;height:9px;border-radius:2px}
.heatmap-swatch.down.strong{background:#d33648}.heatmap-swatch.down.medium{background:#a13e4c}.heatmap-swatch.down.light{background:#65414a}
.heatmap-swatch.up.light{background:#315e50}.heatmap-swatch.up.medium{background:#238052}.heatmap-swatch.up.strong{background:#12aa5b}
.pie-sync-note{margin-top:10px;padding:9px 11px;border-radius:9px;background:#0d2631;border:1px solid #23424f;color:#8ea8b3;font-size:9px;line-height:1.45}
.pie-sync-note.warning{background:#2b2416;border-color:#62512b;color:#d8bd78}
html[data-theme="light"] .pie-sync-note{background:#eef5f7;border-color:#d4e1e6;color:#607984}html[data-theme="light"] .pie-sync-note.warning{background:#fff7e4;border-color:#ead7a4;color:#846d37}
@media(max-width:700px){.heatmap-scale small{display:none}}


/* =========================================================
   Finora v0.10.45 — heatmap legibility, neutral calendar, larger Pies, session footer
   ========================================================= */
/* Heatmap: larger labels and explicit green/red move text. */
.heatmap-copy strong{font-size:15px!important;font-weight:900!important;letter-spacing:.15px}
.heatmap-copy .heatmap-change{font-size:13px!important;font-weight:900!important;margin-top:5px!important;text-shadow:0 1px 4px #000a!important}
.heatmap-copy .heatmap-change.positive{color:#71ffac!important}
.heatmap-copy .heatmap-change.negative{color:#ff8390!important}
.heatmap-copy .heatmap-change.flat{color:#dce9ee!important}
.heatmap-tile.medium .heatmap-copy strong{font-size:13px!important}
.heatmap-tile.medium .heatmap-copy .heatmap-change{font-size:11px!important}
.heatmap-tile.small .heatmap-copy strong{font-size:11px!important}
.heatmap-tile.small .heatmap-copy .heatmap-change{font-size:9px!important;margin-top:3px!important}

/* Calendar: portfolio side uses the same neutral treatment as events outside portfolio. */
.portfolio-calendar-pane{background:transparent!important}
.portfolio-calendar-pane .card-head{background:linear-gradient(90deg,#10304455,#0b1e2b00)!important;box-shadow:none!important}
.portfolio-calendar-pane .event-row{border-color:#27495a!important;box-shadow:0 3px 10px #0000000d!important;background:linear-gradient(180deg,#0c2431,#0a202c)!important}
.portfolio-calendar-pane .event-row:hover{border-color:#356478!important;background:linear-gradient(180deg,#0d2937,#0a2230)!important}
html[data-theme="light"] .portfolio-calendar-pane .card-head{background:linear-gradient(90deg,#eaf5fa,#fff)!important;box-shadow:none!important}
html[data-theme="light"] .portfolio-calendar-pane .event-row{background:#fff!important;border-color:#d8e5ea!important;box-shadow:0 3px 10px #17394a0a!important}
html[data-theme="light"] .portfolio-calendar-pane .event-row:hover{background:#f3f9fb!important;border-color:#a7cedd!important}

/* Portfolio Pies: larger and easier to scan. */
.portfolio-pie-cards{gap:16px!important;padding:4px 17px 8px!important}
.portfolio-pie-cards .pie-overview-item{min-height:104px!important;padding:17px 18px!important;grid-template-columns:64px minmax(0,1fr) auto!important;gap:15px!important;border-radius:15px!important}
.portfolio-pie-cards .pie-mini-ring{width:60px!important;height:60px!important}
.portfolio-pie-cards .pie-mini-ring span{font-size:10px!important}
.portfolio-pie-cards .pie-card-copy small{font-size:9px!important}
.portfolio-pie-cards .pie-card-copy strong{font-size:14px!important;margin:5px 0!important}
.portfolio-pie-cards .pie-card-copy span{font-size:10px!important}
.portfolio-pie-cards .pie-card-result strong{font-size:13px!important}
.portfolio-pie-cards .pie-card-result small{font-size:10px!important;margin-top:4px!important}
@media(max-width:720px){.portfolio-pie-cards .pie-overview-item{grid-template-columns:58px minmax(0,1fr)!important}.portfolio-pie-cards .pie-card-result{grid-column:2;text-align:left}.portfolio-pie-cards .pie-mini-ring{width:54px!important;height:54px!important}}

/* Sidebar footer: compact signed-in state + logout action, no local-user label. */
.sidebar-session{margin:0 4px 10px;padding:10px;border:1px solid #315063;border-radius:12px;background:linear-gradient(155deg,#0d2b3c,#091f2c);display:flex;flex-direction:column;align-items:stretch;gap:8px;box-shadow:inset 0 1px 0 #ffffff08,0 8px 20px #00000018}
.sidebar-session-state{min-width:0;min-height:26px;display:flex;align-items:center;justify-content:center;gap:7px;color:#b8c9d1;border-bottom:1px solid #ffffff10;padding:0 4px 8px}
.sidebar-session-state i{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#38d67c;box-shadow:0 0 9px #38d67c99}
.sidebar-session-state strong{font-size:10px;font-weight:760;white-space:nowrap;letter-spacing:.15px}
.sidebar-session-logout{width:100%;height:34px;padding:0 10px;border:1px solid #405867;border-radius:9px;background:linear-gradient(180deg,#0b2634,#091f2c);color:#aebec6;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;transition:.16s ease}
.sidebar-session-logout span{font-size:14px;color:#d27b86;transform:rotate(180deg)}
.sidebar-session-logout b{font-size:9.5px;font-weight:760;white-space:nowrap}
.sidebar-session-logout:hover{border-color:#98505a;background:linear-gradient(180deg,#2a1c22,#21171c);color:#f2d6d9;transform:translateY(-1px)}
.sidebar-session-logout:hover span{color:#ff8290}
.sidebar-session-logout:disabled{opacity:.55;cursor:wait;transform:none}
html[data-theme="light"] .sidebar-session{background:linear-gradient(155deg,#f7fcff,#eef7fb);border-color:#cadde6;box-shadow:inset 0 1px 0 #fff,0 8px 20px #52788a12}
html[data-theme="light"] .sidebar-session-state{color:#54707d;border-bottom-color:#d9e7ed}
html[data-theme="light"] .sidebar-session-logout{background:linear-gradient(180deg,#fff,#f4f9fb);border-color:#d0dfe6;color:#607784}
html[data-theme="light"] .sidebar-session-logout:hover{background:linear-gradient(180deg,#fff7f8,#fff0f2);border-color:#e0aeb5;color:#8f3947}


/* =========================================================
   Finora v0.10.46 — split overview leaderboards + daily winners
   ========================================================= */
.overview-leaderboards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:13px!important}
.overview-leaderboards .positions-card{width:100%!important;height:auto!important;min-height:410px!important}
.overview-leaderboards .compact-overview-table{width:calc(100% - 30px);overflow:hidden}
.overview-leaderboards .compact-overview-table table{width:100%!important;min-width:0!important;table-layout:fixed}
.overview-leaderboards .compact-overview-table th,.overview-leaderboards .compact-overview-table td{padding:9px 12px!important}
.overview-leaderboards .overview-profit-card th:nth-child(1){width:58%}
.overview-leaderboards .overview-profit-card th:nth-child(2){width:18%}
.overview-leaderboards .overview-profit-card th:nth-child(3){width:24%}
.overview-leaderboards .daily-winners-card th:nth-child(1){width:72%}
.overview-leaderboards .daily-winners-card th:nth-child(2){width:28%}
.overview-leaderboards .company{min-width:0}
.overview-leaderboards .company strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.daily-winner-move{font-weight:900;font-size:12px!important}
.leaderboard-note{padding:10px 17px 15px;color:#78919d;font-size:9px;line-height:1.4}
html[data-theme="light"] .leaderboard-note{color:#6c838e}
@media(max-width:980px){.overview-leaderboards{grid-template-columns:1fr!important}.overview-leaderboards .positions-card{min-height:0!important}}


/* =========================================================
   Finora v0.10.47 — equal leaderboard rows + daily P/L
   ========================================================= */
.overview-leaderboards .positions-card{display:flex!important;flex-direction:column!important}
.overview-leaderboards .compact-overview-table{flex:0 0 auto}
.overview-leaderboards .compact-overview-table tbody tr{height:var(--leaderboard-row-height,39px)!important}
.overview-leaderboards .compact-overview-table tbody td{height:var(--leaderboard-row-height,39px)!important;box-sizing:border-box}
.overview-leaderboards .leaderboard-placeholder td{padding:0 12px!important;color:transparent!important;pointer-events:none}
.overview-leaderboards .leaderboard-empty td{height:var(--leaderboard-row-height,39px)!important}
.overview-leaderboards .overview-profit-card .text-link,.overview-leaderboards .leaderboard-note{margin-top:auto!important;min-height:38px;box-sizing:border-box}
.overview-leaderboards .daily-winners-card th:nth-child(1){width:52%}
.overview-leaderboards .daily-winners-card th:nth-child(2){width:22%}
.overview-leaderboards .daily-winners-card th:nth-child(3){width:26%;text-align:right}
.overview-leaderboards .daily-winners-card td:nth-child(3){text-align:right}
.daily-winner-pl{font-weight:850;font-size:11px!important;white-space:nowrap}

/* Finora v0.10.49 — calendar de-duplication, IPO badge, vertical session card */


/* =========================================================
   Finora v0.10.50 — larger sidebar + dividend emphasis + cleaner calendar
   ========================================================= */
.nav{gap:9px!important}
.nav-item{height:46px!important;gap:16px!important;padding:0 14px!important;border-radius:7px!important}
.nav-item span{font-size:20px!important;width:20px!important}
.nav-item b{font-size:14px!important;font-weight:620!important;letter-spacing:.05px}
.overview-calendar-card .overview-dividend-amount{color:#39dd89!important;font-size:11px!important;font-weight:900!important}
html[data-theme="light"] .overview-calendar-card .overview-dividend-amount{color:#11834a!important}
.calendar-market-status{display:none!important}


/* v0.10.51 — Tipy dne / Finora Select */
.tips-nav-item .tips-nav-glyph{font-size:18px;font-weight:900;transform:rotate(-2deg);color:#47d99a}.tips-nav-item.active .tips-nav-glyph{color:#8fffc6}.tips-page{max-width:1280px}.tips-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:28px;align-items:center;padding:28px 30px;margin-bottom:14px;border:1px solid #1f4859;border-radius:18px;background:radial-gradient(circle at 90% 0%,rgba(50,218,145,.15),transparent 38%),radial-gradient(circle at 15% 0%,rgba(25,174,238,.16),transparent 40%),linear-gradient(145deg,#0b2230,#091923 62%,#0b2028);box-shadow:0 24px 70px rgba(0,0,0,.2)}.tips-hero:after{content:"";position:absolute;inset:auto -80px -110px auto;width:280px;height:280px;border:1px solid rgba(75,223,160,.16);border-radius:50%;box-shadow:0 0 0 34px rgba(75,223,160,.025),0 0 0 68px rgba(75,223,160,.018)}.tips-kicker{display:inline-flex;align-items:center;gap:8px;color:#70e8ad;font-size:10px;font-weight:900;letter-spacing:1.5px}.tips-kicker i{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-style:normal;background:rgba(54,213,144,.12);border:1px solid rgba(78,232,164,.25);font-size:15px}.tips-hero h2{margin:8px 0 8px;font-size:30px;letter-spacing:-.8px}.tips-hero p{max-width:760px;margin:0;color:#9db1bc;font-size:12px;line-height:1.65}.tips-hero-status{position:relative;z-index:2;border:1px solid #285665;background:rgba(7,26,36,.72);border-radius:15px;padding:18px 20px;text-align:center;backdrop-filter:blur(8px)}.tips-hero-status span{display:block;color:#87a4b1;font-size:9px;text-transform:uppercase;letter-spacing:1.1px}.tips-hero-status strong{display:block;margin:4px 0 2px;color:#7ff0b6;font-size:30px;line-height:1}.tips-hero-status small{color:#728c99;font-size:9px}.tips-meta-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 4px 13px;color:#7f95a1;font-size:10px}.tips-meta-row>div{display:flex;align-items:center;gap:8px}.tips-meta-row strong{color:#b7c8d0;font-size:10px}.tips-live-dot{width:7px;height:7px;border-radius:50%;background:#3fe18b;box-shadow:0 0 13px rgba(63,225,139,.65)}.investment-tips-list{display:grid;gap:11px}.investment-tip-card{border:1px solid #1b3b4a;background:linear-gradient(180deg,#0b202c,#081923);border-radius:15px;overflow:hidden;box-shadow:0 12px 32px rgba(0,0,0,.12);transition:border-color .2s,transform .2s,box-shadow .2s}.investment-tip-card:hover{border-color:#2c5364}.investment-tip-card.open{border-color:#2d5f65;box-shadow:0 18px 46px rgba(0,0,0,.2)}.investment-tip-card.strong{border-left:3px solid #42df91}.investment-tip-card.good{border-left:3px solid #32bfe9}.investment-tip-card.watch{border-left:3px solid #d8a949}.investment-tip-summary{width:100%;display:grid;grid-template-columns:34px 46px minmax(220px,1fr) 130px 90px 72px 22px;gap:12px;align-items:center;padding:14px 16px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.investment-tip-summary:hover{background:rgba(20,55,69,.26)}.tip-rank{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#102b38;border:1px solid #22495a;color:#88b8cb;font-size:10px;font-weight:900}.tip-company-logo{width:40px;height:40px;border-radius:11px;background:#0d2b39}.tip-company-logo img,.tip-company-logo .logo-fallback{border-radius:11px}.tip-company{min-width:0}.tip-title-line{display:flex;align-items:center;gap:8px;min-width:0}.tip-title-line strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tip-title-line em{font-style:normal;font-size:8px;font-weight:800;color:#52dfa0;border:1px solid rgba(82,223,160,.28);background:rgba(36,160,103,.1);border-radius:20px;padding:3px 6px;white-space:nowrap}.tip-company small{display:block;margin-top:4px;color:#76909e;font-size:9px}.tip-quick small{display:block;color:#6f8794;font-size:8px;margin-bottom:3px}.tip-quick strong{font-size:11px}.tip-score-ring{--ring:#738b97;position:relative;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ring) calc(var(--score)*1%),#17303d 0);isolation:isolate}.tip-score-ring:before{content:"";position:absolute;inset:5px;border-radius:50%;background:#0a1d28;z-index:-1}.tip-score-ring.strong{--ring:#43df91}.tip-score-ring.good{--ring:#38bde8}.tip-score-ring.watch{--ring:#d1a548}.tip-score-ring b{font-size:16px;line-height:1}.tip-score-ring small{position:absolute;bottom:11px;font-size:6px;color:#6f8794}.tip-chevron{font-size:18px;color:#72909e;transition:transform .2s}.investment-tip-card.open .tip-chevron{transform:rotate(180deg)}.investment-tip-detail{display:none;padding:0 18px 17px;border-top:1px solid #173745;background:rgba(5,19,27,.32)}.investment-tip-card.open .investment-tip-detail{display:block}.tip-detail-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:20px;padding-top:17px}.tip-score-panel,.tip-metrics-panel{border:1px solid #183846;background:#091a24;border-radius:12px;padding:14px}.tip-section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.tip-section-title strong{font-size:11px}.tip-section-title span{color:#6f8d9b;font-size:8px}.tip-factor{margin-top:9px}.tip-factor>div{display:flex;justify-content:space-between;gap:10px;font-size:8px;color:#8299a5}.tip-factor>div strong{font-size:8px;color:#b7c8cf}.tip-factor>i{display:block;height:5px;margin-top:4px;border-radius:10px;background:#142e3a;overflow:hidden}.tip-factor>i b{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,#2baee4,#4bd7a1)}.tip-factor>i b.target{background:linear-gradient(90deg,#2da7df,#6a8cff)}.tip-factor>i b.quality{background:linear-gradient(90deg,#1cae76,#53dd91)}.tip-factor>i b.breadth{background:linear-gradient(90deg,#8271d9,#b08bf0)}.tip-factor>i b.momentum{background:linear-gradient(90deg,#c69945,#e6c56e)}.tip-metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tip-metric-grid>div{padding:10px;border:1px solid #173542;background:#0b202a;border-radius:9px}.tip-metric-grid small{display:block;color:#718a97;font-size:7px;margin-bottom:4px}.tip-metric-grid strong{font-size:10px}.tip-notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:14px}.tip-notes-grid section{padding:2px 3px}.tip-notes-grid h4{margin:0 0 8px;font-size:10px}.tip-notes-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}.tip-notes-grid li{display:grid;grid-template-columns:18px 1fr;gap:6px;align-items:start;color:#92a8b3;font-size:9px;line-height:1.45}.tip-reasons li span{color:#55df9b}.tip-risks li span{color:#e5b459}.tip-card-foot{display:flex;justify-content:space-between;gap:12px;margin-top:14px;padding-top:10px;border-top:1px solid #163340;color:#627b87;font-size:8px}.tips-disclaimer{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;margin-top:14px;padding:13px 15px;border:1px solid #1a3947;background:#091a24;border-radius:12px}.tips-disclaimer>span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid #2b5668;color:#58c9f1;font-weight:800}.tips-disclaimer p{margin:0;color:#78909d;font-size:9px;line-height:1.55}.tips-disclaimer strong{color:#aabdc6}.tips-loading,.tips-empty,.tips-provider-missing{min-height:190px;border:1px dashed #285064;background:#091c27;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;color:#76909e}.tips-loading i{width:28px;height:28px;border:2px solid #224454;border-top-color:#42d993;border-radius:50%;animation:tipspin .8s linear infinite;margin-bottom:10px}.tips-loading strong,.tips-empty strong{color:#b8c9d0;font-size:12px}.tips-loading span,.tips-empty span{margin-top:5px;font-size:9px}.tips-provider-missing{display:grid;grid-template-columns:44px minmax(0,520px);text-align:left;gap:14px}.tips-provider-missing>span{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#103126;border:1px solid #265a46;color:#55dea0;font-size:20px}.tips-provider-missing strong{display:block;color:#b8c9d0;font-size:12px}.tips-provider-missing p{margin:4px 0 10px;font-size:9px;line-height:1.5}@keyframes tipspin{to{transform:rotate(360deg)}}
html[data-theme="light"] .tips-hero{background:radial-gradient(circle at 90% 0%,rgba(44,193,125,.12),transparent 38%),linear-gradient(145deg,#fff,#eef6f7);border-color:#c8dade}html[data-theme="light"] .tips-hero-status{background:#fff}html[data-theme="light"] .investment-tip-card,html[data-theme="light"] .tip-score-panel,html[data-theme="light"] .tip-metrics-panel,html[data-theme="light"] .tip-metric-grid>div{background:#fff}html[data-theme="light"] .investment-tip-detail{background:#f8fbfc}
@media(max-width:900px){.tips-hero{grid-template-columns:1fr}.tips-hero-status{display:none}.investment-tip-summary{grid-template-columns:30px 42px minmax(150px,1fr) 90px 64px 20px}.investment-tip-summary>.tip-quick:nth-of-type(2){display:none}.tip-detail-grid,.tip-notes-grid{grid-template-columns:1fr}.tip-metric-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.tips-hero{padding:22px 18px}.tips-hero h2{font-size:25px}.investment-tip-summary{grid-template-columns:28px 38px minmax(0,1fr) 58px 18px;padding:12px 10px;gap:8px}.tip-company-logo{width:34px;height:34px}.investment-tip-summary>.tip-quick{display:none}.tip-score-ring{width:52px;height:52px}.tip-meta-row{align-items:flex-start}.tips-meta-row>span{display:none}.tip-metric-grid{grid-template-columns:1fr 1fr}.tip-card-foot{flex-direction:column}}

/* Finora v0.10.52 — stable keyed heatmap refresh; hover survives live polling. */
.portfolio-heatmap .heatmap-tile{backface-visibility:hidden;-webkit-font-smoothing:antialiased}


/* Finora v0.10.53 — flicker-free readable heatmap + sidebar username. */
.portfolio-heatmap{height:440px!important}
.portfolio-heatmap .heatmap-tile{padding:0!important;filter:none!important;transform:none!important;will-change:auto!important;transition:left .28s ease,top .28s ease,width .28s ease,height .28s ease,border-color .18s ease,box-shadow .18s ease!important;box-shadow:inset 0 1px 0 #ffffff14;isolation:isolate}
.portfolio-heatmap .heatmap-tile:hover{filter:none!important;transform:none!important;z-index:4!important;box-shadow:inset 0 0 0 2px #ffffff8f,0 7px 18px #00000038!important}
.heatmap-topline{position:absolute;left:7px;right:7px;top:6px;display:flex;align-items:center;justify-content:space-between;gap:4px;z-index:3;pointer-events:none;min-width:0}
.heatmap-ticker{font-size:11px;font-weight:900;line-height:1;color:#fff;text-shadow:0 1px 4px #000b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52%}
.heatmap-topline .heatmap-change{font-size:10px!important;font-weight:900!important;line-height:1!important;margin:0!important;white-space:nowrap;text-shadow:0 1px 4px #000b!important}
.heatmap-topline .heatmap-change.positive{color:#83ffb8!important}.heatmap-topline .heatmap-change.negative{color:#ff929d!important}.heatmap-topline .heatmap-change.flat{color:#e3edf1!important}
.portfolio-heatmap .heatmap-logo{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;width:30px!important;height:30px!important;border-radius:8px!important;padding:3px!important;display:grid!important;place-items:center!important;z-index:2!important;background:#fffffff0!important;box-shadow:0 3px 10px #0005!important;pointer-events:none!important}
.portfolio-heatmap .heatmap-logo img{width:100%!important;height:100%!important;object-fit:contain!important}.portfolio-heatmap .heatmap-logo .logo-fallback{width:24px!important;height:24px!important;font-size:8px!important}
.heatmap-bottomline{position:absolute;left:6px;right:6px;bottom:5px;z-index:3;display:flex;align-items:flex-end;justify-content:center;gap:4px;min-width:0;pointer-events:none}
.heatmap-bottomline .heatmap-name{display:block!important;margin:0!important;align-self:auto!important;max-width:100%!important;font-size:8.5px!important;line-height:1.05!important;font-weight:800!important;color:#f3f8fa!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-shadow:0 1px 4px #000b!important}
.heatmap-bottomline .heatmap-value{display:none!important}
.portfolio-heatmap .heatmap-tile.medium .heatmap-logo{width:32px!important;height:32px!important}.portfolio-heatmap .heatmap-tile.large .heatmap-logo{width:38px!important;height:38px!important}
.portfolio-heatmap .heatmap-tile.medium .heatmap-ticker{font-size:12px}.portfolio-heatmap .heatmap-tile.medium .heatmap-change{font-size:11px!important}.portfolio-heatmap .heatmap-tile.medium .heatmap-name{font-size:9px!important}
.portfolio-heatmap .heatmap-tile.large .heatmap-ticker{font-size:13px}.portfolio-heatmap .heatmap-tile.large .heatmap-change{font-size:12px!important}.portfolio-heatmap .heatmap-tile.large .heatmap-name{font-size:10px!important}.portfolio-heatmap .heatmap-tile.large .heatmap-value{display:block!important;font-size:8px!important;color:#dce9ee!important;white-space:nowrap!important}
.portfolio-heatmap .heatmap-tile.compact .heatmap-topline{left:4px;right:4px;top:4px;gap:2px}.portfolio-heatmap .heatmap-tile.compact .heatmap-ticker{font-size:7.5px;max-width:49%}.portfolio-heatmap .heatmap-tile.compact .heatmap-change{font-size:7px!important}.portfolio-heatmap .heatmap-tile.compact .heatmap-logo{width:17px!important;height:17px!important;border-radius:5px!important;padding:1px!important}.portfolio-heatmap .heatmap-tile.compact .heatmap-logo .logo-fallback{width:15px!important;height:15px!important;font-size:5px!important}.portfolio-heatmap .heatmap-tile.compact .heatmap-bottomline{left:3px;right:3px;bottom:3px}.portfolio-heatmap .heatmap-tile.compact .heatmap-name{font-size:6.7px!important;letter-spacing:-.05px}
.portfolio-heatmap .heatmap-tile.small .heatmap-topline{left:5px;right:5px;top:5px}.portfolio-heatmap .heatmap-tile.small .heatmap-ticker{font-size:9px}.portfolio-heatmap .heatmap-tile.small .heatmap-change{font-size:8px!important}.portfolio-heatmap .heatmap-tile.small .heatmap-logo{width:22px!important;height:22px!important;border-radius:6px!important;padding:2px!important}.portfolio-heatmap .heatmap-tile.small .heatmap-bottomline{left:4px;right:4px;bottom:4px}.portfolio-heatmap .heatmap-tile.small .heatmap-name{font-size:7.5px!important}
.sidebar-session-state{flex-direction:column!important;gap:4px!important;padding:2px 4px 9px!important}
.sidebar-session-statusline{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0}
.sidebar-session-statusline i{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#38d67c;box-shadow:0 0 9px #38d67c99}
.sidebar-session-statusline strong{font-size:10px;font-weight:760;white-space:nowrap;letter-spacing:.15px;color:#b8c9d1}
.sidebar-session-username{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;color:#7793a0;font-size:8.5px;font-weight:650;line-height:1.2}
html[data-theme="light"] .sidebar-session-statusline strong{color:#54707d}html[data-theme="light"] .sidebar-session-username{color:#7c929c}
@media(max-width:900px){.portfolio-heatmap{height:520px!important}}
@media(max-width:560px){.portfolio-heatmap{height:760px!important}.heatmap-ticker{font-size:9px}.heatmap-topline .heatmap-change{font-size:8px!important}}


/* Finora v0.10.54 — restore classic weighted treemap, taller canvas, green dividend charts. */
.portfolio-heatmap{height:520px!important}
.portfolio-heatmap .heatmap-tile{padding:7px!important;filter:none!important;transform:none!important;will-change:auto!important;transition:left .24s ease,top .24s ease,width .24s ease,height .24s ease,border-color .18s ease,box-shadow .18s ease!important;box-shadow:inset 0 1px 0 #ffffff12!important;isolation:auto!important}
.portfolio-heatmap .heatmap-tile:hover{filter:none!important;transform:none!important;z-index:4!important;box-shadow:inset 0 0 0 2px #ffffff72,0 6px 16px #0000002e!important}
.portfolio-heatmap .heatmap-logo{width:25px!important;height:25px!important;position:absolute!important;left:8px!important;top:8px!important;transform:none!important;border-radius:7px!important;display:grid!important;place-items:center!important;background:#ffffffeb!important;padding:2px!important;box-shadow:0 2px 8px #0004!important}
.portfolio-heatmap .heatmap-logo .logo-fallback{width:21px!important;height:21px!important;border-radius:5px!important;font-size:7px!important}
.portfolio-heatmap .heatmap-copy{height:100%!important;display:flex!important;flex-direction:column!important;align-items:flex-end!important;justify-content:flex-start!important;min-width:0!important}
.portfolio-heatmap .heatmap-copy strong{font-size:15px!important;font-weight:900!important;line-height:1.05!important;text-shadow:0 1px 3px #0007!important}
.portfolio-heatmap .heatmap-copy .heatmap-change{font-size:13px!important;font-weight:900!important;margin-top:5px!important;text-shadow:0 1px 4px #000a!important}
.portfolio-heatmap .heatmap-name{display:block!important;align-self:flex-start!important;margin-top:auto!important;max-width:100%!important;font-size:9px!important;font-weight:700!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-align:left!important;text-shadow:0 1px 3px #0007!important}
.portfolio-heatmap .heatmap-value{display:block!important;align-self:flex-start!important;font-size:8px!important;margin-top:2px!important;color:#e9f4ef!important;text-shadow:0 1px 3px #0007!important}
.portfolio-heatmap .heatmap-tile.small{padding:5px!important}.portfolio-heatmap .heatmap-tile.small .heatmap-logo{width:19px!important;height:19px!important;left:5px!important;top:5px!important}.portfolio-heatmap .heatmap-tile.small .heatmap-logo .logo-fallback{width:15px!important;height:15px!important;font-size:6px!important}.portfolio-heatmap .heatmap-tile.small .heatmap-copy strong{font-size:11px!important}.portfolio-heatmap .heatmap-tile.small .heatmap-copy .heatmap-change{font-size:9px!important;margin-top:3px!important}
.portfolio-heatmap .heatmap-tile.medium .heatmap-copy strong{font-size:13px!important}.portfolio-heatmap .heatmap-tile.medium .heatmap-copy .heatmap-change{font-size:11px!important}
.portfolio-heatmap .heatmap-tile.micro{padding:0!important}
/* Old v0.10.53 content wrappers are no longer used. */
.portfolio-heatmap .heatmap-topline,.portfolio-heatmap .heatmap-bottomline{display:none!important}
#dividend-payers .rank-track i{background:linear-gradient(90deg,#119a58,#36dc84)!important;box-shadow:0 0 9px #24c87533}
#dividend-projection-chart .projection-bar-fill{background:linear-gradient(180deg,#42e895,#159b5b)!important;box-shadow:0 0 10px #29d77f36!important}
#dividend-projection-chart .projection-bar-col.milestone .projection-bar-fill{background:linear-gradient(180deg,#75f2b2,#22b96d)!important}
@media(max-width:900px){.portfolio-heatmap{height:600px!important}}
@media(max-width:560px){.portfolio-heatmap{height:760px!important}}


/* v0.10.55 — classic treemap readability, exchange labels, chart return */
.portfolio-heatmap{height:640px!important}
.portfolio-heatmap .heatmap-exchange{display:block!important;align-self:flex-start!important;margin-top:2px!important;font-size:7.5px!important;font-weight:800!important;letter-spacing:.15px!important;color:#b9d1dc!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important;text-shadow:0 1px 3px #0008!important}
.portfolio-heatmap .heatmap-tile.medium .heatmap-exchange,.portfolio-heatmap .heatmap-tile.large .heatmap-exchange{font-size:8.5px!important}
.portfolio-heatmap .heatmap-micro-label{position:absolute;inset:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;overflow:hidden;pointer-events:none;text-align:center;text-shadow:0 1px 3px #000b}
.portfolio-heatmap .heatmap-micro-label strong{display:block;max-width:100%;font-size:7.5px;line-height:1;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.portfolio-heatmap .heatmap-micro-label span{display:block;max-width:100%;margin-top:2px;font-size:5.8px;line-height:1;font-weight:800;color:#c4d8e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dual-history-legend{display:flex;align-items:center;justify-content:space-between;gap:12px}
.portfolio-range-return{font-size:12px;font-weight:900;white-space:nowrap;margin-left:auto}
.overview-calendar-side{justify-self:end;text-align:right;min-width:max-content}
.overview-calendar-side .overview-dividend-amount{display:block!important}
.overview-calendar-side small{display:block!important;margin-top:2px;color:#8da1ad!important;font-size:8px!important;font-weight:700}
html[data-theme="light"] .portfolio-heatmap .heatmap-exchange,html[data-theme="light"] .portfolio-heatmap .heatmap-micro-label span{color:#e5f2f6!important}
@media(max-width:900px){.portfolio-heatmap{height:720px!important}}
@media(max-width:560px){.portfolio-heatmap{height:820px!important}.portfolio-range-return{font-size:11px}}


/* =========================================================
   Finora v0.10.56 — cash-flow-neutral range performance,
   official exchange labels and ultra-smooth heatmap color blend
   ========================================================= */
@property --heat-top { syntax: '<color>'; inherits: false; initial-value: rgb(38,73,86); }
@property --heat-bottom { syntax: '<color>'; inherits: false; initial-value: rgb(20,45,57); }
@property --heat-border { syntax: '<color>'; inherits: false; initial-value: rgba(71,105,118,.72); }
.portfolio-heatmap .heatmap-tile{
  background:linear-gradient(145deg,var(--heat-top),var(--heat-bottom))!important;
  border-color:var(--heat-border)!important;
  transition:left .28s ease,top .28s ease,width .28s ease,height .28s ease,
             --heat-top 2.40s cubic-bezier(.22,.61,.36,1),
             --heat-bottom 2.40s cubic-bezier(.22,.61,.36,1),
             --heat-border 2.40s cubic-bezier(.22,.61,.36,1),
             box-shadow .18s ease!important;
}
.portfolio-range-performance{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;line-height:1.05;min-width:92px}
.portfolio-range-return{margin-left:0!important;font-size:13px!important}
.portfolio-range-amount{margin-top:4px;font-size:10px;font-weight:850;white-space:nowrap}
/* P134: the account metrics share Shell green and a vivid loss red on both layouts. */
.t212-account-metrics{--account-value-positive:#29d66f;--account-value-negative:#ff3b4b;--mobile-positive:var(--account-value-positive);--mobile-negative:var(--account-value-negative)}
.portfolio-range-return.positive,.portfolio-range-amount.positive{color:var(--account-value-positive)!important}
.portfolio-range-return.negative,.portfolio-range-amount.negative{color:var(--account-value-negative)!important}
.portfolio-range-return.flat,.portfolio-range-amount.flat{color:#c6d6de!important}
html[data-theme="light"] .t212-account-metrics{--account-value-positive:#087c42;--account-value-negative:#d91b32}
html[data-theme="light"] .portfolio-range-return.flat,html[data-theme="light"] .portfolio-range-amount.flat{color:#526a76!important}
.tips-diagnostic{gap:10px!important}.tips-error-list{display:flex;flex-direction:column;gap:5px;width:min(760px,100%);margin:4px auto 2px}.tips-error-list small{display:block;padding:7px 10px;border-radius:8px;background:#091923;border:1px solid #1c3b49;color:#a9c0cb;text-align:left;word-break:break-word}
html[data-theme="light"] .tips-error-list small{background:#f3f7f9;border-color:#d5e2e8;color:#526a76}


/* =========================================================
   Finora v0.10.57 — truthful range return, durable venues/calendar,
   transparent heatmap logos and polished light theme
   ========================================================= */
.tips-page{max-width:1600px!important}
.tips-hero-copy p{max-width:980px!important}
.portfolio-range-return{font-weight:500!important;font-size:12px!important;letter-spacing:0!important}
.portfolio-range-amount{font-weight:500!important;font-size:10px!important}
.portfolio-heatmap .heatmap-logo{
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
  border:0!important;
}
.portfolio-heatmap .heatmap-logo img{background:transparent!important;filter:none!important}
.portfolio-heatmap .heatmap-tile{
  transition:left .34s ease,top .34s ease,width .34s ease,height .34s ease,
             --heat-top 4.2s cubic-bezier(.25,.1,.25,1),
             --heat-bottom 4.2s cubic-bezier(.25,.1,.25,1),
             --heat-border 4.2s cubic-bezier(.25,.1,.25,1),
             box-shadow .18s ease!important;
}
html[data-theme="light"] .portfolio-heatmap .heatmap-tile{box-shadow:inset 0 1px 0 #ffffffa8!important}
html[data-theme="light"] .portfolio-heatmap .heatmap-tile:hover{box-shadow:inset 0 0 0 2px #315b6b55,0 5px 14px #38586418!important}
html[data-theme="light"] .portfolio-heatmap .heatmap-copy strong,
html[data-theme="light"] .portfolio-heatmap .heatmap-name,
html[data-theme="light"] .portfolio-heatmap .heatmap-value,
html[data-theme="light"] .portfolio-heatmap .heatmap-exchange,
html[data-theme="light"] .portfolio-heatmap .heatmap-micro-label strong,
html[data-theme="light"] .portfolio-heatmap .heatmap-micro-label span{
  color:#244552!important;text-shadow:none!important;
}
html[data-theme="light"] .portfolio-heatmap .heatmap-change.positive{color:#117744!important;text-shadow:none!important}
html[data-theme="light"] .portfolio-heatmap .heatmap-change.negative{color:#b63b4b!important;text-shadow:none!important}
html[data-theme="light"] .portfolio-heatmap .heatmap-change.flat{color:#627b86!important;text-shadow:none!important}
html[data-theme="light"] .portfolio-heatmap .heatmap-logo .logo-fallback{box-shadow:none!important}
html[data-theme="light"] .tips-empty,html[data-theme="light"] .tips-loading,html[data-theme="light"] .tips-provider-missing{background:#fff!important;border-color:#cfdfe5!important;color:#657d88!important}
html[data-theme="light"] .tips-empty strong,html[data-theme="light"] .tips-loading strong{color:#294b58!important}


/* Finora v0.10.58 — detail readability + branded internal scrollbars */
.detail-metrics .metric-card{min-height:82px;padding:13px}
.detail-metrics .metric-card strong{font-size:17px;line-height:1.2}
.detail-metrics .metric-positive strong{color:var(--green)!important}
.detail-metrics .metric-negative strong{color:var(--red)!important}
.detail-metrics .metric-flat strong{color:var(--text)!important}

/* Finora-blue scrollbars: slightly wider and easier to grab. */
html,*{scrollbar-width:auto;scrollbar-color:#249fe8 #0a1b25}
*::-webkit-scrollbar{width:12px;height:12px}
*::-webkit-scrollbar-track{background:#0a1b25;border-radius:999px}
*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#48bdf5,#168bd6);border:2px solid #0a1b25;border-radius:999px}
*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#64c9f7,#259ce5)}
*::-webkit-scrollbar-corner{background:#0a1b25}
html[data-theme="light"],html[data-theme="light"] *{scrollbar-color:#258fd1 #edf4f8}
html[data-theme="light"] *::-webkit-scrollbar-track{background:#edf4f8}
html[data-theme="light"] *::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#5ab7ea,#238aca);border-color:#edf4f8}
html[data-theme="light"] *::-webkit-scrollbar-corner{background:#edf4f8}

/* =========================================================
   Finora v0.10.60 — smoother history / richer info / calm calendar badge
   ========================================================= */
.info-tooltip-layer{
  max-width:min(410px,calc(100vw - 24px));padding:14px 15px;border-radius:13px;
  line-height:1.58;background:linear-gradient(160deg,#071c28,#06141d);border-color:#315b70;
}
.info-tooltip-head{display:flex;align-items:center;gap:8px;padding-bottom:9px;margin-bottom:9px;border-bottom:1px solid #173646}
.info-tooltip-head i{width:21px;height:21px;border-radius:7px;display:grid;place-items:center;background:#0d3447;border:1px solid #267493;color:#6dd3ff;font-style:normal;font-size:11px;font-weight:800}
.info-tooltip-head strong{font-size:11px;letter-spacing:.15px;color:#eef8fc}
.info-tooltip-layer>p{margin:0;color:#c9dce5;font-size:10.8px}
.info-tooltip-lead{padding:1px 0 7px!important;color:#e3f1f6!important}
.info-tooltip-points{display:grid;gap:7px;margin-top:2px}
.info-tooltip-points>div{display:grid;grid-template-columns:7px 1fr;gap:8px;align-items:start}
.info-tooltip-points>div>span{width:5px;height:5px;border-radius:50%;background:#2abaf1;margin-top:6px;box-shadow:0 0 8px #2abaf155}
.info-tooltip-points p{margin:0;color:#9fb8c4;font-size:10.4px;line-height:1.58}
.info-tooltip-visual{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;align-items:center;padding:9px 10px;margin:0 0 10px;border:1px solid #1d4658;border-radius:10px;background:#092431}
.info-tooltip-visual span{display:block;color:#68d7ff;font-size:8px;font-weight:800;letter-spacing:.5px}.info-tooltip-visual b{display:block;color:#d9edf5;font-size:9.5px;margin-top:2px}.info-tooltip-visual svg{width:100%;height:34px;overflow:visible}.tip-line-green,.tip-line-blue{fill:none;stroke-width:2;stroke-linecap:round}.tip-line-green{stroke:#2fd879}.tip-line-blue{stroke:#20b8f2}
html[data-theme="light"] .info-tooltip-layer{background:linear-gradient(160deg,#ffffff,#f7fbfd);border-color:#b9d4df;box-shadow:0 16px 46px #31546628}
html[data-theme="light"] .info-tooltip-head{border-color:#dce9ee}html[data-theme="light"] .info-tooltip-head i{background:#eaf7fb;border-color:#9ecedd;color:#11779d}html[data-theme="light"] .info-tooltip-head strong{color:#244755}
html[data-theme="light"] .info-tooltip-layer>p{color:#405f6d}html[data-theme="light"] .info-tooltip-lead{color:#294c5b!important}html[data-theme="light"] .info-tooltip-points p{color:#5c7480}html[data-theme="light"] .info-tooltip-visual{background:#f2f9fb;border-color:#cce2ea}html[data-theme="light"] .info-tooltip-visual b{color:#31515e}
.nav-notification-badge{min-width:28px;height:19px;padding:0 7px 0 6px;border:1px solid #285062;border-radius:7px;background:#0a2532;color:#dff7ec;font-size:9px;font-weight:750;box-shadow:none;display:flex;align-items:center;justify-content:center;gap:5px}
.nav-notification-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:#2bd773;box-shadow:0 0 7px #2bd77366;flex:0 0 auto}
html[data-theme="light"] .nav-notification-badge{border-color:#c5d9e1;background:#fff;color:#31505c;box-shadow:0 3px 10px #31546612}html[data-theme="light"] .nav-notification-badge::before{background:#18b962;box-shadow:none}


/* Finora v0.10.61 — Trading 212 style account-value / net-deposits chart */
.portfolio-chart-series-legend{display:flex;align-items:center;gap:13px;flex-wrap:wrap;min-width:0}
.portfolio-chart-series-legend>span{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#a9bac4;white-space:nowrap}
.portfolio-chart-series-legend>small{font-size:9px;color:#728b99;white-space:nowrap}
.legend-line.deposits{display:inline-block;width:18px;height:0;border-top:2px dashed #7f929e;opacity:.8}
html[data-theme="light"] .portfolio-chart-series-legend>span{color:#536c78}
html[data-theme="light"] .portfolio-chart-series-legend>small{color:#7b919b}

/* Finora v0.10.62 — manual API refresh and cleaner portfolio chart. */
.settings-api-sync-btn{
  min-height:36px;
  padding:0 15px;
  border-radius:10px;
  white-space:nowrap;
  font-size:12px;
}
.settings-api-sync-btn:disabled{opacity:.65;cursor:wait}
@media(max-width:760px){
  .settings-api-heading{align-items:flex-start;gap:10px;flex-direction:column}
  .settings-api-sync-btn{width:100%}
}


/* =========================================================
   Finora v0.10.64 — weighted portfolio heatmap, vertically expanded
   ========================================================= */
.portfolio-heatmap.weighted-heatmap{
  position:relative!important;display:block!important;min-height:720px!important;
  overflow:hidden!important;padding:0!important;background:#061721!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.weighted{
  position:absolute!important;margin:0!important;border-radius:7px!important;overflow:hidden!important;
  padding:9px!important;transform:none!important;will-change:left,top,width,height!important;
  transition:left .42s ease,top .42s ease,width .42s ease,height .42s ease,--heat-top 3.2s ease,--heat-bottom 3.2s ease,--heat-border 3.2s ease,box-shadow .18s ease!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.weighted:hover{transform:none!important;filter:none!important;z-index:5!important;box-shadow:inset 0 0 0 2px #ffffff72,0 6px 16px #0000002e!important}
.portfolio-heatmap.weighted-heatmap .heatmap-logo{position:absolute!important;left:8px!important;top:8px!important;width:25px!important;height:25px!important;transform:none!important;background:transparent!important;box-shadow:none!important;padding:1px!important}
.heatmap-weighted-copy{height:100%;min-width:0;padding-left:31px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;overflow:hidden}
.portfolio-heatmap.weighted-heatmap .heatmap-company{display:block!important;width:100%;font-size:13px!important;line-height:1.08!important;font-weight:900!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;text-shadow:0 1px 3px #0008}
.portfolio-heatmap.weighted-heatmap .heatmap-fixed-ticker{display:block;margin-top:2px;font-size:7.8px;font-weight:850;letter-spacing:.4px;color:#c4d7df;text-transform:uppercase;text-shadow:0 1px 3px #0008;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.portfolio-heatmap.weighted-heatmap .heatmap-live-line{margin-top:auto;width:100%;display:flex;align-items:flex-end;justify-content:space-between;gap:5px;min-width:0}
.portfolio-heatmap.weighted-heatmap .heatmap-live-line .heatmap-change{font-size:11px!important;font-weight:900!important;margin:0!important;white-space:nowrap}
.portfolio-heatmap.weighted-heatmap .heatmap-current-price{font-size:9px;font-weight:850;color:#edf6f9;white-space:nowrap;text-shadow:0 1px 3px #0008;overflow:hidden;text-overflow:ellipsis}
.portfolio-heatmap.weighted-heatmap .heatmap-exchange{margin-top:3px!important;font-size:6.8px!important;line-height:1!important;color:#b7ccd5!important;max-width:100%!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-company{font-size:14px!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-company{font-size:16px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-live-line .heatmap-change{font-size:12px!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-live-line .heatmap-change{font-size:14px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-current-price{font-size:10px}.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-current-price{font-size:11px}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro{padding:3px!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-logo{display:none!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-weighted-copy{padding-left:0!important;align-items:center!important;text-align:center!important;justify-content:center!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-company{font-size:6.6px!important;line-height:1!important;text-align:center!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-fixed-ticker{font-size:5.6px!important;margin-top:1px!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-live-line{margin-top:2px!important;justify-content:center!important;gap:3px!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-live-line .heatmap-change{font-size:6px!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-current-price{font-size:5.5px!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-exchange{font-size:4.8px!important;margin-top:1px!important;text-align:center!important;align-self:center!important}
html[data-theme="light"] .portfolio-heatmap.weighted-heatmap{background:#eef5f7!important;border-color:#cbdde4!important}
html[data-theme="light"] .portfolio-heatmap.weighted-heatmap .heatmap-company,html[data-theme="light"] .portfolio-heatmap.weighted-heatmap .heatmap-current-price{color:#244552!important;text-shadow:none!important}
html[data-theme="light"] .portfolio-heatmap.weighted-heatmap .heatmap-fixed-ticker,html[data-theme="light"] .portfolio-heatmap.weighted-heatmap .heatmap-exchange{color:#55717d!important;text-shadow:none!important}
@media(max-width:900px){.portfolio-heatmap.weighted-heatmap{min-height:900px!important}}
@media(max-width:560px){.portfolio-heatmap.weighted-heatmap{min-height:1100px!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.weighted{padding:6px!important}}

/* OpenAI research UI introduced in v0.10.63 remains unchanged below. */
.tip-fundamentals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.tip-fundamentals>div{padding:10px;border:1px solid #1b3b49;border-radius:9px;background:#071923}.tip-fundamentals small{display:block;color:#8ea6b1;font-size:8px}.tip-fundamentals strong{display:block;margin-top:4px;font-size:12px}
.tip-catalysts{margin-top:12px;padding:11px 12px;border:1px solid #1a3b49;border-radius:10px;background:#071923}.tip-catalysts h4{margin:0 0 7px;font-size:10px}.tip-catalysts ul{margin:0;padding-left:18px;color:#bdd0d8;font-size:9px;line-height:1.55}
.tip-sources{margin-top:12px;padding-top:11px;border-top:1px solid #173745}.tip-sources>strong{display:block;font-size:9px;margin-bottom:7px}.tip-sources>div{display:flex;flex-wrap:wrap;gap:6px}.tip-sources a,.event-source-list .source-chip{display:inline-flex!important;padding:6px 8px!important;border:1px solid #235269!important;border-radius:999px!important;background:#08202c!important;font-size:8px!important;text-decoration:none!important;color:#90d7fb!important;margin:0!important}
.event-source-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
html[data-theme="light"] .tip-fundamentals>div,html[data-theme="light"] .tip-catalysts{background:#fff;border-color:#d4e3e9}html[data-theme="light"] .tip-catalysts ul{color:#526b76}html[data-theme="light"] .tip-sources a,html[data-theme="light"] .event-source-list .source-chip{background:#f5fafc!important;border-color:#b9d7e4!important;color:#1875a2!important}
@media(max-width:760px){.tip-fundamentals{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* =========================================================
   Finora v0.10.65 — compact Trading 212-style heatmap + readable calendar
   ========================================================= */
.portfolio-heatmap.weighted-heatmap.compact-t212-heatmap{
  min-height:0!important;
  overflow:hidden!important;
  background:#061721!important;
}
.portfolio-heatmap.compact-t212-heatmap .heatmap-tile.weighted{
  border-radius:8px!important;
  transition:left .36s ease,top .36s ease,width .36s ease,height .36s ease,--heat-top 2.8s ease,--heat-bottom 2.8s ease,--heat-border 2.8s ease,box-shadow .18s ease!important;
}
.heatmap-toggle-row{display:flex;justify-content:center;padding:12px 14px 3px}
.heatmap-toggle{
  min-width:250px;height:42px;padding:0 28px;border:1px solid #315463;border-radius:999px;
  background:#0d2632;color:#eef7fa;font-size:12px;font-weight:850;letter-spacing:.1px;cursor:pointer;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.heatmap-toggle:hover{background:#123343;border-color:#477285;transform:translateY(-1px)}
.heatmap-toggle[hidden]{display:none!important}
.heatmap-more-tile{background:linear-gradient(145deg,#263b46,#1b303a)!important;border-color:#3d5966!important}
.heatmap-more-copy{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;color:#edf7fa}
.heatmap-more-copy b{font-size:21px;line-height:.8;letter-spacing:3px}
.heatmap-more-copy strong{margin-top:6px;font-size:11px;white-space:nowrap}
.heatmap-more-copy span{margin-top:3px;font-size:7.5px;color:#a9bec8;white-space:nowrap}
@media(max-width:900px){.portfolio-heatmap.weighted-heatmap.compact-t212-heatmap{min-height:0!important}.heatmap-toggle{min-width:220px}}
@media(max-width:560px){.portfolio-heatmap.weighted-heatmap.compact-t212-heatmap{min-height:0!important}.portfolio-heatmap.weighted-heatmap.compact-t212-heatmap .heatmap-tile.weighted{padding:5px!important}.heatmap-toggle{width:100%;min-width:0;height:46px;font-size:13px}}
html[data-theme="light"] .heatmap-toggle{background:#f8fbfc;color:#244552;border-color:#c0d5de}
html[data-theme="light"] .heatmap-toggle:hover{background:#eef6f8;border-color:#8fb7c7}
html[data-theme="light"] .heatmap-more-tile{background:linear-gradient(145deg,#e5eef2,#d7e5ea)!important;border-color:#afc9d3!important}
html[data-theme="light"] .heatmap-more-copy{color:#2c4e5b}html[data-theme="light"] .heatmap-more-copy span{color:#63808b}

/* Calendar rows: deliberately easier to read without making the whole calendar bulky. */
.calendar-market-pane .event-row{
  padding:14px 12px!important;
  grid-template-columns:44px minmax(0,1fr) auto!important;
  gap:13px!important;
  min-height:78px;
  border-radius:12px!important;
}
.calendar-market-pane .calendar-company-logo-wrap{width:42px;height:42px}
.calendar-market-pane .calendar-company-logo{width:40px;height:40px;min-width:40px;min-height:40px}
.calendar-market-pane .calendar-company-logo .logo-fallback{width:40px;height:40px;font-size:10px}
.calendar-market-pane .event-main small{font-size:10.5px!important;line-height:1.35;margin-bottom:3px;color:#8ba1ac}
.calendar-market-pane .event-main strong{font-size:13px!important;line-height:1.3}
.calendar-market-pane .event-main span{font-size:10.5px!important;line-height:1.45;margin-top:4px}
.calendar-market-pane .event-side{min-width:104px;gap:7px;padding-left:13px}
.calendar-market-pane .event-type{
  min-width:78px;text-align:center;padding:6px 10px;border-radius:999px;font-size:10.5px!important;
  font-weight:900;letter-spacing:.15px;color:#b9d1dc;border-color:#345567;background:#102b38;
}
.calendar-market-pane .event-type.earnings{color:#8bd6ff;border-color:#2d7398;background:#0b3349}
.calendar-market-pane .event-type.dividend{color:#82ecb2;border-color:#297052;background:#0d3528}
.calendar-market-pane .event-type.ipo{color:#d8c1ff;border-color:#695495;background:#2a2440}
.calendar-market-pane .event-type.news{color:#ffd484;border-color:#7b6131;background:#392c15}
html[data-theme="light"] .calendar-market-pane .event-type{background:#f2f7f9;color:#55717e;border-color:#c6d9e1}
html[data-theme="light"] .calendar-market-pane .event-type.earnings{background:#e8f6fd;color:#18749f;border-color:#acd9ec}
html[data-theme="light"] .calendar-market-pane .event-type.dividend{background:#eaf8f0;color:#21774d;border-color:#b8e2c9}
html[data-theme="light"] .calendar-market-pane .event-type.ipo{background:#f3edfb;color:#72569b;border-color:#d6c5ea}
html[data-theme="light"] .calendar-market-pane .event-type.news{background:#fff7e7;color:#8c651c;border-color:#efd59f}

/* Important news: Czech digest, readable paragraphs and visual hierarchy. */
.calendar-news-item{
  position:relative!important;grid-template-columns:44px minmax(0,1fr) 58px!important;gap:13px!important;
  padding:15px 13px!important;border-radius:12px!important;margin:9px 0!important;min-height:108px;
}
.calendar-news-logo{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}
.calendar-news-logo .logo-fallback{width:42px!important;height:42px!important;font-size:10px!important}
.calendar-news-copy>strong{font-size:13.5px!important;line-height:1.38!important;padding-right:6px!important;color:#e8f2f6}
.news-meta{gap:7px!important;margin-bottom:7px!important;flex-wrap:wrap}
.news-meta>span{font-size:9.5px!important;padding:4px 6px!important}
.news-meta small{font-size:9.5px!important;max-width:520px}
.news-meta em{font-style:normal;font-size:8px;font-weight:900;letter-spacing:.25px;padding:3px 6px;border-radius:999px;color:#79e5ad;background:#0c3828;border:1px solid #26694b}
.calendar-news-body{display:grid;gap:7px;margin-top:7px}
.calendar-news-copy .calendar-news-body p{display:block!important;-webkit-line-clamp:unset!important;margin:0!important;overflow:visible!important;font-size:11px!important;line-height:1.62!important;color:#a7bac3!important}
.calendar-news-copy .calendar-news-body .news-why{padding:8px 10px;border-left:3px solid #35c98a;border-radius:0 8px 8px 0;background:#0b2a25;color:#b9d8ca!important;font-weight:650}
.calendar-news-item .importance{position:static!important;align-self:start;justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:3px;color:#e9b64e!important;font-size:7px!important;letter-spacing:1px}
.calendar-news-item .importance small{font-size:8px;letter-spacing:0;color:#7f98a3}
.calendar-news-item.openai-news{border-color:#235345!important;box-shadow:inset 3px 0 0 #35c98a2f}
html[data-theme="light"] .calendar-news-copy>strong{color:#244552}
html[data-theme="light"] .news-meta em{color:#1b774d;background:#eaf8f0;border-color:#b8e2c9}
html[data-theme="light"] .calendar-news-copy .calendar-news-body p{color:#5f7782!important}
html[data-theme="light"] .calendar-news-copy .calendar-news-body .news-why{background:#eef8f2;color:#396551!important;border-left-color:#37b877}
html[data-theme="light"] .calendar-news-item.openai-news{border-color:#c4e4d2!important}

.openai-connection-detail{display:block;margin-top:5px;max-width:520px;line-height:1.45!important}
.status-pill.error{background:#3c2027!important;border-color:#7d3948!important;color:#ff9eaa!important}
@media(max-width:760px){
  .calendar-market-pane .event-row{grid-template-columns:42px minmax(0,1fr)!important;padding:13px 10px!important}
  .calendar-market-pane .event-side{grid-column:2!important;min-width:0!important;width:100%;display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:flex-start!important;border-top:1px solid #1f3d4d;padding-top:8px!important}
  .calendar-market-pane .event-type{min-width:74px}
  .calendar-news-item{grid-template-columns:40px minmax(0,1fr)!important;padding:13px 10px!important}
  .calendar-news-item .importance{grid-column:2!important;justify-self:start!important;flex-direction:row!important;align-items:center!important}
}


/* v0.10.66 — cena instrumentu má v heatmapě vyšší prioritu než burza. */
.portfolio-heatmap.weighted-heatmap .heatmap-weighted-copy{justify-content:flex-start!important}
.portfolio-heatmap.weighted-heatmap .heatmap-live-line{margin-top:auto!important;justify-content:flex-start!important}
.portfolio-heatmap.weighted-heatmap .heatmap-current-price{display:block!important;margin-top:2px!important;font-size:9.5px!important;line-height:1.05!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important}
.portfolio-heatmap.weighted-heatmap .heatmap-day-money{display:block!important;margin-top:2px!important;font-size:8.5px!important;font-weight:850!important;line-height:1.05!important;white-space:nowrap!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important}
.portfolio-heatmap.weighted-heatmap .heatmap-day-money.positive{color:#58e89a!important}.portfolio-heatmap.weighted-heatmap .heatmap-day-money.negative{color:#ff7d89!important}.portfolio-heatmap.weighted-heatmap .heatmap-day-money.flat{color:#c6d6de!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-current-price{font-size:10.5px!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-current-price{font-size:11.5px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-day-money{font-size:9.5px!important}.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-day-money{font-size:10.5px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-exchange{display:none!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-current-price{display:block!important;font-size:5.4px!important;margin-top:1px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-day-money{display:none!important}
html[data-theme="light"] .portfolio-heatmap.weighted-heatmap .heatmap-day-money.flat{color:#55717d!important}

.portfolio-account-value{display:block;margin-top:3px;font-size:18px;font-weight:850;line-height:1.05;color:#edf6f9;letter-spacing:-.2px}
html[data-theme="light"] .portfolio-account-value{color:#183844}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.small .heatmap-exchange{display:none!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.small .heatmap-day-money{display:none!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-company{display:none!important}


/* v0.10.67 — Trading 212 inspired account-value/MWRR card + standalone Czech news */
.t212-account-card{padding:18px 20px 14px;min-height:545px;overflow:hidden}
.t212-account-header{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.t212-account-title .overview-title-with-info{justify-content:flex-start;gap:8px;color:#879aa5;font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.t212-account-title .portfolio-account-value{display:block;margin-top:5px;color:#f7fbfd;font-size:clamp(28px,3.3vw,48px);font-weight:520;letter-spacing:-.045em;line-height:1.05}
.t212-account-metrics{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,1fr);gap:34px;width:min(590px,100%)}
.t212-account-metric{display:flex;flex-direction:column;gap:5px}.t212-account-metric>span{color:#899aa4;font-size:10px;font-weight:850;letter-spacing:.055em;text-transform:uppercase}.t212-account-metric>strong{font-size:18px;line-height:1.1;font-weight:800}.t212-account-metric .positive{color:#42d352}.t212-account-metric .negative{color:#ff5962}.t212-account-metric .flat{color:#dbe6eb}
.t212-net-deposits{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 14px;border-radius:18px;background:#1b303a;color:#eaf1f4;font-size:11px;font-weight:780}.t212-net-deposits i{width:9px;height:9px;border-radius:50%;background:#8ca2ad}.t212-net-deposits span{color:#8fa1aa;text-transform:uppercase;font-weight:800;letter-spacing:.035em}
.t212-account-chart{height:280px;margin:5px -12px 0;background:linear-gradient(180deg,#05141c00,#05141c33);border:0}.t212-account-chart svg{width:100%;height:100%;overflow:visible}.t212-account-area{fill:url(#t212Fill)}.t212-account-line{fill:none;stroke:#0bb4ed;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.t212-deposit-line{fill:none;stroke:#54707d;stroke-width:1.6;stroke-dasharray:4 4;opacity:.75;vector-effect:non-scaling-stroke}.t212-account-dot{fill:#13baf2;stroke:#dff8ff;stroke-width:1.2;vector-effect:non-scaling-stroke}
.t212-range-bar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:0}.t212-range-btn{border:0;border-radius:15px;background:transparent;color:#8d9aa2;font-size:12px;font-weight:850;padding:12px 7px;cursor:pointer}.t212-range-btn:hover{background:#0c2330;color:#dce9ee}.t212-range-btn.active{background:#0e2c3c;color:#fff}.t212-chart-source{margin-top:8px;text-align:right;color:#667e89;font-size:8.5px}
.news-nav-item .nav-notification-badge{margin-left:auto}.news-page{max-width:1220px}.news-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.news-heading p{max-width:780px;color:#79909c;font-size:10px;line-height:1.55;margin:5px 0 0}.news-only-card{padding:16px}.news-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.news-page-toolbar>div{display:flex;flex-direction:column;gap:3px}.news-page-toolbar strong{font-size:15px}.news-page-toolbar small{color:#7d939e;font-size:9px}.news-live-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid #214555;background:#0a2431;border-radius:999px;padding:7px 10px;color:#b8ccd5;font-size:8.5px;font-weight:800}.news-live-pill i{width:7px;height:7px;border-radius:50%;background:#2bd773;box-shadow:0 0 8px #2bd77355}.news-page-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.news-page-list .calendar-news-item{min-height:170px;padding:16px}.news-page-list .calendar-news-copy>strong{font-size:14px;line-height:1.35}.news-page-list .calendar-news-body{font-size:10px;line-height:1.6}.detail-grid-single{grid-template-columns:1fr!important}
html[data-theme="light"] .t212-account-title .portfolio-account-value{color:#102b38}html[data-theme="light"] .t212-net-deposits{background:#e6eef2;color:#26434f}html[data-theme="light"] .t212-range-btn.active{background:#d9ebf4;color:#12384a}html[data-theme="light"] .news-live-pill{background:#f3faf7;border-color:#cbe8d7;color:#34604a}
@media(max-width:900px){.t212-account-card{min-height:500px}.t212-account-metrics{gap:18px}.t212-account-chart{height:235px}.news-page-list{grid-template-columns:1fr}.t212-range-btn{padding:10px 4px;font-size:10px}}
@media(max-width:560px){.t212-account-card{padding:15px 14px 12px}.t212-account-metrics{grid-template-columns:1fr 1fr;gap:12px}.t212-account-title .portfolio-account-value{font-size:30px}.t212-account-metric>strong{font-size:15px}.t212-net-deposits{font-size:9px;padding:0 10px}.t212-range-bar{gap:2px}.t212-range-btn{border-radius:12px;font-size:9px;padding:9px 2px}.t212-account-chart{height:215px;margin-left:-8px;margin-right:-8px}}


/* =========================================================
   Finora v0.10.68 — visible account ranges, clean chart, larger news/detail
   ========================================================= */
.t212-account-card{overflow:visible!important}
.t212-deposit-line{display:none!important}
.t212-range-wrap{width:100%;margin-top:2px;position:relative;z-index:3}
.t212-range-label{display:block;margin:0 0 5px 3px;color:#6f8590;font-size:8.5px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.t212-range-bar{
  display:flex!important;width:100%!important;min-height:46px!important;gap:5px!important;
  overflow-x:auto!important;overflow-y:hidden!important;padding:3px!important;border-radius:16px;
  background:#07192366;scrollbar-width:thin;visibility:visible!important;opacity:1!important
}
.t212-range-btn{display:block!important;flex:1 0 54px!important;min-width:54px!important;min-height:40px!important;padding:10px 7px!important;visibility:visible!important;opacity:1!important}
html[data-theme="light"] .t212-range-bar{background:#eef5f766}

/* Zprávy používají stejnou plnou šířku jako ostatní hlavní sekce a větší karty. */
.news-page{max-width:1600px!important;width:100%!important}
.news-only-card{padding:20px!important}
.news-page-toolbar{margin-bottom:16px!important}.news-page-toolbar strong{font-size:17px!important}.news-page-toolbar small{font-size:10.5px!important}
.news-page-list{display:grid!important;grid-template-columns:1fr!important;gap:13px!important;width:100%!important}
.news-page-list .calendar-news-item{width:100%!important;min-height:0!important;grid-template-columns:48px minmax(0,1fr) 74px!important;gap:14px!important;padding:18px 20px!important;border-radius:13px!important}
.news-page-list .calendar-news-logo{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
.news-page-list .calendar-news-logo .logo-fallback{width:44px!important;height:44px!important;font-size:10px!important}
.news-page-list .calendar-news-copy>strong{font-size:15.5px!important;line-height:1.4!important}
.news-page-list .news-meta{gap:9px!important;margin-bottom:8px!important}.news-page-list .news-meta>span{font-size:9.5px!important}.news-page-list .news-meta small{font-size:9.5px!important}
.news-page-list .calendar-news-body{font-size:12px!important;line-height:1.68!important}.news-page-list .calendar-news-body p{font-size:12px!important;line-height:1.68!important;margin:7px 0!important}
.news-page-list .calendar-news-body .news-why{margin-top:10px!important;padding:10px 12px!important;font-size:11px!important;line-height:1.55!important}
.news-page-list .importance{position:static!important;justify-self:end!important;align-self:start!important;font-size:8px!important}.news-page-list .importance small{font-size:8px!important}
.news-ipo-card{margin-top:14px!important;padding-bottom:8px!important}.news-ipo-card .card-head{padding:18px 20px 8px!important}.news-ipo-card .card-head h2{font-size:17px!important}
.news-ipo-card .ipo-calendar-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px 14px!important;padding:12px 20px 20px!important}
.news-ipo-card .event-row{min-height:82px!important;padding:13px!important;border:1px solid #27495a!important;border-radius:11px!important;background:linear-gradient(180deg,#0c2431,#0a202c)!important}
/* Desktop IPO names and context must remain readable without opening the detail. */
@media(min-width:981px){
  .news-page .news-ipo-card .event-main strong,
  .news-page .news-ipo-card .event-main span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.45;}
  .news-page .news-ipo-card .event-main strong{font-size:15px;}
  .news-page .news-ipo-card .event-main small,
  .news-page .news-ipo-card .event-main span{font-size:12px;line-height:1.45;}
  .news-page .news-ipo-card .event-native-slot{min-width:0;max-width:14ch;}
  .news-page .news-ipo-card .event-native-amount{display:block;font-size:12px;line-height:1.45;white-space:normal;overflow-wrap:anywhere;}
}

/* Detail pozice je o kus větší a čitelnější na desktopu. */
.modal-card.detail-card{width:min(1280px,97vw)!important;max-height:94vh!important;padding:30px 32px 34px!important}
.detail-header .detail-logo{width:60px!important;height:60px!important}.detail-header h2{font-size:25px!important}.detail-header small{font-size:11px!important}.detail-header p{font-size:11px!important}
.detail-metrics{gap:11px!important}.detail-metrics .metric-card{min-height:86px!important;padding:14px!important}.detail-metrics .metric-card small{font-size:10px!important}.detail-metrics .metric-card strong{font-size:15px!important}
.detail-grid>section,.detail-section{padding:15px!important}.detail-grid h3,.detail-section h3{font-size:13px!important}.detail-table th{font-size:9.5px!important;padding:9px!important}.detail-table td{font-size:10.5px!important;padding:9px!important}

@media(max-width:900px){
  .t212-range-bar{gap:3px!important}.t212-range-btn{flex-basis:48px!important;min-width:48px!important;font-size:10px!important}
  .news-page-list .calendar-news-item{grid-template-columns:44px minmax(0,1fr)!important;padding:16px!important}.news-page-list .importance{grid-column:2!important;justify-self:start!important}
  .news-ipo-card .ipo-calendar-list{grid-template-columns:1fr!important}
  .modal-card.detail-card{width:min(97vw,1100px)!important;padding:24px!important}
}
@media(max-width:560px){
  .t212-range-wrap{margin-top:4px}.t212-range-label{font-size:8px}.t212-range-bar{border-radius:13px!important;padding:2px!important}.t212-range-btn{flex:0 0 46px!important;min-width:46px!important;min-height:36px!important;font-size:9px!important;padding:8px 3px!important}
  .news-only-card{padding:13px!important}.news-page-list .calendar-news-item{padding:14px 11px!important}.news-page-list .calendar-news-copy>strong{font-size:14px!important}.news-page-list .calendar-news-body,.news-page-list .calendar-news-body p{font-size:11px!important}
  .news-ipo-card .card-head{padding:15px 13px 7px!important}.news-ipo-card .ipo-calendar-list{padding:9px 13px 15px!important}
  .modal-card.detail-card{width:98vw!important;max-height:96vh!important;padding:18px 16px 22px!important}.detail-header .detail-logo{width:54px!important;height:54px!important}.detail-header h2{font-size:22px!important}
}


/* v0.10.69 — interval selector replaces duplicate account-value heading (retained in v0.10.70) */
.t212-range-wrap-top{margin:0 0 2px!important;width:100%!important}
.t212-range-head{display:flex;align-items:center;gap:8px;margin:0 0 5px 3px}.t212-range-head .t212-range-label{margin:0!important}.t212-range-head .info-tip{flex:0 0 auto}
.t212-account-header{gap:11px!important}.t212-account-chart{margin-top:8px!important}
@media(max-width:560px){.t212-range-wrap-top{margin-bottom:2px!important}.t212-range-head{margin-bottom:3px}.t212-account-header{gap:9px!important}}

.upcoming-ai-source{color:#46dc91!important;border:1px solid #245c48;border-radius:999px;padding:2px 6px!important;font-size:7.5px!important;font-weight:850!important;letter-spacing:.02em}
html[data-theme="light"] .upcoming-ai-source{color:#187049!important;border-color:#a9dac2!important;background:#effaf4!important}

/* v0.10.70 — exact self-collected Account value history */
.t212-account-header{
  display:grid!important;
  grid-template-columns:max-content minmax(0,1fr)!important;
  align-items:end!important;
  column-gap:26px!important;
  row-gap:12px!important;
}
.t212-account-title{grid-column:1;grid-row:1;align-self:center;white-space:nowrap}
.t212-account-title h2{margin:0;color:#edf6f9;font-size:21px;line-height:1.1;font-weight:850;letter-spacing:-.025em}
.t212-range-wrap-top{grid-column:2;grid-row:1;margin:0!important;min-width:0}
.t212-account-metrics{grid-column:1/-1;grid-row:2}
.t212-net-deposits{grid-column:1/-1;grid-row:3;justify-self:start}
.t212-range-btn:disabled,.t212-range-btn.collecting{opacity:.34!important;cursor:not-allowed!important;color:#637681!important;background:transparent!important}
.t212-range-btn:disabled:hover{background:transparent!important;color:#637681!important}
html[data-theme="light"] .t212-account-title h2{color:#173846}
html[data-theme="light"] .t212-range-btn:disabled{color:#9aa9af!important}
@media(max-width:760px){
  .t212-account-header{grid-template-columns:1fr!important;align-items:start!important;row-gap:9px!important}
  .t212-account-title,.t212-range-wrap-top,.t212-account-metrics,.t212-net-deposits{grid-column:1!important;grid-row:auto!important}
  .t212-account-title h2{font-size:19px}
}

/* -------------------------------------------------------------------------
   Finora v0.10.71 — Flow Intelligence / adaptive liquidity model
   ------------------------------------------------------------------------- */
.flow-nav-glyph{font-size:21px!important;font-weight:900;transform:translateY(-1px)}
.flow-page{max-width:1600px!important;width:100%!important;padding-bottom:34px}
.flow-hero{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:18px;align-items:stretch;margin-bottom:13px}
.flow-hero-copy,.flow-memory-badge{border:1px solid #1d4051;background:radial-gradient(circle at 85% 0,#0b3850 0,#0a2230 34%,#081b27 76%);border-radius:18px;position:relative;overflow:hidden}
.flow-hero-copy{padding:26px 28px}.flow-hero-copy:after{content:"";position:absolute;right:-70px;top:-110px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,#1fbefa22 0,#1fbefa00 70%)}
.flow-kicker{display:inline-flex;align-items:center;gap:7px;color:#56caf7;font-size:9px;font-weight:900;letter-spacing:.14em}.flow-kicker i{font-style:normal;width:22px;height:22px;border-radius:8px;display:grid;place-items:center;background:#0a5c7d;border:1px solid #1689b8;font-size:14px}.flow-hero h2{font-size:30px!important;margin:9px 0 7px!important;letter-spacing:-.035em}.flow-hero p{max-width:970px;margin:0;color:#9eb2bd;font-size:12px;line-height:1.7}
.flow-memory-badge{padding:22px;display:flex;flex-direction:column;justify-content:center}.flow-memory-badge:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 17px #29d66faa;margin-bottom:14px}.flow-memory-badge span{font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:#6f8b99}.flow-memory-badge strong{font-size:18px;margin:4px 0;color:#eaf8f0}.flow-memory-badge small{color:#86a0ad;font-size:10px}
.flow-status-row{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 4px 0 7px}.flow-status-row>div{display:flex;align-items:center;gap:8px}.flow-status-row strong{font-size:11px}.flow-status-row>span{margin-left:auto;color:#728e9b;font-size:10px}.flow-live-dot{width:8px;height:8px;border-radius:50%;background:#2fd878;box-shadow:0 0 12px #2fd87899}.flow-refresh-btn{font-size:9px!important;padding:8px 11px!important}.flow-refresh-btn:disabled{opacity:.5;cursor:wait}
.flow-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:13px}.flow-kpi{padding:16px 17px;min-height:111px;display:flex;flex-direction:column}.flow-kpi>span{font-size:9.5px;color:#78929f;text-transform:uppercase;letter-spacing:.05em}.flow-kpi>strong{font-size:22px;margin:7px 0 5px;line-height:1.1}.flow-kpi>small{font-size:9.5px;color:#8ca5b1;line-height:1.45;margin-top:auto}
.flow-main-grid{display:grid;grid-template-columns:minmax(620px,1.65fr) minmax(360px,.85fr);gap:13px;margin-bottom:13px}.flow-map-card,.flow-scenario-card,.flow-weights-card,.flow-score-card,.flow-history-card{min-width:0;overflow:hidden}.flow-map-card{padding-bottom:11px}.flow-map-card .card-head,.flow-scenario-card .card-head,.flow-weights-card .card-head,.flow-score-card .card-head,.flow-history-card .card-head{padding:18px 20px 11px}.flow-map-card h3,.flow-scenario-card h3,.flow-weights-card h3,.flow-score-card h3,.flow-history-card h3{font-size:16px;margin:0 0 3px}.flow-map-card .card-head small,.flow-scenario-card .card-head small,.flow-weights-card .card-head small,.flow-score-card .card-head small,.flow-history-card .card-head small{display:block;color:#78929f;font-size:9.5px}.flow-session-pill,.flow-learning-pill{border:1px solid #275063;background:#0a2a39;color:#8dc8df;border-radius:999px;padding:6px 9px;font-size:8px;font-weight:800;white-space:nowrap}.flow-learning-pill.active{border-color:#23774e;background:#0b3826;color:#65e49a}
.flow-bars{padding:0 12px 4px}.flow-bar-row{display:grid;grid-template-columns:30px minmax(195px,1fr) minmax(220px,.95fr) 84px;gap:12px;align-items:center;padding:11px 10px;border-top:1px solid #163645}.flow-bar-row:first-child{border-top:0}.flow-bar-row:hover{background:#0b243133}.flow-bar-rank{width:25px;height:25px;border-radius:8px;background:#0b2b3a;border:1px solid #244a5b;display:grid;place-items:center;color:#80a4b5;font-size:9px;font-weight:850}.flow-bar-copy>div{display:flex;align-items:baseline;gap:8px}.flow-bar-copy strong{font-size:12px}.flow-bar-copy span{font-size:8.5px;color:#6f8996}.flow-bar-copy p{margin:3px 0 0;color:#8da3ae;font-size:9.5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.flow-bar-visual{min-width:0}.flow-bar-track{height:10px;border-radius:999px;background:#102e3b;position:relative;overflow:hidden;border:1px solid #214454}.flow-bar-track i{position:absolute;inset:0 auto 0 0;width:var(--flow);border-radius:999px;background:linear-gradient(90deg,#155b76,#21b6eb);transition:width .6s ease}.flow-bar-row.inflow .flow-bar-track i{background:linear-gradient(90deg,#146943,#2fdb83)}.flow-bar-row.outflow .flow-bar-track i{background:linear-gradient(90deg,#7d2937,#e64a5e)}.flow-neutral-marker{position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:#d8e8ef77;z-index:2}.flow-bar-visual small{display:block;margin-top:4px;color:#607f8e;font-size:8px}.flow-bar-value{text-align:right}.flow-bar-value strong{display:block;font-size:15px}.flow-bar-row.inflow .flow-bar-value strong{color:var(--green)}.flow-bar-row.outflow .flow-bar-value strong{color:var(--red)}.flow-bar-value span{display:block;color:#78929f;font-size:8px;margin-top:2px}.flow-bar-value em{display:block;font-style:normal;font-size:8px;margin-top:4px}
.flow-loading{min-height:310px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#7d96a2;padding:30px}.flow-loading i{width:31px;height:31px;border-radius:50%;border:2px solid #245165;border-top-color:#28bcff;animation:flowSpin .9s linear infinite;margin-bottom:13px}.flow-loading strong{color:#d9e9ef;font-size:13px}.flow-loading span{font-size:9.5px;max-width:460px;line-height:1.5;margin-top:5px}@keyframes flowSpin{to{transform:rotate(360deg)}}
.flow-scenario-card{padding-bottom:18px}.flow-scenario-copy{margin:2px 20px 17px;padding:14px 15px;border:1px solid #1e4657;border-radius:11px;background:#0b2532;color:#c7d8df;font-size:11px;line-height:1.65}.flow-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:0 20px}.flow-story-grid h4{font-size:10px;margin:0 0 8px;color:#a9bdc6}.flow-story-list{display:grid;gap:7px}.flow-story-list>div{display:grid;grid-template-columns:7px 1fr;gap:7px;color:#89a1ad;font-size:9.5px;line-height:1.45}.flow-story-list i{width:6px;height:6px;border-radius:50%;background:#27b8f0;margin-top:4px}.flow-story-grid section:last-child .flow-story-list i{background:#f3a73e}.flow-story-empty{display:block!important;color:#607b88!important}.flow-source-strip{display:flex;flex-wrap:wrap;gap:6px;margin:16px 20px 0;padding-top:12px;border-top:1px solid #173746}.flow-source-strip a,.flow-source-strip span{font-size:8px;color:#70bddd;text-decoration:none;border:1px solid #21485b;border-radius:999px;padding:4px 7px}.flow-source-strip a:hover{color:white;border-color:#2b9bca}
.flow-learning-grid{display:grid;grid-template-columns:minmax(520px,1.35fr) minmax(330px,.65fr);gap:13px;margin-bottom:13px}.flow-weights-card{padding-bottom:17px}.flow-weights{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;padding:3px 20px 10px}.flow-weight-row>div{display:flex;justify-content:space-between;gap:10px;font-size:9.5px}.flow-weight-row span{color:#8ea5b0}.flow-weight-row strong{color:#dce9ee}.flow-weight-row>i{display:block;height:5px;border-radius:999px;background:#112f3d;margin-top:5px;overflow:hidden}.flow-weight-row b{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1286be,#2bc7ef)}.flow-method-note{margin:7px 20px 0;padding-top:10px;border-top:1px solid #173746;color:#6f8996;font-size:9px;line-height:1.5}
.flow-score-card{display:grid;grid-template-columns:155px 1fr;grid-template-rows:auto 1fr;align-items:center;padding-bottom:17px}.flow-score-card .card-head{grid-column:1/-1}.flow-calibration-ring{--calibration:0;width:116px;height:116px;margin:4px auto;display:grid;place-items:center;align-content:center;border-radius:50%;background:radial-gradient(circle at center,#0a1d28 55%,transparent 57%),conic-gradient(#2bc7ef calc(var(--calibration)*360deg),#173946 0);box-shadow:inset 0 0 0 1px #2a5364}.flow-calibration-ring strong{font-size:22px}.flow-calibration-ring span{font-size:8px;color:#78929f}.flow-calibration-copy{padding:0 20px 0 5px}.flow-calibration-copy strong{font-size:12px}.flow-calibration-copy p{font-size:9px;color:#7d96a2;line-height:1.55;margin:5px 0 0}
.flow-history-card{padding-bottom:12px}.flow-history{padding:0 14px 7px}.flow-history-row{display:grid;grid-template-columns:100px minmax(180px,1.2fr) minmax(100px,.65fr) minmax(180px,1fr);gap:14px;align-items:center;padding:10px 8px;border-top:1px solid #173746}.flow-history-row:first-child{border-top:0}.flow-history-row time{font-size:9px;color:#6f8996}.flow-history-row strong{display:block;font-size:10px}.flow-history-row span{display:block;color:#728c99;font-size:8.5px;margin-top:2px}.flow-disclaimer{display:grid;grid-template-columns:26px 1fr;gap:9px;align-items:start;margin-top:13px;padding:13px 15px;border:1px solid #1d4051;border-radius:12px;background:#0a1f2a}.flow-disclaimer>span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1px solid #2b6177;color:#43c3f3;font-size:10px}.flow-disclaimer p{margin:1px 0 0;color:#829aa6;font-size:9.5px;line-height:1.55}

html[data-theme="light"] .flow-hero-copy,html[data-theme="light"] .flow-memory-badge{background:radial-gradient(circle at 85% 0,#d8f1fb 0,#f2f8fa 35%,#fff 80%);border-color:#bdd7e1}html[data-theme="light"] .flow-hero p,html[data-theme="light"] .flow-kpi small,html[data-theme="light"] .flow-bar-copy p,html[data-theme="light"] .flow-story-list>div,html[data-theme="light"] .flow-method-note,html[data-theme="light"] .flow-calibration-copy p,html[data-theme="light"] .flow-disclaimer p{color:#607985}html[data-theme="light"] .flow-bar-track{background:#dcebef;border-color:#bed5df}html[data-theme="light"] .flow-scenario-copy{background:#f1f8fa;color:#294854;border-color:#c8dfe8}html[data-theme="light"] .flow-bar-row:hover{background:#edf7fa}html[data-theme="light"] .flow-source-strip a,html[data-theme="light"] .flow-source-strip span{color:#287b9e;border-color:#bfdce8}html[data-theme="light"] .flow-calibration-ring{background:radial-gradient(circle at center,#fff 55%,transparent 57%),conic-gradient(#1ba8dd calc(var(--calibration)*360deg),#d9e9ef 0);border-color:#bdd8e2}

@media(max-width:1150px){.flow-main-grid,.flow-learning-grid{grid-template-columns:1fr}.flow-score-card{min-height:220px}.flow-bar-row{grid-template-columns:28px minmax(170px,1fr) minmax(180px,.9fr) 80px}}
@media(max-width:780px){.flow-hero{grid-template-columns:1fr}.flow-memory-badge{min-height:115px}.flow-kpi-grid{grid-template-columns:1fr 1fr}.flow-status-row{flex-wrap:wrap;padding:8px 2px}.flow-status-row>span{margin-left:0;order:3;width:100%}.flow-refresh-btn{margin-left:auto}.flow-bar-row{grid-template-columns:28px minmax(0,1fr) 76px}.flow-bar-visual{grid-column:2/-1}.flow-story-grid,.flow-weights{grid-template-columns:1fr}.flow-history-row{grid-template-columns:88px 1fr}.flow-history-row>div:nth-child(3),.flow-history-row>div:nth-child(4){grid-column:2}.flow-score-card{grid-template-columns:130px 1fr}}
@media(max-width:520px){.flow-hero-copy{padding:21px 18px}.flow-hero h2{font-size:26px!important}.flow-kpi-grid{grid-template-columns:1fr}.flow-map-card .card-head,.flow-scenario-card .card-head,.flow-weights-card .card-head,.flow-score-card .card-head,.flow-history-card .card-head{padding:15px 13px 9px}.flow-bars{padding:0 5px}.flow-bar-row{gap:8px;padding:10px 6px}.flow-bar-copy p{font-size:9px}.flow-scenario-copy{margin:2px 13px 14px}.flow-story-grid{padding:0 13px}.flow-source-strip{margin:14px 13px 0}.flow-weights{padding:3px 13px 9px}.flow-method-note{margin:6px 13px 0}.flow-score-card{grid-template-columns:1fr;text-align:center}.flow-score-card .card-head{grid-column:1}.flow-calibration-copy{padding:5px 18px}.flow-history{padding:0 7px}.flow-history-row{grid-template-columns:76px 1fr;gap:9px}}

/* -------------------------------------------------------------------------
   Finora v0.10.72 — stable heatmap geometry + clearer calendar/news changes
   ------------------------------------------------------------------------- */
/* Název grafu je ukotvený opravdu vlevo nahoře; volič období zůstává vedle. */
.t212-account-header{align-items:start!important}
.t212-account-title{align-self:start!important;padding-top:1px!important}
.t212-account-title h2{margin:0!important;line-height:1!important}
.t212-account-metrics{grid-row:2!important}

/* Heatmapa nesmí vizuálně „cestovat“ při každém cenovém ticku. Geometrii mění
   jen nákup/prodej (JS používá allocationWeight = nákladová báze). */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.weighted{
  transition:background .35s ease,border-color .35s ease,box-shadow .18s ease!important;
  will-change:auto!important;
}

/* Nové události/zprávy po otevření sekce zůstanou výrazně označené až do
   odchodu ze stránky. Pak už jsou považované za přečtené. */
.calendar-market-pane .event-row.is-new-item,
.news-ipo-card .event-row.is-new-item,
.calendar-news-item.is-new-item{
  position:relative!important;
  border-color:#35c985!important;
  background:linear-gradient(180deg,#10372b,#0b2922)!important;
  box-shadow:inset 4px 0 0 #35d887,0 0 0 1px #35d88722!important;
}
.calendar-market-pane .event-row.is-new-item:hover,
.news-ipo-card .event-row.is-new-item:hover,
.calendar-news-item.is-new-item:hover{
  border-color:#53e49b!important;
  background:linear-gradient(180deg,#124331,#0d3227)!important;
}
.new-item-label{
  display:inline-flex!important;align-items:center;justify-content:center;min-height:20px;padding:2px 7px!important;
  border-radius:999px!important;background:#31d77f!important;color:#062619!important;border:1px solid #64efa5!important;
  font-size:7.5px!important;line-height:1!important;font-weight:950!important;letter-spacing:.08em!important;text-transform:uppercase!important;
  white-space:nowrap!important;font-style:normal!important;
}
.event-side .new-item-label{align-self:flex-end;margin-bottom:2px}
html[data-theme="light"] .calendar-market-pane .event-row.is-new-item,
html[data-theme="light"] .news-ipo-card .event-row.is-new-item,
html[data-theme="light"] .calendar-news-item.is-new-item{
  background:linear-gradient(180deg,#e7f8ef,#f3fbf7)!important;border-color:#65c893!important;box-shadow:inset 4px 0 0 #2dbf70!important;
}
html[data-theme="light"] .new-item-label{background:#1dbc69!important;color:white!important;border-color:#139c54!important}

/* Odpočet u budoucí dividendy patří do pravého zeleného boxu pod částky. */
.upcoming-amount .upcoming-due{display:block!important;margin-top:5px!important;color:#55dd96!important;font-size:9px!important;font-weight:850!important;white-space:nowrap!important}
html[data-theme="light"] .upcoming-amount .upcoming-due{color:#147949!important}

/* Detail kalendářové události používá stejné skutečné logo jako seznam. */
.event-detail-logo-wrap{position:relative;width:64px;height:64px;display:grid;place-items:center;flex:0 0 64px}
.event-detail-company-logo{width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;border-radius:14px!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
.event-detail-company-logo img{width:100%!important;height:100%!important;object-fit:contain!important;padding:3px!important;background:transparent!important}
.event-detail-company-logo .logo-fallback{width:60px!important;height:60px!important;border-radius:14px!important;font-size:13px!important}
.event-detail-logo-wrap .calendar-type-dot{width:13px!important;height:13px!important;right:0!important;bottom:0!important}
@media(max-width:760px){.t212-account-title{padding-top:0!important}.event-detail-logo-wrap{width:58px;height:58px;flex-basis:58px}.event-detail-company-logo,.event-detail-company-logo .logo-fallback{width:54px!important;height:54px!important}}


/* -------------------------------------------------------------------------
   Finora v0.10.73 — cleaner heatmap + live earnings results
   ------------------------------------------------------------------------- */
/* Odpočet dividendy je informační text, ne zelený výnos. */
.upcoming-amount .upcoming-due{color:#f3f8fa!important;font-weight:750!important}
html[data-theme="light"] .upcoming-amount .upcoming-due{color:#294753!important}

/* Heatmapa: bez celých názvů firem, prioritou je logo + ticker + živá čísla. */
.portfolio-heatmap.weighted-heatmap .heatmap-company{display:none!important}
.portfolio-heatmap.weighted-heatmap .heatmap-fixed-ticker{margin-top:0!important;font-size:10px!important;font-weight:950!important;letter-spacing:.055em!important;color:#eef8fb!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-fixed-ticker{font-size:12px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-fixed-ticker{font-size:14px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-logo{display:grid!important;width:13px!important;height:13px!important;left:3px!important;top:3px!important;padding:0!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-logo .logo-fallback{width:12px!important;height:12px!important;font-size:4px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-weighted-copy{padding-left:14px!important;align-items:flex-start!important;text-align:left!important;justify-content:center!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-fixed-ticker{font-size:6px!important}
html[data-theme="light"] .portfolio-heatmap.weighted-heatmap .heatmap-fixed-ticker{color:#244552!important}

/* Vlastní tooltip lze číst a uspořádat lépe než nativní browser title. */
#heatmap-hover-tooltip{position:fixed;z-index:99999;left:-9999px;top:-9999px;width:min(340px,calc(100vw - 28px));padding:14px 15px;border-radius:12px;background:#071a24f7;border:1px solid #315266;box-shadow:0 18px 48px #0009;color:#edf7fa;pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity .12s ease,transform .12s ease;backdrop-filter:blur(10px)}
#heatmap-hover-tooltip.show{opacity:1;transform:translateY(0)}
.heatmap-session-chart{display:block;width:100%;height:auto;margin-top:9px;overflow:visible}
.heatmap-session-chart text{fill:#abc5d5;font:11px system-ui,sans-serif}
.heatmap-session-axis{stroke:#315266;stroke-width:1}
.heatmap-session-grid{stroke:#315266;stroke-width:1;opacity:.35}
.heatmap-session-line{fill:none;stroke:#38c5fa;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.heatmap-session-point{fill:#38c5fa}
.heatmap-session-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;font-size:12px;color:#e5f3fa}
.heatmap-session-caption span{font-size:11px;color:#abc5d5}
.heatmap-session-empty{padding:24px 0 14px;font-size:13px;color:#abc5d5}
.heatmap-stock-card{font-variant-numeric:tabular-nums;line-height:1.35}
.heatmap-stock-primary,.heatmap-stock-secondary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:16px}
.heatmap-stock-primary>div:last-child,.heatmap-stock-secondary>div:last-child{text-align:right}
.heatmap-stock-card [data-heatmap-metric]{display:block;font-size:18px;line-height:1.3;overflow-wrap:anywhere;color:#edf7fa}
.heatmap-stock-primary [data-heatmap-metric]{font-size:25px;font-weight:800}
.heatmap-stock-primary span,.heatmap-stock-secondary span{display:block;font-size:12px;color:#abc5d5;margin-top:3px}
.heatmap-stock-secondary span{margin:0 0 5px}
.heatmap-stock-card .heatmap-stock-day{display:block;margin-top:2px;font-size:10px;color:#abc5d5}
#heatmap-hover-tooltip .heatmap-stock-card [data-heatmap-metric].positive{color:#5fe79b!important}
#heatmap-hover-tooltip .heatmap-stock-card [data-heatmap-metric].negative{color:#ff3545!important}
.heatmap-stock-hours{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #244250;margin-top:16px;padding-top:12px;font-size:12px;color:#abc5d5}
.heatmap-stock-hours b{margin-left:4px;color:#edf7fa;font-weight:650}
html[data-theme="light"] .heatmap-stock-card [data-heatmap-metric],html[data-theme="light"] .heatmap-stock-hours b{color:#193a46}
html[data-theme="light"] .heatmap-stock-primary span,html[data-theme="light"] .heatmap-stock-secondary span,html[data-theme="light"] .heatmap-stock-card .heatmap-stock-day,html[data-theme="light"] .heatmap-stock-hours{color:#4c6977}
html[data-theme="light"] #heatmap-hover-tooltip .heatmap-stock-card [data-heatmap-metric].positive{color:#08763e!important}
html[data-theme="light"] #heatmap-hover-tooltip .heatmap-stock-card [data-heatmap-metric].negative{color:#d32638!important}
html[data-theme="light"] .heatmap-stock-hours{border-color:#cedfe7}
html[data-theme="light"] .heatmap-session-caption{color:#193a46}
html[data-theme="light"] .heatmap-session-caption span,html[data-theme="light"] .heatmap-session-empty{color:#4c6977}
html[data-theme="light"] .heatmap-session-chart text{fill:#4c6977}
html[data-theme="light"] .heatmap-session-line{stroke:#0088ba}
html[data-theme="light"] .heatmap-session-point{fill:#0088ba}
html[data-theme="light"] .heatmap-session-axis{stroke:#cedfe7}
.heatmap-tooltip-head{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid #244250}
.heatmap-tooltip-logo{width:40px;height:40px;display:grid;place-items:center;background:transparent;overflow:visible}.heatmap-tooltip-logo img{width:100%;height:100%;object-fit:contain}.heatmap-tooltip-logo .logo-fallback{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;font-size:10px;font-weight:900}
.heatmap-tooltip-head strong,.heatmap-tooltip-title strong{display:block;font-size:15px;line-height:1.2;font-weight:900;color:#fff}.heatmap-tooltip-head span,.heatmap-tooltip-title span{display:block;margin-top:3px;font-size:10px;color:#91aab6;font-weight:750}
.heatmap-tooltip-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 16px;margin-top:11px;align-items:center}.heatmap-tooltip-grid span{font-size:10px;color:#91aab6}.heatmap-tooltip-grid b{font-size:11.5px;color:#f5fbfd;text-align:right}.heatmap-tooltip-grid b.positive{color:#5fe79b}.heatmap-tooltip-grid b.negative{color:#ff7d89}.heatmap-tooltip-grid b.flat{color:#d1dde2}.heatmap-tooltip-note{margin-top:9px;font-size:10px;line-height:1.5;color:#b7cbd4}
html[data-theme="light"] #heatmap-hover-tooltip{background:#fffffff7;color:#203f4b;border-color:#bfd3dc;box-shadow:0 18px 42px #284c5c24}.heatmap-tooltip-head strong,html[data-theme="light"] .heatmap-tooltip-title strong{color:#193a46}html[data-theme="light"] .heatmap-tooltip-head span,html[data-theme="light"] .heatmap-tooltip-title span,html[data-theme="light"] .heatmap-tooltip-grid span{color:#6d8792}html[data-theme="light"] .heatmap-tooltip-grid b{color:#203f4b}

/* Zveřejněné výsledky musí být v kalendáři okamžitě viditelné. */
.calendar-market-pane .event-row.has-published-results{border-color:#36d88a!important;background:linear-gradient(180deg,#113d2e,#0a2b23)!important;box-shadow:inset 4px 0 0 #37df8f,0 0 0 1px #37df8f22!important}
.earnings-published-label{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:3px 8px;border-radius:7px;background:#2bd77b;color:#062619;border:1px solid #64efa5;font-size:7.5px;font-weight:950;letter-spacing:.07em;white-space:nowrap}
html[data-theme="light"] .calendar-market-pane .event-row.has-published-results{background:linear-gradient(180deg,#e7f9ef,#f6fcf8)!important;border-color:#55c98a!important;box-shadow:inset 4px 0 0 #2dbf70!important}

.earnings-result-panel{margin:0 0 16px;padding:16px;border:1px solid #2e6c52;border-radius:13px;background:linear-gradient(155deg,#0c2c23,#091f1c);box-shadow:inset 0 1px 0 #ffffff0d}
.earnings-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.earnings-result-head small{display:block;color:#62d99a;font-size:8px;font-weight:900;letter-spacing:.1em}.earnings-result-head h3{margin:4px 0 0;font-size:17px}.earnings-result-head>span{padding:4px 8px;border-radius:999px;background:#25c972;color:#052318;font-size:7px;font-weight:950;letter-spacing:.08em}
.earnings-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.earnings-result-grid>div{padding:12px;border-radius:10px;background:#082019;border:1px solid #24513f}.earnings-result-grid small{display:block;color:#8eb7a5;font-size:8px}.earnings-result-grid strong{display:block;margin-top:5px;font-size:18px}.earnings-result-grid span{display:block;margin-top:3px;font-size:9px;color:#8fa7a0}.earnings-result-grid b{display:block;margin-top:6px;font-size:9px}
.earnings-result-summary{margin-top:10px;padding:11px 12px;border-radius:9px;background:#071b18;border:1px solid #1e4537}.earnings-result-summary small{display:block;color:#79b99d;font-size:8px;font-weight:850}.earnings-result-summary p{margin:5px 0 0;font-size:11px;line-height:1.55;color:#dbe9e2}.earnings-result-updated{margin-top:9px;font-size:8px;color:#77958a;text-align:right}
html[data-theme="light"] .earnings-result-panel{background:linear-gradient(155deg,#effaf4,#f8fcfa);border-color:#a6d8bd}html[data-theme="light"] .earnings-result-grid>div,html[data-theme="light"] .earnings-result-summary{background:#fff;border-color:#cce4d7}html[data-theme="light"] .earnings-result-summary p{color:#28493b}
@media(max-width:680px){.earnings-result-grid{grid-template-columns:1fr}.earnings-published-label{font-size:6.8px}}

/* -------------------------------------------------------------------------
   Finora v0.10.75 — čistší záhlaví Hodnoty účtu
   ------------------------------------------------------------------------- */
.t212-account-header-clean{
  display:grid!important;
  grid-template-columns:150px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  align-items:center!important;
  column-gap:20px!important;
  row-gap:10px!important;
  width:100%!important;
}
.t212-account-header-clean .t212-account-title{
  grid-column:1!important;
  grid-row:1!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  padding:0!important;
  align-self:center!important;
  white-space:nowrap!important;
}
.t212-account-header-clean .t212-account-title h2{
  margin:0!important;
  font-size:20px!important;
  line-height:1!important;
  font-weight:850!important;
  letter-spacing:-.025em!important;
}
.t212-account-header-clean .t212-account-title .info-tip{flex:0 0 auto!important}
.t212-account-header-clean .t212-range-wrap-top{
  grid-column:2!important;
  grid-row:1!important;
  width:100%!important;
  margin:0!important;
  min-width:0!important;
}
.t212-account-header-clean .t212-range-bar{
  margin:0!important;
  width:100%!important;
}
.t212-account-header-clean .t212-account-metrics{
  grid-column:2!important;
  grid-row:2!important;
  display:grid!important;
  grid-template-columns:minmax(150px,1fr) minmax(135px,.78fr)!important;
  gap:18px!important;
  width:min(390px,100%)!important;
  margin-left:auto!important;
  align-items:end!important;
}
.t212-account-header-clean .t212-account-metric{
  gap:4px!important;
  min-width:0!important;
}
.t212-account-header-clean .t212-account-metric>span{
  font-size:9px!important;
  line-height:1.15!important;
  letter-spacing:.045em!important;
}
.t212-account-header-clean .t212-account-metric>strong{
  font-size:16px!important;
  line-height:1.1!important;
  font-weight:650!important;
}
.t212-account-card .t212-account-chart{margin-top:10px!important}

@media(max-width:900px){
  .t212-account-header-clean{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto auto!important;
    row-gap:9px!important;
  }
  .t212-account-header-clean .t212-account-title,
  .t212-account-header-clean .t212-range-wrap-top,
  .t212-account-header-clean .t212-account-metrics{
    grid-column:1!important;
    grid-row:auto!important;
  }
  .t212-account-header-clean .t212-account-metrics{
    width:min(390px,100%)!important;
    margin-left:0!important;
  }
}
@media(max-width:560px){
  .t212-account-header-clean .t212-account-title h2{font-size:19px!important}
  .t212-account-header-clean .t212-account-metrics{grid-template-columns:1fr 1fr!important;gap:12px!important}
}

/* Tok kapitálu: kolečko se točí jen při skutečně běžícím výpočtu. */
.flow-loading.is-static i{animation:none!important;border-style:solid!important;opacity:.35!important}
.flow-loading.is-error i{animation:none!important;border-color:#ff7d89!important;border-top-color:#ff7d89!important;opacity:.85!important}

/* -------------------------------------------------------------------------
   Finora v0.10.77 — čitelnější kalendář/zprávy, přehlednější Tipy dne
   ------------------------------------------------------------------------- */
/* Hodnota účtu: název + období nahoře, obě metriky přesně v jedné rovině. */
.t212-account-header-clean{
  grid-template-columns:minmax(145px,180px) minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  column-gap:22px!important;row-gap:13px!important;align-items:center!important;
}
.t212-account-header-clean .t212-account-title{grid-column:1!important;grid-row:1!important;align-self:center!important}
.t212-account-header-clean .t212-range-wrap-top{grid-column:2!important;grid-row:1!important;align-self:center!important}
.t212-account-header-clean .t212-account-metrics{
  grid-column:1/-1!important;grid-row:2!important;width:100%!important;margin:0!important;
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;align-items:stretch!important;
  border-top:1px solid #173846!important;padding-top:11px!important;
}
.t212-account-header-clean .t212-account-metric{min-height:52px!important;display:flex!important;justify-content:center!important;gap:5px!important;padding:0 15px!important}
.t212-account-header-clean .t212-account-metric:first-child{border-right:1px solid #173846!important;padding-left:0!important}
.t212-account-header-clean .t212-account-metric>span{display:flex!important;align-items:center!important;min-height:15px!important;font-size:10.5px!important;line-height:1.2!important;letter-spacing:.035em!important}
.t212-account-header-clean .t212-account-metric>strong{display:flex!important;align-items:center!important;min-height:22px!important;font-size:18px!important;line-height:1.15!important}
html[data-theme="light"] .t212-account-header-clean .t212-account-metrics,html[data-theme="light"] .t212-account-header-clean .t212-account-metric:first-child{border-color:#d5e3e8!important}

/* Kalendář: větší řádky a typografie bez technického zdrojového balastu. */
.calendar-market-pane .event-row{grid-template-columns:50px minmax(0,1fr) auto!important;gap:14px!important;padding:15px 13px!important;min-height:82px!important;border-radius:12px!important}
.calendar-market-pane .calendar-company-logo,.calendar-market-pane .calendar-company-logo .logo-fallback{width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important}
.calendar-market-pane .event-main small{font-size:11.5px!important;line-height:1.35!important;margin-bottom:4px!important}
.calendar-market-pane .event-main strong{font-size:15px!important;line-height:1.35!important;white-space:normal!important}
.calendar-market-pane .event-main span{font-size:12px!important;line-height:1.5!important;margin-top:5px!important;white-space:normal!important}
.calendar-market-pane .event-side{min-width:118px!important;gap:8px!important}
.calendar-market-pane .event-type{font-size:11.5px!important;min-width:88px!important;padding:7px 11px!important}
.earnings-published-label{font-size:9px!important;min-height:25px!important;padding:4px 9px!important}
.new-item-label{font-size:8.5px!important;min-height:22px!important}

/* Zprávy: čitelnější titulky a plné shrnutí. */
.calendar-news-item{grid-template-columns:52px minmax(0,1fr) 64px!important;gap:15px!important;padding:17px 15px!important;min-height:132px!important;border-radius:13px!important}
.calendar-news-logo,.calendar-news-logo .logo-fallback{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important}
.calendar-news-copy>strong{font-size:16px!important;line-height:1.42!important;color:#eef7fa!important}
.news-meta{gap:8px!important;margin-bottom:8px!important}.news-meta>span{font-size:10.5px!important;padding:4px 7px!important}.news-meta small{font-size:11px!important;line-height:1.35!important}.news-meta em{font-size:9px!important}
.calendar-news-copy .calendar-news-body p{font-size:13.5px!important;line-height:1.65!important;color:#b4c8d1!important}
.calendar-news-copy .calendar-news-body .news-why{padding:10px 12px!important}
.calendar-news-item .importance{font-size:8px!important}.calendar-news-item .importance small{font-size:9px!important}
html[data-theme="light"] .calendar-news-copy>strong{color:#203e49!important}html[data-theme="light"] .calendar-news-copy .calendar-news-body p{color:#536e79!important}

/* Detail kalendáře a zpráv. Zdrojová metadata zůstávají interně, ne v UI. */
.event-source-list{display:none!important}
#detail-content .detail-header{gap:17px!important;margin-bottom:20px!important}
#detail-content .detail-header h2{font-size:28px!important;line-height:1.18!important;margin:3px 0 5px!important}
#detail-content .detail-header small{font-size:12px!important}#detail-content .detail-header p{font-size:12.5px!important;line-height:1.45!important}
#detail-content .event-detail-box{gap:12px!important;padding:16px!important;border-radius:14px!important}
#detail-content .event-detail-box>div{padding:13px!important;border-radius:10px!important}
#detail-content .event-detail-box small{font-size:10.5px!important}#detail-content .event-detail-box strong{font-size:14px!important;line-height:1.35!important}
#detail-content .article-text{font-size:14.5px!important;line-height:1.72!important;padding:18px!important;color:#c0d2d9!important}
html[data-theme="light"] #detail-content .article-text{color:#405d68!important}

/* Zveřejněné výsledky: větší číselné karty a jasné srovnání s odhadem. */
.earnings-result-panel{padding:19px!important;border-radius:15px!important;margin-bottom:18px!important}
.earnings-result-head{align-items:center!important}.earnings-result-head small{font-size:10px!important}.earnings-result-head h3{font-size:21px!important;margin-top:5px!important}.earnings-result-head>span{font-size:9px!important;padding:6px 10px!important}
.earnings-result-grid{gap:12px!important;margin-top:16px!important}
.earnings-result-metric{padding:15px!important;border-radius:12px!important;background:#082019!important;border:1px solid #285b47!important}
.earnings-result-metric-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.earnings-result-metric-head small{font-size:11px!important;color:#9bc7b3!important}.earnings-result-metric-head span{font-size:9px;font-weight:900;padding:4px 7px;border-radius:999px;background:#0f3329}.earnings-result-metric-head span.positive{color:#67e7a3}.earnings-result-metric-head span.negative{color:#ff8a94}
.earnings-result-metric>strong{display:block!important;margin-top:8px!important;font-size:25px!important;line-height:1!important}.earnings-result-metric>p{margin:7px 0 0!important;font-size:11.5px!important;color:#91aaa0!important}.earnings-result-metric>p b{color:#dfece6!important}.earnings-result-metric>em{display:block;margin-top:6px;font-size:11px;font-style:normal;font-weight:850}
.earnings-surprise{height:7px;margin-top:11px;border-radius:999px;background:#17372d;overflow:hidden}.earnings-surprise i{display:block;height:100%;border-radius:999px}.earnings-surprise i.positive{background:#45da91}.earnings-surprise i.negative{background:#ff6d79}
.earnings-result-summary{padding:14px!important;margin-top:12px!important}.earnings-result-summary small{font-size:10px!important}.earnings-result-summary p{font-size:13.5px!important;line-height:1.65!important;margin-top:7px!important}.earnings-result-summary.guidance{border-color:#31566c!important;background:#0a202b!important}.earnings-result-updated{font-size:9.5px!important;margin-top:10px!important}
html[data-theme="light"] .earnings-result-metric{background:#fff!important;border-color:#c3dfcf!important}html[data-theme="light"] .earnings-result-metric>p{color:#607a6e!important}html[data-theme="light"] .earnings-result-metric>p b{color:#29483a!important}

/* Tipy dne: větší, číselnější a s vizuálním konsenzem pro rychlé pochopení. */
.investment-tips-list{gap:14px!important}.investment-tip-card{border-radius:17px!important}
.investment-tip-summary{grid-template-columns:38px 52px minmax(240px,1fr) 140px 100px 78px 24px!important;gap:14px!important;padding:17px 18px!important}
.tip-rank{width:32px!important;height:32px!important;font-size:12px!important}.tip-company-logo{width:46px!important;height:46px!important}
.tip-title-line strong{font-size:16px!important}.tip-title-line em{font-size:9px!important}.tip-company small{font-size:11px!important;margin-top:5px!important}.tip-company small b{color:#73e4ae;font-size:11.5px}
.tip-quick small{font-size:9.5px!important}.tip-quick strong{font-size:14px!important}.tip-score-ring{width:66px!important;height:66px!important}.tip-score-ring b{font-size:18px!important}.tip-score-ring small{font-size:7px!important}
.investment-tip-detail{padding:0 20px 20px!important}.tip-detail-grid{gap:16px!important;padding-top:16px!important}.tip-score-panel,.tip-metrics-panel{padding:16px!important;border-radius:13px!important}.tip-section-title strong{font-size:13px!important}.tip-section-title span{font-size:10px!important}
.tip-factor{margin-top:11px!important}.tip-factor>div{font-size:10.5px!important}.tip-factor>div strong{font-size:10.5px!important}.tip-factor>i{height:8px!important;margin-top:6px!important}
.tip-metric-grid{gap:10px!important}.tip-metric-grid>div{padding:12px!important}.tip-metric-grid small{font-size:9.5px!important}.tip-metric-grid strong{font-size:13px!important}
.tip-notes-grid{gap:18px!important;margin-top:16px!important}.tip-notes-grid h4,.tip-catalysts h4{font-size:12.5px!important}.tip-notes-grid li{font-size:12px!important;line-height:1.55!important;grid-template-columns:20px 1fr!important}.tip-catalysts{padding:14px 15px!important;margin-top:15px!important}.tip-catalysts ul{font-size:12px!important;line-height:1.65!important}
.tip-card-foot{font-size:9.5px!important;margin-top:16px!important}
.tip-consensus-dashboard{display:grid;grid-template-columns:1.15fr .9fr .9fr;gap:11px;margin-top:17px;padding:14px;border:1px solid #1e4654;border-radius:14px;background:linear-gradient(145deg,#0a202a,#081923)}
.tip-consensus-hero,.tip-consensus-kpi{padding:13px 14px;border:1px solid #1b3d49;border-radius:11px;background:#0b2530}.tip-consensus-hero small,.tip-consensus-kpi small{display:block;color:#86a0ad;font-size:9.5px;font-weight:800}.tip-consensus-hero strong{display:block;margin-top:5px;color:#74e5ae;font-size:19px;line-height:1.15}.tip-consensus-kpi strong{display:block;margin-top:5px;font-size:20px;line-height:1.15}.tip-consensus-hero span,.tip-consensus-kpi span{display:block;margin-top:5px;color:#8199a5;font-size:10px;line-height:1.35}
.tip-rating-distribution{grid-column:1/-1;padding-top:2px}.tip-rating-track{display:flex;width:100%;height:13px;border-radius:999px;overflow:hidden;background:#17323d}.tip-rating-track i{display:block;height:100%}.tip-rating-track .strong-buy{background:#34d78a}.tip-rating-track .buy{background:#65bfe9}.tip-rating-track .hold{background:#d6b45b}.tip-rating-track .sell{background:#e98763}.tip-rating-track .strong-sell{background:#ee6676}
.tip-rating-legend{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:9px}.tip-rating-legend>span{display:grid;grid-template-columns:8px auto 1fr;gap:5px;align-items:center;min-width:0}.tip-rating-legend>span>i{width:7px;height:7px;border-radius:50%}.tip-rating-legend .strong-buy>i{background:#34d78a}.tip-rating-legend .buy>i{background:#65bfe9}.tip-rating-legend .hold>i{background:#d6b45b}.tip-rating-legend .sell>i{background:#e98763}.tip-rating-legend .strong-sell>i{background:#ee6676}.tip-rating-legend b{font-size:11px}.tip-rating-legend small{font-size:9px;color:#839aa6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme="light"] .tip-consensus-dashboard{background:#f7fbfc;border-color:#cddfe6}html[data-theme="light"] .tip-consensus-hero,html[data-theme="light"] .tip-consensus-kpi{background:#fff;border-color:#d5e4e9}html[data-theme="light"] .tip-consensus-hero strong{color:#16855b}

@media(max-width:900px){
  .t212-account-header-clean{grid-template-columns:1fr!important;grid-template-rows:auto auto auto!important}.t212-account-header-clean .t212-account-title,.t212-account-header-clean .t212-range-wrap-top,.t212-account-header-clean .t212-account-metrics{grid-column:1!important;grid-row:auto!important}.t212-account-header-clean .t212-account-metrics{grid-template-columns:1fr 1fr!important}
  .investment-tip-summary{grid-template-columns:34px 48px minmax(150px,1fr) 90px 70px 22px!important}.investment-tip-summary>.tip-quick:nth-of-type(2){display:none!important}.tip-consensus-dashboard{grid-template-columns:1fr 1fr!important}.tip-consensus-hero{grid-column:1/-1}.tip-rating-distribution{grid-column:1/-1}
}
@media(max-width:620px){
  .t212-account-header-clean .t212-account-metrics{grid-template-columns:1fr 1fr!important}.t212-account-header-clean .t212-account-metric{padding:0 9px!important}.t212-account-header-clean .t212-account-metric>strong{font-size:15px!important}
  .calendar-market-pane .event-row{grid-template-columns:46px minmax(0,1fr)!important}.calendar-market-pane .event-side{grid-column:2!important}.calendar-news-item{grid-template-columns:46px minmax(0,1fr)!important}.calendar-news-item .importance{grid-column:2!important}
  .investment-tip-summary{grid-template-columns:30px 42px minmax(0,1fr) 60px 20px!important;padding:14px 11px!important;gap:9px!important}.investment-tip-summary>.tip-quick{display:none!important}.tip-title-line strong{font-size:14px!important}.tip-consensus-dashboard{grid-template-columns:1fr!important}.tip-consensus-hero,.tip-rating-distribution{grid-column:1!important}.tip-rating-legend{grid-template-columns:1fr 1fr!important}.tip-detail-grid,.tip-notes-grid{grid-template-columns:1fr!important}
}

/* v0.10.77 readability polish: calendar, news, published results and Tips dne */
.t212-account-header-clean .t212-account-metrics{align-items:stretch!important}
.t212-account-header-clean .t212-account-metric{display:grid!important;grid-template-rows:18px 28px!important;align-content:center!important;align-items:center!important}
.t212-account-header-clean .t212-account-metric>span{min-height:18px!important;line-height:18px!important;white-space:nowrap!important;font-size:11.5px!important}
.t212-account-header-clean .t212-account-metric>strong{min-height:28px!important;line-height:28px!important;font-size:19px!important}

.calendar-event .event-copy strong,.calendar-row .event-copy strong{font-size:16px!important;line-height:1.28!important}
.calendar-event .event-copy small,.calendar-row .event-copy small{font-size:13px!important;line-height:1.42!important}
.calendar-event .event-type,.calendar-row .event-type{font-size:12px!important}
.calendar-event,.calendar-row{min-height:70px!important;padding-top:12px!important;padding-bottom:12px!important}

.news-row .news-copy strong,.news-item .news-copy strong{font-size:17px!important;line-height:1.3!important}
.news-row .news-copy small,.news-item .news-copy small{font-size:13px!important;line-height:1.42!important}
.news-row .news-body,.news-item .news-body,.news-row p,.news-item p{font-size:15px!important;line-height:1.58!important}
.news-row,.news-item{padding-top:15px!important;padding-bottom:15px!important}
.news-published-badge,.event-result-badge{font-size:11px!important;letter-spacing:.045em!important;padding:6px 9px!important}

.earnings-result-panel .earnings-result-title strong{font-size:18px!important}
.earnings-result-panel .earnings-result-title small{font-size:12px!important}
.earnings-result-metric small{font-size:11px!important}
.earnings-result-metric strong{font-size:26px!important}
.earnings-result-metric span{font-size:12px!important}
.earnings-result-summary,.earnings-result-guidance{font-size:15px!important;line-height:1.58!important}
.earnings-result-summary strong,.earnings-result-guidance strong{font-size:14px!important}
.detail-header>div:last-child>small{font-size:12px!important}.detail-header h2{font-size:29px!important;line-height:1.18!important}.detail-header p{font-size:14px!important;line-height:1.45!important}.article-text{font-size:16px!important;line-height:1.65!important}

.investment-tip-summary{min-height:88px!important;padding-top:16px!important;padding-bottom:16px!important}
.tip-title-line strong{font-size:17px!important;line-height:1.2!important}.tip-company>small{font-size:12.5px!important;margin-top:5px!important}.tip-quick small{font-size:10.5px!important}.tip-quick strong{font-size:17px!important}.tip-score-ring b{font-size:18px!important}.tip-score-ring small{font-size:8.5px!important}
.tip-consensus-hero small,.tip-consensus-kpi small{font-size:11px!important}.tip-consensus-hero strong{font-size:22px!important}.tip-consensus-kpi strong{font-size:23px!important}.tip-consensus-hero span,.tip-consensus-kpi span{font-size:12px!important;line-height:1.45!important}
.tip-rating-legend span small{font-size:10.5px!important}.tip-rating-legend span b{font-size:13px!important}
.tip-section-title strong{font-size:16px!important}.tip-section-title span{font-size:11.5px!important}.tip-factor>div span,.tip-factor>div strong{font-size:12px!important}.tip-factor>i{height:10px!important}
.tip-metric-grid small{font-size:10.5px!important}.tip-metric-grid strong{font-size:18px!important}
.tip-notes-grid h4,.tip-catalysts h4{font-size:15px!important}.tip-reasons li,.tip-risks li,.tip-catalysts li{font-size:14px!important;line-height:1.58!important}.tip-card-foot{font-size:11px!important;line-height:1.45!important}

@media(max-width:760px){
  .t212-account-header-clean .t212-account-metric>span{font-size:10.5px!important;white-space:normal!important;line-height:1.2!important}
  .t212-account-header-clean .t212-account-metric>strong{font-size:16px!important}
  .calendar-event .event-copy strong,.calendar-row .event-copy strong{font-size:15px!important}
  .news-row .news-copy strong,.news-item .news-copy strong{font-size:16px!important}
  .news-row .news-body,.news-item .news-body,.news-row p,.news-item p{font-size:14px!important}
}


/* -------------------------------------------------------------------------
   Finora v0.10.78 — durable 1D continuity + cleaner published-results detail
   ------------------------------------------------------------------------- */
.earnings-result-panel{
  position:relative;
  overflow:hidden;
  padding:22px!important;
  border-radius:18px!important;
  border-color:#2f7658!important;
  background:
    radial-gradient(circle at 92% 4%,rgba(52,215,138,.15),transparent 34%),
    linear-gradient(155deg,#0d2f25,#081d19)!important;
}
.earnings-result-head{align-items:flex-start!important;gap:18px!important}
.earnings-result-head h3{font-size:24px!important;line-height:1.18!important;margin:5px 0 0!important}
.earnings-result-head p{margin:7px 0 0;color:#9db9ac;font-size:12.5px;line-height:1.45}
.earnings-result-head>span{font-size:10px!important;padding:7px 11px!important;border-radius:9px!important;box-shadow:0 0 0 1px #70f0ad33 inset}
.earnings-result-verdicts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.earnings-result-verdicts>span{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:900;border:1px solid #284d41;background:#0b241e}
.earnings-result-verdicts>span b{font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:#9eb5ab}
.earnings-result-verdicts>span.positive{color:#63e79d;border-color:#2d6a50;background:#0b2d22}
.earnings-result-verdicts>span.negative{color:#ff8e98;border-color:#70414a;background:#2a171b}
.earnings-result-grid{gap:14px!important;margin-top:18px!important}
.earnings-result-metric{padding:17px!important;border-radius:14px!important;background:linear-gradient(180deg,#0a251e,#071c17)!important;border-color:#2b5d48!important}
.earnings-result-metric-head small{font-size:13px!important;font-weight:900!important;color:#c6ded2!important}
.earnings-result-metric-head span{font-size:10px!important;padding:5px 8px!important}
.earnings-value-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.earnings-value-pair>div{padding:11px 12px;border-radius:10px;background:#0b2a22;border:1px solid #1e4938}
.earnings-value-pair small{font-size:9.5px!important;color:#82a798!important}
.earnings-value-pair strong{margin-top:5px!important;font-size:21px!important;line-height:1.1!important;color:#f0faf5!important}
.earnings-comparison-chart{display:grid;gap:9px;margin-top:14px}
.earnings-comparison-chart>div{display:grid;grid-template-columns:82px minmax(0,1fr);gap:9px;align-items:center}
.earnings-comparison-chart span{font-size:9.5px!important;color:#8eaa9d!important;margin:0!important}
.earnings-comparison-chart i{display:block;height:9px;border-radius:999px;background:#17372d;overflow:hidden}
.earnings-comparison-chart b{display:block;height:100%;border-radius:999px}
.earnings-comparison-chart .actual b{background:linear-gradient(90deg,#2dcf7c,#67e7a3)}
.earnings-comparison-chart .estimate b{background:linear-gradient(90deg,#557889,#83a7b7)}
.earnings-surprise-number{margin-top:12px;font-size:18px;font-weight:950}
.earnings-surprise-number small{display:inline!important;margin-left:4px;font-size:10px!important;font-weight:750;color:#91aaa0!important}
.earnings-result-summary{padding:16px!important;border-radius:12px!important}
.earnings-result-summary small{font-size:11px!important;letter-spacing:.04em;font-weight:900!important}
.earnings-result-summary p{font-size:15px!important;line-height:1.68!important;margin-top:8px!important}
.earnings-result-updated{font-size:10px!important;margin-top:12px!important;color:#87a599!important}
html[data-theme="light"] .earnings-result-panel{background:radial-gradient(circle at 92% 4%,#d9f5e5,transparent 34%),linear-gradient(155deg,#eef9f3,#fbfdfc)!important}
html[data-theme="light"] .earnings-value-pair>div{background:#fff;border-color:#cfe5d9}
html[data-theme="light"] .earnings-value-pair strong{color:#244437!important}
html[data-theme="light"] .earnings-result-head p{color:#587468}
html[data-theme="light"] .earnings-result-verdicts>span{background:#fff;border-color:#cfe2d8}

@media(max-width:680px){
  .earnings-result-panel{padding:17px!important}
  .earnings-result-head{display:grid!important}
  .earnings-result-head h3{font-size:20px!important}
  .earnings-value-pair{grid-template-columns:1fr}
  .earnings-comparison-chart>div{grid-template-columns:72px minmax(0,1fr)}
}

/* Read state: the full green row is reserved only for a genuinely unread item.
   The permanent "VÝSLEDKY ZVEŘEJNĚNY" pill may stay, but a read row returns
   immediately to the normal calendar/news background. */
.calendar-market-pane .event-row:not(.is-new-item),
.calendar-news-item:not(.is-new-item){
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
}


/* =========================================================
   Finora v0.10.79 — new-first feeds + gentle notification motion
   ========================================================= */
/* Když existují nové položky, celý badge se pomalu a jemně nadzvedne. Pohyb
   má přitáhnout oko, ale nesmí působit jako agresivní blikání. */
.nav-notification-badge:not([hidden]){
  animation:finora-notification-bounce 2.25s cubic-bezier(.25,.75,.35,1) infinite!important;
  transform-origin:center bottom;
}
@keyframes finora-notification-bounce{
  0%,12%,26%,100%{transform:translateY(0)}
  18%{transform:translateY(-4px)}
  22%{transform:translateY(-1px)}
}
@media (prefers-reduced-motion:reduce){
  .nav-notification-badge:not([hidden]){animation:none!important}
}


/* =========================================================
   Finora v0.10.80 — clean research UI, contextual heatmap, AI cost meter
   ========================================================= */
/* Heatmap: contextual explanation uses already downloaded portfolio news, so
   hovering never creates another paid AI request. */

/* OpenAI cost meter in Settings. The whole OpenAI card spans both columns so the
   meter remains readable instead of turning into another tiny technical label. */
.settings-api-section .openai-api-card{grid-column:1/-1;grid-template-columns:44px minmax(0,1fr) auto!important;align-items:start!important}
.openai-api-main{min-width:0}.openai-cost-panel{margin-top:13px;padding:13px 14px;border:1px solid #29424f;border-radius:12px;background:#0a1c25}
.openai-cost-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.openai-cost-head>span{font-size:12px;font-weight:850;color:#dce8ed}.openai-cost-head>small{font-size:9px;color:#758a95}
.openai-cost-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.openai-cost-kpis>div{padding:10px 11px;border:1px solid #213a47;border-radius:10px;background:#0c222c}.openai-cost-kpis small{display:block;color:#8499a4;font-size:9px}.openai-cost-kpis strong{display:block;margin-top:3px;color:#eef6f8;font-size:20px;line-height:1.1}.openai-cost-kpis span{display:block;margin-top:4px;color:#78909c;font-size:9px}
.openai-cost-breakdown{display:grid;gap:5px;margin-top:9px}.openai-cost-breakdown>span{display:flex;justify-content:space-between;gap:12px;color:#95a8b1;font-size:9.5px}.openai-cost-breakdown b{font-weight:650;color:#aebdc4}.openai-cost-breakdown em{font-style:normal;font-weight:800;color:#d9e5e9}.openai-cost-panel>p{margin:9px 0 0!important;color:#6e838e!important;font-size:8.8px!important;line-height:1.4!important}
html[data-theme="light"] .openai-cost-panel{background:#f7fafb;border-color:#d5e1e6}html[data-theme="light"] .openai-cost-kpis>div{background:#fff;border-color:#dbe6ea}html[data-theme="light"] .openai-cost-kpis strong,html[data-theme="light"] .openai-cost-head>span{color:#243943}

/* Published earnings: deliberately neutral graphite/slate surface. Positive and
   negative colors are reserved for the result itself, not the whole dialog. */
.earnings-result-panel{padding:24px!important;border:1px solid #304651!important;border-radius:18px!important;background:linear-gradient(180deg,#101f27,#0b171e)!important;box-shadow:none!important}
.earnings-result-panel:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:#4ca6c7}
.earnings-result-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start!important;gap:18px!important}
.earnings-result-head>div>small{color:#7e98a5!important;font-size:10px!important;letter-spacing:.11em!important}.earnings-result-head h3{color:#f0f5f7!important;font-size:25px!important}.earnings-result-head p{color:#8fa3ad!important;font-size:13px!important}.earnings-result-head>span{color:#bfe3f0!important;background:#102a35!important;border:1px solid #2d5a6d!important;box-shadow:none!important}
.earnings-result-verdicts{margin-top:18px!important}.earnings-result-verdicts>span{background:#111f26!important;border-color:#334650!important}.earnings-result-verdicts>span.positive{color:#62d89a!important;border-color:#35654e!important;background:#10251c!important}.earnings-result-verdicts>span.negative{color:#f37d88!important;border-color:#694048!important;background:#28181c!important}
.earnings-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:15px!important;margin-top:18px!important}.earnings-result-metric{padding:18px!important;background:#0d1a21!important;border:1px solid #2b414c!important;border-radius:14px!important}.earnings-result-metric-head small{color:#d3dee3!important}.earnings-value-pair>div{background:#111f27!important;border-color:#2a3d47!important}.earnings-value-pair small{color:#8296a0!important}.earnings-value-pair strong{color:#f2f6f8!important}.earnings-comparison-chart i{height:11px!important;background:#23333b!important}.earnings-comparison-chart .actual b{background:#5ba7c5!important}.earnings-comparison-chart .estimate b{background:#6e7f88!important}
.earnings-result-summary{margin-top:15px!important;padding:17px 18px!important;border:1px solid #293d47!important;background:#0e1b22!important}.earnings-result-summary.guidance{background:#101c24!important}.earnings-result-summary small{color:#8fa6b1!important}.earnings-result-summary p{color:#d1dce1!important}.earnings-result-updated{color:#6f858f!important}
html[data-theme="light"] .earnings-result-panel{background:#fff!important;border-color:#cedce2!important}html[data-theme="light"] .earnings-result-head h3{color:#263942!important}html[data-theme="light"] .earnings-result-metric,html[data-theme="light"] .earnings-result-summary{background:#f7fafb!important;border-color:#d8e3e7!important}html[data-theme="light"] .earnings-value-pair>div{background:#fff!important;border-color:#dce6ea!important}html[data-theme="light"] .earnings-value-pair strong{color:#273b44!important}html[data-theme="light"] .earnings-result-summary p{color:#405760!important}

/* Tipy dne: quiet neutral hierarchy. Score/consensus carry the information;
   decorative card colors no longer compete for attention. */
.investment-tips-list{gap:12px!important}.investment-tip-card,.investment-tip-card.strong,.investment-tip-card.good,.investment-tip-card.watch{border:1px solid #293f4a!important;border-left:1px solid #293f4a!important;background:#0c1a21!important;border-radius:15px!important;box-shadow:none!important}.investment-tip-card:hover{border-color:#3b5662!important}.investment-tip-card.open{border-color:#466572!important;box-shadow:none!important}.investment-tip-summary{background:#0c1a21!important}.investment-tip-summary:hover{background:#10232b!important}.tip-rank{background:#15262e!important;border-color:#30464f!important;color:#a5b6be!important}.tip-title-line em{color:#8fd3b2!important;background:#10241d!important;border-color:#315844!important}
.tip-score-ring,.tip-score-ring.strong,.tip-score-ring.good,.tip-score-ring.watch{--ring:#5ba7c5!important}.tip-score-ring:before{background:#0d1b22!important}.investment-tip-detail{background:#0a171d!important;border-top-color:#263b45!important}.tip-consensus-dashboard{background:#0d1c23!important;border-color:#2b414b!important}.tip-consensus-hero,.tip-consensus-kpi,.tip-score-panel,.tip-metrics-panel,.tip-metric-grid>div{background:#101f26!important;border-color:#2b414b!important}.tip-consensus-hero strong{color:#dce9ee!important}.tip-rating-track{background:#253740!important}.tip-rating-track .strong-buy,.tip-rating-track .buy{background:#58a9c8!important}.tip-rating-track .hold{background:#7d8c93!important}.tip-rating-track .sell,.tip-rating-track .strong-sell{background:#c66c73!important}.tip-rating-legend .strong-buy>i,.tip-rating-legend .buy>i{background:#58a9c8!important}.tip-rating-legend .hold>i{background:#7d8c93!important}.tip-rating-legend .sell>i,.tip-rating-legend .strong-sell>i{background:#c66c73!important}.tip-factor>i{background:#243740!important}.tip-factor>i b,.tip-factor>i b.target,.tip-factor>i b.quality,.tip-factor>i b.breadth,.tip-factor>i b.momentum{background:#5ba7c5!important}.tip-reasons li span{color:#79c6a1!important}.tip-risks li span{color:#e18a91!important}
html[data-theme="light"] .investment-tip-card,html[data-theme="light"] .investment-tip-summary,html[data-theme="light"] .investment-tip-detail,html[data-theme="light"] .tip-consensus-dashboard,html[data-theme="light"] .tip-consensus-hero,html[data-theme="light"] .tip-consensus-kpi,html[data-theme="light"] .tip-score-panel,html[data-theme="light"] .tip-metrics-panel,html[data-theme="light"] .tip-metric-grid>div{background:#fff!important;border-color:#d6e2e7!important}

@media(max-width:700px){.settings-api-section .openai-api-card{grid-template-columns:38px minmax(0,1fr)!important}.settings-api-section .openai-api-card .api-actions{grid-column:2!important}.openai-cost-kpis{grid-template-columns:1fr 1fr}.earnings-result-grid{grid-template-columns:1fr!important}.earnings-result-head{grid-template-columns:1fr!important}}

#heatmap-hover-tooltip{width:min(390px,calc(100vw - 28px))!important}

/* -------------------------------------------------------------------------
   Finora v0.10.81 — adaptive heatmap, position news, instant-read consensus
   ------------------------------------------------------------------------- */
/* Heatmap typography no longer scales with tile area. The treemap adapts by
   composition + progressive disclosure; full details remain in the hover card. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.weighted{padding:7px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-logo{width:22px!important;height:22px!important;left:7px!important;top:7px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-weighted-copy{height:100%!important;padding-left:27px!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;gap:3px!important;overflow:hidden!important}
.portfolio-heatmap.weighted-heatmap .heatmap-primary-line{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:7px!important;min-width:0!important;width:100%!important}
.portfolio-heatmap.weighted-heatmap .heatmap-secondary-line{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:7px!important;min-width:0!important;width:100%!important;margin-top:auto!important}
.portfolio-heatmap.weighted-heatmap .heatmap-live-line{display:block!important;width:auto!important;min-width:auto!important;margin:0!important;flex:0 0 auto!important}
.portfolio-heatmap.weighted-heatmap .heatmap-fixed-ticker,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-fixed-ticker,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-fixed-ticker,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-fixed-ticker{font-size:10px!important;line-height:1.08!important;margin:0!important;font-weight:950!important}
.portfolio-heatmap.weighted-heatmap .heatmap-live-line .heatmap-change,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-live-line .heatmap-change,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-live-line .heatmap-change,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-live-line .heatmap-change{font-size:12px!important;line-height:1.05!important;margin:0!important;font-weight:950!important}
.portfolio-heatmap.weighted-heatmap .heatmap-current-price,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-current-price,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-current-price,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-current-price{display:block!important;font-size:9px!important;line-height:1.05!important;margin:0!important}
.portfolio-heatmap.weighted-heatmap .heatmap-day-money,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-day-money,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-day-money{display:block!important;font-size:9px!important;line-height:1.05!important;margin:0!important}
.portfolio-heatmap.weighted-heatmap .heatmap-exchange,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-exchange{display:block!important;font-size:8px!important;line-height:1!important;margin:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important}

/* Wide tile: key signal on the first line, price + cash move on the second. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-weighted-copy{justify-content:center!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-primary-line{align-items:center!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-secondary-line{margin-top:3px!important;justify-content:flex-start!important;gap:11px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-exchange{margin-top:2px!important}
/* Tall tile: stack information vertically instead of squeezing it sideways. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-tall .heatmap-primary-line{flex-direction:column!important;gap:5px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-tall .heatmap-secondary-line{flex-direction:column!important;align-items:flex-start!important;justify-content:flex-end!important;gap:3px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-tall .heatmap-day-money{white-space:normal!important;line-height:1.15!important}
/* Compact tiles keep the two strongest signals and one price line. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-compact .heatmap-day-money,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-compact .heatmap-exchange{display:none!important}
/* Micro tiles retain fixed typography, so secondary data is moved to hover. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro{padding:5px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-logo{display:none!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-weighted-copy{padding-left:0!important;justify-content:center!important;gap:4px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-primary-line{flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;text-align:center!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-secondary-line,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-exchange{display:none!important}
/* Slivers cannot fit two fixed-size data points: show ticker only, everything else
   stays available in the hover tooltip. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver{padding:3px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-logo,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-live-line,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-secondary-line,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-exchange{display:none!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-weighted-copy{padding-left:0!important;align-items:center!important;justify-content:center!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-primary-line{justify-content:center!important;text-align:center!important}

/* Position detail: current news lives next to upcoming events. */
.detail-context-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;gap:16px!important;margin-top:16px!important}
.detail-context-panel{min-width:0;padding:15px!important;border:1px solid #244453!important;border-radius:13px!important;background:#0a1d27!important}
.detail-context-panel>.section-title{margin:0 0 10px!important;padding:0!important}.detail-context-panel>.section-title h3{margin:0!important}
/* P207: the shared event renderer has six slots, including two amounts.
   Position details need their own compact grid, not the calendar's wide table. */
#detail-content .event-list{padding:0 2px}
#detail-content .event-row{
  grid-template-columns:40px minmax(0,1fr) minmax(0,1fr);
  grid-template-areas:"logo identity identity" ". native czk" ". countdown type";
  column-gap:12px;row-gap:7px;align-items:start;padding:12px 0;
}
#detail-content .event-logo-slot{grid-area:logo;min-width:0}
#detail-content .event-main{grid-area:identity;min-width:0}
#detail-content .event-main strong,
#detail-content .event-main small,
#detail-content .event-main span{white-space:normal;overflow:visible;overflow-wrap:anywhere;line-height:1.4}
#detail-content .event-main span:empty{display:none}
#detail-content .event-slot{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;line-height:1.4}
#detail-content .event-slot:empty{display:none}
#detail-content .event-native-slot{grid-area:native}
#detail-content .event-czk-slot{grid-area:czk}
#detail-content .event-countdown-slot{grid-area:countdown}
#detail-content .event-type-slot{grid-area:type;align-items:flex-end;text-align:right}
#detail-content .event-native-amount,
#detail-content .event-czk-slot>strong{font-size:12px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
#detail-content .event-slot>small{font-size:10px;color:var(--muted);white-space:normal;overflow-wrap:anywhere}
#detail-content .event-type,
#detail-content .event-type-slot>span{max-width:100%;white-space:normal;overflow-wrap:anywhere;grid-column:auto}
/* The same six-slot renderer is used by IPO cards below the desktop redesign. */
@media(max-width:980px){
  .news-ipo-card .ipo-calendar-list{grid-template-columns:minmax(0,1fr)!important}
  #news-ipos .event-row{grid-template-columns:40px minmax(0,1fr);column-gap:12px;row-gap:6px;align-items:start}
  #news-ipos .event-logo-slot{grid-column:1;grid-row:1/6;min-width:0}
  #news-ipos .event-main,#news-ipos .event-slot{grid-column:2;min-width:0}
  #news-ipos .event-slot{display:flex;align-items:flex-start;gap:5px;flex-wrap:wrap}
  #news-ipos .event-slot:empty{display:none}
  #news-ipos .event-main strong,#news-ipos .event-main small,#news-ipos .event-main span,
  #news-ipos .event-native-amount,#news-ipos .event-days,#news-ipos .event-type{
    max-width:100%;white-space:normal;overflow:visible;overflow-wrap:anywhere;line-height:1.4;
  }
  #news-ipos .event-main span:empty{display:none}
  #news-ipos .event-type{grid-column:auto}
}
.position-news-list{display:flex;flex-direction:column;gap:8px;max-height:430px;overflow:auto;padding-right:2px}
.position-news-row{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) 34px;gap:10px;align-items:start;text-align:left;padding:11px;border:1px solid #254552;border-radius:10px;background:#0b222d;color:#eef7fa;cursor:pointer}
.position-news-row:hover{border-color:#3d7185;background:#0d2935}.position-news-logo{width:36px;height:36px;display:grid;place-items:center;background:transparent;overflow:visible}.position-news-logo img{width:100%;height:100%;object-fit:contain}.position-news-logo .logo-fallback{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:9px;font-weight:900}
.position-news-copy{min-width:0}.position-news-copy>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:4px}.position-news-copy>div span{font-size:9px;font-weight:900;color:#5ec7ed}.position-news-copy>div small{font-size:9px;color:#8198a3}.position-news-copy>strong{display:block;font-size:12.5px;line-height:1.35}.position-news-copy>p{margin:5px 0 0;color:#a9bec7;font-size:10.5px;line-height:1.45}.position-news-score{justify-self:end;font-size:9px;color:#f0c86b;background:#342b16;border:1px solid #5a4820;border-radius:7px;padding:4px 5px}
html[data-theme="light"] .detail-context-panel,html[data-theme="light"] .position-news-row{background:#fff!important;border-color:#d2e1e7!important;color:#23434f!important}html[data-theme="light"] .position-news-copy>p{color:#627a84!important}
@media(max-width:940px){.detail-context-grid{grid-template-columns:1fr!important}.position-news-list{max-height:none!important}}

/* Tipy dne: remove the long distribution bar and replace it with a compact
   decision card + five discrete recommendation buckets. */
.tip-consensus-dashboard.tip-consensus-redesign{display:grid!important;grid-template-columns:minmax(230px,.9fr) minmax(0,1.1fr)!important;gap:12px!important;padding:12px!important;background:#0d1c23!important;border:1px solid #2b414b!important;border-radius:15px!important}
.tip-consensus-signal{min-height:116px;padding:16px;border:1px solid #304852;border-radius:12px;background:#101f26;display:flex;flex-direction:column;justify-content:center}.tip-consensus-signal small{font-size:10.5px;font-weight:850;color:#8ba2ad}.tip-consensus-signal strong{display:block;margin-top:6px;font-size:26px;line-height:1.05;letter-spacing:-.02em}.tip-consensus-signal span{margin-top:7px;font-size:11px;line-height:1.4;color:#8da3ad}
.tip-consensus-signal.signal-strong-buy,.tip-consensus-signal.signal-buy{border-color:#315e50!important;box-shadow:inset 4px 0 0 #63bf91}.tip-consensus-signal.signal-strong-buy strong,.tip-consensus-signal.signal-buy strong{color:#84dfae!important}.tip-consensus-signal.signal-sell,.tip-consensus-signal.signal-strong-sell{border-color:#684049!important;box-shadow:inset 4px 0 0 #cf737d}.tip-consensus-signal.signal-sell strong,.tip-consensus-signal.signal-strong-sell strong{color:#ec949c!important}.tip-consensus-signal.signal-hold{box-shadow:inset 4px 0 0 #87979e}.tip-consensus-signal.signal-hold strong{color:#d6e1e5!important}
.tip-consensus-glance{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tip-consensus-glance>div{padding:14px;border:1px solid #2b414b;border-radius:12px;background:#101f26}.tip-consensus-glance small{display:block;font-size:10px;color:#8ba2ad;font-weight:800}.tip-consensus-glance strong{display:block;margin-top:6px;font-size:23px;line-height:1.05}.tip-consensus-glance span{display:block;margin-top:6px;font-size:10.5px;line-height:1.35;color:#849ba5}
.tip-rating-cards{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.tip-rating-card{position:relative;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;align-items:center;gap:2px 7px;padding:10px 11px;border:1px solid #2b414b;border-radius:10px;background:#101f26;min-width:0}.tip-rating-card.active{border-color:#57707b;box-shadow:0 0 0 1px #6d879122}.tip-rating-dot{grid-row:1/3;width:8px;height:8px;border-radius:50%;background:#7d8c93}.tip-rating-card.strong-buy .tip-rating-dot,.tip-rating-card.buy .tip-rating-dot{background:#58a9c8}.tip-rating-card.sell .tip-rating-dot,.tip-rating-card.strong-sell .tip-rating-dot{background:#c66c73}.tip-rating-card small{font-size:9.5px;color:#8ca2ac;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tip-rating-card strong{grid-column:3;grid-row:1/3;font-size:18px}.tip-rating-card em{grid-column:2;font-style:normal;font-size:9px;color:#6f8792}
.tip-consensus-redesign .tip-rating-track,.tip-consensus-redesign .tip-rating-distribution,.tip-consensus-redesign .tip-rating-legend{display:none!important}
html[data-theme="light"] .tip-consensus-dashboard.tip-consensus-redesign,html[data-theme="light"] .tip-consensus-signal,html[data-theme="light"] .tip-consensus-glance>div,html[data-theme="light"] .tip-rating-card{background:#fff!important;border-color:#d6e2e7!important}.tip-consensus-signal.signal-strong-buy strong,html[data-theme="light"] .tip-consensus-signal.signal-buy strong{color:#237c56!important}
@media(max-width:900px){.tip-consensus-dashboard.tip-consensus-redesign{grid-template-columns:1fr!important}.tip-rating-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.tip-rating-card:last-child{grid-column:1/-1}}
@media(max-width:560px){.tip-consensus-glance{grid-template-columns:1fr}.tip-rating-cards{grid-template-columns:1fr 1fr}.tip-consensus-signal strong{font-size:23px}}

/* =========================================================
   Finora v0.10.82 — centered adaptive heatmap + OpenAI cadence audit
   ========================================================= */
/* One visual rule for every tile: information lives around the optical center.
   Aspect-ratio classes now decide only how much information fits, never which
   corner owns it. Logos participate in normal layout flow and therefore cannot
   overlap text. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.weighted{
  display:flex!important;flex-direction:column!important;align-items:center!important;
  justify-content:center!important;text-align:center!important;padding:7px!important;
  overflow:hidden!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-logo,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-logo{
  position:static!important;inset:auto!important;display:grid!important;flex:0 0 auto!important;
  width:22px!important;height:22px!important;margin:0 auto 4px!important;padding:1px!important;
  transform:none!important;z-index:1!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-weighted-copy,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-weighted-copy{
  width:100%!important;height:auto!important;min-height:0!important;padding:0!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;
  justify-content:center!important;text-align:center!important;gap:3px!important;overflow:hidden!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-primary-line{
  width:100%!important;display:flex!important;flex-direction:column!important;align-items:center!important;
  justify-content:center!important;gap:3px!important;text-align:center!important;min-width:0!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-live-line{
  width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;
  margin:0!important;min-width:0!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-secondary-line{
  width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;
  gap:8px!important;margin:1px 0 0!important;min-width:0!important;text-align:center!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-fixed-ticker,
.portfolio-heatmap.weighted-heatmap .heatmap-current-price,
.portfolio-heatmap.weighted-heatmap .heatmap-day-money,
.portfolio-heatmap.weighted-heatmap .heatmap-exchange{
  max-width:100%!important;text-align:center!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-exchange{margin:1px 0 0!important}

/* Wide + low: keep the content centered in two compact rows and remove the logo
   only when vertical room is the scarce resource. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-logo{display:none!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-primary-line{
  flex-direction:row!important;justify-content:center!important;gap:9px!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-live-line{width:auto!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-secondary-line{justify-content:center!important;margin-top:2px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-exchange{display:none!important}

/* Tall/roomy tiles can afford the centered logo and the full stack. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-tall .heatmap-primary-line,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-roomy .heatmap-primary-line{flex-direction:column!important;align-items:center!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-tall .heatmap-secondary-line{flex-direction:column!important;gap:3px!important;align-items:center!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-roomy .heatmap-secondary-line{flex-direction:row!important;justify-content:center!important}

/* Compact: centered logo + ticker + daily move + price. Cash move/exchange stay in hover. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-compact .heatmap-day-money,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-compact .heatmap-exchange{display:none!important}

/* Micro: two strongest signals only. No logo means no chance of collision. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro{padding:5px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-logo,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-secondary-line,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-exchange{display:none!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-primary-line{flex-direction:column!important;gap:3px!important}

/* Sliver: ticker only; all other information remains in the stable hover card. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-logo,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-live-line,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-secondary-line,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-exchange{display:none!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-primary-line{justify-content:center!important;align-items:center!important}

/* OpenAI card: cadence is intentionally separate from the money meter so the
   user can audit what generates cost without opening tooltips. */
.openai-cost-kpis em{display:block;margin-top:3px;color:#687f8a;font-size:8.5px;font-style:normal}
.openai-cost-breakdown b small{font-size:8px;color:#647c87;font-weight:650}
.openai-cadence-panel{margin-top:10px;padding:13px 14px;border:1px solid #29424f;border-radius:12px;background:#091922}
.openai-cadence-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.openai-cadence-head>div>span{display:block;color:#dce8ed;font-size:12px;font-weight:850}
.openai-cadence-head>div>small{display:block;margin-top:4px;color:#78909b;font-size:9px;line-height:1.45}
.openai-optimization-pill{flex:0 0 auto;padding:5px 8px;border-radius:999px;border:1px solid #35505d;color:#8ca2ac;font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.openai-optimization-pill.on{border-color:#286347;color:#72d9a1;background:#0b2b20}
.openai-cadence-list{display:grid;gap:0;margin-top:10px;border-top:1px solid #203843}
.openai-cadence-list>div{display:grid;grid-template-columns:minmax(145px,.75fr) minmax(120px,.45fr) minmax(0,2fr);gap:12px;align-items:start;padding:9px 0;border-bottom:1px solid #1d333e}
.openai-cadence-list strong{font-size:10px;color:#cbdbe1}.openai-cadence-list b{font-size:10px;color:#63c7eb}.openai-cadence-list span{font-size:9px;color:#7f959f;line-height:1.45}
.openai-model-policy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.openai-model-policy>span{padding:9px 10px;border:1px solid #203943;border-radius:9px;background:#0b2029}.openai-model-policy small{display:block;color:#728893;font-size:8.5px}.openai-model-policy strong{display:block;margin-top:3px;color:#c5d8df;font-size:9.5px;overflow-wrap:anywhere}
.openai-cadence-panel>p{margin:9px 0 0!important;color:#6e838e!important;font-size:8.8px!important;line-height:1.45!important}
html[data-theme="light"] .openai-cadence-panel{background:#f8fbfc;border-color:#d5e1e6}html[data-theme="light"] .openai-cadence-head>div>span{color:#243943}html[data-theme="light"] .openai-cadence-list{border-top-color:#dbe6ea}html[data-theme="light"] .openai-cadence-list>div{border-bottom-color:#e1e9ed}html[data-theme="light"] .openai-cadence-list strong,html[data-theme="light"] .openai-model-policy strong{color:#31505c}html[data-theme="light"] .openai-model-policy>span{background:#fff;border-color:#dbe6ea}
@media(max-width:760px){.openai-cadence-list>div{grid-template-columns:1fr auto}.openai-cadence-list>div span{grid-column:1/-1}.openai-model-policy{grid-template-columns:1fr}}

/* =========================================================
   Finora v0.10.83 — clean earnings, stable dividends, Flow charts, split Tips
   ========================================================= */

/* Heatmap: exchange is part of the same optical column as every other line. */
.portfolio-heatmap.weighted-heatmap .heatmap-exchange-stacked{
  position:static!important;inset:auto!important;transform:none!important;float:none!important;
  display:block!important;width:100%!important;order:3!important;margin:2px 0 0!important;
  text-align:center!important;line-height:1.1!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-exchange-stacked,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-tall .heatmap-exchange-stacked,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-roomy .heatmap-exchange-stacked{display:block!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-exchange-stacked,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-exchange-stacked{display:none!important}

/* Upcoming dividends: no animation/pulse on the one-second dashboard tick. */
#upcoming-dividends .upcoming-dividend-row{
  animation:none!important;transition:background-color .16s ease,border-color .16s ease!important;
  will-change:auto!important;
}
#upcoming-dividends .upcoming-dividend-row:hover{transform:none!important}

/* Published earnings: neutral canvas + vertical bars inspired by Dividendy po měsících. */
.earnings-result-panel.earnings-clean-panel{
  position:relative!important;padding:22px!important;border:1px solid #2b414c!important;
  border-radius:17px!important;background:#0b171e!important;box-shadow:none!important;overflow:hidden!important;
}
.earnings-result-panel.earnings-clean-panel:before{display:none!important}
.earnings-clean-panel .earnings-result-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:18px!important}
.earnings-clean-panel .earnings-result-head>div>small{color:#718995!important;font-size:9px!important;letter-spacing:.13em!important}
.earnings-clean-panel .earnings-result-head h3{margin:5px 0 4px!important;color:#edf4f6!important;font-size:24px!important}
.earnings-clean-panel .earnings-result-head p{margin:0!important;color:#839aa5!important;font-size:11.5px!important}
.earnings-neutral-badge{align-self:start!important;padding:6px 9px!important;border-radius:8px!important;background:#111f27!important;border:1px solid #2d424c!important;color:#a7bbc4!important;font-size:8px!important;font-weight:900!important;letter-spacing:.08em!important}
.earnings-clean-panel .earnings-result-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;margin-top:18px!important}
.earnings-clean-metric{padding:16px 16px 14px!important;border:1px solid #293f49!important;border-radius:13px!important;background:#0e1c23!important}
.earnings-clean-metric .earnings-result-metric-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important}
.earnings-clean-metric .earnings-result-metric-head small{color:#c9d7dc!important;font-size:12px!important;font-weight:900!important}
.earnings-clean-metric .earnings-result-metric-head span{padding:4px 7px!important;border-radius:7px!important;background:#15242b!important;border:1px solid #31434b!important;color:#9fb0b7!important;font-size:8.5px!important;font-weight:850!important}
.earnings-clean-metric .earnings-result-metric-head span.positive{color:#6fd49d!important;border-color:#355d49!important;background:#10231b!important}
.earnings-clean-metric .earnings-result-metric-head span.negative{color:#ef858e!important;border-color:#654048!important;background:#25181c!important}
.earnings-mini-bars{height:210px;display:flex;align-items:flex-end;justify-content:center;gap:34px;margin-top:14px;padding:8px 12px 0;border-top:1px solid #20343e}
.earnings-mini-bars .bar-col{width:min(122px,38%);height:100%;display:grid;grid-template-rows:24px 1fr 20px;align-items:end;text-align:center}
.earnings-mini-bars .bar-value{align-self:start;color:#dce8ec;font-size:11px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.earnings-mini-bars .bar-track{position:relative;width:100%;height:100%;min-height:125px;border-radius:8px 8px 4px 4px;background:#14252d;overflow:hidden;border:1px solid #263d47}
.earnings-mini-bars .bar-fill{position:absolute;left:0;right:0;bottom:0;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,#65b8d4,#3d87a4)}
.earnings-mini-bars .estimate .bar-fill{background:linear-gradient(180deg,#81939c,#586a73)}
.earnings-mini-bars .bar-col>small{padding-top:6px;color:#7c929c;font-size:9px;font-weight:750}
.earnings-clean-panel .earnings-surprise-number{margin-top:10px!important;text-align:center!important;font-size:13px!important;font-weight:900!important}
.earnings-clean-panel .earnings-surprise-number small{font-size:8.5px!important;color:#748993!important;font-weight:700!important}
.earnings-clean-panel .earnings-result-summary{margin-top:12px!important;padding:13px 15px!important;background:#0e1b22!important;border:1px solid #293c45!important;border-radius:11px!important}
.earnings-clean-panel .earnings-result-summary small{color:#849ba5!important;font-size:9px!important}
.earnings-clean-panel .earnings-result-summary p{margin-top:6px!important;color:#cad7dc!important;font-size:12px!important;line-height:1.55!important}
.earnings-clean-panel .earnings-result-updated{margin-top:9px!important;color:#627984!important;font-size:8.5px!important}
html[data-theme="light"] .earnings-result-panel.earnings-clean-panel{background:#fff!important;border-color:#d5e1e6!important}
html[data-theme="light"] .earnings-clean-metric,html[data-theme="light"] .earnings-clean-panel .earnings-result-summary{background:#f7fafb!important;border-color:#d9e4e8!important}
html[data-theme="light"] .earnings-mini-bars{border-top-color:#e0e8eb}html[data-theme="light"] .earnings-mini-bars .bar-track{background:#e9f0f3;border-color:#d6e2e6}
html[data-theme="light"] .earnings-mini-bars .bar-value,html[data-theme="light"] .earnings-clean-panel .earnings-result-head h3{color:#29414b!important}
html[data-theme="light"] .earnings-clean-panel .earnings-result-summary p{color:#405861!important}

/* Tok kapitálu: graph-first layout. */
.flow-page{max-width:1380px!important}
.flow-hero{grid-template-columns:minmax(0,1fr) 190px!important;padding:23px 26px!important}
.flow-hero-copy p{max-width:760px!important;font-size:11.5px!important;line-height:1.55!important}
.flow-main-grid{display:grid!important;grid-template-columns:1fr!important;gap:14px!important}
.flow-map-card{min-height:470px!important;padding-bottom:18px!important}
.flow-map-card .card-head{padding-bottom:14px!important}
.flow-bars{display:grid!important;gap:8px!important;padding:2px 2px 0!important}
.flow-chart-axis{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin:2px 104px 3px 260px;color:#6f8691;font-size:8px;font-weight:850;letter-spacing:.08em}
.flow-chart-axis span:last-child{text-align:right}.flow-chart-axis b{font-size:8px;color:#93a7b0;font-weight:750}
.flow-bar-row{display:grid!important;grid-template-columns:34px minmax(180px,240px) minmax(330px,1fr) 90px!important;gap:14px!important;align-items:center!important;min-height:70px!important;padding:10px 12px!important;border:1px solid #203945!important;border-radius:11px!important;background:#0b1b23!important}
.flow-bar-row:hover{background:#0d2029!important;border-color:#31505d!important}
.flow-bar-rank{width:28px!important;height:28px!important;display:grid!important;place-items:center!important;border-radius:8px!important;background:#132832!important;border:1px solid #294550!important;color:#9ab0b9!important;font-size:10px!important;font-weight:900!important}
.flow-bar-copy{min-width:0!important}.flow-bar-copy>strong,.flow-bar-copy>div>strong{display:block!important;color:#dfeaec!important;font-size:12.5px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.flow-bar-copy>span,.flow-bar-copy>div>span{display:block!important;margin-top:4px!important;color:#718a95!important;font-size:8.5px!important}.flow-bar-copy p{display:none!important}
.flow-bar-visual{min-width:0!important}.flow-bar-track{position:relative!important;height:25px!important;border-radius:7px!important;background:linear-gradient(90deg,#3b2429 0%,#1c3039 48%,#1c3039 52%,#17362c 100%)!important;border:1px solid #2a414b!important;overflow:hidden!important}.flow-bar-track .flow-neutral-marker{position:absolute!important;left:50%!important;top:0!important;bottom:0!important;width:2px!important;background:#91a2aa88!important;z-index:3!important}.flow-bar-track>i{position:absolute!important;left:0!important;top:0!important;bottom:0!important;width:var(--flow)!important;border-radius:6px!important;background:linear-gradient(90deg,#b85e67,#6e7f88 52%,#4aaf82)!important;opacity:.92!important}.flow-bar-row.inflow .flow-bar-track>i{background:linear-gradient(90deg,#52666f,#53bd89)!important}.flow-bar-row.outflow .flow-bar-track>i{background:linear-gradient(90deg,#d36d77,#6c7880)!important}.flow-bar-row.neutral .flow-bar-track>i{background:linear-gradient(90deg,#567a8b,#69a7be)!important}
.flow-bar-visual>small{display:block!important;margin-top:5px!important;color:#677f89!important;font-size:8px!important}
.flow-bar-value{text-align:right!important}.flow-bar-value strong{display:block!important;font-size:19px!important;line-height:1!important}.flow-bar-row.inflow .flow-bar-value strong{color:#63d298!important}.flow-bar-row.outflow .flow-bar-value strong{color:#e07881!important}.flow-bar-row.neutral .flow-bar-value strong{color:#7eb6c9!important}.flow-bar-value>span{display:block!important;margin-top:4px!important;color:#778d97!important;font-size:8px!important;text-transform:uppercase!important;letter-spacing:.06em!important}
.flow-scenario-card{padding:18px 20px!important}.flow-scenario-copy{margin:8px 0 13px!important;font-size:12px!important;line-height:1.55!important;color:#b8c8ce!important;max-width:1080px!important}
.flow-story-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important}.flow-story-grid section{padding:11px 12px!important;border:1px solid #233b46!important;border-radius:10px!important;background:#0b1b23!important}.flow-story-grid h4{margin:0 0 7px!important;font-size:9px!important;color:#91a7b0!important}.flow-story-list{display:flex!important;flex-wrap:wrap!important;gap:6px!important}.flow-story-list>div{display:inline-flex!important;align-items:center!important;width:auto!important;gap:6px!important;padding:6px 8px!important;border-radius:999px!important;background:#11262f!important;border:1px solid #29434e!important}.flow-story-list>div i{width:5px!important;height:5px!important;border-radius:50%!important;flex:0 0 auto!important}.flow-story-list>div span{font-size:8.5px!important;line-height:1.2!important;color:#a9bac1!important}.flow-source-strip{margin-top:10px!important}
.flow-learning-grid{gap:14px!important}.flow-weights-card{min-height:315px!important}.flow-weight-row{margin-top:12px!important}.flow-weight-row i{height:10px!important;border-radius:6px!important}.flow-weight-row i b{border-radius:6px!important}.flow-method-note{display:none!important}.flow-calibration-copy p{font-size:10px!important;line-height:1.5!important}.flow-history-card{margin-top:14px!important}

/* Tipy dne: two equal research lanes. */
.tips-page{max-width:1460px!important}
.tips-hero{grid-template-columns:minmax(0,1fr) 190px!important;padding:24px 27px!important}
.tips-split-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.tips-lane{min-width:0;border:1px solid #263e49;border-radius:16px;background:#091820;padding:12px}
.tips-lane.discovery{border-color:#354653;background:#0b1821}
.tips-lane-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:5px 5px 12px;border-bottom:1px solid #203640;margin-bottom:10px}.tips-lane-head small{display:block;color:#6e8995;font-size:8px;font-weight:950;letter-spacing:.12em}.tips-lane.discovery .tips-lane-head small{color:#8aa6d2}.tips-lane-head h3{margin:4px 0 3px;font-size:15px;color:#e4edf0}.tips-lane-head p{margin:0;color:#718792;font-size:9px;line-height:1.4}.tips-lane-head>span{min-width:36px;height:28px;display:grid;place-items:center;border-radius:8px;background:#10242d;border:1px solid #29434f;color:#9bb0b9;font-size:9px;font-weight:900}
.tips-lane-list{display:grid;gap:9px}.tips-lane-empty{padding:24px 16px;text-align:center;color:#728791;font-size:10px;border:1px dashed #2a414b;border-radius:11px}
.tips-lane .investment-tip-summary{grid-template-columns:28px 38px minmax(115px,1fr) 82px 56px 58px 18px!important;gap:8px!important;padding:11px!important}.tips-lane .tip-company-logo{width:36px!important;height:36px!important}.tips-lane .tip-title-line strong{font-size:11.5px!important}.tips-lane .tip-company small{font-size:8px!important}.tips-lane .tip-quick small{font-size:7px!important}.tips-lane .tip-quick strong{font-size:10px!important}.tips-lane .tip-score-ring{width:52px!important;height:52px!important}.tips-lane .tip-score-ring b{font-size:14px!important}.tips-lane .investment-tip-detail{padding:0 12px 13px!important}.tips-lane .tip-detail-grid{grid-template-columns:1fr!important;gap:10px!important}.tips-lane .tip-consensus-dashboard.tip-consensus-redesign{grid-template-columns:1fr!important}.tips-lane .tip-rating-cards{grid-template-columns:repeat(5,minmax(0,1fr))!important}.tips-lane .tip-rating-card{padding:7px!important;grid-template-columns:1fr!important;text-align:center!important}.tips-lane .tip-rating-dot{display:none!important}.tips-lane .tip-rating-card strong{grid-column:auto!important;grid-row:auto!important;font-size:14px!important}.tips-lane .tip-rating-card em{grid-column:auto!important}.tips-lane .tip-notes-grid{grid-template-columns:1fr!important;gap:10px!important}.tips-lane .tip-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.discovery-tip .tip-rank{border-color:#40536c!important;color:#9eb7dc!important}.tips-lane.discovery .investment-tip-card{border-color:#30424f!important}.tips-lane.discovery .investment-tip-card:hover{border-color:#4a6278!important}
html[data-theme="light"] .tips-lane{background:#f7fafb;border-color:#d6e2e7}html[data-theme="light"] .tips-lane.discovery{background:#f8f9fc;border-color:#d6ddeb}html[data-theme="light"] .tips-lane-head{border-bottom-color:#dce5e9}html[data-theme="light"] .tips-lane-head h3{color:#2b424c}

/* History health badge in Settings. */
#history-health-status.error{color:#ff9aa3!important;border-color:#8c434b!important;background:#2a171b!important}

@media(max-width:1050px){
  .tips-split-grid{grid-template-columns:1fr}
  .flow-chart-axis{margin-left:215px;margin-right:92px}
  .flow-bar-row{grid-template-columns:30px 170px minmax(220px,1fr) 78px!important}
}
@media(max-width:720px){
  .earnings-clean-panel .earnings-result-grid{grid-template-columns:1fr!important}.earnings-mini-bars{height:185px}
  .flow-bar-row{grid-template-columns:28px minmax(0,1fr) 70px!important}.flow-bar-visual{grid-column:2/4!important}.flow-chart-axis{display:none}.flow-story-grid{grid-template-columns:1fr!important}
  .tips-lane .investment-tip-summary{grid-template-columns:28px 36px minmax(100px,1fr) 72px 52px 18px!important}.tips-lane .tip-quick:nth-of-type(2){display:none!important}
}


/* =========================================================
   Finora v0.10.84 — calm news feed, AI impact, daily portfolio meter
   ========================================================= */
/* Overview KPIs: one extra daily gauge, more compact cards on wide screens. */
@media(min-width:1201px){
  .kpis{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:9px!important}
  .kpi{height:112px!important;min-height:112px!important;padding:11px 12px 10px!important}
  .kpi strong{font-size:clamp(14px,1.05vw,18px)!important;margin-top:6px!important;margin-bottom:5px!important}
  .portfolio-yield-summary{gap:4px!important}
  .portfolio-yield-item{padding:4px 5px!important;min-width:0!important}
  .portfolio-yield-item span{font-size:7.5px!important}.portfolio-yield-item b{font-size:8.5px!important}
  .performance-bar-row span{font-size:8px!important}.performance-bar-row strong{font-size:9px!important}.performance-relative{font-size:7.5px!important}
}
.portfolio-day-meter-kpi{position:relative!important;overflow:hidden!important}
.portfolio-day-meter-body{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:10px;margin-top:4px;min-height:73px}
.portfolio-day-meter{position:relative;width:54px;height:73px;display:grid;grid-template-columns:22px 1fr;grid-template-rows:1fr 1fr;column-gap:6px;align-items:center}
.portfolio-day-meter-track{grid-row:1/3;width:18px;height:68px;border-radius:12px;position:relative;overflow:visible;background:linear-gradient(180deg,#37b977 0%,#2c7e69 37%,#53666d 49%,#6e5558 61%,#c05d66 100%);border:1px solid #38545c;box-shadow:inset 0 0 0 2px #07171f55}
.portfolio-day-meter-zero{position:absolute;left:-3px;right:-3px;top:50%;height:1px;background:#c0d0d766;transform:translateY(-.5px)}
.portfolio-day-meter-needle{position:absolute;left:-6px;bottom:var(--meter-pos);width:30px;height:2px;background:#eaf6f9;border-radius:2px;transform:translateY(1px);box-shadow:0 0 7px #0008;transition:bottom .55s cubic-bezier(.22,.7,.28,1)}
.portfolio-day-meter-needle:after{content:"";position:absolute;right:-1px;top:-4px;border-left:7px solid #eaf6f9;border-top:5px solid transparent;border-bottom:5px solid transparent}
.portfolio-day-meter>small{font-size:6.5px!important;line-height:1;color:#6e8792!important;font-weight:900;letter-spacing:.05em}.portfolio-day-meter>small:first-of-type{align-self:start;margin-top:5px;color:#6da98c!important}.portfolio-day-meter>small:last-of-type{align-self:end;margin-bottom:5px;color:#b77a80!important}
.portfolio-day-meter-copy{min-width:0}.portfolio-day-meter-copy strong{font-size:20px!important;margin:0!important;line-height:1.05!important}.portfolio-day-meter-copy>span{display:block;margin-top:4px;color:#afc0c7;font-size:9px;font-weight:800}.portfolio-day-meter-copy>small{display:block;margin-top:4px;color:#708994;font-size:7.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme="light"] .portfolio-day-meter-track{border-color:#a9bcc4;box-shadow:inset 0 0 0 2px #fff7}html[data-theme="light"] .portfolio-day-meter-needle{background:#243d47}html[data-theme="light"] .portfolio-day-meter-needle:after{border-left-color:#243d47}
@media(max-width:1200px){.portfolio-day-meter-body{grid-template-columns:50px minmax(0,1fr)}}

/* Important news: do not animate/repaint unread rows unless content really changed. */
#portfolio-news .calendar-news-item{transition:background .16s ease,border-color .16s ease,box-shadow .16s ease!important;animation:none!important}
#portfolio-news .calendar-news-item.is-new-item{animation:none!important}
.news-portfolio-impact{margin-top:10px;padding:9px 10px;border:1px solid #29404a;border-radius:10px;background:#0b1c24;pointer-events:none}
.news-impact-head{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center}.news-impact-arrow{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:#152831;border:1px solid #314954;color:#9bb0b9;font-size:16px;font-weight:900}.news-impact-head small{display:block;color:#728b96;font-size:8px;font-weight:800}.news-impact-head strong{display:block;margin-top:2px;color:#d9e6ea;font-size:10px}.news-impact-head em{font-style:normal;color:#758e99;font-size:8px;white-space:nowrap}
.news-portfolio-impact.positive .news-impact-arrow{color:#65d49a;border-color:#356b50;background:#102a20}.news-portfolio-impact.negative .news-impact-arrow{color:#e27d85;border-color:#70434a;background:#2a171b}.news-portfolio-impact.mixed .news-impact-arrow{color:#d4b773;border-color:#6f613f;background:#282318}
.news-impact-meter{position:relative;height:7px;border-radius:999px;margin-top:8px;background:linear-gradient(90deg,#b95761 0%,#714b50 35%,#52636a 48%,#52636a 52%,#346b57 65%,#3fba7a 100%);border:1px solid #31464e;overflow:visible}.news-impact-meter i{position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:#d3e0e566}.news-impact-meter b{position:absolute;top:50%;width:11px;height:11px;border-radius:50%;background:#eaf5f8;border:2px solid #12232b;transform:translate(-50%,-50%);box-shadow:0 1px 5px #0008}.news-portfolio-impact p{margin:7px 0 0!important;color:#91a6af!important;font-size:9px!important;line-height:1.45!important;display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important}
.news-portfolio-impact.detail{margin:14px 0 0;padding:13px 14px}.news-portfolio-impact.detail .news-impact-head strong{font-size:13px}.news-portfolio-impact.detail p{font-size:11px!important}
html[data-theme="light"] .news-portfolio-impact{background:#f7fafb;border-color:#d5e2e7}html[data-theme="light"] .news-impact-head strong{color:#314952}html[data-theme="light"] .news-impact-meter b{background:#2c4650;border-color:#fff}

/* Tipy dne: one concise sentence about the company's actual business. */
.tip-business-description{display:block;margin:3px 0 3px;color:#8da2ac;font-size:8.5px;line-height:1.3;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
.tips-lane .tip-business-description{font-size:7.6px!important;color:#7e949f!important}
@media(min-width:1051px){.tips-lane .investment-tip-summary{min-height:76px!important}}

/* Compact impact signal also appears in a position's current-news list. */
.position-news-impact{display:inline-flex!important;align-items:center!important;width:max-content!important;margin-top:6px!important;padding:3px 6px!important;border-radius:999px!important;border:1px solid #344b55!important;background:#102129!important;color:#8fa7b1!important;font-size:7.5px!important;font-style:normal!important;font-weight:850!important}.position-news-impact.positive{color:#69c996!important;border-color:#35654d!important;background:#10261d!important}.position-news-impact.negative{color:#df7d85!important;border-color:#694047!important;background:#28171a!important}.position-news-impact.mixed{color:#cbb174!important;border-color:#685c3e!important;background:#272219!important}

/* =========================================================
   Finora v0.10.90 — fixed ±5% vertical daily meter
   ========================================================= */
@media(min-width:1201px){
  .kpis{
    grid-template-columns:64px repeat(5,minmax(0,1fr))!important;
    grid-template-rows:repeat(2,112px)!important;
    gap:9px!important;
  }
  .kpis>.kpi:not(.portfolio-day-meter-kpi){height:112px!important;min-height:112px!important}
  .portfolio-day-meter-kpi{
    grid-column:1!important;
    grid-row:1 / span 2!important;
    height:auto!important;
    min-height:233px!important;
    padding:9px 7px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
  }
}
.portfolio-day-meter-kpi{position:relative!important}
.portfolio-day-meter-info{
  position:absolute!important;right:6px!important;top:6px!important;z-index:3!important;
  width:15px!important;height:15px!important;font-size:9px!important;line-height:15px!important;
}
.portfolio-day-meter-kpi .portfolio-day-meter-track{
  position:relative!important;
  width:25px!important;
  height:calc(100% - 28px)!important;
  min-height:155px!important;
  max-height:205px!important;
  border-radius:14px!important;
  overflow:visible!important;
  /* Střed je světlý: světle zelená nad nulou a světle žlutá v okolí nuly.
     Směrem ke krajům barvy sílí až do výrazné zelené / červené. */
  background:linear-gradient(180deg,
    #079b55 0%,
    #14bd68 20%,
    #58e99b 39%,
    #a6f3c3 47%,
    #f3e68a 50%,
    #ffd59a 56%,
    #ff9c86 69%,
    #ef5866 84%,
    #cf3043 100%)!important;
  border:1px solid #31515a!important;
  box-shadow:inset 0 0 0 2px #07171f55,0 0 18px #00000020!important;
}
.portfolio-day-meter-kpi .portfolio-day-meter-zero{
  position:absolute!important;left:-4px!important;right:-4px!important;top:50%!important;height:1px!important;
  background:#fffbe2b8!important;transform:translateY(-.5px)!important;
}
.portfolio-day-meter-indicator{
  position:absolute!important;
  left:-6px!important;
  bottom:clamp(0%,var(--meter-pos),100%)!important;
  width:37px!important;height:3px!important;
  background:#f5fbfd!important;
  border-radius:3px!important;
  transform:translateY(1.5px)!important;
  box-shadow:0 1px 6px #000b,0 0 0 1px #0a192080!important;
  transition:bottom .55s cubic-bezier(.22,.7,.28,1)!important;
}
.portfolio-day-meter-indicator em{
  position:absolute!important;
  left:43px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  padding:2px 4px!important;
  border-radius:5px!important;
  background:#10242dcc!important;
  border:1px solid #44616b!important;
  color:#eef8fa!important;
  font-size:7px!important;
  line-height:1!important;
  font-style:normal!important;
  font-weight:900!important;
  white-space:nowrap!important;
  letter-spacing:-.01em!important;
  box-shadow:0 2px 6px #0005!important;
}
html[data-theme="light"] .portfolio-day-meter-kpi .portfolio-day-meter-track{border-color:#a6bbc4!important;box-shadow:inset 0 0 0 2px #ffffff88,0 5px 18px #214a5a15!important}
html[data-theme="light"] .portfolio-day-meter-indicator{background:#1b3540!important;box-shadow:0 1px 5px #1b354044!important}
html[data-theme="light"] .portfolio-day-meter-indicator em{background:#ffffffee!important;color:#1b3540!important;border-color:#b9cbd2!important;box-shadow:0 2px 6px #526b751f!important}
@media(max-width:1200px){
  .portfolio-day-meter-kpi{min-height:112px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:9px!important}
  .portfolio-day-meter-kpi .portfolio-day-meter-track{height:82px!important;min-height:82px!important}
}

.portfolio-sector-row td{
  padding:0!important;
  border-top:8px solid #07151d!important;
  border-bottom:1px solid color-mix(in srgb,var(--sector-accent) 42%,#203a45)!important;
  background:linear-gradient(90deg,color-mix(in srgb,var(--sector-accent) 16%,#0d2732) 0%,#0b202a 48%,#091a22 100%)!important;
  box-shadow:inset 4px 0 0 var(--sector-accent)!important;
}
.portfolio-sector-head{
  min-height:46px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 14px 0 15px;
}
.portfolio-sector-label{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:48px;height:20px;padding:0 7px;border-radius:6px;
  background:color-mix(in srgb,var(--sector-accent) 22%,#0b1d26);
  border:1px solid color-mix(in srgb,var(--sector-accent) 64%,#29434e);
  color:color-mix(in srgb,var(--sector-accent) 78%,white);
  font-size:7.5px;font-weight:950;letter-spacing:.09em;
}
.portfolio-sector-head strong{font-size:12.5px;color:#edf6f8;letter-spacing:.005em;font-weight:900}
.portfolio-sector-head small{margin-left:auto;font-size:9px;color:#9ab0b9;font-weight:800;white-space:nowrap}
.portfolio-sector-head small b{color:var(--sector-accent);font-size:11px;padding:0 2px}
.portfolio-group-row td:first-child{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--sector-accent) 54%,transparent)!important}
.portfolio-group-row td{background:color-mix(in srgb,var(--sector-accent) 3.5%,#0b1d25)!important}
.portfolio-group-row:hover td{background:color-mix(in srgb,var(--sector-accent) 10%,#102a35)!important}
.portfolio-group-row.group-first td{border-top-color:color-mix(in srgb,var(--sector-accent) 22%,#29404a)!important}
.portfolio-group-row.group-last td{border-bottom:2px solid color-mix(in srgb,var(--sector-accent) 32%,#203642)!important}
html[data-theme="light"] .portfolio-sector-row td{background:linear-gradient(90deg,color-mix(in srgb,var(--sector-accent) 13%,#eef6f8),#f8fbfc 72%)!important;border-top-color:#e5edf0!important;border-bottom-color:color-mix(in srgb,var(--sector-accent) 38%,#c8d9df)!important}
html[data-theme="light"] .portfolio-sector-head strong{color:#203f4a!important}
html[data-theme="light"] .portfolio-sector-head small{color:#627e89!important}
html[data-theme="light"] .portfolio-sector-label{background:color-mix(in srgb,var(--sector-accent) 12%,white);color:color-mix(in srgb,var(--sector-accent) 74%,#183640)}
html[data-theme="light"] .portfolio-group-row td{background:color-mix(in srgb,var(--sector-accent) 2.5%,white)!important}
html[data-theme="light"] .portfolio-group-row:hover td{background:color-mix(in srgb,var(--sector-accent) 8%,#f7fbfc)!important}
@media(max-width:700px){.portfolio-sector-head{padding:0 9px 0 11px;gap:7px}.portfolio-sector-label{min-width:39px;padding:0 5px;font-size:6.7px}.portfolio-sector-head strong{font-size:10.5px}.portfolio-sector-head small{font-size:7.5px}}



/* =========================================================
   Finora v0.10.93 — wider daily meter + chart timeline
   ========================================================= */
@media(min-width:1201px){
  .kpis{
    grid-template-columns:118px repeat(5,minmax(0,1fr))!important;
    gap:9px!important;
  }
  .portfolio-day-meter-kpi{
    padding:10px 8px!important;
  }
  .portfolio-day-meter-kpi .portfolio-day-meter-track{
    margin-right:38px!important;
  }
}
.portfolio-day-meter-kpi .portfolio-day-meter-track{
  width:34px!important;
  border-radius:19px!important;
  background:linear-gradient(180deg,
    #00d474 0%,
    #13b765 20%,
    #58e99b 39%,
    #a6f3c3 47%,
    #f3e68a 50%,
    #ffd59a 56%,
    #ff9c86 69%,
    #ef5866 84%,
    #ff334d 100%)!important;
  border-color:#38606a!important;
  box-shadow:inset 0 0 0 2px #07171f55,0 0 20px #00000024!important;
}
.portfolio-day-meter-limit{
  position:absolute!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  font-size:9px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.01em!important;
  white-space:nowrap!important;
  text-shadow:0 1px 4px #000b!important;
  z-index:3!important;
}
.portfolio-day-meter-limit.meter-max{
  top:-16px!important;
  color:#50f2a1!important;
}
.portfolio-day-meter-limit.meter-min{
  bottom:-16px!important;
  color:#ff7180!important;
}
.portfolio-day-meter-indicator{
  left:-7px!important;
  width:47px!important;
}
.portfolio-day-meter-indicator em{
  left:53px!important;
  font-size:8px!important;
  padding:3px 5px!important;
}
html[data-theme="light"] .portfolio-day-meter-limit{text-shadow:none!important}
html[data-theme="light"] .portfolio-day-meter-limit.meter-max{color:#07894d!important}
html[data-theme="light"] .portfolio-day-meter-limit.meter-min{color:#c92f43!important}

.t212-time-axis{
  stroke:#31515f;
  stroke-width:1;
  opacity:.8;
  vector-effect:non-scaling-stroke;
}
.t212-time-tick{
  stroke:#55717d;
  stroke-width:1;
  opacity:.9;
  vector-effect:non-scaling-stroke;
}
.t212-time-label{
  fill:#7f98a4;
  font-size:9px;
  font-weight:700;
  letter-spacing:.01em;
}
html[data-theme="light"] .t212-time-axis{stroke:#b7c9d0}
html[data-theme="light"] .t212-time-tick{stroke:#96adb7}
html[data-theme="light"] .t212-time-label{fill:#637b86}

.allocation-card .legend-row{
  font-size:11.5px!important;
  line-height:1.3!important;
  margin:3px 0!important;
}
.allocation-card .legend-row span:last-child{
  font-size:10.8px!important;
  font-weight:750!important;
}
.allocation-card .legend-row i{
  width:8px!important;
  height:8px!important;
  margin-top:3px!important;
}
@media(max-width:760px){
  .allocation-card .legend-row{font-size:10.5px!important}
  .allocation-card .legend-row span:last-child{font-size:10px!important}
}


/* =========================================================
   Finora v0.10.94 — readable performance KPI + 12-point timeline
   ========================================================= */
/* The wider daily meter makes the ten KPI columns narrower. Keep the
   performance title fully readable instead of clipping it inside .kpi. */
.performance-kpi .performance-kpi-head{
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
}
.performance-kpi .performance-kpi-head label{
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
@media(min-width:1201px){
  .performance-kpi{
    padding:8px 9px 7px!important;
  }
  .performance-kpi .performance-kpi-head{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 17px!important;
    gap:5px!important;
    min-height:27px!important;
    align-items:start!important;
  }
  .performance-kpi .performance-kpi-head label{
    font-size:9.4px!important;
    line-height:1.12!important;
    margin:0!important;
  }
  .performance-kpi .performance-bars{
    margin-top:2px!important;
    gap:3px!important;
  }
  .performance-kpi .performance-bar-row>div{
    margin-bottom:1px!important;
  }
  .performance-kpi .performance-bar-row span{font-size:7.6px!important;line-height:1.05!important}
  .performance-kpi .performance-bar-row strong{font-size:8.5px!important;line-height:1.05!important}
  .performance-kpi .performance-bar-row i{height:5px!important}
  .performance-kpi .performance-relative{
    margin-top:2px!important;
    font-size:7px!important;
    line-height:1.12!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
}

/* Timeline always has twelve logical markers. Keep labels compact enough
   for 12 columns across the account-value chart. */
.t212-time-label{
  font-size:8px!important;
  font-weight:750!important;
  letter-spacing:0!important;
}
.t212-time-tick{stroke-width:.9!important}
@media(max-width:760px){.t212-time-label{font-size:7px!important}}


/* =========================================================
   Finora v0.10.96 — draggable KPI cards + structural groups
   ========================================================= */
/* Only the ten KPI cards can move. The daily meter and every dashboard block
   below #kpis remain fixed in the document layout. */
.draggable-kpi{position:relative!important}
.kpi-drag-handle{
  position:absolute;right:7px;top:7px;z-index:5;
  width:22px;height:18px;border-radius:6px;
  display:grid;place-items:center;
  color:#668795;font-size:12px;font-weight:1000;letter-spacing:-3px;
  cursor:grab;user-select:none;-webkit-user-select:none;
  opacity:.52;border:1px solid transparent;background:#07192355;
}
.draggable-kpi:hover .kpi-drag-handle{opacity:1;color:#8cdcff;border-color:#2a5366;background:#0a2431}
.kpi-drag-handle:active{cursor:grabbing}
.kpi-dragging{opacity:.48!important;transform:scale(.985)!important;border-color:#4bc9ff!important;box-shadow:0 0 0 2px #25b9f833,0 12px 30px #0007!important}
.kpi-reordering .draggable-kpi:not(.kpi-dragging){border-color:#264858!important}
html[data-theme="light"] .kpi-drag-handle{color:#68818c;background:#eef5f7aa}
html[data-theme="light"] .draggable-kpi:hover .kpi-drag-handle{color:#087db1;border-color:#acd6e6;background:#edf8fc}

/* Portfolio groups: one restrained Finora-blue language, stronger table
   structure, numbered index and a clearly separated summary block. */
.portfolio-sector-row td{
  padding:0!important;
  border-top:14px solid #06131b!important;
  border-bottom:2px solid #2d6d87!important;
  background:linear-gradient(90deg,#103d53 0%,#0d3143 46%,#0a2533 100%)!important;
  box-shadow:inset 5px 0 0 #55c9f7,inset 0 1px 0 #7ad8ff24!important;
}
.portfolio-sector-head{
  min-height:60px!important;display:flex!important;align-items:center!important;gap:12px!important;
  padding:7px 14px 7px 13px!important;
}
.portfolio-sector-index{
  flex:0 0 auto;width:38px;height:38px;border-radius:10px;
  display:grid;place-items:center;
  background:linear-gradient(145deg,#39bdf2,#167eae);
  border:1px solid #82dcff;color:white;
  font-size:13px;font-weight:1000;letter-spacing:.04em;
  box-shadow:0 5px 14px #03121a66,inset 0 1px 0 #ffffff45;
}
.portfolio-sector-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.portfolio-sector-label{
  width:max-content!important;min-width:0!important;height:auto!important;padding:0!important;
  border:0!important;background:transparent!important;color:#72cdec!important;
  font-size:7.5px!important;font-weight:1000!important;letter-spacing:.16em!important;
}
.portfolio-sector-head strong{font-size:15px!important;line-height:1.15!important;color:#f3fbff!important;font-weight:950!important;letter-spacing:.005em!important}
.portfolio-sector-head small{
  margin-left:auto!important;min-width:148px;padding:7px 10px!important;border-radius:9px!important;
  display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:2px!important;
  background:#071c27a8!important;border:1px solid #2a5a6d!important;
  color:#9fb7c1!important;font-size:8.5px!important;font-weight:750!important;white-space:nowrap!important;
}
.portfolio-sector-head small b{padding:0!important;color:#71d6ff!important;font-size:10.5px!important;font-weight:950!important}
.portfolio-group-row td{background:#0a1d26!important}
.portfolio-group-row td:first-child{box-shadow:inset 4px 0 0 #285d72!important}
.portfolio-group-row td:last-child{border-right:1px solid #234a5b!important}
.portfolio-group-row:hover td{background:#0d2834!important}
.portfolio-group-row.group-first td{border-top:1px solid #315e71!important}
.portfolio-group-row.group-last td{border-bottom:3px solid #234f62!important}
html[data-theme="light"] .portfolio-sector-row td{background:linear-gradient(90deg,#cceffc,#e7f6fb 62%,#f4fbfd 100%)!important;border-top-color:#e7eef1!important;border-bottom-color:#84c9e4!important;box-shadow:inset 5px 0 0 #199fd3!important}
html[data-theme="light"] .portfolio-sector-index{background:linear-gradient(145deg,#4cc9f6,#1585b3);border-color:#73cce8}
html[data-theme="light"] .portfolio-sector-label{color:#237e9e!important}
html[data-theme="light"] .portfolio-sector-head strong{color:#173d4d!important}
html[data-theme="light"] .portfolio-sector-head small{background:#ffffffa8!important;border-color:#b6d8e4!important;color:#5f7d89!important}
html[data-theme="light"] .portfolio-sector-head small b{color:#087fae!important}
html[data-theme="light"] .portfolio-group-row td{background:#fbfdfe!important}
html[data-theme="light"] .portfolio-group-row:hover td{background:#f0f9fc!important}
html[data-theme="light"] .portfolio-group-row td:first-child{box-shadow:inset 4px 0 0 #b1d9e8!important}
@media(max-width:700px){
  .portfolio-sector-head{min-height:54px!important;padding:6px 8px!important;gap:8px!important}
  .portfolio-sector-index{width:31px;height:31px;border-radius:8px;font-size:10px}
  .portfolio-sector-head strong{font-size:12px!important}
  .portfolio-sector-head small{min-width:0!important;padding:5px 7px!important;font-size:7px!important}
  .portfolio-sector-head small b{font-size:8px!important}
}

/* =========================================================
   Finora v0.10.97 — precise KPI drop cue + durable news/tips polish
   ========================================================= */
/* Drag & drop stays intentionally non-animated: the dragged card is optically
   lifted and the destination is shown by a crisp cyan insertion rail. */
.kpi-reordering .draggable-kpi:not(.kpi-dragging){
  border-color:#274958!important;
  box-shadow:inset 0 1px 0 #ffffff08!important;
}
.kpi-dragging{
  opacity:.28!important;
  transform:scale(.98)!important;
  filter:saturate(.72) brightness(.92)!important;
  border-color:#4bc9ff!important;
  box-shadow:0 0 0 2px #25b9f833,0 16px 34px #0009!important;
}
.kpi-drop-target{
  z-index:3!important;
  border-color:#57cffb!important;
  box-shadow:inset 0 0 0 1px #49c7f533,0 0 18px #24b9f31f!important;
}
.kpi-drop-target::before,.kpi-drop-target::after{
  content:"";position:absolute;top:9px;bottom:9px;width:4px;border-radius:999px;
  background:linear-gradient(180deg,#8ee7ff,#25baf2 48%,#168cc7);
  box-shadow:0 0 0 2px #0c2c3b,0 0 12px #45cfff99;
  pointer-events:none;z-index:8;display:none;
}
.kpi-drop-target.kpi-drop-before::before{display:block;left:-8px}
.kpi-drop-target.kpi-drop-after::after{display:block;right:-8px}
.kpi-drop-target .kpi-drag-handle{opacity:1!important;color:#a4ebff!important;border-color:#3b7590!important;background:#0b2b3a!important}
html[data-theme="light"] .kpi-drop-target{border-color:#169dce!important;box-shadow:inset 0 0 0 1px #149bcf28,0 0 14px #159bcf1f!important}
html[data-theme="light"] .kpi-drop-target::before,html[data-theme="light"] .kpi-drop-target::after{box-shadow:0 0 0 2px #e7f7fc,0 0 10px #179ed45f}

/* Tipy dne use the same strong Finora-blue hierarchy as portfolio group bars. */
.tips-lane-head{
  padding:12px 14px!important;margin:0 0 12px!important;border:1px solid #2d6d87!important;
  border-radius:12px!important;border-bottom-width:2px!important;
  background:linear-gradient(90deg,#103d53 0%,#0d3143 48%,#0a2533 100%)!important;
  box-shadow:inset 5px 0 0 #55c9f7,inset 0 1px 0 #7ad8ff24!important;
}
.tips-lane.discovery .tips-lane-head{border-color:#2d6d87!important;background:linear-gradient(90deg,#103d53 0%,#0d3143 48%,#0a2533 100%)!important}
.tips-lane-head small,.tips-lane.discovery .tips-lane-head small{color:#72cdec!important;font-size:8.5px!important;letter-spacing:.15em!important}
.tips-lane-head h3{margin:4px 0 3px!important;color:#f3fbff!important;font-size:16px!important;font-weight:950!important}
.tips-lane-head p{color:#a9c6d2!important;font-size:9.5px!important}
.tips-lane-head>span{min-width:42px!important;height:30px!important;background:#071c27c9!important;border:1px solid #2a5a6d!important;color:#76d7ff!important;font-size:10px!important}
html[data-theme="light"] .tips-lane-head,html[data-theme="light"] .tips-lane.discovery .tips-lane-head{background:linear-gradient(90deg,#cceffc,#e7f6fb 62%,#f4fbfd 100%)!important;border-color:#84c9e4!important;box-shadow:inset 5px 0 0 #199fd3!important}
html[data-theme="light"] .tips-lane-head small,html[data-theme="light"] .tips-lane.discovery .tips-lane-head small{color:#237e9e!important}
html[data-theme="light"] .tips-lane-head h3{color:#173d4d!important}
html[data-theme="light"] .tips-lane-head p{color:#587681!important}
html[data-theme="light"] .tips-lane-head>span{background:#ffffffc9!important;border-color:#b6d8e4!important;color:#087fae!important}


/* =========================================================
   Finora v0.10.98 — live FLIP/reflow KPI drag motion
   ========================================================= */
.kpi-reordering .draggable-kpi:not(.kpi-dragging){
  will-change:transform,filter;
  border-color:#2c5364!important;
}
.kpi-dragging{
  opacity:.13!important;
  transform:scale(.965)!important;
  filter:saturate(.66) brightness(.78)!important;
  border:1px dashed #55cfff!important;
  box-shadow:inset 0 0 0 1px #48c8f52e,0 0 20px #29bdf322!important;
}
.kpi-drop-target{
  border-color:#53c8f2!important;
  box-shadow:inset 0 0 0 1px #55cdf22b,0 0 14px #27bff11e!important;
}
.kpi-drop-target::before,.kpi-drop-target::after{display:none!important}
.kpi-drag-ghost{
  position:fixed!important;left:-10000px!important;top:-10000px!important;
  width:220px!important;height:112px!important;min-height:112px!important;
  opacity:.97!important;transform:scale(1.035)!important;pointer-events:none!important;z-index:999999!important;
  border:1px solid #60d5ff!important;
  box-shadow:0 0 0 2px #2ec3f334,0 22px 45px #000b,0 0 28px #28c0f329!important;
  filter:saturate(1.08) brightness(1.04)!important;
}
.kpi-drag-ghost .kpi-drag-handle{opacity:1!important;color:#b3efff!important;border-color:#4d8fa8!important;background:#0a2b39!important}
html[data-theme="light"] .kpi-dragging{border-color:#189bc8!important;box-shadow:inset 0 0 0 1px #159dcc22,0 0 18px #159dcc1f!important}
html[data-theme="light"] .kpi-drag-ghost{border-color:#159bc7!important;box-shadow:0 0 0 2px #169dcc25,0 20px 38px #17445234!important}
@media(prefers-reduced-motion:reduce){.kpi-reordering .draggable-kpi{will-change:auto!important}}


/* =========================================================
   Finora v0.10.99 — heatmap logo legibility + complete light-theme audit
   ========================================================= */
/* Heatmap logos sit on a neutral frosted plate instead of disappearing into
   strongly green/red tiles. Long wordmarks receive a wider slot so the mark
   can stay proportional instead of being distorted. */
.portfolio-heatmap.weighted-heatmap .heatmap-logo{
  width:30px!important;height:30px!important;left:7px!important;top:7px!important;
  padding:3px!important;border-radius:9px!important;overflow:visible!important;
  background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(232,242,246,.94))!important;
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:0 3px 10px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.8)!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-logo img{
  width:100%!important;height:100%!important;object-fit:contain!important;
  background:transparent!important;padding:0!important;filter:none!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-weighted-copy{padding-left:35px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-logo{width:33px!important;height:33px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-logo{width:36px!important;height:36px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.small .heatmap-logo{width:26px!important;height:26px!important;left:5px!important;top:5px!important;padding:2px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.small .heatmap-weighted-copy{padding-left:31px!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-logo{display:none!important}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-weighted-copy{padding-left:0!important}
.heatmap-tooltip-logo{
  padding:4px!important;border-radius:11px!important;
  background:linear-gradient(145deg,#ffffff,#eaf3f6)!important;
  border:1px solid #d8e5ea!important;box-shadow:0 4px 13px #0000002b!important;
}
html[data-theme="light"] .portfolio-heatmap.weighted-heatmap .heatmap-logo,
html[data-theme="light"] .heatmap-tooltip-logo{
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,246,249,.98))!important;
  border-color:#d1e0e6!important;
  box-shadow:0 3px 10px #35566624,inset 0 1px 0 #fff!important;
}

/* Complete light-theme surface pass: newer modules must never leak the dark
   theme's nearly-black surfaces into the light appearance. */
html[data-theme="light"]{color-scheme:light}
html[data-theme="light"] .modal textarea,
html[data-theme="light"] .login-form input,
html[data-theme="light"] .secret-field input,
html[data-theme="light"] .secret-field select{
  background:#fff!important;color:#203f4c!important;border-color:#c9dce4!important;
}
html[data-theme="light"] .toast{background:#f8fcfd!important;color:#244754!important;border-color:#c8dce4!important;box-shadow:0 14px 34px #294c5d22!important}
html[data-theme="light"] .mode-note,
html[data-theme="light"] .projection-summary span,
html[data-theme="light"] .law-pill,
html[data-theme="light"] .tips-disclaimer,
html[data-theme="light"] .tips-loading,
html[data-theme="light"] .tips-empty,
html[data-theme="light"] .tips-provider-missing{
  background:#f7fbfc!important;color:#56717d!important;border-color:#cfdee5!important;
}
html[data-theme="light"] .top-theme-switch,
html[data-theme="light"] .theme-switch{background:#edf5f8!important;border-color:#cbdde5!important}
html[data-theme="light"] .event-icon.earnings{background:#e9f3fb!important;border-color:#b9d3e5!important;color:#3476a3!important}
html[data-theme="light"] .event-icon.dividend{background:#eaf8f0!important;border-color:#b9ddc8!important;color:#238454!important}
html[data-theme="light"] .danger .alert-icon{background:#fff0f2!important;border-color:#e4b4bb!important;color:#ca4050!important}
html[data-theme="light"] .warning .alert-icon{background:#fff7e8!important;border-color:#e6cf9d!important;color:#a87313!important}
html[data-theme="light"] .success .alert-icon{background:#edf9f2!important;border-color:#b7dcc6!important;color:#268451!important}
html[data-theme="light"] .tip-rank,
html[data-theme="light"] .tip-company-logo,
html[data-theme="light"] .tip-score-panel,
html[data-theme="light"] .tip-metrics-panel,
html[data-theme="light"] .tip-metric-grid>div,
html[data-theme="light"] .tip-consensus-signal,
html[data-theme="light"] .tip-consensus-glance>div,
html[data-theme="light"] .tip-rating-card{
  background:#fff!important;border-color:#d2e0e6!important;color:#345663!important;
}
html[data-theme="light"] .tip-score-ring:before{background:#fff!important}
html[data-theme="light"] .tip-factor>i,
html[data-theme="light"] .tip-rating-track{background:#dfecef!important}
html[data-theme="light"] .tips-provider-missing>span{background:#edf9f2!important;border-color:#b9ddc8!important;color:#278653!important}
html[data-theme="light"] .flow-session-pill,
html[data-theme="light"] .flow-learning-pill,
html[data-theme="light"] .flow-bar-rank,
html[data-theme="light"] .flow-story-grid section,
html[data-theme="light"] .flow-story-list>div,
html[data-theme="light"] .flow-weight-row>i{
  background:#f5fafc!important;border-color:#cfdee5!important;color:#536f7b!important;
}
html[data-theme="light"] .flow-learning-pill.active{background:#eaf8f0!important;border-color:#b6dcc5!important;color:#237e50!important}
html[data-theme="light"] .flow-story-list>div span{color:#5d7681!important}
html[data-theme="light"] .earnings-neutral-badge,
html[data-theme="light"] .earnings-clean-metric .earnings-result-metric-head span,
html[data-theme="light"] .earnings-result-head>span,
html[data-theme="light"] .earnings-result-summary.guidance,
html[data-theme="light"] .earnings-result-verdicts>span,
html[data-theme="light"] .earnings-value-pair>div{
  background:#f5fafc!important;border-color:#cfdee5!important;color:#56717d!important;
}
html[data-theme="light"] .earnings-clean-metric .earnings-result-metric-head span.positive,
html[data-theme="light"] .earnings-result-verdicts>span.positive{background:#edf9f2!important;border-color:#b9ddc8!important;color:#278653!important}
html[data-theme="light"] .earnings-mini-bars .bar-track,
html[data-theme="light"] .earnings-comparison-chart i{background:#dfecef!important}
html[data-theme="light"] .openai-optimization-pill.on{background:#eaf8f0!important;border-color:#b7ddc6!important;color:#287f52!important}
html[data-theme="light"] .news-impact-arrow,
html[data-theme="light"] .position-news-impact{background:#eef5f8!important;border-color:#cbdde5!important;color:#4e6c78!important}
html[data-theme="light"] .news-portfolio-impact.positive .news-impact-arrow,
html[data-theme="light"] .position-news-impact.positive{background:#eaf8f0!important;border-color:#b7ddc6!important;color:#258050!important}
html[data-theme="light"] .kpi-drop-target .kpi-drag-handle,
html[data-theme="light"] .kpi-drag-ghost .kpi-drag-handle{background:#eef7fa!important;border-color:#b8d8e4!important;color:#1184b1!important}
html[data-theme="light"] .article-text,
html[data-theme="light"] .event-detail-box,
html[data-theme="light"] .detail-grid>section,
html[data-theme="light"] .detail-section,
html[data-theme="light"] .tax-input>div,
html[data-theme="light"] .tax-test{
  background:#fbfdfe!important;border-color:#d5e2e8!important;color:#294a57!important;
}
html[data-theme="light"] .tax-test.pass{background:#edf9f2!important;border-color:#b9ddc8!important;color:#278653!important}
html[data-theme="light"] .external-link,
html[data-theme="light"] .rank-button:hover{background:#edf7fb!important;border-color:#bfdbe6!important;color:#117ca7!important}
html[data-theme="light"] .pie-share-bars,
html[data-theme="light"] .api-icon.cache{background:#eaf5f9!important;border-color:#bfd9e3!important;color:#28738f!important}
html[data-theme="light"] .earnings-result-metric-head span,
html[data-theme="light"] .earnings-surprise{background:#eef7f2!important;border-color:#c3dfcf!important;color:#347258!important}
html[data-theme="light"] .tip-title-line em{background:#edf9f2!important;border-color:#b9ddc8!important;color:#278653!important}
html[data-theme="light"] .flow-kicker i{background:#e8f5fa!important;border-color:#b8dce8!important;color:#177b9f!important}
html[data-theme="light"] .draggable-kpi:hover .kpi-drag-handle{background:#edf8fc!important;border-color:#acd6e6!important;color:#087db1!important}


/* =========================================================
   Finora v0.11.00 — transparent heatmap logos, stricter news
   freshness, ±3% meter, thicker benchmark, tips data honesty
   ========================================================= */
/* Heatmap logos remain genuinely transparent. Contrast comes from the mark
   itself (and a subtle shadow), never from a white/black plate. */
.portfolio-heatmap.weighted-heatmap .heatmap-logo,
.heatmap-tooltip-logo{
  background:transparent!important;border:0!important;box-shadow:none!important;
  padding:0!important;overflow:visible!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-logo img,
.heatmap-tooltip-logo img{
  background:transparent!important;padding:0!important;object-fit:contain!important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.46))!important;
}
/* Light mode keeps transparency too. White-only source marks are darkened, not
   placed on a black background. */
html[data-theme="light"] .portfolio-heatmap.weighted-heatmap .heatmap-logo,
html[data-theme="light"] .heatmap-tooltip-logo{
  background:transparent!important;border:0!important;box-shadow:none!important;
}

/* More sensitive daily meter: ±3% uses the full visual range. */
.portfolio-day-meter-limit.meter-max{color:#19d876!important}
.portfolio-day-meter-limit.meter-min{color:#ff4e61!important}

/* Portfolio YTD benchmark bars: less hairline-like, easier to compare at a glance. */
.performance-kpi .performance-bar-row i{height:8px!important;border-radius:999px!important}
.performance-kpi .performance-bar-row i b{min-width:5px!important;border-radius:999px!important}

/* Unknown analyst-category counts are shown honestly instead of fake zeros. */
.tip-rating-unavailable{
  grid-column:1/-1;padding:9px 11px;border-radius:10px;border:1px dashed #4e6570;
  color:#91a8b2;background:#0d1b22;font-size:9px;line-height:1.45;text-align:center;
}
.tip-rating-card strong{font-variant-numeric:tabular-nums}

/* Third (triadic) accent for Tipy dne: warm amber complements Finora blue and
   the positive green without competing with red risk signals. */
.tips-page{--tips-accent-warm:#e3aa4b}
.tips-page .tip-rank{color:#f0c36d!important;border-color:#6a542d!important;background:#241e13!important}
.tips-page .tip-score-panel{box-shadow:inset 3px 0 0 var(--tips-accent-warm)!important}
.tips-page .tip-score-panel .tip-section-title strong{color:#f1c56f!important}
.tips-page .tip-catalysts{border-left:3px solid var(--tips-accent-warm)!important;padding-left:11px!important}
html[data-theme="light"] .tip-rating-unavailable{background:#f8fbfc;border-color:#cbdbe2;color:#617985}
html[data-theme="light"] .tips-page .tip-rank{background:#fff8e9!important;border-color:#e0bd78!important;color:#9b6719!important}
html[data-theme="light"] .tips-page .tip-score-panel{box-shadow:inset 3px 0 0 #d59a35!important}
html[data-theme="light"] .tips-page .tip-score-panel .tip-section-title strong{color:#9a6719!important}


/* =========================================================
   Finora v0.11.01 — centered transparent heatmap logos
   ========================================================= */
/* The logo and the textual stack share one optical vertical axis. Historical
   left/top positioning and copy padding must not be allowed to pull them apart. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.weighted{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-logo,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.micro .heatmap-logo{
  position:static!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  margin:0 auto 5px!important;
  flex:0 0 auto!important;
  display:grid!important;
  place-items:center!important;
  width:29px!important;
  height:29px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-logo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:auto!important;
  padding:0!important;
  background:transparent!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-weighted-copy,
.portfolio-heatmap.weighted-heatmap .heatmap-logo + .heatmap-weighted-copy{
  width:100%!important;
  padding-left:0!important;
  padding-right:0!important;
  margin:0!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-primary-line,
.portfolio-heatmap.weighted-heatmap .heatmap-secondary-line,
.portfolio-heatmap.weighted-heatmap .heatmap-live-line{
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-fixed-ticker,
.portfolio-heatmap.weighted-heatmap .heatmap-current-price,
.portfolio-heatmap.weighted-heatmap .heatmap-day-money,
.portfolio-heatmap.weighted-heatmap .heatmap-exchange{
  text-align:center!important;
  align-self:center!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.medium .heatmap-logo{
  width:32px!important;height:32px!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.large .heatmap-logo{
  width:36px!important;height:36px!important;
}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.small .heatmap-logo{
  position:static!important;
  width:25px!important;height:25px!important;
  margin:0 auto 4px!important;
}

/* Very low/wide tiles are the one exception: there is not enough vertical room,
   so the logo may stay hidden and the textual signal remains centered. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-logo,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-logo,
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-logo{
  display:none!important;
}

/* =========================================================
   Finora v0.11.02 — position detail: one-year default + live quote
   ========================================================= */
#detail-content .detail-metrics .metric-card{
  background:linear-gradient(145deg,rgba(18,91,132,.42),rgba(8,31,45,.96))!important;
  border-color:#27627f!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 10px 24px rgba(0,16,27,.16)!important;
}
#detail-content .detail-metrics .metric-card small{color:#a9c7d5!important}
#detail-content .detail-metrics .metric-card span{color:#7fa6b8!important}
#detail-content .detail-metrics .metric-card strong{color:#edf9ff}
#detail-content .detail-metrics .metric-positive strong{color:var(--green)!important}
#detail-content .detail-metrics .metric-negative strong{color:var(--red)!important}

.position-trade-shell{position:relative;min-width:0}
.position-trade-shell .trade-chart-note{padding-right:195px;min-height:34px}
.position-live-quote{
  position:absolute;right:14px;top:13px;z-index:6;
  min-width:158px;padding:8px 11px 7px;border-radius:10px;
  border:1px solid rgba(50,155,205,.48);
  background:linear-gradient(145deg,rgba(11,52,72,.96),rgba(8,31,44,.96));
  box-shadow:0 8px 22px rgba(0,10,18,.22),inset 0 1px 0 rgba(255,255,255,.05);
  display:grid;grid-template-columns:1fr auto;column-gap:10px;row-gap:2px;
  pointer-events:none;
}
.position-live-quote>span{grid-column:1/-1;color:#7fccef;font-size:8px;font-weight:900;letter-spacing:.14em;display:flex;align-items:center;gap:5px}
.position-live-quote>span i{width:6px;height:6px;border-radius:50%;background:#38d98a;box-shadow:0 0 10px rgba(56,217,138,.7)}
.position-live-quote>strong{color:#f1fbff;font-size:16px;line-height:1.15;white-space:nowrap}
.position-live-quote>em{font-style:normal;font-size:12px;font-weight:900;align-self:end;white-space:nowrap;color:#8fa8b4}
.position-live-quote>.position-day-source{grid-column:1/-1;font-size:10px;line-height:1.3;font-weight:500;color:var(--muted);white-space:normal;overflow-wrap:anywhere;max-width:230px}
.position-live-quote.positive>em{color:var(--green)}
.position-live-quote.negative>em{color:var(--red)}

html[data-theme="light"] #detail-content .detail-metrics .metric-card{
  background:linear-gradient(145deg,#f7fcff,#e5f4fb)!important;
  border-color:#b9dbea!important;
  box-shadow:0 8px 20px rgba(37,103,134,.09),inset 0 1px 0 #fff!important;
}
html[data-theme="light"] #detail-content .detail-metrics .metric-card small{color:#557886!important}
html[data-theme="light"] #detail-content .detail-metrics .metric-card span{color:#71909d!important}
html[data-theme="light"] #detail-content .detail-metrics .metric-card strong{color:#173e50}
html[data-theme="light"] .position-live-quote{
  border-color:#b7d9e8;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(232,246,252,.98));
  box-shadow:0 8px 20px rgba(37,103,134,.11),inset 0 1px 0 #fff;
}
html[data-theme="light"] .position-live-quote>span{color:#167ca8}
html[data-theme="light"] .position-live-quote>strong{color:#183e4f}
html[data-theme="light"] .position-live-quote>em{color:#69828d}

@media(max-width:700px){
  .position-trade-shell .trade-chart-note{padding-right:0;min-height:0}
  .position-live-quote{position:static;margin:0 0 8px auto;width:max-content;min-width:150px}
}


/* Finora v0.11.03 — calmer account-chart endpoint + stronger benchmark + position loader */
.performance-kpi .performance-bar-row.benchmark i{
  height:10px!important;
  border-radius:999px!important;
}
.performance-kpi .performance-bar-row.benchmark i b{
  min-width:6px!important;
  border-radius:999px!important;
  box-shadow:0 0 0 1px rgba(22,174,239,.14);
}

.position-detail-loading{
  min-height:330px!important;
  padding:54px 28px!important;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.position-detail-loading strong{
  color:#dcebf2;
  font-size:14px;
  letter-spacing:.1px;
}
.position-detail-loading span{
  color:#7f98a4;
  font-size:9.5px;
}
.position-loader-chart{
  width:190px;
  height:82px;
  margin-bottom:10px;
  padding:4px 6px;
  border-radius:16px;
  border:1px solid rgba(57,159,202,.22);
  background:linear-gradient(180deg,rgba(20,65,84,.22),rgba(7,27,37,.04));
  overflow:hidden;
}
.position-loader-chart svg{width:100%;height:100%;overflow:visible}
.position-loader-bars rect{
  fill:rgba(45,165,214,.16);
  transform-box:fill-box;
  transform-origin:center bottom;
  animation:positionLoaderBar 1.55s ease-in-out infinite;
}
.position-loader-bars rect:nth-child(2){animation-delay:.08s}
.position-loader-bars rect:nth-child(3){animation-delay:.16s}
.position-loader-bars rect:nth-child(4){animation-delay:.24s}
.position-loader-bars rect:nth-child(5){animation-delay:.32s}
.position-loader-bars rect:nth-child(6){animation-delay:.40s}
.position-loader-bars rect:nth-child(7){animation-delay:.48s}
.position-loader-line{
  fill:none;
  stroke:#27b8f0;
  stroke-width:2.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:210;
  stroke-dashoffset:210;
  filter:drop-shadow(0 0 4px rgba(39,184,240,.28));
  animation:positionLoaderLine 1.55s cubic-bezier(.45,0,.22,1) infinite;
}
.position-loader-dot{
  fill:#7edcff;
  opacity:0;
  filter:drop-shadow(0 0 5px rgba(63,197,248,.7));
  animation:positionLoaderDot 1.55s ease-in-out infinite;
}
@keyframes positionLoaderBar{
  0%,100%{transform:scaleY(.55);opacity:.26}
  45%,70%{transform:scaleY(1);opacity:.82}
}
@keyframes positionLoaderLine{
  0%{stroke-dashoffset:210;opacity:.25}
  58%,78%{stroke-dashoffset:0;opacity:1}
  100%{stroke-dashoffset:0;opacity:.18}
}
@keyframes positionLoaderDot{
  0%,45%{opacity:0;transform:scale(.6)}
  62%,82%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(.75)}
}
html[data-theme="light"] .position-detail-loading strong{color:#244a59}
html[data-theme="light"] .position-detail-loading span{color:#6f8792}
html[data-theme="light"] .position-loader-chart{
  border-color:#cce2ec;
  background:linear-gradient(180deg,#f7fcfe,#edf7fb);
}
html[data-theme="light"] .position-loader-bars rect{fill:rgba(37,154,204,.15)}
@media (prefers-reduced-motion:reduce){
  .position-loader-bars rect,.position-loader-line,.position-loader-dot{animation:none!important}
  .position-loader-line{stroke-dashoffset:0!important;opacity:.85!important}
  .position-loader-dot{opacity:1!important}
}

/* =========================================================
   Finora v0.11.04 — exact-ISIN dividend gate + cinematic login + larger detail loader
   ========================================================= */
.login-stage{overflow:hidden}
.login-market-backdrop{
  position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;
  background:
    radial-gradient(circle at 18% 18%,rgba(33,171,228,.10),transparent 31%),
    radial-gradient(circle at 82% 80%,rgba(42,204,164,.075),transparent 29%);
}
.login-market-grid{
  position:absolute;inset:-12%;opacity:.22;
  background-image:linear-gradient(rgba(73,174,215,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(73,174,215,.13) 1px,transparent 1px);
  background-size:64px 64px;
  transform:perspective(900px) rotateX(58deg) translateY(20%);
  transform-origin:center bottom;
  animation:loginGridDrift 16s linear infinite;
}
.login-market-wave{position:absolute;left:-4%;bottom:2%;width:108%;height:78%;overflow:visible;opacity:.78}
.login-market-area{fill:url(#loginMarketArea)}
.login-market-line{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.login-market-line-glow{stroke:#45c9f5;stroke-width:10;opacity:.10;filter:blur(5px)}
.login-market-line-flow{
  stroke:#49cff9;stroke-width:2.8;opacity:.70;stroke-dasharray:14 20;
  filter:drop-shadow(0 0 8px rgba(57,194,241,.38));animation:loginMarketFlow 4.8s linear infinite;
}
.login-market-nodes circle{fill:#9fe7ff;stroke:#157ba2;stroke-width:2;opacity:.52;filter:drop-shadow(0 0 9px rgba(74,207,249,.52));animation:loginNodePulse 2.8s ease-in-out infinite}
.login-market-nodes circle:nth-child(2){animation-delay:.3s}.login-market-nodes circle:nth-child(3){animation-delay:.6s}.login-market-nodes circle:nth-child(4){animation-delay:.9s}.login-market-nodes circle:nth-child(5){animation-delay:1.2s}.login-market-nodes circle:nth-child(6){animation-delay:1.5s}
.login-market-bars{position:absolute;inset:10% 4% 10%;opacity:.17}
.login-market-bars i{position:absolute;left:var(--x);bottom:var(--b);width:7px;height:var(--h);min-height:32px;border-radius:5px;background:#3dd8a2;color:#3dd8a2;box-shadow:0 0 18px rgba(61,216,162,.17);transform-origin:center bottom;animation:loginBarBreath 3.3s var(--d) ease-in-out infinite}
.login-market-bars i:before{content:"";position:absolute;left:3px;top:-16px;width:1px;height:calc(100% + 32px);background:currentColor;opacity:.68}
.login-market-bars i.down{background:#4b9dcc;color:#4b9dcc}
.login-market-orb{position:absolute;width:38vw;height:38vw;max-width:620px;max-height:620px;border-radius:50%;filter:blur(92px);opacity:.10}
.login-market-orb-a{left:-13vw;top:-17vw;background:#20b9ed;animation:loginOrbFloat 9s ease-in-out infinite alternate}
.login-market-orb-b{right:-14vw;bottom:-19vw;background:#2ad7ad;animation:loginOrbFloat 11s 1.4s ease-in-out infinite alternate-reverse}
.login-card{z-index:3}
@keyframes loginGridDrift{to{background-position:64px 64px}}
@keyframes loginMarketFlow{to{stroke-dashoffset:-136}}
@keyframes loginNodePulse{0%,100%{opacity:.26;transform:scale(.7)}50%{opacity:.90;transform:scale(1.15)}}
@keyframes loginBarBreath{0%,100%{transform:scaleY(.72);opacity:.46}50%{transform:scaleY(1.08);opacity:1}}
@keyframes loginOrbFloat{from{transform:translate3d(0,0,0) scale(.88)}to{transform:translate3d(5vw,3vh,0) scale(1.08)}}

html[data-theme="light"] .login-market-backdrop{
  background:radial-gradient(circle at 18% 18%,rgba(34,156,207,.085),transparent 31%),radial-gradient(circle at 82% 80%,rgba(38,180,145,.06),transparent 29%);
}
html[data-theme="light"] .login-market-grid{opacity:.16;background-image:linear-gradient(rgba(44,140,179,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(44,140,179,.14) 1px,transparent 1px)}
html[data-theme="light"] .login-market-line-glow{stroke:#2aa5d4;opacity:.085}
html[data-theme="light"] .login-market-line-flow{stroke:#238fbc;opacity:.47;filter:drop-shadow(0 0 7px rgba(28,135,179,.18))}
html[data-theme="light"] .login-market-nodes circle{fill:#d8f3ff;stroke:#328caf;opacity:.52;filter:drop-shadow(0 0 8px rgba(55,152,191,.22))}
html[data-theme="light"] .login-market-bars{opacity:.10}
html[data-theme="light"] .login-market-orb{opacity:.055}

.position-detail-loading{
  min-height:440px!important;padding:54px 28px 62px!important;gap:11px!important;
  background:radial-gradient(circle at 50% 43%,rgba(32,149,199,.055),transparent 43%);
}
.position-detail-loading strong{font-size:16px!important;letter-spacing:.12px!important}
.position-detail-loading span{font-size:10.5px!important}
.position-loader-chart{
  position:relative;width:min(520px,88%);height:220px;margin-bottom:16px;padding:12px 14px!important;
  border-radius:24px!important;border:1px solid rgba(62,174,220,.27)!important;
  background:linear-gradient(180deg,rgba(19,72,94,.30),rgba(7,27,37,.08))!important;
  box-shadow:0 24px 65px rgba(1,16,24,.23),inset 0 1px 0 rgba(131,219,251,.055);
}
.position-loader-grid{position:absolute;inset:12px 14px;border-radius:16px;opacity:.30;background-image:linear-gradient(rgba(67,158,196,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(67,158,196,.11) 1px,transparent 1px);background-size:52px 40px;animation:positionLoaderGrid 8s linear infinite}
.position-loader-chart svg{position:relative;z-index:1;width:100%;height:100%}
.position-loader-bars rect{fill:rgba(49,172,219,.19)!important;animation-duration:1.85s!important}
.position-loader-line{stroke-width:4!important;stroke-dasharray:470!important;stroke-dashoffset:470!important;filter:drop-shadow(0 0 7px rgba(39,184,240,.42))!important;animation-duration:1.85s!important}
.position-loader-line-glow{stroke-width:13!important;opacity:.09;filter:blur(5px)!important}
.position-loader-dot{filter:drop-shadow(0 0 11px rgba(77,205,251,.88))!important;animation-duration:1.85s!important}
@keyframes positionLoaderGrid{to{background-position:52px 40px}}
@keyframes positionLoaderLine{0%{stroke-dashoffset:470;opacity:.22}58%,78%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:.18}}
html[data-theme="light"] .position-detail-loading{background:radial-gradient(circle at 50% 43%,rgba(38,145,190,.055),transparent 43%)}
html[data-theme="light"] .position-loader-chart{border-color:#c5e0eb!important;background:linear-gradient(180deg,#f8fdff,#edf7fb)!important;box-shadow:0 22px 56px rgba(45,91,110,.12),inset 0 1px 0 #fff}
html[data-theme="light"] .position-loader-grid{opacity:.36;background-image:linear-gradient(rgba(55,139,174,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(55,139,174,.10) 1px,transparent 1px)}
@media(max-width:700px){.position-detail-loading{min-height:360px!important;padding:38px 15px!important}.position-loader-chart{width:min(94%,390px);height:168px;padding:9px 10px!important}.position-loader-grid{inset:9px 10px;background-size:42px 34px}}
@media(prefers-reduced-motion:reduce){.login-market-grid,.login-market-line-flow,.login-market-nodes circle,.login-market-bars i,.login-market-orb,.position-loader-grid{animation:none!important}}

/* Finora v0.11.05 — keep the thicker S&P 500 benchmark fully visible */
.performance-kpi{
  padding-top:9px!important;
  padding-bottom:7px!important;
}
.performance-kpi .performance-bars{
  gap:5px!important;
  margin-top:5px!important;
}
.performance-kpi .performance-bar-row>div{
  margin-bottom:2px!important;
}
.performance-kpi .performance-bar-row i{
  width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.performance-kpi .performance-bar-row.mine i,
.performance-kpi .performance-bar-row.benchmark i{
  height:8px!important;
}
.performance-kpi .performance-bar-row i b{
  max-width:100%!important;
  box-sizing:border-box!important;
}
.performance-kpi .performance-relative{
  margin-top:4px!important;
  line-height:1.05!important;
}

/* =========================================================
   Finora v0.11.06 — allocations move to Portfolio + wide calendar
   ========================================================= */
/* Overview: the old allocation card is gone. Give its width to Calendar. */
.dashboard .top-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:13px!important;
  align-items:stretch!important;
}
.dashboard .top-grid>.t212-account-card{
  grid-column:1!important;
  width:100%!important;
}
.dashboard .top-grid>.top-calendar-stack{
  grid-column:2!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  height:420px!important;
  min-height:420px!important;
}
.dashboard .top-grid>.top-calendar-stack>.overview-calendar-card{
  width:100%!important;
  height:420px!important;
  min-height:420px!important;
  overflow:hidden!important;
}
.overview-calendar-card #calendar-list{
  overflow:auto!important;
  scrollbar-width:thin;
  scrollbar-color:#31586b transparent;
}
.overview-calendar-card .calendar-item{
  grid-template-columns:36px minmax(0,1fr) minmax(90px,auto)!important;
  gap:11px!important;
  padding:10px 15px!important;
  min-height:54px;
  text-align:left;
}
.overview-calendar-card .calendar-item>*{min-width:0}
.overview-calendar-card .calendar-logo,
.overview-calendar-card .company-logo{
  width:32px!important;
  height:32px!important;
}
.overview-calendar-card .calendar-item>div:nth-child(2)>small{
  font-size:9.5px!important;
  line-height:1.25!important;
}
.overview-calendar-card .calendar-item>div:nth-child(2)>strong{
  font-size:12.5px!important;
  line-height:1.32!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere;
}
.overview-calendar-card .overview-calendar-side{
  min-width:90px!important;
  max-width:150px;
}
.overview-calendar-card .overview-calendar-side .overview-dividend-amount{
  font-size:12px!important;
  line-height:1.2;
  white-space:normal!important;
}
.overview-calendar-card .overview-calendar-side small{
  font-size:9px!important;
}

/* P038: a missing observation has no price; desktop rows share one side column. */
.account-history-unknown{fill:#91adc60b}
html[data-theme="light"] .account-history-unknown{fill:#49667a0d}
.account-history-coverage{display:flex;flex-wrap:wrap;gap:3px 12px;color:var(--muted);font-size:10px;line-height:1.4;padding:0 8px}
.t212-account-chart:has(.account-history-coverage) svg{height:calc(100% - 36px)}
@media(min-width:981px){
  #portfolio-chart .t212-time-label{font-size:15px!important;font-weight:500!important}
  #portfolio-chart .t212-value-label{font-size:15px}
  .t212-account-header-clean #portfolio-range-bar{
    display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));
    gap:2px!important;overflow:visible!important;
  }
  .t212-account-header-clean #portfolio-range-bar .t212-range-btn{
    min-width:0!important;width:100%;padding:9px 2px!important;font-size:11px!important;
  }
  .t212-account-header-clean .t212-account-metric{grid-template-rows:minmax(18px,auto) 28px!important}
  .t212-account-header-clean .t212-account-metric>span{
    white-space:normal!important;line-height:1.3!important;max-width:100%;
  }
  .overview-calendar-card #calendar-list{display:block!important}
  .overview-calendar-card #calendar-list .calendar-item{
    grid-template-columns:32px minmax(0,1fr) 96px!important;
    column-gap:12px!important;
    border-top:1px solid #294758;
  }
  .overview-calendar-card #calendar-list .calendar-item:first-child{border-top:0}
  .overview-calendar-card #calendar-list .overview-calendar-side{
    grid-column:3!important;grid-row:1!important;
    min-width:0!important;max-width:none!important;width:100%;
    justify-self:stretch!important;text-align:right!important;
  }
  .overview-calendar-card #calendar-list .overview-calendar-side strong{
    font-size:12px;line-height:1.35;white-space:normal;
    overflow-wrap:anywhere;font-variant-numeric:tabular-nums;
  }
  .overview-calendar-card #calendar-list .overview-calendar-side small{margin-top:4px}
  html[data-theme="light"] .overview-calendar-card #calendar-list .calendar-item{border-top-color:#cfdee6}
}

/* Portfolio: sectors and regions now get a full-width, first-class layout. */
.portfolio-allocation-card{
  width:100%;
  padding:0 18px 20px!important;
  overflow:hidden;
}
.portfolio-allocation-head{
  padding:18px 3px 14px!important;
  border-bottom:1px solid #1e3b4a;
  margin-bottom:18px;
}
.portfolio-allocation-head h2{
  font-size:19px!important;
  letter-spacing:-.25px;
}
.portfolio-allocation-head small{
  display:block;
  margin-top:4px;
  color:#829aa6;
  font-size:10.5px;
}
.portfolio-allocation-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.portfolio-allocation-card .allocation-col{
  display:grid!important;
  grid-template-columns:minmax(190px,220px) minmax(0,1fr)!important;
  grid-template-rows:auto 1fr!important;
  column-gap:22px!important;
  align-items:center!important;
  min-height:300px;
  padding:18px 20px 20px;
  border:1px solid #244757;
  border-radius:16px;
  background:linear-gradient(145deg,#0c2431 0%,#091b26 70%);
  box-shadow:inset 0 1px 0 #ffffff08;
}
.portfolio-allocation-card .allocation-col>h2{
  grid-column:1/-1!important;
  margin:0 0 14px!important;
  padding-bottom:10px;
  border-bottom:1px solid #1d3b49;
  font-size:17px!important;
  letter-spacing:-.15px;
}
.portfolio-allocation-card .donut-wrap{
  grid-column:1!important;
  grid-row:2!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:220px;
}
.portfolio-allocation-card .donut{
  width:196px!important;
  height:196px!important;
  flex:0 0 196px;
  box-shadow:inset 0 0 0 1px #ffffff12,0 10px 30px #0003!important;
}
.portfolio-allocation-card .donut:after{
  width:112px!important;
  height:112px!important;
  background:#0a1d29!important;
  border-color:#274858!important;
}
.portfolio-allocation-card .legend{
  grid-column:2!important;
  grid-row:2!important;
  align-self:center!important;
  margin:0!important;
  display:grid!important;
  gap:7px!important;
  min-width:0;
}
.portfolio-allocation-card .legend-row{
  grid-template-columns:11px minmax(0,1fr) auto!important;
  gap:9px!important;
  align-items:center!important;
  margin:0!important;
  padding:5px 7px!important;
  border-radius:8px!important;
  font-size:12.5px!important;
  line-height:1.3!important;
}
.portfolio-allocation-card .legend-row:hover{
  background:#123141!important;
}
.portfolio-allocation-card .legend-row i{
  width:10px!important;
  height:10px!important;
  margin:0!important;
  border-radius:3px!important;
}
.portfolio-allocation-card .legend-row span:nth-child(2){
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
.portfolio-allocation-card .legend-row span:last-child{
  font-size:12px!important;
  font-weight:800!important;
  color:#c5d6dd!important;
}

html[data-theme="light"] .portfolio-allocation-head{
  border-bottom-color:#d6e3e8;
}
html[data-theme="light"] .portfolio-allocation-head small{color:#6f8791}
html[data-theme="light"] .portfolio-allocation-card .allocation-col{
  background:linear-gradient(145deg,#f8fbfc 0%,#f1f7f9 100%)!important;
  border-color:#cddfe6!important;
  box-shadow:inset 0 1px 0 #fff!important;
}
html[data-theme="light"] .portfolio-allocation-card .allocation-col>h2{
  border-bottom-color:#d8e5ea;
}
html[data-theme="light"] .portfolio-allocation-card .donut:after{
  background:#f9fcfd!important;
  border-color:#cedfe5!important;
}
html[data-theme="light"] .portfolio-allocation-card .legend-row:hover{
  background:#eaf4f7!important;
}
html[data-theme="light"] .portfolio-allocation-card .legend-row span:last-child{
  color:#365362!important;
}

@media(max-width:1180px){
  .dashboard .top-grid{
    grid-template-columns:1fr!important;
  }
  .dashboard .top-grid>.t212-account-card,
  .dashboard .top-grid>.top-calendar-stack{
    grid-column:1!important;
  }
  .dashboard .top-grid>.top-calendar-stack,
  .dashboard .top-grid>.top-calendar-stack>.overview-calendar-card{
    height:auto!important;
    min-height:360px!important;
  }
}
@media(max-width:1000px){
  .portfolio-allocation-grid{grid-template-columns:1fr!important}
  .portfolio-allocation-card .allocation-col{min-height:280px}
}
@media(max-width:620px){
  .portfolio-allocation-card{padding:0 10px 12px!important}
  .portfolio-allocation-card .allocation-col{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto auto!important;
    padding:15px 14px!important;
  }
  .portfolio-allocation-card .allocation-col>h2,
  .portfolio-allocation-card .donut-wrap,
  .portfolio-allocation-card .legend{
    grid-column:1!important;
  }
  .portfolio-allocation-card .donut-wrap{grid-row:2!important;min-height:205px}
  .portfolio-allocation-card .legend{grid-row:3!important;margin-top:8px!important}
  .overview-calendar-card .calendar-item{
    grid-template-columns:32px minmax(0,1fr)!important;
  }
  .overview-calendar-card .overview-calendar-side,
  .overview-calendar-card .calendar-item>strong{
    grid-column:2!important;
    justify-self:start!important;
    text-align:left!important;
    max-width:none!important;
  }
}


/* =========================================================
   Finora v0.11.07 — exact 50/50 Overview split
   ========================================================= */
@media(min-width:1181px){
  .dashboard .top-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;}
  .dashboard .top-grid>.t212-account-card,
  .dashboard .top-grid>.top-calendar-stack{width:100%!important;min-width:0!important;}
}


/* =========================================================
   Finora v0.11.08 — account chart inspection + balanced overview
   ========================================================= */
@media(min-width:1181px){
  .dashboard .top-grid{grid-template-columns:minmax(0,3fr) minmax(330px,2fr)!important;}
}
.finora-greeting{display:flex;align-items:center;min-width:0}
.finora-greeting h1{margin:0!important;font-size:22px!important;line-height:1.15;font-weight:760;letter-spacing:-.35px;color:var(--text);white-space:nowrap}
.t212-account-chart{position:relative!important;overflow:visible!important;}
.t212-value-grid{stroke:#183747;stroke-width:1;stroke-dasharray:3 5;opacity:.58;vector-effect:non-scaling-stroke}
.t212-value-label{fill:#8ca3b0;font-size:10.5px;font-weight:650;letter-spacing:-.12px}
.account-hover-line{stroke:#7892a0;stroke-width:1;stroke-dasharray:4 4;opacity:.75;vector-effect:non-scaling-stroke;pointer-events:none}
.account-hover-dot{fill:#178cff;stroke:#effaff;stroke-width:2.2;filter:drop-shadow(0 0 6px #158dff88);vector-effect:non-scaling-stroke;pointer-events:none}
.account-hover-tooltip{position:absolute;z-index:12;width:238px;min-height:138px;padding:16px 18px 14px;border:1px solid #4c6c82;border-radius:14px;background:linear-gradient(150deg,rgba(24,43,59,.97),rgba(9,24,36,.985));box-shadow:0 18px 42px #0009,inset 0 1px 0 #ffffff19;color:#eaf4f8;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .12s ease,transform .12s ease;backdrop-filter:blur(12px)}
.account-hover-tooltip.show{opacity:1;transform:translateY(0)}
.account-hover-tooltip::after{content:"";position:absolute;width:15px;height:15px;background:#172f40;border:1px solid #4c6c82;transform:rotate(45deg);box-shadow:none}
.account-hover-tooltip.side-right.vert-below::after{left:-8px;top:18px;border-top:0;border-right:0}
.account-hover-tooltip.side-right.vert-above::after{left:-8px;bottom:18px;border-top:0;border-right:0}
.account-hover-tooltip.side-left.vert-below::after{right:-8px;top:18px;border-bottom:0;border-left:0}
.account-hover-tooltip.side-left.vert-above::after{right:-8px;bottom:18px;border-bottom:0;border-left:0}
.account-hover-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:750;color:#d8e5eb}.account-hover-title i{width:10px;height:10px;border-radius:50%;background:#178cff;box-shadow:0 0 12px #178cff88}
.account-hover-tooltip>strong{display:block;margin-top:7px;font-size:22px;line-height:1.08;letter-spacing:-.45px;color:#fff}
.account-hover-sep{height:1px;background:#ffffff25;margin:12px 0 9px}.account-hover-tooltip>small{display:block;color:#b9c9d1;font-size:10px;margin-bottom:3px}.account-hover-tooltip>b{font-size:16px}.account-hover-date{border-top:1px solid #ffffff1a;margin-top:10px;padding-top:9px;color:#bdcbd2;font-size:11px;font-weight:650;white-space:nowrap}
html[data-theme="light"] .t212-value-grid{stroke:#c8d9e1;opacity:.85}html[data-theme="light"] .t212-value-label{fill:#607986}
html[data-theme="light"] .account-hover-line{stroke:#7895a3;opacity:.72}html[data-theme="light"] .account-hover-tooltip{background:linear-gradient(150deg,rgba(255,255,255,.98),rgba(240,248,251,.99));border-color:#a9c4d0;color:#18313e;box-shadow:0 16px 36px #17394a28,inset 0 1px 0 #fff}html[data-theme="light"] .account-hover-tooltip::after{background:#f5fafc;border-color:#a9c4d0}html[data-theme="light"] .account-hover-title{color:#35515f}html[data-theme="light"] .account-hover-tooltip>strong{color:#102a38}html[data-theme="light"] .account-hover-tooltip>small,html[data-theme="light"] .account-hover-date{color:#58727e}html[data-theme="light"] .account-hover-sep,html[data-theme="light"] .account-hover-date{border-color:#cddde4}
@media(max-width:1180px){.finora-greeting h1{font-size:19px!important}.account-hover-tooltip{width:220px}}
@media(max-width:720px){.finora-greeting{display:none}.t212-value-label{font-size:9px}.account-hover-tooltip{width:205px;padding:13px 14px}.account-hover-tooltip>strong{font-size:18px}}


/* =========================================================
   Finora v0.11.09 — exact 50/50 overview, stable chart tooltip,
   benchmark fitted to the KPI card
   ========================================================= */
@media(min-width:1181px){
  .dashboard .top-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;}
  .dashboard .top-grid>.t212-account-card,
  .dashboard .top-grid>.top-calendar-stack{width:100%!important;min-width:0!important;}
}

/* Keep the account hover card on one fixed vertical rail. It moves only X. */
.account-hover-tooltip{
  transform:none!important;
  transition:opacity .10s ease!important;
}
.account-hover-tooltip.show{transform:none!important;}
.account-hover-tooltip::after{top:28px!important;bottom:auto!important;}
.account-hover-tooltip.side-right::after{
  left:-8px!important;right:auto!important;
  border-top:0!important;border-right:0!important;border-bottom:1px solid #4c6c82!important;border-left:1px solid #4c6c82!important;
}
.account-hover-tooltip.side-left::after{
  right:-8px!important;left:auto!important;
  border-bottom:0!important;border-left:0!important;border-top:1px solid #4c6c82!important;border-right:1px solid #4c6c82!important;
}
html[data-theme="light"] .account-hover-tooltip.side-right::after{border-bottom-color:#a9c4d0!important;border-left-color:#a9c4d0!important;}
html[data-theme="light"] .account-hover-tooltip.side-left::after{border-top-color:#a9c4d0!important;border-right-color:#a9c4d0!important;}

/* Fit both benchmark rows fully inside the fixed-height KPI card. */
.performance-kpi{
  display:flex!important;flex-direction:column!important;
  justify-content:flex-start!important;overflow:hidden!important;
  padding:7px 9px 6px!important;
}
.performance-kpi .performance-kpi-head{
  flex:0 0 auto!important;min-height:21px!important;
  grid-template-columns:minmax(0,1fr) 16px!important;gap:4px!important;
}
.performance-kpi .performance-kpi-head label{font-size:8.8px!important;line-height:1.08!important;}
.performance-kpi .performance-bars{
  flex:0 0 auto!important;display:grid!important;grid-template-rows:auto auto!important;
  gap:3px!important;margin-top:2px!important;overflow:visible!important;min-height:49px!important;
}
.performance-kpi .performance-bar-row{display:block!important;visibility:visible!important;min-height:22px!important;}
.performance-kpi .performance-bar-row>div{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  gap:4px!important;margin-bottom:1px!important;align-items:center!important;
}
.performance-kpi .performance-bar-row span{font-size:7.15px!important;line-height:1!important;min-width:0!important;}
.performance-kpi .performance-bar-row strong{font-size:8.1px!important;line-height:1!important;}
.performance-kpi .performance-bar-row i{
  display:block!important;width:100%!important;height:6px!important;min-height:6px!important;
  overflow:hidden!important;visibility:visible!important;
}
.performance-kpi .performance-bar-row.benchmark i{height:8px!important;min-height:8px!important;}
.performance-kpi .performance-bar-row.benchmark i b{display:block!important;visibility:visible!important;background:#16aeef!important;}
.performance-kpi .performance-relative{
  flex:0 0 auto!important;margin-top:2px!important;font-size:6.4px!important;line-height:1!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}

/* =========================================================
   Finora v0.11.10 — Crypto market page (public live EUR data)
   ========================================================= */
.crypto-nav-item .crypto-nav-glyph{font-size:16px;font-weight:850;line-height:1;color:#f6b84a}
.crypto-page{max-width:none!important}
.crypto-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px;padding:20px 22px;border:1px solid #244659;border-radius:18px;background:radial-gradient(circle at 82% 15%,#12668b24 0,transparent 31%),linear-gradient(135deg,#0b2534,#081a26 64%,#071620);box-shadow:inset 0 1px 0 #ffffff0b}
.crypto-kicker{display:inline-flex;align-items:center;gap:8px;color:#6fd5ff;font-size:10px;font-weight:850;letter-spacing:1.35px}.crypto-kicker i{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#123e55;color:#ffc45b;font-style:normal;font-size:14px}
.crypto-hero h2{margin:5px 0 4px;font-size:27px;letter-spacing:-.5px}.crypto-hero p{margin:0;color:#91a8b4;font-size:12.5px;max-width:680px}
.crypto-live-status{min-width:250px;display:flex;align-items:center;gap:11px;padding:12px 15px;border:1px solid #245064;border-radius:13px;background:#0a1b26b8}.crypto-live-status>i{width:11px;height:11px;border-radius:50%;background:#738b97;box-shadow:0 0 0 4px #738b9716}.crypto-live-status.live>i{background:#34dc86;box-shadow:0 0 0 4px #34dc861c,0 0 18px #34dc8670}.crypto-live-status.fallback>i{background:#ffbd55;box-shadow:0 0 0 4px #ffbd551b}.crypto-live-status.offline>i{background:#e56f7b}.crypto-live-status.loading>i{background:#55c9f7;animation:cryptoPulse 1.2s ease-in-out infinite}.crypto-live-status div{display:flex;flex-direction:column;gap:2px}.crypto-live-status strong{font-size:12px}.crypto-live-status small{font-size:9.5px;color:#87a0ad}
@keyframes cryptoPulse{50%{opacity:.35;transform:scale(.78)}}
.crypto-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:18px 2px 10px}.crypto-section-head>div>span{display:block;color:#64c9f2;font-size:9px;font-weight:850;letter-spacing:1.2px;margin-bottom:3px}.crypto-section-head h3{margin:0;font-size:19px;letter-spacing:-.3px}.crypto-section-head>small{color:#7f98a5;font-size:10px}.crypto-more-head{margin-top:28px}
.crypto-primary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;min-height:170px}.crypto-card{position:relative;min-width:0;padding:15px 15px 12px;border:1px solid #264554;border-radius:16px;background:linear-gradient(155deg,#0d2532,#091c28);overflow:hidden;box-shadow:inset 0 1px 0 #ffffff09}.crypto-card::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:#57717e}.crypto-card.up::before{background:linear-gradient(90deg,#1bd377,#53efae)}.crypto-card.down::before{background:linear-gradient(90deg,#f05d6f,#ff8b8b)}.crypto-card.up{border-color:#225541}.crypto-card.down{border-color:#58303a}
.crypto-card-top{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center}.crypto-logo{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#eef2f5;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff4a}.crypto-logo img{display:block;max-width:31px;max-height:31px;width:auto;height:auto;object-fit:contain}.crypto-logo span{font-size:14px;font-weight:900;color:#162b36}.crypto-logo-btc{background:#f7931a}.crypto-logo-btc img{max-width:34px;max-height:34px}.crypto-logo-btc span{font-size:25px;color:#fff}.crypto-logo-eth img,.crypto-logo-xrp img{filter:none}.crypto-card-name{min-width:0;display:flex;flex-direction:column;gap:2px}.crypto-card-name strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crypto-card-name span{font-size:9.5px;color:#7894a2;font-weight:700}.crypto-source{display:flex;align-items:center;gap:4px;color:#718b97;font-size:8px;font-weight:700;white-space:nowrap}.crypto-source i{width:5px;height:5px;border-radius:50%;background:#44d98d}
.crypto-price-row{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin:15px 0 7px}.crypto-price-row>strong{font-size:20px;line-height:1;font-weight:820;letter-spacing:-.45px;white-space:nowrap}.crypto-change{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border-radius:8px;font-size:10px;font-weight:820;white-space:nowrap}.crypto-change.up{color:#46e498;background:#143d2b}.crypto-change.down{color:#ff7c89;background:#3e1f27}.crypto-change.flat{color:#a0b2ba;background:#1a2b34}
.crypto-spark-host{height:58px;margin:5px -2px 5px}.crypto-spark{display:block;width:100%;height:100%;overflow:visible}.crypto-spark-line{fill:none;stroke:#8ca4b0;stroke-width:1.7;vector-effect:non-scaling-stroke}.crypto-spark-area{fill:#8ca4b010}.crypto-spark.up .crypto-spark-line{stroke:#39d78b}.crypto-spark.up .crypto-spark-area{fill:#39d78b14}.crypto-spark.down .crypto-spark-line{stroke:#f06675}.crypto-spark.down .crypto-spark-area{fill:#f0667515}.crypto-spark-empty{height:100%;display:grid;place-items:center;color:#627d89;font-size:9px}.crypto-card-foot{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #ffffff0b;padding-top:8px;color:#698490;font-size:8px}.crypto-card-foot b{color:#a9bdc6;font-weight:700}
.crypto-secondary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.crypto-mini-card{min-width:0;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(105px,.9fr);grid-template-rows:auto 44px;gap:7px 10px;padding:12px 13px;border:1px solid #203e4d;border-radius:14px;background:#091b26}.crypto-mini-ident{display:flex;align-items:center;gap:9px;min-width:0}.crypto-mini-ident .crypto-logo{width:32px;height:32px;border-radius:10px;background:#102f40;color:#6bd0f6}.crypto-mini-ident .crypto-logo span{font-size:10px;color:#71d0f4}.crypto-mini-ident>div{min-width:0}.crypto-mini-ident strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crypto-mini-ident span{display:block;margin-top:2px;color:#6d8895;font-size:8.5px}.crypto-mini-price{text-align:right;min-width:0}.crypto-mini-price>strong{display:block;font-size:12.5px;white-space:nowrap}.crypto-mini-price .crypto-change{margin-top:4px;font-size:8.5px;padding:3px 6px}.crypto-mini-spark{grid-column:1/-1;height:44px}.crypto-mini-spark .crypto-spark{height:44px}
.crypto-loading{grid-column:1/-1;min-height:165px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;border:1px dashed #294b5d;border-radius:16px;color:#91aab5;background:#091b255c}.crypto-loading>i{width:26px;height:26px;border:2px solid #1d536d;border-top-color:#60cdf8;border-radius:50%;animation:spin .8s linear infinite}.crypto-loading strong{font-size:13px}.crypto-loading span{font-size:10px;color:#718b98}.crypto-loading.crypto-error button{margin-top:6px}
.crypto-source-note{display:flex;gap:10px;align-items:flex-start;margin-top:18px;padding:12px 14px;border:1px solid #1d3d4d;border-radius:13px;background:#081922;color:#7894a1}.crypto-source-note>span{flex:0 0 auto;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#10364a;color:#69cef6;font-weight:800;font-size:10px}.crypto-source-note p{margin:0;font-size:9.5px;line-height:1.55}.crypto-source-note strong{color:#a9c0ca}
html[data-theme="light"] .crypto-hero{border-color:#bfd3dc;background:radial-gradient(circle at 82% 15%,#4ac6f31c 0,transparent 31%),linear-gradient(135deg,#f8fcfd,#eef6f9)}html[data-theme="light"] .crypto-hero p,html[data-theme="light"] .crypto-section-head>small{color:#607a87}html[data-theme="light"] .crypto-live-status{background:#fff;border-color:#bed4de}html[data-theme="light"] .crypto-live-status small{color:#6f8792}
html[data-theme="light"] .crypto-card{background:linear-gradient(155deg,#fff,#f4f9fb);border-color:#c8d9e0;box-shadow:0 7px 20px #17394a0c}html[data-theme="light"] .crypto-card.up{border-color:#abd9c4}html[data-theme="light"] .crypto-card.down{border-color:#e2bbc1}html[data-theme="light"] .crypto-card-name span,html[data-theme="light"] .crypto-source{color:#6b838e}html[data-theme="light"] .crypto-change.up{background:#ddf7e9;color:#12844c}html[data-theme="light"] .crypto-change.down{background:#fde8eb;color:#be3445}html[data-theme="light"] .crypto-change.flat{background:#e9f0f3;color:#536c77}html[data-theme="light"] .crypto-card-foot{border-color:#dce8ed;color:#708793}html[data-theme="light"] .crypto-card-foot b{color:#405c68}
html[data-theme="light"] .crypto-mini-card{background:#fff;border-color:#c9dce4}html[data-theme="light"] .crypto-mini-ident .crypto-logo{background:#eaf5f9}html[data-theme="light"] .crypto-loading{background:#f7fbfc;border-color:#bdd5df;color:#496572}html[data-theme="light"] .crypto-source-note{background:#f2f8fa;border-color:#c5dce4;color:#627d88}html[data-theme="light"] .crypto-source-note strong{color:#294954}
@media(max-width:1450px){.crypto-primary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crypto-secondary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:950px){.crypto-hero{align-items:flex-start;flex-direction:column}.crypto-live-status{width:100%;min-width:0}.crypto-secondary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.crypto-primary-grid,.crypto-secondary-grid{grid-template-columns:1fr}.crypto-section-head{align-items:flex-start;flex-direction:column}.crypto-mini-card{grid-template-columns:minmax(0,1fr) auto}.crypto-price-row>strong{font-size:18px}}

/* =========================================================
   Finora v0.11.11 — stable account hover + cleaner crypto UI
   ========================================================= */
/* The crypto navigation glyph follows the exact same neutral menu language
   as every other sidebar icon. */
.crypto-nav-item .crypto-nav-glyph{
  color:#d9e3e8!important;
  font-size:20px!important;
  font-weight:500!important;
}
.crypto-nav-item.active .crypto-nav-glyph{color:#20bafc!important;}
html[data-theme="light"] .crypto-nav-item .crypto-nav-glyph{color:#55707e!important;}
html[data-theme="light"] .crypto-nav-item.active .crypto-nav-glyph{color:#0a91c8!important;}

/* Calm blue section shells make My crypto / More crypto read like the other
   structured Finora sections without adding performance colour to the shell. */
.crypto-market-section{
  margin:16px 0 0;
  padding:0 14px 15px;
  border:1px solid #24485a;
  border-radius:17px;
  background:linear-gradient(160deg,#0a202d 0%,#081a25 70%,#071721 100%);
  box-shadow:inset 0 1px 0 #ffffff08;
  overflow:hidden;
}
.crypto-market-section .crypto-section-head{
  margin:0 -14px 14px;
  padding:12px 15px 11px 18px;
  align-items:center;
  border-bottom:1px solid #2a5367;
  background:linear-gradient(90deg,#103d53 0%,#0d3143 48%,#0a2533 100%);
  box-shadow:inset 4px 0 0 #55c9f7;
}
.crypto-market-section .crypto-section-head>div>span{color:#72cdec!important;}
.crypto-market-section .crypto-section-head h3{font-size:17px;}
.crypto-market-section .crypto-section-head>small{color:#9ab1bc!important;}
.crypto-more-section{margin-top:17px;}
.crypto-more-section .crypto-more-head{margin-top:0;}

/* Performance colour belongs only to the +/- change badge. Cards and charts
   stay neutral Finora blue so the page remains clean and consistent. */
.crypto-card::before{display:none!important;content:none!important;}
.crypto-card,
.crypto-card.up,
.crypto-card.down{border-color:#264554!important;}
.crypto-spark.up .crypto-spark-line,
.crypto-spark.down .crypto-spark-line,
.crypto-spark.flat .crypto-spark-line{stroke:#41bff0!important;}
.crypto-spark.up .crypto-spark-area,
.crypto-spark.down .crypto-spark-area,
.crypto-spark.flat .crypto-spark-area{fill:#2baeea12!important;}
html[data-theme="light"] .crypto-card,
html[data-theme="light"] .crypto-card.up,
html[data-theme="light"] .crypto-card.down{border-color:#c8d9e0!important;}
html[data-theme="light"] .crypto-market-section{
  border-color:#c4d9e2;
  background:linear-gradient(160deg,#f8fcfd,#f0f7fa);
  box-shadow:0 7px 20px #17394a0b,inset 0 1px 0 #fff;
}
html[data-theme="light"] .crypto-market-section .crypto-section-head{
  border-bottom-color:#b9d9e6;
  background:linear-gradient(90deg,#dff4fc 0%,#eaf7fb 56%,#f4fbfd 100%);
  box-shadow:inset 4px 0 0 #37aeda;
}
html[data-theme="light"] .crypto-market-section .crypto-section-head h3{color:#193846;}
html[data-theme="light"] .crypto-market-section .crypto-section-head>div>span{color:#2b8db5!important;}
html[data-theme="light"] .crypto-market-section .crypto-section-head>small{color:#607a87!important;}

/* No hover fade-in/out: once the pointer is inside the account chart, the
   tooltip remains visually solid while only X changes. */
.account-hover-tooltip{transition:none!important;}

@media(max-width:650px){
  .crypto-market-section{padding:0 10px 12px;}
  .crypto-market-section .crypto-section-head{margin:0 -10px 12px;padding:11px 12px 10px 15px;}
}

/* =========================================================
   Finora v0.11.12 — full-width Finora AI analysis dashboard
   ========================================================= */
.ai-top-btn{
  border-color:#1a8c57!important;
  background:linear-gradient(135deg,#0f7a49 0%,#11955a 52%,#0d6f43 100%)!important;
  color:#f5fff9!important;
  box-shadow:0 8px 24px #0a8b4f2e,inset 0 1px 0 #ffffff24!important;
}
.ai-top-btn span{color:#d8ffea!important;}
.ai-top-btn:hover{border-color:#3ad486!important;background:linear-gradient(135deg,#108955,#13a565 52%,#0f7b4b 100%)!important;}
html[data-theme="light"] .ai-top-btn{border-color:#42ad79!important;background:linear-gradient(135deg,#daf6e8,#c9efdc)!important;color:#12683f!important;box-shadow:0 6px 18px #1a865520!important;}
html[data-theme="light"] .ai-top-btn span{color:#168752!important;}

.analysis-page{max-width:1600px!important;margin:0 auto 70px!important;min-height:calc(100vh - 100px);}
.analysis-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:4px 0 15px;}
.analysis-page-head>div:first-child{max-width:860px;}
.analysis-eyebrow{display:block;color:#55c9f7;font-size:9px;font-weight:900;letter-spacing:1.7px;margin-bottom:5px;}
.analysis-page-head h2{margin:0;font-size:29px;letter-spacing:-.75px;}
.analysis-page-head p{margin:6px 0 0;color:#879da8;font-size:11px;line-height:1.55;}
.analysis-head-actions{display:flex;align-items:center;gap:9px;}
.analysis-status-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #345461;background:#10252e;color:#9ab0ba;border-radius:999px;padding:6px 10px;font-size:9px;font-weight:800;white-space:nowrap;}
.analysis-status-pill.ready{border-color:#24714b;background:#113326;color:#4cdd8d;}.analysis-status-pill.working{border-color:#2a6680;background:#0d2e3d;color:#67d1f7;}.analysis-status-pill.error{border-color:#7c3943;background:#351b21;color:#ff8d98;}
.analysis-back-btn{font-size:10px!important;padding:8px 11px!important;}

.analysis-control-card{display:grid;grid-template-columns:minmax(210px,.75fr) minmax(420px,1.8fr) auto;gap:15px;align-items:center;padding:14px 15px;margin-bottom:13px;}
.analysis-control-copy strong{display:block;font-size:12px;}.analysis-control-copy small{display:block;margin-top:4px;color:#7f96a1;font-size:9px;line-height:1.45;}
.analysis-control-card textarea{width:100%;min-height:48px;max-height:96px;resize:vertical;border:1px solid #284b5d;border-radius:10px;background:#071b26;color:#dce9ee;padding:10px 11px;font-size:10.5px;line-height:1.45;outline:none;}
.analysis-control-card textarea:focus{border-color:#2c9dcc;box-shadow:0 0 0 3px #1aa9e817;}
.analysis-run-btn{height:44px;border:1px solid #20925b;border-radius:10px;background:linear-gradient(135deg,#0f7d4a,#11a061);color:white;padding:0 16px;font-size:10px;font-weight:850;cursor:pointer;white-space:nowrap;box-shadow:0 7px 20px #0e89502c;}
.analysis-run-btn span{font-size:15px;margin-right:6px;}.analysis-run-btn:disabled{opacity:.58;cursor:wait;}

.analysis-result-shell{min-height:420px;}
.analysis-empty-state{min-height:390px;border:1px dashed #294b5c;border-radius:18px;background:linear-gradient(150deg,#091d28,#071720);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:40px;}
.analysis-empty-orb{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;margin-bottom:14px;font-size:24px;color:#dff7ff;background:radial-gradient(circle at 30% 25%,#70dcff,#1588dd 45%,#754ade);box-shadow:0 0 34px #249ffb38;}
.analysis-empty-state strong{font-size:17px;}.analysis-empty-state p{max-width:610px;margin:8px 0 0;color:#7f96a1;font-size:10.5px;line-height:1.55;}.analysis-error-state .analysis-empty-orb{background:linear-gradient(145deg,#7a3340,#b64b5b);}
.analysis-empty-small{padding:18px;color:#78909e;font-size:10px;}

.analysis-summary-card{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,.55fr);gap:18px;padding:19px 20px;margin-bottom:13px;background:radial-gradient(circle at 86% 15%,#34bbf21d 0,transparent 30%),linear-gradient(145deg,#0d2634,#091b27 70%);}
.analysis-summary-main>small{display:block;margin-top:8px;color:#78909e;font-size:8.5px;}.analysis-summary-main h3{margin:6px 0 7px;font-size:20px;letter-spacing:-.45px;}.analysis-summary-main p{margin:0;max-width:970px;color:#a4b6be;font-size:11px;line-height:1.58;}
.analysis-stance{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:850;background:#17303a;color:#a8bdc5;border:1px solid #38515b;}.analysis-stance.positive{background:#143527;color:#4ede93;border-color:#246f49}.analysis-stance.negative{background:#3a2025;color:#ff8792;border-color:#77404a}.analysis-stance.neutral{background:#143044;color:#6bcaf2;border-color:#2a6782}
.analysis-summary-signal{min-height:118px;border:1px solid #244758;border-radius:14px;background:#081a24;padding:16px;display:flex;justify-content:center;flex-direction:column;}.analysis-summary-signal>span{color:#73909d;font-size:8.5px;text-transform:uppercase;letter-spacing:.8px;font-weight:800}.analysis-summary-signal>strong{font-size:23px;margin:7px 0 5px}.analysis-summary-signal>small{color:#7d929c;font-size:8.5px;line-height:1.4;}

.analysis-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;margin-bottom:13px;}.analysis-kpi{min-width:0;padding:13px 14px;min-height:92px;background:linear-gradient(160deg,#0c2230,#091a26);}.analysis-kpi>span{display:block;color:#8298a3;font-size:8.5px;}.analysis-kpi>strong{display:block;margin:7px 0 5px;font-size:17px;letter-spacing:-.25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.analysis-kpi>small{display:block;color:#6c8590;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.analysis-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:13px;}.analysis-chart-card{min-height:320px;padding-bottom:14px;}.analysis-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:15px 16px 10px;border-bottom:1px solid #173746;}.analysis-section-head>div>span{display:block;color:#55b9df;font-size:7.5px;font-weight:900;letter-spacing:1.05px;margin-bottom:3px;}.analysis-section-head h3{margin:0;font-size:14px;}.analysis-section-head>small{color:#6f8792;font-size:8px;margin-top:4px;white-space:nowrap;}
.analysis-bars,.analysis-allocation{padding:10px 15px 0;}.analysis-bar-row{display:grid;grid-template-columns:minmax(170px,.85fr) minmax(190px,1.15fr);gap:14px;align-items:center;padding:7px 0;border-top:1px solid #152f3c;}.analysis-bar-row:first-child{border-top:0;}.analysis-bar-copy{display:grid;grid-template-columns:25px auto 1fr;align-items:center;gap:7px;min-width:0;}.analysis-bar-copy>span{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:#102c3a;color:#6bbfe0;font-size:7.5px;font-weight:850;}.analysis-bar-copy strong{font-size:10px;}.analysis-bar-copy small{color:#6e8792;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.analysis-bar-value{display:grid;grid-template-columns:48px 1fr;gap:8px;align-items:center;}.analysis-bar-value>b{font-size:9px;text-align:right;}.analysis-bar-value>i{height:7px;border-radius:999px;background:#122d3a;overflow:hidden;}.analysis-bar-value>i>em{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#188bc3,#47c7f3);}
.analysis-allocation-row{display:grid;grid-template-columns:minmax(170px,1fr) 47px minmax(130px,.8fr);gap:9px;align-items:center;padding:8px 0;border-top:1px solid #152f3c;}.analysis-allocation-row:first-child{border-top:0;}.analysis-allocation-row>span{display:flex;align-items:center;gap:7px;font-size:9.5px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.analysis-allocation-row>span>i{flex:0 0 auto;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;background:#102b39;color:#63bce0;font-style:normal;font-size:7px;}.analysis-allocation-row>strong{font-size:9px;text-align:right;}.analysis-allocation-row>b{height:6px;border-radius:999px;background:#122d3a;overflow:hidden;}.analysis-allocation-row>b>em{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#197fae,#55c7ef);}
.analysis-return-columns{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:10px 15px 0;}.analysis-return-columns section{min-width:0;border:1px solid #1d3947;border-radius:11px;padding:8px 10px;background:#081a24;}.analysis-return-columns h4{margin:1px 0 5px;color:#8da3ad;font-size:9px;}.analysis-return-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 0;border-top:1px solid #16313e;}.analysis-return-row:first-of-type{border-top:0;}.analysis-return-row>span{width:19px;height:19px;border-radius:6px;background:#102b39;color:#5db9dc;display:grid;place-items:center;font-size:7px;}.analysis-return-row>div{min-width:0;}.analysis-return-row strong{display:block;font-size:9px;}.analysis-return-row small{display:block;margin-top:2px;color:#6c828d;font-size:7.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.analysis-return-row>b{font-size:9.5px;}

.analysis-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:13px;}.analysis-story-card{padding-bottom:12px;}.analysis-insight-list{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:11px 13px 0;}.analysis-insight{display:grid;grid-template-columns:29px 1fr;gap:9px;padding:10px;border:1px solid #1e3946;border-radius:11px;background:#081a24;}.analysis-insight>span{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#102b39;color:#60c2e8;font-size:11px;font-weight:900;}.analysis-insight.positive>span{background:#123426;color:#47da8d;}.analysis-insight.negative>span{background:#392027;color:#ff808c;}.analysis-insight strong{display:block;font-size:9.5px;}.analysis-insight p{margin:4px 0 0;color:#8299a4;font-size:8.5px;line-height:1.45;}

.analysis-bottom-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(330px,.6fr);gap:13px;margin-bottom:13px;}.analysis-actions-card,.analysis-watch-card{padding-bottom:13px;}.analysis-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:11px 13px 0;}.analysis-action-card{display:grid;grid-template-columns:32px 1fr;gap:10px;padding:11px;border:1px solid #1f3c4a;border-radius:11px;background:#081b25;}.analysis-action-card>span{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#103147;color:#63c8ef;font-size:8px;font-weight:900;}.analysis-action-card.high>span{background:#3a2522;color:#ffae76;}.analysis-action-card.low>span{background:#143326;color:#5cdb96;}.analysis-action-card small{display:block;color:#6f8b97;font-size:7px;text-transform:uppercase;letter-spacing:.5px;}.analysis-action-card strong{display:block;margin-top:3px;font-size:9.5px;}.analysis-action-card p{margin:4px 0 0;color:#829aa4;font-size:8.5px;line-height:1.45;}
.analysis-watch-list{padding:9px 13px 0;}.analysis-watch-row{display:grid;grid-template-columns:58px 1fr;gap:10px;padding:9px 2px;border-top:1px solid #173441;align-items:start;}.analysis-watch-row:first-child{border-top:0;}.analysis-watch-row strong{color:#62c5ec;font-size:9.5px;}.analysis-watch-row span{color:#859ba5;font-size:8.5px;line-height:1.42;}.analysis-conclusion{margin:10px 13px 0;padding:11px 12px;border:1px solid #245064;border-radius:11px;background:linear-gradient(135deg,#0d3041,#0a2432);}.analysis-conclusion>span{display:block;color:#55c6f1;font-size:7.5px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;}.analysis-conclusion p{margin:5px 0 0;color:#a5b8c0;font-size:9px;line-height:1.5;}
.analysis-method-note{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border:1px solid #1d3c4b;border-radius:12px;background:#081922;color:#738e9a;}.analysis-method-note>span{flex:0 0 auto;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#10364a;color:#69cef6;font-size:9px;font-weight:850;}.analysis-method-note p{margin:0;font-size:8.5px;line-height:1.5;}.analysis-method-note strong{color:#9eb6c0;}

.analysis-loading{min-height:390px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:30px;}.analysis-loader-visual{position:relative;width:min(560px,82%);height:150px;margin-bottom:12px;border:1px solid #1d4254;border-radius:15px;background:linear-gradient(180deg,#0a2330,#071923);overflow:hidden;}.analysis-loader-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px);background-size:100% 30px,55px 100%;}.analysis-loader-visual>i{position:absolute;bottom:18px;width:18px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,#36c6f2,#1379b0);opacity:.7;animation:analysisPulse 1.2s ease-in-out infinite alternate;}.analysis-loader-visual>i:nth-child(1){left:12%;height:42px}.analysis-loader-visual>i:nth-child(2){left:27%;height:72px;animation-delay:.15s}.analysis-loader-visual>i:nth-child(3){left:44%;height:55px;animation-delay:.3s}.analysis-loader-visual>i:nth-child(4){left:62%;height:92px;animation-delay:.45s}.analysis-loader-visual>i:nth-child(5){left:81%;height:112px;animation-delay:.6s}.analysis-loader-visual svg{position:absolute;inset:13px 10px 12px;width:calc(100% - 20px);height:calc(100% - 25px);}.analysis-loader-visual path{fill:none;stroke:#63d1f7;stroke-width:3;stroke-linecap:round;stroke-dasharray:700;stroke-dashoffset:700;filter:drop-shadow(0 0 5px #3fc8ff88);animation:analysisDraw 1.8s ease-in-out infinite;}.analysis-loading>strong{font-size:15px}.analysis-loading>span{margin-top:5px;color:#78929e;font-size:9.5px;}
@keyframes analysisPulse{from{opacity:.28;transform:scaleY(.72);transform-origin:bottom}to{opacity:.82;transform:scaleY(1)}}
@keyframes analysisDraw{0%{stroke-dashoffset:700;opacity:.35}55%,85%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:.25}}

html[data-theme="light"] .analysis-page-head p{color:#617a86;}html[data-theme="light"] .analysis-status-pill{background:#f7fbfc;border-color:#c8dae2;color:#5d737d;}html[data-theme="light"] .analysis-status-pill.ready{background:#e5f8ed;border-color:#abd9be;color:#17784a;}html[data-theme="light"] .analysis-status-pill.working{background:#e7f5fb;border-color:#b8dce9;color:#167eaa;}html[data-theme="light"] .analysis-control-card textarea{background:#fff;border-color:#c7dbe4;color:#294853;}html[data-theme="light"] .analysis-control-copy small{color:#677f8a;}
html[data-theme="light"] .analysis-empty-state{background:linear-gradient(150deg,#fbfdfe,#f1f7f9);border-color:#bfd4dd;}html[data-theme="light"] .analysis-empty-state p{color:#667e89;}html[data-theme="light"] .analysis-summary-card{background:radial-gradient(circle at 86% 15%,#35baf21b 0,transparent 31%),linear-gradient(145deg,#fff,#f1f8fa);border-color:#c6dbe3;}html[data-theme="light"] .analysis-summary-main p{color:#526d79;}html[data-theme="light"] .analysis-summary-signal,html[data-theme="light"] .analysis-return-columns section,html[data-theme="light"] .analysis-insight,html[data-theme="light"] .analysis-action-card{background:#f7fbfc;border-color:#c9dce4;}html[data-theme="light"] .analysis-summary-signal>small,html[data-theme="light"] .analysis-insight p,html[data-theme="light"] .analysis-action-card p,html[data-theme="light"] .analysis-watch-row span{color:#627b86;}html[data-theme="light"] .analysis-kpi{background:linear-gradient(160deg,#fff,#f5fafc);border-color:#c8dce4;}html[data-theme="light"] .analysis-section-head{border-color:#d5e4ea;}html[data-theme="light"] .analysis-bar-row,html[data-theme="light"] .analysis-allocation-row,html[data-theme="light"] .analysis-return-row,html[data-theme="light"] .analysis-watch-row{border-color:#d9e6eb;}html[data-theme="light"] .analysis-bar-value>i,html[data-theme="light"] .analysis-allocation-row>b{background:#e2edf1;}html[data-theme="light"] .analysis-conclusion{background:linear-gradient(135deg,#e6f5fb,#f3fafc);border-color:#b8dae7;}html[data-theme="light"] .analysis-conclusion p{color:#4d6975;}html[data-theme="light"] .analysis-method-note{background:#f2f8fa;border-color:#c5dce4;color:#607a86;}html[data-theme="light"] .analysis-method-note strong{color:#335563;}html[data-theme="light"] .analysis-loading{background:#fff;}html[data-theme="light"] .analysis-loader-visual{background:linear-gradient(180deg,#f7fbfc,#eaf4f7);border-color:#bdd8e2;}

@media(max-width:1400px){.analysis-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.analysis-control-card{grid-template-columns:minmax(190px,.7fr) minmax(340px,1.5fr) auto;}}
@media(max-width:1050px){.analysis-control-card{grid-template-columns:1fr}.analysis-run-btn{width:100%}.analysis-summary-card{grid-template-columns:1fr}.analysis-chart-grid,.analysis-story-grid,.analysis-bottom-grid{grid-template-columns:1fr}.analysis-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-page-head{align-items:flex-start;flex-direction:column}.analysis-head-actions{width:100%;justify-content:space-between}.analysis-insight-list,.analysis-actions{grid-template-columns:1fr 1fr;}}
@media(max-width:650px){.analysis-page{margin-bottom:35px!important}.analysis-page-head h2{font-size:24px}.analysis-kpi-grid{grid-template-columns:1fr 1fr}.analysis-kpi>strong{font-size:15px}.analysis-chart-grid{grid-template-columns:1fr}.analysis-bar-row{grid-template-columns:1fr;gap:5px}.analysis-allocation-row{grid-template-columns:minmax(0,1fr) 42px;}.analysis-allocation-row>b{grid-column:1/-1}.analysis-return-columns,.analysis-insight-list,.analysis-actions{grid-template-columns:1fr}.analysis-summary-card{padding:15px}.analysis-control-card{padding:12px}.analysis-loader-visual{width:95%}.analysis-section-head>small{display:none}.analysis-page-head p{font-size:10px}}
/* v0.11.12 readability tuning */
.analysis-summary-main p{font-size:12.5px!important;line-height:1.6!important;}
.analysis-kpi>span{font-size:9.5px!important}.analysis-kpi>strong{font-size:18px!important}.analysis-kpi>small{font-size:8.8px!important}
.analysis-bar-copy strong{font-size:11px!important}.analysis-bar-copy small{font-size:8.8px!important}.analysis-bar-value>b{font-size:9.8px!important}
.analysis-allocation-row>span{font-size:10.2px!important}.analysis-allocation-row>strong{font-size:9.8px!important}
.analysis-return-row strong{font-size:10px!important}.analysis-return-row small{font-size:8.3px!important}.analysis-return-row>b{font-size:10px!important}
.analysis-insight strong{font-size:10.7px!important}.analysis-insight p{font-size:9.7px!important;line-height:1.5!important}
.analysis-action-card strong{font-size:10.5px!important}.analysis-action-card p{font-size:9.6px!important;line-height:1.5!important}.analysis-watch-row strong{font-size:10px!important}.analysis-watch-row span{font-size:9.6px!important;line-height:1.5!important}.analysis-conclusion p{font-size:10px!important;line-height:1.55!important}.analysis-method-note p{font-size:9.3px!important}
.analysis-summary-signal>strong.neutral{color:#66c9ef!important;}
.ai-top-btn.active{outline:2px solid #42dc91;outline-offset:2px;}
html[data-theme="light"] .ai-top-btn.active{outline-color:#22995d;}


/* =========================================================
   Finora v0.11.13 — durable notification reads + readability
   ========================================================= */
/* Sidebar: every glyph uses the same neutral treatment. Special feature
   colors are reserved for page content, not navigation. */
.nav-item .tips-nav-glyph,.nav-item .crypto-nav-glyph,.nav-item .flow-nav-glyph{color:#d9e3e8!important;}
.nav-item.active .tips-nav-glyph,.nav-item.active .crypto-nav-glyph,.nav-item.active .flow-nav-glyph{color:#20bafc!important;}
html[data-theme="light"] .nav-item .tips-nav-glyph,html[data-theme="light"] .nav-item .crypto-nav-glyph,html[data-theme="light"] .nav-item .flow-nav-glyph{color:#55707e!important;}
html[data-theme="light"] .nav-item.active .tips-nav-glyph,html[data-theme="light"] .nav-item.active .crypto-nav-glyph,html[data-theme="light"] .nav-item.active .flow-nav-glyph{color:#0a91c8!important;}

/* AI analysis: enlarge only the previously undersized narrative blocks. */
.analysis-story-card .analysis-section-head h3,.analysis-actions-card .analysis-section-head h3,.analysis-watch-card .analysis-section-head h3{font-size:16px!important;}
.analysis-insight{padding:12px!important;gap:10px!important;}
.analysis-insight strong{font-size:11.8px!important;line-height:1.35!important;}
.analysis-insight p{font-size:10.7px!important;line-height:1.58!important;}
.analysis-action-card{padding:12px!important;}
.analysis-action-card small{font-size:8.5px!important;}
.analysis-action-card strong{font-size:11.6px!important;line-height:1.35!important;}
.analysis-action-card p{font-size:10.6px!important;line-height:1.58!important;}
.analysis-watch-row{padding:11px 2px!important;grid-template-columns:66px 1fr!important;}
.analysis-watch-row strong{font-size:11.2px!important;line-height:1.4!important;}
.analysis-watch-row span{font-size:10.6px!important;line-height:1.58!important;}
.analysis-conclusion>span{font-size:8.5px!important;}
.analysis-conclusion p{font-size:10.8px!important;line-height:1.6!important;}

/* P047: retain the analysis layout with readable dated results on desktop. */
@media(min-width:901px){
 .analysis-page :is(button,textarea):focus-visible{outline:2px solid var(--cyan2);outline-offset:3px}
 .analysis-page-head,.analysis-head-actions{flex-wrap:wrap}
 .analysis-head-actions{min-width:0;max-width:100%}
 .analysis-status-pill{white-space:normal;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
 .analysis-page :is(.analysis-summary-main,.analysis-insight>div,.analysis-action-card>div){min-width:0}
 .analysis-page :is(p,small,strong,label){overflow-wrap:anywhere}
 .analysis-page :is(.analysis-page-head p,.analysis-control-copy small,.analysis-control-card textarea,.analysis-summary-main>small,.analysis-summary-signal>small,.analysis-kpi>span,.analysis-kpi>small,.analysis-section-head>small,.analysis-bar-copy small,.analysis-allocation-row>span,.analysis-return-row small,.analysis-insight p,.analysis-action-card p,.analysis-watch-row span,.analysis-conclusion p,.analysis-method-note p,.analysis-empty-small){font-size:13px!important;line-height:1.55!important}
 .analysis-page :is(.analysis-bar-copy strong,.analysis-bar-value>b,.analysis-allocation-row>strong,.analysis-return-row strong,.analysis-return-row>b,.analysis-insight strong,.analysis-action-card strong,.analysis-watch-row strong){font-size:14px!important;line-height:1.4!important}
 .analysis-page :is(.analysis-kpi>strong,.analysis-kpi>small,.analysis-bar-copy small,.analysis-allocation-row>span,.analysis-return-row small,.analysis-section-head>small){white-space:normal;overflow:visible;text-overflow:clip}
 .analysis-page :is(.analysis-back-btn,.analysis-run-btn){font-size:13px!important}
 .analysis-bar-row{grid-template-columns:minmax(0,1fr) minmax(115px,.7fr)}
 .analysis-bar-copy{grid-template-columns:25px minmax(0,auto) minmax(0,1fr)}
 .analysis-bar-value{grid-template-columns:minmax(55px,auto) minmax(30px,1fr)}
 .analysis-allocation-row{grid-template-columns:minmax(0,1fr) minmax(55px,auto) minmax(65px,.6fr)}
 .analysis-section-head{flex-wrap:wrap}
 .analysis-feedback-area{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:12px}
 .analysis-feedback-area p{margin:0;color:var(--text);font-size:14px;line-height:1.5}
 .analysis-feedback-area [hidden]{display:none!important}
}

/* Capital Flow: reduce the visual jump between giant values and tiny
   explanations, while keeping the primary probabilities prominent. */
.flow-kpi{min-height:118px!important;}
.flow-kpi>span{font-size:10.5px!important;line-height:1.3!important;}
.flow-kpi>strong{font-size:20px!important;line-height:1.18!important;margin:7px 0 6px!important;}
#flow-market-regime{font-size:18px!important;white-space:normal!important;}
.flow-kpi>small{font-size:10.8px!important;line-height:1.5!important;}
.flow-map-card .card-head small,.flow-scenario-card .card-head small,.flow-weights-card .card-head small,.flow-score-card .card-head small,.flow-history-card .card-head small{font-size:9.8px!important;line-height:1.45!important;}
.flow-bar-copy>span,.flow-bar-copy>div>span{font-size:9.6px!important;}
.flow-bar-visual>small{font-size:9.2px!important;}
.flow-bar-value>span{font-size:9px!important;}
.flow-story-grid h4{font-size:10.5px!important;}
.flow-story-list>div span{font-size:9.8px!important;line-height:1.4!important;}
.flow-source-strip a,.flow-source-strip span{font-size:9px!important;}
.flow-weight-row>div{font-size:10.5px!important;}
.flow-calibration-copy strong{font-size:13px!important;}
.flow-calibration-copy p{font-size:10.8px!important;line-height:1.58!important;}
.flow-history-row time{font-size:10px!important;}
.flow-history-row strong{font-size:11px!important;}
.flow-history-row span{font-size:9.8px!important;line-height:1.45!important;}
.flow-disclaimer p{font-size:10.5px!important;line-height:1.6!important;}

/* =========================================================
   Finora v0.11.14 — CNB dividend FX + crypto heatmap
   ========================================================= */
/* Dividend FX provenance inside event detail. */
#detail-content .event-detail-box>div>span{display:block;margin-top:5px;color:#78929e;font-size:9.6px;line-height:1.35}
html[data-theme="light"] #detail-content .event-detail-box>div>span{color:#6a828d}

/* Main crypto watchlist becomes a real 24h heatmap. Tile size stays stable;
   background intensity represents the magnitude of the 24h move. */
.crypto-primary-card{transition:background .28s ease,border-color .28s ease,box-shadow .28s ease;}
.crypto-primary-card.heat-flat{background:linear-gradient(155deg,#0d2532,#091c28)!important;border-color:#264554!important;}
.crypto-primary-card.heat-up-1,.crypto-mini-card.heat-up-1{background:linear-gradient(150deg,#12362d,#0b2928)!important;border-color:#285849!important;box-shadow:inset 0 0 0 1px #36d4860a!important;}
.crypto-primary-card.heat-up-2,.crypto-mini-card.heat-up-2{background:linear-gradient(150deg,#155039,#0d342d)!important;border-color:#2c7657!important;box-shadow:inset 0 0 32px #22cc7820!important;}
.crypto-primary-card.heat-up-3,.crypto-mini-card.heat-up-3{background:linear-gradient(150deg,#176844,#0f3d32)!important;border-color:#35a06b!important;box-shadow:inset 0 0 38px #28dc8130!important;}
.crypto-primary-card.heat-up-4,.crypto-mini-card.heat-up-4{background:linear-gradient(150deg,#19804e,#104536)!important;border-color:#42c780!important;box-shadow:inset 0 0 44px #32e58c40!important;}
.crypto-primary-card.heat-down-1,.crypto-mini-card.heat-down-1{background:linear-gradient(150deg,#3a252d,#2a1b24)!important;border-color:#61404b!important;box-shadow:inset 0 0 0 1px #f066750a!important;}
.crypto-primary-card.heat-down-2,.crypto-mini-card.heat-down-2{background:linear-gradient(150deg,#512934,#351e29)!important;border-color:#81505c!important;box-shadow:inset 0 0 32px #ef536420!important;}
.crypto-primary-card.heat-down-3,.crypto-mini-card.heat-down-3{background:linear-gradient(150deg,#6b2d3b,#401f2d)!important;border-color:#aa5a68!important;box-shadow:inset 0 0 38px #f4566830!important;}
.crypto-primary-card.heat-down-4,.crypto-mini-card.heat-down-4{background:linear-gradient(150deg,#853140,#49202e)!important;border-color:#d06a77!important;box-shadow:inset 0 0 44px #ff5d7040!important;}
.crypto-primary-card .crypto-card-name strong,.crypto-primary-card .crypto-price-row>strong{color:#f4f9fb!important;}
.crypto-primary-card .crypto-card-name span,.crypto-primary-card .crypto-source,.crypto-primary-card .crypto-card-foot{color:#bdd0d7!important;}
.crypto-primary-card .crypto-card-foot b{color:#e3edf1!important;}
.crypto-primary-card .crypto-spark-line{stroke:#d8edf5!important;stroke-width:1.65!important;opacity:.9;}
.crypto-primary-card .crypto-spark-area{fill:#d7edf50d!important;}
.crypto-primary-card.heat-up-3 .crypto-spark-line,.crypto-primary-card.heat-up-4 .crypto-spark-line,
.crypto-primary-card.heat-down-3 .crypto-spark-line,.crypto-primary-card.heat-down-4 .crypto-spark-line{stroke:#fff!important;}
.crypto-primary-card .crypto-change.up{background:#0d2d22cc!important;color:#68f2aa!important;box-shadow:inset 0 0 0 1px #65e9a733;}
.crypto-primary-card .crypto-change.down{background:#331921cc!important;color:#ff9aa4!important;box-shadow:inset 0 0 0 1px #ff8b9833;}
.crypto-primary-card .crypto-change.flat{background:#142b35cc!important;color:#b8c8cf!important;}

html[data-theme="light"] .crypto-primary-card.heat-flat{background:linear-gradient(155deg,#fff,#f4f9fb)!important;border-color:#c8d9e0!important;}
html[data-theme="light"] .crypto-primary-card.heat-up-1,html[data-theme="light"] .crypto-mini-card.heat-up-1{background:linear-gradient(150deg,#f0fbf5,#e7f6ee)!important;border-color:#b8dcc8!important;}
html[data-theme="light"] .crypto-primary-card.heat-up-2,html[data-theme="light"] .crypto-mini-card.heat-up-2{background:linear-gradient(150deg,#dcf5e7,#ccebd9)!important;border-color:#94c9aa!important;}
html[data-theme="light"] .crypto-primary-card.heat-up-3,html[data-theme="light"] .crypto-mini-card.heat-up-3{background:linear-gradient(150deg,#bdebcf,#a8dfbf)!important;border-color:#6fbb8d!important;}
html[data-theme="light"] .crypto-primary-card.heat-up-4,html[data-theme="light"] .crypto-mini-card.heat-up-4{background:linear-gradient(150deg,#9be0b6,#85d4a4)!important;border-color:#4da873!important;}
html[data-theme="light"] .crypto-primary-card.heat-down-1,html[data-theme="light"] .crypto-mini-card.heat-down-1{background:linear-gradient(150deg,#fff5f6,#fbecee)!important;border-color:#e3c3c8!important;}
html[data-theme="light"] .crypto-primary-card.heat-down-2,html[data-theme="light"] .crypto-mini-card.heat-down-2{background:linear-gradient(150deg,#fae1e5,#f4d2d7)!important;border-color:#d5a6ae!important;}
html[data-theme="light"] .crypto-primary-card.heat-down-3,html[data-theme="light"] .crypto-mini-card.heat-down-3{background:linear-gradient(150deg,#f2c3ca,#eeb2bb)!important;border-color:#c98591!important;}
html[data-theme="light"] .crypto-primary-card.heat-down-4,html[data-theme="light"] .crypto-mini-card.heat-down-4{background:linear-gradient(150deg,#eaa7b1,#e3919e)!important;border-color:#ba6876!important;}
html[data-theme="light"] .crypto-primary-card .crypto-card-name strong,html[data-theme="light"] .crypto-primary-card .crypto-price-row>strong{color:#173440!important;}
html[data-theme="light"] .crypto-primary-card .crypto-card-name span,html[data-theme="light"] .crypto-primary-card .crypto-source,html[data-theme="light"] .crypto-primary-card .crypto-card-foot{color:#536f7a!important;}
html[data-theme="light"] .crypto-primary-card .crypto-card-foot b{color:#294954!important;}
html[data-theme="light"] .crypto-primary-card .crypto-spark-line{stroke:#315c6d!important;}
.crypto-primary-card .crypto-spark.up .crypto-spark-line,.crypto-primary-card .crypto-spark.down .crypto-spark-line,.crypto-primary-card .crypto-spark.flat .crypto-spark-line{stroke:#d8edf5!important;}
.crypto-primary-card .crypto-spark.up .crypto-spark-area,.crypto-primary-card .crypto-spark.down .crypto-spark-area,.crypto-primary-card .crypto-spark.flat .crypto-spark-area{fill:#d7edf50d!important;}
.crypto-primary-card.heat-up-3 .crypto-spark.up .crypto-spark-line,.crypto-primary-card.heat-up-4 .crypto-spark.up .crypto-spark-line,.crypto-primary-card.heat-down-3 .crypto-spark.down .crypto-spark-line,.crypto-primary-card.heat-down-4 .crypto-spark.down .crypto-spark-line{stroke:#fff!important;}
html[data-theme="light"] .crypto-primary-card .crypto-spark.up .crypto-spark-line,html[data-theme="light"] .crypto-primary-card .crypto-spark.down .crypto-spark-line,html[data-theme="light"] .crypto-primary-card .crypto-spark.flat .crypto-spark-line{stroke:#315c6d!important;}


/* =========================================================
   Finora v0.11.15 — continuous crypto heatmap + draggable sidebar
   ========================================================= */
/* Crypto uses exactly the same continuously interpolated heat colors as the
   portfolio heatmap. heatmapTone() updates these registered color properties;
   the browser blends every price update instead of jumping between buckets. */
.crypto-primary-card{
  background:linear-gradient(145deg,var(--heat-top),var(--heat-bottom))!important;
  border-color:var(--heat-border)!important;
  transition:--heat-top 2.8s ease,--heat-bottom 2.8s ease,--heat-border 2.8s ease,box-shadow .18s ease!important;
  will-change:auto!important;
}
/* Retire the old discrete heat classes from v0.11.14. */
.crypto-primary-card.heat-flat,.crypto-primary-card.heat-up-1,.crypto-primary-card.heat-up-2,
.crypto-primary-card.heat-up-3,.crypto-primary-card.heat-up-4,.crypto-primary-card.heat-down-1,
.crypto-primary-card.heat-down-2,.crypto-primary-card.heat-down-3,.crypto-primary-card.heat-down-4{
  background:linear-gradient(145deg,var(--heat-top),var(--heat-bottom))!important;
  border-color:var(--heat-border)!important;
  box-shadow:inset 0 1px 0 #ffffff08!important;
}
html[data-theme="light"] .crypto-primary-card{
  background:linear-gradient(145deg,var(--heat-top),var(--heat-bottom))!important;
  border-color:var(--heat-border)!important;
}

/* User-defined sidebar order. The whole row is the drag target, while settings
   intentionally stays outside #main-nav and therefore remains fixed at bottom. */
#main-nav .nav-item.nav-draggable{cursor:grab;user-select:none;position:relative;transition:transform .18s ease,background .18s ease,border-color .18s ease,opacity .18s ease;}
#main-nav .nav-item.nav-draggable:active{cursor:grabbing;}
#main-nav.nav-reordering .nav-item.nav-draggable:not(.nav-dragging){transition:transform .22s cubic-bezier(.22,.61,.36,1),background .18s ease,border-color .18s ease;}
#main-nav .nav-item.nav-dragging{opacity:.48;cursor:grabbing;box-shadow:0 8px 24px #0007;}
#main-nav .nav-item.nav-draggable::after{content:"⋮⋮";margin-left:auto;font-size:8px;letter-spacing:-2px;color:#54707d;opacity:0;transition:opacity .14s ease;}
#main-nav .nav-item.nav-draggable:hover::after,#main-nav.nav-reordering .nav-item.nav-draggable::after{opacity:.58;}
html[data-theme="light"] #main-nav .nav-item.nav-draggable::after{color:#8198a2;}

/* Settings is fixed below the signed-in/logout block and deliberately green. */
.sidebar-settings-item{
  flex:0 0 auto!important;margin:0 4px 1px!important;width:calc(100% - 8px)!important;
  color:#70e5a7!important;border-color:#1d6847!important;
  background:linear-gradient(90deg,#0d3025,#0a241d)!important;
  box-shadow:inset 3px 0 0 #35d88733!important;
}
.sidebar-settings-item span{color:#56dc98!important;}
.sidebar-settings-item:hover{color:#eafff3!important;border-color:#2d9667!important;background:linear-gradient(90deg,#12452f,#0c3024)!important;}
.sidebar-settings-item.active{color:#8bf0b9!important;border-color:#37c781!important;background:linear-gradient(90deg,#124d35,#0d3227)!important;box-shadow:inset 3px 0 0 #42df91,0 0 0 1px #36c27c1f!important;}
.sidebar-settings-item.active span{color:#78edb0!important;}
html[data-theme="light"] .sidebar-settings-item{color:#147a4b!important;border-color:#9fd9ba!important;background:linear-gradient(90deg,#e6f7ed,#f2fbf6)!important;box-shadow:inset 3px 0 0 #34b87455!important;}
html[data-theme="light"] .sidebar-settings-item span{color:#1f995d!important;}
html[data-theme="light"] .sidebar-settings-item:hover,html[data-theme="light"] .sidebar-settings-item.active{color:#0c653d!important;border-color:#63be8e!important;background:linear-gradient(90deg,#d6f2e2,#eaf8f0)!important;box-shadow:inset 3px 0 0 #22a966!important;}
@media(max-width:900px){#main-nav .nav-item.nav-draggable::after{opacity:.38;}}


/* Finora v0.11.16 — centralized CNB FX engine; visual styles unchanged. */


/* =========================================================
   Finora v0.11.17 — aligned wider sidebar + handle-only drag + top settings
   ========================================================= */
@media(min-width:901px){
  .sidebar{width:var(--finora-sidebar-width)!important;padding-left:12px!important;padding-right:12px!important;}
  .main{margin-left:var(--finora-sidebar-width)!important;width:calc(100% - var(--finora-sidebar-width))!important;}
}
#main-nav{gap:8px!important;}
#main-nav .nav-item{
  width:100%!important;
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr) 18px!important;
  align-items:center!important;
  column-gap:13px!important;
  padding:0 11px 0 13px!important;
  text-align:left!important;
}
#main-nav .nav-item>span:not(.nav-drag-handle){
  width:24px!important;min-width:24px!important;
  display:grid!important;place-items:center!important;
  margin:0!important;text-align:center!important;
}
#main-nav .nav-item>b{
  min-width:0!important;margin:0!important;text-align:left!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
#main-nav .nav-notification-badge{position:absolute!important;right:30px!important;}

/* The row stays a normal navigation button. Only the compact right-hand grip
   starts reordering, matching the KPI-card interaction. */
#main-nav .nav-item.nav-draggable{cursor:pointer!important;user-select:none;position:relative;}
#main-nav .nav-item.nav-draggable:active{cursor:pointer!important;}
#main-nav .nav-item.nav-draggable::after{content:none!important;display:none!important;}
#main-nav .nav-drag-handle{
  grid-column:3!important;width:18px!important;height:28px!important;min-width:18px!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
  gap:2px!important;margin:0!important;padding:0!important;border:1px solid transparent!important;border-radius:6px!important;
  color:#6f8793!important;opacity:.28!important;cursor:grab!important;transition:opacity .14s ease,border-color .14s ease,background .14s ease,color .14s ease!important;
}
#main-nav .nav-drag-handle i{display:block!important;width:9px!important;height:1.5px!important;border-radius:999px!important;background:currentColor!important;pointer-events:none!important;}
#main-nav .nav-drag-handle:hover,#main-nav.nav-reordering .nav-drag-handle{opacity:1!important;color:#9edcf5!important;border-color:#31576a!important;background:#0a2634!important;}
#main-nav .nav-drag-handle:active{cursor:grabbing!important;}
#main-nav .nav-item.nav-dragging{cursor:default!important;opacity:.48!important;box-shadow:0 8px 24px #0007;}
html[data-theme="light"] #main-nav .nav-drag-handle{color:#8098a4!important;}
html[data-theme="light"] #main-nav .nav-drag-handle:hover,html[data-theme="light"] #main-nav.nav-reordering .nav-drag-handle{color:#197fa8!important;border-color:#bdd8e3!important;background:#eef7fa!important;}

/* Settings now lives in the top action strip and deliberately uses the exact
   same neutral control family as Fullscreen. */
.top-settings-btn{min-width:110px!important;}
.top-settings-btn.active{color:#39c6ff!important;border-color:#168fc1!important;background:linear-gradient(180deg,#10384c,#0c2c3d)!important;box-shadow:0 0 0 1px #1fb6f21a inset!important;}
html[data-theme="light"] .top-settings-btn.active{color:#087fae!important;border-color:#69b8d5!important;background:linear-gradient(180deg,#e4f6fd,#d9f0f9)!important;}
@media(max-width:720px){.top-settings-btn{min-width:40px!important;width:40px!important;padding:0!important}.top-settings-btn .fullscreen-label{display:none!important}}


/* =========================================================
   Finora v0.11.18 — KPI-style live reflow for sidebar navigation
   ========================================================= */
#main-nav .nav-item.nav-draggable{
  will-change:transform,filter;
}
#main-nav.nav-reordering .nav-item.nav-draggable:not(.nav-dragging){
  transition:background .18s ease,border-color .18s ease,opacity .18s ease!important;
}
#main-nav .nav-item.nav-drop-target:not(.nav-dragging){
  border-color:#245064!important;
  background:linear-gradient(90deg,#0b2938,#0a2230)!important;
}
#main-nav .nav-item.nav-dragging{
  position:relative!important;
  z-index:8!important;
  opacity:.42!important;
  filter:brightness(1.06)!important;
}
.nav-drag-ghost{
  position:fixed!important;
  left:-10000px!important;
  top:-10000px!important;
  width:184px!important;
  height:43px!important;
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr) 18px!important;
  align-items:center!important;
  column-gap:13px!important;
  padding:0 11px 0 13px!important;
  border:1px solid #2b6077!important;
  border-radius:7px!important;
  background:linear-gradient(90deg,#0d3142,#0a2432)!important;
  color:#edf8fc!important;
  box-shadow:0 14px 38px #000a!important;
  opacity:.96!important;
  pointer-events:none!important;
  z-index:99999!important;
}
.nav-drag-ghost .nav-drag-handle{opacity:1!important;}
html[data-theme="light"] #main-nav .nav-item.nav-drop-target:not(.nav-dragging){
  border-color:#9bc9da!important;
  background:linear-gradient(90deg,#e8f6fb,#f2fafd)!important;
}
@media(prefers-reduced-motion:reduce){
  #main-nav .nav-item.nav-draggable{will-change:auto!important;}
}

/* =========================================================
   Finora v0.11.19 — dividend page left/right hierarchy redesign
   ========================================================= */
/* Retained mobile reference. P030C desktop layout is in dividends.css. */
@media(max-width:980px){
/* Desktop hierarchy: the three-month announced-dividend stream owns the full
   left column. The current-year estimate, monthly chart and payer ranking form
   a compact right-hand stack. */
.dividend-top-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-areas:
    "upcoming forecast"
    "upcoming months"
    "upcoming payers"!important;
  grid-template-rows:230px 340px auto!important;
  gap:13px!important;
  align-items:stretch!important;
}
.dividend-top-grid .upcoming-dividends-card{
  grid-area:upcoming!important;
  height:auto!important;
  min-height:930px!important;
  margin:0!important;
  display:flex!important;
  flex-direction:column!important;
}
.dividend-top-grid .upcoming-dividends-card .card-head{flex:0 0 auto!important;}
.dividend-top-grid .upcoming-dividends-card .event-list{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  padding-bottom:10px!important;
}
.dividend-top-grid .dividend-forecast-card{
  grid-area:forecast!important;
  height:230px!important;
  min-height:230px!important;
  margin:0!important;
  padding:26px 28px!important;
  border-color:#2e657d!important;
  background:radial-gradient(circle at 88% 28%,#0c5873 0,#0b3143 26%,#091d29 66%)!important;
  box-shadow:0 12px 30px #00000020,inset 0 1px 0 #ffffff08!important;
}
.dividend-top-grid .current-year-dividend-forecast-card .forecast-copy strong{
  font-size:48px!important;
  line-height:1!important;
  letter-spacing:-1.35px!important;
  color:#67dcff!important;
  text-shadow:0 0 22px #1fc8ff22!important;
}
.dividend-top-grid .current-year-dividend-forecast-card .forecast-copy small{
  font-size:11px!important;
  color:#a8c5d2!important;
  font-weight:800!important;
}
.dividend-top-grid .current-year-dividend-forecast-card .forecast-compact-stat{
  min-width:138px!important;
  padding:16px 18px!important;
}
.dividend-top-grid .dividend-months-card{
  grid-area:months!important;
  height:340px!important;
  min-height:340px!important;
  margin:0!important;
}
.dividend-top-grid .dividend-months-card .dividend-year-chart{
  height:280px!important;
  padding-top:24px!important;
}
.dividend-top-grid .dividend-payers-card{
  grid-area:payers!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:340px!important;
  margin:0!important;
}
.dividend-top-grid .dividend-payers-card .rank-list{padding-bottom:17px!important;}

html[data-theme="light"] .dividend-top-grid .dividend-forecast-card{
  border-color:#a8cfdf!important;
  background:radial-gradient(circle at 88% 28%,#d9f3fc 0,#e9f7fb 38%,#f5fbfd 76%)!important;
  box-shadow:0 10px 26px #315d7212,inset 0 1px 0 #ffffff!important;
}
html[data-theme="light"] .dividend-top-grid .current-year-dividend-forecast-card .forecast-copy strong{
  color:#087fae!important;
  text-shadow:none!important;
}
html[data-theme="light"] .dividend-top-grid .current-year-dividend-forecast-card .forecast-copy small{color:#587785!important;}

@media(max-width:980px){
  .dividend-top-grid{
    grid-template-columns:1fr!important;
    grid-template-areas:"upcoming" "forecast" "months" "payers"!important;
    grid-template-rows:auto!important;
  }
  .dividend-top-grid .upcoming-dividends-card{height:auto!important;min-height:540px!important;}
  .dividend-top-grid .upcoming-dividends-card .event-list{max-height:680px!important;}
  .dividend-top-grid .dividend-forecast-card{height:auto!important;min-height:230px!important;}
  .dividend-top-grid .dividend-months-card{height:auto!important;min-height:340px!important;}
  .dividend-top-grid .dividend-payers-card{height:auto!important;min-height:320px!important;}
}
@media(max-width:620px){
  .dividend-top-grid .current-year-dividend-forecast-card .forecast-copy strong{font-size:39px!important;}
  .dividend-top-grid .dividend-forecast-card{padding:22px 20px!important;}
}


}

/* =========================================================
   Finora v0.11.20 — 30-year dividend projection labels + tooltip
   ========================================================= */
#dividend-projection-chart .projection-bar-col{cursor:default}
#dividend-projection-chart .projection-bar-value{
  display:block!important;
  font-size:clamp(6px,.52vw,8px)!important;
  line-height:1!important;
  font-weight:750;
  color:#8fb3a1!important;
  overflow:visible!important;
  white-space:nowrap!important;
  text-align:center;
  position:relative;
  z-index:2;
}
#dividend-projection-chart .projection-bar-col.milestone .projection-bar-value{color:#d8f7e6!important;font-weight:900}
#dividend-projection-chart .projection-bar-fill{transition:filter .14s ease,transform .14s ease;transform-origin:bottom center}
#dividend-projection-chart .projection-bar-col:hover .projection-bar-fill{filter:brightness(1.12);transform:scaleX(1.06)}
html[data-theme="light"] #dividend-projection-chart .projection-bar-track{background:transparent!important}
html[data-theme="light"] #dividend-projection-chart .projection-bar-value{color:#337c59!important}
html[data-theme="light"] #dividend-projection-chart .projection-bar-col.milestone .projection-bar-value{color:#146b44!important}

/* =========================================================
   Finora v0.11.21 — stable live dividend projection + crypto tooltips
   ========================================================= */
#dividend-projection-chart .projection-bar-col{
  grid-template-rows:1fr 18px!important;
  position:relative;
}
#dividend-projection-chart .projection-bar-track{
  overflow:visible!important;
  position:relative!important;
}
#dividend-projection-chart .projection-bar-value{
  position:absolute!important;
  left:50%!important;
  bottom:calc(var(--projection-height, 3%) + 4px)!important;
  transform:translateX(-50%)!important;
  z-index:4!important;
  width:max-content!important;
  max-width:none!important;
  margin:0!important;
  pointer-events:none!important;
}
/* Hover must stay visually calm while the 1 s dashboard poll continues. */
#dividend-projection-chart .projection-bar-fill{
  transition:filter .14s ease!important;
  transform:none!important;
}
#dividend-projection-chart .projection-bar-col:hover .projection-bar-fill{
  filter:brightness(1.10)!important;
  transform:none!important;
}
.crypto-primary-card,.crypto-mini-card{cursor:default}


/* =========================================================
   Finora v0.11.22 — crypto EUR/USD switch + tooltip cleanup
   ========================================================= */
.crypto-head-tools{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}
.crypto-head-tools>small{color:#9ab1bc;font-size:10px;white-space:nowrap}
.crypto-currency-switch{display:inline-flex;align-items:center;padding:2px;border:1px solid #376278;border-radius:9px;background:#071a25;box-shadow:inset 0 1px 0 #ffffff08}
.crypto-currency-switch button{min-width:42px;height:26px;padding:0 9px;border:0;border-radius:7px;background:transparent;color:#7f9ba8;font:800 9.5px/1 inherit;letter-spacing:.45px;cursor:pointer;transition:background .14s ease,color .14s ease,box-shadow .14s ease}
.crypto-currency-switch button:hover{color:#c9e1eb;background:#123345}
.crypto-currency-switch button.active{color:#f4fbfe;background:#167eab;box-shadow:0 2px 7px #05141c48,inset 0 1px 0 #ffffff1f}
.crypto-primary-card .crypto-card-top{grid-template-columns:44px minmax(0,1fr)!important}
.crypto-primary-card .crypto-card-foot{font-size:10.5px!important;padding-top:10px!important;line-height:1.25}
.crypto-primary-card .crypto-card-foot b{font-size:11.5px!important;font-weight:800!important}
html[data-theme="light"] .crypto-currency-switch{border-color:#bad2dc;background:#f8fcfd;box-shadow:inset 0 1px 0 #fff}
html[data-theme="light"] .crypto-currency-switch button{color:#607d8a}
html[data-theme="light"] .crypto-currency-switch button:hover{color:#244e61;background:#e5f4fa}
html[data-theme="light"] .crypto-currency-switch button.active{color:#fff;background:#1689b9}
@media(max-width:760px){.crypto-head-tools{width:100%;justify-content:space-between;gap:8px}.crypto-market-section .crypto-section-head{align-items:flex-start;flex-direction:column}.crypto-head-tools>small{white-space:normal}}


/* =========================================================
   Finora v0.11.23 — global crypto currency switch + favicon + tooltip contrast
   ========================================================= */
.crypto-live-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.crypto-global-currency-switch{flex:0 0 auto;height:32px;padding:2px}
.crypto-global-currency-switch button{height:26px}
html:not([data-theme="light"]) #heatmap-hover-tooltip .heatmap-tooltip-head strong,
html:not([data-theme="light"]) #heatmap-hover-tooltip .heatmap-tooltip-title strong{color:#fff!important}
html[data-theme="light"] #heatmap-hover-tooltip .heatmap-tooltip-head strong,
html[data-theme="light"] #heatmap-hover-tooltip .heatmap-tooltip-title strong{color:#193a46!important}
@media(max-width:950px){.crypto-live-tools{width:100%;justify-content:space-between}.crypto-live-status{flex:1 1 auto;width:auto}}
@media(max-width:560px){.crypto-live-tools{align-items:stretch;flex-direction:column}.crypto-global-currency-switch{align-self:flex-end}}


/* =========================================================
   Finora v0.11.24 — tooltip identity alignment + crypto tools sizing
   ========================================================= */
/* Portfolio heatmap: logo remains left, company identity is right-aligned. */
#heatmap-hover-tooltip .heatmap-tooltip-head{
  grid-template-columns:42px minmax(0,1fr);
}
#heatmap-hover-tooltip .heatmap-tooltip-head>div{
  min-width:0;
  justify-self:stretch;
  text-align:right;
}
#heatmap-hover-tooltip .heatmap-tooltip-head strong,
#heatmap-hover-tooltip .heatmap-tooltip-head span{
  text-align:right;
}

/* P051C: compact desktop stock/ETF preview; preserve the chart and readable labels. */
@media(min-width:801px){
  #heatmap-hover-tooltip:has(.heatmap-stock-card){width:min(312px,calc(100vw - 28px))!important;padding:11px 12px}
  #heatmap-hover-tooltip .heatmap-stock-card .heatmap-tooltip-head{grid-template-columns:34px minmax(0,1fr);gap:8px;padding-bottom:8px}
  #heatmap-hover-tooltip .heatmap-stock-card .heatmap-tooltip-head strong{font-size:14px;overflow-wrap:anywhere}
  #heatmap-hover-tooltip .heatmap-stock-card .heatmap-tooltip-logo{width:32px;height:32px}
  #heatmap-hover-tooltip .heatmap-stock-card .heatmap-tooltip-logo .logo-fallback{width:30px;height:30px}
  .heatmap-stock-primary,.heatmap-stock-secondary{gap:12px;margin-top:12px}
  .heatmap-stock-card [data-heatmap-metric]{font-size:16px}
  .heatmap-stock-primary [data-heatmap-metric]{font-size:22px}
  .heatmap-stock-primary span,.heatmap-stock-secondary span{font-size:11px}
  .heatmap-stock-card .heatmap-session-caption{margin-top:10px;gap:8px;font-size:11px}
  .heatmap-stock-card .heatmap-session-caption span{font-size:10px}
  .heatmap-stock-card .heatmap-session-chart{margin-top:7px}
  .heatmap-stock-card .heatmap-session-chart text{font-size:13px}
  .heatmap-stock-card .heatmap-session-empty{padding:19px 0 11px;font-size:12px}
  .heatmap-stock-hours{gap:12px;margin-top:12px;padding-top:9px;font-size:11px}
}

/* Crypto: one global EUR/USD panel, to the LEFT of LIVE · Coinbase,
   with matching panel height/radius/visual weight. */
.crypto-live-tools{align-items:stretch!important}
.crypto-live-status{min-height:52px}
.crypto-global-currency-switch{
  order:-1;
  align-self:stretch;
  min-height:52px;
  height:auto!important;
  padding:5px!important;
  border-radius:13px!important;
}
.crypto-global-currency-switch button{
  min-width:50px;
  height:auto!important;
  min-height:40px;
  padding:0 12px;
  border-radius:9px;
  font-size:10.5px;
}
@media(max-width:560px){
  .crypto-global-currency-switch{align-self:stretch!important}
}


/* =========================================================
   Finora v0.11.25 — crypto heatmap parity with portfolio
   ========================================================= */
/* The crypto heatmap now uses the exact same registered color variables,
   gradient angle, transition duration and easing curve as the portfolio
   heatmap. There are no discrete color buckets in the primary crypto tiles. */
.crypto-primary-card{
  background:linear-gradient(145deg,var(--heat-top),var(--heat-bottom))!important;
  border-color:var(--heat-border)!important;
  transition:--heat-top 2.40s cubic-bezier(.22,.61,.36,1),
             --heat-bottom 2.40s cubic-bezier(.22,.61,.36,1),
             --heat-border 2.40s cubic-bezier(.22,.61,.36,1),
             box-shadow .18s ease!important;
}
/* Keep legacy directional classes from changing the tile palette. The actual
   color always comes only from heatmapTone(), exactly as on the portfolio. */
.crypto-primary-card.up,.crypto-primary-card.down,.crypto-primary-card.flat{
  background:linear-gradient(145deg,var(--heat-top),var(--heat-bottom))!important;
  border-color:var(--heat-border)!important;
}
/* Crypto tooltip reuses the portfolio tooltip shell and identity layout 1:1. */
#heatmap-hover-tooltip .crypto-heatmap-tooltip-logo{
  width:40px;
  height:40px;
}
#heatmap-hover-tooltip .crypto-heatmap-tooltip-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
}
#heatmap-hover-tooltip .crypto-heatmap-tooltip-logo .logo-fallback{
  width:38px;
  height:38px;
  border-radius:9px;
  place-items:center;
  background:#12384a;
  color:#fff;
  font-size:10px;
  font-weight:900;
}
html[data-theme="light"] #heatmap-hover-tooltip .crypto-heatmap-tooltip-logo .logo-fallback{
  background:#e6f1f5;
  color:#244854;
}
/* No extra discrete direction strip on the primary heatmap: portfolio parity. */
.crypto-primary-card::before{display:none!important}


/* =========================================================
   Finora v0.11.26 — crypto logo fitting + compact page help
   ========================================================= */
/* Crypto tooltip logos: preserve the shared portfolio-tooltip shell, but fit
   each official mark according to its real geometry/contrast. */
#heatmap-hover-tooltip .crypto-heatmap-tooltip-logo{
  width:40px!important;
  height:40px!important;
  min-width:40px;
  display:grid;
  place-items:center;
  overflow:hidden!important;
  border-radius:10px;
}
#heatmap-hover-tooltip .crypto-heatmap-tooltip-logo img{
  display:block;
  width:auto!important;
  height:auto!important;
  max-width:30px!important;
  max-height:30px!important;
  object-fit:contain!important;
  object-position:center!important;
}
/* Ethereum is a tall diamond; extra breathing room keeps both tips inside the
   identity cell and away from the divider below. */
#heatmap-hover-tooltip .crypto-tooltip-logo-eth img{
  max-width:20px!important;
  max-height:29px!important;
}
/* XRP's official X mark is dark. Give only that logo a neutral light plate so
   it stays legible in dark mode without altering the mark itself. */
#heatmap-hover-tooltip .crypto-tooltip-logo-xrp{
  background:#f4f7f8!important;
  box-shadow:inset 0 0 0 1px #d7e0e4;
}
#heatmap-hover-tooltip .crypto-tooltip-logo-xrp img{
  max-width:25px!important;
  max-height:25px!important;
}
/* Marks with naturally wider silhouettes. */
#heatmap-hover-tooltip .crypto-tooltip-logo-link img,
#heatmap-hover-tooltip .crypto-tooltip-logo-sol img{
  max-width:29px!important;
  max-height:25px!important;
}
#heatmap-hover-tooltip .crypto-tooltip-logo-aave img,
#heatmap-hover-tooltip .crypto-tooltip-logo-snx img,
#heatmap-hover-tooltip .crypto-tooltip-logo-doge img{
  max-width:28px!important;
  max-height:28px!important;
}
#heatmap-hover-tooltip .crypto-tooltip-logo-btc img{
  max-width:29px!important;
  max-height:29px!important;
}
html[data-theme="light"] #heatmap-hover-tooltip .crypto-tooltip-logo-xrp{
  background:#f4f7f8!important;
  box-shadow:inset 0 0 0 1px #cfdbe0;
}

/* Page-level explanations now use the exact same circular info control as the
   overview instead of permanent subtitle paragraphs. */
.news-heading .overview-title-with-info,
.crypto-hero-title-row{
  display:flex;
  align-items:center;
  gap:8px;
}
.news-heading .overview-title-with-info h2,
.crypto-hero-title-row h2{margin-bottom:0!important}
.crypto-hero-copy{display:flex;flex-direction:column;align-items:flex-start}
.crypto-hero-title-row{margin-top:7px}
.crypto-hero-title-row .info-tip,
.news-heading .info-tip{
  width:17px!important;
  height:17px!important;
  font-size:10px!important;
  border-radius:50%!important;
}

/* Tipy dne: give the explanatory copy more breathing room and a cleaner
   vertical rhythm without making the hero materially taller. */
.tips-hero-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.tips-hero-copy .tips-kicker{margin-bottom:2px}
.tips-hero-copy h2{margin:10px 0 11px!important;line-height:1.06}
.tips-hero-copy p{
  margin:0!important;
  max-width:900px!important;
  font-size:12px!important;
  line-height:1.75!important;
  letter-spacing:.01em;
}
.tips-hero{gap:32px!important;align-items:center!important}
@media(max-width:620px){
  .tips-hero-copy h2{margin:8px 0 10px!important}
  .tips-hero-copy p{font-size:11.5px!important;line-height:1.68!important}
}


/* =========================================================
   Finora v0.11.27 — crypto tooltip uses the tile logo 1:1
   ========================================================= */
/* The primary crypto tooltip now renders the exact same .crypto-logo component
   as the corresponding primary tile. No tooltip-specific logo treatment. */
#heatmap-hover-tooltip .heatmap-tooltip-head.crypto-tooltip-head{
  grid-template-columns:44px minmax(0,1fr)!important;
}
#heatmap-hover-tooltip .crypto-tooltip-tile-logo{
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  border-radius:13px!important;
  padding:0!important;
  overflow:hidden!important;
}
#heatmap-hover-tooltip .crypto-tooltip-tile-logo img{
  display:block!important;
  max-width:31px!important;
  max-height:31px!important;
  width:auto!important;
  height:auto!important;
  object-fit:contain!important;
  filter:none!important;
}
#heatmap-hover-tooltip .crypto-tooltip-tile-logo.crypto-logo-btc img{
  max-width:34px!important;
  max-height:34px!important;
}
#heatmap-hover-tooltip .crypto-tooltip-tile-logo span{
  font-size:14px!important;
  font-weight:900!important;
  color:#162b36!important;
}
#heatmap-hover-tooltip .crypto-tooltip-tile-logo.crypto-logo-btc span{
  font-size:25px!important;
  color:#fff!important;
}

/* =========================================================
   Finora v0.11.28 — pure crypto symbols in tooltip
   ========================================================= */
/* Tooltip logo cells intentionally contain ONLY the mark. No ticker/name
   fallback may appear inside the plate. The textual identity lives solely in
   the right-hand tooltip header column, matching the portfolio heatmap. */
#heatmap-hover-tooltip .crypto-tooltip-symbol-only{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  line-height:1!important;
}
#heatmap-hover-tooltip .crypto-tooltip-symbol-only>img{
  display:block!important;
  margin:auto!important;
}
#heatmap-hover-tooltip .crypto-tooltip-symbol-only>span:not(.crypto-pure-btc){
  display:none!important;
}
#heatmap-hover-tooltip .crypto-tooltip-symbol-only .crypto-pure-btc{
  display:block!important;
  margin:0!important;
  padding:0!important;
  color:#fff!important;
  font-size:27px!important;
  line-height:1!important;
  font-weight:800!important;
  font-family:Arial,Helvetica,sans-serif!important;
  transform:translateY(-.5px);
}


/* Finora v0.11.30 — private multi-domain watch */
.domain-watch-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 16px}.domain-watch-card{margin:0;padding:17px 18px;display:flex;align-items:center;justify-content:space-between;gap:22px;position:relative;overflow:hidden;background:linear-gradient(135deg,#0a202c,#091a25 72%);transition:border-color .2s ease,box-shadow .2s ease}
.domain-watch-card:before{content:"";position:absolute;inset:-80px auto auto -60px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,#15baf61d,transparent 68%);pointer-events:none}
.domain-watch-main{display:flex;align-items:center;gap:14px;min-width:0;position:relative;z-index:1}.domain-watch-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(145deg,#0c3b50,#0a2634);border:1px solid #28566c;color:#55d3ff;font-size:20px;box-shadow:inset 0 1px 0 #ffffff0a}.domain-watch-copy{min-width:0}.domain-watch-title{display:flex;align-items:center;gap:8px}.domain-watch-title h3{margin:0;font-size:13px}.domain-watch-secret{font-size:7px;font-weight:900;letter-spacing:1.1px;color:#6d8794;border:1px solid #294656;border-radius:999px;padding:3px 6px}.domain-watch-domain{display:block;margin-top:5px;font-size:19px;letter-spacing:-.35px;color:#effaff}.domain-watch-copy>p{margin:4px 0 0;color:#8299a5;font-size:9px;line-height:1.45}.domain-watch-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px;color:#6f8794;font-size:8px}.domain-watch-meta b{color:#b6c9d2;font-weight:700;margin-left:3px}.domain-watch-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto;position:relative;z-index:1}.domain-watch-status{font-weight:900;letter-spacing:.35px}.domain-watch-card.domain-watch-warning{border-color:#805d25;box-shadow:0 0 0 1px #b67a1a16,0 12px 35px #d9890c0d}.domain-watch-card.domain-watch-warning .domain-watch-icon{color:#ffca58;border-color:#7d5e2b;background:#332711}.domain-watch-card.domain-watch-available{border-color:#258153;box-shadow:0 0 34px #26cb7f14}.domain-watch-card.domain-watch-available .domain-watch-icon{color:#57e49a;border-color:#27714f;background:#0d3425}.domain-watch-card.domain-watch-available .domain-watch-status{border-color:#258153;background:#103a29;color:#57e49a}.domain-watch-card.domain-watch-error{border-color:#71414a}.domain-watch-card.domain-watch-error .domain-watch-status{border-color:#71414a;color:#ff8792;background:#321b20}.domain-watch-card.domain-watch-expired{border-color:#66552c}.domain-watch-card.domain-watch-expired .domain-watch-status{border-color:#76632d;color:#e6c466;background:#332b15}
.domain-watch-modal{backdrop-filter:blur(9px)}.domain-watch-modal-card{width:min(680px,94vw);padding:35px 38px 32px;text-align:center;overflow:hidden;border-color:#735522!important;box-shadow:0 36px 120px #000d,0 0 60px #ffac1c12!important}.domain-watch-modal-glow{position:absolute;left:50%;top:-150px;transform:translateX(-50%);width:420px;height:300px;border-radius:50%;background:radial-gradient(circle,#ffbd3540 0,#ff9f1618 36%,transparent 70%);pointer-events:none}.domain-watch-modal.is-success .domain-watch-modal-card{border-color:#277b52!important;box-shadow:0 36px 120px #000d,0 0 70px #25d78218!important}.domain-watch-modal.is-success .domain-watch-modal-glow{background:radial-gradient(circle,#36dc8d42 0,#1ebf7218 38%,transparent 70%)}.domain-watch-modal-icon{position:relative;font-size:54px;line-height:1;margin:2px auto 13px;filter:drop-shadow(0 8px 22px #ffac3150)}.domain-watch-modal-eyebrow{position:relative;font-size:9px;font-weight:1000;letter-spacing:2px;color:#ffc658;margin-bottom:7px}.domain-watch-modal.is-success .domain-watch-modal-eyebrow{color:#56e59a}.domain-watch-modal-card h2{position:relative;font-size:28px;margin:7px 0 9px;letter-spacing:-.7px}.domain-watch-modal-card>p{position:relative;max-width:550px;margin:0 auto;color:#9fb0b9;font-size:12px;line-height:1.6}.domain-watch-modal-domain{position:relative;margin:20px auto 4px;border:1px solid #315164;background:#071823;border-radius:13px;padding:14px 18px;max-width:390px;color:#eaf8ff;font-size:18px;font-weight:900;letter-spacing:.1px}.domain-watch-modal-card .modal-actions{position:relative;justify-content:center;margin-top:20px}.domain-watch-modal-card .sync-btn{min-width:142px}
html[data-theme="light"] .domain-watch-card{background:linear-gradient(135deg,#fff,#f5fafc);border-color:#cfdee5}html[data-theme="light"] .domain-watch-card.domain-watch-warning{border-color:#ddb85f}html[data-theme="light"] .domain-watch-icon{background:linear-gradient(145deg,#eef8fb,#e2f2f8);border-color:#bedce8;color:#0b87b4}html[data-theme="light"] .domain-watch-domain{color:#132d39}html[data-theme="light"] .domain-watch-copy>p{color:#667e89}html[data-theme="light"] .domain-watch-meta{color:#7a9099}html[data-theme="light"] .domain-watch-meta b{color:#344f5b}html[data-theme="light"] .domain-watch-secret{color:#6b818b;border-color:#d1e0e6;background:#f7fafb}html[data-theme="light"] .domain-watch-modal-card{background:linear-gradient(180deg,#fff,#f8fbfc)!important}html[data-theme="light"] .domain-watch-modal-card h2{color:#112c38}html[data-theme="light"] .domain-watch-modal-card>p{color:#637984}html[data-theme="light"] .domain-watch-modal-domain{background:#f2f8fa;border-color:#cbdde4;color:#183541}
@media(max-width:1050px){.domain-watch-grid{grid-template-columns:1fr}}
@media(max-width:780px){.domain-watch-card{align-items:flex-start;flex-direction:column}.domain-watch-actions{width:100%;justify-content:space-between}.domain-watch-meta{gap:7px 12px}.domain-watch-modal-card{padding:30px 22px 27px}.domain-watch-modal-card h2{font-size:23px}}

/* =========================================================
   Finora v0.11.34 — public login / restricted-access landing page
   ========================================================= */
.login-public-body{min-height:100vh;background:#06131b;color:#d9e7ed;overflow:auto}
.login-public-stage{position:relative;min-height:100vh;overflow:hidden;padding:0 0 46px;background:linear-gradient(180deg,#071820 0%,#07141b 62%,#08161c 100%)}
.login-terminal-backdrop{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:.78;background:radial-gradient(circle at 18% 26%,rgba(24,143,186,.14),transparent 31%),radial-gradient(circle at 77% 38%,rgba(29,154,126,.07),transparent 27%)}
.login-terminal-grid{position:absolute;inset:0;opacity:.22;background-image:linear-gradient(rgba(67,146,178,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(67,146,178,.11) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.72) 60%,transparent 100%)}
.login-terminal-chart{position:absolute;left:-7%;top:9%;width:114%;height:66%;opacity:.72;filter:drop-shadow(0 0 18px rgba(37,170,218,.12))}
.login-terminal-area{fill:url(#loginTerminalArea)}
.login-terminal-line{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.login-terminal-line-soft{stroke:#2199c5;stroke-width:8;opacity:.08;filter:blur(4px)}.login-terminal-line-live{stroke:#39b9e5;stroke-width:2;opacity:.56;stroke-dasharray:22 14;animation:loginTerminalFlow 9s linear infinite}
.login-terminal-candles{position:absolute;inset:7% 2% 26%;opacity:.16}.login-terminal-candles i{position:absolute;left:var(--x);bottom:var(--b);height:var(--h);width:5px;border-radius:1px;background:#4dd2a2;color:#4dd2a2;animation:loginCandleShift 5.8s var(--d) ease-in-out infinite}.login-terminal-candles i:before{content:"";position:absolute;left:2px;top:-18px;width:1px;height:calc(100% + 36px);background:currentColor;opacity:.74}.login-terminal-candles i.down{background:#d26878;color:#d26878}
.login-terminal-volume{position:absolute;left:1%;right:1%;bottom:16%;height:86px;opacity:.11;border-top:1px solid rgba(108,177,205,.13)}.login-terminal-volume i{position:absolute;left:var(--x);bottom:0;width:2.7%;height:var(--h);max-width:22px;background:linear-gradient(to top,#2a9bc6,#66cde9);border-radius:2px 2px 0 0;transform-origin:center bottom;animation:loginVolumeShift 7s ease-in-out infinite alternate}
.login-terminal-readout,.login-terminal-spark{position:absolute;border:1px solid rgba(70,143,169,.18);background:rgba(8,30,40,.32);backdrop-filter:blur(8px);box-shadow:inset 0 1px rgba(255,255,255,.025);border-radius:13px;color:#86a8b6}.login-terminal-readout{padding:10px 13px;min-width:145px}.login-terminal-readout small,.login-terminal-spark small{display:block;font-size:8px;letter-spacing:1.45px;color:#5f8494}.login-terminal-readout strong{display:block;margin:5px 0 3px;color:#b9d6e1;font-size:12px}.login-terminal-readout span{font-size:9px}.login-terminal-readout-a{left:3.5%;top:17%}.login-terminal-readout-b{right:4%;top:24%}
.login-terminal-spark{width:190px;padding:9px 11px 7px}.login-terminal-spark svg{width:100%;height:48px;margin-top:4px}.login-terminal-spark polyline{fill:none;stroke:#36b9df;stroke-width:2;vector-effect:non-scaling-stroke;opacity:.63}.login-terminal-spark-a{left:6%;top:49%}.login-terminal-spark-b{right:8%;top:52%}.login-terminal-spark-b polyline{stroke:#51c99a}
@keyframes loginTerminalFlow{to{stroke-dashoffset:-220}}@keyframes loginCandleShift{0%,100%{transform:scaleY(.88);opacity:.65}50%{transform:scaleY(1.06);opacity:1}}@keyframes loginVolumeShift{from{transform:scaleY(.75)}to{transform:scaleY(1.08)}}
.login-public-topbar{position:relative;z-index:3;max-width:1280px;margin:0 auto;padding:25px 34px;display:flex;align-items:center;justify-content:space-between;gap:22px}.login-brand-public{position:static;transform:none}.login-brand-public .login-brand-mark{box-shadow:0 10px 30px rgba(20,155,205,.18)}.login-theme-switch{flex:0 0 auto}
.login-public-shell{position:relative;z-index:2;width:min(1280px,calc(100% - 68px));margin:58px auto 0;display:grid;grid-template-columns:minmax(0,1.16fr) minmax(365px,.72fr);align-items:center;gap:74px}
.login-public-intro{max-width:735px}.login-access-badge{display:inline-flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid #276377;background:rgba(12,47,61,.68);border-radius:999px;color:#86c9e0;font-size:9px;font-weight:800;letter-spacing:1.35px}.login-access-badge i{width:7px;height:7px;border-radius:50%;background:#55d6a4;box-shadow:0 0 12px rgba(85,214,164,.46)}
.login-public-intro h1{margin:25px 0 21px;font-size:clamp(43px,5vw,72px);line-height:.99;letter-spacing:-3.1px;color:#edf7fa;font-weight:760;max-width:800px}.login-public-intro h1 span{color:#7dc5df;font-weight:630}.login-public-lead{max-width:715px;margin:0;color:#93aeba;font-size:15px;line-height:1.78}.login-public-lead strong{color:#c9e1e9;font-weight:650}
.login-private-notice{display:flex;gap:13px;max-width:700px;margin-top:27px;padding:15px 17px;border:1px solid #264653;background:rgba(7,25,33,.71);border-radius:15px;box-shadow:inset 0 1px rgba(255,255,255,.03)}.login-private-notice>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;border:1px solid #285b70;color:#72cce9;background:#0c2734;flex:0 0 auto}.login-private-notice strong{display:block;color:#d8e9ee;font-size:12px;margin:1px 0 4px}.login-private-notice p{margin:0;color:#809ca8;font-size:11px;line-height:1.58}.login-private-notice b{color:#a9c4ce;font-weight:650}
.login-signal-strip{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.login-signal-strip span{padding:7px 9px;border-radius:8px;border:1px solid #213e49;background:rgba(10,28,36,.58);color:#7494a1;font-size:9px;letter-spacing:.25px}
.login-access-card{position:relative;inset:auto;transform:none;width:100%;max-width:none;padding:30px 30px 25px;border-radius:24px;background:linear-gradient(180deg,rgba(10,31,40,.94),rgba(8,24,32,.97));border:1px solid #2a4a57;box-shadow:0 34px 80px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.04);backdrop-filter:blur(18px)}.login-card-kicker{display:flex;align-items:center;gap:8px;color:#5fa9c2;font-size:8.5px;font-weight:800;letter-spacing:1.4px}.login-card-kicker span{width:17px;height:1px;background:#4cb9dd}.login-access-card .login-copy{margin:18px 0 23px}.login-access-card .login-copy h2{margin:0 0 7px;font-size:26px;letter-spacing:-.7px;color:#e7f1f5}.login-access-card .login-copy p{margin:0;color:#78939f;font-size:11px;line-height:1.5}.login-access-card .login-form{gap:14px}.login-access-card .login-form label>span{color:#83a1ae;font-size:9px;letter-spacing:.35px}.login-access-card .login-form input{height:46px;border-radius:11px;background:#081b23;border-color:#284653;color:#dfeef3}.login-access-card .login-submit{height:47px;margin-top:2px;border-radius:11px}.login-access-card .login-foot{display:flex;justify-content:space-between;gap:10px;margin-top:21px;padding-top:16px;border-top:1px solid #1e3945;color:#587581;font-size:9px}.login-setup-warning{margin:0 0 18px;padding:12px 13px;border:1px solid #7b5231;background:#3a2417;border-radius:11px;color:#edc18d}.login-setup-warning strong,.login-setup-warning span{display:block}.login-setup-warning strong{font-size:11px}.login-setup-warning span{margin-top:4px;font-size:9.5px;line-height:1.45;color:#cfa978}
.login-feature-showcase{position:relative;z-index:2;width:min(1280px,calc(100% - 68px));margin:116px auto 0;padding:34px 0 0;border-top:1px solid rgba(62,111,129,.25)}.login-feature-heading{max-width:760px}.login-feature-heading>span{color:#5fa9c2;font-size:9px;letter-spacing:1.4px;font-weight:800}.login-feature-heading h2{margin:10px 0 8px;color:#dcecf1;font-size:27px;letter-spacing:-.65px}.login-feature-heading p{margin:0;color:#718d99;font-size:11.5px;line-height:1.55}.login-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:24px}.login-feature-grid article{display:flex;gap:13px;min-height:125px;padding:18px;border:1px solid #213d49;background:rgba(8,27,35,.68);border-radius:15px}.login-feature-grid article>i{font-style:normal;color:#3c8199;font:700 9px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.8px;padding-top:2px}.login-feature-grid strong{display:block;color:#cfe1e8;font-size:12px;margin-bottom:7px}.login-feature-grid p{margin:0;color:#718e9a;font-size:10px;line-height:1.58}.login-risk-note{margin:17px 0 0;color:#57737f;font-size:9.5px;line-height:1.55}
html[data-theme="light"] .login-public-body{background:#eef5f7;color:#243f4b}html[data-theme="light"] .login-public-stage{background:linear-gradient(180deg,#f5fafb,#edf5f7 65%,#eaf3f6)}html[data-theme="light"] .login-terminal-backdrop{opacity:.46;background:radial-gradient(circle at 18% 26%,rgba(34,151,194,.12),transparent 31%),radial-gradient(circle at 77% 38%,rgba(34,165,131,.055),transparent 27%)}html[data-theme="light"] .login-terminal-grid{opacity:.18;background-image:linear-gradient(rgba(55,126,153,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(55,126,153,.12) 1px,transparent 1px)}html[data-theme="light"] .login-terminal-readout,html[data-theme="light"] .login-terminal-spark{background:rgba(246,251,252,.66);border-color:#c6dce4;color:#607b87}html[data-theme="light"] .login-terminal-readout strong{color:#315363}html[data-theme="light"] .login-public-intro h1{color:#173747}html[data-theme="light"] .login-public-intro h1 span{color:#3486a4}html[data-theme="light"] .login-public-lead{color:#5c7885}html[data-theme="light"] .login-public-lead strong{color:#315463}html[data-theme="light"] .login-private-notice{background:rgba(255,255,255,.72);border-color:#c4d7df}html[data-theme="light"] .login-private-notice strong{color:#2d4d5b}html[data-theme="light"] .login-private-notice p{color:#687f89}html[data-theme="light"] .login-signal-strip span{background:#f8fbfc;border-color:#d0e0e6;color:#5d7884}html[data-theme="light"] .login-access-card{background:rgba(255,255,255,.91);border-color:#c9dce4;box-shadow:0 30px 70px rgba(41,79,94,.14),inset 0 1px #fff}html[data-theme="light"] .login-access-card .login-copy h2{color:#244552}html[data-theme="light"] .login-access-card .login-copy p{color:#6c858f}html[data-theme="light"] .login-access-card .login-form input{background:#fff!important;color:#274956!important;border-color:#c7d9e1!important}html[data-theme="light"] .login-access-card .login-foot{border-color:#d9e6eb;color:#758c95}html[data-theme="light"] .login-feature-showcase{border-color:#ccdce2}html[data-theme="light"] .login-feature-heading h2{color:#254652}html[data-theme="light"] .login-feature-heading p{color:#6b838d}html[data-theme="light"] .login-feature-grid article{background:rgba(255,255,255,.76);border-color:#cfdee4}html[data-theme="light"] .login-feature-grid strong{color:#315360}html[data-theme="light"] .login-feature-grid p{color:#6a818b}html[data-theme="light"] .login-risk-note{color:#82969e}
@media(max-width:980px){.login-public-shell{grid-template-columns:1fr;gap:42px;margin-top:32px}.login-public-intro{max-width:none}.login-access-card{max-width:620px}.login-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-terminal-readout-b,.login-terminal-spark-b{display:none}}
@media(max-width:650px){.login-public-topbar{padding:18px 19px}.login-brand-public .login-brand-copy span{display:none}.login-public-shell,.login-feature-showcase{width:calc(100% - 30px)}.login-public-shell{margin-top:26px;gap:30px}.login-public-intro h1{font-size:40px;letter-spacing:-1.8px}.login-public-lead{font-size:13px}.login-access-card{padding:23px 20px 20px;border-radius:19px}.login-feature-showcase{margin-top:70px}.login-feature-grid{grid-template-columns:1fr}.login-terminal-readout,.login-terminal-spark{display:none}}
@media(prefers-reduced-motion:reduce){.login-terminal-line-live,.login-terminal-candles i,.login-terminal-volume i{animation:none!important}.login-terminal-line-live{stroke-dasharray:none!important}.login-terminal-backdrop{opacity:.62}}

/* Finora v0.11.34 — role-aware settings and tester access */
.admin-only.hidden,[data-capability].hidden,#main-nav .nav-item.hidden{display:none!important}
#calendar-published-results.hidden{display:none!important}
.settings-admin-area{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:13px;margin-top:13px}.settings-admin-users,.settings-user-access{padding:6px 16px 16px}.settings-admin-users .settings-group-head,.settings-user-access .settings-group-head{padding-bottom:11px}.settings-group-head small{display:block;color:#78909e;font-size:10px;line-height:1.45;margin-top:4px}.admin-user-create{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:10px;align-items:end;padding:14px 0 16px;border-top:1px solid #183544;border-bottom:1px solid #183544}.admin-user-create label{display:grid;gap:6px;min-width:0}.admin-user-create label>span{color:#8297a2;font-size:9px}.admin-user-create input{width:100%;height:40px;border:1px solid #244758;background:#071923;color:#e7f1f5;border-radius:9px;padding:0 11px;outline:none}.admin-user-create input:focus{border-color:#0ea9e9;box-shadow:0 0 0 3px #0ea9e914}.primary-admin-action{min-height:40px;border-color:#1675a0;background:#0b3950;color:#9bdcf5;font-weight:700}.admin-user-list{display:grid}.admin-user-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 1px;border-bottom:1px solid #173442}.admin-user-row:last-child{border-bottom:0}.admin-user-identity{min-width:0}.admin-user-identity>strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.admin-user-badge{display:inline-flex;align-items:center;min-height:20px;padding:3px 7px;border-radius:999px;border:1px solid #34505e;background:#10232d;color:#9db0b9;font-size:8px}.admin-user-badge.role{color:#7fc7e2;border-color:#285a70;background:#0c2b38}.admin-user-badge.on{border-color:#17683f;background:#103a29;color:#46df86}.admin-user-badge.warn{border-color:#765619;background:#382c12;color:#ffcf70}.admin-user-badge.off{border-color:#6e343d;background:#35191f;color:#ff8790}.admin-user-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.admin-user-actions .danger-soft{border-color:#69353e;color:#ff9ca4}.admin-user-owner{font-size:9px;color:#6f8b98}.user-access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px 0}.user-access-grid label{display:flex;align-items:center;gap:9px;min-height:40px;padding:8px 10px;border:1px solid #203e4e;background:#091c27;border-radius:9px;color:#b8c8cf;font-size:10px;cursor:pointer}.user-access-grid input{width:15px;height:15px;accent-color:#15aeea}.user-access-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:12px;border-top:1px solid #183544}.user-access-actions small{color:#718a96;font-size:9px;line-height:1.4}.error-text{color:#ff8790!important}
.admin-portfolio-source{height:34px;max-width:190px;border:1px solid #285166;background:#0a2230;color:#bcd7e2;border-radius:8px;padding:0 9px;font-size:9px;outline:none}html[data-theme="light"] .admin-portfolio-source{background:#fff;color:#29414d;border-color:#cbdce3}
html[data-theme="light"] .admin-user-create{border-color:#d9e5ea}html[data-theme="light"] .admin-user-create input{background:#fff;color:#254753;border-color:#c7d9e1}html[data-theme="light"] .admin-user-row{border-color:#dbe7eb}html[data-theme="light"] .user-access-grid label{background:#f7fafb;border-color:#d2e0e5;color:#486571}html[data-theme="light"] .user-access-actions{border-color:#dbe7eb}html[data-theme="light"] .admin-user-badge{background:#eef4f6;border-color:#cadce3;color:#607984}html[data-theme="light"] .admin-user-badge.role{background:#eaf6fa;color:#39778e}html[data-theme="light"] .admin-user-badge.on{background:#ebf8f0;color:#287b4b}html[data-theme="light"] .admin-user-badge.warn{background:#fff7e8;color:#93640b}html[data-theme="light"] .admin-user-badge.off{background:#fff0f1;color:#9d4550}
@media(max-width:1050px){.settings-admin-area{grid-template-columns:1fr}.admin-user-create{grid-template-columns:1fr 1fr}.admin-user-create button{grid-column:1/-1}}@media(max-width:650px){.admin-user-create{grid-template-columns:1fr}.admin-user-create button{grid-column:auto}.admin-user-row{align-items:flex-start;flex-direction:column}.admin-user-actions{justify-content:flex-start}.user-access-grid{grid-template-columns:1fr}.user-access-actions{align-items:stretch;flex-direction:column}.user-access-actions button{width:100%}}
html[data-finora-role="user"] [data-ai-ticker]{display:none!important}

/* Finora 0.11.36 — full-width market wave, calm showcase, lower brand */
.login-simple-body{margin:0;height:100vh;height:100dvh;min-height:100vh;background:#05131c;color:#eaf7fb;overflow:hidden;color-scheme:dark}
.login-simple-stage{position:relative;height:100vh;height:100dvh;min-height:0;box-sizing:border-box;overflow:hidden;padding:0 34px 16px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:radial-gradient(circle at 15% 22%,rgba(24,126,164,.13),transparent 32%),radial-gradient(circle at 82% 72%,rgba(25,112,149,.09),transparent 31%),linear-gradient(145deg,#05121b 0%,#071923 58%,#06131c 100%);isolation:isolate}
.login-visuals{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:.60}
.login-visuals:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,18,27,.22),rgba(5,18,27,.04) 44%,rgba(5,18,27,.25)),linear-gradient(180deg,rgba(5,18,27,.12),transparent 28%,rgba(5,18,27,.42))}
.login-visuals:before{content:"";position:absolute;inset:7% 2% 8%;background-image:linear-gradient(rgba(70,137,158,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(70,137,158,.035) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,transparent 0,#000 17%,#000 82%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 17%,#000 82%,transparent 100%);opacity:.65}
.login-visual-line{position:absolute;left:-8%;bottom:-4%;width:116%;height:75%;filter:drop-shadow(0 0 24px rgba(35,174,218,.09));animation:loginVisualLineDrift 34s ease-in-out infinite alternate;will-change:transform}
.login-visual-line-area{fill:url(#loginLineArea)}
.login-visual-line-path{fill:none;stroke:#35b6df;stroke-width:2.2;vector-effect:non-scaling-stroke;stroke-linecap:round;opacity:.82}
.login-visual-bars{position:absolute;right:-4%;top:13%;width:min(34vw,520px);height:36vh;min-height:270px;display:flex;align-items:flex-end;gap:clamp(12px,1.4vw,24px);padding:24px 30px 20px;border-left:1px solid rgba(68,139,166,.08);border-bottom:1px solid rgba(68,139,166,.09);transform:skewY(-2deg);animation:loginVisualBarsDrift 32s ease-in-out infinite alternate;will-change:transform}
.login-visual-bars i{display:block;flex:1;height:var(--h);min-width:14px;max-width:34px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,rgba(58,196,236,.42),rgba(28,119,156,.12));box-shadow:0 0 25px rgba(35,161,202,.06)}

.login-visual-donut{position:absolute;right:9%;bottom:3%;width:clamp(180px,18vw,320px);aspect-ratio:1;border-radius:50%;background:conic-gradient(rgba(56,198,232,.34) 0 35%,rgba(66,206,158,.28) 35% 60%,rgba(63,104,137,.19) 60% 82%,rgba(35,66,83,.18) 82% 100%);mask:radial-gradient(circle,transparent 0 47%,#000 48% 100%);-webkit-mask:radial-gradient(circle,transparent 0 47%,#000 48% 100%);opacity:.46;animation:loginVisualDonutDrift 38s ease-in-out infinite alternate;will-change:transform}
@keyframes loginVisualLineDrift{from{transform:translate3d(-2%,1%,0) scale(1)}to{transform:translate3d(6%,-3%,0) scale(1.05)}}

@keyframes loginVisualBarsDrift{from{transform:translate3d(4%,2%,0) skewY(-2deg)}to{transform:translate3d(-7%,-4%,0) skewY(-2deg)}}

@keyframes loginVisualDonutDrift{from{transform:translate3d(8%,5%,0) rotate(-10deg) scale(.92)}to{transform:translate3d(-10%,-7%,0) rotate(18deg) scale(1.06)}}
.login-simple-header{position:relative;z-index:3;width:min(1160px,100%);box-sizing:border-box;margin:0 auto;padding:42px 0 0;display:flex;align-items:center;justify-content:flex-start;gap:18px}
.login-simple-header .login-brand{margin:0}.login-simple-header .login-brand-mark{width:42px;height:42px;border-radius:12px;font-size:22px}.login-simple-header .login-brand strong{font-size:18px}.login-simple-header .login-brand span{font-size:9px;letter-spacing:.25px}
.login-private-pill{display:flex;align-items:center;gap:8px;color:#6f98a8;font-size:8px;font-weight:800;letter-spacing:1.15px}.login-private-pill i{width:6px;height:6px;border-radius:50%;background:#4dd39c;box-shadow:0 0 11px rgba(77,211,156,.46)}
.login-simple-shell{position:relative;z-index:2;width:min(1160px,100%);height:100%;min-height:0;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 370px;align-items:center;gap:80px;padding:22px 0 20px;box-sizing:border-box}
.login-simple-intro{min-width:0;max-width:650px}.login-eyebrow{margin:0 0 12px;color:#4e9db8;font-size:9px;font-weight:850;letter-spacing:1.55px}.login-simple-intro h1{max-width:650px;margin:0;color:#eef7fa;font-size:clamp(42px,4.1vw,60px);line-height:1.04;letter-spacing:-2.45px;font-weight:760}.login-hero-subtitle{margin:12px 0 0;color:#83c3d8;font-size:clamp(17px,1.55vw,21px);font-weight:620;letter-spacing:-.35px}.login-simple-lead{max-width:610px;margin:14px 0 0;color:#8aa6b2;font-size:12.5px;line-height:1.65}.login-registration-note{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:14px;color:#688896;font-size:10px}.login-registration-note strong{color:#a9c3cd;font-size:10px}
.login-simple-card{width:370px;max-width:100%;padding:28px;border-radius:18px;background:rgba(8,27,37,.93);border:1px solid #284653;box-shadow:0 30px 80px rgba(0,0,0,.30),inset 0 1px rgba(255,255,255,.035);backdrop-filter:blur(16px)}.login-simple-card .login-copy{margin:0 0 21px}.login-simple-card .login-copy h2{margin:0 0 6px;font-size:24px;color:#e9f3f7;letter-spacing:-.55px}.login-simple-card .login-copy p{font-size:10px;color:#76939f}.login-simple-card .login-form{gap:13px}.login-simple-card .login-form input{height:45px;background:#071b24;border-color:#244552}.login-simple-card .login-submit{height:45px}.login-simple-card .login-foot{justify-content:space-between;gap:12px;margin-top:19px;padding-top:14px;font-size:8.5px}
.login-feature-rotator{position:relative;width:min(470px,100%);height:210px;margin-top:24px;perspective:900px}.login-feature-card{position:absolute;inset:0;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) 145px;gap:20px;align-items:center;padding:24px 25px;border:1px solid rgba(58,116,139,.33);border-radius:20px;background:linear-gradient(145deg,rgba(8,31,42,.92),rgba(8,25,34,.82));box-shadow:0 24px 70px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.035);backdrop-filter:blur(14px);opacity:0;pointer-events:none;transform:translate3d(-70px,22px,0) scale(.82);transform-origin:left center}.login-feature-card.is-active{opacity:1;pointer-events:auto;animation:loginFeatureEnter 1.8s cubic-bezier(.2,.82,.2,1) both}.login-feature-card.is-exiting{animation:loginFeatureExit 1.5s cubic-bezier(.55,.06,.68,.19) both}.login-feature-copy small{display:block;margin-bottom:9px;color:#4e9db8;font-size:8px;font-weight:850;letter-spacing:1.35px}.login-feature-copy strong{display:block;color:#dcecf2;font-size:22px;letter-spacing:-.55px}.login-feature-copy p{margin:9px 0 0;color:#7996a2;font-size:10.5px;line-height:1.58}.login-feature-mini{width:145px;height:92px;justify-self:end;opacity:.78}.mini-line,.mini-live{overflow:visible}.mini-line polyline,.mini-live polyline{fill:none;stroke:#40b9df;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 8px rgba(64,185,223,.22))}.mini-live polyline{stroke:#55d39f}.mini-bars,.mini-dividends,.mini-predict{display:flex;align-items:flex-end;gap:8px}.mini-bars i,.mini-dividends i{display:block;flex:1;border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,#43bde1,#176f92)}.mini-bars i{height:var(--h)}.mini-dividends i:nth-child(1){height:30%}.mini-dividends i:nth-child(2){height:47%}.mini-dividends i:nth-child(3){height:38%}.mini-dividends i:nth-child(4){height:68%}.mini-dividends i:nth-child(5){height:55%}.mini-dividends i:nth-child(6){height:83%;background:linear-gradient(180deg,#53d39e,#258c69)}.mini-predict{align-items:center;justify-content:center;gap:7px}.mini-predict span{width:16px;border-radius:999px;background:#39bce6;box-shadow:0 0 16px rgba(57,188,230,.18)}.mini-predict span:nth-child(1){height:28%}.mini-predict span:nth-child(2){height:44%}.mini-predict span:nth-child(3){height:76%;background:#55d39f}.mini-predict span:nth-child(4){height:56%}.mini-predict span:nth-child(5){height:88%;background:#55d39f}.mini-news{display:grid;align-content:center;gap:10px}.mini-news span{height:8px;border-radius:999px;background:linear-gradient(90deg,#3baed3,rgba(59,174,211,.08))}.mini-news span:nth-child(2){width:78%}.mini-news span:nth-child(3){width:58%}.mini-quarter{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-content:center}.mini-quarter b{display:grid;place-items:center;height:38px;border:1px solid #2e6377;border-radius:10px;background:#0b2a37;color:#78c5de;font-size:10px}.login-feature-dots{position:absolute;left:22px;bottom:-20px;display:flex;gap:6px}.login-feature-dots i{width:5px;height:5px;border-radius:50%;background:#315563;transition:.25s ease}.login-feature-dots i.active{width:16px;border-radius:999px;background:#4bb9dc}
@keyframes loginFeatureEnter{0%{opacity:0;transform:translate3d(-78px,24px,0) scale(.80)}58%{opacity:1;transform:translate3d(8px,-2px,0) scale(1.018)}100%{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@keyframes loginFeatureExit{0%{opacity:1;transform:translate3d(0,0,0) scale(1)}100%{opacity:0;transform:translate3d(65px,-18px,0) scale(.88)}}
.login-simple-footer{position:relative;z-index:2;width:min(1160px,100%);margin:0 auto;padding:10px 0 3px;border-top:1px solid rgba(48,89,105,.23);color:#5d7e8a;font-size:10px;letter-spacing:.16px;text-align:center}
@media(max-width:980px) and (min-width:721px){.login-simple-shell{grid-template-columns:minmax(0,1fr) 345px;gap:38px}.login-simple-card{width:345px;padding:24px}.login-simple-intro h1{font-size:clamp(39px,5vw,50px);letter-spacing:-2px}.login-feature-rotator{width:min(430px,100%);height:196px}.login-feature-card{grid-template-columns:minmax(0,1fr) 120px;padding:20px 21px}.login-feature-mini{width:120px;height:82px}.login-visual-bars{right:-16%;width:48vw;opacity:.48}.login-visual-donut{right:-7%}}
@media(max-height:780px) and (min-width:721px){.login-simple-header{padding-top:30px}.login-simple-shell{padding:10px 0 10px}.login-simple-intro h1{font-size:clamp(38px,3.8vw,52px)}.login-hero-subtitle{margin-top:8px;font-size:17px}.login-simple-lead{margin-top:10px;font-size:11.5px;line-height:1.52}.login-registration-note{margin-top:10px}.login-feature-rotator{height:178px;margin-top:16px}.login-feature-card{padding:18px 20px}.login-feature-copy p{margin-top:6px;line-height:1.48}.login-simple-card{padding:23px}.login-simple-footer{padding-top:7px}}
@media(max-width:720px){.login-simple-body{height:auto;min-height:100vh;overflow:auto}.login-simple-stage{height:auto;min-height:100vh;display:block;padding:0 18px 20px}.login-simple-header{padding-top:28px}.login-simple-shell{height:auto;min-height:auto;grid-template-columns:1fr;gap:34px;padding:42px 0 54px}.login-simple-intro h1{font-size:39px;letter-spacing:-1.65px}.login-hero-subtitle{font-size:17px}.login-simple-lead{font-size:12px}.login-feature-rotator{height:224px}.login-feature-card{grid-template-columns:1fr;padding:21px 20px}.login-feature-mini{display:none}.login-simple-card{width:min(430px,100%);padding:23px 20px}.login-simple-footer{margin:0}.login-visual-bars{top:7%;right:-30%;opacity:.28}.login-visual-line{width:125%;height:55%}.login-visual-donut{width:190px;right:-19%;bottom:7%;opacity:.26}}
@media(prefers-reduced-motion:reduce){.login-visual-line,.login-visual-bars,.login-visual-donut{animation:none!important}.login-feature-card{animation:none!important;transform:none!important;transition:opacity .18s ease}.login-feature-card.is-active{opacity:1}.login-feature-card.is-exiting{opacity:0}.login-feature-dots{display:none}}

/* =========================================================
   Finora v0.11.38 — role-aware, symmetric Settings workspace
   ========================================================= */
.settings-page{max-width:1420px}
.settings-heading{margin-bottom:20px}.settings-heading>div{display:grid;gap:5px}.settings-heading p{margin:0;color:#7f99a7;font-size:11px}
.settings-zone-title{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 12px;padding:13px 16px;border:1px solid #28576d;border-radius:12px;background:linear-gradient(100deg,#10394e,#0b2939 62%,#091f2d);box-shadow:inset 0 1px 0 #ffffff08}
.settings-zone-title>div{display:grid;gap:3px}.settings-zone-title span{color:#67d2ff;font-size:8px;font-weight:900;letter-spacing:1.35px}.settings-zone-title h3{margin:0;color:#dff6ff;font-size:17px;letter-spacing:-.25px}.settings-zone-title small{color:#83a7b7;font-size:10px;text-align:right}
.settings-zone-title-admin{margin-top:27px;border-color:#2b4f68;background:linear-gradient(100deg,#122f46,#0c2638 62%,#0a202f)}
.settings-user-zone{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:14px}
.settings-user-zone>.settings-section{height:100%;display:flex;flex-direction:column;overflow:hidden}
.settings-user-zone .setting-row{min-height:68px}.settings-user-zone .own-t212-credentials{margin-top:auto}
.settings-user-zone .settings-group-head{min-height:78px}.settings-group-head small{display:block;margin-top:4px;color:#7895a3;font-size:9px;line-height:1.4}
.settings-admin-zone{display:block}.settings-admin-overview-grid{display:grid;grid-template-columns:1fr;gap:14px}.settings-admin-zone .settings-admin-area,.settings-admin-zone .settings-system-grid{gap:14px}
.settings-reset-layout{max-width:190px;white-space:normal;line-height:1.25;text-align:center}.read-only-pill{white-space:nowrap}
html[data-theme="light"] .settings-heading p{color:#6a818d}
html[data-theme="light"] .settings-zone-title{border-color:#b8dce9;background:linear-gradient(100deg,#e7f7fd,#f1faff 62%,#f8fcfe);box-shadow:inset 0 1px 0 #fff}
html[data-theme="light"] .settings-zone-title span{color:#087fad}html[data-theme="light"] .settings-zone-title h3{color:#1f485a}html[data-theme="light"] .settings-zone-title small{color:#668392}
@media(max-width:1180px){.settings-user-zone{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-user-zone>[data-settings-section="trading212"]{grid-column:1/-1}}
@media(max-width:760px){.settings-user-zone{grid-template-columns:1fr}.settings-user-zone>[data-settings-section="trading212"]{grid-column:auto}.settings-zone-title{align-items:flex-start;flex-direction:column}.settings-zone-title small{text-align:left}.settings-reset-layout{max-width:none}}

/* =========================================================
   Finora v0.11.39 — Settings workspace + crypto heatmap parity
   ========================================================= */
.settings-page{
  max-width:1540px!important;
  display:grid;
  grid-template-columns:238px minmax(0,1fr);
  column-gap:18px;
  align-items:start;
}
.settings-page>.settings-heading{grid-column:1/-1}
.settings-page>.settings-local-nav{grid-column:1;grid-row:2/span 40}
.settings-page>:not(.settings-heading):not(.settings-local-nav){grid-column:2}
.settings-local-nav{
  position:sticky;top:18px;z-index:4;
  border:1px solid #214555;border-radius:16px;
  background:linear-gradient(180deg,#0c2431,#091c27);
  box-shadow:0 14px 34px #00000018,inset 0 1px 0 #ffffff08;
  overflow:hidden;
}
.settings-local-nav-head{padding:17px 16px 14px;border-bottom:1px solid #1b3b49;display:grid;gap:4px}
.settings-local-nav-head>span{font-size:8px;font-weight:900;letter-spacing:1.45px;color:#4cc8f5}
.settings-local-nav-head>strong{font-size:14px;letter-spacing:-.2px}
.settings-local-nav-head>small{font-size:9px;line-height:1.45;color:#7895a2}
.settings-local-nav nav{display:grid;gap:3px;padding:9px}
.settings-local-nav nav button{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;border:0;border-radius:9px;background:transparent;color:#91aab5;text-align:left;padding:9px 8px;cursor:pointer;transition:.16s ease;font:inherit}
.settings-local-nav nav button:hover{background:#102d3a;color:#e6f4f8}
.settings-local-nav nav button.active{background:linear-gradient(90deg,#123f54,#0d3142);color:#eefaff;box-shadow:inset 3px 0 #29bdf0}
.settings-local-nav nav button>span{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#102d39;color:#5fbcd9;font-size:8px;font-weight:900}
.settings-local-nav nav button.active>span{background:#17475a;color:#89e1ff}
.settings-local-nav nav button>b{font-size:10px;font-weight:720;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-local-nav-note{margin:2px 9px 10px;padding:11px;border:1px solid #1f4050;border-radius:10px;background:#0a202b;display:grid;gap:4px}
.settings-local-nav-note b{font-size:9px;color:#c9e7f1}.settings-local-nav-note span{font-size:8.5px;line-height:1.5;color:#718d99}
.settings-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:0 0 17px}
.settings-summary-card{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;padding:13px 14px;border:1px solid #1f4050;border-radius:13px;background:linear-gradient(160deg,#0d2633,#0a1f2b);box-shadow:inset 0 1px 0 #ffffff07}
.settings-summary-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#103449;color:#6bd8ff;font-size:12px;font-weight:900}
.settings-summary-card div{min-width:0}.settings-summary-card small,.settings-summary-card em{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-summary-card small{color:#6f8d9a;font-size:8px;font-style:normal}.settings-summary-card strong{display:block;margin:3px 0 2px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-summary-card em{color:#7894a0;font-size:8.5px;font-style:normal}
.settings-zone-title{margin-top:8px!important}
.settings-zone-title-admin{margin-top:24px!important}
.settings-user-zone{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.settings-user-zone>[data-settings-section="trading212"]{grid-column:1/-1}
.settings-user-zone>.settings-section{min-height:0!important}
.settings-user-zone .settings-group-head{min-height:0!important}
.settings-admin-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.settings-admin-overview-grid>[data-settings-section="storage"]{grid-column:1/-1}
.settings-system-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.settings-api-section,.settings-admin-area,.domain-watch-grid{scroll-margin-top:18px}
.settings-section,[data-settings-anchor]{scroll-margin-top:18px}
.settings-api-heading{position:relative}
.settings-page .settings-subheading{margin-top:21px}

html[data-theme="light"] .settings-local-nav{border-color:#c6dfe8;background:linear-gradient(180deg,#f8fcfe,#eef7fa);box-shadow:0 12px 30px #234b5a0d,inset 0 1px #fff}
html[data-theme="light"] .settings-local-nav-head{border-color:#d7e8ee}html[data-theme="light"] .settings-local-nav-head>span{color:#087fac}html[data-theme="light"] .settings-local-nav-head>strong{color:#173d4c}html[data-theme="light"] .settings-local-nav-head>small{color:#718995}
html[data-theme="light"] .settings-local-nav nav button{color:#597480}html[data-theme="light"] .settings-local-nav nav button:hover{background:#e7f4f8;color:#173d4c}html[data-theme="light"] .settings-local-nav nav button.active{background:linear-gradient(90deg,#dff2f9,#edf8fc);color:#123b4a;box-shadow:inset 3px 0 #0ba8df}
html[data-theme="light"] .settings-local-nav nav button>span{background:#e5f3f7;color:#1b7698}html[data-theme="light"] .settings-local-nav nav button.active>span{background:#cfebf5;color:#086d94}
html[data-theme="light"] .settings-local-nav-note{border-color:#d2e5eb;background:#f4fafc}html[data-theme="light"] .settings-local-nav-note b{color:#264d5d}html[data-theme="light"] .settings-local-nav-note span{color:#6e8792}
html[data-theme="light"] .settings-summary-card{border-color:#c9dfe7;background:linear-gradient(160deg,#fff,#f5fafc);box-shadow:0 7px 18px #234b5a0b}html[data-theme="light"] .settings-summary-icon{background:#e5f4fa;color:#087da8}html[data-theme="light"] .settings-summary-card strong{color:#173c4b}html[data-theme="light"] .settings-summary-card small,html[data-theme="light"] .settings-summary-card em{color:#6b8590}

/* Small crypto tiles now use the exact same continuous tone variables as the
   primary cards. Geometry remains fixed; only the 24h heat tone transitions. */
.crypto-primary-card,
.crypto-mini-card{
  background:linear-gradient(145deg,var(--heat-top),var(--heat-bottom))!important;
  border-color:var(--heat-border)!important;
  transition:--heat-top 2.40s cubic-bezier(.22,.61,.36,1),
             --heat-bottom 2.40s cubic-bezier(.22,.61,.36,1),
             --heat-border 2.40s cubic-bezier(.22,.61,.36,1),
             box-shadow .18s ease!important;
}
.crypto-mini-card.up,.crypto-mini-card.down,.crypto-mini-card.flat{
  background:linear-gradient(145deg,var(--heat-top),var(--heat-bottom))!important;
  border-color:var(--heat-border)!important;
}
.crypto-mini-card .crypto-mini-ident strong,.crypto-mini-card .crypto-mini-price>strong{color:#f3f8fa!important}
.crypto-mini-card .crypto-mini-ident span{color:#b9ccd4!important}
.crypto-mini-card .crypto-spark-line{stroke:#d8edf5!important;stroke-width:1.65!important;opacity:.92}
.crypto-mini-card .crypto-spark-area{fill:#d7edf50d!important}
html[data-theme="light"] .crypto-primary-card,
html[data-theme="light"] .crypto-mini-card{
  background:linear-gradient(145deg,color-mix(in srgb,var(--heat-top) 25%,white),color-mix(in srgb,var(--heat-bottom) 25%,white))!important;
  border-color:var(--heat-border)!important;
}
html[data-theme="light"] .crypto-mini-card .crypto-mini-ident strong,html[data-theme="light"] .crypto-mini-card .crypto-mini-price>strong{color:#173440!important}
html[data-theme="light"] .crypto-mini-card .crypto-mini-ident span{color:#59727d!important}
html[data-theme="light"] .crypto-mini-card .crypto-spark-line{stroke:#315c6d!important}

@media(max-width:1280px){.settings-page{grid-template-columns:210px minmax(0,1fr)}.settings-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.settings-page{display:block!important}.settings-local-nav{position:static!important;margin-bottom:13px}.settings-local-nav nav{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-admin-overview-grid,.settings-system-grid{grid-template-columns:1fr!important}}
@media(max-width:620px){.settings-local-nav nav,.settings-summary-grid,.settings-user-zone{grid-template-columns:1fr!important}.settings-user-zone>[data-settings-section="trading212"]{grid-column:auto}.settings-local-nav nav button>b{white-space:normal}}

/* ================================================================
   Finora v0.11.40 — Compact single-pane Settings workspace
   Each navigation item shows exactly one content-driven full-width panel.
   ================================================================ */
.settings-page-v3{
  max-width:1420px!important;
  display:grid!important;
  grid-template-columns:220px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  column-gap:18px!important;
  align-items:start!important;
}
.settings-page-v3>.settings-heading{grid-column:1/-1!important;grid-row:1!important;margin-bottom:14px!important}
.settings-page-v3>.settings-local-nav{grid-column:1!important;grid-row:2!important;position:sticky!important;top:16px!important;align-self:start!important}
.settings-page-v3>.settings-workspace-main{grid-column:2!important;grid-row:2!important;min-width:0!important;width:100%!important}
.settings-workspace-stage{width:100%;min-width:0}
.settings-workspace-pane{display:none;width:100%;min-width:0;margin:0!important;box-sizing:border-box}
.settings-workspace-pane.active{display:block}
.settings-workspace-pane .settings-group{min-height:0!important}
.settings-workspace-pane.settings-category-card{padding:0 18px 8px!important;min-height:0!important;height:auto!important;border-radius:15px!important;overflow:hidden}
.settings-workspace-pane>.settings-group-head{
  position:relative;
  margin:0 -18px 0!important;
  padding:15px 18px 14px 22px!important;
  min-height:0!important;
  gap:12px!important;
  background:linear-gradient(100deg,#0d3f57 0%,#0c2e40 52%,#0a2533 100%)!important;
  border-bottom:1px solid #28576c!important;
}
.settings-workspace-pane .settings-group-head::before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:4px;
  background:linear-gradient(180deg,#28c4ff,#0c88c4);
  box-shadow:0 0 18px #21baf055;
}
.settings-workspace-pane>.settings-group-head .settings-group-icon{
  width:38px!important;height:38px!important;border-radius:11px!important;
  background:linear-gradient(145deg,#10658b,#0a405b)!important;
  color:#a8eaff!important;border:1px solid #2a7391!important;
  display:grid;place-items:center;font-size:13px;font-weight:850;
}
.settings-workspace-pane>.settings-group-head h3,
.settings-workspace-pane>.settings-group-head .settings-group-title h3{font-size:15px!important;color:#eefaff!important;letter-spacing:-.15px}
.settings-workspace-pane>.settings-group-head small{color:#9dc2d0!important;font-size:9.5px!important;line-height:1.4!important;margin-top:3px!important}
.settings-workspace-pane .setting-row{padding:13px 2px!important;min-height:0!important;gap:18px!important}
.settings-workspace-pane .setting-row strong{font-size:11.5px!important}
.settings-workspace-pane .setting-row small{font-size:9.5px!important;line-height:1.4!important;margin-top:3px!important}
.settings-workspace-pane .own-t212-credentials{margin:12px 0 5px!important}
.settings-workspace-pane .settings-subsection{margin-top:10px;padding-top:2px;border-top:1px solid #1d3c4c}
.settings-workspace-pane .settings-subsection>.settings-group-head{position:relative;background:transparent!important;border-bottom:1px solid #1d3c4c!important;margin:0!important;padding:14px 2px 11px!important;min-height:0!important}
.settings-workspace-pane .settings-subsection>.settings-group-head::before{display:none}
.settings-workspace-pane .settings-subsection>.settings-group-head .settings-group-icon{width:32px!important;height:32px!important;border-radius:9px!important}

/* API services are rows inside one category card, never a sparse card grid. */
.settings-workspace-pane .api-grid{grid-template-columns:1fr!important;gap:0!important;align-items:start!important}
.settings-workspace-pane .settings-api-row{display:grid!important;grid-template-columns:44px minmax(0,1fr) auto!important;align-items:center!important;gap:13px!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:13px 2px!important;border:0!important;border-top:1px solid #183544!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.settings-workspace-pane .settings-api-row:first-child{border-top:0!important}
.settings-workspace-pane .settings-api-row.openai-api-card{grid-template-columns:44px minmax(0,1fr) auto!important;align-items:start!important}
.settings-workspace-pane .settings-api-row .api-icon{width:38px!important;height:38px!important;border-radius:10px!important}
.settings-workspace-pane .settings-api-row h3{font-size:12.5px!important;margin-bottom:2px!important}
.settings-workspace-pane .settings-api-row .api-actions{align-self:center!important}
.settings-services-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important}
.settings-services-head .settings-category-subtitle{grid-column:1/-1!important;margin-top:1px!important}
.settings-services-head .settings-api-sync-btn{grid-column:2!important;grid-row:1!important;white-space:nowrap}

/* Domain Watch is one category rectangle with compact full-width domain rows. */
.settings-domain-list{display:grid!important;grid-template-columns:1fr!important;gap:0!important;margin:0!important}
.settings-domain-row{border:0!important;border-top:1px solid #183544!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:14px 2px!important;min-height:0!important}
.settings-domain-row:first-child{border-top:0!important}

/* Informational, non-editable system facts live below the active setting pane. */
.settings-info-footer{margin-top:22px;padding-top:18px;border-top:1px solid #1c3948}
.settings-info-footer-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 1px 11px}
.settings-info-footer-head>div>span{display:block;color:#29bdf0;font-size:8px;font-weight:850;letter-spacing:1.15px;margin-bottom:4px}
.settings-info-footer-head h3{margin:0;font-size:13px;color:#ddecf2}
.settings-info-footer-head>small{max-width:520px;text-align:right;color:#718b97;font-size:8.8px;line-height:1.4}
.settings-summary-grid-bottom{margin:0 0 11px!important;gap:9px!important}
.settings-summary-grid-bottom .settings-summary-card{padding:10px 12px!important;border-radius:11px!important;grid-template-columns:32px minmax(0,1fr)!important;gap:9px!important;min-height:0!important}
.settings-summary-grid-bottom .settings-summary-icon{width:30px!important;height:30px!important;border-radius:9px!important}
.settings-info-stack{display:grid;grid-template-columns:1fr;gap:9px}
.settings-info-card{width:100%;min-height:0!important;height:auto!important;margin:0!important;padding:0 16px 6px!important;border-radius:12px!important}
.settings-info-card>.settings-group-head{padding:12px 2px 10px!important;min-height:0!important}
.settings-info-card .setting-row{padding:10px 2px!important;min-height:0!important}
.settings-info-card .setting-row strong{font-size:10.5px!important}.settings-info-card .setting-row small{font-size:9px!important}

html[data-theme="light"] .settings-workspace-pane>.settings-group-head{
  background:linear-gradient(100deg,#d9f1fa 0%,#e9f7fb 56%,#f7fcfe 100%)!important;
  border-bottom-color:#b9dce9!important;
}
html[data-theme="light"] .settings-workspace-pane>.settings-group-head h3,
html[data-theme="light"] .settings-workspace-pane>.settings-group-head .settings-group-title h3{color:#153e4e!important}
html[data-theme="light"] .settings-workspace-pane>.settings-group-head small{color:#5d7b88!important}
html[data-theme="light"] .settings-workspace-pane>.settings-group-head .settings-group-icon{background:linear-gradient(145deg,#bfe8f6,#dff4fb)!important;color:#087da8!important;border-color:#9ed4e8!important}
html[data-theme="light"] .settings-workspace-pane .settings-subsection{border-top-color:#d9e8ed}
html[data-theme="light"] .settings-workspace-pane .settings-subsection>.settings-group-head{border-bottom-color:#d9e8ed!important}
html[data-theme="light"] .settings-workspace-pane .settings-api-row,
html[data-theme="light"] .settings-domain-row{border-top-color:#dce9ee!important}
html[data-theme="light"] .settings-info-footer{border-top-color:#d4e4ea}
html[data-theme="light"] .settings-info-footer-head h3{color:#244b5a}
html[data-theme="light"] .settings-info-footer-head>small{color:#6f8893}

@media(max-width:900px){
  .settings-page-v3{display:block!important}
  .settings-page-v3>.settings-local-nav{position:static!important;margin-bottom:13px!important}
  .settings-page-v3>.settings-workspace-main{width:100%!important}
  .settings-services-head{grid-template-columns:1fr!important}
  .settings-services-head .settings-api-sync-btn{grid-column:1!important;grid-row:auto!important;justify-self:start;margin-top:8px}
  .settings-info-footer-head{align-items:flex-start;flex-direction:column;gap:5px}
  .settings-info-footer-head>small{text-align:left}
}
@media(max-width:650px){
  .settings-workspace-pane .setting-row{align-items:flex-start;flex-direction:column;gap:9px!important}
  .settings-workspace-pane .settings-api-row,.settings-workspace-pane .settings-api-row.openai-api-card{grid-template-columns:38px minmax(0,1fr)!important}
  .settings-workspace-pane .settings-api-row .api-actions{grid-column:2!important;justify-content:flex-start!important}
  .settings-summary-grid-bottom{grid-template-columns:1fr!important}
}

/* v0.11.41 — destructive user action stays visually distinct from reversible disable. */
.admin-user-actions .admin-delete-user{font-size:9px;padding:7px 10px;background:#35191f;color:#ff9ca4;border-color:#7b3540}.admin-user-actions .admin-delete-user:hover{background:#4a1d26;border-color:#b94b5c;color:#ffd2d6}


/* v0.11.46 — dividend totals + compact projection summary. */
#dividend-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1100px){#dividend-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){#dividend-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){#dividend-metrics{grid-template-columns:1fr}}


/* =========================================================
   Finora v0.11.47 — dividend timeline: actual vs current vs projection
   ========================================================= */
#dividend-projection-chart .projection-year-closed .projection-bar-fill,
#dividend-projection-chart .projection-year-current .projection-bar-fill{
  opacity:1!important;
  filter:saturate(1.05)!important;
  background:linear-gradient(180deg,#42e895,#159b5b)!important;
  box-shadow:0 0 11px #29d77f3d!important;
}
#dividend-projection-chart .projection-bar-col.projection-year-future .projection-bar-fill{
  opacity:.52!important;
  filter:saturate(.68)!important;
  background:linear-gradient(180deg,#42e895,#159b5b)!important;
  box-shadow:0 0 7px #29d77f1f!important;
}
#dividend-projection-chart .projection-year-closed .projection-bar-value,
#dividend-projection-chart .projection-year-current .projection-bar-value{
  color:#d8f7e6!important;
  font-weight:900!important;
}
#dividend-projection-chart .projection-year-closed>small,
#dividend-projection-chart .projection-year-current>small{
  color:#b9eed1!important;
  font-weight:800!important;
}
#dividend-projection-chart .projection-year-future .projection-bar-value,
#dividend-projection-chart .projection-year-future>small{
  color:#708d7d!important;
}
#dividend-projection-chart .projection-bar-col.projection-year-future:hover .projection-bar-fill{
  filter:saturate(.8) brightness(1.08)!important;
}
html[data-theme="light"] #dividend-projection-chart .projection-bar-col.projection-year-future .projection-bar-fill{
  opacity:.44!important;
  filter:saturate(.62)!important;
}
html[data-theme="light"] #dividend-projection-chart .projection-year-closed .projection-bar-value,
html[data-theme="light"] #dividend-projection-chart .projection-year-current .projection-bar-value{
  color:#146b44!important;
}

/* Finora v1.0.2 — topbar date + Trading 212 market-session ticker */
.topbar{gap:16px}
.topbar-left{flex:0 0 auto;min-width:0}
.finora-greeting{display:flex;flex-direction:column;justify-content:center;min-width:0}
.finora-greeting #finora-date{display:block;margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.2;letter-spacing:.01em}
.market-status-ticker{flex:1 1 460px;min-width:240px;max-width:690px;height:38px;border:1px solid #1b3948;background:linear-gradient(180deg,#091c27,#071720);border-radius:11px;overflow:hidden;box-shadow:inset 0 1px 0 #ffffff05}
.market-status-viewport{height:100%;overflow:hidden;display:flex;align-items:center;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.market-status-track{display:flex;align-items:center;width:max-content;white-space:nowrap;will-change:transform;animation:finora-market-ticker var(--market-ticker-duration,30s) linear infinite}
.market-status-ticker:hover .market-status-track{animation-play-state:paused}
.market-status-group{display:inline-flex;align-items:center;gap:14px;padding-right:14px}
.market-status-item{display:inline-flex;align-items:center;gap:7px;color:#a8bac3;font-size:9px;font-weight:700;letter-spacing:.02em}
.market-status-item i{width:7px;height:7px;border-radius:50%;background:#70818a;box-shadow:0 0 10px #70818a55}
.market-status-item strong{color:#e6f2f6;font-size:10px;letter-spacing:.05em}.market-status-item b{font-weight:700;color:#91a4ad}
.market-status-item.open i{background:#31d982;box-shadow:0 0 11px #31d98288}.market-status-item.open b{color:#63e9a4}
.market-status-item.closed i{background:#ff6470;box-shadow:0 0 9px #ff647066}.market-status-item.closed b{color:#d9979c}
.market-status-separator{color:#315161;font-size:7px;opacity:.8}
.market-status-loading{display:inline-flex;align-items:center;height:38px;padding:0 18px;color:#75909d;font-size:9px}
@keyframes finora-market-ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.market-status-track{animation:none;transform:none}.market-status-group[aria-hidden="true"]{display:none}}
@media(max-width:1180px){.market-status-ticker{max-width:420px;flex-basis:300px}.top-theme-switch{display:none}}
@media(max-width:900px){.topbar{height:auto;min-height:76px;flex-wrap:wrap;padding:8px 0 10px}.market-status-ticker{order:3;flex:1 0 100%;max-width:none}.top-actions{margin-left:auto}.finora-greeting #finora-date{font-size:10px}}

/* Finora v1.0.3 — left-aligned greeting, unique venue ticker, amplified real hourly meter */
.finora-greeting{align-items:flex-start!important;text-align:left!important}
.finora-greeting h1,.finora-greeting #finora-date{text-align:left!important;width:100%}
.market-status-track{animation:none!important;transform:none}
.market-status-track.is-scrolling{animation:finora-market-ticker var(--market-ticker-duration,30s) linear infinite!important}
.market-status-ticker:hover .market-status-track.is-scrolling{animation-play-state:paused!important}
.portfolio-day-meter-fill{position:absolute;left:0;right:0;bottom:var(--meter-fill-bottom);height:var(--meter-fill-height);border-radius:9px;pointer-events:none;opacity:.64;transition:bottom .55s cubic-bezier(.22,.7,.28,1),height .55s cubic-bezier(.22,.7,.28,1),background .25s ease,box-shadow .25s ease}
.portfolio-day-meter-fill.positive{background:linear-gradient(180deg,#39dc88aa,#1baa6890);box-shadow:0 0 13px #2bd67a66}
.portfolio-day-meter-fill.negative{background:linear-gradient(180deg,#e8566390,#ff6572aa);box-shadow:0 0 13px #ff596666}
.portfolio-day-meter-guide{position:absolute;left:2px;right:2px;height:1px;background:#b5cbd32b;pointer-events:none}
.portfolio-day-meter-guide.meter-guide-up{bottom:80%}
.portfolio-day-meter-guide.meter-guide-down{bottom:20%}
.portfolio-day-meter-indicator{transition:bottom .55s cubic-bezier(.2,.82,.2,1),box-shadow .25s ease!important;box-shadow:0 0 10px #dff7ff88!important}

/* Finora v1.0.4 — compact rotating single-exchange market card */
.topbar-left{flex:1 1 auto;min-width:0}
.market-status-card{
  flex:0 0 400px;width:400px;min-width:320px;max-width:400px;height:40px;
  margin-left:auto;border:1px solid #274858;background:linear-gradient(180deg,#0d2735,#0a202d);
  border-radius:9px;overflow:hidden;box-shadow:inset 0 1px 0 #ffffff06;display:flex;align-items:center;
}
.market-status-clock{flex:0 0 86px;height:32px;margin-left:3px;display:flex;align-items:center;justify-content:center;border-radius:7px;background:#137eae;color:#f7fcff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:17px;font-weight:800;letter-spacing:.025em;line-height:1;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 #ffffff22,0 3px 10px #0877aa2e;user-select:none}
.market-status-card .market-status-viewport{height:100%;flex:1 1 auto;min-width:0;overflow:hidden;display:flex;align-items:center;margin-left:3px;margin-right:3px;mask-image:none;-webkit-mask-image:none}
.market-status-card .market-status-track{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;white-space:nowrap;
  transform:translateX(0);opacity:1;transition:transform 3.6s linear;will-change:transform;
}
.market-status-card .market-status-track.is-pre-enter{transform:translateX(calc(110% + 3px));transition:none!important}
.market-status-card .market-status-track.is-entering{transform:translateX(0)}
.market-status-card .market-status-track.is-leaving{transform:translateX(calc(-110% - 3px))}
.market-status-card .market-status-item{width:100%;height:100%;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;font-size:9px;overflow:hidden}
.market-status-card .market-status-item strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;max-width:43%}
.market-status-card .market-status-item b{font-size:9px;overflow:hidden;text-overflow:ellipsis}
.market-status-card .market-status-item i{width:8px;height:8px;flex:0 0 8px}
.market-status-card .market-status-item.open i{background:#31d982;box-shadow:0 0 11px #31d98288}
.market-status-card .market-status-item.closed i{background:#ff1736;box-shadow:0 0 15px #ff1736d6}
.market-status-card .market-status-item.closed b{color:#ff4a62;font-weight:900;text-shadow:0 0 8px #ff173655}
.market-status-card .market-status-loading{height:40px;width:100%;justify-content:center;padding:0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-theme="light"] .market-status-card{border-color:#c6dbe5;background:linear-gradient(180deg,#ffffff,#edf5f8);box-shadow:0 4px 14px #35657a0b}
html[data-theme="light"] .market-status-clock{background:#137eae;color:#fff;box-shadow:inset 0 1px 0 #ffffff35,0 3px 10px #137eae24}
html[data-theme="light"] .market-status-card .market-status-item strong{color:#284854}
html[data-theme="light"] .market-status-card .market-status-item b{color:#6f8791}
html[data-theme="light"] .market-status-card .market-status-item.closed b{color:#df1233;font-weight:900}
@media(prefers-reduced-motion:reduce){.market-status-card .market-status-track{transition:none!important}}
@media(max-width:1280px){.market-status-card{flex-basis:360px;width:360px;max-width:360px}.market-status-clock{flex-basis:82px;font-size:16px}}
@media(max-width:1040px){.market-status-card{flex-basis:320px;width:320px;min-width:290px}.market-status-clock{flex-basis:78px;font-size:15px}.market-status-card .market-status-item b{max-width:54%}}
@media(max-width:900px){.market-status-card{order:3;flex:1 0 100%;width:100%;max-width:none;margin-left:0}.topbar-left{flex:1 1 auto}}


/* Finora v1.0.8 — passive market card + ranked overview leaderboards */
.overview-leaderboards .rank-col{width:36px!important;text-align:center!important;padding-left:5px!important;padding-right:5px!important}
.overview-leaderboards .rank-cell{width:36px!important;text-align:center!important;padding-left:5px!important;padding-right:5px!important}
.leaderboard-rank{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:7px;border:1px solid #294756;background:#0c2532;color:#a9c1cc;font-size:9px;font-weight:900;line-height:1}
html[data-theme="light"] .leaderboard-rank{border-color:#cadde5;background:#eef5f8;color:#557480}
.overview-leaderboards .overview-profit-card th:nth-child(2){width:52%!important}
.overview-leaderboards .overview-profit-card th:nth-child(3){width:18%!important;text-align:right}
.overview-leaderboards .overview-profit-card th:nth-child(4){width:24%!important;text-align:right}
.overview-leaderboards .overview-profit-card td:nth-child(3),.overview-leaderboards .overview-profit-card td:nth-child(4){text-align:right}
.overview-leaderboards .daily-winners-card th:nth-child(2){width:46%!important}
.overview-leaderboards .daily-winners-card th:nth-child(3){width:22%!important;text-align:right}
.overview-leaderboards .daily-winners-card th:nth-child(4){width:26%!important;text-align:right}
.overview-leaderboards .daily-winners-card td:nth-child(3),.overview-leaderboards .daily-winners-card td:nth-child(4){text-align:right}
.overview-leaderboards .overview-losers-card{grid-column:1 / -1;min-height:410px!important}
.overview-leaderboards .overview-losers-card .compact-overview-table{width:calc(100% - 30px)}
.overview-leaderboards .overview-losers-card th:nth-child(2){width:auto}
.overview-leaderboards .overview-losers-card th:nth-child(3){width:18%;text-align:right}
.overview-leaderboards .overview-losers-card th:nth-child(4){width:22%;text-align:right}
.overview-leaderboards .overview-losers-card td:nth-child(3),.overview-leaderboards .overview-losers-card td:nth-child(4){text-align:right}


/* Finora v1.0.9 — animated leaderboards, semantic title icons, percent heat */
.leaderboard-title{gap:9px}
.leaderboard-title-icon{display:inline-flex;width:25px;height:25px;align-items:center;justify-content:center;flex:0 0 25px}
.leaderboard-title-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.15;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 7px currentColor)}
.leaderboard-title-icon.trophy{color:#2f8cff}
.leaderboard-title-icon.winner{color:#3dde63}
.leaderboard-title-icon.loser{color:#ff4658}
html[data-theme="light"] .leaderboard-title-icon svg{filter:none}
.overview-leaderboards tbody tr[data-leaderboard-key]{will-change:transform;transform:translateZ(0)}
.overview-leaderboards tbody tr[data-leaderboard-key] td{background:transparent!important;transition:none}
.overview-losers-card th:nth-child(2){width:auto!important;text-align:left!important}
.overview-losers-card th:nth-child(3){width:20%!important;text-align:center!important}
.overview-losers-card th:nth-child(4){width:24%!important;text-align:right!important}
.overview-losers-card td:nth-child(3){text-align:center!important;color:#78929e;font-weight:800;letter-spacing:.04em}
.overview-losers-card td:nth-child(4){text-align:right!important}
.loser-percent-heat{position:relative;isolation:isolate;overflow:hidden;border-radius:7px;color:#ff8793!important;font-weight:900;padding-left:12px!important;padding-right:12px!important}
.loser-percent-heat::before{content:"";position:absolute;z-index:-1;inset:5px 4px;border-radius:6px;background:linear-gradient(90deg,rgba(105,18,31,.22),rgba(255,63,82,var(--loss-heat)));box-shadow:inset 0 0 0 1px rgba(255,95,108,.13);pointer-events:none}
html[data-theme="light"] .loser-percent-heat{color:#b51f31!important}
html[data-theme="light"] .loser-percent-heat::before{background:linear-gradient(90deg,rgba(255,217,222,.35),rgba(255,89,104,var(--loss-heat)));box-shadow:inset 0 0 0 1px rgba(190,38,53,.10)}


/* Finora v1.0.10 — paired loss leaderboards + soft full-row loss heat */
.overview-leaderboards .overall-losers-card{grid-column:auto;min-height:410px!important}
.overview-leaderboards .overview-losers-card{grid-column:auto;min-height:410px!important}
.overview-leaderboards .overall-losers-card .compact-overview-table,.overview-leaderboards .overview-losers-card .compact-overview-table{width:calc(100% - 30px)}
.overview-leaderboards .overall-losers-card th:nth-child(2),.overview-leaderboards .overview-losers-card th:nth-child(2){width:46%!important;text-align:left!important}
.overview-leaderboards .overall-losers-card th:nth-child(3),.overview-leaderboards .overview-losers-card th:nth-child(3){width:22%!important;text-align:right!important}
.overview-leaderboards .overall-losers-card th:nth-child(4),.overview-leaderboards .overview-losers-card th:nth-child(4){width:26%!important;text-align:right!important}
.overview-leaderboards .overall-losers-card td:nth-child(3),.overview-leaderboards .overall-losers-card td:nth-child(4),.overview-leaderboards .overview-losers-card td:nth-child(3),.overview-leaderboards .overview-losers-card td:nth-child(4){text-align:right!important}
.overview-leaderboards tr.loss-heat-row{background:linear-gradient(90deg,rgba(255,40,64,0) 0%,rgba(255,40,64,calc(var(--loss-heat) * .11)) 34%,rgba(255,31,57,calc(var(--loss-heat) * .24)) 68%,rgba(255,23,54,calc(var(--loss-heat) * .48)) 100%);box-shadow:inset -1px 0 0 rgba(255,90,105,calc(var(--loss-heat) * .15))}
.overview-leaderboards tr.loss-heat-row td{background:transparent!important}
.overview-leaderboards tr.loss-heat-row td:nth-child(3),.overview-leaderboards tr.loss-heat-row td:nth-child(4){font-weight:900}
html[data-theme="light"] .overview-leaderboards tr.loss-heat-row{background:linear-gradient(90deg,rgba(255,40,64,0) 0%,rgba(255,70,88,calc(var(--loss-heat) * .07)) 34%,rgba(244,42,66,calc(var(--loss-heat) * .15)) 68%,rgba(225,25,52,calc(var(--loss-heat) * .27)) 100%)}

@media(max-width:980px){.overview-leaderboards .overall-losers-card,.overview-leaderboards .overview-losers-card{grid-column:1!important}}

/* =========================================================
   Finora v1.2.0 — canonical sidebar and calendar grid
   ========================================================= */
.calendar-market-pane .event-row{
  grid-template-columns:var(--calendar-event-columns)!important;
  align-items:center!important;
  gap:10px!important;
  padding:15px 12px!important;
  min-height:82px!important;
}
.calendar-market-pane .event-date-slot,
.calendar-market-pane .event-logo-slot{
  min-width:0;
  display:grid;
  place-items:center;
  align-self:center;
}
.calendar-market-pane .event-identity-slot,
.calendar-market-pane .event-main{
  min-width:0;
  overflow:visible!important;
}
.calendar-market-pane .event-main strong{
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
  line-height:1.28!important;
}
.calendar-market-pane .event-main small,
.calendar-market-pane .event-main span{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.calendar-market-pane .event-slot{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  gap:5px;
  text-align:right;
}
.calendar-market-pane .event-native-slot,
.calendar-market-pane .event-czk-slot,
.calendar-market-pane .event-countdown-slot,
.calendar-market-pane .event-type-slot{
  white-space:nowrap!important;
}
.calendar-market-pane .event-native-amount,
.calendar-market-pane .event-countdown,
.calendar-market-pane .event-days{
  max-width:100%;
  white-space:nowrap!important;
}
.calendar-market-pane .event-type-slot{gap:4px;}
.calendar-market-pane .event-type{
  width:100%!important;
  min-width:0!important;
  max-width:var(--calendar-type-column);
  text-align:center!important;
}
.calendar-market-pane .new-item-label,
.calendar-market-pane .earnings-published-label{
  align-self:flex-end;
  max-width:100%;
  white-space:normal;
  text-align:right;
}
.gemini-settings-card{align-items:start!important;}
.gemini-api-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
.gemini-test-btn,.gemini-sync-btn{white-space:nowrap!important;}
.gemini-sync-btn{
  background:linear-gradient(180deg,#1bbf78,#14995f)!important;
  box-shadow:0 10px 24px #14995f22!important;
}
.gemini-sync-btn:hover,.gemini-test-btn:hover{filter:brightness(1.06);}
.gemini-sync-panel{
  width:100%;
  margin-top:13px;
  border:1px solid #234555;
  border-radius:12px;
  background:#071a25;
  padding:13px 14px;
}
.gemini-sync-panel[hidden]{display:none!important;}
.gemini-sync-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:9px;
}
.gemini-sync-panel-head>div>small{display:block;color:#7893a0;font-size:9px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;}
.gemini-sync-panel-head strong{display:block;font-size:12px;color:#e8f3f7;line-height:1.35;}
.gemini-sync-panel>p{margin:0 0 10px;color:#8da5b1;font-size:10px;line-height:1.45;}
.gemini-sync-state{
  flex:0 0 auto;
  border:1px solid #3a5867;
  border-radius:999px;
  padding:5px 9px;
  font-size:9px;
  font-weight:800;
  letter-spacing:.04em;
  color:#a8bdc7;
}
.gemini-sync-state.running{border-color:#1a9cd7;color:#4cc6ff;background:#0a2e42;}
.gemini-sync-state.succeeded{border-color:#2b9e68;color:#69e3a2;background:#0d3023;}
.gemini-sync-state.failed,.gemini-sync-state.interrupted{border-color:#a6424e;color:#ff8993;background:#351820;}
.gemini-sync-phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.gemini-sync-phase{
  min-width:0;
  display:grid;
  grid-template-columns:9px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  border:1px solid #1c3948;
  border-radius:9px;
  padding:9px;
  background:#091e2a;
}
.gemini-sync-phase-dot{width:7px;height:7px;border-radius:50%;background:#58707c;box-shadow:0 0 0 3px #58707c18;}
.gemini-sync-phase strong{display:block;font-size:10px;line-height:1.25;}
.gemini-sync-phase small{display:block;margin-top:3px;color:#829aa6;font-size:8px;line-height:1.3;overflow-wrap:anywhere;}
.gemini-sync-phase b{font-size:8px;color:#829aa6;white-space:nowrap;}
.gemini-sync-phase.running{border-color:#197aa4;background:#0a2736;}
.gemini-sync-phase.running .gemini-sync-phase-dot{background:#38bffa;box-shadow:0 0 0 3px #38bffa20;}
.gemini-sync-phase.succeeded{border-color:#236b4b;background:#0b251d;}
.gemini-sync-phase.succeeded .gemini-sync-phase-dot{background:#41d98a;box-shadow:0 0 0 3px #41d98a20;}
.gemini-sync-phase.failed,.gemini-sync-phase.interrupted{border-color:#843943;background:#2b151b;}
.gemini-sync-phase.failed .gemini-sync-phase-dot,.gemini-sync-phase.interrupted .gemini-sync-phase-dot{background:#ff6673;box-shadow:0 0 0 3px #ff667320;}
.gemini-sync-phase.skipped{opacity:.72;}
html[data-theme="light"] .gemini-sync-panel{background:#f6fafc;border-color:#c8dce5;}
html[data-theme="light"] .gemini-sync-panel-head strong{color:#172a33;}
html[data-theme="light"] .gemini-sync-phase{background:#fff;border-color:#d7e4e9;}
html[data-theme="light"] .gemini-sync-phase.running{background:#edf8fc;}
html[data-theme="light"] .gemini-sync-phase.succeeded{background:#eef9f3;}
html[data-theme="light"] .gemini-sync-phase.failed,html[data-theme="light"] .gemini-sync-phase.interrupted{background:#fff1f2;}
@media(max-width:1100px){.gemini-sync-phases{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:900px){
  .gemini-api-actions{grid-column:2!important;justify-content:flex-start!important;}
  .gemini-sync-phases{grid-template-columns:1fr 1fr;}
}
@media(max-width:620px){
  .calendar-market-pane .event-row{grid-template-columns:42px minmax(0,1fr)!important;align-items:start!important;}
  .calendar-market-pane .event-date-slot{grid-column:1;grid-row:1/6;}
  .calendar-market-pane .event-identity-slot{grid-column:2;}
  .calendar-market-pane .event-slot{grid-column:2;align-items:flex-start;text-align:left;white-space:normal!important;}
  .calendar-market-pane .event-type{width:auto!important;max-width:100%;}
  .calendar-market-pane .new-item-label,.calendar-market-pane .earnings-published-label{align-self:flex-start;text-align:left;}
  .gemini-sync-phases{grid-template-columns:1fr;}
  .gemini-api-actions{grid-column:1/-1!important;}
}

/* P012 desktop: keep the benchmark difference legible inside the reference card. */
@media(min-width:721px){
  .performance-kpi .performance-relative{font-size:8px!important;line-height:1.3!important;min-height:11px!important;}
}

/* P013: keep the six calendar columns readable on narrower desktops. */
@media(min-width:721px) and (max-width:1439px){
  .calendar-market-columns{grid-template-columns:minmax(0,1fr)!important;}
  .calendar-market-pane{min-height:0;}
  .calendar-market-pane+.calendar-market-pane{border-left:0!important;border-top:1px solid var(--line);}
}

/* P015: same stable full-row heat in all four overview tables. */
.leaderboard-data-status{margin:5px 17px 3px;color:var(--muted);font-size:10px;line-height:1.5}
.overview-leaderboards tr.gain-heat-row{background:linear-gradient(90deg,rgba(28,190,108,0) 0%,rgba(28,190,108,calc(var(--gain-heat) * .11)) 34%,rgba(28,190,108,calc(var(--gain-heat) * .24)) 68%,rgba(28,190,108,calc(var(--gain-heat) * .48)) 100%)}
html[data-theme="light"] .overview-leaderboards tr.gain-heat-row{background:linear-gradient(90deg,rgba(28,190,108,0) 0%,rgba(28,190,108,calc(var(--gain-heat) * .07)) 34%,rgba(28,190,108,calc(var(--gain-heat) * .15)) 68%,rgba(28,160,88,calc(var(--gain-heat) * .27)) 100%)}
.overview-leaderboards tr[data-leaderboard-key]:hover{box-shadow:inset 0 0 0 1px rgba(109,190,220,.55)}
html[data-theme="light"] .overview-leaderboards tr[data-leaderboard-key]:hover td{background:transparent!important}
.overview-leaderboards .daily-winners-card th:nth-child(4),.overview-leaderboards .overview-losers-card th:nth-child(4){white-space:normal}
@media(min-width:981px){.leaderboard-data-status{min-height:4.5em}}

/* P016: keep the exchange calendar readable on narrower desktop windows. */
@media(min-width:721px){
  .finora-greeting h1{overflow:hidden;text-overflow:ellipsis}
}
@media(min-width:721px) and (max-width:1439px){
  .topbar{height:auto;min-height:76px;flex-wrap:wrap;gap:8px 16px;padding:8px 0 10px}
  .topbar-left{flex:1 1 240px}
  .market-status-card{order:3;flex:1 0 100%;width:100%;max-width:none;min-width:0;margin-left:0}
}

/* P015B: independent sorting controls; preserve existing table/card layout. */
.overview-leaderboards .card-head{flex-wrap:wrap;gap:8px;align-items:flex-start}
.leaderboard-sort{display:flex;flex:0 0 auto;gap:3px;margin-left:auto;padding:3px;border:1px solid var(--line);border-radius:8px;background:rgba(27,90,130,.1)}
.leaderboard-sort button{border:0;border-radius:5px;padding:5px 7px;background:transparent;color:var(--muted);font:inherit;font-size:10px;font-weight:600;white-space:nowrap;cursor:pointer}
.leaderboard-sort button.active{background:rgba(41,158,222,.22);color:var(--text);box-shadow:inset 0 0 0 1px rgba(73,180,230,.5)}
.leaderboard-sort button:focus-visible{outline:2px solid #45bfff;outline-offset:2px}
.overview-leaderboards td:nth-child(3),.overview-leaderboards td:nth-child(4){font-variant-numeric:tabular-nums}

/* P062: equal desktop rows, including official and fallback logos.
   Shared heading/status tracks keep paired tables aligned without clipping text. */
@media(min-width:901px){
  .overview-leaderboards{--leaderboard-row-height:52px;}
  .overview-leaderboards .positions-card{display:grid!important;grid-template-rows:subgrid;grid-row:span 4;row-gap:0;}
  .overview-leaderboards .compact-overview-table th{height:44px;box-sizing:border-box;vertical-align:middle;}
  .overview-leaderboards .compact-overview-table th:nth-child(2){width:auto!important;}
  .overview-leaderboards .compact-overview-table th:nth-child(3){width:84px!important;}
  .overview-leaderboards .compact-overview-table th:nth-child(4){width:116px!important;}
  .overview-leaderboards .compact-overview-table :is(th,td):nth-child(n+3){padding-left:6px!important;padding-right:6px!important;}
  .overview-leaderboards .compact-overview-table tbody td{padding-top:8px!important;padding-bottom:8px!important;line-height:16px;vertical-align:middle;white-space:nowrap;}
  .overview-leaderboards .company{height:32px;align-items:center;}
  .overview-leaderboards .company-logo.logo-shell{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;flex:0 0 32px;}
  .overview-leaderboards .company-logo .logo-fallback{width:100%;height:100%;}
  .overview-leaderboards .leaderboard-empty td{white-space:normal;}
}

/* P020: keep long desktop allocation labels clear of the percentage column. */
@media(min-width:901px){
  .portfolio-allocation-card .legend-row span:nth-child(2){overflow-wrap:anywhere}
  .portfolio-allocation-card .legend-row span:last-child{white-space:nowrap}
  .portfolio-pie-cards>.pie-sync-note{grid-column:1/-1}
}
@media(min-width:1001px) and (max-width:1350px){
  .portfolio-allocation-card .allocation-col{grid-template-columns:146px minmax(0,1fr)!important;column-gap:14px!important}
  .portfolio-allocation-card .donut{width:146px!important;height:146px!important;flex-basis:146px}
  .portfolio-allocation-card .donut:after{width:84px!important;height:84px!important}
}

/* P020C: approved desktop proposal 3, complete legends beside preserved donuts. */
@media(min-width:901px){
  .portfolio-allocation-grid{grid-template-columns:minmax(0,3fr) minmax(240px,1fr)!important;gap:16px}
  .portfolio-allocation-card .allocation-col{align-content:start;min-height:0;padding:18px 16px!important;column-gap:16px!important}
  .portfolio-allocation-card [data-allocation="sector"]{grid-template-columns:196px minmax(0,1fr)!important;grid-template-rows:auto 1fr!important}
  .portfolio-allocation-card .donut{width:196px!important;height:196px!important;flex-basis:196px}
  .portfolio-allocation-card .donut:after{width:112px!important;height:112px!important}
  .portfolio-allocation-card .donut>.allocation-count{display:block!important;max-width:105px;pointer-events:none}
  .portfolio-allocation-card .allocation-count strong{font-size:24px;line-height:1.2}
  .portfolio-allocation-card .allocation-count small{display:block;margin-top:3px;font-size:12px}
  .portfolio-allocation-card [data-allocation="sector"] .legend{
    grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(var(--allocation-rows,1),auto);
    grid-auto-flow:column;gap:3px 14px!important;align-items:stretch;
  }
  .portfolio-allocation-card .legend-row{padding:5px 2px!important;gap:7px!important;text-align:left;min-height:29px}
  .portfolio-allocation-card .legend-row:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;background:#123141}
  .portfolio-allocation-card .legend-row span:last-child{font-variant-numeric:tabular-nums}
  .portfolio-allocation-card .legend .empty-small{grid-column:1/-1}
  .portfolio-allocation-card [data-allocation="region"]{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto 1fr!important}
  .portfolio-allocation-card [data-allocation="region"] .donut-wrap{grid-column:1!important;grid-row:2!important;min-height:210px}
  .portfolio-allocation-card [data-allocation="region"] .legend{grid-column:1!important;grid-row:3!important;align-self:start!important;margin-top:12px!important;gap:6px!important}
  html[data-theme="light"] .portfolio-allocation-card .legend-row:focus-visible{background:#eaf4f7}
}
@media(min-width:901px) and (max-width:1350px){
  .portfolio-allocation-card [data-allocation="sector"]{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto 1fr!important}
  .portfolio-allocation-card [data-allocation="sector"] .donut-wrap{grid-column:1!important;grid-row:2!important;min-height:176px}
  .portfolio-allocation-card [data-allocation="sector"] .legend{grid-column:1!important;grid-row:3!important;margin-top:12px!important}
  .portfolio-allocation-card .donut{width:164px!important;height:164px!important;flex-basis:164px}
  .portfolio-allocation-card .donut:after{width:96px!important;height:96px!important}
}
@media(min-width:901px) and (max-width:1100px){
  .portfolio-allocation-grid{grid-template-columns:minmax(0,1fr)!important}
  .portfolio-allocation-card [data-allocation="region"]{grid-template-columns:196px minmax(0,1fr)!important;grid-template-rows:auto 1fr!important}
  .portfolio-allocation-card [data-allocation="region"] .legend{grid-column:2!important;grid-row:2!important;margin-top:0!important;align-self:center!important}
}

/* P020B: desktop-only review controls; approved mobile layout unchanged. */
@media(max-width:900px){#classification-open{display:none}}
@media(min-width:901px){
.classification-settings{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px;margin-bottom:16px}
.classification-settings label{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.classification-settings input[type=number]{width:90px;padding:8px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:8px}
.classification-settings p,.classification-row p{color:var(--muted);font-size:13px;line-height:1.5;margin:6px 0}
.classification-list{display:grid;gap:8px;margin-top:16px}
.classification-row{border:1px solid var(--line);border-radius:10px;padding:12px}
.classification-row summary{display:flex;justify-content:space-between;gap:16px;cursor:pointer}
.classification-row summary small{color:var(--muted);text-align:right}
.classification-row dl{display:grid;grid-template-columns:120px 1fr;gap:8px;font-size:14px}
.classification-row dd{margin:0}.classification-row a{color:var(--cyan);text-decoration:underline}
.classification-actions{display:flex;gap:10px;flex-wrap:wrap}.classification-row ul{padding-left:20px}
}

/* P023: readable calendar provenance without changing card arrangement. */
#calendar-research-status,.calendar-source-note{font-size:12px}
.calendar-source-note a{color:#78cef4;text-decoration:underline;text-underline-offset:2px}
html[data-theme="light"] .calendar-source-note a{color:#08668e}

/* P056: the News status lives outside page-wrap; give it the same desktop controls. */
@media(min-width:721px){
  #news-research-status{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:9px;padding:14px;margin:12px 0;font-size:12px;line-height:1.5}
  #news-research-status strong{color:var(--text)}
  #news-research-status button{border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--text);padding:7px 10px;cursor:pointer}
  #news-research-status button:disabled{opacity:.55;cursor:default}
}

/* P025 approved balanced desktop. Shared data; mobile acceptance remains separate. */
@media (min-width: 801px){
.flow-balanced{max-width:1440px!important;margin:auto!important;padding:26px 28px 32px!important;display:grid!important;gap:14px!important}
.flow-balanced .card{margin:0!important;padding:20px!important;border:1px solid var(--line)!important;border-radius:10px!important;box-shadow:none!important}
.flow-balanced h2{font-size:30px!important;margin:0 0 5px!important}.flow-balanced h3{font-size:18px!important;margin:0 0 12px!important}.flow-balanced h4{font-size:15px!important;margin:0 0 10px!important}
.flow-balanced p{font-size:14px!important;line-height:1.5!important}.flow-balanced small,.flow-balanced .muted{font-size:12px!important;color:var(--muted)!important}
.flow-title-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:24px!important}.flow-title-row p{margin:0!important;color:var(--muted)!important}#flow-window{text-align:right!important;font-size:13px!important;color:var(--muted)!important}
.flow-balanced .flow-status-row{margin:0!important;padding:0!important;border:0!important;gap:12px!important;min-height:28px!important;background:none!important;font-size:11px!important;color:var(--muted)!important}.flow-balanced .flow-status-row strong{font-weight:500!important}.flow-balanced .flow-status-row button{font-size:11px!important;padding:6px 10px!important;margin-left:auto!important}
.flow-balanced .flow-recommendation-card{display:flex!important;align-items:center!important;gap:22px!important;min-height:94px!important;background:linear-gradient(110deg,rgba(0,153,230,.10),rgba(0,153,230,.025))!important}
.flow-arrow{color:#4fe2b1!important;font-size:48px!important;line-height:1!important}.flow-balanced .flow-recommendation-card h3{font-size:21px!important;margin:6px 0 0!important}
#flow-probability{margin-left:auto!important;display:grid!important;grid-template-columns:minmax(120px,220px) auto!important;align-items:center!important;gap:3px 20px!important;text-align:right!important}
#flow-probability>span{font-size:12px!important;color:var(--muted)!important}#flow-probability>strong{grid-column:2!important;grid-row:1/3!important;font-size:46px!important;color:#47deb0!important;line-height:1!important;white-space:nowrap!important}#flow-probability>small{font-size:10px!important}
.flow-balanced .flow-main-grid{display:grid!important;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr)!important;gap:14px!important;margin:0!important}
.flow-balanced .flow-chart-axis{display:flex!important;justify-content:space-between!important;margin:8px 70px 8px 185px!important;font-size:10px!important;color:var(--muted)!important}
.flow-balanced .flow-bar-row{display:grid!important;grid-template-columns:175px minmax(100px,1fr) 64px!important;gap:10px!important;align-items:center!important;padding:9px 0!important;border-bottom:1px solid rgba(125,181,213,.1)!important;min-height:40px!important}
.flow-balanced .flow-bar-copy strong{font-size:12px!important}.flow-balanced .flow-bar-copy small{display:block!important;margin-top:3px!important;font-size:11px!important;overflow-wrap:anywhere!important}.flow-balanced .flow-bar-visual{min-width:0!important}.flow-balanced .flow-bar-track{height:19px!important;position:relative!important;overflow:visible!important;background:rgba(68,148,190,.035)!important;border-radius:0!important}
.flow-balanced .flow-bar-track:before{content:''!important;position:absolute!important;inset:0!important;background:linear-gradient(90deg,transparent 24.8%,rgba(92,166,203,.15) 25%,transparent 25.2%,transparent 74.8%,rgba(92,166,203,.15) 75%,transparent 75.2%)!important}
.flow-balanced .flow-neutral-marker{position:absolute!important;left:50%!important;top:-9px!important;bottom:-10px!important;height:auto!important;width:0!important;border-left:1px dashed #93b4c8!important;background:none!important;z-index:1!important}
.flow-balanced .flow-bar-track .flow-bar-fill{left:var(--flow-start)!important;width:var(--flow-width)!important;position:absolute!important;top:1px!important;height:17px!important;border-radius:3px!important;transform:none!important;background:#47ddb0!important;min-width:0!important;transition:none!important;box-shadow:none!important}
.flow-balanced .outflow .flow-bar-track .flow-bar-fill{background:#f56b76!important}.flow-balanced .neutral .flow-bar-track .flow-bar-fill{background:#85a5bc!important}
.flow-balanced .flow-bar-value{display:flex!important;flex-direction:column!important;align-items:flex-end!important}.flow-balanced .flow-bar-value strong{font-size:13px!important}.flow-balanced .flow-bar-value small{font-size:9px!important}.flow-balanced .flow-bar-value em{font-size:9px!important;font-style:normal!important}
.flow-balanced .flow-story-list{display:grid!important;gap:14px!important;margin:12px 0!important}.flow-balanced .flow-story-list>div{display:flex!important;align-items:baseline!important;gap:10px!important;font-size:14px!important;line-height:1.5!important}.flow-balanced .flow-story-list i{width:7px!important;height:7px!important;flex:none!important;border-radius:50%!important;background:#47ddb0!important}
.flow-balanced .flow-scenario-copy{font-size:12px!important;line-height:1.5!important;color:var(--muted)!important;margin:0 0 12px!important}.flow-risk-block{border-top:1px solid var(--line)!important;margin-top:24px!important;padding-top:20px!important}.flow-risk-block h4{color:#f58386!important}.flow-risk-block .flow-story-list i{background:#f58386!important}
.flow-balanced .flow-details{border-top:1px solid var(--line)!important;padding-top:12px!important;margin-top:12px!important}.flow-balanced>.flow-details{margin:0!important;padding:15px 20px!important}.flow-details summary{cursor:pointer!important;font-size:13px!important;color:var(--text)!important;padding:2px 0!important}.flow-details summary:focus-visible{outline:2px solid #18b9f6!important;outline-offset:5px!important}.flow-details[open]>summary{margin-bottom:16px!important}.flow-details summary::marker{color:#2fc3ed!important}
.flow-balanced .flow-source-strip{flex-wrap:wrap!important;display:flex!important;gap:10px!important}.flow-source-strip a{overflow-wrap:anywhere!important;font-size:11px!important}
.flow-results-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:14px!important}.flow-success-content{display:flex!important;align-items:center!important;gap:25px!important}.flow-success-content>strong{font-size:38px!important;white-space:nowrap!important}.flow-success-content>p{border-left:1px solid var(--line)!important;padding-left:25px!important;font-size:13px!important}.flow-balanced .flow-previous-card h4{margin:5px 0!important}.flow-balanced #flow-previous p{margin:6px 0!important;font-size:12px!important;color:var(--muted)!important}#flow-previous>small{display:block!important;margin-top:5px!important}#flow-previous>strong{font-size:15px!important}
.flow-balanced .flow-history-row{grid-template-columns:95px minmax(180px,1fr) 150px!important;font-size:12px!important;gap:15px!important}.flow-history-row small{display:block!important;margin-top:5px!important}.flow-balanced .flow-weight-row{display:flex!important;justify-content:space-between!important;font-size:12px!important;padding:5px 0!important}.flow-budget{color:var(--muted)!important;font-size:11px!important;margin:0!important}
.flow-empty{min-height:220px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;text-align:center!important;color:var(--muted)!important}
.flow-balanced .flow-map-card{min-height:0!important}.flow-balanced .card-head{padding:0!important}.flow-balanced .flow-bars{gap:0!important;padding:0!important}
.flow-balanced .flow-bar-row{border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;background:transparent!important}
.flow-balanced .flow-bar-track{border:0!important}.flow-balanced .flow-bar-copy strong{color:var(--text)!important;white-space:normal!important;line-height:1.3!important}
.flow-balanced .flow-story-list>div{padding:0!important;background:transparent!important;border:0!important;border-radius:0!important}.flow-balanced .flow-story-list>div span{font-size:13px!important;line-height:1.5!important;color:var(--text)!important}
.flow-balanced .flow-chart-axis{letter-spacing:0!important}.flow-balanced .flow-chart-axis b{font-size:10px!important}
html[data-theme="light"] .flow-balanced #flow-probability>strong,html[data-theme="light"] .flow-balanced .flow-arrow,html[data-theme="light"] .flow-balanced .inflow .flow-bar-value strong{color:#08744f!important}
html[data-theme="light"] .flow-balanced .outflow .flow-bar-value strong,html[data-theme="light"] .flow-balanced .flow-risk-block h4{color:#b13043!important}
html[data-theme="light"] .flow-balanced .neutral .flow-bar-value strong{color:#446477!important}
html[data-theme="light"] .flow-balanced .flow-story-list>div{background:transparent!important}
}
@media (min-width:801px) and (max-width:1100px){.flow-balanced .flow-main-grid{grid-template-columns:1fr!important}.flow-balanced .flow-recommendation-card{flex-wrap:wrap!important}.flow-balanced #flow-probability{margin-left:0!important}.flow-balanced .flow-title-row{flex-wrap:wrap!important}}

/* P026: desktop additions keep the approved two-lane Tips layout. */
.tip-sources{display:grid;gap:8px;padding:14px 0;border-top:1px solid var(--border)}
.tip-sources a,.tips-bonus-card a{color:var(--accent,#35b9ee);overflow-wrap:anywhere}
.tips-research-controls{display:flex;gap:16px;align-items:center;margin:0 0 18px}
.tips-research-controls span{font-size:12px;line-height:1.6;color:var(--muted,#9db5c2)}
.tips-bonus-card{margin-top:22px;padding:24px}
.tips-bonus-card h3{font-size:20px;margin:12px 0}
.tips-bonus-card p{line-height:1.7;max-width:900px}
.tips-bonus-card summary{cursor:pointer;color:var(--accent,#35b9ee)}
.tips-bonus-card em{font-size:11px;color:#49d49d;margin-left:8px}
.tips-research-controls button:disabled{opacity:.5;cursor:default}

/* P026C: selected desktop variant 1. The existing mobile cards remain separate. */
.tips-desktop-only,.td-event-icon{display:none}
@media(min-width:1001px){
  .tips-page{--td-blue:#80ddff;--td-muted:#b1cfdf;--td-panel:#0a2130;max-width:1600px!important;display:flex;flex-direction:column;gap:16px;padding-top:16px!important}
  .tips-page>.tips-hero,.tips-page>#investment-tips-list,.tips-page>#tips-source-summary,.tips-page>.tips-disclaimer{display:none}
  .tips-desktop-only{display:block}
  #tips-desktop-heading{order:0}#tips-bonus{display:none}#tips-desktop-bonus{order:1}#tips-desktop-bonus:empty{display:none}#tips-desktop{order:2}
  .tips-page>.tips-meta-row{order:3;margin:0;padding:0;font-size:12px;flex-wrap:wrap;color:var(--td-muted)}
  .tips-page>.tips-meta-row strong{font-size:12px;color:var(--td-muted)}.tips-page>.tips-meta-row .tips-live-dot{display:none}
  .tips-page>.tips-research-controls{order:4;margin:0;gap:14px}.tips-research-controls button{flex-shrink:0}
  .td-heading{position:relative;display:grid;grid-template-columns:1fr auto 26px;gap:4px 20px;align-items:end;padding:22px 26px;border:1px solid #20465b;border-radius:12px;background:linear-gradient(120deg,#0f3149,#081d2b)}
  .td-heading>div:first-child{grid-row:1/3}.td-heading .tips-kicker{font-size:11px;color:#62eda8}.td-heading h2{font-size:36px;margin:8px 0 6px;letter-spacing:-.7px;color:#f2f8ff;line-height:1.15}
  .td-heading p{margin:0;font-size:17px;color:#e0eff8}.td-heading-meta{display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--td-muted);font-size:12px;align-self:center}
  .td-heading-note{grid-column:2;grid-row:2;line-height:1.65;color:var(--td-muted);font-size:11px}
  .td-about{grid-column:3;grid-row:1/3;align-self:center}.td-about summary{list-style:none;border:1px solid #40c9ff;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;color:#56ceff;cursor:pointer;font-weight:700}
  .td-about summary::-webkit-details-marker{display:none}.td-about>div{position:absolute;right:20px;top:calc(100% - 6px);z-index:12;width:min(440px,calc(100% - 40px));padding:20px;background:var(--td-panel);border:1px solid #3885a7;border-radius:10px;box-shadow:0 10px 30px #0006}.td-about>div p{font-size:13px;line-height:1.6;margin-top:12px}
  .td-workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(340px,1fr);gap:16px;align-items:start}
  .td-lanes{display:grid;gap:16px;min-width:0}.td-lane,.td-detail{border:1px solid #20465b;border-radius:12px;padding:12px;background:linear-gradient(130deg,#0b2333,#071924)}
  .td-lane-head{display:grid;grid-template-columns:minmax(0,1fr) 68px 126px;align-items:center;gap:10px;padding:4px 72px 14px 4px}.td-lane h3{font-size:20px;line-height:1.25;margin:0 0 4px;color:#f0f7ff}.td-lane h3 span{color:var(--td-blue)}.td-lane-head p{font-size:12px;line-height:1.45;color:var(--td-muted);margin:0}.td-lane-head>small{font-size:12px;text-align:center;color:#d0e9f9;line-height:1.5}.td-lane-head>small span{font-size:10px;color:var(--td-muted)}
  .td-row{width:100%;display:grid;grid-template-columns:28px 34px minmax(0,1fr) 68px 126px 62px;gap:10px;align-items:center;padding:11px 10px;margin-top:7px;text-align:left;color:#edf7ff;background:#092130;border:1px solid #204254;border-radius:9px;cursor:pointer;font:inherit;min-height:65px}
  .td-row:hover{border-color:#48b8e5;background:#0c2b3d}.td-row[aria-pressed=true]{border-color:#54d6ff;background:linear-gradient(105deg,#10384e,#0a2434);box-shadow:inset 3px 0 #32c2fd}
  .td-row-company{min-width:0}.td-row-company>strong{display:block;font-size:13px;line-height:1.35;font-weight:650;overflow-wrap:anywhere}.td-row-company>small{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:4px;font-size:10px;color:var(--td-muted)}
  .td-row [data-tip-new]{color:#7cebb4;font-size:9px;font-style:normal}.td-rank{border:1px solid #294c60;background:#102e40;display:grid;place-items:center;border-radius:7px;width:28px;height:34px;font-size:13px;color:#c1dceb}
  .td-row-logo{width:34px;height:34px;border-radius:8px;overflow:hidden}.td-row-logo img,.td-logo img{width:100%;height:100%;object-fit:contain}.td-row-logo .logo-fallback,.td-logo .logo-fallback{width:100%;height:100%;display:grid;place-items:center;color:white;font-weight:750;font-size:12px}
  .td-row-score{font-size:22px;font-weight:700;color:var(--td-blue);white-space:nowrap;text-align:center;font-variant-numeric:tabular-nums}.td-row-score small{font-size:11px;font-weight:400;color:var(--td-muted)}.td-row-gap{text-align:center;font-size:17px;white-space:nowrap;font-variant-numeric:tabular-nums}.td-row-gap.positive{color:#55eaaa}.td-detail-label{border:1px solid #285772;border-radius:6px;padding:9px 4px;text-align:center;color:var(--td-blue);font-size:11px;white-space:nowrap}.td-row[aria-pressed=true] .td-detail-label{background:#38bdf4;border-color:#38bdf4;color:#052337;font-weight:700}
  .td-detail{padding:20px;border-color:#28779d}.td-detail-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.td-detail-top>span{font-size:11px;letter-spacing:1.5px;color:#94e5ff;font-weight:750}.td-detail-top>div{display:flex;align-items:center;gap:6px}.td-detail-top small{font-size:12px;margin-right:5px;color:var(--td-muted)}.td-detail-top button{border:1px solid #2a5267;background:#0d2a3c;color:#73d9ff;border-radius:6px;width:28px;height:28px;cursor:pointer;font-size:24px;line-height:1}.td-detail-top button:disabled{opacity:.35;cursor:default}
  .td-company{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px}.td-logo{width:56px;height:56px;overflow:hidden;border-radius:12px}.td-logo .logo-fallback{font-size:20px}.td-company h3{font-size:19px;line-height:1.3;margin:0;overflow-wrap:anywhere}.td-company p{font-size:12px;color:var(--td-muted);margin:7px 0 0}.td-main-score{padding-left:14px;border-left:1px solid #264a5f}.td-main-score>small{display:block;font-size:11px;color:var(--td-muted);margin-bottom:5px}.td-main-score>strong{font-size:32px;line-height:1;color:var(--td-blue);white-space:nowrap}.td-main-score strong small{font-size:16px;color:var(--td-muted)}
  .td-context{font-size:12px;line-height:1.6;color:var(--td-muted);padding:18px 0 14px;margin:0 0 16px;border-bottom:1px solid #214357}
  .td-price-boxes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.td-price-boxes>div{min-width:0;padding:13px 14px;border:1px solid #24495e;border-radius:9px;background:#0b2333}.td-price-boxes small{display:block;font-size:11px;line-height:1.5;color:var(--td-muted)}.td-price-boxes strong{display:block;font-size:22px;line-height:1.3;margin:5px 0;color:var(--td-blue);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
  .td-price-chart{display:grid;gap:9px;margin:20px 0}.td-price-chart>div{display:grid;grid-template-columns:100px 1fr;gap:10px;align-items:center}.td-price-chart span{font-size:11px;color:var(--td-muted)}.td-price-chart i{height:9px;border-radius:8px;overflow:hidden;background:#14394e}.td-price-chart b{display:block;height:100%;background:#42bff2;border-radius:8px}.td-price-chart>div:nth-child(2) b{background:#75def5}
  .td-note{display:flex;gap:14px;align-items:center;padding:14px 0;border-top:1px solid #244357}.td-note>span{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:50%;background:#147c5c;color:#b0ffdf;font-size:25px}.td-note small{font-size:11px;color:var(--td-muted)}.td-note p{font-size:13px;line-height:1.5;margin:4px 0 0;color:#e4f4ff}.td-risk>span{background:#8b6318;color:#ffe6a2;font-size:21px}
  .td-more{border-top:1px solid #244357;padding-top:15px}.td-more>summary{cursor:pointer;font-size:13px;color:var(--td-blue);padding:7px 0}.td-more[open]>summary{margin-bottom:14px}.td-more .tip-detail-grid,.td-more .tip-notes-grid{grid-template-columns:1fr;gap:12px}.td-more .tip-section-title{flex-wrap:wrap;gap:5px}.td-more .tip-metric-grid{grid-template-columns:1fr 1fr}.td-more .tip-card-foot{flex-direction:column;line-height:1.5}.td-more .tip-consensus-glance{grid-template-columns:repeat(2,minmax(0,1fr))!important}.td-more .tip-rating-cards{grid-template-columns:repeat(3,minmax(0,1fr))!important}.td-more .tip-consensus-dashboard.tip-consensus-redesign{grid-template-columns:minmax(0,1fr)!important;overflow:visible}.td-more .tip-consensus-glance>div{min-width:0;overflow-wrap:anywhere}
  .td-more :is(p,li,.tip-card-foot,.tip-section-title span,.tip-factor>div,.tip-factor>div strong,.tip-metric-grid small){font-size:12px!important;line-height:1.5!important}.td-more :is(h4,.tip-section-title strong,.tip-metric-grid strong){font-size:13px!important}.td-more .tip-sources a{font-size:12px;color:var(--td-blue);line-height:1.5;text-decoration:underline;text-underline-offset:3px}
  .td-event-empty{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;border:1px solid #27546d;background:#0e2b3e;border-radius:10px;padding:15px 20px;margin-bottom:16px;color:var(--td-muted);font-size:13px}.td-event-empty>span:first-child{color:#54cfff;font-size:25px;line-height:1}.td-event-empty strong{color:#e7f6ff;font-size:15px}
  .tips-page .tips-bonus-card{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.4fr) auto;gap:12px 24px;align-items:center;margin:0;padding:24px;border:1px solid #43caff;border-left:6px solid #32c3fb;border-radius:12px;background:linear-gradient(110deg,#0d344e,#082334);box-shadow:0 0 24px #21bbf30a}
  .td-event-heading{display:flex;align-items:center;gap:18px}.td-event-icon{display:block;font-size:46px;color:#46cfff}.td-event-heading .tips-kicker{font-size:21px;letter-spacing:0;color:#e9f7ff;line-height:1.3}.td-event-copy{border-left:1px solid #38799b;padding-left:24px}.tips-bonus-card .td-event-copy h3{font-size:21px;line-height:1.3;margin:0 0 8px}.tips-bonus-card .td-event-copy p{font-size:13px;line-height:1.5;margin:0;color:var(--td-muted)}
  .tips-bonus-card details{display:contents}.tips-bonus-card details>summary{grid-column:3;grid-row:1;list-style:none;cursor:pointer;background:#34bff5;color:#042535;padding:14px 18px;border-radius:7px;font-size:14px;font-weight:700}.tips-bonus-card details>summary::-webkit-details-marker{display:none}.tips-bonus-card details>summary:after{content:' +';padding-left:8px}.tips-bonus-card details[open]>summary:after{content:' −'}.tips-bonus-card details:not([open])>:not(summary){display:none}.tips-bonus-card details>:not(summary){grid-column:2/4;margin:0;line-height:1.6;font-size:14px}.tips-bonus-card details>h4{color:var(--td-blue);margin-top:8px}.tips-bonus-card details em{color:#04332a;font-size:11px}.tips-bonus-card .td-event-timing{grid-column:2/4;font-size:12px;margin:0;color:var(--td-muted)}
  .tips-page :is(button,summary,a):focus-visible{outline:2px solid #6adfff;outline-offset:3px}.td-lane-empty{font-size:13px;color:var(--td-muted);padding:16px}
  html[data-theme=light] .tips-page{--td-blue:#096f96;--td-muted:#46657a;--td-panel:#f5fbff}
  html[data-theme=light] :is(.td-heading,.td-lane,.td-detail,.td-price-boxes>div,.td-row,.td-event-empty,.tips-page .tips-bonus-card){background:#f5fbff;border-color:#bad7e6;color:#183b51}
  html[data-theme=light] :is(.td-heading h2,.td-heading p,.td-lane h3,.td-note p,.td-event-empty strong,.td-event-heading .tips-kicker){color:#183b51}
  html[data-theme=light] .td-lane-head>small{color:#365b70}html[data-theme=light] .td-row:hover,html[data-theme=light] .td-row[aria-pressed=true]{background:#e1f4fd;border-color:#158ab6}html[data-theme=light] .td-row-gap.positive{color:#08764c}html[data-theme=light] .td-row [data-tip-new]{color:#08764c}
  html[data-theme=light] .td-rank,html[data-theme=light] .td-detail-top button{background:#e6f2f9;border-color:#b3d1e4;color:#195a7a}html[data-theme=light] .td-detail-top>span{color:#166f90}html[data-theme=light] .td-detail-label{border-color:#abd0e5}html[data-theme=light] .td-price-chart i{background:#deedf5}
}
@media(min-width:1001px) and (max-width:1350px){
  .td-workspace{grid-template-columns:minmax(0,1.25fr) minmax(310px,1fr);gap:12px}.td-row{grid-template-columns:24px minmax(0,1fr) 55px 82px 22px;gap:8px;padding:10px 8px}.td-row-logo{display:none}.td-row-score{font-size:20px}.td-row-gap{font-size:14px}.td-detail-label{font-size:0;border:0;padding:0}.td-detail-label:after{content:'›';font-size:23px}.td-lane-head{grid-template-columns:minmax(0,1fr) 55px 82px;padding-right:30px;gap:8px}.td-lane h3{font-size:17px}.td-lane-head>small{font-size:10px}.td-rank{width:24px}.td-detail{padding:15px}.td-company{grid-template-columns:42px minmax(0,1fr);gap:10px}.td-logo{width:42px;height:42px}.td-main-score{grid-column:1/-1;border-left:0;padding:10px 0 0;display:flex;align-items:center;gap:14px}.td-main-score>strong{font-size:28px}.td-company h3{font-size:18px}.td-price-boxes{gap:8px}.td-price-boxes>div{padding:10px}.td-price-boxes strong{font-size:19px}.td-heading{grid-template-columns:1fr 1fr 24px}.td-heading-meta{font-size:11px}
  .tips-page .tips-bonus-card{grid-template-columns:minmax(190px,.8fr) minmax(0,1.2fr);gap:12px 20px}.tips-bonus-card details>summary{grid-column:2;grid-row:auto;justify-self:start}.tips-bonus-card details>:not(summary),.tips-bonus-card .td-event-timing{grid-column:2}.td-event-heading{grid-row:1/3}.td-event-heading .tips-kicker{font-size:20px}.td-event-copy{padding-left:0;border:0}
}

@media(min-width:1001px){
  .td-event-icon svg{display:block;width:44px;height:44px}.td-event-empty svg{display:block;width:25px;height:25px}
  html[data-theme=light] .td-heading .tips-kicker{color:#146d4e}
  html[data-theme=light] .td-heading .tips-kicker i{color:#146d4e;background:#e0f5ec;border-color:#a6d7c4}
  html[data-theme=light] :is(.td-context,.td-note,.td-more,.td-main-score){border-color:#bfd5e2}
}

/* P027B — approved desktop Settings. Mobile keeps the category navigation. */
#settings-desktop{display:none}
.billing-panel{margin:20px 0 14px;padding-top:15px;border-top:1px solid var(--line)}
.billing-head,.billing-total,.billing-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.billing-head{justify-content:space-between}.billing-head h4{margin:0;font-size:15px}
.billing-head>span{font-size:12px;color:var(--muted)}.billing-head>span.on{color:var(--green)}
.billing-total{margin:12px 0 8px;align-items:baseline}.billing-total strong{font-size:28px;color:#76dfff}.billing-total span{font-size:13px;color:var(--muted)}
.billing-panel p,.settings-ai-limits p{font-size:12px;line-height:1.55;color:var(--muted);margin:8px 0 12px}
#billing-error{color:var(--amber)}
.billing-panel a{color:var(--cyan2)}
.billing-key-details summary,.settings-ai-limits summary{cursor:pointer;color:var(--cyan2);padding:8px 0;font-size:14px}
.billing-key-details:not([open]){display:none}
.billing-key-details input{width:100%;margin:8px 0 12px;padding:12px;background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:7px}
.billing-key-details label{font-size:13px}.settings-ai-limits summary strong{float:right;font-size:14px;color:var(--text)}
.settings-ai-limits dl{margin:6px 0}.settings-ai-limits dl>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:7px 0;font-size:13px}.settings-ai-limits dd{margin:0}
.settings-ai-copy{font-size:14px;line-height:1.55;color:var(--muted)}
.settings-t212-admin-action{display:flex;gap:12px;align-items:center;margin:12px 0}
#t212-csv-form.drag-over{outline:2px solid var(--cyan2);outline-offset:4px}
/* P034: centered desktop copy regardless of legacy small-tile indentation. */
@media(min-width:981px){
  #portfolio-heatmap .heatmap-tile .heatmap-weighted-copy{padding:0!important;min-width:0!important}
  #portfolio-heatmap .heatmap-tile .heatmap-fixed-ticker{max-width:100%!important;min-width:0!important}
  #portfolio-heatmap .heatmap-more-copy{max-width:100%;padding:4px;text-align:center}
}

/* P035: stable desktop portfolio controls and readable information panels. */
.position-open{border:0;background:transparent;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer;max-width:100%}
.position-open:focus-visible{outline:2px solid var(--blue,#28b8f2);outline-offset:5px;border-radius:4px}
.performance-method{font-size:10px;line-height:1.4;color:var(--muted);margin:4px 0 8px}
.info-tooltip-layer{box-sizing:border-box;width:min(460px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;z-index:10050}
.info-tooltip-layer.is-pinned{pointer-events:auto}
.info-tooltip-head strong{font-size:14px;line-height:1.35;flex:1;min-width:0}
.info-tooltip-head i{flex:0 0 25px;width:25px;height:25px;font-size:14px}
.info-tooltip-layer .info-tooltip-lead{font-size:13px;line-height:1.65;margin:0}
.info-close{margin-left:auto;background:transparent;border:0;color:inherit;font-size:24px;line-height:1;cursor:pointer;padding:3px 7px;border-radius:6px}
.info-close:focus-visible,.info-details summary:focus-visible{outline:2px solid #2abaf1;outline-offset:2px}
.info-open-hint{display:block;margin-top:8px;font-size:11px;color:var(--muted)}
.info-facts{display:grid;gap:8px;margin:10px 0}
.info-facts>div{display:flex;gap:10px;align-items:center;padding:9px 11px;background:#1378a31c;border:1px solid #3993b638;border-radius:8px}
.info-facts>div>span{color:#4dccff;font-size:20px;width:24px;text-align:center;flex-shrink:0}
.info-facts p{margin:0;font-size:12px;line-height:1.5}
.info-details{margin-top:12px;border-top:1px solid #4088a447;padding-top:10px}
.info-details summary{cursor:pointer;color:#6dd3ff;font-size:12px;font-weight:600;padding:3px 0}
.info-details p{font-size:12px;line-height:1.65;margin:10px 0;color:#b8d0dc;overflow-wrap:anywhere}
html[data-theme="light"] .info-details summary{color:#126487}
html[data-theme="light"] .info-details p{color:#3d5d6c}
html[data-theme="light"] .info-facts>div>span{color:#08759f}
@media(min-width:981px){.position-trade-shell .trade-chart-note{padding-right:275px}.position-live-quote{max-width:260px;box-sizing:border-box}}

.chart-explanation{margin-top:5px}.chart-explanation summary{cursor:pointer;color:#77ceee}.chart-explanation p{margin:6px 0;line-height:1.6;font-size:11px}html[data-theme="light"] .chart-explanation summary{color:#176484}

@media(min-width:981px){.draggable-kpi .kpi-label-with-info,.performance-kpi .performance-kpi-head{padding-right:24px!important;box-sizing:border-box}}

/* P036: keep both observations within the desktop KPI, detail lives in info. */
@media(min-width:981px){
  .performance-kpi .performance-kpi-head{min-height:21px!important;}
  .performance-kpi .performance-kpi-head label{font-size:10px!important;line-height:1.12!important;}
  .performance-kpi .performance-bars{flex:0 0 auto!important;min-height:0!important;margin-top:3px!important;gap:5px!important;grid-template-rows:auto auto!important;}
  .performance-kpi .performance-bar-row{min-height:23px!important;}
  .performance-kpi .performance-bar-row>div{margin-bottom:3px!important;align-items:center!important;}
  .performance-kpi .performance-bar-row span{font-size:9px!important;line-height:1.15!important;white-space:nowrap!important;}
  .performance-kpi .performance-bar-row strong{font-size:10px!important;line-height:1.15!important;white-space:nowrap!important;font-variant-numeric:tabular-nums;margin:0!important;}
  .performance-kpi .performance-bar-row i,.performance-kpi .performance-bar-row.mine i,.performance-kpi .performance-bar-row.benchmark i{height:6px!important;min-height:6px!important;}
  .performance-kpi .performance-bar-row i b{height:100%!important;}
  .performance-kpi .performance-relative{flex:0 0 auto!important;margin-top:8px!important;min-height:11px!important;font-size:8px!important;line-height:1.2!important;color:var(--muted)!important;}
}

/* P038C: the actual calculation interval remains visible beside the graph. */
.account-range-context{margin:6px 0 0;color:var(--muted);font-size:11px;line-height:1.45;overflow-wrap:anywhere}

/* P039: legacy presentation defaults; reviewed transparent marks override below. */
html body .logo-shell.official-logo.has-logo.logo-bg-light {background:#fff!important;border:1px solid #d8e3e8!important;box-shadow:none!important;overflow:hidden!important;}
html body .logo-shell.official-logo.has-logo.logo-bg-dark {background:#102b3a!important;border:1px solid #38515f!important;box-shadow:none!important;overflow:hidden!important;}
html body .logo-shell.official-logo.has-logo img {filter:none!important;opacity:1!important;object-fit:contain!important;padding:3px!important;width:100%!important;height:100%!important;}
html .portfolio-heatmap.weighted-heatmap .heatmap-logo.official-logo img {padding:2px!important;}
/* Wide tiles put mark and centered text side by side; tiny slivers retain the tooltip. */
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide {display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;gap:7px!important;}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-logo {display:grid!important;position:static!important;width:32px!important;height:32px!important;margin:0!important;flex:0 0 32px!important;}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-weighted-copy {width:auto!important;max-width:calc(100% - 42px)!important;flex:0 1 auto!important;}
.portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-primary-line {flex-direction:column!important;gap:2px!important;}
.portfolio-heatmap.weighted-heatmap .heatmap-logo .logo-fallback {position:static!important;width:100%!important;height:100%!important;font-size:10px!important;}

/* P039 acceptance: actual transparent marks, without white UI tiles. */
html body .logo-shell.official-logo.has-logo.logo-bare{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important;}
html body .logo-shell.official-logo.has-logo.logo-bare img{padding:1px!important;}
html body .logo-shell.official-logo:not(.has-logo) img{display:none!important;}
html:not([data-theme="light"]) body .official-logo .logo-image-light,
html[data-theme="light"] body .official-logo .logo-image-dark{display:none!important;}
html:not([data-theme="light"]) body .official-logo.logo-mono-dark.has-logo img{filter:brightness(0) invert(1)!important;}
html[data-theme="light"] body .official-logo.logo-mono-light.has-logo img{filter:brightness(0)!important;}
@media(min-width:981px){
 .portfolio-heatmap.weighted-heatmap .heatmap-tile:not(.layout-micro):not(.layout-wide) .heatmap-logo.official-logo{width:48px!important;height:40px!important;max-width:80%!important;flex-shrink:0!important;}
 .portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-logo.official-logo{width:40px!important;height:36px!important;flex-basis:40px!important;}
 .portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-wide .heatmap-weighted-copy{max-width:calc(100% - 47px)!important;}
}

/* Soft edge contrast preserves every color in multicolored wordmarks. */
html:not([data-theme="light"]) body .official-logo.logo-contrast-dark.has-logo img{filter:drop-shadow(0 0 .65px #fff)!important;}
html[data-theme="light"] body .official-logo.logo-contrast-light.has-logo img{filter:drop-shadow(0 0 .65px #163747)!important;}
/* Contain intrinsic PNG dimensions and reserve the full ticker text height. */
html body .logo-shell.official-logo.has-logo img{min-width:0!important;min-height:0!important;max-width:100%!important;max-height:100%!important;box-sizing:border-box!important;}
@media(min-width:981px){
 .portfolio-heatmap.weighted-heatmap .heatmap-logo.official-logo{display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;}
 .portfolio-heatmap.weighted-heatmap .heatmap-tile.small:not(.layout-wide) .heatmap-logo.official-logo{height:28px!important;}
 .portfolio-heatmap.weighted-heatmap .heatmap-tile .heatmap-weighted-copy{flex-shrink:0!important;}
 .portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-micro .heatmap-logo.official-logo,
 .portfolio-heatmap.weighted-heatmap .heatmap-tile.layout-sliver .heatmap-logo.official-logo{display:none!important;}
}

/* P044: source focus remains visible in both desktop themes. */
@media (min-width:801px){
.flow-balanced #flow-source-strip:focus,.flow-balanced #flow-market-context:focus,.flow-balanced a:focus-visible,.flow-balanced #flow-refresh-btn:focus-visible{outline:2px solid var(--accent,#18b9f6);outline-offset:4px}
.flow-balanced #flow-market-context a{overflow-wrap:anywhere}
}

/* P045: existing desktop layout; readable detail labels and keyboard focus. */
@media (min-width:1001px){
 .tips-page .td-more .tip-rating-card small{font-size:12px;line-height:1.4;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
 .tips-page .td-more .tip-rating-card em{font-size:11px;line-height:1.4}
 .tips-page .td-more .tip-rating-card{grid-template-columns:8px minmax(0,1fr);gap:4px 7px}
 .tips-page .td-more .tip-rating-card strong{grid-column:2;grid-row:auto}
 .tips-page .td-more .tip-rating-card em{grid-column:2}
 .tips-page a:focus-visible,.tips-page button:focus-visible,.tips-page summary:focus-visible,.tips-page [tabindex="-1"]:focus{outline:2px solid var(--accent,#18b9f6);outline-offset:3px}
 .tips-page .tips-meta-row>div{min-width:0;align-items:flex-start}
 .tips-page #tips-status-text{line-height:1.5;overflow-wrap:anywhere}
 .tips-page .tips-research-controls{flex-wrap:wrap}
}

/* P050: desktop connection notice, without changing the mobile layout. */
.dashboard-connection-status{display:none}
@media(min-width:801px){
 .dashboard-connection-status:not([hidden]){display:block;margin:0 0 12px;padding:12px 16px;border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:10px;background:var(--panel);color:var(--text);font-size:14px;line-height:1.55;overflow-wrap:anywhere}
}

/* P055B: compact performance-only crypto hover cards. */
.crypto-performance-grid{row-gap:12px}
.crypto-performance-grid b{font-variant-numeric:tabular-nums;font-size:16px;white-space:nowrap}
.crypto-performance-caption{font-size:12px;line-height:1.4;color:var(--muted);margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}

/* P057: the calculated rectangle, not legacy padding, owns the tile size. */
@media(min-width:981px){
 .heatmap-toggle-row{display:none!important}
 #portfolio-heatmap{box-sizing:border-box;padding:0!important;max-height:none!important;overflow:visible!important}
 #portfolio-heatmap .heatmap-tile{box-sizing:border-box;min-width:0!important;min-height:0!important;border-radius:7px!important;transition:border-color .18s ease,box-shadow .18s ease!important}
 #portfolio-heatmap .heatmap-tile.layout-sliver{padding:0!important;border:0!important;gap:0!important}
 #portfolio-heatmap .heatmap-tile.layout-sliver .heatmap-weighted-copy{max-width:100%;max-height:100%;overflow:hidden}
 #portfolio-heatmap .heatmap-tile.layout-dot>*{display:none!important}
 #portfolio-heatmap .heatmap-tile:focus-visible{outline:2px solid var(--cyan2);outline-offset:1px;z-index:5}
}
/* P138 shared capital-income facts; mobile inherits the same semantic values. */
#tax-capital-model{padding:0 17px 17px}
.tax-capital{min-width:0;overflow-wrap:anywhere}
.tax-capital section{padding:12px 0;border-bottom:1px solid var(--line)}
.tax-capital h3{font-size:16px;margin:0 0 10px}
.tax-capital p{font-size:13px;line-height:1.55;color:var(--muted);margin:10px 0}
.tax-capital a{color:#76c5ef;text-decoration:underline}
html[data-theme="light"] .tax-capital a{color:#09668f}
.tax-capital-facts{margin:0;display:grid;gap:9px}
.tax-capital-facts>div{display:flex;gap:14px;justify-content:space-between;align-items:baseline;min-width:0}
.tax-capital-facts dt{flex:1;min-width:0;font-size:13px;color:var(--muted)}
.tax-capital-facts dd{margin:0;text-align:right;max-width:58%;font-size:14px;font-weight:650;font-variant-numeric:tabular-nums}
.tax-capital [data-capital-profile]{margin-top:16px;display:grid;gap:10px}
.tax-capital [data-capital-profile] label{font-size:13px;display:grid;gap:8px}
.tax-capital select{width:100%;max-width:100%;min-width:0}
.tax-capital [data-capital-profile] button{white-space:normal;min-height:42px}

/* P139: only split-band inputs need an amount. */
.tax-input[hidden]{display:none!important}
#tax-reconciliation{margin:16px 18px}
#tax-reconciliation h3{font-size:15px;line-height:1.5}

/* P141: record dates and source snapshots are distinct, shared by both views. */
.tax-evidence-dates{font-size:13px;line-height:1.5;overflow-wrap:anywhere;margin:8px 0 16px;color:var(--muted)}
.tax-evidence-dates p{margin:7px 0}
.tax-evidence-dates summary{cursor:pointer;color:var(--text);padding:8px 0}
.tax-evidence-dates dl{margin:8px 0}
.tax-evidence-dates dl>div{display:flex;flex-wrap:wrap;gap:3px 14px;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--line)}
.tax-evidence-dates dt{font-weight:600}.tax-evidence-dates dd{margin:0}
body:has(#mobile-root) #tax-evidence-dates{display:none}
#mobile-root .tax-evidence-dates{position:relative;z-index:1;max-width:100%}

/* P194: touch scrolling remains native; only the scrollbar is hidden. */
@media(max-width:760px){
 html,body,body *{scrollbar-width:none!important}
 html::-webkit-scrollbar,body::-webkit-scrollbar,body *::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
}

/* P195: approved P193/3 login. Desktop and authentication share their original form. */
.login-mobile-only{display:none}
@media(max-width:720px){
  body.login-simple-body{--login-bg:#102334;--login-ink:#eaf5fc;--login-muted:#a8c5d7;--login-field:#0b1c2b;--login-line:#355269;background:var(--login-bg);color:var(--login-ink);font-family:Arial,sans-serif;height:auto;min-height:100svh;overflow:auto}
  .login-simple-body .login-simple-stage{height:auto;min-height:760px;min-height:max(760px,100svh);padding:0;display:block;overflow:clip;background:var(--login-bg);color:var(--login-ink)}
  .login-simple-body .login-visuals,.login-simple-body .login-simple-intro,.login-simple-body .login-simple-footer,.login-simple-body .login-copy,.login-simple-body .login-foot{display:none}
  .login-simple-body .login-mobile-only{display:block}
  .login-simple-body .login-simple-header{width:100%;height:69px;padding:0 18px;margin:0;gap:16px;justify-content:space-between;background:linear-gradient(110deg,#12334d,#0c2237);border-bottom:1px solid var(--login-line)}
  .login-simple-body .login-brand-public{gap:10px;min-width:0}
  .login-simple-body .login-brand-public span{display:none}
  .login-simple-body .login-brand-public strong{font:650 21px Arial,sans-serif;letter-spacing:-.3px;color:var(--login-ink)}
  .login-simple-body .login-brand-mark{width:31px;height:31px;flex:0 0 31px;border-radius:9px 9px 14px 14px;background:linear-gradient(140deg,#20c6ff,#0875d6);font:900 20px Arial,sans-serif;color:white;transform:skew(-5deg);box-shadow:0 8px 26px #0aa6e744}
  .login-simple-body .login-mobile-heading{font-size:16px;font-weight:500;color:var(--login-muted);white-space:nowrap}
  .login-simple-body .login-simple-shell{width:100%;height:auto;min-height:0;padding:28px 24px 0;margin:0;display:block}
  .login-simple-body .login-simple-card{position:relative;inset:auto;transform:none;width:100%;max-width:none;padding:0;margin:0;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none}
  html .login-simple-body .login-simple-card{background:none!important;box-shadow:none!important}
  .login-simple-body .login-simple-card::before,.login-simple-body .login-simple-card::after{display:none}
  .login-simple-body .login-form{display:block;margin:0}
  .login-simple-body .login-form.hidden{display:none!important}
  .login-simple-body .login-form>label{display:block;margin:0;min-width:0}
  .login-simple-body .login-form>label+label{margin-top:22px}
  .login-simple-body .login-form label>span{margin:0 0 9px;color:var(--login-muted);font-size:13px;font-weight:500;letter-spacing:0;line-height:normal}
  .login-simple-body .login-form input{display:block;box-sizing:border-box;min-width:0;width:100%;height:54px;padding:0 14px;font:16px Arial,sans-serif;border:1px solid var(--login-line);background:var(--login-field);color:var(--login-ink);border-radius:10px}
  .login-simple-body .login-form input::placeholder{color:#7894a9}
  .login-simple-body .login-user-input,.login-simple-body .password-input-wrap{position:relative}
  .login-simple-body .login-input-icon{position:absolute;left:15px;top:18px;width:18px;height:18px;color:var(--login-muted);pointer-events:none}
  .login-simple-body #username,.login-simple-body #password{padding-left:46px}
  .login-simple-body #password{padding-right:50px}
  .login-simple-body #toggle-password{right:5px;top:5px;transform:none;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:none;color:var(--login-muted);font-size:0;display:flex;align-items:center;justify-content:center}
  .login-simple-body #toggle-password::before{content:"";width:21px;height:21px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat}
  .login-simple-body #toggle-password[aria-pressed=true]::after{content:"";position:absolute;width:23px;height:1.5px;background:currentColor;transform:rotate(-45deg)}
  .login-simple-body .login-submit{display:flex;align-items:center;justify-content:center;gap:14px;box-sizing:border-box;width:100%;height:auto;min-height:52px;padding:10px 14px;margin:26px 0 0;border:1px solid #588aa8;border-radius:12px;background:#153b59;box-shadow:none;color:#f1f8fc;font:600 16px Arial,sans-serif;line-height:1.4;white-space:normal}
  .login-simple-body .login-submit b{font-size:21px;font-weight:400;flex:none;line-height:1}
  .login-simple-body .login-submit:disabled{opacity:.55;cursor:wait}
  .login-simple-body .login-error:empty{display:none}
  .login-simple-body .login-error{min-height:0;margin:12px 0 0;padding:0;font-size:13px;line-height:1.5;overflow-wrap:anywhere;color:#ff8992}
  .login-simple-body .login-setup-warning{margin-bottom:22px;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
  .login-simple-body .login-setup-warning strong,.login-simple-body .login-setup-warning span{font-size:13px}
  .login-simple-body .login-two-factor-copy{font-size:13px;line-height:1.5;margin:0 0 20px;color:var(--login-muted)}
  .login-simple-body .login-two-factor-copy strong{font-size:16px;color:var(--login-ink)}
  .login-simple-body .login-two-factor-copy span{font-size:13px;color:var(--login-muted)}
  .login-simple-body .login-back-btn{min-height:44px;font-size:13px;color:var(--login-muted);margin-top:10px}
  .login-simple-body .login-enroll-qr-wrap{max-width:100%;margin:0 0 12px}
  .login-simple-body .login-enroll-secret{min-width:0;margin:0 0 20px;overflow-wrap:anywhere}
  .login-simple-body .login-enroll-secret code{white-space:normal;overflow-wrap:anywhere}
  .login-simple-body .login-form input:focus-visible,.login-simple-body .login-form button:focus-visible{outline:2px solid #83c8f4;outline-offset:3px}
  .login-simple-body .login-mobile-decoration{position:relative;height:405px;margin-top:1px;pointer-events:none}
  .login-simple-body .login-mobile-chart{position:absolute;z-index:1;left:20px;top:30px;width:calc(100% - 40px);height:125px;opacity:.17;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
  .login-mobile-chart .chart-grid{stroke:#7199b7;stroke-width:.65;opacity:.2;fill:none}
  .login-mobile-chart .chart-line{fill:none;stroke:#8bb7d7;stroke-width:1.6;stroke-linecap:round;vector-effect:non-scaling-stroke}
  .login-mobile-chart .chart-area{fill:url(#login-mobile-area)}
  .login-simple-body .login-mobile-slogan{position:absolute;z-index:2;top:174px;left:18px;right:18px;margin:0;text-align:center;font-size:14px;font-weight:400;line-height:1.5;letter-spacing:.1px;color:var(--login-muted)}
  .login-simple-body .login-mobile-glass{position:absolute;z-index:0;bottom:64px;left:0;width:100%;height:auto;display:block;mask-image:linear-gradient(transparent,#000 38%,#000 91%,transparent)}
  .login-simple-body .login-mobile-private{position:absolute;z-index:2;bottom:25px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:7px;margin:0;font-size:12px;line-height:normal;color:#7d9eb6}
  .login-simple-body .login-mobile-private .login-input-icon{position:static;width:14px;height:14px;color:inherit}
  html[data-theme=light] body.login-simple-body{--login-bg:#edf4fa;--login-line:#bdcedd;--login-ink:#1d394f;--login-muted:#4c6a80;--login-field:#fff;color-scheme:light}
  html[data-theme=light] .login-simple-body .login-simple-header{background:linear-gradient(110deg,#ddecf6,#eef6fb)}
  html[data-theme=light] .login-simple-body .login-form input{background:var(--login-field)!important;color:var(--login-ink)!important;border-color:var(--login-line)!important}
  html[data-theme=light] .login-simple-body .login-form input::placeholder,html[data-theme=light] .login-simple-body .login-mobile-private{color:var(--login-muted)}
  html[data-theme=light] .login-simple-body .login-error{color:#b42333}
  html[data-theme=light] .login-simple-body .login-mobile-glass{opacity:.14;mask-image:linear-gradient(transparent,#000 42%,#000 83%,transparent)}
  html[data-theme=light] .login-simple-body .login-mobile-chart{opacity:.16}
  html[data-theme=light] .login-mobile-chart .chart-line{stroke:#416f92}
}

/* P197: optional passkey controls keep the existing Finora form proportions. */
.login-passkey{margin-top:12px;display:block;width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--line,#28506c);border-radius:12px;background:rgba(34,83,118,.17);color:var(--text,#dceaf5);font:inherit;font-weight:600;cursor:pointer;overflow-wrap:anywhere}
.login-passkey:hover{background:rgba(48,111,154,.24)}
.login-passkey:disabled{opacity:.55;cursor:wait}
.login-passkey.hidden{display:none!important}
#login-passkey-cancel.hidden{display:none!important}
.passkey-settings .setting-row>div:first-child{min-width:0}
.passkey-settings strong,.passkey-settings small{overflow-wrap:anywhere}
.passkey-settings small{display:block;margin-top:5px;line-height:1.5}
.passkey-settings .ghost-btn{flex-shrink:0}
.passkey-dialog{box-sizing:border-box;width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:24px;border:1px solid var(--line,#28506c);border-radius:18px;background:var(--panel,#0d2134);color:var(--text,#dceaf5);font:inherit}
.passkey-dialog::backdrop{background:rgba(0,10,22,.68)}
.passkey-dialog h3{font-size:20px;margin:0 0 12px}
.passkey-dialog p,.passkey-dialog small{font-size:13px;line-height:1.5;color:var(--muted,#9ab2c9);margin:0 0 16px}
.passkey-dialog label{display:grid;gap:7px;margin:14px 0;font-size:13px}
.passkey-dialog label[hidden]{display:none}
.passkey-dialog input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--line,#28506c);border-radius:10px;background:var(--bg,#081b2d);color:var(--text,#dceaf5);font:inherit;font-size:16px}
.passkey-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.passkey-actions button{min-height:44px;white-space:normal;padding:10px 14px;font-size:14px}
.passkey-submit{border:1px solid #3b87b8;border-radius:10px;background:linear-gradient(180deg,#175b88,#10456e);color:#f1f7fc;font:inherit;font-weight:600;cursor:pointer}
.passkey-submit:hover{background:#1c608b}
.passkey-submit:disabled{opacity:.55;cursor:wait}
.passkey-dialog .login-error:empty{display:none}
.passkey-dialog .login-error{color:var(--red);font-size:13px;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:760px){.passkey-dialog{scrollbar-width:none}.passkey-dialog::-webkit-scrollbar{display:none}.passkey-settings .setting-row{gap:12px}.passkey-settings .setting-row small{max-width:100%}}

/* P205: the mobile chart disclosure does not change the desktop detail. */
.position-chart-information{display:none}
