/* Traden Terminal – design system (TRA-1449). Dark Traden.de CI, targeted gold, compact and
   precise. One token set drives every control: type scale, spacing, radii, hairlines,
   elevation, focus/hover/pressed/disabled/loading. Inter is served locally (OFL, see
   licenses/Inter-OFL.txt). Layout grid and class names are unchanged from TRA-1433/1448. */
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/inter-latin-wght.woff2) format("woff2")}
:root{color-scheme:dark;
 --font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
 --bg:#0b0e12;--bg-bar:#0e1116;--surface:#12161b;--surface-2:#171c22;--surface-3:#1d232a;
 --hover:#1c2229;--active:#232a33;--line:#1d232a;--line-2:#29313a;--line-3:#38414c;
 --text:#e8ebef;--text-2:#aab2bd;--muted:#7f8893;--faint:#5c6570;
 --gold:#d4b16a;--gold-2:#e8cb8e;--gold-soft:#d4b16a17;--gold-line:#d4b16a4d;
 --green:#1fd1a1;--red:#ff4757;--blue:#7aa7d9;
 --r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-pill:999px;
 --ctl:30px;--ctl-sm:26px;--ctl-lg:36px;
 --fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:14px;--fs-xl:16px;
 --shadow-1:0 1px 2px #0006;--shadow-pop:0 18px 40px -12px #000c,0 4px 12px #0007,inset 0 1px 0 #ffffff0a;--shadow-dialog:0 30px 80px -20px #000e,0 8px 24px #0008,inset 0 1px 0 #ffffff0a;
 --focus:0 0 0 2px var(--bg),0 0 0 4px #d4b16aa6;
 --ease:cubic-bezier(.2,.7,.2,1);--dur:140ms;
 font-family:var(--font);font-size:16px;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
*{box-sizing:border-box}
html,body{height:100%;width:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button,a,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;border:0;background:none;padding:0}
button:disabled{cursor:not-allowed;opacity:.45}
:focus-visible{outline:none;box-shadow:var(--focus)}
a{color:inherit}
svg{width:18px;height:18px;flex-shrink:0}
[hidden]{display:none!important}
.terminal{height:100vh;height:100dvh;display:grid;grid-template-rows:46px minmax(0,1fr) 28px;background:var(--bg);overflow:hidden}

/* --- Base controls --------------------------------------------------------------- */
.btn,.primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--ctl);padding:0 12px;border-radius:var(--r-sm);font-size:var(--fs-md);font-weight:550;white-space:nowrap;border:1px solid transparent;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform 80ms var(--ease);text-decoration:none;user-select:none}
.btn:active:not(:disabled),.primary-btn:active:not(:disabled){transform:translateY(.5px)}
.btn-sm{height:var(--ctl-sm);padding:0 10px;font-size:var(--fs-sm);border-radius:var(--r-sm)}
.btn-primary,.primary-btn{background:var(--gold);color:#16130b;box-shadow:inset 0 1px 0 #ffffff40,0 1px 2px #0005}
.btn-primary:hover:not(:disabled),.primary-btn:hover:not(:disabled){background:var(--gold-2)}
.btn-secondary{background:var(--surface-3);border-color:var(--line-2);color:var(--text)}
.btn-secondary:hover:not(:disabled){background:var(--active);border-color:var(--line-3)}
.btn-ghost{color:var(--text-2)}
.btn-ghost:hover:not(:disabled){background:var(--hover);color:var(--text)}
.primary-btn.danger{background:var(--red);color:#fff;box-shadow:none}
.btn[aria-busy=true]{pointer-events:none;opacity:.7}
.text-btn{background:transparent;color:var(--gold-2);font-size:var(--fs-md);font-weight:500;padding:4px 6px;border-radius:var(--r-xs);white-space:nowrap;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}
.text-btn:hover{color:var(--text);background:var(--hover)}
.text-btn.danger{color:#f2878d}
.icon-button,.icon-btn{width:30px;height:30px;display:inline-grid;place-items:center;background:transparent;color:var(--text-2);border-radius:var(--r-sm);flex-shrink:0;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.icon-btn{width:28px;height:28px}
.icon-button:hover,.icon-btn:hover{background:var(--hover);color:var(--text)}
.icon-button:active,.icon-btn:active{background:var(--active)}
.icon-btn svg{width:16px;height:16px}
input[type=range]{accent-color:var(--gold);height:18px;cursor:pointer}
input[type=text],input[type=search],input[type=number],input[type=datetime-local],textarea{border-radius:var(--r-sm)}
/* Switches (role=switch): V7 checkboxes, colour menu, alerts. */
.ui-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:var(--fs-md);color:var(--text-2);user-select:none;position:relative}
.ui-switch input{position:absolute;opacity:0;width:1px;height:1px}
.ui-switch-track,.ui-toggle,.input-row input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;flex-shrink:0;width:32px;height:18px;border-radius:var(--r-pill);background:var(--line-3);transition:background var(--dur) var(--ease);cursor:pointer;margin:0;border:0}
.ui-switch-track::after,.ui-toggle::after,.input-row input[type=checkbox]::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#dfe4ea;box-shadow:0 1px 2px #0008;transition:transform var(--dur) var(--ease)}
.ui-switch input:checked+.ui-switch-track,.ui-toggle:checked,.input-row input[type=checkbox]:checked{background:var(--gold)}
.ui-switch input:checked+.ui-switch-track::after,.ui-toggle:checked::after,.input-row input[type=checkbox]:checked::after{transform:translateX(14px);background:#17140c}
.ui-switch input:focus-visible+.ui-switch-track{box-shadow:var(--focus)}
.ui-switch input:disabled+.ui-switch-track{opacity:.4;cursor:not-allowed}
.segmented{display:flex;padding:2px;gap:2px;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm)}
.segmented-item{flex:1;white-space:nowrap;height:24px;padding:0 8px;border-radius:4px;font-size:var(--fs-sm);font-weight:550;color:var(--text-2);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.segmented-item:hover{color:var(--text)}
.segmented-item[aria-checked=true]{background:var(--surface-3);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-3)}

/* Custom select (button + listbox in the popover layer). */
.ui-select{display:inline-flex;align-items:center;gap:6px;height:var(--ctl);padding:0 8px 0 9px;border-radius:var(--r-sm);font-size:var(--fs-md);font-weight:500;color:var(--text);white-space:nowrap;min-width:0;max-width:100%;border:1px solid var(--line-2);background:var(--surface-2);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.ui-select:hover{border-color:var(--line-3);background:var(--surface-3)}
.ui-select[aria-expanded=true]{border-color:var(--gold-line);background:var(--surface-3)}
.ui-select-text{overflow:hidden;text-overflow:ellipsis;min-width:0}
.ui-select-icon{display:inline-grid;place-items:center;color:var(--text-2)}
.ui-select-icon svg{width:16px;height:16px}
.ui-chevron{width:14px;height:14px;color:var(--muted);margin-left:auto;transition:transform var(--dur) var(--ease)}
.ui-select[aria-expanded=true] .ui-chevron{transform:rotate(180deg)}
.ui-select-sm{height:var(--ctl-sm);font-size:var(--fs-sm);padding:0 6px 0 8px}
.toolbar-select{border-color:transparent;background:transparent;color:var(--text-2)}
.toolbar-select:hover,.toolbar-select[aria-expanded=true]{background:var(--hover);border-color:transparent;color:var(--text)}
.field-select{min-width:150px;max-width:260px;justify-content:space-between;background:var(--bg)}
.popover-layer{position:fixed;inset:0;pointer-events:none;z-index:90}
.popover{position:fixed;pointer-events:auto;z-index:90;min-width:160px;max-width:calc(100vw - 16px);overflow:auto;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);box-shadow:var(--shadow-pop);opacity:0;transform:translateY(-3px) scale(.985);transform-origin:top;transition:opacity 120ms var(--ease),transform 120ms var(--ease);scrollbar-width:thin;scrollbar-color:#3a424d transparent}
.popover[data-side=above]{transform-origin:bottom;transform:translateY(3px) scale(.985)}
.popover.is-open{opacity:1;transform:none}
.ui-listbox{display:flex;flex-direction:column;padding:4px;outline:none}
.ui-option{display:flex;align-items:center;gap:9px;min-height:32px;padding:5px 9px 5px 8px;border-radius:5px;font-size:var(--fs-md);color:var(--text);cursor:pointer;outline:none;user-select:none}
.ui-option:hover,.ui-option:focus{background:var(--hover)}
.ui-option:focus-visible{box-shadow:inset 0 0 0 1px var(--gold-line)}
.ui-option[aria-selected=true]{color:var(--gold-2)}
.ui-option.is-disabled{opacity:.4;cursor:not-allowed}
.ui-option-icon{display:inline-grid;place-items:center;color:var(--text-2);width:18px}
.ui-option-icon:empty{display:none}
.ui-option-body{display:flex;flex-direction:column;min-width:0;flex:1}
.ui-option-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-option-hint{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-check{width:15px;height:15px;color:var(--gold);opacity:0;margin-left:8px}
.ui-option[aria-selected=true] .ui-check{opacity:1}
.menu-list{display:flex;flex-direction:column;padding:4px;min-width:210px}
.menu-item{display:flex;align-items:center;min-height:32px;padding:0 10px;border-radius:5px;font-size:var(--fs-md);text-align:left;color:var(--text)}
.menu-item:hover,.menu-item:focus{background:var(--hover);outline:none}
.menu-item[aria-checked=true]::after{content:"";margin-left:auto;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.menu-hint{margin:4px 10px 6px;font-size:var(--fs-xs);color:var(--muted);line-height:1.45}
@media(pointer:coarse){.ui-option,.menu-item{min-height:40px}.icon-btn{width:34px;height:34px}}
/* Toasts */
.toast-host{position:fixed;right:14px;bottom:40px;z-index:95;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none;max-width:calc(100vw - 28px)}
.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;width:340px;max-width:100%;padding:11px 10px 11px 12px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r-md);box-shadow:var(--shadow-pop);opacity:0;transform:translateY(6px);transition:opacity 160ms var(--ease),transform 160ms var(--ease)}
.toast.is-in{opacity:1;transform:none}.toast.is-out{opacity:0;transform:translateY(4px)}
.toast-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);margin-top:5px;flex-shrink:0}
.toast-buy .toast-dot,.toast-ok .toast-dot{background:var(--green)}.toast-sell .toast-dot,.toast-error .toast-dot{background:var(--red)}
.toast-buy{border-color:#1fd1a14d}.toast-sell{border-color:#ff47574d}
.toast-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.toast-title{font-size:var(--fs-md);font-weight:600}
.toast-text{font-size:var(--fs-sm);color:var(--text-2);line-height:1.45}
.toast-action{height:26px;padding:0 9px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:600;color:var(--gold-2);background:var(--gold-soft);white-space:nowrap;align-self:center}
.toast-action:hover{background:#d4b16a26}
.toast-close{width:22px;height:22px;display:grid;place-items:center;color:var(--muted);border-radius:4px}
.toast-close:hover{color:var(--text);background:var(--hover)}
.toast-close svg{width:14px;height:14px}

/* --- Header ----------------------------------------------------------------------- */
.topbar{display:flex;align-items:center;gap:14px;padding:0 12px 0 14px;border-bottom:1px solid var(--line);min-width:0;background:var(--bg-bar)}
.brand{display:flex;align-items:center;flex-shrink:0;text-decoration:none}
.brand-logo{display:block;height:16px;width:auto}
/* TRA-1570 P61: 16 px high (≈99 CSS px wide, original ratio) on every width – narrow headers shrink it proportionally (max-width) instead of overflowing.
   TRA-1531 turbo: header logo 14 px high (≈87 CSS px wide, original ratio) – Daniel: ~50–55 % of the former 161 px; the link keeps a 32 px hitbox, logo centred; 1 px top padding = whole pixels in the 45 px row */
.topbar>.brand{padding-top:1px;min-height:32px;padding-inline:2px}
@media(max-width:1366px){.topbar>.header-divider,.topbar>.product{display:none}} /* the wider wordmark takes the room of the „Terminal“ label (Chart/PRO tabs follow) – workspace name keeps its width */
@media(max-width:420px){.topbar>.brand{padding-top:0}}
/* phones: the wordmark gives way (proportionally, down to 60 px wide) before the header could overflow – e.g. with a broker logo + avatar */
@media(max-width:580px){.topbar>.brand{flex:0 100 auto;min-width:60px}.topbar .brand-logo{width:auto;height:auto;max-width:100%;max-height:16px}}
.header-divider,.toolbar-divider{height:18px;width:1px;background:var(--line-2);flex-shrink:0}
.product{font-size:var(--fs-lg);font-weight:600;letter-spacing:.01em;color:var(--text);white-space:nowrap}
.header-right{display:flex;align-items:center;gap:10px;margin-left:auto;min-width:0}
.preview-label{font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:var(--muted);padding:3px 7px;border:1px solid var(--line-2);border-radius:var(--r-pill)}
.engine-status{font-size:var(--fs-sm);color:var(--muted);display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.engine-status i{height:6px;width:6px;border-radius:50%;background:currentColor;flex-shrink:0;box-shadow:0 0 0 3px #ffffff08}
.engine-status.ready{color:#7fdcbf}
/* Broker account management; source selection lives once in the header. */
.broker-button{display:flex;align-items:center;gap:8px;height:30px;padding:0 11px 0 9px;border-radius:var(--r-pill);border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);font-size:var(--fs-sm);font-weight:550;white-space:nowrap;flex-shrink:0;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.broker-button:hover{background:var(--surface-3);border-color:var(--line-3)}
.broker-button .broker-plug{width:15px;height:15px;color:var(--gold)}
.broker-button span{overflow:hidden;text-overflow:ellipsis}
#brokerBtnText:empty{display:none}
.broker-sep{width:1px;height:14px;background:var(--line-3);flex-shrink:0}
#brokerBtnText:empty+.broker-sep{display:none}
.broker-brand{display:block;height:14px;width:auto;flex-shrink:0;opacity:.95}
.broker-brand.is-text{height:auto;font-weight:700;letter-spacing:.02em;font-size:var(--fs-sm)}
/* TRA-1479 26: real broker logo in the account button and the source picker; the logo keeps its size, long account texts shorten */
#brokerBrand{display:inline-flex;align-items:center;flex-shrink:0;overflow:visible}#brokerBrand[hidden]{display:none}#brokerBrand .broker-brand{height:14px;width:auto;max-width:96px;object-fit:contain}
.feed-logo{display:block;height:13px;width:auto;max-width:80px;object-fit:contain}.ui-option-icon .feed-logo{height:12px}
@media(max-width:640px){.feed-picker .ui-select-icon:has(.feed-logo){display:inline-flex}}
.broker-button[data-state=connected]{border-color:#1fd1a159;background:#1fd1a10f}
.broker-button[data-state=connected] .broker-plug{color:var(--green)}
.broker-button[data-state=expired]{border-color:#ff47577a;color:#f2a7ab}
main{display:grid;grid-template-columns:minmax(0,1fr) 44px;min-height:0;min-width:0;overflow:hidden}

/* --- Toolbar ------------------------------------------------------------------------ */
.chart-pane{display:grid;grid-template-rows:42px 34px minmax(0,1fr);min-height:0;min-width:0;overflow:hidden}
.toolbar{display:flex;align-items:center;gap:6px;padding:0 8px;border-bottom:1px solid var(--line);min-width:0;background:var(--bg-bar)}
.market-picker{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px 0 6px;flex-shrink:0;background:transparent;border-radius:var(--r-sm);font-size:var(--fs-lg);transition:background var(--dur) var(--ease)}
.market-picker:hover{background:var(--hover)}
.market-picker strong{font-weight:650;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em}
.market-picker>svg{width:14px;height:14px;color:var(--muted)}
.currency-icon{width:22px;height:22px;border-radius:50%;background:#24394b;color:#c4d7e7;display:grid;place-items:center;font-size:14px;flex-shrink:0}
.market-logo{--logo-size:22px;position:relative;width:var(--logo-size);height:var(--logo-size);flex-shrink:0;display:inline-grid;place-items:center;border-radius:50%;vertical-align:middle;overflow:visible}
.market-logo img{width:100%;height:100%;object-fit:contain;border-radius:50%;display:block}
.market-logo.logo-chip{background:#f4f5f7;box-shadow:0 0 0 1px #ffffff1f}
.market-logo.logo-chip img{width:76%;height:76%;border-radius:2px}
.market-logo.logo-pair img{position:absolute;width:72%;height:72%;box-shadow:0 0 0 1.5px var(--bg)}
.market-logo.logo-pair .pair-base{left:0;top:0;z-index:1}
.market-logo.logo-pair .pair-quote{right:0;bottom:0}
.market-logo.logo-monogram{background:linear-gradient(145deg,#2a3340,#1b2129);color:#d7dde6;font-size:calc(var(--logo-size)*.38);font-weight:700;letter-spacing:.02em;box-shadow:inset 0 0 0 1px #ffffff1a}
.market-logo[data-tone=fx]{background:linear-gradient(145deg,#1f3a52,#152637);color:#cfe3f5}
.market-logo[data-tone=crypto]{background:linear-gradient(145deg,#3d2f14,#251c0b);color:#f3cf7d}
.market-logo[data-tone=commodity]{background:linear-gradient(145deg,#3a3220,#211c12);color:#e8cf91}
.market-logo[data-tone=index]{background:linear-gradient(145deg,#26303d,#171d25);color:#c9d3df}
#marketName .market-logo{margin-right:8px;transform:translateY(-1px)}
.market-result-symbol{display:flex;align-items:center;gap:9px;min-width:0}
.watch-open strong{display:flex;align-items:center;gap:8px;min-width:0}
.timeframes{display:flex;align-items:center;gap:1px;flex-shrink:0;padding:2px;border-radius:var(--r-sm)}
.timeframes button{font-size:var(--fs-md);font-weight:550;background:transparent;color:var(--muted);border-radius:5px;min-width:32px;height:26px;padding:0 6px;transition:background var(--dur) var(--ease),color var(--dur) var(--ease);font-variant-numeric:tabular-nums}
.timeframes button:hover{background:var(--hover);color:var(--text)}
.timeframes button[aria-pressed=true]{background:var(--gold-soft);color:var(--gold-2);box-shadow:inset 0 0 0 1px #d4b16a33}
.chart-type,.feed-picker{display:flex;align-items:center;flex-shrink:0;min-width:0}
.feed-picker .ui-select{max-width:220px}
.toolbar-btn{display:flex;align-items:center;justify-content:center;gap:6px;height:30px;background:transparent;border-radius:var(--r-sm);padding:0 9px;font-size:var(--fs-md);font-weight:500;white-space:nowrap;color:var(--text-2);border:1px solid transparent;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease);position:relative}
.toolbar-btn:hover,.rail-button:hover{background:var(--hover);color:var(--text)}
.toolbar-btn:active{background:var(--active)}
.toolbar-btn.icon-only{width:30px;padding:0}
.toolbar-btn[aria-expanded=true]{background:var(--active);color:var(--text)}
.indicator-button{color:var(--text)}
.indicator-button b{color:var(--gold);font-weight:650}
.alerts-badge{position:absolute;top:1px;right:0;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--gold);color:#17140c;font:700 10px/15px var(--font);text-align:center}
.alerts-button[data-state=on]{color:var(--gold-2)}
.alerts-button[data-state=error]{color:#ff9aa0}
.replay-button{margin-left:auto}
.replay-button[aria-pressed=true]{color:var(--gold-2);border-color:var(--gold-line);background:var(--gold-soft)}
.live-button[data-follow=false]{color:var(--gold-2);border-color:var(--gold-line);background:var(--gold-soft)}
@media(max-width:900px){.replay-button span,.live-button span{display:none}.replay-button,.live-button{width:30px;padding:0}}
.market-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px 0 56px;min-width:0;background:var(--bg)}
.market-description{display:flex;align-items:center;gap:12px;min-width:0;overflow:hidden}
.market-heading h1{font-size:var(--fs-md);font-weight:600;white-space:nowrap;margin:0;overflow:hidden;text-overflow:ellipsis;min-width:0;display:flex;align-items:center}
.market-heading h1 span{font-size:var(--fs-sm);font-weight:500;color:var(--muted);margin-left:6px}
.market-heading h1 #marketTitle{color:var(--text);font-size:var(--fs-md);font-weight:600;margin:0}
.market-meta{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap}
.ohlc{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;display:flex;gap:8px}
.ohlc span{color:var(--text-2)}
.quote{display:flex;align-items:baseline;gap:9px;white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0}
.quote strong{font-size:var(--fs-xl);font-weight:650;letter-spacing:-.01em}
.quote>span{font-size:var(--fs-sm);color:var(--muted)}
.positive{color:var(--green)!important}
.negative{color:var(--red)!important}

/* --- Chart stage -------------------------------------------------------------------- */
.chart-stage{position:relative;min-height:0;min-width:0;isolation:isolate;background:var(--chart-bg,var(--bg));overflow:hidden}
#chart{position:absolute;inset:0;z-index:2}
.chart-watermark{position:absolute;left:0;top:0;right:var(--wm-axis,64px);bottom:28px;display:flex;align-items:center;justify-content:center;pointer-events:none;user-select:none;overflow:hidden;container-type:size}
.chart-watermark[hidden]{display:none}
.wm-symbol{color:#ffffff;opacity:var(--wm-opacity,.03);font-weight:700;letter-spacing:.02em;font-size:clamp(10px,min(4.05cqw,8.6cqh),56px);line-height:1;white-space:nowrap;max-width:94%;overflow:hidden;font-variant-numeric:tabular-nums}
/* Traden.de wordmark + "Terminal" as one compact unit, top right inside the plot (TRA-1455):
   below the price/OHLC line (that line sits above the plot), clear of the price axis (the
   watermark box ends at --wm-axis), scales with the plot and shrinks on small plots. */
.wm-mark{position:absolute;top:clamp(8px,1.8cqh,14px);right:clamp(10px,1.4cqw,16px);display:flex;flex-direction:column;align-items:flex-end;gap:clamp(1px,.35cqh,3px);opacity:calc(var(--wm-brand-opacity,.06) * 1.18);line-height:1} /* TRA-1456b: +18 % relative (Daniel 07.10.) */
.wm-brand{display:block;width:clamp(58px,8.5cqw,118px);height:auto}
.wm-brand:not([src]){display:none}
.wm-brand:not([src])+.wm-sub{display:none}
.wm-sub{color:#fff;font-weight:600;font-size:clamp(6.5px,.82cqw,10.5px);letter-spacing:.46em;text-transform:uppercase;margin-right:-.46em;white-space:nowrap}
/* Replay control bar: compact, movable (handle), docked top by default. */
.replay-bar{position:absolute;left:50%;top:38px;z-index:6;display:flex;align-items:center;gap:8px;max-width:calc(100% - 16px);padding:4px 6px 4px 4px;border-radius:10px;background:#12161bf2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #d4b16a40;box-shadow:var(--shadow-pop);font-size:var(--fs-sm);color:var(--text);user-select:none}
.replay-bar.is-dragging{box-shadow:0 24px 50px -10px #000e,0 0 0 1px #d4b16a80;cursor:grabbing}
.replay-handle{width:22px;height:28px;display:grid;place-items:center;color:var(--faint);border-radius:5px;cursor:grab;touch-action:none;flex-shrink:0}
.replay-handle:hover{color:var(--text-2);background:var(--hover)}
.replay-handle:active{cursor:grabbing}
.replay-handle svg{width:14px;height:14px;fill:currentColor}
.replay-tag{font-weight:700;letter-spacing:.08em;color:var(--gold-2);font-size:10.5px;padding:3px 6px;border-radius:4px;background:var(--gold-soft)}
.replay-pick,.replay-controls{display:flex;align-items:center;gap:6px;min-width:0}
.replay-pick-hint{color:var(--text-2);white-space:nowrap}
.replay-pick input{height:26px;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:0 6px;color-scheme:dark;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.replay-pick input:hover{border-color:var(--line-3)}
.replay-controls .icon-btn{color:var(--text);background:#ffffff0a}
.replay-controls .icon-btn:hover{background:#ffffff17}
.replay-play{color:#17140c!important;background:var(--gold)!important}
.replay-play:hover{background:var(--gold-2)!important}
#replayPlay .i-pause,#replayPlay[data-playing=true] .i-play{display:none}#replayPlay[data-playing=true] .i-pause{display:inline}
.replay-time{font-variant-numeric:tabular-nums;color:var(--gold-2);white-space:nowrap;padding:0 2px}
.replay-status{color:var(--muted);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.replay-status[data-tone=error]{color:#ff9a8f}
.replay-status:empty{display:none}
/* TRA-1456g: X right in the bar ends the replay (or the start-candle pick); the head (grip + REPLAY tag) drags */
.replay-tag{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.replay-bar.is-dragging .replay-tag{cursor:grabbing}
.replay-close{flex-shrink:0;margin-left:2px;width:28px;height:28px;color:var(--text)!important;background:#ffffff12;border:1px solid var(--line-3)}
.replay-close svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round}
.replay-close:hover,.replay-close:focus-visible{color:#fff!important;background:#e8485c38;border-color:#e8485c99}
.replay-bar[data-compact=true] .replay-tag{cursor:default}
.replay-bar[data-compact=true] .replay-close{position:sticky;right:0;margin-left:auto;background:#262b33;box-shadow:-8px 0 8px -2px #12161b}
.replay-bar[data-compact=true]{left:6px!important;right:6px;max-width:none;justify-content:flex-start;gap:5px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.replay-bar[data-compact=true] .replay-handle,.replay-bar[data-compact=true] .replay-pick-hint,.replay-bar[data-compact=true] .replay-status{display:none}
body.replaying .live-quote{display:none!important}
body.replaying #brokerView::before{content:'Replay aktiv: Brokerkonto und Kurse zeigen die Gegenwart, nicht den Replay-Zeitpunkt. Keine Orders.';display:block;margin:12px 16px 0;padding:8px 10px;border-radius:var(--r-sm);background:var(--gold-soft);border:1px solid #d4b16a44;color:#f3dfae;font-size:var(--fs-sm)}
.loading{position:absolute;z-index:8;inset:0;background:#0b0e12e6;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--muted);font-size:var(--fs-md)}
.loading strong{color:var(--text);font-size:var(--fs-lg);font-weight:600}
.spinner{width:22px;height:22px;border:2px solid var(--line-2);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.error-box{position:absolute;z-index:9;top:50%;left:50%;transform:translate(-50%,-50%);width:min(420px,90%);padding:22px;background:var(--surface);border:1px solid #6e3a3f;border-radius:var(--r-lg);text-align:center;box-shadow:var(--shadow-dialog)}
.error-box.is-stale{top:12px;transform:translate(-50%,0);width:min(560px,92%);padding:10px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;text-align:left;border-color:#7a5a2a}
.error-box.is-stale strong{flex:1 1 100%;font-size:var(--fs-md);color:#e8c27a}
.error-box.is-stale p{flex:1 1 0;margin:0;font-size:var(--fs-sm)}
.error-box p{font-size:var(--fs-md);line-height:1.6;color:var(--text-2)}
.error-box button{height:var(--ctl);padding:0 14px;background:var(--gold);color:#16130b;border-radius:var(--r-sm);font-size:var(--fs-md);font-weight:600}

/* --- Rail + footer ------------------------------------------------------------------ */
.command-rail{display:flex;flex-direction:column;align-items:center;gap:4px;padding:7px 0;border-left:1px solid var(--line);background:var(--bg-bar)}
.rail-button{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-sm);background:transparent;color:var(--muted);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.rail-button[aria-expanded=true]{background:var(--gold-soft);color:var(--gold)}
.footer{display:flex;align-items:center;gap:16px;min-width:0;border-top:1px solid var(--line);padding:0 12px;font-size:var(--fs-xs);color:var(--muted);background:var(--bg-bar)}
.footer-brand{white-space:nowrap;color:var(--text-2);font-weight:650;letter-spacing:.04em}
.footer-brand b{color:var(--gold);font-weight:650}
#footStatus{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}
.data-notice{margin-left:auto;display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;white-space:nowrap}
.data-notice>span:last-child{overflow:hidden;text-overflow:ellipsis}
.notice-tag{color:var(--gold);font-weight:650;letter-spacing:.04em}
#candleStamp{white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums}

/* --- Dialogs ------------------------------------------------------------------------ */
.panel-backdrop{position:fixed;inset:0;z-index:29;background:#03050799;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.panel,.market-dialog{position:fixed;z-index:30;top:50%;left:50%;transform:translate(-50%,-50%);width:min(860px,calc(100vw - 48px));height:min(660px,calc(100dvh - 64px));display:grid;grid-template-rows:52px 42px minmax(0,1fr) 30px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-dialog);overflow:hidden}
.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 18px;border-bottom:1px solid var(--line)}
.panel-heading h2{font-size:15px;font-weight:650;margin:0;letter-spacing:.005em}
.panel-heading h2 span{color:var(--gold)}
.panel-tabs{display:flex;align-items:stretch;gap:18px;padding:0 18px;border-bottom:1px solid var(--line)}
.panel-tabs button{background:transparent;color:var(--muted);font-size:var(--fs-md);font-weight:550;padding:0 2px;border-bottom:2px solid transparent;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.panel-tabs button:hover{color:var(--text)}
.panel-tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--gold)}
.settings-view{display:grid;grid-template-rows:minmax(0,1fr) 44px;min-height:0;overflow:hidden}
.settings-content{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:0;overflow:hidden}
.settings-groups{display:flex;flex-direction:column;gap:1px;padding:10px 8px;border-right:1px solid var(--line);overflow:auto;scrollbar-width:thin;scrollbar-color:#3a424d transparent}
.settings-groups button{background:transparent;color:var(--text-2);padding:7px 10px;text-align:left;border-radius:var(--r-sm);font-size:var(--fs-md);line-height:1.3;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.settings-groups button:hover{background:var(--hover);color:var(--text)}
.settings-groups button[aria-pressed=true]{background:var(--gold-soft);color:var(--gold-2)}
.settings-fields{padding:18px 22px;overflow:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#3a424d transparent}
.input-group summary{list-style:none;font-size:var(--fs-lg);font-weight:650;line-height:1.4;margin-bottom:14px;pointer-events:none}
.input-group summary::-webkit-details-marker{display:none}
.input-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 0;min-height:40px;color:var(--text-2);font-size:var(--fs-md);line-height:1.45;border-bottom:1px solid #ffffff06}
.input-row>span:first-child{flex:1;min-width:0}
.input-row input[type=text],.input-row input[type=number],.input-row textarea{background:var(--bg);border:1px solid var(--line-2);padding:0 9px;height:var(--ctl);font:inherit;min-width:0;transition:border-color var(--dur) var(--ease)}
.input-row input[type=text]:hover,.input-row input[type=number]:hover,.input-row textarea:hover{border-color:var(--line-3)}
.input-row input[type=number]{width:92px;font-variant-numeric:tabular-nums}
.input-text_area{flex-direction:column;align-items:stretch}
.input-text_area textarea{width:100%;height:auto;padding:8px 9px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-sm);line-height:1.7;min-height:100px}
.input-string input{max-width:220px}
.color-control{display:flex;align-items:center;gap:8px;flex-shrink:0}
.color-control input[type=color]{width:28px;height:26px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:transparent;padding:2px;cursor:pointer}
.color-control input[type=range]{width:78px}
.color-control output{font-size:var(--fs-sm);min-width:31px;font-variant-numeric:tabular-nums;color:var(--muted)}
.display-status{margin:6px 0 10px;padding:8px 10px;border-radius:var(--r-sm);background:var(--bg);border:1px solid var(--line-2);color:var(--muted);font-size:var(--fs-sm);line-height:1.5}
.display-status[data-state=ok]{border-color:#2b4a3f;color:#a9c7bb}
.display-status[data-state=stale]{border-color:#5a4a26;color:#e2c68a}
.display-status[data-state=error]{border-color:#5a2c30;color:#f0a3a8}
.settings-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 16px;border-top:1px solid var(--line);min-width:0}
.settings-status{font-size:var(--fs-sm);color:var(--muted);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.category-picker{display:none}
.summary-view{overflow:auto;padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:start;min-height:0;scrollbar-width:thin}
.panel-section{padding:16px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--bg);min-width:0}
.eyebrow{font-size:var(--fs-xs);letter-spacing:.07em;font-weight:650;color:var(--muted);text-transform:uppercase}
.trend-state{font-size:19px;font-weight:600;margin-top:10px}
.panel-section p{font-size:var(--fs-md);line-height:1.6;color:var(--muted);margin:8px 0 0}
.signal-line{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums;font-size:16px}
.signal-line strong{font-weight:600}
.setup-section dl{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:0;font-size:var(--fs-md);font-variant-numeric:tabular-nums}
.setup-section dt{color:var(--muted)}
.setup-section dd{margin:0}
.panel-foot{display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--muted)}
.panel-foot a{text-decoration:none}
.panel-foot a:hover{color:var(--gold)}
.market-dialog{width:min(720px,calc(100vw - 48px));grid-template-rows:52px 54px auto minmax(26px,auto) minmax(0,1fr) 40px}
/* TRA-1479 (Daniel 12.10. 413bde9c): every part keeps its own row. The market-type filter bar is hidden for a broker
   account – without fixed rows the list slid into the 26 px status row and the footer into the list row. */
.market-dialog>.panel-heading{grid-row:1}.market-dialog>.search-field{grid-row:2}.market-dialog>.market-filters{grid-row:3}.market-dialog>.market-status{grid-row:4;align-self:center}.market-dialog>.market-results{grid-row:5}.market-dialog>.market-foot{grid-row:6}
.search-field{display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--line);color:var(--muted)}
.search-field input{border:0;background:transparent;width:100%;min-width:0;font-size:15px;padding:9px 0;box-shadow:none}
.search-field input::placeholder{color:#6d7681}
.search-field:focus-within{box-shadow:inset 0 -2px 0 var(--gold-line)}
.market-filters{display:flex;flex-wrap:wrap;gap:4px;padding:10px 16px 6px}
.market-filters button{font-size:var(--fs-md);font-weight:550;border-radius:var(--r-pill);height:28px;padding:0 11px;background:transparent;color:var(--text-2);border:1px solid var(--line-2);transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.market-filters button:hover{color:var(--text);border-color:var(--line-3)}
.market-filters button[aria-pressed=true]{background:var(--gold-soft);color:var(--gold-2);border-color:var(--gold-line)}
.market-status{font-size:var(--fs-sm);margin:0;padding:0 18px;line-height:1.6;color:var(--muted)}
.market-results{overflow:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#3a424d transparent;padding:2px 6px}
.market-result{width:100%;display:grid;grid-template-columns:150px minmax(0,1fr) 110px;gap:12px;align-items:center;padding:10px 12px;background:transparent;text-align:left;border-radius:var(--r-sm);font-size:var(--fs-md);transition:background var(--dur) var(--ease)}
.market-result:hover,.market-result:focus-visible{background:var(--hover)}
.market-result strong{font-weight:650;overflow:hidden;text-overflow:ellipsis}
.market-result .market-result-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}
.market-result .market-result-kind{text-align:right;color:var(--muted);font-size:var(--fs-sm)}
.market-foot{display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--muted)}
.embed .topbar{display:none}
.embed .terminal{grid-template-rows:minmax(0,1fr) 28px}
.terminal:fullscreen{height:100vh}

/* --- Workspaces, save status, account, inbox, watchlist ------------------------------ */
.workspace-bar{display:flex;align-items:center;gap:6px;min-width:0}
.workspace-button{display:flex;align-items:center;gap:7px;height:30px;padding:0 8px;border-radius:var(--r-sm);background:transparent;color:var(--text);font-size:var(--fs-md);font-weight:550;min-width:0;max-width:220px;transition:background var(--dur) var(--ease)}
.workspace-button:hover,.workspace-button[aria-expanded=true]{background:var(--hover)}
.workspace-button>svg{width:15px;height:15px;color:var(--muted)}
.workspace-button>svg:last-child{width:13px;height:13px}
#workspaceName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.save-status{display:flex;align-items:center;gap:6px;height:24px;padding:0 8px;border-radius:var(--r-pill);background:transparent;color:var(--muted);font-size:var(--fs-sm);white-space:nowrap;cursor:default}
.save-status i{width:6px;height:6px;border-radius:50%;background:#5d636d;flex-shrink:0}
.save-status[data-state=saved] i{background:var(--green)}
.save-status[data-state=dirty] i,.save-status[data-state=saving] i{background:var(--gold)}
.save-status[data-state=saving] i{animation:pulse 1s ease-in-out infinite}
.save-status[data-state=error],.save-status[data-state=conflict],.save-status[data-state=auth]{color:#f2a7ab;background:#ff475714;cursor:pointer}
.save-status[data-state=error] i,.save-status[data-state=conflict] i,.save-status[data-state=auth] i{background:var(--red)}
@keyframes pulse{50%{opacity:.35}}
.account{display:flex;align-items:center;gap:2px;flex-shrink:0}
.account-icons{display:flex;align-items:center;gap:1px}
.account-button{position:relative;display:flex;align-items:center;gap:8px;height:30px;padding:0 12px 0 3px;border-radius:var(--r-pill);background:var(--surface-3);border:1px solid var(--line-2);color:#fff;font-size:var(--fs-md);font-weight:550;max-width:200px;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.account-button:hover,.account-button[aria-expanded=true]{background:var(--active);border-color:var(--line-3)}
.account-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#2a2e35}
.account-initial{display:inline-grid;place-items:center;background:#c98b23;color:#fff;font-size:var(--fs-xs);font-weight:700}
.account-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-icon{position:relative;display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-sm);color:var(--text-2);text-decoration:none;border:0;background:transparent;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.account-icon:hover,.account-icon[aria-expanded=true]{background:var(--hover);color:#fff}
.account-icon svg{width:19px;height:19px}
.account-badge{position:absolute;top:0;right:-2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#c98b23;color:#fff;font:700 10px/16px var(--font);text-align:center;box-shadow:0 0 0 2px var(--bg-bar)}
.account-badge.inline{position:static;display:inline-block;margin-left:8px;vertical-align:middle;box-shadow:none}
.account-badge-sum{display:none;top:-3px;right:-5px}
.account-menu,.workspace-menu{position:fixed;z-index:60;min-width:230px;max-width:calc(100vw - 16px);padding:5px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);box-shadow:var(--shadow-pop);display:flex;flex-direction:column}
.account-menu-head{display:flex;align-items:center;gap:10px;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;font-size:var(--fs-lg);min-width:0}
.account-menu-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.account-menu-item,.workspace-actions button{display:flex;align-items:center;min-height:32px;padding:0 10px;border-radius:5px;color:var(--text);text-decoration:none;font-size:var(--fs-md);background:transparent;text-align:left}
.account-menu-item:hover,.account-menu-item:focus,.workspace-actions button:hover,.workspace-actions button:focus,.workspace-item:hover,.workspace-item:focus{background:var(--hover);outline:none}
.account-menu-item.danger,.workspace-actions .danger{color:#f2878d}
button.account-menu-item{width:100%;border:0;font:inherit;font-size:var(--fs-md);cursor:pointer}
.account-menu:focus{outline:none}
.inbox-menu{width:360px;max-height:min(480px,calc(100dvh - 60px))}
.inbox-head{padding:8px 10px 9px;border-bottom:1px solid var(--line);font-size:var(--fs-md);font-weight:650}
.inbox-list{display:flex;flex-direction:column;overflow:auto;min-height:0;flex:1;padding:4px 0;border-bottom:1px solid var(--line);margin-bottom:4px}
.inbox-item{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:5px;color:var(--text);text-decoration:none;font-size:var(--fs-md);line-height:1.35}
.inbox-item:hover,.inbox-item:focus{background:var(--hover);outline:none}
.inbox-item.is-unread{background:var(--gold-soft);box-shadow:inset 2px 0 0 var(--gold)}
.inbox-item.is-unread:hover,.inbox-item.is-unread:focus{background:#d4b16a24}
.inbox-avatar{width:28px;height:28px;margin-top:1px}
.inbox-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.inbox-title{overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.inbox-meta{font-size:var(--fs-xs);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inbox-status{padding:14px 10px;font-size:var(--fs-md);color:var(--muted)}
.inbox-retry{color:var(--gold)}
.inbox-all{justify-content:center;font-size:var(--fs-md);color:var(--gold-2)!important}
.workspace-menu{width:280px}
.workspace-menu-title{padding:8px 10px 6px;font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:650}
.workspace-list{display:flex;flex-direction:column;max-height:min(320px,50vh);overflow:auto;border-bottom:1px solid var(--line);padding-bottom:4px;margin-bottom:4px}
.workspace-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:34px;padding:0 10px 0 26px;border-radius:5px;background:transparent;text-align:left;position:relative;font-size:var(--fs-md)}
.workspace-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace-item small{color:var(--muted);font-size:var(--fs-sm)}
.workspace-item[aria-checked=true]::before{content:"";position:absolute;left:11px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--gold)}
.workspace-actions{display:flex;flex-direction:column}
.watch-toggle[aria-pressed=true]{color:var(--gold)}
.watch-toggle[aria-pressed=true] svg{fill:currentColor}
.watchlist-view{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.watchlist-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line)}
.watchlist-head p{margin:0;font-size:var(--fs-md);color:var(--muted)}
.watchlist-items{list-style:none;margin:0;padding:6px 8px;overflow:auto;min-height:0}
.watchlist-items li{display:flex;align-items:center;gap:4px;border-radius:var(--r-sm)}
.watchlist-items li:hover{background:#ffffff05}
.watch-open{flex:1;display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:center;padding:10px;background:transparent;text-align:left;border-radius:var(--r-sm);min-width:0;font-size:var(--fs-md)}
.watch-open:hover{background:var(--hover)}
.watch-open[aria-current=true] strong{color:var(--gold-2)}
.watch-open span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal-backdrop{position:fixed;inset:0;z-index:70;background:#030507b3}
.small-dialog{position:fixed;z-index:71;top:50%;left:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 24px));padding:20px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:var(--shadow-dialog);margin:0}
.small-dialog h2{margin:0 0 8px;font-size:15px;font-weight:650}
.small-dialog p{margin:0 0 14px;color:var(--text-2);font-size:var(--fs-md);line-height:1.55}
.small-dialog input{width:100%;height:36px;padding:0 11px;border:1px solid var(--line-2);background:var(--bg);font-size:var(--fs-lg);margin-bottom:16px}
.dialog-buttons{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.dialog-buttons.stacked{flex-direction:column;align-items:stretch}
.dialog-buttons .text-btn{height:var(--ctl);padding:0 12px}

/* --- Broker (TRA-1447/1449) ------------------------------------------------------------ */
.broker-dialog{position:fixed;z-index:30;top:50%;left:50%;transform:translate(-50%,-50%);width:min(820px,calc(100vw - 48px));max-height:calc(100dvh - 64px);display:grid;grid-template-rows:52px minmax(0,1fr);border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-dialog);overflow:hidden}
.broker-body{overflow:auto;padding:16px 18px 18px;display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:#3a424d transparent}
.broker-brandcard{display:flex;align-items:center;gap:18px;padding:16px 18px;border-radius:var(--r-md);border:1px solid var(--line-2);background:linear-gradient(135deg,#151a20,#0e1216);box-shadow:inset 0 1px 0 #ffffff08}
.broker-brandcard-logo{display:grid;place-items:center;padding:6px 4px;flex-shrink:0}
.broker-brandcard-mark{display:block;height:28px;width:auto}
.broker-brandcard-mark.is-text{height:auto;font-size:18px;font-weight:750}
.broker-brandcard-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.broker-brandcard-text strong{font-size:var(--fs-lg);font-weight:650}
.broker-brandcard-text span{font-size:var(--fs-sm);color:var(--text-2);line-height:1.5}
.broker-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.broker-card{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--bg);min-width:0}
.broker-card.offer{border-color:#4a3f2a}
.broker-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.broker-card h3,.broker-accounts h3{margin:0;font-size:var(--fs-lg);font-weight:650}
.broker-card p{margin:0;font-size:var(--fs-md);line-height:1.55;color:var(--text-2)}
.broker-tag{font-size:var(--fs-xs);font-weight:600;letter-spacing:.03em;color:var(--gold-2);border:1px solid #4a3f2a;border-radius:var(--r-pill);padding:2px 8px;white-space:nowrap}
.broker-terms-title{font-size:var(--fs-xs);color:var(--muted);font-weight:650;letter-spacing:.07em;text-transform:uppercase}
.broker-terms,.broker-facts{margin:0;padding-left:18px;font-size:var(--fs-md);line-height:1.6;color:var(--text)}
.broker-card p.broker-small,.broker-small{font-size:var(--fs-sm);line-height:1.5;color:var(--muted);margin:0}
.broker-card p.broker-risk{font-size:var(--fs-xs);color:#8d939d;border-top:1px solid var(--line);padding-top:8px}
.broker-cta{margin-top:auto;height:36px;width:100%}
.broker-cta svg,.broker-trade svg{width:14px;height:14px}
.broker-cta:disabled{cursor:not-allowed;background:var(--line-3);color:#9aa0aa;box-shadow:none}
.broker-link{font-size:var(--fs-md);color:var(--gold-2)}
.broker-notice{margin:0;padding:10px 12px;border-radius:var(--r-sm);font-size:var(--fs-md);line-height:1.5;border:1px solid}
.broker-notice.ok{background:#1fd1a112;border-color:#2e5a50;color:#bfe6dc}
.broker-notice.warn{background:var(--gold-soft);border-color:#4a3f2a;color:#ecd9b0}
.broker-notice.error{background:#ff475712;border-color:#7a4a4e;color:#f2c1c4}
.broker-muted{margin:0;font-size:var(--fs-md);color:var(--muted)}
.broker-accounts{display:flex;flex-direction:column;gap:8px}
.broker-account-list{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:var(--r-md);overflow:hidden}
.broker-account{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);cursor:pointer}
.broker-account .broker-account-text{flex:1}
.broker-account.blocked{cursor:default}.broker-account.blocked .broker-account-text strong{color:var(--text-2)}
.broker-account .broker-claim{font-size:var(--fs-sm);white-space:nowrap}
/* A2: own initials badges per broker (no third-party logo files), partner rule box, broker picker */
.broker-badge{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border-radius:7px;border:1px solid var(--line-3);background:var(--surface-2);color:var(--text);font-size:11px;font-weight:800;letter-spacing:.04em;flex-shrink:0}
.broker-badge[data-broker=pepperstone]{border-color:#3d5a8a;color:#bcd0f2}
.broker-badge[data-broker=blackbull]{border-color:#5d5d5d;background:#0b0b0b;color:#f4f4f4}
.broker-badge[data-broker=skilling]{border-color:#2f6f63;color:#a8e3d3}
.broker-badge[data-broker=other]{border-style:dashed;color:var(--muted)}
.broker-rule{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:var(--r-md);border:1px solid #4a3f2a;background:var(--gold-soft)}
.broker-rule strong{font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--gold-2)}
.broker-rule p{margin:0;font-size:var(--fs-md);line-height:1.5;color:var(--text)}
.broker-rule p.broker-rule-hint{color:#ecd9b0}
.broker-rule small{font-size:var(--fs-sm);color:var(--muted);line-height:1.5}
.broker-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.broker-pick{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--line-2);background:linear-gradient(135deg,#151a20,#0e1216);color:var(--text);text-align:left;cursor:pointer;min-width:0}
.broker-pick:hover{border-color:var(--line-3)}
.broker-pick.active{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.broker-pick-logo{display:flex;align-items:center;gap:8px;height:28px;min-width:0}
.broker-pick-mark{display:block;height:22px;width:auto;max-width:100%;object-fit:contain}
.broker-pick-mark[data-broker=skilling]{height:28px}
.broker-region{margin:0;padding:8px 10px;border-radius:var(--r-sm);border:1px solid #4a3f2a;background:var(--gold-soft);font-size:var(--fs-sm);line-height:1.5;color:#ecd9b0}
.broker-pick-mark.broker-badge{display:inline-grid;height:26px}
.broker-pick-mark.is-text{height:auto;font-size:16px;font-weight:750}
.broker-pick-name{font-size:var(--fs-lg);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.broker-pick small{font-size:var(--fs-sm);color:var(--muted)}
.broker-claim-box{display:flex;gap:8px;align-items:flex-start;font-size:var(--fs-sm);line-height:1.5;color:var(--text-2);cursor:pointer}
.broker-claim-box input{accent-color:var(--gold);width:16px;height:16px;margin-top:2px;flex-shrink:0}
.broker-account:hover{background:var(--hover)}
.broker-account.selected{background:#d4b16a0d}
.broker-account input{accent-color:var(--gold);width:16px;height:16px}
.broker-account-text{display:flex;flex-direction:column;min-width:0}
.broker-account-text strong{font-size:var(--fs-lg);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.broker-account-text small{font-size:var(--fs-sm);color:var(--muted)}
.broker-env{font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;padding:2px 7px;border-radius:4px}
.broker-env.demo{background:#2b3a4b;color:#9ec3e6}
.broker-env.live{background:#1fd1a122;color:#7fd9c4}
.broker-connection-foot{display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--bg);font-size:var(--fs-sm);flex-wrap:wrap}
.broker-state{margin-right:auto;color:var(--muted)}
.broker-state.connected{color:var(--green)}
.broker-state.expired{color:#f2a7ab}
.broker-view{overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-height:0;scrollbar-width:thin;scrollbar-color:#3a424d transparent}
.broker-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.broker-panel-head>div:first-child{display:flex;flex-direction:column;min-width:0}
.broker-panel-head strong{font-size:var(--fs-lg);font-weight:650}
.broker-panel-head small{font-size:var(--fs-sm);color:var(--muted)}
.broker-updated{display:flex;align-items:center;gap:4px;font-size:var(--fs-sm);color:var(--muted);white-space:nowrap}
.broker-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.broker-metric{display:flex;flex-direction:column;gap:3px;padding:10px 11px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg);min-width:0}
.broker-metric span{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.broker-metric strong{font-size:var(--fs-lg);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.broker-section{margin:6px 0 0;font-size:var(--fs-md);font-weight:650;color:var(--text)}
.broker-table{width:100%;border-collapse:collapse;font-size:var(--fs-md);font-variant-numeric:tabular-nums}
.broker-table th{font-size:var(--fs-xs);font-weight:650;color:var(--muted);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line-2);white-space:nowrap}
.broker-table td{padding:8px;border-bottom:1px solid var(--line);white-space:nowrap}
.broker-table .num{text-align:right}
.broker-table td.sym{font-weight:600}
.broker-panel-foot{display:flex;flex-direction:column;gap:6px;margin-top:4px;padding-top:10px;border-top:1px solid var(--line)}
.broker-trade{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;height:var(--ctl);padding:0 12px;border-radius:var(--r-sm);border:1px solid #4a3f2a;color:var(--gold-2);text-decoration:none;font-size:var(--fs-md)}
.broker-trade:hover{background:var(--gold-soft)}
.live-quote{font-size:var(--fs-sm);color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.live-quote.stale{color:var(--muted)}

/* --- Colour menu (TRA-1449) ---------------------------------------------------------- */
.popover-wide{width:380px;max-height:min(680px,calc(100dvh - 16px));display:flex;flex-direction:column;overflow:hidden}
.color-menu,.alerts-panel{display:flex;flex-direction:column;min-height:0;max-height:inherit}
.color-head,.alerts-head{display:flex;flex-direction:column;gap:2px;padding:12px 14px 10px;border-bottom:1px solid var(--line)}
.color-head strong,.alerts-title strong{font-size:var(--fs-lg);font-weight:650}
.color-sub{font-size:var(--fs-xs);color:var(--muted)}
.color-body,.alerts-panel{overflow:auto;scrollbar-width:thin;scrollbar-color:#3a424d transparent}
.color-body{flex:1;min-height:0;padding:4px 14px 10px}
.color-section{padding:10px 0;border-bottom:1px solid var(--line)}
.color-section:last-child{border-bottom:0}
.color-section-title,.alerts-section-title{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-xs);font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.color-presets{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.color-preset{display:flex;align-items:center;gap:8px;height:34px;padding:0 9px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--bg);font-size:var(--fs-sm);font-weight:550;color:var(--text-2);text-align:left;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.color-preset:hover{border-color:var(--line-3);color:var(--text)}
.color-preset[aria-pressed=true]{border-color:var(--gold-line);color:var(--gold-2);background:var(--gold-soft)}
.color-preset-swatch{width:18px;height:18px;border-radius:5px;box-shadow:inset 0 0 0 1px #ffffff26;flex-shrink:0}
.color-grid{display:flex;flex-direction:column;gap:2px}
.color-section.is-pairs .color-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px}
.color-section.is-pairs .color-row.is-toggle{grid-column:1/-1}
.color-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:32px;font-size:var(--fs-md);color:var(--text-2)}
.color-row.is-disabled{opacity:.45}
.color-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.color-field{display:flex;align-items:center;gap:4px;flex-shrink:0}
.color-swatch{width:24px;height:24px;padding:0;border:1px solid var(--line-3);border-radius:5px;background:none;cursor:pointer}
.color-swatch::-webkit-color-swatch-wrapper{padding:0}.color-swatch::-webkit-color-swatch{border:0;border-radius:4px}.color-swatch::-moz-color-swatch{border:0;border-radius:4px}
.color-hex{width:80px;height:26px;padding:0 6px;border:1px solid var(--line-2);background:var(--bg);font-size:var(--fs-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}
.color-section.is-pairs .color-hex{width:76px}
.color-section.is-pairs .color-row{gap:6px}
.color-hex[aria-invalid=true]{border-color:#ff4757aa}
.color-range{display:flex;align-items:center;gap:8px}
.color-range input{width:110px}
.color-range output{font-size:var(--fs-sm);color:var(--muted);min-width:34px;text-align:right;font-variant-numeric:tabular-nums}
.color-note{margin:6px 0 0;font-size:var(--fs-xs);color:var(--muted);line-height:1.5}
.color-foot{display:flex;align-items:center;gap:6px;padding:10px 12px;border-top:1px solid var(--line);background:var(--bg-bar)}
.color-foot-space{flex:1}

/* --- Alerts panel (TRA-1449) ----------------------------------------------------------- */
.popover-alerts{width:420px}
.popover-colors{width:488px}
.alerts-panel{padding-bottom:4px}
.alerts-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.alerts-count{font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}
.alerts-info{margin:4px 0 0;font-size:var(--fs-sm);color:var(--text-2);line-height:1.5}
.alerts-feed{margin-top:6px;font-size:var(--fs-xs);color:var(--muted)}
.alerts-feed.is-error{color:#ff9aa0}
.alerts-sound,.alerts-notify{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line)}
.alerts-volume{width:84px}
.alerts-audio-state,.alerts-small{font-size:var(--fs-xs);color:var(--muted)}
.alerts-rules,.alerts-events,.alerts-form{padding:10px 14px;border-bottom:1px solid var(--line)}
.alerts-empty{margin:0;font-size:var(--fs-sm);color:var(--muted)}
.alerts-rule{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #ffffff06}
.alerts-rule:last-child{border-bottom:0}
.alerts-rule.is-paused .alerts-rule-main{opacity:.55}
.alerts-rule-main,.alerts-event-main{display:flex;flex-direction:column;min-width:0;flex:1}
.alerts-rule-main strong,.alerts-event-main strong{font-size:var(--fs-md);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alerts-rule-meta{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alerts-chip{font-size:10.5px;font-weight:650;letter-spacing:.03em;padding:2px 7px;border-radius:var(--r-pill);white-space:nowrap;border:1px solid var(--line-2);color:var(--text-2)}
.alerts-chip.is-ok{color:#7fdcbf;border-color:#1fd1a14d}.alerts-chip.is-error{color:#ff9aa0;border-color:#ff47574d}.alerts-chip.is-stale,.alerts-chip.is-wait{color:var(--gold-2);border-color:var(--gold-line)}.alerts-chip.is-demo{color:#9ec3e6;border-color:#9ec3e655}
.ui-switch.is-bare{gap:0}
.alerts-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}
.alerts-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.alerts-field .ui-select{width:100%;justify-content:space-between;background:var(--bg)}
.alerts-field.is-wide{grid-column:1/-1}
.alerts-field-label{font-size:var(--fs-xs);color:var(--muted);font-weight:600}
.alerts-form .alerts-small{margin:8px 0 0}
.alerts-form-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:10px}
.alerts-event{display:flex;align-items:center;gap:10px;width:100%;padding:7px 6px;border-radius:var(--r-sm);text-align:left;transition:background var(--dur) var(--ease)}
.alerts-event:hover{background:var(--hover)}
.alerts-side{font-size:10.5px;font-weight:750;letter-spacing:.05em;padding:3px 7px;border-radius:4px;min-width:40px;text-align:center}
.alerts-side.is-buy{background:#1fd1a11f;color:#5fe3bd}.alerts-side.is-sell{background:#ff47571f;color:#ff8c96}
.alerts-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px}

/* --- Responsive ------------------------------------------------------------------------- */
@media(max-width:1180px){.ohlc{display:none}.toolbar{gap:4px}.timeframes button{padding:0 5px}.header-right{gap:8px}.product,.header-divider{display:none}.save-status span{display:none}.save-status{padding:0 6px}}
@media(max-width:980px){.indicator-button span{display:none}.indicator-button{width:30px;padding:0}.market-meta{display:none}.data-notice>span:last-child{display:none}.chart-pane{grid-template-rows:68px 34px minmax(0,1fr)}.toolbar{flex-wrap:wrap;gap:0 6px;padding:3px 8px}.market-picker{margin-right:auto;height:30px}.toolbar-divider{display:none}.timeframes{order:3;width:100%;justify-content:space-between;height:31px;border-top:1px solid var(--line);border-radius:0;padding:2px 0}.timeframes button{min-width:0;flex:1;height:26px;padding:0 2px}.engine-status,.preview-label{display:none}.account-button{max-width:150px}.feed-picker .ui-select{max-width:140px}}
@media(max-width:720px){.engine-status{max-width:240px}.toolbar-select .ui-select-text{max-width:74px}.market-picker{padding-right:5px;gap:5px;font-size:var(--fs-md)}.market-picker strong{max-width:96px}.indicator-button{display:none}.quote>span{display:none}.market-heading{padding-right:12px}.panel,.market-dialog{width:calc(100vw - 24px);height:calc(100dvh - 40px)}.settings-content{grid-template-columns:184px minmax(0,1fr)}.settings-fields{padding:14px}.settings-groups button{font-size:var(--fs-sm);padding:7px 8px}.input-row{gap:10px}.footer{gap:10px}.footer-brand{display:none}.account-name{display:none}.account-button{padding:0 3px;width:30px;justify-content:center}.account-icons{display:none}.account-badge-sum{display:block}.workspace-button{max-width:140px;padding:0 6px}.topbar{gap:8px;padding:0 8px}.brand-logo{height:16px}
 .broker-button{padding:0 9px 0 8px;gap:6px}#brokerBtnText{display:none}.broker-sep{display:none}.broker-brand{height:12px}.broker-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 40px)}.broker-options{grid-template-columns:1fr}.live-quote{display:none}.broker-brandcard{flex-direction:column;align-items:flex-start;gap:10px}.broker-picker{grid-template-columns:1fr}.broker-pick{flex-direction:row;align-items:center;justify-content:space-between;padding:10px 12px}.broker-account{flex-wrap:wrap;gap:8px 10px}.broker-account .broker-account-text{flex-basis:calc(100% - 80px)}.broker-account .broker-account-text+*{margin-left:62px}}
@media(max-width:640px){.chart-pane{grid-template-rows:68px 32px minmax(0,1fr)}.toolbar{gap:0 4px;padding:3px 6px}.chart-type .ui-select-icon{display:none}.toolbar-btn{padding:0 6px}.market-picker strong{max-width:80px}.feed-picker .ui-select-icon{display:none}.feed-picker .ui-select{max-width:100px}}
@media(max-width:400px){.toolbar{gap:0 2px;padding:3px 4px}.toolbar-select{padding:0 4px 0 5px}.toolbar-select .ui-select-text{max-width:54px;font-size:var(--fs-sm)}.toolbar-btn.icon-only,.replay-button,.live-button{width:28px}}
@media(max-width:580px){.terminal{grid-template-rows:42px minmax(0,1fr) 25px}.header-right{gap:5px}.preview-label{display:none}.icon-button{height:30px;width:30px}main{grid-template-columns:minmax(0,1fr) 36px}.command-rail{padding:5px 0;gap:3px}.rail-button{height:30px;width:30px}.rail-button svg{width:17px;height:17px}.market-heading{padding-left:46px;gap:8px}.market-heading h1,.market-heading h1 #marketTitle{font-size:var(--fs-sm)}.market-heading h1 span{font-size:var(--fs-sm);margin-left:3px}.quote strong{font-size:var(--fs-lg)}.footer{padding:0 8px}.data-notice{display:none}#candleStamp{margin-left:auto}.panel,.market-dialog{width:calc(100vw - 16px);height:calc(100dvh - 24px)}.panel{grid-template-rows:48px 40px minmax(0,1fr) 28px}.settings-content{grid-template-columns:minmax(0,1fr);grid-template-rows:52px minmax(0,1fr)}.settings-groups{display:none}.category-picker{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line);font-size:var(--fs-md);color:var(--muted)}.category-picker>span:last-child{flex:1;min-width:0}.category-picker .ui-select{width:100%;max-width:none}.settings-fields{padding:14px}.input-row{flex-wrap:wrap;padding:9px 0;gap:8px}.input-row>span:first-child{min-width:130px}.input-string input{max-width:100%}.input-group summary{margin-bottom:10px}.color-control input[type=range]{width:62px}.summary-view{grid-template-columns:1fr;padding:12px;gap:10px}.settings-bottom{padding:0 12px}.panel-heading{padding:0 10px 0 14px}.panel-tabs{padding:0 14px}.panel-section{padding:13px}.market-dialog{grid-template-rows:48px 50px auto minmax(30px,auto) minmax(0,1fr) 38px}.search-field{padding:0 14px}.search-field input{font-size:var(--fs-lg)}.market-filters{padding:8px 10px 6px;gap:3px}.market-filters button{font-size:var(--fs-sm);padding:0 9px;height:26px}.market-result{grid-template-columns:120px minmax(0,1fr);padding:10px;gap:8px}.market-result .market-result-kind{display:none}.market-status{padding:0 14px}.market-foot{padding:0 14px}
 .workspace-button>svg:first-child{display:none}.workspace-button{max-width:120px;font-size:var(--fs-sm)}.watch-open{grid-template-columns:90px minmax(0,1fr)}.watchlist-head{padding:10px 14px;flex-wrap:wrap}
 .broker-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 24px);grid-template-rows:48px minmax(0,1fr)}.broker-body{padding:12px}.broker-view{padding:12px 14px}.broker-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .broker-table thead{display:none}.broker-table,.broker-table tbody,.broker-table tr{display:block}.broker-table tr{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;padding:9px 2px;border-bottom:1px solid var(--line-2)}.broker-table td{border:0;padding:1px 0;display:flex;justify-content:space-between;gap:8px;white-space:normal}.broker-table td::before{content:attr(data-label);color:var(--muted);font-size:var(--fs-xs)}.broker-table .num{text-align:left}
 .popover-wide,.popover-colors,.popover-alerts{width:calc(100vw - 16px)}.color-section.is-pairs .color-grid{grid-template-columns:1fr}.toast-host{left:8px;right:8px;bottom:32px;align-items:stretch}.toast{width:auto}}
@media(max-height:560px) and (min-width:981px){.terminal{grid-template-rows:38px minmax(0,1fr) 25px}.chart-pane{grid-template-rows:38px 30px minmax(0,1fr)}.panel,.market-dialog{height:calc(100dvh - 20px)}.panel{grid-template-rows:42px 36px minmax(0,1fr) 26px}.settings-groups{padding-top:6px}.settings-groups button{padding:5px 9px}.settings-fields{padding:12px 18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.popover,.toast{transform:none!important}}
/* Vela attribution stays visible, top left under the legend (not on the calendar board). */
/* Vela attribution (licence: may be restyled/repositioned, never removed or obscured): a small
   mark at the top left under the legend; cards treat its rectangle as an obstacle (TRA-1455). */
#chart .vela-attribution{top:34px!important;bottom:auto!important;right:auto!important;opacity:.6;transform:scale(.6);transform-origin:left top}
#chart .vela-attribution:hover{opacity:.9}
/* Tooltips (TRA-1449) */
.ui-tooltip{position:fixed;z-index:99;pointer-events:none;max-width:280px;padding:6px 9px;border-radius:var(--r-sm);background:#1f252d;border:1px solid var(--line-3);color:var(--text);font-size:var(--fs-xs);line-height:1.45;box-shadow:var(--shadow-pop);opacity:0;transform:translateY(-2px);transition:opacity 110ms var(--ease),transform 110ms var(--ease)}
.ui-tooltip.is-open{opacity:1;transform:none}

/* --- V7 cards: signal dashboard + economic calendar as DOM cards (TRA-1454) -------------
   Same values as the original V7 boards (payload.cards). Dark rounded surfaces, fine
   translucent hairline, faint vertical gradient, soft raised shadow; gold only for the
   current timeframe and the brand dot. Pointer events only on buttons and event names, so
   pan, zoom and crosshair work through the cards. Positions come from dist/cards.js. */
.v7-cards{position:absolute;inset:0;z-index:3;pointer-events:none;contain:layout style}
.v7-card{--scale:1;--fs:calc(12px * var(--scale));position:absolute;left:0;top:0;width:max-content;max-width:min(380px,calc(100% - 16px));display:flex;flex-direction:column;
 font-size:max(11px,var(--fs));line-height:1.35;font-variant-numeric:tabular-nums;color:var(--text);letter-spacing:.005em;
 background:linear-gradient(180deg,#1a1f26eb 0%,#11151aeb 100%);border:1px solid #ffffff12;border-radius:10px;
 box-shadow:0 10px 28px -12px #000000d9,0 2px 6px #00000059,inset 0 1px 0 #ffffff0d;
 transition:opacity 180ms var(--ease);will-change:transform;overflow:hidden}
.v7-cards[data-effects=false] .v7-card{transition:none}
/* not yet placed by layout(): never visible at a provisional position (TRA-1455) */
.v7-card[data-unplaced]{visibility:hidden}
.v7-card-head{display:flex;align-items:center;gap:8px;padding:7px 8px 6px 10px;min-height:30px}
.v7-card-title{display:flex;align-items:center;gap:7px;font-weight:650;font-size:max(11px,calc(var(--fs) * .95));letter-spacing:.02em;color:#eef1f4;white-space:nowrap;margin-right:auto}
.v7-card-title .v7-ico{width:14px;height:14px;fill:none;stroke:var(--text-2);stroke-width:1.6;stroke-linecap:round}
.v7-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px #d4b16a1f}
.v7-chip{display:inline-flex;align-items:center;height:19px;padding:0 7px;border-radius:999px;font-size:max(11px,calc(var(--fs) * .85));font-weight:550;color:var(--text-2);background:#ffffff0a;border:1px solid #ffffff0f;white-space:nowrap}
.v7-src[data-state=ok]::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--green);margin-right:5px;box-shadow:0 0 0 2px #1fd1a124}
.v7-src[data-state=stale],.v7-src[data-state=error]{color:#ffb39a;border-color:#ff8f6b40;background:#ff8f6b12}
.v7-toggle{display:none;pointer-events:auto;width:28px;height:24px;margin:-2px -2px -2px 0;border-radius:6px;color:var(--text-2);align-items:center;justify-content:center}
.v7-toggle:hover{background:#ffffff0d;color:var(--text)}
.v7-chev{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform 180ms var(--ease)}
.v7-card.is-open .v7-chev{transform:rotate(180deg)}
.v7-card-body{display:flex;flex-direction:column;gap:6px;padding:0 10px 9px}
.v7-summary{display:none}
/* Dashboard */
.v7-dash-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.v7-sym{font-weight:650;font-size:max(11.5px,calc(var(--fs) * 1.02));color:#f3f5f7;letter-spacing:.01em}
.v7-dash-hint{font-size:max(11px,calc(var(--fs) * .82));color:var(--muted)}
.v7-tf-grid{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(64px,1fr));gap:4px}
.v7-tf{display:flex;flex-direction:column;align-items:center;gap:4px;padding:5px 4px 6px;border-radius:7px;background:#ffffff06;border:1px solid #ffffff0a;transition:background 160ms var(--ease),border-color 160ms var(--ease)}
.v7-tf-label{font-size:max(11px,calc(var(--fs) * .85));font-weight:600;color:var(--muted);letter-spacing:.04em}
.v7-tf.is-active{background:linear-gradient(180deg,#d4b16a1c,#d4b16a0a);border-color:#d4b16a4d}
.v7-tf.is-active .v7-tf-label{color:var(--gold-2)}
.v7-badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:52px;height:20px;padding:0 7px;border-radius:5px;font-size:max(11px,calc(var(--fs) * .86));font-weight:700;letter-spacing:.05em;transition:background 200ms var(--ease),color 200ms var(--ease)}
.v7-badge .v7-arrow{width:9px;height:9px;fill:currentColor}
.v7-badge.is-buy{color:#5ff0c3;background:#1fd1a11f;box-shadow:inset 0 0 0 1px #1fd1a133}
.v7-badge.is-sell{color:#ff8a94;background:#ff47571f;box-shadow:inset 0 0 0 1px #ff475733}
.v7-badge.is-none{color:var(--faint);background:#ffffff08}
/* Calendar */
.v7-events{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.v7-ev{display:grid;grid-template-columns:auto auto auto minmax(0,1fr);align-items:center;column-gap:8px;padding:4px 0;border-top:1px solid #ffffff09}
.v7-ev:first-child{border-top:0}
.v7-when{color:var(--text-2);white-space:nowrap}
.v7-ccy{font-weight:650;font-size:max(11px,calc(var(--fs) * .88));color:#e6e9ed;letter-spacing:.03em}
.v7-impact{display:inline-flex;align-items:flex-end;gap:1.5px;height:10px}
.v7-impact i{width:3px;border-radius:1px;background:#ffffff1f}
.v7-impact i:nth-child(1){height:4px}.v7-impact i:nth-child(2){height:7px}.v7-impact i:nth-child(3){height:10px}
.v7-impact[data-level=M] i:nth-child(-n+2),.v7-impact[data-level=H] i{background:var(--impact)}
.v7-ev-name{pointer-events:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e9edf2;cursor:default;border-radius:3px}
.v7-ev-name:focus-visible{box-shadow:var(--focus)}
.v7-empty{margin:0;color:var(--muted);font-size:max(11px,calc(var(--fs) * .92))}
.v7-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px -10px -9px;padding:6px 10px 7px;border-top:1px solid #ffffff0a;background:#0000001f;font-size:max(11px,calc(var(--fs) * .86));color:var(--muted)}
.v7-next{display:flex;align-items:center;gap:6px}
.v7-next .v7-ico{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.v7-card-foot .v7-cd{color:var(--gold-2);font-weight:650}
/* Dock (small plot / phone): summary rows, details by touch */
.v7-card.is-dock{max-width:none;border-radius:9px}
.v7-card.is-dock .v7-card-head{min-height:32px;padding:4px 4px 4px 9px;gap:7px}
.v7-card.is-dock:not(.is-open) .v7-card-title{margin-right:0}
.v7-card.is-dock:not(.is-open) .v7-card-title>span,.v7-card.is-dock:not(.is-open) .v7-chip{display:none}
.v7-card.is-dock .v7-toggle{display:inline-flex;margin-left:auto}
.v7-card.is-dock .v7-summary{display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:center;gap:3px 8px;min-width:0;white-space:nowrap}
.v7-card.is-dock .v7-card-body{display:none;overflow:auto;overscroll-behavior:contain;pointer-events:auto;padding-top:2px}
.v7-card.is-dock.is-open .v7-card-body{display:flex}
.v7-card.is-dock.is-open .v7-summary{display:none}
.v7-card.is-dock.is-open .v7-ev-name{white-space:normal;overflow:visible}
.v7-card.is-dock .v7-card-head .v7-chip{height:18px}
.v7-summary .v7-sym{margin-right:2px}
.v7-sum-tf{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--muted)}
.v7-sum-tf.is-active{color:var(--gold-2)}
.v7-summary .v7-badge{min-width:0;height:18px;padding:0 5px}
.v7-summary .v7-badge .v7-arrow{width:8px;height:8px}
.v7-summary .v7-ev-name{flex:1 1 56px;min-width:48px}
.v7-summary .v7-cd{color:var(--gold-2);font-weight:650;padding-left:4px}
.v7-cal .v7-summary .v7-cd:not([data-more="0"])::after{content:" +" attr(data-more);font-size:11px;font-weight:500;color:var(--muted)}
/* very narrow docks (small phones, ~200 px plot): symbol is in the header, event name on its own line */
.v7-card.is-dock{container-type:inline-size}
@container (max-width:260px){.v7-summary .v7-sym{display:none}.v7-card.is-dock .v7-summary{column-gap:6px}.v7-sum-tf{gap:3px}.v7-summary .v7-badge{padding:0 4px}.v7-cal .v7-summary .v7-ev-name{order:5;flex-basis:100%}.v7-cal .v7-summary .v7-cd{order:4;margin-left:auto}}
@media(pointer:coarse){.v7-toggle{width:36px;height:30px}.v7-ev{padding:6px 0}}

/* --- Signal glow + animated arrows (TRA-1454, TRA-1570 P61): every visible V7 signal, newest at full intensity ------ */
/* one keyframe on two groups (newest / others, dist/overlay.js) – two compositor layers, opacity only, no geometry change */
.bp-pulse{position:absolute;pointer-events:none;overflow:hidden;z-index:1;--pulse-buy:#1fd1a1;--pulse-sell:#ff4757}
.bp-pulse-g{position:absolute;inset:0;--pulse-max:.6;opacity:0;mix-blend-mode:screen;animation:bp-pulse 2.8s ease-in-out infinite}
.bp-pulse-g[data-g=last]{--pulse-max:1}
.bp-pulse i{--pulse:var(--pulse-buy);position:absolute;left:0;top:0}
.bp-pulse i[data-side=sell]{--pulse:var(--pulse-sell)}
.bp-pulse-ring{border-radius:6px;box-shadow:0 0 0 1px color-mix(in srgb,var(--pulse) 55%,transparent),0 0 10px 1px color-mix(in srgb,var(--pulse) 38%,transparent)}
.bp-pulse-halo{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--pulse) 42%,transparent) 0,color-mix(in srgb,var(--pulse) 14%,transparent) 45%,transparent 70%)}
@keyframes bp-pulse{0%,100%{opacity:calc(var(--pulse-max) * .18)}45%,55%{opacity:var(--pulse-max)}}
.bp-pulse[data-mode=static] .bp-pulse-g{animation:none;opacity:calc(var(--pulse-max) * .45)}
.tab-hidden .bp-pulse-g{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.bp-pulse-g{animation:none!important;opacity:calc(var(--pulse-max) * .45)}.v7-card{transition:none}}

/* --- TRA-1455: draggable cards, PRO card, view switch, indicator menu, upsell ----------- */
.v7-card-head{touch-action:none}
.v7-cards[data-mode=free] .v7-card-head{pointer-events:auto;cursor:grab;user-select:none;-webkit-user-select:none}
.v7-cards.is-dragging,.v7-cards.is-dragging *{cursor:grabbing!important}
.v7-card.is-dragging{box-shadow:0 24px 50px -12px #000e,0 0 0 1px #d4b16a73;z-index:2}
.v7-grip{display:none;pointer-events:auto;width:12px;height:18px;margin:0 -2px 0 -4px;padding:0;border-radius:4px;color:var(--faint);align-items:center;justify-content:center;flex:0 0 auto;cursor:grab}
.v7-grip svg{width:8px;height:12px;fill:currentColor}
.v7-grip:hover,.v7-grip:focus-visible{color:var(--gold-2);background:#ffffff0a}
.v7-cards[data-mode=free] .v7-grip{display:inline-flex}
.v7-card.is-dock .v7-card-head{touch-action:auto}
/* Dock: all timeframes with their signal in ONE row (equal grid columns, no wrap/scroll). */
.v7-card.is-dock .v7-tf-summary{display:grid;grid-template-columns:repeat(var(--n,4),auto);justify-content:space-between;gap:4px;flex-wrap:nowrap}
.v7-tf-summary .v7-sum-tf{justify-content:center;min-width:0;gap:3px;padding:2px 3px;border-radius:5px}
.v7-tf-summary .v7-sum-tf.is-active{background:#d4b16a14}
.v7-tf-summary .v7-sum-label{font-size:11px;white-space:nowrap}
.v7-tf-summary .v7-badge{min-width:0;width:16px;height:16px;padding:0;border-radius:4px;flex:0 0 auto}
.v7-card.is-dock.v7-dash:not(.is-open) .v7-dot{display:none}
@container (max-width:260px){.v7-tf-summary{gap:2px}.v7-tf-summary .v7-sum-tf{gap:2px}.v7-tf-summary .v7-badge{width:14px;height:15px}}
/* PRO card */
.v7-pro{width:300px;max-width:calc(100% - 16px)}
.v7-pro[data-keep] .pro-summary>*,.v7-pro[data-keep] .pro-body>*{visibility:hidden}
.v7-pro[data-keep] .pro-body{position:relative}
.v7-pro[data-keep] .pro-body::after{content:"TRADEN DE PRO wird berechnet …";position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:max(11px,var(--fs))}
.v7-crown{fill:none;stroke:var(--gold)!important;stroke-linejoin:round}
.v7-pro .v7-card-title{color:#f3dfae}
.pro-body{gap:7px;overflow:auto;overscroll-behavior:contain;pointer-events:auto}
.pro-meta{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:max(11px,calc(var(--fs) * .9));color:var(--text-2)}
.pro-market{font-weight:650;color:#f3f5f7}
.pro-dir{font-weight:700;letter-spacing:.06em}.pro-dir[data-dir=LONG]{color:#5ff0c3}.pro-dir[data-dir=SHORT]{color:#ff8a94}
.pro-score{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:7px 9px;border-radius:8px;background:linear-gradient(180deg,#d4b16a14,#d4b16a06);border:1px solid #d4b16a26}
.pro-num{display:flex;align-items:baseline;gap:4px;white-space:nowrap}.pro-num strong{font-size:26px;font-weight:750;color:#ffd98a;line-height:1}.pro-num span{font-size:11px;color:var(--muted)}
.pro-score[data-tone=bear] .pro-num strong{color:#ff8a94}
.pro-bar{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;height:8px}
.pro-bar i{border-radius:2px;background:#ffffff0f}
.pro-bar i.on{background:linear-gradient(90deg,#6b5324,var(--tone,#e8cb8e))}
.pro-score[data-tone=bull]{--tone:#3ddc97}.pro-score[data-tone=bear]{--tone:#ff5f6d}.pro-score[data-tone=warn]{--tone:#e8b44a}.pro-score[data-tone=muted]{--tone:#78828f}
.pro-score .pro-bar i.on{background:linear-gradient(90deg,#6b5324,var(--tone))}
.pro-verdict{font-weight:700;letter-spacing:.04em;font-size:max(11.5px,calc(var(--fs) * .98));text-align:center}
[data-tone=bull].pro-verdict{color:#5ff0c3}[data-tone=bear].pro-verdict{color:#ff8a94}[data-tone=warn].pro-verdict{color:#e8c879}[data-tone=muted].pro-verdict{color:var(--muted)}
.pro-hint{margin:0;color:var(--text-2);font-size:max(11px,calc(var(--fs) * .88));text-align:center}
.pro-factors{display:flex;flex-direction:column;border-top:1px solid #ffffff0a}
.pro-factor{display:grid;grid-template-columns:minmax(0,1fr) auto 52px;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid #ffffff08;font-size:max(11px,calc(var(--fs) * .88))}
.pro-label{color:#e6e9ed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pro-status{display:inline-flex;align-items:center;gap:4px;padding:1px 7px 1px 5px;border-radius:999px;font-weight:650;font-size:11px;letter-spacing:.03em;white-space:nowrap;background:color-mix(in srgb,var(--c) 13%,transparent);color:var(--c)}
.pro-mark{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pro-strength{text-align:right;color:var(--muted);font-size:11px;white-space:nowrap}
.pro-factor{--c:#78828f}.pro-factor[data-tone=bull]{--c:#3ddc97}.pro-factor[data-tone=bear]{--c:#ff5f6d}.pro-factor[data-tone=warn]{--c:#e8b44a}
.pro-foot{gap:8px}.pro-foot>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pro-data{flex:0 0 auto;font-weight:600}.pro-data[data-state=live]{color:var(--green)}.pro-data[data-state=replay]{color:#f0b429}.pro-data[data-state=stale]{color:var(--muted)}
.v7-pro.is-compact .pro-body{gap:6px}
.v7-pro[data-state=loading] .pro-msg,.v7-pro[data-state=error] .pro-msg{text-align:center;padding:8px 0}
.pro-retry{align-self:center}
.pro-summary{align-items:center;gap:7px!important;flex-wrap:nowrap!important}
.pro-sum-score{font-size:15px;font-weight:750;color:#ffd98a;min-width:22px}.pro-sum-score[data-tone=bear]{color:#ff8a94}
.pro-sum-verdict{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:650;letter-spacing:.03em;color:var(--text-2)}
/* View switch Chart | PRO (an area switch, not an indicator toggle) */
.view-switch{display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:9px;background:#ffffff08;border:1px solid var(--line-2);flex-shrink:0}
.view-switch button{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 12px;border-radius:7px;font-size:var(--fs-md);font-weight:600;color:var(--text-2);letter-spacing:.02em}
.view-switch button:hover{color:var(--text);background:#ffffff0a}
.view-switch button[aria-selected=true]{background:var(--surface-3);color:var(--text);box-shadow:inset 0 1px 0 #ffffff12,0 1px 2px #0006}
#viewPro svg{width:14px;height:14px;fill:none;stroke:var(--gold);stroke-width:1.7;stroke-linejoin:round}
#viewPro[aria-selected=true]{background:linear-gradient(180deg,#d4b16a2e,#d4b16a14);color:#f3dfae;box-shadow:inset 0 0 0 1px #d4b16a59}
.view-switch button:focus-visible{box-shadow:var(--focus)}
.chart-pane{position:relative}
.pro-view{position:absolute;inset:0;z-index:20;background:var(--bg);display:flex;flex-direction:column;outline:none}
.pro-view[hidden]{display:none}
.pro-view-body{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.pro-frame{flex:1 1 auto;width:100%;height:100%;border:0;display:block;background:var(--bg);opacity:0;transition:opacity 160ms var(--ease)}
.pro-frame.is-ready{opacity:1}
.pro-view-status{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-2);text-align:center;padding:24px}
.pro-view-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.pro-view-status.is-error strong{color:var(--text)}.pro-view-status p{margin:0;max-width:420px}
.pro-view .pro-upsell{margin:auto;max-width:440px}
/* Upsell (no prices, link to traden.de/pro) */
.pro-upsell{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:10px;background:linear-gradient(180deg,#1a1f26,#12161b);border:1px solid #d4b16a33}
.pro-upsell.is-compact{padding:10px 12px;gap:6px;margin:6px 0}
.pro-upsell-head{display:flex;align-items:center;gap:8px;color:#f3dfae}
.pro-lock{width:14px;height:14px;flex:0 0 auto;background:var(--gold);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1zm2 0h6V7a3 3 0 0 0-6 0z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1zm2 0h6V7a3 3 0 0 0-6 0z'/%3E%3C/svg%3E") center/contain no-repeat}
.pro-upsell p{margin:0;color:var(--text-2);font-size:var(--fs-sm);line-height:1.45}
.pro-unlock{align-self:flex-start;text-decoration:none}
/* Indicator menu */
.indicator-menu{min-width:260px;max-width:320px;gap:2px}
.indicator-row{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;padding:6px 6px 6px 8px;border-radius:7px}
.indicator-row+.indicator-row{border-top:1px solid var(--line-2);border-radius:0 0 7px 7px}
.indicator-name{display:inline-flex;align-items:center;gap:6px;font-weight:650;margin-right:auto;color:var(--text)}
.indicator-state{font-size:var(--fs-xs);color:var(--green);margin-right:4px}
.indicator-row .menu-item{min-height:28px;font-size:var(--fs-sm)}
.indicator-row .menu-item[aria-checked=true]{color:var(--gold-2)}
.indicator-row .pro-upsell{flex-basis:100%}
.pro-crown-ico{width:14px;height:14px;background:var(--gold);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 19h16v-2H4zm1-4h14l1.5-9-5 3.5L12 4 8.5 9.5l-5-3.5z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 19h16v-2H4zm1-4h14l1.5-9-5 3.5L12 4 8.5 9.5l-5-3.5z'/%3E%3C/svg%3E") center/contain no-repeat}
.indicator-pro{display:none;margin-left:6px;padding:1px 5px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.06em;color:#16130b;background:var(--gold)}
#indicatorBtn[data-pro=true] .indicator-pro{display:inline-block}
.pro-group .pro-upsell{margin:4px 0 8px}
@media(max-width:720px){.indicator-button{display:inline-flex;width:30px;padding:0}.indicator-button>span{display:none}}
@media(max-width:580px){.view-switch button{padding:0 8px;height:26px}.view-switch{margin-right:-4px}}
@media(max-width:400px){.view-switch button{padding:0 6px;font-size:var(--fs-sm)}#viewPro svg{display:none}}
/* Phones with the view switch (TRA-1455): header stays one line, nothing cut off. */
@media(max-width:580px){.topbar{gap:8px;padding:0 8px}.brand-logo{height:16px}.workspace-button{max-width:96px}.broker-button .broker-plug{display:none}.broker-button{padding:0 8px}.header-right{gap:6px}}
@media(max-width:420px){.workspace-button>span{max-width:46px;overflow:hidden;text-overflow:ellipsis}.save-status{display:none}}
@media(max-width:360px){.workspace-button>span{display:none}.workspace-button>svg:first-child{display:block}.topbar>.header-divider{display:none}}
@media(max-width:720px){.display-button{display:none}}
.v7-card.is-dock.v7-pro{width:auto;min-width:0;max-width:none}
@media(max-width:720px){#indicatorBtn[data-pro=true] .indicator-pro{display:none}#indicatorBtn[data-pro=true]{color:var(--gold-2)}}
/* Very narrow phones/iframes (≤360 px): the first toolbar row must fit, otherwise its last
   buttons wrap and push the timeframe row out of view (TRA-1455). Chart type icon-only. */
@media(max-width:360px){.chart-type .ui-select-text{display:none}.chart-type .ui-select-icon{display:inline-flex}.market-picker>svg{display:none}.market-picker strong{max-width:72px}.toolbar-btn.icon-only,.replay-button,.live-button,.indicator-button{width:26px}}
@media(max-width:360px){.watch-toggle{display:none!important}.chart-type .ui-select-chevron,.chart-type svg+svg{display:none}#fullscreen{display:none}.workspace-button>svg:last-child{display:none}.topbar{gap:6px}}
@container (max-width:230px){.v7-tf-summary{gap:1px}.v7-tf-summary .v7-sum-tf{gap:1px}.v7-tf-summary .v7-badge{width:13px;height:14px}.v7-tf-summary .v7-badge .v7-arrow{width:7px;height:7px}.v7-tf-summary .v7-sum-label{letter-spacing:-.01em}.v7-card.is-dock .v7-card-head{gap:5px;padding-left:7px}}
@container (max-width:230px){.v7-tf-summary .v7-sum-tf{padding:2px 1px}}
@container (max-width:230px){.v7-card.is-dock .v7-card-head{gap:4px;padding-left:6px;padding-right:2px}.v7-card.is-dock .v7-toggle{width:28px}.v7-card.is-dock .v7-tf-summary{gap:2px}}
/* Replay start picked directly in the chart (TRA-1455): line + date chip snapped to the candle,
   later candles covered; V7/PRO cards (live values) hidden until the replay runs. */
.replay-pick-layer{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.replay-pick-layer[hidden]{display:none}
.rp-mask{position:absolute;border-left:1px solid #d4b16a33}
.rp-line{position:absolute;width:0;border-left:1.5px dashed var(--gold);transform:translateX(-.75px)}
.replay-pick-layer[data-state=selected] .rp-line{border-left-style:solid;border-left-width:2px;transform:translateX(-1px)}
.rp-label{position:absolute;left:0;top:0;transform:translateX(-50%);padding:3px 8px;border-radius:5px;background:var(--gold);color:#14110a;font-size:var(--fs-sm);font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums;box-shadow:0 4px 14px -4px #000c}
.replay-pick-layer[data-early=true] .rp-line{border-left-color:#e8485c}
.replay-pick-layer[data-early=true] .rp-label{background:#e8485c;color:#fff}
body.replay-picking .v7-cards{visibility:hidden}
body.replay-picking .chart-stage{cursor:crosshair}
/* compact replay bar (phones): the date field gives way, „Ab hier starten“/„Abbrechen“ never overlap */
.replay-bar[data-compact=true] .replay-pick{flex:1 1 auto;min-width:0}
.replay-bar[data-compact=true] .replay-pick input{flex:1 1 auto;min-width:0;width:100%}
.replay-bar[data-compact=true] #replayStart,.replay-bar[data-compact=true] .replay-close,.replay-bar[data-compact=true] .replay-tag{flex:0 0 auto}

/* --- TRA-1455 follow-up 12:30 --------------------------------------------------------- */
/* Vela attribution in the always visible status bar (replaces the built-in mark, NOTICE) */
/* Status bar credit (TRA-1456b): „Mit ♥ von Traden.de · Charts by Vela“; Vela stays a clearly
   visible link to the project page (NOTICE of the installed Vela 0.8.1). Phone: „♥ Traden.de · Charts by Vela“. */
.foot-credit{flex:0 0 auto;margin-left:auto;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:11px;letter-spacing:.01em;color:var(--muted)}
.made-with{color:var(--muted)}
.mw-heart{color:#ef5a6f;font-size:10.5px;margin:0 1px}
.credit-sep{color:var(--faint)}
.vela-credit{flex:0 0 auto;color:var(--text-2);text-decoration:none;white-space:nowrap;font-size:11px;letter-spacing:.01em;padding:2px 0}
.vela-credit b{color:var(--text);font-weight:650}
.vela-credit:hover,.vela-credit:focus-visible{color:var(--text);text-decoration:underline;text-underline-offset:2px}
#candleStamp+.foot-credit{margin-left:12px}
@media(max-width:580px){#candleStamp+.foot-credit{margin-left:8px}.mw-long{display:none}.foot-credit{gap:4px}}
@media(max-width:400px){#candleStamp{display:none}#footStatus{flex:1 1 auto}.foot-credit{margin-left:8px!important}}
/* Cards: the expand/collapse arrow is always there (free and dock, every account) */
.v7-toggle{display:inline-flex;flex:0 0 auto}
.v7-cards[data-mode=free] .v7-card:not(.is-open) .v7-card-body{display:none}
.v7-cards[data-mode=free] .v7-card-head{flex-wrap:wrap;row-gap:5px}
.v7-cards[data-mode=free] .v7-card:not(.is-open) .v7-summary{display:flex;order:10;flex:1 0 100%;align-items:center;gap:4px 8px;min-width:0;white-space:nowrap;padding:0 0 1px}
/* collapsed card: the summary row lives in the header, but only the first header row (grip, title, chip, arrow) is a drag handle — a pan over the summary reaches the chart */
.v7-cards[data-mode=free] .v7-card:not(.is-open) .v7-card-head{pointer-events:none}
.v7-cards[data-mode=free] .v7-card:not(.is-open) .v7-card-head>:not(.v7-summary){pointer-events:auto}
.v7-cards[data-mode=free] .v7-card:not(.is-open) .v7-summary,.v7-cards[data-mode=free] .v7-card:not(.is-open) .v7-summary *{pointer-events:none}
.v7-cards[data-mode=free] .v7-card:not(.is-open) .v7-tf-summary{display:grid;grid-template-columns:repeat(var(--n,4),auto);justify-content:space-between;gap:6px}
.v7-cards[data-mode=free] .v7-card:not(.is-open) .v7-tf-summary .v7-badge{width:18px;height:17px}
.v7-cards[data-mode=free] .v7-card:not(.is-open) .v7-tf-summary .v7-sum-label{font-size:11.5px}
.v7-cards[data-mode=free] .pro-summary{overflow:hidden}
.v7-cards[data-mode=free] .v7-cal:not(.is-open) .v7-summary .v7-ev-name{max-width:170px}
.pro-summary{align-items:baseline}
.pro-sum-score{font-size:15px;font-weight:750;font-variant-numeric:tabular-nums;color:#f3f5f7}
.pro-sum-score[data-tone=bull]{color:#5ff0c3}.pro-sum-score[data-tone=bear]{color:#ff8a94}
.pro-sum-verdict{font-size:11px;font-weight:650;letter-spacing:.03em;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;min-width:0}
/* Mode badge = button with the shared mode menu */
button.v7-mode{pointer-events:auto;cursor:pointer;gap:3px;font:inherit;font-size:max(11px,calc(var(--fs) * .85));font-weight:550;color:var(--text-2)}
button.v7-mode:hover,button.v7-mode[aria-expanded=true]{color:var(--text);border-color:#d4b16a59;background:#d4b16a14}
button.v7-mode:focus-visible{box-shadow:var(--focus);outline:none}
/* TRA-1570 P61 (7): chosen mode shown at once, its calculation running; the previous result only dimmed */
button.v7-mode.is-pending{color:var(--text);border-color:#d4b16a8c}
button.v7-mode.is-pending::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:#d4b16a;animation:pro-mode-wait 1s ease-in-out infinite}
@keyframes pro-mode-wait{0%,100%{opacity:.25}50%{opacity:1}}
.v7-pro[data-pending] .pro-sum-num,.v7-pro[data-pending] .pro-sum-bar,.v7-pro[data-pending] .pro-score,.v7-pro[data-pending] .pro-verdict,.v7-pro[data-pending] .pro-hint,.v7-pro[data-pending] .pro-factors{opacity:.4;transition:opacity .15s}
.v7-pro[data-pending] .pro-sum-verdict{color:#d4b16a}
.pro-sum-retry{pointer-events:auto;flex:none;margin-left:auto;padding:2px 8px;border:1px solid #d4b16a66;border-radius:999px;background:#d4b16a14;color:var(--text);font:inherit;font-size:11px;font-weight:600;cursor:pointer}.pro-sum-retry:hover{background:#d4b16a29}.pro-sum-retry:focus-visible{box-shadow:var(--focus);outline:none}
@media(pointer:coarse){.pro-sum-retry{min-height:28px}}
.v7-cards .v7-card.v7-pro[data-state=error] .v7-summary,.v7-cards .v7-card.v7-pro[data-state=error]:not(.is-open) .v7-summary.pro-summary{display:flex;align-items:center;gap:6px;min-width:0;flex:1 1 auto;overflow:hidden}.v7-pro[data-state=error] .v7-summary>.v7-empty{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(prefers-reduced-motion:reduce){button.v7-mode.is-pending::before{animation:none}}
.v7-caret{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-right:-2px;opacity:.8}
.chip-short{display:none}
.v7-card.is-dock:not(.is-open) .chip-long{display:none}
.v7-card.is-dock:not(.is-open) .chip-short{display:inline}
.v7-pro.is-dock:not(.is-open) .v7-mode{display:inline-flex;height:18px;padding:0 5px}
.mode-menu{min-width:230px}
.mode-item{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:40px;padding:5px 10px}
.mode-item small{font-size:var(--fs-xs);color:var(--muted);font-weight:450}
.mode-item[aria-checked=true]{color:var(--gold-2)}
.mode-item[aria-checked=true]::after{content:"";position:absolute;right:10px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--gold)}
.mode-item{position:relative}
@media(pointer:coarse){.mode-item{min-height:46px}button.v7-mode{min-height:28px}}
/* Indicator menu: one clear switch per indicator */
.indicator-row .indicator-toggle{flex:1 1 100%;display:flex;align-items:center;gap:8px;justify-content:space-between;min-height:34px;padding:4px 6px;font-weight:600}
.indicator-row .indicator-toggle .indicator-name{margin-right:0}
.indicator-switch{position:relative;flex:0 0 auto;width:30px;height:17px;border-radius:999px;background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff1a;transition:background 160ms var(--ease)}
.indicator-switch::after{content:"";position:absolute;left:2px;top:2px;width:13px;height:13px;border-radius:50%;background:#c5ccd6;transition:transform 160ms var(--ease),background 160ms var(--ease)}
.indicator-switch[data-on=true]{background:#1fd1a1a6}
.indicator-switch[data-on=true]::after{transform:translateX(13px);background:#fff}
.indicator-toggle::before{content:attr(data-state);order:2;margin-left:auto;font-size:var(--fs-xs);font-weight:600;color:var(--muted)}
.indicator-toggle[aria-checked=true]::before{color:var(--green)}
.indicator-toggle .indicator-switch{order:3}
.indicator-sub{font-size:var(--fs-sm);color:var(--text-2)}
.indicator-lock{font-size:10px;font-weight:700;letter-spacing:.06em;color:#16130b;background:var(--gold);border-radius:4px;padding:1px 5px}
@media(prefers-reduced-motion:reduce){.indicator-switch,.indicator-switch::after{transition:none}}
.indicator-toggle[aria-checked=true]::after{display:none}
.indicator-row .indicator-toggle[aria-checked=true]{color:var(--text)}
.indicator-row.is-locked>.indicator-name{font-size:var(--fs-sm);font-weight:600}
.mode-item{padding-right:26px}
.mode-item[aria-checked=true]::after{margin-left:0}
@container (max-width:260px){.v7-pro.is-dock:not(.is-open) .v7-card-title,.v7-card.is-dock:not(.is-open) .v7-caret{display:none}.v7-pro.is-dock:not(.is-open) .pro-sum-verdict{font-size:10.5px;letter-spacing:.01em}}

/* Traden AI (TRA-1456, chat TRA-1469): calm chat column next to the chart, full-screen sheet on phones. */
main.ai-open{grid-template-columns:minmax(0,1fr) var(--ai-w,360px) 44px}
.ai-side{display:grid;grid-template-rows:48px minmax(0,1fr) auto auto;grid-template-columns:minmax(0,1fr);min-height:0;min-width:0;border-left:1px solid var(--line);background:var(--bg-bar);color:var(--text);font-size:var(--fs-md)}
.ai-side[hidden]{display:none}
.ai-head{display:flex;align-items:center;gap:4px;padding:0 8px 0 14px;border-bottom:1px solid var(--line)}
.ai-back{margin-left:-6px}
.ai-title{display:flex;align-items:center;gap:8px;flex:1;min-width:0;overflow:hidden}.ai-title svg{width:18px;height:18px;color:var(--gold)}.ai-title strong{font-size:var(--fs-lg);font-weight:650;letter-spacing:.01em;white-space:nowrap}
.ai-badge{flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 7px;border-radius:var(--r-pill);background:#e8b44a22;color:#e8b44a;font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em}
.ai-head-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 9px;border-radius:var(--r-sm);color:var(--text-2);font-size:var(--fs-sm);font-weight:550;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.ai-head-btn svg{width:15px;height:15px}.ai-head-btn:hover:not(:disabled){background:var(--hover);color:var(--text)}
.ai-head .icon-btn:hover{background:var(--hover);color:var(--text)}.ai-lib-btn[aria-pressed=true]{background:var(--gold-soft);color:var(--gold-2)}
.ai-body{overflow:auto;min-height:0;padding:18px 16px 12px;overscroll-behavior:contain;scrollbar-width:thin}
.ai-muted{color:var(--muted);margin:6px 0}.ai-meta{color:var(--faint);font-size:var(--fs-xs);margin:4px 0}.ai-error{color:var(--red);margin:6px 0;font-size:var(--fs-sm)}
.ai-center{text-align:center;margin-top:30%}
/* thread */
.ai-thread{display:flex;flex-direction:column;gap:18px;min-height:100%}
.ai-msg{line-height:1.55;font-size:var(--fs-md)}.ai-msg p{margin:0}.ai-msg p+p{margin-top:8px}
.ai-msg-user{align-self:flex-end;max-width:86%;padding:9px 13px;border-radius:16px 16px 4px 16px;background:var(--surface-3);border:1px solid var(--line-2);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}
.ai-msg-ai{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;color:var(--text-2)}
.ai-msg-ai .ai-msg-body>p{color:#cfd5dc;overflow-wrap:anywhere}
.ai-avatar{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--gold-soft);border:1px solid var(--gold-line);color:var(--gold)}.ai-avatar svg{width:13px;height:13px}
.ai-usage{margin-top:8px}
.ai-thinking .ai-msg-body{display:flex;align-items:center;gap:10px;min-height:22px}
.ai-typing{display:inline-flex;gap:4px}.ai-typing i{width:6px;height:6px;border-radius:50%;background:var(--gold);opacity:.35;animation:ai-dot 1.2s infinite ease-in-out}
.ai-typing i:nth-child(2){animation-delay:.15s}.ai-typing i:nth-child(3){animation-delay:.3s}
@keyframes ai-dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}
/* empty state */
.ai-empty{margin:auto 0;padding:8px 2px 4px;display:flex;flex-direction:column;align-items:flex-start}
.ai-empty-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--gold-soft);border:1px solid var(--gold-line);color:var(--gold);margin-bottom:12px}.ai-empty-mark svg{width:20px;height:20px}
.ai-empty h3{margin:0 0 6px;font-size:var(--fs-xl);font-weight:650;color:var(--text)}.ai-empty>p{margin:0 0 14px;color:var(--text-2);line-height:1.5}
.ai-examples{display:flex;flex-direction:column;gap:6px;width:100%}
.ai-example{text-align:left;padding:9px 12px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:transparent;color:var(--text-2);font-size:var(--fs-sm);line-height:1.4;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease)}.ai-example:hover{border-color:var(--gold-line);color:var(--text);background:var(--surface)}
/* result card */
.ai-card{margin-top:10px;padding:12px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface);box-shadow:inset 0 1px 0 #ffffff08}
.ai-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.ai-card-head strong{font-size:var(--fs-lg);color:var(--text);margin-right:auto}
.ai-card-desc{margin:6px 0 0;color:var(--text-2);font-size:var(--fs-sm);line-height:1.5}
.ai-chip{padding:1px 7px;border-radius:var(--r-pill);border:1px solid var(--line-3);color:var(--text-2);font-size:var(--fs-xs);white-space:nowrap}.ai-chip.is-live{border-color:#1fd1a155;color:var(--green);background:#1fd1a112}
.ai-card-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ai-card-actions .is-done{color:var(--green)}
.ai-card-old{margin-top:8px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;color:var(--faint);font-size:var(--fs-xs)}
.ai-more{margin-top:10px;border-top:1px solid var(--line);padding-top:8px;font-size:var(--fs-sm)}.ai-more>summary,.ai-json-box>summary{cursor:pointer;color:var(--muted);list-style-position:inside}.ai-more>summary:hover,.ai-json-box>summary:hover{color:var(--text)}
.ai-json-box{margin-top:8px}
.ai-inputs{display:grid;grid-template-columns:1fr;gap:6px;margin:8px 0}
.ai-input{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-2);font-size:var(--fs-sm)}
.ai-input-field{width:96px;height:28px;padding:0 8px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg);color:var(--text);font:inherit}
.ai-input-field[type=checkbox]{width:18px;height:18px;accent-color:var(--gold)}.ai-input-field[type=color]{padding:2px;width:44px}
.ai-summary{display:flex;flex-direction:column;gap:2px;margin:6px 0 0;color:var(--text-2);font-size:var(--fs-xs)}
.ai-json{width:100%;min-height:180px;margin:6px 0;padding:8px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg);color:var(--text);font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}
/* inline error */
.ai-err{margin-top:2px;padding:10px 12px;border:1px solid #ff475740;border-radius:var(--r-lg);background:#ff47570d}
.ai-err-line{display:flex;gap:8px;align-items:flex-start}.ai-err-line p{margin:0;color:#f3b7bc;line-height:1.5}.ai-err-icon{color:var(--red);padding-top:1px}.ai-err-icon svg{width:16px;height:16px}
.ai-err-meta{margin:6px 0 0 24px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;user-select:all;overflow-wrap:anywhere}
.ai-news-impact{color:#cfd5dc}
.ai-retry{margin:8px 0 0 24px}.ai-retry svg{width:14px;height:14px}
/* composer */
.ai-composer{padding:8px 12px 10px;background:linear-gradient(180deg,transparent,var(--bg-bar) 30%)}
.ai-composer-box{display:flex;flex-direction:column;gap:4px;padding:10px 10px 8px 14px;border:1px solid var(--line-2);border-radius:18px;background:var(--surface);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.ai-composer-box:focus-within{border-color:var(--gold-line);box-shadow:0 0 0 3px #d4b16a14}
.ai-prompt{width:100%;min-height:24px;max-height:180px;padding:2px 0;border:0;background:transparent;color:var(--text);font:inherit;font-size:var(--fs-lg);line-height:1.5;resize:none;outline:none}
.ai-prompt:focus-visible{box-shadow:none}.ai-prompt::placeholder{color:var(--faint)}.ai-prompt:disabled{cursor:not-allowed}
.ai-composer-row{display:flex;align-items:center;gap:8px;min-height:32px}
.ai-model-slot{min-width:0;flex:0 1 auto}
.ai-model-select.ui-select{height:26px;padding:0 6px 0 8px;border-color:transparent;background:transparent;color:var(--muted);font-size:var(--fs-sm);max-width:190px}.ai-model-select.ui-select:hover:not(:disabled){background:var(--hover);color:var(--text)}
.ai-composer-hint{flex:1;min-width:0;text-align:right;color:var(--faint);font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-send{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--gold);color:#16130b;flex-shrink:0;box-shadow:inset 0 1px 0 #ffffff40,0 1px 2px #0005;transition:background var(--dur) var(--ease),opacity var(--dur) var(--ease)}
.ai-send svg{width:17px;height:17px}.ai-send:hover:not(:disabled){background:var(--gold-2)}.ai-send:disabled{background:var(--surface-3);color:var(--faint);box-shadow:none;opacity:1}
.ai-send.is-stop{background:var(--text);color:var(--bg)}
.ai-legal{margin:6px 4px 0;color:var(--faint);font-size:10.5px;text-align:center}
/* library */
.ai-library{display:flex;flex-direction:column}
.ai-sec{margin:4px 0 2px;color:var(--muted);font-size:var(--fs-xs);font-weight:650;letter-spacing:.06em;text-transform:uppercase}.ai-sec~.ai-sec{margin-top:18px}
.ai-notice{padding:14px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface)}.ai-notice p{margin:6px 0 0;color:var(--text-2)}.ai-notice .btn{margin-top:10px}
.ai-libbar{display:flex;gap:6px;margin-top:14px}
.ai-limits{margin-top:14px}
.ai-scope{margin-top:10px;color:var(--text-2);font-size:var(--fs-sm)}.ai-scope summary{cursor:pointer;color:var(--muted)}.ai-scope p{line-height:1.5}
.ai-item{padding:10px 0;border-bottom:1px solid var(--line)}.ai-item-meta{display:flex;flex-direction:column;gap:2px}
.ai-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}.ai-actions .danger{color:var(--red)}
.ai-versions{margin:8px 0 0;padding-left:18px;color:var(--text-2);font-size:var(--fs-sm)}.ai-versions li{display:flex;justify-content:space-between;gap:8px;padding:3px 0}
.ai-switch{display:inline-flex;align-items:center;gap:5px;color:var(--text-2);font-size:var(--fs-sm)}.ai-switch input{accent-color:var(--gold)}
.ai-rail{color:var(--gold)}.ai-rail[aria-expanded=true]{background:var(--gold-soft);color:var(--gold-2)}
/* credit (TRA-1479 point 8): balance, packs, opt-in auto top-up, bookings */
.ai-credit-btn[aria-pressed=true]{background:var(--gold-soft);color:var(--gold-2)}
.ai-credit{position:relative}
.ai-credit-balance{display:flex;flex-direction:column;gap:2px;margin-top:6px;padding:12px 14px;border:1px solid var(--gold-line);border-radius:var(--r-lg);background:linear-gradient(180deg,#d4b16a10,transparent)}
.ai-credit-balance strong{font-size:22px;font-weight:650;color:var(--text);letter-spacing:.01em;font-variant-numeric:tabular-nums}.ai-credit-balance .ai-meta{margin:0}
.ai-credit-test{margin:6px 0 2px;padding:5px 9px;border-radius:var(--r-sm);background:#e8b44a1a;color:#e8b44a;font-size:var(--fs-xs);font-weight:600}
.ai-credit-note{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin:0 0 10px;padding:9px 12px;border:1px solid #1fd1a155;border-radius:var(--r-lg);background:#1fd1a10f}.ai-credit-note p{margin:0;color:var(--text-2);font-size:var(--fs-sm);line-height:1.45}
.ai-credit-note.is-error{border-color:#ff475755;background:#ff47570d}.ai-credit-note.is-error p{color:#f3b7bc}
.ai-packs{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px;margin-top:6px}
.ai-pack{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:10px 11px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface);color:var(--text-2);text-align:left;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
.ai-pack:hover:not(:disabled){border-color:var(--gold-line);background:var(--surface-3)}.ai-pack.is-highlight{border-color:var(--gold-line);box-shadow:inset 0 0 0 1px #d4b16a33}
.ai-pack strong{font-size:var(--fs-lg);color:var(--text);font-variant-numeric:tabular-nums}.ai-pack .ai-meta{margin:0}
.ai-pack-name{font-size:var(--fs-xs);font-weight:650;letter-spacing:.06em;color:var(--gold)}.ai-pack-price{margin-top:4px;font-weight:650;color:var(--text)}
/* TRA-1479 (40fd2ddf/f3022046): EUR top-up – Premium budget first, gold CTA in the registration-button design, compact cards */
.ai-incl.is-low{border-color:#e8b44a66}.ai-incl.is-out{border-color:#ff475766;background:linear-gradient(180deg,#ff47570d,transparent)}
.ai-topup-lead{margin:10px 0 0;color:var(--text);font-size:var(--fs-md);font-weight:600}
.ai-topup-cta{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:100%;min-height:46px;margin-top:10px;padding:7px 14px;border-radius:10px;cursor:pointer;text-align:center}
.ai-topup-cta-main{font-size:var(--fs-lg);font-weight:650}.ai-topup-cta-sub{font-size:var(--fs-xs);font-weight:500;color:#cdb98f;letter-spacing:.01em}
.ai-err .ai-topup-cta{width:auto;min-height:40px;margin-top:8px;align-items:flex-start;text-align:left}
.ai-topup-more{margin-top:8px}
.ai-pack-eur{position:relative;padding-top:12px}.ai-pack-eur strong{font-size:var(--fs-xl)}
.ai-pack-chip{position:absolute;top:-8px;right:8px;padding:1px 7px;border-radius:var(--r-pill);background:#1c2026;border:1px solid var(--gold-line);color:var(--gold-2);font-size:10px;font-weight:650;letter-spacing:.04em}
.ai-pack-get{font-size:var(--fs-sm);color:var(--text)}.ai-pack-bonus{margin-top:3px;font-size:var(--fs-xs);font-weight:600;color:var(--green)}
.ai-packs:has(.ai-pack-eur){grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}
.ai-premium-cmp{margin-top:10px;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface)}.ai-premium-cmp strong{color:var(--gold-2);font-size:var(--fs-md)}.ai-premium-cmp p{margin:3px 0 8px;color:var(--text-2);font-size:var(--fs-sm)}
@media (max-width:420px){.ai-pack-eur{padding:12px 8px 9px}.ai-pack-eur strong{font-size:var(--fs-lg)}.ai-pack-get{font-size:var(--fs-xs)}}
.ai-auto-toggle{margin-top:6px}.ai-auto-state{margin-top:6px;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface)}.ai-auto-state p{margin:0;color:var(--text-2);font-size:var(--fs-sm);line-height:1.45}.ai-auto-state.is-on{border-color:#1fd1a155}
.ai-auto-form{margin-top:8px;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface);display:flex;flex-direction:column;gap:6px}
.ai-auto-form .ai-select{width:auto;max-width:62%;min-width:0}
.ai-ledger{list-style:none;margin:4px 0 0;padding:0}
.ai-ledger-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm)}.ai-ledger-row strong{color:var(--text);font-weight:600}
.ai-ledger-row.is-pending strong{color:var(--text-2)}
.ai-ledger-amt{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--green);font-weight:600}.ai-ledger-amt.is-neg{color:var(--red)}.ai-ledger-row.is-pending .ai-ledger-amt{color:var(--muted)}
.ai-confirm{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:16px;background:#05080ccc}
.ai-confirm-card{max-width:420px;padding:16px;border:1px solid var(--gold-line);border-radius:var(--r-lg);background:var(--bg-bar);box-shadow:0 12px 40px #000a}
.ai-confirm-card h4{margin:0 0 8px;font-size:var(--fs-lg);color:var(--text)}.ai-confirm-text{margin:0;color:var(--text-2);line-height:1.55;font-size:var(--fs-sm)}
@media(prefers-reduced-motion:reduce){.ai-typing i{animation:none;opacity:.7}.ai-composer-box,.ai-send,.ai-example{transition:none}}
/* phones / narrow iframes: full-screen sheet, composer pinned above the keyboard / safe area */
@media(max-width:720px){
 main.ai-open{grid-template-columns:minmax(0,1fr) 36px}
 .ai-side{position:fixed;inset:0;height:100vh;height:100dvh;z-index:60;border-left:0;grid-template-rows:52px minmax(0,1fr) auto auto}
 .ai-head{padding:0 6px 0 14px}
 .ai-head-btn span{display:none}.ai-head-btn{width:36px;height:36px;padding:0;justify-content:center}.ai-head-btn svg{width:18px;height:18px}
 .ai-body{padding:16px 14px 10px}
 .ai-composer{padding:8px 10px calc(10px + env(safe-area-inset-bottom))}
 .ai-prompt{font-size:16px}
 .ai-composer-hint{display:none}.ai-model-slot{flex:1}
 .ai-send{width:36px;height:36px}
 .ai-input-field{width:110px;height:34px}
 .ai-card-actions .btn{height:34px;padding:0 12px}
}
/* --- Indikator-Marktplatz (TRA-1456) ------------------------------------------------------ */
.mk-root[hidden]{display:none}
.mk-backdrop{position:fixed;inset:0;z-index:80;background:#030507b3}
.mk-dialog{position:fixed;z-index:81;top:50%;left:50%;transform:translate(-50%,-50%);width:min(940px,calc(100vw - 48px));height:min(720px,calc(100dvh - 48px));display:grid;grid-template-rows:auto auto minmax(0,1fr);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:var(--shadow-dialog);overflow:hidden;color:var(--text)}
.mk-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 10px 18px;border-bottom:1px solid var(--line)}
.mk-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.mk-title h2{margin:0;font-size:15px;font-weight:650}
.mk-badges{display:flex;gap:6px;flex-wrap:wrap}
.mk-tabs{display:flex;gap:2px;padding:0 12px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.mk-tab{height:38px;padding:0 12px;background:transparent;color:var(--text-2);font-size:var(--fs-md);font-weight:550;border-bottom:2px solid transparent;white-space:nowrap}
.mk-tab:hover{color:var(--text)}
.mk-tab[aria-selected=true]{color:var(--gold-2);border-bottom-color:var(--gold)}
.mk-body{overflow:auto;padding:16px 18px 20px;scrollbar-width:thin;scrollbar-color:#3a424d transparent}
.mk-view{display:flex;flex-direction:column;gap:14px}
.mk-section{display:flex;flex-direction:column;gap:8px}
.mk-h{margin:0;font-size:var(--fs-sm);font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.mk-chip{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--r-pill);background:var(--surface-3);border:1px solid var(--line-2);color:var(--text-2);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}
.mk-chip.is-ok{background:#1fd1a114;border-color:#1fd1a155;color:var(--green)}
.mk-chip.is-warn{background:#ff475712;border-color:#ff47574d;color:#f2878d;white-space:normal;height:auto;min-height:20px}
.mk-chip.is-test{background:var(--gold-soft);border-color:var(--gold-line);color:var(--gold-2)}
.mk-filter{display:flex;gap:8px;flex-wrap:wrap}
.mk-input{width:100%;min-height:var(--ctl);padding:6px 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg);color:var(--text);font:inherit;font-size:var(--fs-md)}
.mk-input:focus{outline:none;box-shadow:var(--focus)}
.mk-filter .mk-input{flex:1;min-width:180px}
textarea.mk-input{resize:vertical;line-height:1.5}
.mk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.mk-card{display:flex;flex-direction:column;justify-content:space-between;gap:10px;padding:12px 14px;border:1px solid var(--line-2);border-radius:var(--r-md);background:linear-gradient(135deg,#151a20,#0e1216);box-shadow:inset 0 1px 0 #ffffff08}
.mk-card-main{display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:transparent;text-align:left;padding:0;color:inherit}
.mk-card-main:hover .mk-card-title{color:var(--gold-2)}
.mk-card-title{font-size:var(--fs-lg);font-weight:650}
.mk-card-creator{color:var(--muted);font-size:var(--fs-sm)}
.mk-cats{display:flex;gap:5px;flex-wrap:wrap;margin-top:2px}
.mk-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mk-price{font-weight:650;color:var(--text);font-variant-numeric:tabular-nums}
.mk-note{margin:0;font-size:var(--fs-sm);line-height:1.5;color:var(--text-2)}
.mk-note.is-muted{color:var(--muted)}
.mk-note.is-warn{color:#f2878d}
.mk-empty{margin:0;padding:14px 0;color:var(--muted);font-size:var(--fs-md)}
.mk-empty.is-error{color:#f2878d}
.mk-text{margin:0;color:var(--text-2);font-size:var(--fs-md);line-height:1.55;white-space:pre-wrap}
.mk-list{margin:0;padding-left:18px;color:var(--text-2);font-size:var(--fs-md);line-height:1.6}
.mk-back{display:inline-flex;align-items:center;gap:2px;align-self:flex-start}
.mk-back svg{width:16px;height:16px}
.mk-detail-head{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.mk-detail-title{margin:0 0 2px;font-size:18px;font-weight:650}
.mk-detail-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mk-preview{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px dashed var(--line-3);border-radius:var(--r-md);font-size:var(--fs-md);color:var(--text-2)}
.mk-preview p{margin:0}
.mk-license,.mk-report,.mk-spec{border:1px solid var(--line-2);border-radius:var(--r-md);padding:8px 12px;background:var(--surface-2)}
.mk-license summary,.mk-report summary,.mk-spec summary{cursor:pointer;display:flex;align-items:center;gap:8px;font-size:var(--fs-md);font-weight:600}
.mk-license[open],.mk-report[open]{display:flex;flex-direction:column;gap:8px}
.mk-report[open]>*{margin-top:4px}
.mk-spec pre{max-height:260px;overflow:auto;font-size:11px;color:var(--text-2);margin:8px 0 0}
.mk-pending{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:12px;border:1px solid var(--gold-line);border-radius:var(--r-md);background:var(--gold-soft);color:var(--gold-2);font-size:var(--fs-md)}
.mk-spinner{width:14px;height:14px;border-radius:50%;border:2px solid var(--gold-line);border-top-color:var(--gold);animation:mk-spin .9s linear infinite;flex-shrink:0}
@keyframes mk-spin{to{transform:rotate(360deg)}}
.mk-rows{display:flex;flex-direction:column;gap:8px}
.mk-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface-2)}
.mk-row-main{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.mk-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.mk-mod .mk-row-actions{flex-direction:column;align-items:stretch;min-width:200px}
.mk-onboarding{gap:6px}
.mk-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.mk-stat{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface-2)}
.mk-stat span{color:var(--muted);font-size:var(--fs-xs)}
.mk-stat strong{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}
.mk-form{display:flex;flex-direction:column;gap:12px;max-width:640px}
.mk-field{display:flex;flex-direction:column;gap:5px}
.mk-field-label{font-size:var(--fs-sm);color:var(--text-2);font-weight:550}
.mk-checks{display:flex;gap:6px 14px;flex-wrap:wrap}
.mk-check{display:inline-flex;align-items:flex-start;gap:7px;font-size:var(--fs-md);color:var(--text-2);cursor:pointer;line-height:1.45}
.mk-check input{accent-color:var(--gold);margin-top:3px}
.mk-accept{padding:10px 12px;border:1px solid var(--gold-line);border-radius:var(--r-md);background:var(--gold-soft)}
.mk-price-input{max-width:160px}
.mk-breakdown{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:var(--r-md);overflow:hidden}
.mk-break-row{display:flex;justify-content:space-between;gap:12px;padding:7px 12px;font-size:var(--fs-md);color:var(--text-2)}
.mk-break-row+.mk-break-row{border-top:1px solid var(--line)}
.mk-break-row strong{color:var(--text);font-weight:600;text-align:right}
.mk-checklist li::marker{color:var(--gold)}
@media(max-width:720px){
 .mk-dialog{inset:auto 0 0 0;top:auto;left:0;transform:none;width:100vw;height:calc(100dvh - 12px);border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0}
 .mk-body{padding:12px 12px 18px}
 .mk-grid{grid-template-columns:1fr}
 .mk-row{flex-direction:column}
 .mk-row-actions{justify-content:flex-start;width:100%}
 .mk-mod .mk-row-actions{min-width:0}
 .mk-detail-actions{width:100%}
}

/* --- Chart legend: Traden.de PRO row below BullPower V7 (TRA-1456b) ------------------------
   Same metrics as Vela's legend rows (12px, 600, 2px/6px padding, 22px min height); Vela's own
   eye of the V7 row is kept permanently visible. */
.bp-legend-ctl{display:inline-flex!important}
.bp-legend-v7:not(:hover):not(:focus-within) .bp-legend-ctl>:not(.bp-v7-own-eye):not(.bp-v7-menu):not(.bp-ind-x),.bp-legend-ind:not(:hover):not(:focus-within) .bp-legend-ctl>:not(.bp-v7-eye):not(.bp-v7-own-eye):not(.bp-v7-menu):not(.bp-ind-x){display:none!important}
.bp-legend-row{pointer-events:auto;display:flex;align-items:center;gap:6px;border-radius:4px;padding:2px 6px;margin-left:-6px;min-height:22px;box-sizing:border-box;background:color-mix(in srgb,var(--chart-bg,#0b0e12) 60%,transparent);color:var(--text-2);user-select:none;-webkit-user-select:none;font:inherit;line-height:normal}
.bp-legend-row[hidden]{display:none}
.bp-legend-title{display:inline-flex;align-items:center;gap:5px;font-weight:600;white-space:nowrap}
.bp-legend-title .pro-crown-ico{width:12px;height:12px}
.bp-legend-row[data-state=off] .bp-legend-title,.bp-legend-row[data-state=locked] .bp-legend-title{opacity:.5}
.bp-legend-eye,.bp-legend-lock{display:inline-flex;align-items:center;justify-content:center;gap:3px;border:0;background:transparent;color:inherit;cursor:pointer;padding:0;border-radius:3px;font:inherit;line-height:0}
.bp-legend-eye{width:18px;height:18px}
.bp-legend-eye[hidden],.bp-legend-lock[hidden]{display:none}
.bp-legend-eye svg,.bp-legend-lock svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.bp-legend-eye:hover,.bp-legend-lock:hover{background:#ffffff14}
.bp-legend-eye:focus-visible,.bp-legend-lock:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.bp-legend-lock{height:18px;padding:0 5px 0 3px;color:var(--gold);background:var(--gold-soft);border:1px solid var(--gold-line);font-size:10px;font-weight:700;letter-spacing:.06em;line-height:1}
.bp-legend-lock svg{width:12px;height:12px}
.popover-pro-legend{width:300px;padding:2px}
@media(pointer:coarse){.bp-legend-eye{width:28px;height:26px}.bp-legend-lock{height:24px;padding:0 8px 0 6px}}
/* --- News pins on the time axis: focus targets + event popover (TRA-1456b) ---------------- */
/* Calendar markers on the time axis (TRA-1456e): small dark raised markers with a drawn bell,
   fine dashed event lines, one countdown chip. Positions are set per frame via transform (no
   transitions on position, nothing slides in from the centre); only opacity/colour animate. */
.bp-news{position:absolute;pointer-events:none;overflow:hidden;z-index:1;--news-med:#d9b36c;--news-high:#f2786a}
.bp-news-lines,.bp-news-marks{position:absolute;inset:0}
.news-line{position:absolute;left:0;top:0;width:0;border-left:1px dashed var(--acc,var(--news-med));opacity:.16;transition:opacity .18s ease}
.news-line[data-importance=H]{--acc:var(--news-high)}
.news-line.is-past{opacity:.09}
.news-line.is-strong{opacity:.42}
.news-mark{--acc:var(--news-med);position:absolute;left:0;top:0;padding:0;margin:0;display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:6px;
 background:linear-gradient(180deg,#262d36 0%,#161b21 55%,#101419 100%);border:1px solid color-mix(in srgb,var(--acc) 30%,#ffffff14);
 box-shadow:inset 0 1px 0 #ffffff1f,inset 0 -1px 0 #00000099,0 2px 5px -1px #000000b3;color:var(--acc);transition:opacity .18s ease,border-color .18s ease,box-shadow .18s ease}
.news-mark[data-importance=H]{--acc:var(--news-high)}
.news-mark .news-bell{width:62%;height:62%;fill:color-mix(in srgb,var(--acc) 22%,transparent);stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.news-mark.is-past{opacity:.55;color:color-mix(in srgb,var(--acc) 55%,#8a929c)}
.news-mark.is-past .news-bell{fill:none}
.news-mark.is-hover,.news-mark.is-open,.news-mark:focus-visible{opacity:1;border-color:color-mix(in srgb,var(--acc) 70%,transparent);box-shadow:inset 0 1px 0 #ffffff26,inset 0 -1px 0 #00000099,0 0 0 1px color-mix(in srgb,var(--acc) 35%,transparent),0 3px 8px -1px #000000cc}
.news-mark:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.news-mark.is-covered{visibility:hidden}
.news-count{position:absolute;right:-6px;top:-6px;min-width:13px;height:13px;padding:0 3px;border-radius:7px;background:#0d1014;border:1px solid color-mix(in srgb,var(--acc) 55%,transparent);color:var(--text);font:700 8.5px/11px var(--font,inherit);text-align:center;font-variant-numeric:tabular-nums}
.news-mark[data-phase=imminent]::after,.news-mark[data-phase=now]::after{content:"";position:absolute;inset:-4px;border-radius:9px;border:1px solid var(--acc);opacity:0;animation:news-ring 1.8s ease-out infinite}
.news-mark[data-phase=soon],.news-mark[data-phase=imminent],.news-mark[data-phase=now]{opacity:1;border-color:color-mix(in srgb,var(--acc) 65%,transparent)}
@keyframes news-ring{0%{opacity:.7;transform:scale(.88)}70%,100%{opacity:0;transform:scale(1.22)}}
.bp-news-chip{position:absolute;left:0;top:0;height:20px;display:flex;align-items:center;padding:0 9px;border-radius:10px;white-space:nowrap;font-size:11px;font-weight:600;letter-spacing:.01em;font-variant-numeric:tabular-nums;color:#e9edf3;
 --acc:var(--news-med);background:linear-gradient(180deg,#1d232b,#0f1318);border:1px solid color-mix(in srgb,var(--acc) 38%,transparent);box-shadow:inset 0 1px 0 #ffffff17,0 3px 8px -2px #000000cc}
.bp-news-chip[data-importance=H]{--acc:var(--news-high)}
.bp-news-chip[data-phase=imminent],.bp-news-chip[data-phase=now]{color:color-mix(in srgb,var(--acc) 70%,#ffffff)}
.tab-hidden .news-mark::after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.news-mark::after{animation:none!important;opacity:.55!important;transform:none!important}.news-line,.news-mark{transition:none}}
.news-ev-pending dd{color:var(--muted);font-weight:500}
.news-pop{width:min(320px,calc(100vw - 16px));padding:10px 12px 10px;font-size:var(--fs-sm);color:var(--text)}
.news-pop[data-pinned=true]{border-color:var(--gold-line)}
.news-pop-close{position:absolute;top:4px;right:4px;width:24px;height:24px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:17px;line-height:1;cursor:pointer}
.news-pop-close:hover{background:var(--hover);color:var(--text)}
.news-pop[data-pinned=false] .news-pop-close{display:none}
.news-pop-kicker{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.news-pop-events{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:min(46vh,300px);overflow:auto}
.news-ev{position:relative;padding-left:10px}
.news-ev::before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:2px;background:var(--imp,#f5c542)}
.news-ev-name{display:block;font-weight:650;color:var(--text);line-height:1.3;padding-right:18px}
.news-ev-meta{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:3px;color:var(--text-2);font-size:11.5px}
.news-ev-time{font-variant-numeric:tabular-nums}
.news-ev-ccy{font-weight:700;color:var(--text)}
.news-ev-imp{color:var(--imp,#f5c542)}
.news-ev-values{display:flex;gap:12px;margin:5px 0 0}
.news-ev-values div{display:flex;flex-direction:column}
.news-ev-values dt{font-size:10.5px;color:var(--muted)}
.news-ev-values dd{margin:0;font-weight:650;font-variant-numeric:tabular-nums}
/* Traden.de research links (popover, calendar card, PRO card): always new tab */
.research-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line-2)}
.research-link{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;border:1px solid var(--line-3);color:var(--text-2);text-decoration:none;font-size:11.5px;line-height:1.3;white-space:nowrap}
.research-link:hover,.research-link:focus-visible{color:var(--text);border-color:var(--gold-line);background:var(--gold-soft)}
.research-link[data-general]{border-style:dashed}
.research-ext{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
.v7-links{margin-top:6px;padding-top:6px;border-top:1px solid #ffffff0a;gap:5px}
/* TRA-1456f: the card layer is pointer-events:none (chart stays usable around the cards) and the
   free-mode calendar body never re-enabled it, so clicks/taps on the chips hit the chart canvas.
   The link row takes its own hits; it is not [data-drag], so a click never moves or folds the card. */
.v7-cards .v7-links,.v7-cards .v7-links a[href]{pointer-events:auto}
.v7-links .research-link{font-size:max(11px,calc(var(--fs,12px) * .9));padding:2px 7px}
@media(max-width:520px){.news-pop{padding:9px 10px}.research-link{padding:5px 9px}}
.v7-cal .v7-ev-name[role=button]{cursor:pointer}
.v7-cal .v7-ev-name[role=button]:hover{color:var(--text);text-decoration:underline;text-decoration-color:var(--line-3);text-underline-offset:2px}

/* --- Public start-page preview (TRA-1456d) ---------------------------------------------------
   The terminal itself in preview mode (body.preview-mode, set by the server's /preview/ shell):
   same chart, V7 rendering, cards, news pins and status bar; no top bar, toolbar, tool rail,
   drawing tools or dialogs. The market heading carries the compact role actions. */
.preview-mode main{grid-template-columns:minmax(0,1fr)}
.preview-mode .command-rail,.preview-mode .chart-pane>.toolbar{display:none}
.preview-mode .chart-pane{grid-template-rows:34px minmax(0,1fr)}
.preview-mode .market-heading{padding:0 10px 0 14px;border-bottom:1px solid var(--line)}
.pv-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;min-width:0}
.pv-actions .btn{height:24px;padding:0 10px;font-size:var(--fs-sm);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;white-space:nowrap}
.pv-timer{font-size:var(--fs-sm);color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;padding:0 2px}
.pv-timer[data-low=true]{color:var(--gold-2)}
.pv-cta-text{font-size:var(--fs-sm);color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pv-gate{position:absolute;z-index:12;top:50%;left:50%;transform:translate(-50%,-50%);width:min(320px,calc(100% - 24px));padding:16px 18px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:var(--shadow-dialog);text-align:center}
.pv-gate strong{display:block;font-size:var(--fs-lg);font-weight:650;color:var(--text)}
.pv-gate p{margin:6px 0 12px;font-size:var(--fs-sm);line-height:1.45;color:var(--text-2)}
.pv-gate-actions{display:flex;justify-content:center;gap:8px}
.pv-gate-actions .btn{height:28px;padding:0 14px;text-decoration:none;display:inline-flex;align-items:center;font-weight:600}
.pv-paused #chart,.pv-paused .v7-cards{opacity:.42;pointer-events:none;transition:opacity .3s var(--ease)}
@media(max-width:900px){.preview-mode .pv-cta-text{display:none}}
@media(max-width:720px){.preview-mode .market-heading{padding:0 8px 0 10px;gap:8px}.preview-mode .market-heading h1 #tfHeading{display:inline}.pv-actions{gap:6px}.pv-actions .btn{padding:0 8px}}
@media(max-width:400px){.preview-mode .quote strong{font-size:var(--fs-lg)}.pv-timer{font-size:var(--fs-xs)}}
@media(max-width:480px){.pv-timer-label{display:none}}
.pv-paused .bp-news-chip{display:none}.pv-paused .news-mark::after{animation:none}

/* --- TRA-1456f: card headers, PRO score bar, slimmer V7 card ------------------------------ */
/* Free cards: the header is a grid, row 1 = grip · title · chip · arrow (the arrow ALWAYS top
   right, never wrapped into its own row), row 2 = the collapsed summary across the full width. */
.v7-cards[data-mode=free] .v7-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;column-gap:8px;row-gap:5px}
.v7-cards[data-mode=free] .v7-card-head>.v7-grip{grid-area:1/1}
.v7-cards[data-mode=free] .v7-card-head>.v7-card-title{grid-area:1/2;min-width:0;margin-right:0}
.v7-cards[data-mode=free] .v7-card-head>.v7-chip{grid-area:1/3;justify-self:end}
.v7-cards[data-mode=free] .v7-card-head>.v7-toggle{grid-area:1/4;margin:-2px -2px -2px 0}
.v7-cards[data-mode=free] .v7-card-head>.v7-summary{grid-area:2/1/3/5}
.v7-card-title>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* PRO: fixed width (a recalculation never resizes or moves it), wide enough for title + long mode chip + arrow */
.v7-pro{width:328px}
/* Score bar: tone colours for every bar (details and summary strip) */
.pro-bar[data-tone=bull]{--tone:#3ddc97}.pro-bar[data-tone=bear]{--tone:#ff5f6d}.pro-bar[data-tone=warn]{--tone:#e8b44a}.pro-bar[data-tone=muted]{--tone:#78828f}
.pro-bar{--tone:#e8cb8e}
.pro-bar i.on{background:linear-gradient(90deg,color-mix(in srgb,var(--tone) 42%,#1a1f26),var(--tone));box-shadow:0 0 6px -1px color-mix(in srgb,var(--tone) 55%,transparent)}
.pro-score .pro-bar{height:9px;gap:3px}
/* collapsed PRO: score /100 + verdict, below it the slim segmented strip (free and dock) */
.v7-cards .v7-card.v7-pro:not(.is-open) .v7-summary.pro-summary{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:8px;row-gap:5px;white-space:nowrap;overflow:visible}
.pro-sum-num{display:inline-flex;align-items:baseline;gap:2px}
.pro-sum-max{font-size:10.5px;font-weight:550;color:var(--muted)}
.pro-sum-bar{grid-column:1/-1;height:5px;gap:2px}
.pro-sum-bar i{border-radius:1.5px}
.v7-cards[data-mode=free] .v7-pro:not(.is-open) .pro-sum-score{font-size:17px}
.v7-pro.is-dock:not(.is-open) .pro-sum-bar{height:4px}
/* V7: collapsed free card hugs its signal row — short mode chip, no stretched M1 … M15 gaps;
   in Swing the four frames stay in ONE row */
.v7-cards[data-mode=free] .v7-dash .chip-long{display:none}
.v7-cards[data-mode=free] .v7-dash .chip-short{display:inline}
.v7-cards[data-mode=free] .v7-card:not(.is-open) .v7-tf-summary{justify-content:start;column-gap:12px}
.v7-cards[data-mode=free] .v7-dash .v7-tf-grid{grid-template-columns:repeat(var(--cols,3),minmax(56px,max-content))}
.v7-cards[data-mode=free] .v7-dash .v7-tf{padding:5px 8px 6px}
.v7-cards[data-mode=free] .v7-dash .v7-tf .v7-badge{min-width:48px}
@container (min-width:240px){.v7-card.is-dock .v7-tf-summary{justify-content:start;column-gap:10px}}
/* narrow phone dock: the verdict may use two short lines instead of being cut off */
@container (max-width:300px){.v7-pro.is-dock:not(.is-open) .pro-sum-verdict{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.15;font-size:10.5px;letter-spacing:.01em;align-self:center}.v7-pro.is-dock:not(.is-open) .v7-summary.pro-summary{align-items:center;row-gap:4px}}
/* very narrow dock (≤ 320 px phones): mode chip + arrow in row 1, score /100 + verdict and the strip below */
@container (max-width:240px){.v7-pro.is-dock:not(.is-open) .v7-card-head{flex-wrap:wrap;row-gap:3px;padding-bottom:7px}.v7-pro.is-dock:not(.is-open) .v7-summary.pro-summary{order:10;flex:1 0 100%;padding:0 4px 0 1px}.v7-pro.is-dock:not(.is-open) .v7-toggle{margin-left:auto}.v7-pro.is-dock:not(.is-open) .v7-card-title{display:flex}.v7-pro.is-dock:not(.is-open) .v7-card-title>span{display:none}}
/* dock (phones): the short mode chip also in an opened card, the arrow never leaves the card */
.v7-card.is-dock.is-open .chip-long{display:none}
.v7-card.is-dock.is-open .chip-short{display:inline}
.v7-card.is-dock .v7-card-head{min-width:0}
.v7-card.is-dock .v7-card-title{min-width:0;overflow:hidden}
/* opened V7 card: compact timeframe tiles (Swing: four in one row) */
.v7-cards[data-mode=free] .v7-dash .v7-tf{padding:5px 6px 6px}
.v7-cards[data-mode=free] .v7-dash .v7-tf .v7-badge{min-width:44px}
.v7-cards[data-mode=free] .v7-dash .v7-tf-grid{grid-template-columns:repeat(var(--cols,3),minmax(54px,max-content))}
/* dock, opened: the timeframe tiles share the card width (Swing: 4 tiles), never wider than the card */
.v7-card.is-dock .v7-tf-grid{grid-template-columns:repeat(var(--cols,3),minmax(0,1fr))}
.v7-card.is-dock .v7-tf{min-width:0;padding:5px 2px 6px}
.v7-card.is-dock .v7-tf .v7-badge{min-width:0;max-width:100%;padding:0 5px;gap:3px}
@container (max-width:250px){.v7-dash.is-dock .v7-tf-grid[style*="--cols: 4"] .v7-badge>span{display:none}.v7-dash.is-dock .v7-tf-grid[style*="--cols: 4"] .v7-badge{width:30px}}
@container (max-width:230px){.v7-pro.is-dock .pro-factor{grid-template-columns:minmax(0,1fr) auto;gap:6px}.v7-pro.is-dock .pro-strength{display:none}}
/* opened calendar a little narrower (long event names end with …, full name in the tooltip) so V7 + calendar fit side by side on ~820 px windows */
.v7-cards[data-mode=free] .v7-cal{max-width:min(340px,calc(100% - 16px))}

/* --- TRA-1456g „Idee teilen“ --------------------------------------------------------------- */
.share-button:not([hidden]){margin-left:auto}
.share-button:not([hidden])~.replay-button{margin-left:0}
@media(min-width:481px) and (max-width:1180px){.share-button span,.share-button:not([hidden])~.replay-button span,.share-button:not([hidden])~.live-button span{display:none}.share-button,.share-button:not([hidden])~.replay-button,.share-button:not([hidden])~.live-button{width:30px;padding:0;flex-shrink:0}}
.share-heading{display:none;width:28px;height:28px;flex-shrink:0;color:var(--text-2)}.share-heading svg{width:16px;height:16px}
@media(max-width:480px){body.can-share .share-button{display:none!important}body.can-share .share-heading{display:inline-flex;align-items:center;justify-content:center}}
@media(max-width:400px){.share-button{width:28px}}
.share-dialog{width:min(640px,calc(100vw - 20px));max-height:calc(100dvh - 20px);padding:0;border:1px solid var(--line-2);border-radius:var(--r-lg,12px);background:var(--surface);color:var(--text);box-shadow:var(--shadow-pop);overflow:auto;overscroll-behavior:contain}
.share-dialog::backdrop{background:#05070acc;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.share-form{display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px}
.share-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.share-head h2{margin:0;font-size:16px;font-weight:650}
.share-x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.share-shot{margin:0;display:flex;flex-direction:column;gap:6px}
.share-shot img{display:block;width:100%;height:auto;max-height:42dvh;object-fit:contain;background:#0b0e12;border:1px solid var(--line-2);border-radius:8px}
.share-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;color:var(--text-2);font-size:12px;font-variant-numeric:tabular-nums}
.share-meta strong{color:var(--text);font-weight:600}
.share-replay{margin-left:4px;padding:1px 7px;border-radius:999px;background:var(--gold-soft);border:1px solid #d4b16a55;color:#f3dfae;font-weight:650;font-size:11px}
.share-shot-tools{display:flex;gap:6px;justify-content:flex-end;margin-top:-4px}
.share-target{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:8px 10px;border-radius:8px;background:#ffffff08;border:1px solid var(--line-2);font-size:12.5px}
.share-target-k{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;font-weight:650}
.share-target-v{color:var(--text);font-weight:650}
.share-target-why{flex-basis:100%;color:var(--text-2)}
.share-target[data-state=denied]{border-color:#e8485c66}.share-target[data-state=denied] .share-target-why{color:#ff9a8f}
.share-target[data-state=off] .share-target-why{color:#f3dfae}
.share-field{display:flex;flex-direction:column;gap:4px}
.share-label{font-size:12px;font-weight:600;color:var(--text-2)}
.share-hint{font-size:11px;color:var(--muted)}
.share-field input,.share-field textarea{width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:7px 9px;color:var(--text);font:inherit;font-size:13.5px;resize:vertical}
.share-field input:focus-visible,.share-field textarea:focus-visible{outline:none;border-color:var(--gold-line);box-shadow:0 0 0 2px var(--gold-soft)}
.share-alert{margin:0;padding:8px 10px;border-radius:8px;background:#e8485c1f;border:1px solid #e8485c66;color:#ffb3ab;font-size:12.5px}
.share-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:flex-end}
.share-note{flex:1 1 220px;color:var(--muted);font-size:11.5px}
.share-done{display:flex;flex-direction:column;gap:6px;padding:8px 0}
.share-done-title{margin:0;font-size:15px;font-weight:650;color:var(--green,#1fd1a1)}
.share-done-text{margin:0;color:var(--text-2)}
.share-done-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}
.share-form [hidden]{display:none!important}
@media(max-width:520px){.share-form{padding:12px}.share-foot .btn{flex:1 1 auto}.share-note{flex-basis:100%}}

/* --- TRA-1476: tool box, favourites bar, X on cards and legend ----------------------------- */
.tools-button[hidden]{display:none}
.tools-button svg{width:17px;height:17px}
.fav-bar{display:flex;align-items:center;gap:3px;min-width:0;flex:0 1 auto;max-width:min(46vw,520px);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain;padding:1px 0}
.fav-bar::-webkit-scrollbar{display:none}
.fav-bar[hidden]{display:none}
.fav-chip{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;height:26px;padding:0 8px 0 6px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--muted);font-size:var(--fs-sm);font-weight:600;white-space:nowrap;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.fav-chip .tool-ico{width:14px;height:14px}
.fav-chip:hover{background:var(--hover);color:var(--text)}
.fav-chip[aria-pressed=true]{color:var(--gold-2);border-color:var(--gold-line);background:var(--gold-soft)}
.fav-chip[aria-pressed=true]::after{content:"";width:6px;height:6px;border-radius:50%;background:#1fd1a1;box-shadow:0 0 0 2px #1fd1a133;margin-left:1px}
.fav-chip[data-muted][aria-pressed=true]{opacity:.55}
.fav-chip[data-locked]{color:var(--faint)}
.fav-chip:focus-visible,.tool-switch:focus-visible,.tool-star:focus-visible,.tool-lock:focus-visible,.v7-close:focus-visible,.bp-legend-x:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.tool-ico{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.popover-tools{max-width:min(380px,calc(100vw - 16px))}
.tools-panel{display:flex;flex-direction:column;width:340px;max-width:100%;max-height:min(70vh,560px)}
.tools-head{display:flex;flex-direction:column;gap:2px;padding:10px 12px 8px;border-bottom:1px solid var(--line-2)}
.tools-head strong{font-size:var(--fs-md)}
.tools-tip{font-size:var(--fs-xs);color:var(--muted)}
.tools-list{overflow:auto;padding:4px 6px 8px;overscroll-behavior:contain}
.tool-group h3{margin:8px 6px 4px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tool-row{display:flex;align-items:center;gap:6px;min-height:34px;padding:2px 4px 2px 6px;border-radius:6px}
.tool-row:hover{background:var(--hover)}
.tool-row[data-muted] .tool-name{opacity:.6}
.tool-name{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;font-size:var(--fs-md)}
.tool-name>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tool-name .tool-ico{width:16px;height:16px;color:var(--text-2)}
.tool-hint{flex:0 0 auto;font-size:var(--fs-xs);color:var(--faint)}
.tool-star{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:transparent;border:0;color:var(--faint);cursor:pointer}
.tool-star:hover{background:#ffffff10;color:var(--text)}
.tool-star-ico{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
.tool-star[aria-pressed=true]{color:var(--gold)}
.tool-star[aria-pressed=true] .tool-star-ico{fill:currentColor}
.tool-switch{position:relative;flex:0 0 auto;width:34px;height:20px;border-radius:999px;border:0;background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff1a;cursor:pointer;transition:background 160ms var(--ease)}
.tool-switch i{position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#c5ccd6;transition:transform 160ms var(--ease),background 160ms var(--ease)}
.tool-switch[aria-checked=true]{background:#1fd1a1a6}
.tool-switch[aria-checked=true] i{transform:translateX(14px);background:#fff}
.tool-lock{flex:0 0 auto;height:22px;padding:0 7px;border-radius:5px;border:1px solid var(--gold-line);background:var(--gold-soft);color:var(--gold);font-size:10px;font-weight:700;letter-spacing:.06em;cursor:pointer}
@media(pointer:coarse){.tool-row{min-height:42px}.tool-star{width:36px;height:36px}.tool-switch{width:40px;height:24px}.tool-switch i{width:18px;height:18px}.tool-switch[aria-checked=true] i{transform:translateX(16px)}.fav-chip{height:30px}}
@media(prefers-reduced-motion:reduce){.tool-switch,.tool-switch i{transition:none}}
.fav-bar{min-width:min(96px,100%)}
@media(max-width:1500px){.fav-chip .fav-label{display:none}.fav-chip{padding:0 7px;gap:3px}}
@media(max-width:1180px){.tools-button span{display:none}.tools-button{width:30px;padding:0}}
/* narrow: the favourites share the timeframe row (right end, horizontally scrollable), row 1 stays one line */
@media(max-width:980px){.toolbar::before{content:"";order:2;flex-basis:100%;height:0}.timeframes{order:3;width:auto;flex:1 1 0;min-width:0}.tools-button{order:4;height:31px;border-top:1px solid var(--line);border-radius:0;width:32px}.fav-bar{order:5;min-width:0;max-width:40%;height:31px;border-top:1px solid var(--line);padding:2px 0}.fav-chip{height:26px}}
@media(max-width:640px){.fav-bar{max-width:30%;gap:2px}.fav-chip{padding:0 5px;height:24px}.fav-chip[aria-pressed=true]::after{display:none}.tools-button{width:28px}.timeframes button{font-size:11px;padding:0;letter-spacing:-.02em}}
/* card X: own column in the free header grid (grip · title · chip · arrow · X), dock: after the arrow */
.v7-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;pointer-events:auto;width:24px;height:24px;margin:-2px 0 -2px -2px;border-radius:6px;border:0;background:transparent;color:var(--muted);cursor:pointer}
.v7-close:hover{background:#ffffff14;color:var(--text)}
.v7-x{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.v7-cards[data-mode=free] .v7-card-head{grid-template-columns:auto minmax(0,1fr) auto auto auto}
.v7-cards[data-mode=free] .v7-card-head>.v7-close{grid-area:1/5}
.v7-cards[data-mode=free] .v7-card-head>.v7-summary{grid-area:2/1/3/6}
.v7-card.is-dock .v7-toggle{margin-left:auto}
@media(pointer:coarse){.v7-close{width:34px;height:30px}}
.bp-legend-x{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:0;background:transparent;color:inherit;cursor:pointer;padding:0;border-radius:3px;opacity:.75}
.bp-legend-x[hidden]{display:none}
.bp-legend-x:hover{background:#ffffff14;opacity:1}
.bp-legend-x svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
@media(pointer:coarse){.bp-legend-x{width:28px;height:26px}}
/* very narrow phones: favourites stay reachable in „Werkzeuge“, the timeframe row keeps all nine buttons */
@media(max-width:360px){.fav-bar{display:none}}
/* narrow dock cards: arrow + X compact so the four timeframe signals keep their full width */
@container (max-width:300px){.v7-card.is-dock .v7-close{width:20px;height:26px;margin:0 -2px 0 -3px}.v7-card.is-dock .v7-toggle{width:22px}.v7-card.is-dock .v7-card-head{gap:4px}}
@container (max-width:230px){.v7-card.is-dock .v7-close{width:18px;margin:0 -2px 0 -3px}.v7-card.is-dock .v7-toggle{width:20px}.v7-card.is-dock .v7-card-head{gap:3px}}

/* TRA-1477: switch/TF being applied – thin gold bar at the top of the chart (static with reduced motion) */
.chart-stage[data-applying]::before{content:'';position:absolute;z-index:8;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:bp-applying 1s linear infinite;pointer-events:none}
@keyframes bp-applying{from{background-position:-40% 0}to{background-position:140% 0}}
@media (prefers-reduced-motion:reduce){.chart-stage[data-applying]::before{animation:none;background:var(--gold);opacity:.6}}
/* TRA-1477: V7 legend head = own eye (same as the PRO row) + mini menu; Vela's eye is replaced */
.bp-legend-v7 .bp-legend-ctl>.bp-v7-eye{display:none!important}
.bp-legend-v7 .bp-legend-ctl>.bp-v7-own-eye,.bp-legend-v7 .bp-legend-ctl>.bp-v7-menu{display:inline-flex!important} /* Vela hides the controls of a hidden indicator inline – eye + menu must stay reachable */
.bp-v7-menu{align-items:center;justify-content:center;width:18px;height:18px;border:0;background:transparent;color:inherit;cursor:pointer;padding:0;border-radius:3px;line-height:0}
.bp-v7-menu svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.bp-v7-menu:hover,.bp-v7-menu[aria-expanded="true"]{background:#ffffff14;color:var(--gold)}
.bp-v7-menu:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
@media(pointer:coarse){.bp-v7-menu{width:28px;height:26px}}
.tools-foot{border-top:1px solid var(--line,#ffffff14);margin-top:6px;padding-top:6px}
.tools-more{width:100%;text-align:left;border:0;background:transparent;color:var(--gold);font:inherit;font-size:var(--fs-sm);padding:6px 8px;border-radius:var(--r-sm);cursor:pointer}
.tools-more:hover,.tools-more:focus-visible{background:#ffffff0d}

/* TRA-1477 public base terminal: prompts, unlock pill, labelled V7 preview */
.popover-base .base-cta{max-width:300px;padding:12px 14px;display:grid;gap:8px}
.base-cta strong{font-size:var(--fs-md);color:var(--text-1,#e6e9ee)}
.base-cta p{margin:0;font-size:var(--fs-sm);line-height:1.5;color:var(--text-2)}
.base-cta-row{display:flex;flex-wrap:wrap;gap:8px}
.base-unlock{position:absolute;z-index:9;left:50%;bottom:44px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;max-width:calc(100% - 24px);padding:8px 10px 8px 12px;border:1px solid #6b5630;border-radius:var(--r-lg);background:color-mix(in srgb,var(--surface,#14181e) 94%,transparent);box-shadow:var(--shadow-dialog)}
.base-unlock-text{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:#e8c27a;font-weight:600}
.base-unlock-text svg,.base-unlock-x svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.base-unlock-x{border:0;background:transparent;color:var(--text-2);cursor:pointer;padding:4px;border-radius:4px;line-height:0}
.base-unlock-x:hover{background:#ffffff12}
.base-preview{position:absolute;inset:0;z-index:8;background:var(--chart-bg,#0b0e12)}
.base-preview-frame{display:block;width:100%;height:100%;border:0}
.base-preview-badge{position:absolute;top:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px;align-items:center;padding:5px 12px;border-radius:999px;background:#d4b16a;color:#16130b;font-size:var(--fs-sm);font-weight:600;box-shadow:var(--shadow-dialog);pointer-events:none}
.base-preview-badge strong{text-transform:uppercase;letter-spacing:.04em}
@media (max-width:480px){.base-unlock{bottom:56px;padding:8px}.base-unlock-text{flex:1 1 100%;justify-content:center}}
.unlock-row{display:flex;flex-wrap:wrap;gap:8px}
.unlock-note{margin:6px 0 0;font-size:var(--fs-sm);color:var(--text-2);line-height:1.45;max-width:340px}
.unlock-link{color:var(--gold,#c5a267);font-weight:600;text-decoration:none;border-bottom:1px solid currentColor;white-space:nowrap}.unlock-link:hover,.unlock-link:focus-visible{color:var(--text-1,#fff)}

/* Traden T in a quiet gold/white particle orbit; canvas owns motion and visibility. */
.ai-orbit{position:relative;display:inline-grid;place-items:center;flex:0 0 auto}
.ai-orbit canvas{position:absolute;inset:0;width:100%;height:100%}
.ai-orbit-mark{position:relative;display:grid;place-items:center;color:var(--gold);width:46%;height:46%}
.ai-orbit-mark svg{width:100%;height:100%}
.ai-orbit-welcome .ai-orbit-mark{width:34%;height:34%}
.ai-orbit[data-state=error] .ai-orbit-mark{color:#e8a0a0}
.ai-rail.has-orbit>svg{display:none}
.ai-rail-orbit{width:26px;height:26px}
.ai-orbit.ai-avatar,.ai-orbit.ai-empty-mark{background:none;border:0;border-radius:0}.ai-orbit.ai-empty-mark{margin-bottom:6px}
.base-account{display:flex;gap:8px;align-items:center}@media (max-width:480px){.base-account .btn-primary{display:none}}
.base-preview-badge{white-space:nowrap}@media (max-width:480px){.base-preview-name{display:none}body[data-base=guest] #brokerBtn{display:none!important}.base-account .btn{padding:0 10px}}
/* TRA-1479 Traden plot library: value cards (template 8) + look selector (Dezent/Standard/Markant) */
.plot-cards{position:absolute;inset:0;pointer-events:none;z-index:6}
.plot-card{position:absolute;pointer-events:auto;display:flex;align-items:center;gap:8px;padding:5px 6px 5px 10px;border-radius:7px;background:linear-gradient(180deg,#191d23f2,#0c0f13f2);border:1px solid #ffffff12;box-shadow:0 6px 18px #0008,inset 0 1px 0 #ffffff14;font:500 11px/1.2 var(--font,Inter,sans-serif);color:#c9d0d9;cursor:grab;user-select:none;touch-action:none;max-width:220px}
.plot-card.is-dragging{cursor:grabbing;box-shadow:0 10px 26px #000a,inset 0 1px 0 #ffffff14}
.plot-card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#8b95a3;letter-spacing:.02em}
.plot-card-value{font:600 12.5px/1 var(--font,Inter,sans-serif);font-variant-numeric:tabular-nums;color:#f3f5f8}
.plot-card-value[data-dir=up]{color:#6ee8c6}.plot-card-value[data-dir=down]{color:#ff9298}
.plot-card-x{width:18px;height:18px;border-radius:5px;display:grid;place-items:center;color:#8b95a3;background:transparent;font-size:14px;line-height:1}
.plot-card-x:hover{color:#f3f5f8;background:#ffffff12}
.plot-card.is-entering{animation:plot-card-in .42s cubic-bezier(.2,.7,.2,1) both}
@keyframes plot-card-in{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.plot-card.is-entering{animation:none}}
@media (max-width:640px){.plot-card{padding:4px 5px 4px 8px;font-size:10px}.plot-card-value{font-size:11.5px}}
.look-seg{display:inline-flex;gap:2px;padding:2px;border-radius:8px;background:#0b0e12;border:1px solid #ffffff10}
.look-seg button{padding:3px 9px;border-radius:6px;font:500 11px/1.4 var(--font,Inter,sans-serif);color:#8b95a3;background:transparent}
.look-seg button[aria-pressed=true]{background:linear-gradient(180deg,#2a2416,#1b170d);color:#f3dfae;box-shadow:inset 0 0 0 1px #d4b16a4d}
.look-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 2px}
.look-row .ai-meta{min-width:62px}
/* TRA-1479 Marktplatz als eigener Hauptbereich (Seitennavigation, Beispielcharts, V7 an Platz 1, Einnahmen) */
.mk-dialog.mk-main{top:12px;left:50%;transform:translateX(-50%);width:min(1360px,calc(100vw - 24px));height:calc(100dvh - 24px);grid-template-rows:auto minmax(0,1fr)}
.mk-head-tools{display:flex;align-items:center;gap:10px;flex-shrink:0}
.mk-referral-note{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}
.mk-shell{display:grid;grid-template-columns:212px minmax(0,1fr);min-height:0}
.mk-main .mk-tabs{flex-direction:column;gap:2px;padding:12px 10px;border-bottom:0;border-right:1px solid var(--line);overflow:auto}
.mk-main .mk-tab{height:36px;text-align:left;border-bottom:0;border-left:2px solid transparent;border-radius:0 var(--r-sm) var(--r-sm) 0;padding:0 12px}
.mk-main .mk-tab[aria-selected=true]{background:var(--gold-soft);border-left-color:var(--gold)}
.mk-main .mk-body{padding:18px 22px 26px}
.mk-main .mk-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.mk-card-chart{position:relative;width:100%;margin:-2px 0 6px;border-radius:var(--r-sm);overflow:hidden;background:#0b0e12;border:1px solid var(--line)}
.mk-chart-svg{display:block;width:100%;height:auto}
.mk-chart-tag{position:absolute;right:6px;top:5px;padding:1px 6px;border-radius:var(--r-xs);background:#0b0e12cc;color:var(--muted);font-size:10px;letter-spacing:.02em}
.mk-card-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.mk-detail-chart{margin:0;display:flex;flex-direction:column;gap:6px}
.mk-detail-chart .mk-chart-svg{border:1px solid var(--line);border-radius:var(--r-md);background:#0b0e12}
.mk-official{border-color:var(--gold-line);background:linear-gradient(120deg,#1b1810 0%,#11151a 55%,#0e1216 100%);box-shadow:inset 0 1px 0 #d4b16a1f}
.mk-official-main{display:flex;align-items:center;gap:12px}
.mk-official-badge{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:linear-gradient(160deg,#e8cb8e,#b8924a);color:#16120a;font-weight:800;font-size:15px;letter-spacing:.02em;flex-shrink:0}
.mk-official-text{display:flex;flex-direction:column;gap:2px}
.mk-official .mk-card-acts{justify-content:flex-start}
.mk-stat small{color:var(--muted);font-size:var(--fs-xs)}
.mk-ledger li.is-neg{color:#f2878d}
.market-rail svg{width:19px;height:19px}
@media (max-width:760px){
 .mk-dialog.mk-main{inset:0;top:0;left:0;transform:none;width:100vw;height:100dvh;border-radius:0;border:0}
 .mk-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
 .mk-main .mk-tabs{flex-direction:row;flex-wrap:wrap;overflow:visible;border-right:0;border-bottom:1px solid var(--line);padding:0 8px}
 .mk-main .mk-tab{height:34px;padding:0 10px}
 .mk-main .mk-tab{border-left:0;border-bottom:2px solid transparent;border-radius:0}
 .mk-main .mk-tab[aria-selected=true]{background:transparent;border-bottom-color:var(--gold)}
 .mk-main .mk-body{padding:12px 12px 18px}
 .mk-main .mk-grid{grid-template-columns:1fr}
 .mk-referral-note{display:none}
 .mk-main .mk-head{flex-wrap:wrap;row-gap:6px;padding:10px 10px 8px 12px}
 .mk-head-tools{margin-left:auto;max-width:100%}
 .mk-head-tools .mk-referral-cta{padding:0 8px;font-size:var(--fs-xs)}
}
/* „Indikator empfehlen“ (TRA-1479) */
.rf-root[hidden]{display:none}
.rf-backdrop{position:fixed;inset:0;z-index:90;background:#030507b3}
.rf-dialog{position:fixed;z-index:91;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;background:var(--surface);border:1px solid var(--gold-line);border-radius:var(--r-lg);box-shadow:var(--shadow-dialog);color:var(--text)}
.rf-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px 10px 18px;border-bottom:1px solid var(--line)}
.rf-head h2{margin:0;font-size:15px;font-weight:650}
.rf-body{display:flex;flex-direction:column;gap:12px;padding:14px 18px 18px}
.rf-condition{margin:0;padding:10px 12px;border:1px solid var(--gold-line);border-radius:var(--r-md);background:var(--gold-soft);color:var(--text-2);font-size:var(--fs-md);line-height:1.5}
.rf-condition strong{color:var(--gold-2)}
.rf-note{margin:0;color:var(--text-2);font-size:var(--fs-md);line-height:1.5}
.rf-note.is-muted{color:var(--muted);font-size:var(--fs-sm)}
.rf-link{display:flex;gap:8px}
.mk-card-foot .mk-price{white-space:nowrap}

/* TRA-1479: value of the still-forming bar (provisional until the bar closes) */
.plot-card.is-provisional{border-style:dashed}
.plot-card.is-provisional .plot-card-value::after{content:" · vorl.";font-size:9px;color:var(--muted,#8b95a3);font-weight:500}

/* TRA-1479 K-header-logo: compact price-source switcher in the chart toolbar, right next to the market (it changes only
   the chart). The header keeps one broker element; the switcher never repeats the broker logo on its button. */
.toolbar .chart-source{flex:0 0 auto;min-width:0;max-width:150px;margin-right:4px}
.toolbar .chart-source .ui-select{height:28px;max-width:150px;min-width:0;padding:0 8px 0 7px;gap:5px;border:1px solid var(--line-2);border-radius:var(--r-pill);background:var(--surface-2);font-size:var(--fs-sm);color:var(--text-2)}
.toolbar .chart-source .ui-select:hover{color:var(--text);border-color:var(--line-3)}
.toolbar .chart-source .ui-select-icon{display:inline-flex;width:14px;height:14px;color:var(--gold)}
.toolbar .chart-source .ui-select-icon svg{width:14px;height:14px}
.toolbar .chart-source .ui-select-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:110px}
.source-chip{display:inline-flex;align-items:center;height:24px;margin-right:4px;padding:0 9px;border:1px solid var(--line-2);border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;white-space:nowrap;color:var(--text-2);flex-shrink:0}
#feedPicker:not([hidden])+#modeBadge{display:none}
/* broker logo inside the source menu: own width, never on top of the label */
.ui-option-icon:has(.feed-logo){width:auto;min-width:18px;max-width:84px}
.market-result-hint{margin-left:8px;font-size:var(--fs-xs);color:var(--muted)}.market-result-src{display:none} /* the source column carries it on wide screens */
/* narrow header: the account button with a real broker logo grows to the logo (no 28 px circle the wordmark spills out of) */
@media(max-width:980px){.topbar .broker-button:has(#brokerBrand:not([hidden])){width:auto;padding:0 9px}}
@media(max-width:980px){.toolbar .market-picker{margin-right:0}.toolbar .chart-source,.toolbar .source-chip{margin-right:auto}}
/* phones: chart row 1 stays one line with the source next to the market (search icon, chart-type chevron and the source icon go) */
@media(max-width:580px){.toolbar .market-picker>svg{display:none}.toolbar .chart-type .ui-chevron{display:none}.toolbar .chart-type .ui-select{width:28px;padding:0}
 .toolbar .chart-source .ui-select-icon{display:none}.toolbar .chart-source .ui-select{padding:0 5px 0 7px;gap:2px;font-size:11px}.source-chip{padding:0 7px;font-size:10.5px;height:22px}
 .toolbar .chart-source .ui-select-text[data-short]{font-size:0}.toolbar .chart-source .ui-select-text[data-short]::after{content:attr(data-short);font-size:11px}}
/* small phones: the watch star yields its place to the source switcher (watchlist panel: „Aktuellen Markt hinzufügen“) */
@media(max-width:400px){.toolbar #watchToggle:has(~#feedPicker:not([hidden])){display:none}}
.chart-type .ui-select-text{display:none}
.chart-type .ui-select-icon{display:inline-flex!important}
.chart-type .ui-select{height:28px;width:40px;justify-content:center;padding:0 5px;gap:3px}
.chart-type .ui-chevron{width:10px}
.ai-orbit-mark{color:var(--gold-2);width:66%;height:66%;filter:drop-shadow(0 0 3px #d4b16a30)}
.ai-orbit-welcome .ai-orbit-mark{width:56%;height:56%}
/* TRA-1479 K-header-logo: Traden AI brand = bull with integrated T (official icon, transparent, aspect kept) */
.ai-brand-mark{display:block;max-width:100%;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}
.ai-orbit-mark .ai-brand-mark{width:100%;height:auto;max-height:100%}
.ai-title .ai-brand-mark{width:auto;height:18px;flex-shrink:0}
.ai-avatar .ai-brand-mark{width:15px;height:auto}
.ai-orbit[data-state=error] .ai-brand-mark{opacity:.55}
.ai-rail.has-orbit{background:linear-gradient(145deg,#d4b16a0b,transparent);border-color:#d4b16a24}
@media(max-width:1180px){.topbar #engineStatus{display:none}.topbar .broker-button{max-width:170px}}
@media(max-width:980px){.topbar .workspace-button{width:30px;max-width:30px;padding:0;justify-content:center}.topbar .workspace-button>span,.topbar .workspace-button>svg:last-child,.topbar .save-status{display:none}.topbar .broker-button{width:28px;height:28px;padding:0;justify-content:center}.topbar .broker-button .broker-plug{display:block}.topbar #brokerBtnText{display:none}}
@media(max-width:580px){.topbar #fullscreen{display:none}.toolbar .chart-source,.toolbar .chart-source .ui-select{max-width:104px}.toolbar .chart-source .ui-select{padding:0 6px;gap:3px}.toolbar .chart-source .ui-select-text{max-width:70px}.market-result-hint{display:block;margin-left:0}.market-result-src{display:inline}.topbar{gap:6px}.topbar .header-right{gap:5px}}
/* TRA-1479 P1 7.: shared gold load bar under the top bar – indeterminate sweep unless a job measures real progress */
.topbar{position:relative}
.load-bar{position:absolute;left:0;right:0;bottom:-1px;height:2px;overflow:hidden;z-index:30;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(197,162,103,.14),transparent)}
.load-bar>span{position:absolute;inset:0;transform-origin:0 50%;background:linear-gradient(90deg,#8a6d3b,#e3c68f 55%,#fff3d6);box-shadow:0 0 6px rgba(227,198,143,.55)}
.load-bar[data-mode=determinate]>span{transition:transform .25s ease-out}
.load-bar[data-mode=indeterminate]>span{width:38%;right:auto;animation:load-sweep 1.15s cubic-bezier(.45,.05,.35,1) infinite}
@keyframes load-sweep{0%{transform:translateX(-110%)}100%{transform:translateX(290%)}}
@media (prefers-reduced-motion:reduce){.load-bar[data-mode=indeterminate]>span{animation:none;width:100%;opacity:.55}}
/* TRA-1479 P1 5.: V7 preview in the main chart – calm badge, source + data time, no countdown */
.popover-v7-preview{max-width:360px}

/* TRA-1479 P1 7.: chart ↔ Traden AI divider */
@media(min-width:721px){.ai-side{position:relative}} /* phones keep the fixed full-screen sheet (the plain rule overrode it since 5e1c33c) */
/* TRA-1522 (4.): the up/down cursor at the divider came from chart layers lying OVER its grab area: the divider (z 5)
   shared the root stacking context with the chart pane's layers – broker dock z 9 (incl. its ns-resize top edge),
   PRO view z 20 – and Vela's price axis sets an inline ns-resize/row-resize right up to it. Now the chart pane is ONE
   stacking context (nothing inside can rise above the divider), the divider sits above every chart layer, its grab area
   is 12 px centred on the unchanged gold line, and while dragging nothing but the divider gets the pointer. */
.chart-pane{isolation:isolate}
.ai-resizer{position:absolute;left:-6px;top:0;bottom:0;width:12px;z-index:25;cursor:col-resize;touch-action:none;outline:none;background:transparent}
.ai-resizer::after{content:'';position:absolute;left:5px;top:0;bottom:0;width:2px;background:transparent;transition:background .15s;pointer-events:none}
.ai-resizer:hover::after,.ai-resizer:focus-visible::after,.ai-resizer.is-drag::after{background:linear-gradient(180deg,transparent,rgba(227,198,143,.75) 20%,rgba(227,198,143,.75) 80%,transparent)}
html.ai-resizing,body.ai-resizing{cursor:col-resize;user-select:none}
body.ai-resizing #chart,body.ai-resizing .chart-pane,body.ai-resizing iframe{pointer-events:none}
@media(max-width:720px){.ai-resizer{display:none}}
/* TRA-1479 2.: „Werkzeuge“ – tabs for the lists, list editor, compact box in the chart (gold chips as in the top bar) */
.tb-panel{width:360px}
.tb-tabs{display:flex;flex-wrap:wrap;gap:4px;overflow-x:auto;scrollbar-width:none;padding:8px 12px 6px;border-bottom:1px solid var(--line)}
.tb-tab{flex:0 0 auto;height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--muted);font-size:var(--fs-sm);cursor:pointer}
.tb-tab[aria-selected=true]{border-color:rgba(227,198,143,.55);color:#e3c68f;background:rgba(197,162,103,.10)}
.tb-tab.tb-new{border-style:dashed}
.tb-empty{margin:12px;color:var(--muted);font-size:var(--fs-sm)}
.tb-foot{display:flex;flex-wrap:wrap;gap:4px 10px}
.tb-edit{display:grid;gap:8px;padding:10px 12px}
.tb-edit h4{margin:6px 0 0;font-size:var(--fs-xs,11px);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tb-name{height:30px;padding:0 10px;border-radius:6px;border:1px solid var(--line-2);background:var(--bg,#0b0e12);color:var(--text)}
.tb-order{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.tb-item{display:flex;align-items:center;gap:4px;padding:3px 6px;border-radius:6px;background:rgba(255,255,255,.03)}
.tb-item-name{flex:1;font-size:var(--fs-sm)}
.tb-mini{width:24px;height:24px;border-radius:5px;border:0;background:transparent;color:var(--muted);cursor:pointer}.tb-mini:hover{color:var(--text);background:rgba(255,255,255,.06)}
.tb-add{display:flex;flex-wrap:wrap;gap:4px}.tb-add h4{flex-basis:100%}
.tb-add-item{height:26px;padding:0 9px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--text-2);font-size:var(--fs-sm);cursor:pointer}
.tb-delete{justify-self:start;border:0;background:transparent;color:#ff8a8a;font-size:var(--fs-sm);cursor:pointer;padding:4px 0}
.tool-box{position:absolute;z-index:7;display:flex;flex-direction:column;gap:6px;max-width:min(420px,calc(100% - 8px));padding:6px 8px 8px;border-radius:12px;border:1px solid rgba(197,162,103,.35);background:rgba(11,14,18,.88);backdrop-filter:blur(6px);box-shadow:0 8px 24px rgba(0,0,0,.4)}
.tool-box.is-drag{opacity:.92;box-shadow:0 12px 30px rgba(0,0,0,.5)}
.tool-box-head{display:flex;align-items:center;gap:4px}
.tool-box-grip{display:inline-flex;width:18px;height:22px;cursor:grab;color:var(--muted);touch-action:none}.tool-box-grip svg{width:16px;fill:currentColor}
.tool-box-name{flex:1;min-width:0;text-align:left;border:0;background:transparent;color:#e3c68f;font-size:var(--fs-sm);font-weight:600;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tool-box-btn{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;border:0;background:transparent;color:var(--muted);cursor:pointer}.tool-box-btn svg{width:15px}.tool-box-btn:hover{color:var(--text);background:rgba(255,255,255,.06)}
.tool-box-chips{display:flex;flex-wrap:wrap;gap:4px}
/* TRA-1479 D: „Indikatoren“ – search, per-indicator settings, guest note, empty box */
.tb-search{display:block;width:calc(100% - 12px);height:30px;margin:6px 6px 2px;padding:0 10px;border-radius:6px;border:1px solid var(--line-2);background:var(--bg,#0b0e12);color:var(--text);font-size:var(--fs-sm)}
.tb-search:focus{outline:none;border-color:rgba(227,198,143,.55)}
.tool-row[hidden],.tool-group[hidden],.tool-settings[hidden]{display:none}
.tool-gear{display:inline-grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border-radius:6px;border:0;background:transparent;color:var(--faint);cursor:pointer}.tool-gear svg{width:15px}
.tool-gear:hover,.tool-gear[aria-expanded=true]{color:var(--text);background:#ffffff10}
.tool-settings{margin:0 4px 6px 30px;padding:6px 8px;border-radius:6px;background:rgba(255,255,255,.03)}
.tb-lock-note{margin:8px 6px 4px;padding:10px 12px;border-radius:8px;border:1px solid var(--gold-line,rgba(197,162,103,.35));background:var(--gold-soft,rgba(197,162,103,.08))}
.tb-lock-note p{margin:0 0 8px;font-size:var(--fs-sm);color:var(--text-2)}
.tool-box-empty{font-size:var(--fs-xs);color:var(--muted);padding:2px 4px}
.popover-tools .tb-panel{width:380px}
/* TRA-1524 A3: the indicator menu has exactly ONE scroll container – the popover itself. Before, .tb-body (overflow:auto +
   overscroll-behavior:contain, but never height-limited: .tb-slot is no flex box) sat inside the scrolling popover: the wheel/touch
   scroll chain started at the never-scrollable .tb-body, was cut there by „contain“ and never reached the popover – only dragging
   the popover scrollbar worked. Now head, tabs, list and foot scroll together (wheel over title, row or free space, trackpad,
   finger); overscroll-behavior keeps the page/chart still at both ends. */
.popover-tb{max-height:min(70vh,560px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.popover-tb>.tb-panel{max-height:none}
.popover-tb .tb-body{overflow:visible;overscroll-behavior:auto}
/* tabs (top) and foot (bottom) stay in view while the list scrolls – they are part of the same scroll container */
.popover-tb .tb-tabs{position:sticky;top:0;z-index:2;background:var(--surface)}
.popover-tb .tb-foot{position:sticky;bottom:0;z-index:2;background:var(--surface)}
/* TRA-1479 2.: „Werkzeuge“ (TRA-1479 D: „Indikatoren“) reads as a small dropdown (label + chevron) as long as there is room */
.tools-button{gap:6px;padding:0 9px}
.tools-button::after{content:'';width:5px;height:5px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);margin:-3px 0 0 1px;opacity:.6}
.tools-button[aria-expanded=true]{color:#e3c68f}
@media(max-width:1180px){.tools-button::after{display:none}}
/* TRA-1479 (Daniel 11.10. 1.): purchase note after the one V7 preview – centred card in the chart, own X, Esc */
.v7-offer{position:absolute;z-index:11;left:50%;top:50%;transform:translate(-50%,-50%);width:min(390px,calc(100% - 24px));padding:18px 18px 16px;border-radius:14px;background:linear-gradient(180deg,#171b21,#101317);border:1px solid #d4b16a59;box-shadow:0 26px 60px -22px #000d,inset 0 1px 0 #ffffff0a;backdrop-filter:blur(8px);animation:v7-offer-in .32s ease-out}
.v7-offer:focus,.v7-offer:focus-visible{outline:none}
.v7-offer>strong{display:block;margin:0 30px 6px 0;color:var(--gold-2);font-size:15px;letter-spacing:.01em}
.v7-offer>p{margin:0 0 14px;color:var(--text-2);font-size:13px;line-height:1.55}
.v7-offer-x{position:absolute;top:8px;right:8px;border:0;background:transparent;color:var(--text-2);cursor:pointer;padding:5px;border-radius:6px;line-height:0}
.v7-offer-x:hover{background:#ffffff12;color:var(--text)}.v7-offer-x:focus-visible{outline:2px solid var(--gold-2)}
.v7-offer-x svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
@keyframes v7-offer-in{from{opacity:0;transform:translate(-50%,-46%)}}
/* TRA-1479 C: end of the V7 glimpse – the same picture, softly blurred and frozen (no input); CTA = the animated gold
   edge of „Kostenlos registrieren“ (.base-register). Presentation only: the server sends no further V7 data. */
/* TRA-1479 K-teaser: after the teaser ONLY the premium layers are blurred – the still of the last V7 frame and the locked
   PRO card; the free price chart underneath stays sharp, live and usable (panning drops the still) */
.v7-glimpse-still{position:absolute;z-index:2;pointer-events:none;filter:blur(4px) saturate(.85);opacity:.9;animation:v7-glimpse-blur .6s ease-out}
.v7-card[data-teaser=locked]{filter:blur(4px) saturate(.8);pointer-events:none;user-select:none;animation:v7-glimpse-blur .6s ease-out}
.v7-glimpse-cta .v7-cta-rows{display:grid;gap:10px}
@keyframes v7-glimpse-blur{from{filter:none}} /* blur in once; closing removes it at once (no blur animation over the big chart canvas on the way back) */
.v7-glimpse-cta{border-color:#d4b16a73;text-align:left;backdrop-filter:none;background:linear-gradient(180deg,#171b21,#101317)} /* no backdrop blur behind the animated orbit (it would be recomputed every frame) */
.v7-glimpse-cta .unlock-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.v7-glimpse-cta .base-register{height:34px;padding:0 18px;border-radius:9px;font-size:13px;background:linear-gradient(180deg,#1c2026,#12161b);color:#f1dcab}
@media (prefers-reduced-motion:reduce){.v7-glimpse-still,.v7-card[data-teaser=locked]{animation:none}}
@media (max-width:480px){.v7-offer{top:auto;bottom:56px;transform:translateX(-50%);padding:16px 14px 14px}@keyframes v7-offer-in{from{opacity:0}}}
/* TRA-1479 (Daniel 11.10. 3.): guest „Kostenlos registrieren“ – dark terminal button, gold orbit on the
   edge (one quiet arc), rare shimmer; focus ring; reduced motion → static gold edge. */
@property --bp-orbit{syntax:'<angle>';inherits:false;initial-value:0deg}
.base-register{position:relative;isolation:isolate;overflow:hidden;border:0;color:#f1dcab;background:linear-gradient(180deg,#1c2026,#12161b);font-weight:600;letter-spacing:.01em;padding:0 14px;box-shadow:inset 0 1px 0 #ffffff0f,0 0 0 1px #d4b16a3d,0 6px 16px -8px #d4b16a66;transition:color .15s,box-shadow .15s}
.base-register::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;padding:1px;background:conic-gradient(from var(--bp-orbit),#d4b16a00 0deg 235deg,#d4b16a 300deg,#fff6df 334deg,#d4b16a00 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:bp-orbit 6s linear infinite}
.base-register::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 38%,#ffffff1c 50%,transparent 62%);transform:translateX(-130%);animation:bp-shimmer 8s ease-in-out 2s infinite;pointer-events:none}
.base-register:hover{color:#fff4d8;box-shadow:inset 0 1px 0 #ffffff14,0 0 0 1px #d4b16a73,0 8px 20px -8px #d4b16a8c}
.base-register:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}
.base-register .short{display:none}
@keyframes bp-orbit{to{--bp-orbit:360deg}}
@keyframes bp-shimmer{0%,72%{transform:translateX(-130%)}88%,100%{transform:translateX(130%)}}
@media (prefers-reduced-motion:reduce){.base-register::before{animation:none!important;background:linear-gradient(135deg,#d4b16a99,#d4b16a26 45%,#d4b16a80)}.base-register::after{display:none}}
@media (max-width:480px){.base-account .base-register{display:inline-flex}.base-register .long{display:none}.base-register .short{display:inline}}
/* TRA-1479 (Daniel 11.10. 4.): native sign-in / registration dialog (auth.js) in the terminal look */
.auth-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:#05070acc;backdrop-filter:blur(6px);animation:auth-in .2s ease-out}
.auth-card{position:relative;width:min(420px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:22px 22px 18px;border-radius:16px;background:linear-gradient(180deg,#171b21,#101317);border:1px solid #d4b16a4d;box-shadow:0 30px 80px -24px #000e,inset 0 1px 0 #ffffff0a;color:var(--text);font-family:var(--font)}
.auth-x{position:absolute;top:10px;right:10px;border:0;background:transparent;color:var(--text-2);cursor:pointer;padding:6px;border-radius:8px;line-height:0}
.auth-x:hover{background:#ffffff12;color:var(--text)}.auth-x:focus-visible{outline:2px solid var(--gold-2)}
.auth-x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.auth-head{display:grid;gap:6px;margin:0 28px 14px 0}
.auth-logo{height:22px;width:auto;justify-self:start;opacity:.95}
.auth-title{font-size:17px;font-weight:650;color:var(--text);letter-spacing:.005em}
.auth-sub{margin:0;color:var(--text-2);font-size:13px;line-height:1.5}
.auth-tabs,.auth-providers{display:flex;gap:4px;padding:3px;margin:0 0 14px;border-radius:10px;background:#0b0e12;border:1px solid var(--line-2)}
.auth-tab{flex:1;border:0;border-radius:7px;padding:7px 10px;background:transparent;color:var(--text-2);font:600 13px var(--font);cursor:pointer}
.auth-tab[aria-selected=true],.auth-tab[aria-pressed=true]{background:var(--surface-3);color:var(--gold-2);box-shadow:inset 0 0 0 1px #d4b16a40}
.auth-tab:focus-visible{outline:2px solid var(--gold-2);outline-offset:1px}
.auth-form{display:grid;gap:12px}
.auth-field{display:grid;gap:5px}
.auth-label{font-size:12px;font-weight:600;color:var(--text-2)}
.auth-input{height:38px;padding:0 11px;border-radius:9px;border:1px solid var(--line-3);background:#0b0e12;color:var(--text);font:14px var(--font);outline:none;transition:border-color .15s,box-shadow .15s}
.auth-input:focus{border-color:#d4b16a99;box-shadow:0 0 0 3px #d4b16a26}
.auth-input[aria-invalid=true]{border-color:#ff6b6bb3}
.auth-hint{font-size:11.5px;color:var(--muted)}
.auth-error{font-size:12px;color:#ff9b9b;min-height:0}.auth-error:empty{display:none}
.auth-alert{margin:0;padding:9px 11px;border-radius:9px;background:#ff47571a;border:1px solid #ff47574d;color:#ffc2c7;font-size:13px;line-height:1.45}
.auth-alert:focus{outline:none}.auth-alert .btn{margin-top:8px}
.auth-check{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-2);line-height:1.4}
.auth-check input{accent-color:var(--gold);margin-top:2px}
.auth-check a,.auth-more a{color:var(--gold-2);text-decoration:none}.auth-check a:hover,.auth-more a:hover{text-decoration:underline}
.auth-submit{height:40px;width:100%;justify-content:center;font-size:14px}
.auth-more{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:12.5px;margin-top:2px}
.auth-captcha{min-height:65px}
@keyframes auth-in{from{opacity:0}}
@media (max-width:480px){.auth-modal{place-items:end center;padding:0}.auth-card{width:100%;border-radius:16px 16px 0 0;padding:20px 16px calc(16px + env(safe-area-inset-bottom))}}
/* TRA-1530 L: mobile sign-in/registration – the dialog sits in the visual viewport (--auth-vh/--auth-vt set by auth.js),
   the card scrolls inside itself (no scroll chaining to the locked page), 16 px inputs on touch (no iOS zoom on focus),
   with the on-screen keyboard open (data-kb) the card hugs the keyboard and the submit button stays visible (sticky) */
html.auth-open,html.auth-open body{overscroll-behavior:none}
.auth-modal{inset:auto 0;top:var(--auth-vt,0px);height:var(--auth-vh,100%);padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.auth-card{max-height:calc(var(--auth-vh,100dvh) - max(16px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.auth-title{margin:0;font-size:17px;line-height:1.3}.auth-title:focus{outline:none}
@media (pointer:coarse){.auth-input{height:44px;font-size:16px}.auth-submit{height:44px}.auth-tab{padding:9px 8px}.auth-x{padding:10px;top:6px;right:6px}}
@media (max-width:360px){.auth-tab{font-size:12.5px;padding-left:4px;padding-right:4px}}
@media (max-width:480px){.auth-modal{padding:max(24px,env(safe-area-inset-top)) 0 0}.auth-card{max-height:calc(var(--auth-vh,100dvh) - max(24px,env(safe-area-inset-top)))}}
@media (max-height:520px){.auth-modal{padding-top:8px;padding-bottom:8px}.auth-card{max-height:calc(var(--auth-vh,100dvh) - 16px);padding:14px 18px 12px}.auth-head{margin-bottom:10px}.auth-logo{height:18px}.auth-form{gap:10px}}
.auth-modal[data-kb]{place-items:end center;padding-top:6px;padding-bottom:0}
.auth-modal[data-kb] .auth-card{max-height:calc(var(--auth-vh,100dvh) - 6px);border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:10px}
.auth-modal[data-kb] .auth-submit{position:sticky;bottom:10px;z-index:1;box-shadow:0 10px 0 0 #101317,0 -12px 12px -4px #101317}

/* TRA-1479 (Daniel 11.10.): drawing-tool pins – star in Vela's drawing flyout → compact icon in the same top strip as the
   indicator favourites (divider, no third bar); armed tool in gold; what does not fit goes into "+N" */
.draw-pins{gap:2px}
.fav-bar:not([hidden])+.draw-pins{margin-left:3px;padding-left:5px;border-left:1px solid var(--line-2)}
.draw-pin{width:28px;padding:0;justify-content:center;border-color:transparent}
.draw-pin .draw-ico,.draw-pins-item .draw-ico{width:17px;height:17px;flex:0 0 auto}
.draw-pin[aria-pressed=true]{color:var(--gold-2);border-color:var(--gold-line);background:var(--gold-soft)}
.draw-pin[aria-pressed=true]::after{display:none}
.draw-pin[hidden],.draw-pins-more[hidden]{display:none}
.draw-pins-more{padding:0 7px;font-variant-numeric:tabular-nums}
.draw-pins-menu{display:flex;flex-direction:column;min-width:200px;padding:4px}
.draw-pins-item{display:flex;align-items:center;gap:9px;height:32px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--text-2);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}
.draw-pins-item:hover,.draw-pins-item:focus-visible{background:var(--hover);color:var(--text)}
.draw-pin:focus-visible,.draw-pins-more:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
@media(max-width:980px){.draw-pins{max-width:30%}}
@media(max-width:640px){.draw-pins{max-width:26%}.draw-pin{width:26px}}
@media(pointer:coarse){.draw-pin{width:32px}}
@media(max-width:360px){.draw-pins{display:flex;max-width:30%;border-left:0;margin-left:0;padding-left:0}.draw-pins[hidden]{display:none}}
/* TRA-1479 K: a detail switch of the row above (e.g. „Historische TP-Marken“ under „BullPower Navigator“) – indented, smaller icon */
.tool-row-sub{margin-left:22px;position:relative}
.tool-row-sub::before{content:'';position:absolute;left:-10px;top:-2px;height:55%;width:7px;border:solid var(--line,#ffffff1f);border-width:0 0 1px 1px;border-bottom-left-radius:4px}
.tool-row-sub .tool-name{font-size:var(--fs-sm)}
.tool-row-sub .tool-ico{width:15px;height:15px}
/* TRA-1479 E: Traden AI modes (Chart analysieren / Indikator bauen) + analysis card */
.ai-modes{display:flex;gap:4px;padding:6px 12px 0;background:var(--bg-bar)}.ai-modes[hidden]{display:none}
.ai-mode{flex:1 1 0;min-width:0;height:28px;padding:0 10px;border:1px solid var(--line-2);border-radius:var(--r-pill);background:transparent;color:var(--muted);font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease)}
.ai-mode:hover:not(:disabled){color:var(--text);border-color:var(--line-3)}.ai-mode[aria-pressed=true]{color:var(--text);border-color:var(--gold-line);background:var(--gold-soft)}
.ai-example-tag{display:inline-block;margin-right:6px;padding:0 6px;border-radius:var(--r-pill);border:1px solid var(--line-3);color:var(--muted);font-size:10.5px;line-height:16px;vertical-align:1px}
.ai-example[data-mode=analysis] .ai-example-tag{border-color:var(--gold-line);color:var(--gold)}
.ai-bias.is-bull{border-color:#1fd1a155;color:var(--green);background:#1fd1a112}.ai-bias.is-bear{border-color:#ff475755;color:var(--red);background:#ff475712}.ai-bias.is-neutral{border-color:var(--gold-line);color:var(--gold)}
.ai-analysis .ai-card-head strong{margin-right:0}.ai-analysis .ai-card-head .ai-bias{margin-right:auto}
.ai-analysis-x{width:24px;height:24px}.ai-analysis-x svg{width:13px;height:13px}
/* TRA-1522 (4.): eye on the result card = the indicator's visibility (same state as the legend eye) */
.ai-ind-eye{width:24px;height:24px}.ai-ind-eye svg{width:15px;height:15px}.ai-ind-eye[aria-pressed=false]{color:var(--muted)}
.ai-basis{margin:6px 0 0;line-height:1.45}
.ai-an-sec{margin-top:9px}.ai-an-sec h5{margin:0 0 3px;color:var(--muted);font-size:var(--fs-xs);font-weight:650;letter-spacing:.05em;text-transform:uppercase}
.ai-an-sec ul{margin:0;padding-left:16px;color:var(--text-2);font-size:var(--fs-sm);line-height:1.5}.ai-an-sec li+li{margin-top:2px}
.ai-an-sec.is-pro li::marker{color:var(--green)}.ai-an-sec.is-con li::marker{color:var(--red)}
.ai-lv{font-weight:600}.ai-lv-support{color:var(--green)}.ai-lv-resistance{color:var(--red)}.ai-lv-zone{color:var(--gold)}.ai-lv-price{color:var(--text);font-variant-numeric:tabular-nums}
.ai-inv{color:var(--muted);font-variant-numeric:tabular-nums}
.ai-risk{margin-top:10px;padding-top:8px;border-top:1px solid var(--line);line-height:1.45}
.ai-an-again{margin-top:8px}
@media(prefers-reduced-motion:reduce){.ai-mode{transition:none}}
/* TRA-1479 G start – „Historisch testen“ (dist/backtest.js): calm terminal-dark panel, fits 390 px */
.bt{display:flex;flex-direction:column;gap:6px;min-width:0}
.bt-intro strong{font-size:var(--fs-md);color:var(--text)}.bt-intro .ai-meta{line-height:1.45}
.bt-form{display:flex;flex-direction:column;gap:6px;min-width:0}.bt-form .ai-sec{margin-top:10px}
.bt-field{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;color:var(--text-2);font-size:var(--fs-sm)}
.bt-label{color:var(--text-2);font-size:var(--fs-sm);white-space:nowrap}
.bt-select{width:auto;min-width:0;max-width:62%;flex:0 1 auto;text-overflow:ellipsis}
.bt-num{width:96px;font-variant-numeric:tabular-nums}
.bt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 18px}
.bt-grid .bt-field .bt-select{max-width:none;width:150px}
.bt-line{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.bt-check{display:flex;align-items:center;gap:8px;color:var(--text-2);font-size:var(--fs-sm)}
.bt-limit{line-height:1.45}
.bt-run{min-width:140px}
.bt-error{margin-top:8px}
.bt-result{margin-top:12px}.bt-basis{line-height:1.45}
.bt-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px;margin:10px 0 8px}
.bt-metric{display:flex;flex-direction:column;gap:2px;min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg)}
.bt-mlabel{color:var(--faint);font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bt-metric strong{color:var(--text);font-size:var(--fs-md);font-weight:620;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bt-metric.is-net{grid-column:span 2}
.bt-metric.is-up strong,.bt-pnl.is-up{color:var(--green)}.bt-metric.is-down strong,.bt-pnl.is-down{color:var(--red)}
.bt-spark{position:relative;height:76px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);touch-action:pan-y}
.bt-spark svg{display:block;width:100%;height:100%}
.bt-spark .bt-line{fill:none;stroke:var(--gold);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.bt-spark .bt-line.is-down{stroke:var(--gold-2)}
.bt-spark .bt-base{stroke:var(--line-3);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.bt-spark .bt-cross{stroke:var(--muted);stroke-width:1;vector-effect:non-scaling-stroke}
.bt-tip{position:absolute;top:-24px;padding:2px 6px;border-radius:var(--r-xs);background:var(--surface-3);color:var(--text);font-size:var(--fs-xs);white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums}
.bt-tip[hidden]{display:none}
.bt-axis{margin-top:3px}.bt-note{color:var(--muted)}
.bt-h{margin:12px 0 4px;color:var(--muted);font-size:var(--fs-xs);font-weight:650;letter-spacing:.04em;text-transform:uppercase}
.bt-trades{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-md);scrollbar-width:thin}
.bt-trades li+li{border-top:1px solid var(--line)}
.bt-trade{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"n side when pnl" "n px px why";gap:1px 8px;align-items:center;width:100%;padding:6px 9px;background:transparent;color:var(--text-2);font-size:var(--fs-xs);text-align:left;transition:background var(--dur) var(--ease)}
.bt-trade:hover,.bt-trade:focus-visible{background:var(--hover)}
.bt-tn{grid-area:n;color:var(--faint);font-variant-numeric:tabular-nums}
.bt-side{grid-area:side;padding:1px 6px;border-radius:var(--r-pill);border:1px solid var(--line-2);font-weight:600}.bt-side.is-long{color:var(--green)}.bt-side.is-short{color:var(--red)}
.bt-when{grid-area:when;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.bt-px{grid-area:px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.bt-why{grid-area:why;color:var(--faint);text-align:right;white-space:nowrap}
.bt-pnl{grid-area:pnl;text-align:right;font-weight:620;font-variant-numeric:tabular-nums;white-space:nowrap}
.bt-more{margin-top:8px}.bt-more summary{cursor:pointer;color:var(--muted);font-size:var(--fs-sm)}
.bt-assume{margin:6px 0 0;padding-left:18px;color:var(--text-2);font-size:var(--fs-xs);line-height:1.5}
.bt-hash{display:block;margin:4px 0;color:var(--faint);font-size:var(--fs-xs);word-break:break-all}
@media(max-width:720px){.bt-num{width:110px;height:34px}.bt-grid .bt-field .bt-select{width:160px;height:34px}.bt-select{height:34px}.bt-grid{grid-template-columns:1fr}.bt-trade{padding:8px 10px}}
@media(prefers-reduced-motion:reduce){.bt-trade{transition:none}}
/* three AI modes (analysis, build, backtest) share one row: width follows the label so all three fit at 390 px */
.ai-modes{container-type:inline-size}.ai-modes .ai-mode{flex:1 1 auto;padding:0 8px}
@container (max-width:350px){.ai-modes .ai-mode{padding:0 5px;font-size:var(--fs-xs)}}
/* TRA-1479 G end */
/* TRA-1479 F start – broker replay: real cTrader fills on the replayed candles (read-only) */
.rf-layer{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}
.rf-layer[hidden]{display:none}
.rf-lines{position:absolute;left:0;top:0;overflow:visible}
.rf-line{stroke-width:1.2;stroke-dasharray:4 4;opacity:.75}
.rf-line.profit{stroke:var(--green)}.rf-line.loss{stroke:var(--red)}.rf-line.neutral{stroke:var(--muted)}
.rf-mark{position:absolute;width:0;height:0;pointer-events:auto;cursor:help}
.rf-mark::before{content:"";position:absolute;left:-7px;top:-.5px;width:14px;border-top:1.5px solid currentColor}
.rf-mark .rf-arrow{position:absolute;left:-5px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent}
.rf-mark[data-side=buy]{color:var(--green)}.rf-mark[data-side=sell]{color:var(--red)}
.rf-mark[data-side=buy] .rf-arrow{top:3px;border-bottom:8px solid currentColor}
.rf-mark[data-side=sell] .rf-arrow{bottom:3px;border-top:8px solid currentColor}
.rf-mark[data-kind=close] .rf-arrow,.rf-mark[data-kind=reduce] .rf-arrow,.rf-mark[data-kind=reverse] .rf-arrow{opacity:.55}
.rf-mark[data-kind=close]::after,.rf-mark[data-kind=reduce]::after,.rf-mark[data-kind=reverse]::after{content:"";position:absolute;left:-4px;top:-4px;width:6px;height:6px;border:1.5px solid currentColor;border-radius:1px;background:var(--bg)}
.rf-mark[data-partial=true]::before{border-top-style:dashed}
.rf-pop{position:absolute;transform:translate(10px,-50%);display:grid;gap:1px;padding:5px 8px;border-radius:7px;background:#12161bf0;border:1px solid var(--line-3);border-left:3px solid var(--green);box-shadow:var(--shadow-pop);font-size:11.5px;line-height:1.3;white-space:nowrap;color:var(--text);animation:rf-in .32s ease-out both;transition:opacity .38s ease}
.rf-pop[data-side=short]{border-left-color:var(--red)}
.rf-pop strong{font-size:12px;color:var(--text)}.rf-pop span{font-variant-numeric:tabular-nums;color:var(--text-2)}.rf-pop small{color:var(--muted);font-variant-numeric:tabular-nums}
.rf-pop.is-out{opacity:0}
@keyframes rf-in{from{opacity:0;transform:translate(4px,-50%)}to{opacity:1;transform:translate(10px,-50%)}}
.rf-strip{position:absolute;left:8px;bottom:36px;z-index:5;max-width:min(560px,calc(100% - 90px));padding:5px 9px;border-radius:7px;background:#12161be6;border:1px solid var(--line-2);color:var(--text-2);font-size:11.5px;line-height:1.4;white-space:pre-line;font-variant-numeric:tabular-nums;pointer-events:auto}
.rf-strip[hidden]{display:none}
.rf-strip[data-tone=hint]{border-color:#d4b16a55;color:var(--gold-2)}
.rf-strip[data-tone=error]{border-color:#e8485c66;color:#ff9a8f}
.rf-strip[data-tone=open]{color:var(--text)}
.rf-jump{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 7px;border-radius:var(--r-sm);color:var(--text);background:#ffffff0a;border:1px solid var(--line-2);white-space:nowrap;flex-shrink:0}
.rf-jump:hover,.rf-jump[aria-expanded=true]{background:#ffffff17;border-color:var(--gold-line)}
.rf-jump svg{width:15px;height:15px}
.rf-jump[hidden]{display:none}
.rf-count{min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--gold-soft);color:var(--gold-2);font-size:10.5px;line-height:16px;text-align:center}
.rf-list{position:absolute;left:50%;transform:translateX(-50%);top:84px;z-index:7;width:min(380px,calc(100% - 12px));max-height:min(360px,calc(100% - 110px));display:flex;flex-direction:column;border-radius:10px;background:#12161bf7;border:1px solid var(--line-3);box-shadow:var(--shadow-pop);font-size:12px}
.rf-list[hidden]{display:none}
.rf-list-head{display:flex;align-items:center;justify-content:space-between;padding:7px 8px 6px 11px;border-bottom:1px solid var(--line-2)}
.rf-list-close{width:24px;height:24px;border-radius:5px;color:var(--text-2);font-size:16px;line-height:1}
.rf-list-close:hover{background:var(--hover);color:var(--text)}
.rf-list-items{overflow:auto;padding:4px}
.rf-item{display:grid;gap:2px;width:100%;text-align:left;padding:6px 8px;border-radius:7px;color:var(--text)}
.rf-item:hover:not(:disabled),.rf-item:focus-visible{background:var(--hover)}
.rf-item:disabled{opacity:.5;cursor:not-allowed}
.rf-item-top{display:flex;gap:8px;align-items:baseline;font-variant-numeric:tabular-nums}
.rf-item-when{margin-left:auto;color:var(--muted);white-space:nowrap}
.rf-side{font-weight:700}.rf-item[data-side=long] .rf-side{color:var(--green)}.rf-item[data-side=short] .rf-side{color:var(--red)}
.rf-item-sub{color:var(--text-2);font-variant-numeric:tabular-nums}
.rf-item-sub[data-tone=profit]{color:var(--green)}.rf-item-sub[data-tone=loss]{color:#ff8a94}
.rf-list-foot{margin:0;padding:6px 11px 8px;border-top:1px solid var(--line-2);color:var(--muted);font-size:11px}
@media(max-width:640px){.rf-jump-text{display:none}.rf-strip{left:6px;bottom:32px;max-width:calc(100% - 64px);font-size:11px;padding:4px 7px}.rf-pop{font-size:11px;padding:4px 7px}.rf-item-top{flex-wrap:wrap}.rf-item-when{margin-left:0;width:100%}}
@media(prefers-reduced-motion:reduce){.rf-pop{animation:none!important;transition:none!important;transform:translate(10px,-50%)}}
/* TRA-1479 R start – Traden Reclaim: menu row with subtitle on its own line, AI result card */
.tool-row[data-cat="Struktur"] .tool-name{display:grid;grid-template-columns:16px minmax(0,1fr);column-gap:8px;row-gap:1px}
.tool-row[data-cat="Struktur"] .tool-name .tool-ico{grid-row:1/span 2;align-self:center}
.tool-row[data-cat="Struktur"] .tool-hint{grid-column:2;flex:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-builtin .ai-builtin-missing{color:var(--muted);line-height:1.4}
/* end */
/* TRA-1479 G2 start */
.bt-rules{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg)}
.bt-rh{color:var(--faint);font-size:var(--fs-xs);font-weight:650;letter-spacing:.04em;text-transform:uppercase;margin-top:4px}.bt-rh:first-child{margin-top:0}
.bt-rule-list{margin:0;padding-left:16px;color:var(--text-2);font-size:var(--fs-sm);line-height:1.45;overflow-wrap:anywhere}
.bt-rule-list.is-warn{color:var(--gold)}
.bt-rules-more .bt-rules{margin-top:6px}
.bt-inputs{display:flex;flex-direction:column;gap:4px}.bt-reset{align-self:flex-start}
.bt-costline{margin:4px 0 0;line-height:1.45;overflow-wrap:anywhere}
.bt-costs{margin:6px 0 2px;padding:6px 9px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);color:var(--text-2);font-size:var(--fs-xs)}
.bt-costline.is-free{color:var(--gold)}.bt-costs.is-free{border-color:var(--gold-2)}
.bt-presets{display:flex;flex-wrap:wrap;gap:4px 14px}
.bt-warn{margin:6px 0 2px;padding:6px 9px;border:1px solid var(--gold-2);border-radius:var(--r-md);color:var(--gold);font-size:var(--fs-sm);line-height:1.45}
.bt-gaps.is-warn{color:var(--gold)}.bt-data,.bt-gaps,.bt-limits{line-height:1.45}
.bt-metrics.is-weak .bt-metric strong{color:var(--muted)}
.bt-spark .bt-dd{stroke:var(--red);stroke-width:2;opacity:.75;vector-effect:non-scaling-stroke}
.bt-spark .bt-dd-peak{stroke:var(--red);stroke-width:1;stroke-dasharray:2 3;opacity:.55;vector-effect:non-scaling-stroke}
.bt-export{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.bt-repro{margin-top:4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.bt-rerun-note{margin:4px 0 0;font-size:var(--fs-sm)}.bt-rerun-note.is-same{color:var(--green)}.bt-rerun-note.is-diff{color:var(--gold)}
.bt-entry{display:flex;flex-direction:column;gap:4px;padding:6px 2px}.bt-entry-note{margin:0;color:var(--muted);font-size:var(--fs-xs);line-height:1.4}
.bt-metric.is-dd{grid-column:span 2}
.bt-export .btn{flex:1 1 auto}
.bt-result{container-type:inline-size}
@container (max-width:440px){.bt-trade{grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"n side . pnl" "n when when when" "n px px why"}}
@media(max-width:720px){.bt-export .btn{flex:1 1 calc(50% - 6px);min-height:34px}}
/* end */
/* TRA-1479 M start */
.mk-why{margin:6px 0 0;font-size:var(--fs-sm);line-height:1.45;color:var(--muted)}
.mk-card .mk-why{padding:0 2px}
.mk-error{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 0}
.mk-empty-box{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.mk-form-chart{margin:0;display:flex;flex-direction:column;gap:6px;min-height:60px}
.mk-form-chart .mk-chart-svg{border:1px solid var(--line);border-radius:var(--r-md);background:#0b0e12;max-width:640px}
.mk-form-actions{justify-content:flex-start}
.mk-own .mk-card-creator,.mk-sub .mk-sub-text{line-height:1.45;white-space:normal}
@media (max-width:640px){.mk-form-chart .mk-chart-svg{max-width:100%}.mk-form-actions .btn{flex:1 1 auto}}
@media (prefers-reduced-motion:reduce){.mk-form-chart,.mk-error{transition:none}}
/* end */
/* TRA-1479 AI start */
.ai-ctx{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:6px 14px;border-bottom:1px solid var(--line);background:var(--bg-bar);font-size:var(--fs-xs);color:var(--muted);line-height:1.4}
/* the context line is its own grid row (always present; collapsed when hidden so the rows never shift) */
.ai-side{grid-template-rows:48px auto minmax(0,1fr) auto auto}
.ai-ctx[hidden]{display:block;visibility:hidden;height:0;min-height:0;padding:0;border:0;overflow:hidden}.ai-ctx [hidden]{display:none}
.ai-ctx-main{color:var(--text-2);font-weight:600;overflow-wrap:anywhere}
.ai-ctx-period{font-variant-numeric:tabular-nums}
.ai-ctx-replay{flex-basis:100%;color:var(--gold);font-weight:600;font-variant-numeric:tabular-nums}
.ai-ctx.is-replay{box-shadow:inset 2px 0 0 var(--gold)}
.ai-levels li{margin-top:4px}
.ai-lv-why{display:flex;flex-direction:column;gap:1px;margin-top:2px;font-size:var(--fs-xs);color:var(--muted);line-height:1.4}
.ai-lv-inv{color:var(--text-2)}.ai-lv-off{color:var(--faint)}
.ai-cost{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;font-variant-numeric:tabular-nums;line-height:1.45}
.ai-usage-link,.ai-cancel{font-size:var(--fs-xs);padding:0;min-height:0}
.ai-thinking .ai-cancel{margin-left:auto}
.ai-usage-box{margin-top:4px}
.ai-usage-row.is-free .ai-ledger-amt{color:var(--muted);font-weight:500}
.ai-usage-row .ai-ledger-amt.is-neg{color:var(--text-2)}
@media (max-width:720px){.ai-side{grid-template-rows:52px auto minmax(0,1fr) auto auto}.ai-ctx{padding:6px 12px}.ai-card-actions .ai-act-test{flex-basis:auto}}
/* TRA-1512 P34: Traden AI drawings card (list with eye / take over / remove, rejected calls, undo, animation switch) */
.ai-draw-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.ai-draw-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:var(--r-sm);background:var(--surface-2,#14181d);border:1px solid var(--line)}
.ai-draw-row.is-hidden{opacity:.62}.ai-draw-row.is-removed{opacity:.45}.ai-draw-row.is-removed strong{text-decoration:line-through}
.ai-draw-swatch{flex:none;width:14px;height:3px;border-radius:2px;background:var(--sw);box-shadow:0 0 6px var(--sw)}.ai-draw-swatch.is-alt{background:repeating-linear-gradient(90deg,var(--sw) 0 4px,transparent 4px 6px);box-shadow:none}
.ai-draw-meta{display:grid;min-width:0;flex:1}.ai-draw-meta strong{font-size:var(--fs-sm);color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-draw-meta .ai-meta{overflow-wrap:anywhere}
.ai-draw-acts{display:flex;gap:2px;flex:none}.ai-draw-acts .icon-btn{width:28px;height:28px}.ai-draw-acts svg{width:15px;height:15px}
.ai-draw-rules{margin:0 0 2px 22px;font-size:var(--fs-xs);color:var(--text-2)}.ai-draw-rules summary{cursor:pointer;color:var(--muted)}.ai-draw-rules ul{margin:4px 0 0;padding-left:14px;display:grid;gap:2px}.ai-draw-rules .is-ok{color:var(--green,#2fd6a3)}
.ai-draw-note{margin:8px 0 0;padding:6px 8px;border-radius:var(--r-sm);background:var(--gold-soft);color:var(--gold-2);font-size:var(--fs-sm);line-height:1.45}
.ai-draw-errors{margin-top:8px;padding:6px 8px;border-radius:var(--r-sm);border:1px solid #ff5c6c55;background:#ff5c6c12;color:#ffb3ba;font-size:var(--fs-sm)}.ai-draw-errors ul{margin:4px 0 0;padding-left:16px;display:grid;gap:2px;overflow-wrap:anywhere}
.ai-draw-foot{align-items:center}.ai-draw-undo svg{width:14px;height:14px;margin-right:4px;vertical-align:-2px}.ai-draw-motion{margin-left:auto}.ai-draw-motion.is-off{color:var(--muted)}
/* TRA-1570 P61 (2.): AI objects selected in the chart – small action bar at the object + context menu (dist/ai-draw-select.js) */
.ai-obj-bar{position:fixed;z-index:60;display:flex;align-items:center;gap:2px;padding:3px 4px 3px 6px;border-radius:9px;background:rgba(14,17,22,.96);border:1px solid var(--gold-line);box-shadow:0 6px 18px #0009;font:500 12px/1.2 Inter,sans-serif;color:var(--text);max-width:min(340px,calc(100vw - 16px))}
.ai-obj-tag{flex:none;padding:1px 5px;border-radius:5px;background:var(--gold-soft);color:var(--gold-2);font-weight:700;font-size:10.5px;letter-spacing:.04em}
.ai-obj-title{min-width:0;margin:0 4px 0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}
.ai-obj-btn{width:30px;height:30px;flex:none}.ai-obj-btn svg{width:16px;height:16px}.ai-obj-btn.ai-obj-del:hover,.ai-obj-btn.ai-obj-del:focus-visible{color:#ff8a96}
@media (pointer:coarse){.ai-obj-btn{width:38px;height:38px}}
.ai-obj-menu{position:fixed;z-index:61;min-width:220px;padding:4px;border-radius:10px;background:rgba(14,17,22,.98);border:1px solid var(--line);box-shadow:0 10px 26px #000a;font:500 13px/1.2 Inter,sans-serif}
.ai-obj-menu-head{padding:6px 8px 5px;color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-obj-item{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border:0;border-radius:7px;background:none;color:var(--text);text-align:left;cursor:pointer}.ai-obj-item:hover,.ai-obj-item:focus-visible{background:var(--surface-2,#1a1f26);outline:none}
.ai-obj-item svg{width:16px;height:16px;flex:none;color:var(--text-2)}.ai-obj-item.ai-obj-del,.ai-obj-item.ai-obj-del svg{color:#ff8a96}.ai-obj-item kbd{margin-left:auto;font:500 11px Inter,sans-serif;color:var(--muted)}
/* TRA-1570 (1.): a request of another chat is still running – shown in the open chat instead of a thinking row */
.ai-run-elsewhere{display:flex;align-items:center;gap:8px;margin:8px 0 0;padding:6px 8px;border-radius:var(--r-sm);border:1px dashed var(--line);font-size:var(--fs-sm)}.ai-run-elsewhere .ai-run-open{margin-left:auto}
@media (max-width:720px){.ai-draw-acts .icon-btn{width:34px;height:34px}}
/* end */
/* TRA-1512 (1.): orbit mark = the original Traden T (vector) in gold/white with a light sweep; still for reduced motion */
.ai-t-mark{width:100%;height:100%;overflow:visible;display:block}
.ai-t-glow{fill:none;stroke:#f3dca0;stroke-width:22;stroke-linejoin:round;opacity:.22;filter:blur(6px)}
.ai-t-edge{fill:none;stroke:#fffaf0;stroke-width:5;stroke-linejoin:round;opacity:.55}
.ai-t-shine{animation:ai-t-sweep 3.4s cubic-bezier(.45,.05,.35,1) infinite;transform-box:view-box}
.ai-orbit[data-state=thinking] .ai-t-shine,.ai-orbit[data-state=building] .ai-t-shine{animation-duration:1.25s}
.ai-orbit[data-state=thinking] .ai-t-glow{animation:ai-t-breathe 1.25s ease-in-out infinite}
.ai-orbit[data-state=error] .ai-t-fill{filter:saturate(.25) brightness(.8)}.ai-orbit[data-state=error] .ai-t-shine{animation:none;opacity:0}
@keyframes ai-t-sweep{0%{transform:translateX(0) skewX(-18deg)}55%,100%{transform:translateX(860px) skewX(-18deg)}}
@keyframes ai-t-breathe{0%,100%{opacity:.18}50%{opacity:.5}}
.ai-orbit-mark .ai-t-mark{filter:drop-shadow(0 0 4px #d4b16a55)}
.ai-orbit-mini .ai-orbit-mark{width:62%;height:62%}.ai-orbit-welcome .ai-orbit-mark{width:58%;height:58%}
@media (prefers-reduced-motion:reduce){.ai-t-shine{animation:none!important;opacity:0}.ai-t-glow{animation:none!important}}
/* TRA-1512 (1.): compact greeting – brand mark left, "Hallo <Name>" right, short chips, more behind "Mehr Ideen" */
.ai-empty.ai-hello{margin:0;padding:12px 2px 6px;gap:10px;align-items:stretch}
.ai-hello-head{display:flex;align-items:center;gap:10px;min-width:0}
.ai-hello-head .ai-orbit.ai-empty-mark{margin:0;flex:0 0 auto}
.ai-hello-text{min-width:0}.ai-hello-text h3{margin:0;font-size:15px;line-height:1.3;font-weight:650;color:var(--text);overflow-wrap:anywhere}
.ai-hello-text p{margin:2px 0 0;font-size:12.5px;line-height:1.4;color:var(--text-2)}
.ai-chips{display:flex;flex-wrap:wrap;gap:6px}
.ai-chip-btn{padding:5px 10px;border:1px solid var(--line-2);border-radius:var(--r-pill);background:transparent;color:var(--text-2);font-size:12.5px;line-height:1.35;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.ai-chip-btn:hover,.ai-chip-btn:focus-visible{border-color:var(--gold-line);color:var(--text);background:var(--gold-soft)}
.ai-chip-btn[data-mode=analysis]{border-color:color-mix(in srgb,var(--gold-line) 60%,var(--line-2))}
.ai-more-ideas{border-style:dashed;color:var(--muted)}
/* TRA-1512 (2.): "Info" instead of a permanent context line; the panel opens only on demand (replay/demo notice when relevant) */
.ai-info-btn{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;border:1px solid transparent;border-radius:var(--r-pill);background:transparent;color:var(--muted);font-size:var(--fs-xs);cursor:pointer;flex:0 0 auto}
.ai-info-btn svg{width:14px;height:14px}.ai-info-btn:hover,.ai-info-btn[aria-pressed=true]{color:var(--text);border-color:var(--line-2)}
.ai-ctx{padding:4px 14px;gap:1px 8px}.ai-ctx.is-open{padding:6px 14px}
/* TRA-1512 (3.): Verlauf */
.ai-chat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.ai-chat-row{display:flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:var(--r-lg)}
.ai-chat-row.is-current{border-color:var(--gold-line);background:var(--gold-soft)}
.ai-chat-open{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.ai-chat-open strong{max-width:100%;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-chat-open:hover strong{color:var(--gold)}
.ai-chat-del{flex:0 0 auto;margin-right:4px;color:var(--muted)}.ai-chat-del:hover{color:var(--danger,#e07070)}
.ai-head .ai-hist-btn[aria-pressed=true]{color:var(--gold)}
.ai-composer-hint.is-quiet{visibility:hidden}
/* --- TRA-1512 P37 Traden AI: fixed rows, small T, one-line thinking row, short mode labels, calm resize --- */
/* every part keeps its own grid row: a hidden context line ([hidden] = display:none!important) no longer shifts the rows,
   so the mode chips never land in a collapsed minmax(0,1fr) row and paint over the composer */
.ai-side>.ai-head{grid-row:1}.ai-side>.ai-ctx{grid-row:2}.ai-side>.ai-body{grid-row:3}.ai-side>.ai-modes{grid-row:4}.ai-side>.ai-composer{grid-row:5}
/* short mode labels in narrow panels and on phones (the button text/aria-label stays the full label) */
@container (max-width:400px){.ai-modes .ai-mode[data-short]{font-size:0}.ai-modes .ai-mode[data-short]::after{content:attr(data-short);font-size:12px}}
/* greeting: plain 30 px T (no particle canvas), calm accents only; chips compact in two rows */
.ai-orbit-plain .ai-orbit-mark{width:100%;height:100%}
.ai-orbit-plain .ai-t-glow{opacity:.14}
.ai-orbit-welcome.ai-orbit-plain .ai-t-shine{animation-duration:6.5s}
.ai-hello-head{gap:10px}.ai-hello-text h3{font-size:14.5px}
.ai-empty.ai-hello{padding:10px 0 6px}
.ai-hello .ai-chips{gap:5px 4px}.ai-hello .ai-chip-btn{padding:3px 8px;font-size:12px;white-space:nowrap}
.ai-hello .ai-more-ideas{padding:3px 5px;border-color:transparent;color:var(--muted)}.ai-hello .ai-more-ideas:hover,.ai-hello .ai-more-ideas:focus-visible{border-color:var(--line-2);background:transparent}
/* thinking row: T · dots · status · „Abbrechen“ centred on one line; the status may wrap (max. 2 lines), T and Abbrechen stay put */
.ai-msg-ai.ai-thinking{align-items:center}
.ai-thinking .ai-orbit{width:22px;height:22px}
.ai-thinking .ai-msg-body{display:flex;align-items:center;gap:8px;min-height:22px;min-width:0}
.ai-thinking .ai-typing{flex:none;align-items:center;height:22px}
.ai-thinking-status{margin:0;flex:1 1 auto;min-width:0;font-size:var(--fs-sm);line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.ai-thinking .ai-cancel{flex:none;margin-left:auto;line-height:22px;white-space:nowrap}
/* resize: native col-resize cursor everywhere while dragging, nothing animates under the pointer */
html.ai-resizing,body.ai-resizing,body.ai-resizing *,body.ai-resizing *::before,body.ai-resizing *::after{cursor:col-resize!important}
body.ai-resizing .ai-side *,body.ai-resizing .ai-side *::before,body.ai-resizing .ai-side *::after{animation-play-state:paused!important;transition:none!important}
/* --- TRA-1512 P34 Chartleiste: measured fit (dist/toolbar-fit.js), ⋯ menu, compact timeframes ---
   The fit steps are classes on the toolbar, set from the toolbar's REAL width (AI panel, browser sidebar, DPR, fonts),
   cumulative: fit-tight → fit-labels (TRA-1524: share text whenever it fits) → fit-share → fit-aux → fit-v7 → fit-replay → fit-tools → fit-live → fit-tf →
   fit-favs → fit-type → fit-source → fit-favs-off → fit-market. Rules use :where() so the phone media rules keep winning.
   TRA-1522 (6): no reset/„Zentrieren“ button in the row any more – „Chart zurücksetzen“ is the last (quiet) ⋯ entry. */
.toolbar{position:relative}
.tb-more:not([hidden]){margin-left:auto}
.tb-more:not([hidden])~.replay-button{margin-left:0}
.share-button:not([hidden]):not(.tb-ovf)~.tb-more{margin-left:0}
/* TRA-1524 A3: direct reset icon (+ undo while available) instead of a one-entry ⋯ menu – same slot in the right-hand group */
.tb-reset:not([hidden]){margin-left:auto}
.share-button:not([hidden]):not(.tb-ovf)~.tb-reset,.tb-more:not([hidden])~.tb-reset{margin-left:0}
.tb-reset:not([hidden])~.replay-button{margin-left:0}
.tb-reset,.tb-undo{color:var(--muted)}.tb-reset:hover,.tb-undo:hover{color:var(--text)}
.tb-undo:not([hidden]){color:var(--gold-2)}
/* „Idee teilen“ with its text: one line, never wraps */
.share-button{white-space:nowrap}
/* moved into the ⋯ menu: still in the DOM, invisible, exactly over the ⋯ button (its popover opens there) */
.toolbar .tb-ovf{position:absolute!important;right:var(--tb-ovf-r,0);top:var(--tb-ovf-t,0);width:30px!important;min-width:0!important;max-width:30px!important;height:30px;margin:0!important;padding:0!important;overflow:hidden;visibility:hidden!important;pointer-events:none!important}
.tf-more{display:none;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:26px;margin-left:-3px;border-radius:5px;background:transparent;color:var(--muted);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.tf-more:hover,.tf-more[aria-expanded=true]{background:var(--hover);color:var(--text)}
.tf-more svg{width:14px;height:14px}
:where(.toolbar.fit-labels) .share-button span{display:none}
:where(.toolbar.fit-labels) .share-button{width:30px;padding:0;justify-content:center}
:where(.toolbar.fit-v7) .indicator-button .ind-long{display:none}
:where(.toolbar.fit-replay) .replay-button span{display:none}
:where(.toolbar.fit-replay) .replay-button{width:30px;padding:0}
:where(.toolbar.fit-live) .live-button span{display:none}
:where(.toolbar.fit-live) .live-button{width:30px;padding:0}
:where(.toolbar.fit-favs-off) .fav-bar,:where(.toolbar.fit-favs-off) .draw-pins{display:none!important}
@media(max-width:400px){.toolbar .tb-more{width:28px}}
/* one-row layout (> 980 px viewport): no squeezing – a control is either fully visible or compacted by a step */
@media(min-width:981px){
 .toolbar>*{flex-shrink:0}
 .toolbar:not(.fit-favs) .fav-bar{flex:0 0 auto;max-width:none}
 .toolbar.fit-favs .fav-bar{flex:0 1 auto;min-width:min(64px,100%);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 16px),transparent)}
 :where(.toolbar.fit-tight){gap:4px;padding:0 6px}
 :where(.toolbar.fit-tight) .toolbar-btn{padding:0 7px;gap:5px}
 :where(.toolbar.fit-tight) .toolbar-btn.icon-only{width:28px;padding:0}
 :where(.toolbar.fit-tight) .timeframes button{min-width:28px;padding:0 4px}
 :where(.toolbar.fit-tight) .market-picker{padding:0 7px 0 4px;gap:6px}
 :where(.toolbar.fit-tight) .chart-source,:where(.toolbar.fit-tight) .source-chip{margin-right:0}
 :where(.toolbar.fit-tools) .tools-button{width:30px;padding:0}
 :where(.toolbar.fit-tools) .tools-button span,:where(.toolbar.fit-tools) .tools-button::after{display:none}
 :where(.toolbar.fit-tf) .timeframes .tf-extra{display:none}
 :where(.toolbar.fit-tf) .tf-more{display:inline-flex}
 :where(.toolbar.fit-source) .chart-source .ui-select-icon{display:none}
 :where(.toolbar.fit-source) .chart-source .ui-select-text{max-width:64px}
 :where(.toolbar.fit-source) .source-chip{padding:0 7px}
 :where(.toolbar.fit-market) .market-picker strong{max-width:84px}
 :where(.toolbar.fit-market) .market-picker>svg{display:none}
}
/* ⋯ menu and compact timeframe menu (same look as the select lists) */
.popover-tbmenu{min-width:230px}
.tb-menu{display:flex;flex-direction:column;padding:4px;outline:none}
.tb-menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:34px;padding:6px 10px 6px 8px;border:0;border-radius:5px;background:transparent;color:var(--text);font:inherit;font-size:var(--fs-md);text-align:left;cursor:pointer;outline:none;user-select:none}
.tb-menu-item:hover,.tb-menu-item:focus{background:var(--hover)}
.tb-menu-item:focus-visible{box-shadow:inset 0 0 0 1px var(--gold-line)}
.tb-menu-icon{display:inline-grid;place-items:center;flex:none;width:18px;color:var(--text-2)}
.tb-menu-icon svg{width:17px;height:17px}
.tb-menu-body{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}
.tb-menu-hint{font-size:var(--fs-xs);color:var(--muted)}
.tb-menu-badge{margin-left:auto;min-width:18px;padding:0 6px;border-radius:var(--r-pill);background:var(--gold-soft);border:1px solid var(--gold-line);color:var(--gold-2);font-size:var(--fs-xs);font-weight:650;text-align:center}
/* TRA-1522: „Chart zurücksetzen …“ – small and quiet at the end of the ⋯ menu */
.tb-menu-item.is-quiet{min-height:30px;font-size:var(--fs-sm);color:var(--muted)}
.tb-menu-item.is-quiet .tb-menu-icon svg{width:15px;height:15px}
.tb-menu-item.is-quiet:hover,.tb-menu-item.is-quiet:focus{color:var(--text)}
.tb-menu-sep{height:1px;margin:4px 2px;background:var(--line-2)}
.popover-tbmenu .tb-tf-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}
.popover-tbmenu:has(.tb-tf-menu){min-width:172px}
.tb-tf-item{justify-content:center;min-height:30px;padding:4px 6px;font-weight:550;font-variant-numeric:tabular-nums;color:var(--muted)}
.tb-tf-item:hover,.tb-tf-item:focus{color:var(--text)}
.tb-tf-item[aria-checked=true]{background:var(--gold-soft);color:var(--gold-2);box-shadow:inset 0 0 0 1px #d4b16a33}

/* --- TRA-1517 Traden AI „Dein Trading-Briefing“ – compact gold/black card in the AI start view --------------- */
.brf{position:relative;padding:11px 12px 10px;border:1px solid var(--gold-line);border-radius:var(--r-lg);background:linear-gradient(180deg,#d4b16a0d,#0000 60%),var(--surface);box-shadow:inset 0 1px 0 #ffffff0a;font-size:var(--fs-sm);color:var(--text-2);min-width:0}
.brf-standalone{margin:10px 0}
.brf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.brf-title{min-width:0;display:flex;flex-direction:column;gap:1px}
.brf-title strong{font-size:14.5px;font-weight:650;color:var(--text);line-height:1.3;overflow-wrap:anywhere}
.brf-time{font-size:var(--fs-xs);color:var(--muted)}
.brf-acts{display:flex;gap:2px;flex:0 0 auto}.brf-acts .icon-btn svg{width:15px;height:15px}
.brf-points{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;counter-reset:brf}
.brf-point{position:relative;padding-left:16px;line-height:1.4}
.brf-point::before{content:"";position:absolute;left:3px;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}
.brf-point p{margin:0;color:var(--text);font-size:12.5px;overflow-wrap:anywhere}
.brf-basis{display:block;color:var(--faint);font-size:10.5px;line-height:1.35;overflow-wrap:anywhere}
.brf-tabs,.brf-subtabs{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}
.brf-tab,.brf-subtab{height:24px;padding:0 9px;border-radius:var(--r-pill);border:1px solid var(--line-3);color:var(--text-2);font-size:11.5px;white-space:nowrap;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.brf-tab:hover,.brf-subtab:hover:not(:disabled){border-color:var(--gold-line);color:var(--text)}
.brf-tab[aria-expanded="true"],.brf-subtab[aria-pressed="true"]{border-color:var(--gold);color:var(--gold-2);background:var(--gold-soft)}
.brf-panel{margin-top:8px;padding-top:8px;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:6px;min-width:0}
.brf-panel p{margin:0;line-height:1.4;overflow-wrap:anywhere}
.brf-meta{color:var(--text-2);font-size:11.5px}.brf-muted{color:var(--muted);font-size:11.5px}
.brf-note{color:var(--muted);font-size:11px;font-style:normal;border-left:2px solid var(--line-3);padding-left:7px}
.brf-error{color:#ff8a96;font-size:11.5px;margin:6px 0}
.brf-sum{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:0}
.brf-sum dt{color:var(--muted);font-size:11px}.brf-sum dd{margin:0;text-align:right;color:var(--text);font-variant-numeric:tabular-nums;font-size:12px}
.is-up{color:var(--green)!important}.is-down{color:#ff6b78!important}
.brf-trades,.brf-events,.brf-changes,.brf-watch,.brf-zone-list,.brf-news,.brf-corr,.brf-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.brf-trade{padding:7px 8px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface-2)}
.brf-trade-head{display:flex;justify-content:space-between;gap:8px}.brf-trade-head strong{color:var(--text);font-size:12.5px}
.brf-pnl{font-variant-numeric:tabular-nums;font-weight:600}
.brf-trade .brf-meta{font-size:11px;margin-top:2px;font-variant-numeric:tabular-nums}
.brf-event{display:grid;grid-template-columns:40px 34px 1fr auto;gap:6px;align-items:baseline;font-size:11.5px}
.brf-event.is-past{opacity:.55}.brf-event.is-relevant .brf-ev-name{color:var(--text)}
.brf-ev-time{font-variant-numeric:tabular-nums;color:var(--text)}.brf-ev-ccy{color:var(--gold-2);font-weight:600}
.brf-ev-imp{font-size:10px;padding:0 6px;border-radius:var(--r-pill);border:1px solid var(--line-3)}.brf-ev-imp.is-high{border-color:#ff6b7866;color:#ff8a96}.brf-ev-imp.is-mid{border-color:var(--gold-line);color:var(--gold-2)}
.brf-ev-vals{grid-column:3/-1;color:var(--muted);font-size:10.5px}
.brf-news-link{color:var(--text);text-decoration:none;border-bottom:1px dotted var(--line-3)}.brf-news-link:hover{color:var(--gold-2)}
.brf-zone{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;padding:6px 8px;border-radius:var(--r-md);border:1px solid var(--line-2);border-left-width:3px;font-variant-numeric:tabular-nums}
.brf-zone.is-support{border-left-color:#2fd6a3}.brf-zone.is-resistance{border-left-color:#ff5c6c}.brf-zone.is-inside{border-left-color:var(--gold)}.brf-zone.is-provisional{border-style:dashed}
.brf-zone strong{color:var(--text);font-size:12px}.brf-zone .brf-basis{flex-basis:100%}
.brf-chip{padding:0 6px;border-radius:var(--r-pill);border:1px solid var(--line-3);font-size:10px;color:var(--text-2)}
.brf-foot{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.brf-foot .btn svg{width:14px;height:14px}
.brf-legal{margin:7px 0 0;color:var(--faint);font-size:10px;line-height:1.35}
.brf-bar{display:grid;grid-template-columns:70px 1fr 48px;gap:6px;align-items:center;font-size:11px;font-variant-numeric:tabular-nums}
.brf-bar i{height:6px;border-radius:3px;background:linear-gradient(90deg,var(--gold) var(--w),var(--surface-3) var(--w))}
.brf-table{width:100%;border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums}
.brf-table caption{text-align:left;color:var(--gold-2);font-size:11px;padding:4px 0}
.brf-table th,.brf-table td{padding:3px 4px;border-bottom:1px solid var(--line);text-align:right}.brf-table th:first-child{text-align:left;color:var(--text-2);font-weight:500}
.brf-table tr.is-small{opacity:.6}
.brf-calc{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.brf-calc .brf-subtabs,.brf-calc>.btn{grid-column:1/-1;margin:0}
.brf-field{display:flex;flex-direction:column;gap:2px;font-size:10.5px;color:var(--muted)}
.brf-field{min-width:0}.brf-field input{width:100%;min-width:0;height:26px;padding:0 7px;border-radius:var(--r-sm);border:1px solid var(--line-3);background:var(--bg);color:var(--text);font-size:12px;font-variant-numeric:tabular-nums}
.brf-field input:focus-visible{border-color:var(--gold-line)}
.brf-replay{font-size:11px;color:var(--gold-2);margin-top:3px}
.ai-hello+.brf{margin-top:4px}
@media (max-width:720px){.brf{padding:10px}.brf-calc{grid-template-columns:1fr}.brf-event{grid-template-columns:38px 30px 1fr}.brf-ev-imp{grid-column:3}}
@media (prefers-reduced-motion:reduce){.brf-tab,.brf-subtab{transition:none}}
/* ===== TRA-1522 (Paket 41): Traden AI start view after the target image · composer · T orbit (SVG + CSS) ============ */
.ai-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.ai-head .ai-new.ai-head-btn{width:32px;height:32px;padding:0;justify-content:center;color:var(--text-2)}
.ai-head .ai-new.ai-head-btn svg,.ai-head .ai-hist-btn svg,.ai-head .ai-close svg{width:18px;height:18px}
.ai-side.is-start .ai-body{background:radial-gradient(90% 46% at 50% 0%,#d4b16a10,transparent 70%)}
/* TRA-1523 (Paket 42): compact start view – small orbit next to the greeting, 24–28 px greeting, 15–16 px text, flat actions */
.ai-start{container-type:inline-size;display:flex;flex-direction:column;align-items:stretch;gap:7px;margin:0;padding:0 0 2px;width:100%;min-width:0}
.ai-start-top{display:flex;align-items:center;gap:12px;min-width:0}
.ai-start .ai-start-orbit{flex:none;width:clamp(48px,14cqi,64px);height:auto}
.ai-start-hello{flex:1;min-width:0}
.ai-hero{display:flex;flex-direction:column;align-items:stretch;gap:7px;width:100%;min-width:0;text-align:left}
.ai-greet{margin:0;font-size:clamp(24px,6.6cqi,28px);line-height:1.2;font-weight:650;letter-spacing:-.01em;color:#f3f0e9;overflow-wrap:anywhere}
.ai-greet-name{color:#e6c27a}
.ai-greet-emoji{font-size:.85em;white-space:nowrap}
.ai-welcome{margin:2px 0 0;color:#a9aeb6;font-size:15px;line-height:1.4}
.ai-hero-lines{display:flex;flex-direction:column;gap:3px;min-height:0}
.ai-hero-lines[aria-busy=true]{min-height:46px}
.ai-hero-line{margin:0;font-size:clamp(15px,4cqi,16px);line-height:1.45;color:#dcd8cf;overflow-wrap:anywhere}
.ai-hero-line .is-gold{color:#e8c47c;font-weight:600;white-space:nowrap}.ai-hero-line .is-strong{color:#f3f0e9;font-weight:600}
.ai-hero-sub{color:#a9aeb6}
.ai-hero-stale{margin:0;color:#9da3ac;font-size:13.5px;line-height:1.4}
.ai-hero-hint{margin:0;padding:7px 10px;border-radius:10px;background:#ffffff08;color:#dcd8cf;font-size:14.5px;line-height:1.45}
.ai-suggest{display:flex;align-items:center;gap:10px;width:100%;height:auto;min-height:38px;padding:6px 7px 6px 11px;border:1px solid #d4b16a50;border-radius:12px;background:#d4b16a0b;color:#ece8df;font-size:15px;line-height:1.4;text-align:left;white-space:normal;cursor:pointer;transition:border-color .15s,background .15s}
.ai-suggest:hover:not(:disabled),.ai-suggest:focus-visible{border-color:#e6c27a;background:#d4b16a16}
.ai-suggest-text{flex:1;min-width:0;overflow-wrap:anywhere}
.ai-suggest-go{flex:none;padding:3px 10px;border-radius:999px;background:#d4b16a24;color:#f0d79c;font-size:12.5px;font-weight:600;white-space:nowrap}
.ai-suggest.is-done{border-color:#ffffff1c;background:#ffffff06}.ai-suggest.is-done .ai-suggest-go{background:#ffffff10;color:#cfd5dc}
.ai-hero-news{padding-top:9px;border-top:1px solid #ffffff12;font-size:15px;line-height:1.45}
.ai-lead-text{margin:0;color:#ece8df;font-size:15px;line-height:1.45}.ai-lead-impact{margin:2px 0 0;color:#9da3ac;font-size:14px;line-height:1.45}
.ai-quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%}
@container (min-width:600px){.ai-quick{grid-template-columns:repeat(4,minmax(0,1fr))}}
@container (max-width:250px){.ai-quick{grid-template-columns:minmax(0,1fr)}}
.ai-quick-btn{display:flex;align-items:center;gap:8px;min-width:0;height:auto;min-height:40px;padding:7px 10px;border:1px solid #ffffff1c;border-radius:10px;background:#ffffff06;color:#e8e4db;font-size:14px;line-height:1.25;text-align:left;white-space:normal;cursor:pointer;transition:border-color .15s,background .15s}
.ai-quick-btn:hover:not(:disabled),.ai-quick-btn:focus-visible{border-color:#d4b16a88;background:#d4b16a12}
.ai-quick-btn:disabled{opacity:.45;cursor:not-allowed}
.ai-quick-icon{display:block;flex:none;width:17px;height:17px;color:#e2bd72}.ai-quick-icon svg{width:100%;height:100%}
.ai-quick-label{min-width:0;overflow-wrap:anywhere}
@container (max-width:340px){.ai-quick-btn{gap:5px;padding:7px 7px;font-size:13.5px}.ai-quick-icon{width:15px;height:15px}} /* TRA-1523 integration: „Chart analysieren“ stays on one line in a 340 px panel */
.ai-build-help{display:flex;flex-direction:column;gap:6px}
.ai-build-lead{color:#a9aeb6;font-size:14px;line-height:1.4}
.ai-build-chips{display:flex;flex-wrap:wrap;gap:6px}
.ai-build-chip{height:auto;min-height:30px;padding:5px 11px;border:1px solid #d4b16a50;border-radius:999px;background:transparent;color:#ece8df;font-size:13.5px;line-height:1.3;cursor:pointer}
.ai-build-chip:hover,.ai-build-chip:focus-visible{border-color:#e6c27a;background:#d4b16a14}
/* TRA-1523: readable chat (15 px), header wallet, answer actions, collapsed details, calendar list */
.ai-msg-ai .ai-msg-body>p,.ai-msg-user p,.ai-reveal p{font-size:15px;line-height:1.55}
.ai-head .ai-wallet-btn{width:32px;height:32px;padding:0;justify-content:center;color:var(--text-2)}.ai-head .ai-wallet-btn svg{width:18px;height:18px}
.ai-head .ai-wallet-btn[aria-pressed=true]{color:var(--gold-2)}
.ai-trade-acts{display:flex;flex-direction:column;gap:9px;margin-top:10px}
.ai-trade-act{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.ai-act-btn{display:inline-flex;align-items:center;gap:8px;max-width:100%;height:auto;min-height:34px;padding:6px 12px;border:1px solid #d4b16a70;border-radius:10px;background:#d4b16a10;color:#f0e6cf;font-size:14px;line-height:1.3;text-align:left;white-space:normal;cursor:pointer}
.ai-act-btn:hover:not(:disabled),.ai-act-btn:focus-visible{border-color:#e6c27a;background:#d4b16a1c}
.ai-act-btn:disabled{opacity:.55;cursor:default}
.ai-act-btn.is-done{border-color:#ffffff24;background:#ffffff08;color:#cfd5dc}
.ai-act-btn .ai-act-icon{display:block;flex:none;width:16px;height:16px;color:#e2bd72}.ai-act-btn .ai-act-icon svg{width:100%;height:100%}
.ai-act-why{margin:3px 0 0 2px;color:#9da3ac;font-size:13.5px;line-height:1.45}
.ai-act-done{margin:3px 0 0 2px;color:#8fd3b0;font-size:13.5px;line-height:1.45}
.ai-pos,.ai-sources-fold,.ai-cal-more,.ai-err-tech,.ai-an-details{margin-top:10px}
.ai-pos>summary,.ai-sources-fold>summary,.ai-cal-more>summary,.ai-err-tech>summary,.ai-an-details>summary{cursor:pointer;color:#a9aeb6;font-size:13px;line-height:1.5;width:max-content;max-width:100%}
.ai-pos>summary:hover,.ai-sources-fold>summary:hover,.ai-cal-more>summary:hover,.ai-an-details>summary:hover{color:#e8e4db}
.ai-err-tech>summary{font-size:12px;color:#8f959e}
.ai-sources-fold .ai-sources{margin-top:6px}.ai-sources.is-folded .ai-src-id{display:none}.ai-sources.is-folded .ai-src{grid-template-columns:1fr}.ai-sources.is-folded .ai-src-meta{grid-column:1}
.ai-pos-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:5px;max-height:320px;overflow:auto}
.ai-pos-row{padding:6px 9px;border:1px solid #ffffff10;border-radius:8px}
.ai-pos-head{display:flex;justify-content:space-between;gap:8px;font-size:13.5px;color:#e8e4db}.ai-pos-head strong{font-weight:600}
.ai-pos-pnl{white-space:nowrap;font-variant-numeric:tabular-nums}.ai-pos-pnl.is-up{color:var(--green)}.ai-pos-pnl.is-down{color:var(--red)}
.ai-pos-meta{margin:2px 0 0;color:#9da3ac;font-size:12.5px;line-height:1.4}
.ai-cal{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.ai-cal-head{margin:0;color:#9da3ac;font-size:12.5px}
.ai-ev-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:1px solid #ffffff10;border-radius:10px;overflow:hidden}
.ai-cal-more>.ai-ev-list{margin-top:6px}
.ai-ev{padding:7px 10px;border-top:1px solid #ffffff0c}.ai-ev:first-child{border-top:0}
.ai-ev-head{display:flex;align-items:baseline;gap:8px;min-width:0;font-size:14.5px;line-height:1.4}
.ai-ev-time{flex:none;font-variant-numeric:tabular-nums;color:#ece8df;font-weight:600}
.ai-ev-ccy{flex:none;padding:0 5px;border-radius:5px;background:#ffffff10;color:#cfd5dc;font-size:12px}
.ai-ev-imp{flex:none;width:6px;height:6px;border-radius:50%;background:#e2bd72;align-self:center}
.ai-ev-name{flex:1;min-width:0;color:#e8e4db;overflow-wrap:anywhere}
.ai-ev-state{flex:none;color:#8f959e;font-size:12px}
.ai-ev.is-past{opacity:.7}.ai-ev.is-past .ai-ev-time,.ai-ev.is-past .ai-ev-name{color:#8f959e;font-weight:400}.ai-ev.is-now{background:#d4b16a10}.ai-ev.is-now .ai-ev-state{color:#f0d79c;font-weight:600}
.ai-ev-meaning{margin:2px 0 0;color:#b7bcc4;font-size:13.5px;line-height:1.45}
.ai-ev-vals{margin:1px 0 0;color:#7f858e;font-size:12px}
.ai-cal-empty{margin:0;color:#cfd5dc;font-size:14.5px;line-height:1.45}
.ai-cal-note{margin:0;color:#7f858e;font-size:12px}
.ai-err-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.ai-err-acts .ai-retry{margin-top:0}
.ai-err.is-credit{border-color:#d4b16a55;background:#d4b16a0b}.ai-err.is-credit .ai-err-line p{color:#ece8df}.ai-err.is-credit .ai-err-icon{color:#e2bd72}
.ai-an-summary{font-size:15px;color:#dcd8cf}.ai-an-main{margin-top:10px}
#aiSide .ai-trades-more{display:block;height:auto;margin-top:8px;padding:0;color:#a9aeb6;font-size:13px;text-decoration:underline;text-underline-offset:3px}#aiSide .ai-trades-more:hover{color:#e8e4db}
.ai-an-bias{margin:6px 0 2px;color:#a9aeb6;font-size:13px}
/* answer build-up */
.ai-reveal p{margin:0 0 .6em}.ai-reveal p:last-child{margin:0}
/* composer */
.ai-composer{padding:6px 12px 8px;background:linear-gradient(180deg,transparent,var(--bg-bar) 24%)}
.ai-composer-box{position:relative;gap:8px;padding:11px 11px 10px 15px;border:1px solid #d4b16ac0;border-radius:22px;background:linear-gradient(180deg,#151920,#0f1217);box-shadow:0 0 0 4px #d4b16a0c,0 -12px 30px -20px #d4b16a90,inset 0 1px 0 #ffe7b326}
.ai-composer-box:focus-within{border-color:#e8cb8e;box-shadow:0 0 0 4px #d4b16a17,0 -12px 30px -18px #d4b16aa0,inset 0 1px 0 #ffe7b333}
.ai-composer-main{display:flex;align-items:flex-start;gap:10px;min-width:0}
.ai-composer-main .ai-prompt{flex:1;min-width:0;padding:7px 0 4px;font-size:15px}
.ai-composer .ai-prompt::placeholder{color:#868c95}
.ai-composer .ai-send{width:40px;height:40px;margin-top:0;background:radial-gradient(circle at 34% 28%,#f8e2a6,#dab15f 52%,#a67d2e);color:#16120a;box-shadow:0 4px 14px -5px #d4b16aa0,inset 0 1px 0 #ffffff70}
.ai-composer .ai-send svg{width:18px;height:18px}
.ai-composer .ai-send:hover:not(:disabled){background:radial-gradient(circle at 34% 28%,#fff0c4,#e6c172 52%,#b38938)}
.ai-composer .ai-send:disabled{background:radial-gradient(circle at 34% 28%,#8a7448,#5b4a2b 60%,#3f3420);color:#16120ab0;box-shadow:none}
.ai-composer .ai-send.is-stop{background:#f4f1ea;color:#0b0e13}
.ai-composer-row{display:flex;align-items:center;gap:8px;min-height:32px;flex-wrap:wrap}
.ai-composer .ai-model-slot{flex:0 1 auto;min-width:0}
.ai-composer .ai-model-select.ui-select{height:32px;max-width:220px;padding:0 8px 0 11px;border:1px solid #ffffff1f;border-radius:10px;background:#ffffff06;color:#e2ded5;font-size:13px}
.ai-composer .ai-model-select.ui-select:hover:not(:disabled){border-color:#d4b16a66;background:#d4b16a12;color:var(--text)}
.ai-mode-wrap{position:relative;flex:0 0 auto;min-width:0}
.ai-mode-trigger{display:inline-flex;align-items:center;gap:7px;height:32px;max-width:100%;padding:0 9px 0 10px;border:1px solid #ffffff1f;border-radius:10px;background:#ffffff06;color:#e2ded5;font-size:13px;white-space:nowrap;cursor:pointer}
.ai-mode-trigger svg{flex:none;width:16px;height:16px;color:#e2bd72}.ai-mode-trigger svg:last-child{width:14px;height:14px;color:#8f959e}
.ai-mode-trigger:hover:not(:disabled),.ai-mode-trigger[aria-expanded=true]{border-color:#d4b16a66;background:#d4b16a12}
.ai-mode-trigger:disabled{opacity:.55;cursor:not-allowed}
.ai-mode-menu{position:absolute;left:0;bottom:calc(100% + 8px);z-index:40;width:max-content;min-width:220px;max-width:min(300px,82vw);padding:5px;border:1px solid var(--line-2);border-radius:12px;background:var(--surface-2);box-shadow:0 14px 34px #000b;display:flex;flex-direction:column;gap:2px}
.ai-mode-menu[hidden]{display:none}
.ai-mode-menu .ai-menu-item{display:grid;grid-template-columns:18px minmax(0,1fr);column-gap:10px;row-gap:1px;align-items:center;flex:none;width:100%;height:auto;min-width:0;padding:7px 9px;border:0;border-radius:8px;background:none;color:var(--text);font-size:13px;text-align:left;white-space:normal;overflow:visible;cursor:pointer}
.ai-mode-menu .ai-menu-item>svg{grid-row:span 2;width:16px;height:16px;color:#e2bd72}
.ai-mode-menu .ai-menu-label{grid-column:2;font-weight:550}
.ai-mode-menu .ai-menu-hint{grid-column:2;color:var(--muted);font-size:11px;line-height:1.3}
.ai-mode-menu .ai-menu-item:hover:not(:disabled),.ai-mode-menu .ai-menu-item:focus-visible{background:var(--hover)}
.ai-mode-menu .ai-menu-item[aria-checked=true]{background:#d4b16a17;color:#f0d79c}
.ai-mode-menu .ai-menu-sep{height:1px;margin:3px 6px;background:var(--line-2)}
.ai-composer .ai-legal{margin:7px 4px 0;color:#7a8089;font-size:11px;text-align:center}
.ai-composer-hint.is-quiet{display:none}
@media (prefers-reduced-motion:reduce){.ai-quick-btn,.ai-suggest,.ai-composer-box{transition:none}}
@media (max-width:720px){.ai-start{gap:10px}.ai-start .ai-start-orbit{width:56px}.ai-composer .ai-model-slot{flex:0 1 auto}.ai-composer .ai-send{width:42px;height:42px}.ai-composer-main .ai-prompt{font-size:16px}}
/* T orbit – SVG layers, slow orbits, boost turn while a request is prepared, calm pulse while the answer appears */
.ai-orbit{position:relative;display:inline-grid;place-items:center;flex:0 0 auto;aspect-ratio:1/1;contain:layout paint}
.ai-orbit>.ao-layer{position:absolute;inset:0;display:block;pointer-events:none}
.ai-orbit .ao-layer>svg,.ai-orbit .ao-layer>.ao-layer{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible}
.ai-orbit .ao-spin,.ai-orbit .ao-boost{will-change:transform}
.ai-orbit>.ai-orbit-mark{position:relative;display:grid;place-items:center;width:46%;height:46%;color:var(--gold-2);filter:none}
.ai-orbit-mini>.ai-orbit-mark{width:50%;height:50%}
.ai-orbit .ao-spin{animation:ao-spin var(--ao-dur,24s) linear infinite}
.ai-orbit .ao-boost{--ao-start:0deg;animation:ao-spin 2.4s linear infinite paused}
.ai-orbit .ao-rev{animation-direction:reverse}
.ai-orbit .ao-l1{--ao-dur:16s}.ai-orbit .ao-l2{--ao-dur:23s}.ai-orbit .ao-l3{--ao-dur:31s}.ai-orbit .ao-dots-g{--ao-dur:96s}.ai-orbit .ao-arc-g{--ao-dur:150s}
.ai-orbit .ao-glow{opacity:.5;transition:opacity 1.2s ease}
.ai-orbit .ao-dots{fill:none;stroke:#dcb86d;stroke-width:1.9;stroke-linecap:round;stroke-dasharray:0 6.2;opacity:.75}
.ai-orbit .ao-arc{fill:none;stroke-width:1.1;stroke-dasharray:330 236;opacity:.75}
.ai-orbit .ao-disc{opacity:.96}
.ai-orbit .ao-ring{fill:none;stroke-width:1.5;opacity:.85;transition:opacity 1.2s ease}
.ai-orbit .ao-tail{fill:none;stroke-width:1.9;stroke-linecap:round;opacity:.85;transition:opacity 1s ease}
.ai-orbit .ao-light{fill:#fff3d2;transition:opacity 1s ease}
.ai-orbit .ao-halo{fill:#f1cf86;opacity:.22;transition:opacity 1s ease}
.ai-orbit[data-state=preparing] .ao-glow{opacity:1}
.ai-orbit[data-state=preparing] .ao-boost{animation-play-state:running}
.ai-orbit[data-state=preparing] .ao-halo{opacity:.5}
.ai-orbit[data-state=preparing] .ao-ring{opacity:1}
.ai-orbit[data-state=streaming] .ao-glow{opacity:.85;animation:ao-pulse 1.8s ease-in-out infinite}
.ai-orbit[data-state=streaming] .ao-ring{opacity:1;animation:ao-ring 1.8s ease-in-out infinite}
.ai-orbit[data-state=done] .ao-glow{opacity:.7}
.ai-orbit[data-state=error] .ao-glow{opacity:.16}
.ai-orbit[data-state=error] .ao-light,.ai-orbit[data-state=error] .ao-tail,.ai-orbit[data-state=error] .ao-halo{opacity:.2}
.ai-orbit[data-state=error] .ao-ring,.ai-orbit[data-state=error] .ao-dots,.ai-orbit[data-state=error] .ai-t-mark{filter:saturate(.25) brightness(.85)}
.ai-orbit[data-state=preparing] .ai-t-shine{animation-duration:1.25s}
.ai-orbit[data-state=preparing] .ai-t-glow{animation:ai-t-breathe 1.25s ease-in-out infinite}
/* the large start orbit: no light sweep inside the T (its clip + gradient repaint made the whole panel slow in software rendering, ~5 fps); the orbit lights carry the motion */
.ai-orbit-welcome .ai-t-shine{display:none;animation:none}
/* mini (rail 26 px, thinking row 22 px): ring + two lights, thicker strokes in viewBox units */
.ai-orbit-mini .ao-dots-g,.ai-orbit-mini .ao-arc-g,.ai-orbit-mini .ao-l3{display:none}
.ai-orbit-mini .ao-ring{stroke-width:7}.ai-orbit-mini .ao-tail{stroke-width:9}.ai-orbit-mini .ao-light{r:9px}.ai-orbit-mini .ao-halo{r:16px}
.ai-orbit-mini .ao-l1 path,.ai-orbit-mini .ao-l1 circle{transform:scale(.8);transform-origin:100px 100px;transform-box:view-box}
.ai-orbit.ao-still-idle[data-state=idle] *{animation-play-state:paused!important}
.ai-orbit.is-paused *{animation-play-state:paused!important}
.ai-orbit.ai-avatar{width:22px;height:22px;background:none;border:0;border-radius:0}
@keyframes ao-spin{from{transform:rotate(var(--ao-start,0deg))}to{transform:rotate(calc(var(--ao-start,0deg) + 360deg))}}
@keyframes ao-pulse{0%,100%{opacity:.62;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}
@keyframes ao-ring{0%,100%{stroke-width:1.5}50%{stroke-width:2.6}}
@media (prefers-reduced-motion:reduce){.ai-orbit *{animation:none!important;transition:none!important}}
.ai-brief-restore.icon-btn{display:inline-grid;place-items:center;width:20px;height:20px;margin:-2px 0 0 4px;vertical-align:middle;color:var(--gold)}.ai-brief-restore svg{width:13px;height:13px}
/* --- TRA-1512 P37 (6): „Chart zurücksetzen?“ confirmation (small popover at the reset button / ⋯ menu) --- */
.popover-reset{max-width:340px}
.reset-confirm{display:grid;gap:8px;padding:12px 14px 12px}
.reset-confirm strong{font-size:var(--fs-lg);color:var(--text)}
.reset-confirm p{margin:0;font-size:var(--fs-sm,12px);line-height:1.45;color:var(--muted)}
.reset-confirm ul{margin:0;padding-left:16px;font-size:var(--fs-sm,12px);line-height:1.45;color:var(--text-2,var(--muted))}
.reset-confirm .reset-confirm-keep{font-size:11px;color:var(--muted)}
.reset-confirm-row{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}
/* TRA-1479 Paket 40: Marktplatzbedingungen (Wortlaut), Bestellübersicht, Kündigungs-/Widerrufsbestätigung */
.mk-terms-box{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.mk-terms-parts{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.mk-terms-sec{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-top:1px solid var(--line)}
.mk-terms-sec h4{margin:0;font-size:var(--fs-md);letter-spacing:.02em;color:var(--gold-2)}
.mk-terms-sec h5{margin:0;font-size:var(--fs-md);font-weight:600;color:var(--text)}
.mk-terms-sec .mk-text{margin:0;max-width:72ch;line-height:1.55}
.mk-order .mk-breakdown{margin:6px 0 4px}
.mk-confirm{display:flex;flex-direction:column;gap:8px;padding:12px;margin:-4px 0 8px;border:1px solid var(--gold-line);border-radius:var(--r-md);background:var(--gold-soft)}
.mk-receipt{color:var(--text-2)}
@media (max-width:640px){.mk-order .mk-break-row{flex-direction:column;gap:2px}.mk-order .mk-break-row strong{text-align:left}}
/* ===== TRA-1524 A1 (Paket 43): Traden AI – smaller, calmer, more serious (Daniel 16.10.: „alles Schrift kleiner … zu fett …
   kein Scrollen in der Chatbox … das Absenden sieht unprofessionell aus“). One type scale for the whole panel:
   greeting 21 px · body 14.5 px · labels/controls 12.5–13 px · weight 400, only names/key figures 500–600; gold only for the
   name, key figures, icons and the primary action. One scroll area (.ai-body), the composer is a fixed grid row; no inner
   scroll boxes for normal content. Touch: ≥ 40 px targets, 16 px input (no iOS focus zoom). Every rule is scoped to #aiSide. */
#aiSide{font-size:14px}
#aiSide .ai-head{gap:2px;padding:0 6px 0 12px}
#aiSide .ai-title{gap:7px}#aiSide .ai-title strong{font-size:14px;font-weight:600;letter-spacing:0}
#aiSide .ai-badge{font-size:10.5px;font-weight:500;padding:1px 7px}
#aiSide .ai-head .icon-btn{width:30px;height:30px}
#aiSide .ai-head .icon-btn svg{width:16px;height:16px}
#aiSide .ai-ctx{font-size:11.5px;padding:4px 14px}#aiSide .ai-ctx-main{font-weight:500}
#aiSide .ai-body{padding:14px 14px 10px}
#aiSide.is-start .ai-body{background:radial-gradient(90% 36% at 50% 0%,#d4b16a0a,transparent 70%)}
/* start view */
#aiSide .ai-start{gap:9px}
#aiSide .ai-start-top{gap:10px}
#aiSide .ai-start .ai-start-orbit{width:44px}
#aiSide .ai-greet{font-size:21px;line-height:1.25;font-weight:560;letter-spacing:-.005em}
#aiSide .ai-greet-name{font-weight:560}
#aiSide .ai-welcome{margin:1px 0 0;font-size:13.5px;line-height:1.4;color:#9aa0a9}
#aiSide .ai-hero{gap:8px}
#aiSide .ai-hero-line{font-size:14.5px;line-height:1.5;color:#d6d2c9}
#aiSide .ai-hero-line .is-gold{font-weight:500}#aiSide .ai-hero-line .is-strong{font-weight:500}
#aiSide .ai-hero-stale{font-size:12.5px}
#aiSide .ai-hero-hint{padding:6px 9px;border-radius:8px;font-size:13.5px;line-height:1.45}
#aiSide .ai-suggest{gap:8px;min-height:36px;padding:6px 6px 6px 10px;border-color:#d4b16a3a;border-radius:9px;background:#d4b16a08;font-size:14px;line-height:1.45;color:#e2ded5}
#aiSide .ai-suggest-go{padding:2px 9px;font-size:12px;font-weight:500}
#aiSide .ai-hero-news{padding-top:8px;font-size:14.5px}
#aiSide .ai-nlead-text,#aiSide .ai-lead-text{font-size:14.5px;line-height:1.5;color:#e2ded5}
#aiSide .ai-nlead-impact,#aiSide .ai-lead-impact{margin-top:2px;font-size:13px;line-height:1.45}
#aiSide .ai-nlead-toggle{font-size:12px;margin-top:3px}
#aiSide .ai-quick{gap:6px}
#aiSide .ai-quick-btn{gap:7px;min-height:36px;padding:6px 9px;border-color:#ffffff17;border-radius:8px;background:#ffffff05;font-size:13px;line-height:1.25;color:#dedad1}
#aiSide .ai-quick-icon{width:15px;height:15px}
@container (max-width:340px){#aiSide .ai-quick-btn{gap:5px;padding:6px 7px;font-size:12.5px}#aiSide .ai-quick-icon{width:14px;height:14px}}
#aiSide .ai-build-lead{font-size:13px}#aiSide .ai-build-chip{min-height:28px;padding:4px 10px;font-size:12.5px}
/* thread */
#aiSide .ai-thread{gap:14px}
#aiSide .ai-msg{font-size:14.5px}
#aiSide .ai-msg-ai .ai-msg-body>p,#aiSide .ai-msg-user p,#aiSide .ai-reveal p{font-size:14.5px;line-height:1.55}
#aiSide .ai-msg-ai{gap:9px}
#aiSide .ai-msg-user{padding:7px 11px;border-radius:13px 13px 4px 13px}
#aiSide .ai-card{padding:10px 11px;border-radius:10px}
#aiSide .ai-card-head strong{font-size:13.5px;font-weight:600}
#aiSide .ai-card-desc{font-size:13.5px}#aiSide .ai-an-summary{font-size:14px}
#aiSide .ai-chip{font-size:11px}
#aiSide .ai-act-btn{min-height:32px;padding:5px 10px;border-color:#d4b16a55;border-radius:8px;font-size:13px}
#aiSide .ai-act-why,#aiSide .ai-act-done{font-size:12.5px}
#aiSide :is(.ai-pos,.ai-sources-fold,.ai-cal-more,.ai-err-tech,.ai-an-details,.ai-more)>summary{font-size:12.5px}
#aiSide .ai-sources>summary{font-size:12px}
/* the positions list was a second scroll box (max-height 320) inside the chat: it grows with the thread now */
#aiSide .ai-pos-list{max-height:none;overflow:visible}
#aiSide .ai-pos-head{font-size:13px}#aiSide .ai-pos-head strong{font-weight:500}#aiSide .ai-pos-meta{font-size:12px}
#aiSide .ai-ev-head{font-size:13.5px}#aiSide .ai-ev-time{font-weight:500}#aiSide .ai-ev-meaning{font-size:12.5px}
#aiSide .ai-cal-empty{font-size:14px}
#aiSide .ai-err-line p{font-size:14px}
#aiSide .ai-thinking-status{font-size:12.5px}
/* composer: one calm box – text on top, model · mode · send in one row */
#aiSide .ai-composer{padding:6px 10px 7px;background:var(--bg-bar);border-top:1px solid var(--line)}
#aiSide .ai-composer-box{gap:4px;padding:8px 8px 6px 12px;border:1px solid #ffffff1c;border-radius:12px;background:#11151b;box-shadow:none}
#aiSide .ai-composer-box:focus-within{border-color:#d4b16a80;box-shadow:0 0 0 3px #d4b16a12}
#aiSide .ai-composer-main .ai-prompt{padding:3px 0 2px;min-height:22px;max-height:min(160px,28vh);font-size:14.5px;line-height:1.5;overflow-y:auto}
#aiSide .ai-composer-row{gap:6px;min-height:30px;flex-wrap:nowrap}
#aiSide .ai-composer .ai-model-slot{flex:0 1 auto;min-width:0;max-width:200px} /* the select shrinks with its slot (ellipsis) – never under the mode button */
#aiSide .ai-composer .ai-model-select.ui-select{height:28px;max-width:100%;padding:0 6px 0 9px;border-color:#ffffff17;border-radius:8px;background:transparent;font-size:12.5px;color:#c9c5bc}
#aiSide .ai-mode-wrap{flex:0 0 auto}
#aiSide .ai-mode-trigger{height:28px;gap:5px;padding:0 7px 0 8px;border-color:#ffffff17;border-radius:8px;background:transparent;font-size:12.5px;color:#c9c5bc}
#aiSide .ai-mode-trigger svg{width:14px;height:14px}#aiSide .ai-mode-trigger svg:last-child{width:12px;height:12px}
#aiSide .ai-mode-menu .ai-menu-label{font-weight:500}
#aiSide .ai-composer-hint{flex:1 1 auto}
/* send: small square button with a crisp 16 px arrow – normal (gold outline), hover, focus-visible, disabled, loading (ring) */
#aiSide .ai-composer .ai-send{position:relative;display:grid;place-items:center;flex:none;width:32px;height:32px;margin:0 0 0 auto;padding:0;border:1px solid #d4b16a66;border-radius:9px;background:#d4b16a1f;color:#efd59a;box-shadow:none;transition:background .12s,border-color .12s,color .12s}
#aiSide .ai-composer .ai-send svg{width:16px;height:16px}
#aiSide .ai-composer .ai-send:hover:not(:disabled){background:#d4b16a38;border-color:#e2c47f;color:#fbe9bd}
#aiSide .ai-composer .ai-send:active:not(:disabled){background:#d4b16a4a}
#aiSide .ai-composer .ai-send:focus-visible{outline:2px solid #e8cb8e;outline-offset:2px}
#aiSide .ai-composer .ai-send:disabled{background:transparent;border-color:#ffffff14;color:#5f656e;cursor:not-allowed}
#aiSide .ai-composer .ai-send.is-stop{background:#ffffff0d;border-color:#ffffff30;color:#efece6}
#aiSide .ai-composer .ai-send.is-stop:hover{background:#ffffff1a}
#aiSide .ai-composer .ai-send.is-busy::after{content:'';position:absolute;inset:-1px;border:1.5px solid transparent;border-top-color:#e2c47f;border-radius:9px;animation:ai-send-spin .9s linear infinite;pointer-events:none}
@keyframes ai-send-spin{to{transform:rotate(360deg)}}
#aiSide .ai-composer .ai-legal{margin:5px 4px 0;font-size:10.5px;color:#6f757e}
/* touch: at least 40 px targets (icons stay small), 16 px input – no focus zoom on iOS */
@media (pointer:coarse),(max-width:720px){
 #aiSide .ai-composer-main .ai-prompt{font-size:16px}
 #aiSide .ai-composer .ai-send{width:40px;height:40px;border-radius:10px}
 #aiSide .ai-composer .ai-model-select.ui-select,#aiSide .ai-mode-trigger{height:40px}
 #aiSide .ai-head .icon-btn{width:40px;height:40px}
 #aiSide .ai-quick-btn{min-height:44px}#aiSide .ai-suggest{min-height:44px}#aiSide .ai-act-btn{min-height:40px}
 #aiSide .ai-nlead-toggle{padding:6px 0}
}
@media (max-width:720px){#aiSide .ai-start{gap:9px}#aiSide .ai-start .ai-start-orbit{width:44px}#aiSide .ai-body{padding:14px 14px 10px}#aiSide .ai-composer{padding:6px 10px calc(8px + env(safe-area-inset-bottom))}}
/* very low windows: the composer stays reachable and the chat keeps its one scroll area */
@media (max-height:560px){#aiSide .ai-composer-main .ai-prompt{max-height:72px}#aiSide .ai-composer .ai-legal{margin-top:2px}#aiSide .ai-body{padding-top:10px}}
@media (prefers-reduced-motion:reduce){#aiSide .ai-composer .ai-send.is-busy::after{animation:none;border-color:#e2c47f80}}
/* ===== TRA-1531 A (Paket 45): Traden AI visibly more compact + mode menu inside the panel (Daniel 17.10.: „noch zu groß und fett“).
   Measured on edfab13 (getComputedStyle): the TRA-1524 A1 rules above DID win the cascade (no inline style, root 16 px, no zoom/
   transform) – greeting 21 px/560, body 14.5 px/1.5–1.55, composer 14.5 px; the step from P42 was simply too small (and his screen
   scales ~2×). New scale, same #aiSide scope (later = wins at equal specificity): greeting 19 px/500 · body 13.5 px/400/1.45 ·
   secondary 12–12.5 px · controls 12 px; phones (≤ 720 px) keep body text at 14 px and the 16 px input. Nothing outside #aiSide. */
#aiSide{font-size:13px}
#aiSide .ai-body{padding:12px 12px 8px}
#aiSide .ai-start{gap:8px}
#aiSide .ai-start-top{gap:9px}
#aiSide .ai-greet{font-size:19px;line-height:1.3;font-weight:500;letter-spacing:0}
#aiSide .ai-greet-name{font-weight:500}
#aiSide .ai-welcome{margin:0;font-size:12.5px;line-height:1.4}
#aiSide .ai-hero{gap:7px}
#aiSide .ai-hero-line{font-size:13.5px;line-height:1.45}
#aiSide .ai-hero-line .is-gold,#aiSide .ai-hero-line .is-strong{font-weight:500}
#aiSide .ai-hero-stale{font-size:12px;line-height:1.4}
#aiSide .ai-hero-hint{padding:5px 8px;font-size:12.5px;line-height:1.45}
#aiSide .ai-suggest{gap:8px;min-height:32px;padding:5px 6px 5px 9px;border-radius:8px;font-size:13px;line-height:1.45}
#aiSide .ai-suggest-go{padding:2px 8px;font-size:11.5px;font-weight:500}
#aiSide .ai-hero-news{padding-top:7px;font-size:13.5px}
#aiSide .ai-nlead-text,#aiSide .ai-lead-text{font-size:13.5px;line-height:1.45}
#aiSide .ai-nlead-impact,#aiSide .ai-lead-impact{font-size:12.5px;line-height:1.45}
#aiSide .ai-nlead-toggle{font-size:11.5px}
#aiSide .ai-quick{gap:5px}
#aiSide .ai-quick-btn{gap:6px;min-height:32px;padding:5px 8px;border-radius:7px;font-size:12.5px}
#aiSide .ai-quick-icon{width:14px;height:14px}
#aiSide .ai-build-lead{font-size:12.5px}#aiSide .ai-build-chip{min-height:26px;padding:3px 9px;font-size:12px}
/* thread + cards */
#aiSide .ai-thread{gap:12px}
#aiSide .ai-msg{font-size:13.5px}
#aiSide .ai-msg-ai .ai-msg-body>p,#aiSide .ai-msg-user p,#aiSide .ai-reveal p{font-size:13.5px;line-height:1.5}
#aiSide .ai-msg-ai{gap:8px}
#aiSide .ai-msg-user{padding:6px 10px}
#aiSide .ai-card{padding:8px 10px;border-radius:9px}
#aiSide .ai-card-head strong{font-size:13px;font-weight:600}
#aiSide .ai-card-desc{font-size:12.5px}#aiSide .ai-an-summary{font-size:13.5px;line-height:1.45}
#aiSide .ai-chip{font-size:10.5px}
#aiSide .ai-act-btn{min-height:30px;padding:4px 9px;font-size:12.5px}
#aiSide .ai-act-why,#aiSide .ai-act-done{font-size:12px}
#aiSide :is(.ai-pos,.ai-sources-fold,.ai-cal-more,.ai-err-tech,.ai-an-details,.ai-more)>summary{font-size:12px}
#aiSide .ai-sources>summary{font-size:11.5px}
#aiSide .ai-pos-head{font-size:12.5px}#aiSide .ai-pos-meta{font-size:11.5px}
#aiSide .ai-ev-head{font-size:13px}#aiSide .ai-ev-meaning{font-size:12px}
#aiSide .ai-cal-empty,#aiSide .ai-err-line p{font-size:13px}
#aiSide .ai-thinking-status{font-size:12px}
/* composer: smaller text and controls, same layout */
#aiSide .ai-composer{padding:6px 10px 6px}
#aiSide .ai-composer-box{padding:7px 7px 5px 11px}
#aiSide .ai-composer-main .ai-prompt{min-height:20px;font-size:13.5px;line-height:1.45}
#aiSide .ai-composer .ai-model-select.ui-select{height:26px;font-size:12px}
#aiSide .ai-mode-trigger{height:26px;font-size:12px}
#aiSide .ai-composer .ai-legal{margin-top:4px;font-size:10.5px}
/* mode menu: placed by placeModeMenu() in dist/ai.js (left/top/bottom/max-width/max-height inside panel ∩ viewport);
   the CSS keeps it readable – wrapping descriptions, clear contrast, scroll only inside the menu */
#aiSide .ai-mode-menu{z-index:60;max-width:min(300px,calc(100vw - 16px));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;background:#1b2028;border-color:#ffffff1f}
#aiSide .ai-mode-menu .ai-menu-item{flex:none;padding:7px 9px}
#aiSide .ai-mode-menu .ai-menu-label{font-size:13px;font-weight:500;line-height:1.3}
#aiSide .ai-mode-menu .ai-menu-hint{font-size:11.5px;line-height:1.35;color:#a7adb6;overflow-wrap:anywhere}
#aiSide .ai-mode-menu .ai-menu-item[aria-checked=true] .ai-menu-hint{color:#c2b393}
/* touch: ≥ 40 px targets, 16 px input (no iOS focus zoom) – repeated here because the rules above come later than TRA-1524's */
@media (pointer:coarse),(max-width:720px){
 #aiSide .ai-composer-main .ai-prompt{font-size:16px}
 #aiSide .ai-composer .ai-model-select.ui-select,#aiSide .ai-mode-trigger{height:40px}
 #aiSide .ai-quick-btn{min-height:44px}#aiSide .ai-suggest{min-height:44px}#aiSide .ai-act-btn{min-height:40px}
 #aiSide .ai-mode-menu .ai-menu-item{min-height:44px}
}
/* phones: body text stays at 14 px (readable), the rest follows the compact scale */
@media (max-width:720px){
 #aiSide .ai-body{padding:12px 12px 8px}
 #aiSide .ai-hero-line,#aiSide .ai-nlead-text,#aiSide .ai-lead-text,#aiSide .ai-hero-news,#aiSide .ai-suggest,#aiSide .ai-an-summary,
 #aiSide .ai-msg,#aiSide .ai-msg-ai .ai-msg-body>p,#aiSide .ai-msg-user p,#aiSide .ai-reveal p{font-size:14px}
 #aiSide .ai-quick-btn{font-size:13px}
 #aiSide .ai-welcome,#aiSide .ai-hero-stale,#aiSide .ai-nlead-impact,#aiSide .ai-lead-impact,#aiSide .ai-composer .ai-model-select.ui-select,#aiSide .ai-mode-trigger{font-size:13px}
 #aiSide .ai-composer{padding:6px 10px calc(8px + env(safe-area-inset-bottom))}
}
/* ===== TRA-1531 45c (Daniel 17.10., approved design image): layout only – texts, news, prompts, actions and orbit unchanged.
   Greeting back to 21 px/560 (shrinks with the panel, wraps instead of cutting), the rest stays compact (45a scale). Large
   multi-line input (box ≈ 150 px desktop) with model · mode · send at its bottom. 45d (Daniel 17.10. 16:33): NO fixed dock –
   the four start actions stay in the scrolling start view (a dock would nearly duplicate the chat). Low windows and an open
   keyboard shrink the input so enough history stays visible; the input keeps 16 px on touch. */
#aiSide .ai-greet{font-size:clamp(17px,6.4cqi,21px);line-height:1.25;font-weight:560;overflow-wrap:anywhere}
#aiSide .ai-greet-name{font-weight:560}
#aiSide .ai-composer{padding:8px 10px 6px}
#aiSide .ai-composer-box{gap:6px;padding:10px 8px 8px 12px;border-radius:14px}
/* TRA-1534 Paket 48 (Daniel 17.10.): the empty input is two text lines high (2 × line-height + 5 px padding; was 88 px ≈ 4 lines
   on desktop) – it still grows with multi-line input (ai.js grow() up to max-height). em fallback = 2 × 1.45 for browsers without lh. */
#aiSide .ai-composer-main .ai-prompt{min-height:calc(2.9em + 5px);min-height:calc(2lh + 5px);max-height:min(160px,30vh);font-size:14px;line-height:1.45}
@media (pointer:coarse),(max-width:720px){
 #aiSide .ai-composer-main .ai-prompt{font-size:16px}
}
@media (max-width:720px){
 #aiSide .ai-greet{font-size:clamp(18px,6.4cqi,21px)}
 #aiSide .ai-composer{padding:6px 10px calc(6px + env(safe-area-inset-bottom))}
 #aiSide .ai-composer-main .ai-prompt{max-height:min(140px,24vh)}
}
/* low windows / phone keyboard open: smaller input so enough history stays visible */
@media (max-height:640px){#aiSide .ai-composer-main .ai-prompt{min-height:min(48px,calc(2.9em + 5px));min-height:min(48px,calc(2lh + 5px));max-height:96px}}
@media (max-height:480px){#aiSide .ai-composer-main .ai-prompt{min-height:40px;max-height:72px}}
#aiSide.is-kbd .ai-composer-main .ai-prompt{min-height:44px;max-height:96px}
/* TRA-1523 Paket 42: sources under AI answers + the one start-view news line (dist/ai-sources.js) */
.ai-cite{font-size:.68em;line-height:0;vertical-align:super;margin-left:1px;white-space:nowrap;color:var(--muted,#7f8893)}
.ai-cite-n{cursor:pointer;text-decoration:none;padding:0 2px;border-radius:3px;color:var(--gold,#d4b16a);font-weight:600;font-variant-numeric:tabular-nums}
.ai-cite-n:hover{color:var(--gold-2,#e8cb8e);background:#d4b16a17}.ai-cite-n:focus-visible{outline:1px solid var(--gold,#d4b16a);outline-offset:1px}
details.ai-sources{margin:6px 0 2px;border:0;padding:0;background:none;border-radius:0;max-width:100%}
.ai-sources>summary{display:inline-flex;align-items:center;gap:5px;cursor:pointer;list-style:none;color:var(--muted,#7f8893);font-size:var(--fs-sm,12px);padding:2px 0;user-select:none}
.ai-sources>summary::-webkit-details-marker{display:none}
.ai-sources>summary::before{content:'';width:0;height:0;border-left:4px solid currentColor;border-top:3.5px solid transparent;border-bottom:3.5px solid transparent;transition:transform .15s}
.ai-sources[open]>summary::before{transform:rotate(90deg)}.ai-sources>summary:hover{color:var(--text-2,#aab2bd)}
:is(.ai-sources,.ai-nlead) .ai-src-list{margin:6px 0 0;padding:8px 10px;list-style:none;display:grid;gap:8px;border:1px solid #ffffff12;border-radius:10px;background:#ffffff05}
:is(.ai-sources,.ai-nlead) .ai-src{display:grid;grid-template-columns:auto 1fr;column-gap:7px;min-width:0;font-size:var(--fs-sm,12px);line-height:1.4}
:is(.ai-sources,.ai-nlead) div.ai-src{grid-template-columns:1fr}
:is(.ai-sources,.ai-nlead) .ai-src-n{color:var(--faint,#5c6570);font-size:var(--fs-xs,11px);font-variant-numeric:tabular-nums;padding-top:1px}
:is(.ai-sources,.ai-nlead) .ai-src-body{min-width:0}:is(.ai-sources,.ai-nlead) .ai-src-line{margin:0;text-transform:none;letter-spacing:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px}
:is(.ai-sources,.ai-nlead) .ai-src-title{color:var(--text,#e8ebef);text-decoration:none;border-bottom:1px dotted #ffffff40;overflow-wrap:anywhere}
:is(.ai-sources,.ai-nlead) a.ai-src-title:hover{color:var(--gold-2,#e8cb8e);border-bottom-color:var(--gold-line,#d4b16a4d)}
:is(.ai-sources,.ai-nlead) .ai-src-tag{font-size:10.5px;line-height:1.3;padding:0 5px;border:1px solid #ffffff1a;border-radius:6px;color:var(--muted,#7f8893);white-space:nowrap}
:is(.ai-sources,.ai-nlead) .ai-src-meta{margin:1px 0 0;color:var(--muted,#7f8893);font-size:var(--fs-xs,11px);overflow-wrap:anywhere}
:is(.ai-sources,.ai-nlead) .ai-src-more{margin-top:2px}:is(.ai-sources,.ai-nlead) .ai-src-more>summary{cursor:pointer;color:var(--faint,#5c6570);font-size:var(--fs-xs,11px);list-style:none;width:max-content}
:is(.ai-sources,.ai-nlead) .ai-src-more>summary::-webkit-details-marker{display:none}:is(.ai-sources,.ai-nlead) .ai-src-more>summary:hover{color:var(--text-2,#aab2bd)}
:is(.ai-sources,.ai-nlead) .ai-src-detail{margin-top:3px;padding-left:8px;border-left:1px solid #ffffff14;display:grid;gap:2px}
:is(.ai-sources,.ai-nlead) .ai-src-row{margin:0;color:var(--text-2,#aab2bd);font-size:var(--fs-xs,11px);overflow-wrap:anywhere}:is(.ai-sources,.ai-nlead) .ai-src-k{color:var(--faint,#5c6570)}
:is(.ai-sources,.ai-nlead) .ai-src-url{color:var(--gold,#d4b16a);text-decoration:underline;text-underline-offset:2px}:is(.ai-sources,.ai-nlead) .ai-src-quiet{color:var(--faint,#5c6570)}
:is(.ai-sources,.ai-nlead) .ai-src.is-flash{animation:aiSrcFlash 1.2s ease-out}
@keyframes aiSrcFlash{from{background:#d4b16a26}to{background:transparent}}
.ai-src-note{margin:4px 0 0;font-size:var(--fs-xs,11px);color:var(--muted,#7f8893)}
/* start view: one news line */
.ai-nlead{min-width:0}
.ai-nlead-text{margin:0;color:#f3f1ec;font-size:15px;line-height:1.45}
.ai-nlead-day{color:var(--muted,#7f8893)}
.ai-nlead-impact{margin:3px 0 0;color:#9da3ac;font-size:14px;line-height:1.45}
.ai-nlead-toggle{all:unset;cursor:pointer;margin-top:4px;display:inline-block;color:var(--muted,#7f8893);font-size:var(--fs-sm,12px);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#ffffff30}
.ai-nlead-toggle:hover,.ai-nlead-toggle[aria-expanded=true]{color:var(--gold-2,#e8cb8e)}.ai-nlead-toggle:focus-visible{outline:1px solid var(--gold,#d4b16a);outline-offset:2px}
.ai-nlead-src{margin-top:6px;padding:8px 10px;border:1px solid #ffffff12;border-radius:10px;background:#ffffff05}.ai-nlead-src[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.ai-sources>summary::before{transition:none}.ai-src.is-flash{animation:none}}
/* TRA-1530 I: the legend X stays visible in every indicator row – also when Vela hides the row's controls inline (row not
   highlighted after the eye, a mouseleave or on touch without hover), so a hidden instance can be removed by touch, too */
.bp-legend-ctl>.bp-ind-x{display:inline-flex!important}
/* TRA-1530 S: presentation view – quiet on/off item in the account menu, neutral account marking in the broker dialog */
.account-presentation{justify-content:space-between;gap:12px}.account-presentation[hidden]{display:none}
.account-presentation-state{font-size:var(--fs-xs);font-weight:600;color:var(--muted);padding:1px 8px;border:1px solid var(--line);border-radius:var(--r-pill)}
.account-presentation[data-on=true] .account-presentation-state{color:var(--gold);border-color:var(--gold-line)}
.broker-env.neutral{background:#ffffff10;color:var(--muted)}
/* TRA-1531 S: presentation view – „LIVE“ in the broker dialog like the dock badge (green, dashed frame); display only */
.broker-env.live.is-presentation{background:#3ecf8e0d;color:#5fe0a6;border:1px dashed #3ecf8e8f;padding:1px 6px;letter-spacing:.1em}
/* TRA-1547 „V7 & Pro empfehlen“: account-menu entry (wraps on small screens, never wider than the menu) + reward popup */
.account-menu{max-width:min(340px,calc(100vw - 16px))}
button.account-menu-item.account-menu-referral{white-space:normal;line-height:1.3;padding:7px 10px;gap:9px;align-items:flex-start;text-wrap:balance}
.account-menu-referral::before{content:"";flex:none;width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px #d4b16a99}
.rf2-root{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:16px}
.rf2-root[hidden]{display:none}
.rf2-backdrop{position:absolute;inset:0;background:#020306c7;backdrop-filter:blur(4px);opacity:0;transition:opacity .2s var(--ease)}
.rf2-dialog{position:relative;width:min(440px,100%);max-height:calc(100dvh - 32px);overflow:auto;display:grid;justify-items:center;gap:10px;padding:26px 26px 18px;border-radius:20px;border:1px solid var(--gold-line);
 background:radial-gradient(420px 220px at 50% -40px,#d4b16a26,transparent 70%),linear-gradient(180deg,#14181d,#0c0f13 70%);box-shadow:0 30px 80px -20px #000c,0 0 0 1px #ffffff08 inset;color:var(--text);text-align:center;
 opacity:0;transform:translateY(10px) scale(.98);transition:opacity .22s var(--ease),transform .22s var(--ease)}
.rf2-root.is-open .rf2-backdrop{opacity:1}.rf2-root.is-open .rf2-dialog{opacity:1;transform:none}
.rf2-dialog::before{content:"";position:absolute;left:12%;right:12%;top:0;height:1px;background:linear-gradient(90deg,transparent,#e8cb8e,transparent);opacity:.7}
.rf2-close{position:absolute;top:12px;right:12px;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--text-2);cursor:pointer}
.rf2-close svg{width:18px;height:18px}.rf2-close:hover,.rf2-close:focus-visible{background:var(--hover);color:var(--text);outline:none}
.rf2-art{width:118px;height:104px;margin-top:2px;display:grid;place-items:center}
.rf2-gift{width:118px;height:118px;overflow:visible;filter:drop-shadow(0 10px 18px #0009)}
.rf2-orbit{transform-origin:60px 64px;animation:rf2-orbit 9s linear infinite}.rf2-orbit-b{animation-duration:14s;animation-direction:reverse}
@keyframes rf2-orbit{to{transform:rotate(360deg)}}
.rf2-title{margin:2px 0 0;font-size:clamp(19px,4.6vw,22px);font-weight:650;letter-spacing:-.01em;line-height:1.25;color:var(--text)}
.rf2-lead{margin:0;max-width:34ch;color:var(--text-2);font-size:var(--fs-lg);line-height:1.45}
.rf2-link{width:100%;display:flex;align-items:center;gap:8px;margin-top:8px;padding:6px 6px 6px 14px;border-radius:14px;background:#090b0e;border:1px solid var(--line-2);box-shadow:0 0 0 4px #d4b16a0a}
.rf2-link.is-skeleton{height:52px;background:linear-gradient(90deg,#0f1317,#161b21,#0f1317);background-size:200% 100%;animation:rf2-shimmer 1.4s linear infinite}
@keyframes rf2-shimmer{to{background-position:-200% 0}}
.rf2-link-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;color:var(--gold-2);font-weight:550;font-variant-numeric:tabular-nums;direction:ltr}
.rf2-link-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.rf2-copy{flex:none;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border:0;border-radius:10px;background:var(--gold);color:#16130b;font:inherit;font-weight:650;cursor:pointer;box-shadow:inset 0 1px 0 #ffffff55,0 6px 18px -8px #d4b16a}
.rf2-copy svg{width:18px;height:18px}.rf2-copy:hover{background:var(--gold-2)}.rf2-copy:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}
.rf2-copy.is-done{background:#2fae7a;color:#04140c;box-shadow:none}
.rf2-facts{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.rf2-facts li{padding:4px 10px;border-radius:999px;border:1px solid var(--line-2);background:#0e1216;color:var(--text-2);font-size:var(--fs-sm)}
.rf2-terms{width:100%;text-align:left;font-size:var(--fs-sm);color:#8a93a0}
.rf2-terms summary{cursor:pointer;width:max-content;margin:2px auto 0;padding:4px 8px;border-radius:6px;color:#8a93a0;list-style:none}
.rf2-terms summary::-webkit-details-marker{display:none}.rf2-terms summary::after{content:" ▾"}.rf2-terms[open] summary::after{content:" ▴"}
.rf2-terms summary:hover,.rf2-terms summary:focus-visible{color:var(--text-2);background:var(--hover);outline:none}
.rf2-terms-body{display:grid;gap:6px;margin-top:6px;padding:10px 12px;border-radius:10px;background:#0b0e12;border:1px solid var(--line)}
.rf2-terms-body p{margin:0;line-height:1.45}.rf2-terms-body a{color:var(--gold-2)}
.rf2-track{display:inline-flex;align-items:center;gap:8px;margin-top:4px;padding:10px 14px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-weight:600;font-size:var(--fs-lg);cursor:pointer}
.rf2-track svg{width:18px;height:18px;transition:transform .18s var(--ease)}.rf2-track:hover svg{transform:translateX(3px)}
.rf2-track:hover,.rf2-track:focus-visible{background:var(--hover);outline:none}
.rf2-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:420px){.rf2-dialog{padding:22px 16px 14px;border-radius:18px}.rf2-link{flex-wrap:wrap;padding:10px}.rf2-link-text{flex-basis:100%;text-align:center}.rf2-copy{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.rf2-orbit,.rf2-link.is-skeleton{animation:none}.rf2-dialog,.rf2-backdrop{transition:none}}
.partner-rail{position:relative}.partner-rail .partner-badge{top:-3px;right:-4px}
.rf2-dialog,.rf2-dialog *{box-sizing:border-box}
.rf2-lead{max-width:36ch;text-wrap:balance}
.rf2-art{width:132px;height:112px}.rf2-gift{width:132px;height:132px}
.rf2-dialog{grid-template-columns:minmax(0,1fr)}
/* TRA-1549 Paket 57: broker access (IB attribution + first deposit) – status per account, steps, check, Pepperstone mail draft */
.broker-access{display:flex;flex-direction:column;gap:8px;padding:10px 14px 12px 42px;border-bottom:1px solid var(--line);background:#0d1115}
.broker-access .ba-head{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ba-chip{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:600;letter-spacing:.03em;border:1px solid var(--line-3);color:var(--text-2)}
.ba-chip.ba-freigeschaltet{color:var(--green);border-color:#1fd1a159;background:#1fd1a112}
.ba-chip.ba-zuordnung_offen,.ba-chip.ba-einzahlung_fehlt{color:var(--gold-2);border-color:var(--gold-line);background:var(--gold-soft)}
.ba-chip.ba-pruefung_ausstehend{color:var(--blue);border-color:#7aa7d959;background:#7aa7d912}
.ba-chip.ba-protected{color:var(--muted)}
.broker-access p{margin:0;font-size:var(--fs-md);line-height:1.5;color:var(--text-2)}
.broker-access .ba-note,.broker-access .ba-meta{font-size:var(--fs-sm);color:var(--muted);line-height:1.45}
.ba-steps{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;list-style:none;counter-reset:ba}
.ba-step{position:relative;display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--muted);counter-increment:ba}
.ba-step::before{content:counter(ba);display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--line-3);font-size:10px;font-weight:700;color:var(--muted)}
.ba-step.ok{color:var(--text)}.ba-step.ok::before{content:'✓';border-color:#1fd1a180;color:var(--green);background:#1fd1a114}
.ba-step.warn{color:var(--gold-2)}.ba-step.warn::before{content:'!';border-color:var(--gold-line);color:var(--gold-2)}
.ba-step.wait{color:var(--blue)}.ba-step.wait::before{border-color:#7aa7d980;color:var(--blue)}
.ba-check,.ba-copy{align-self:flex-start;height:var(--ctl);padding:0 12px;border-radius:var(--r-sm);border:1px solid var(--gold-line);background:transparent;color:var(--gold-2);font-size:var(--fs-md);font-weight:600;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.ba-check:hover:not(:disabled),.ba-copy:hover:not(:disabled){background:var(--gold-soft);color:var(--text)}
.ba-check:disabled,.ba-copy:disabled{opacity:.5;cursor:not-allowed}
.ba-mail{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface)}
.ba-mail strong{font-size:var(--fs-md);color:var(--text)}
.ba-draft{width:100%;box-sizing:border-box;resize:vertical;min-height:120px;padding:8px 10px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--bg);color:var(--text-2);font:12px/1.5 var(--font)}
.broker-access-flow{display:flex;flex-wrap:wrap;gap:6px 14px;margin:4px 0 2px;padding:0;list-style:none;counter-reset:baf;font-size:var(--fs-sm);color:#ecd9b0}
.broker-access-flow li{display:flex;align-items:center;gap:6px;counter-increment:baf}
.broker-access-flow li::before{content:counter(baf);display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--gold-line);font-size:10px;font-weight:700;color:var(--gold-2)}
@media (max-width:720px){.broker-access{padding:10px 12px 12px}.ba-check,.ba-copy{width:100%}.broker-access-flow{flex-direction:column}}

/* --- TRA-1532 V2 AI: locked Traden AI panel in the public preview (/preview/?embed=1&markt=gold&ai=locked) ------------
   Chart left, the original panel right (fixed ~360 px, no resizer; `.preview-mode main` alone overrode main.ai-open → the panel had
   no column). Phones (≤ 760 px iframe width): the original Chart/PRO segmented control as „Chart“ / „Traden AI“ tabs. */
.preview-mode main.ai-open{grid-template-columns:minmax(0,1fr) clamp(300px,30vw,360px)}
.pv-ai-locked .ai-resizer{display:none}
.pv-tabs{display:none}
#aiSide .ai-lock-note{display:flex;align-items:center;justify-content:center;gap:6px;margin:6px 4px 0;font-size:12px;line-height:1.35;color:#c9c3b6}
#aiSide .ai-lock-note svg{width:13px;height:13px;flex:none;color:var(--gold-2)}
#aiSide .ai-lock{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:0 0 8px;padding:10px 8px 10px 12px;border:1px solid var(--gold-line,#d4b16a55);border-radius:12px;background:linear-gradient(180deg,#d4b16a10,#ffffff04),var(--surface);box-shadow:0 8px 24px -14px #000c}
#aiSide .ai-lock[hidden]{display:none}
#aiSide .ai-lock strong{display:block;font-size:13.5px;font-weight:650;color:var(--text)}
#aiSide .ai-lock p{margin:3px 0 0;font-size:12.5px;line-height:1.45;color:var(--text-2)}
#aiSide .ai-lock-row{grid-column:1/-1;display:flex;gap:8px}
#aiSide .ai-lock-row:empty{display:none}
/* button look of reference 01: dark graphite, fine gold contour, warm gold text */
#aiSide .ai-lock-btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 14px;border:1px solid #d4b16a73;border-radius:8px;background:linear-gradient(180deg,#25231f,#191816);color:#e9c987;font-weight:600;box-shadow:inset 0 1px 0 #ffffff0d,0 1px 2px #0007}
#aiSide .ai-lock-btn:hover{border-color:#d4b16ab3;color:#f3d79c;background:linear-gradient(180deg,#2c2924,#1e1c19)}
#aiSide .ai-lock-btn:active{transform:translateY(1px);box-shadow:inset 0 1px 2px #0008}
#aiSide .ai-lock-btn:focus-visible{box-shadow:var(--focus)}
/* narrower chart next to the panel: the OHLC line gives way to market name, TF and price (like reference 04) */
@media(max-width:1300px){.pv-ai-locked .market-heading .ohlc{display:none}}
#aiSide .ai-lock-close{width:26px;height:26px;align-self:start}
#aiSide .ai-examples{margin-top:12px}
@media(max-width:760px){
 .pv-ai-locked .terminal{grid-template-rows:44px minmax(0,1fr) 28px}
 .pv-ai-locked .pv-tabs{display:flex;align-items:center;justify-content:center;padding:0 8px;border-bottom:1px solid var(--line);background:var(--bg-bar)}
 .pv-ai-locked .pv-tabs .view-switch{width:100%;max-width:420px}
 .pv-ai-locked .pv-tabs .pv-tab{flex:1;justify-content:center;height:34px}
 .pv-ai-locked main,.preview-mode.pv-ai-locked main.ai-open{grid-template-columns:minmax(0,1fr);position:relative}
 .pv-ai-locked .ai-side{position:absolute;inset:0;height:auto;z-index:30;border-left:0}
 .pv-ai-locked[data-pv-tab=chart] .ai-side{display:none}
}
/* --- TRA-1579 header on phones: measured steps (dist/header-fit.js), cumulative; nothing clipped, nothing scaled globally --- */
.base-login svg{display:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.topbar.hf-tight{gap:6px;padding-inline:8px}.topbar.hf-tight .header-right{gap:5px}.topbar.hf-tight .base-account{gap:6px}.topbar.hf-tight .base-account .btn{padding:0 10px}
body[data-base=guest] .topbar.hf-ws #workspaceBar{display:none}
.topbar.hf-mark>.brand{flex:none;min-width:0;padding-inline:0}.topbar.hf-mark .brand-logo{width:30px;height:16px;max-width:none;max-height:none;object-fit:cover;object-position:0 50%}
.topbar.hf-login .base-login{width:32px;padding:0;justify-content:center}.topbar.hf-login .base-login .long{display:none}.topbar.hf-login .base-login svg{display:block}
.topbar.hf-switch .view-switch button{padding:0 7px;font-size:var(--fs-sm)}.topbar.hf-switch #viewPro svg{display:none}
.topbar.hf-brand>.brand{display:none}
.topbar.hf-min{gap:4px;padding-inline:6px}.topbar.hf-min .header-right,.topbar.hf-min .base-account{gap:4px}.topbar.hf-min .base-account .base-register{padding:0 8px}.topbar.hf-min .view-switch button{padding:0 6px}
.topbar.hf-reg .base-account .base-register{padding:0 6px;font-size:var(--fs-sm);letter-spacing:0}
.base-account .btn{white-space:nowrap;flex:none}
/* height: .terminal already uses 100dvh (follows the browser bars); the viewport meta has no viewport-fit=cover, so the
   browser keeps the page inside the safe area – the guide sheet below adds env() insets for standalone/PWA use */

/* --- TRA-1579 guest quick guide (dist/guest-tour.js): compact coachmark in the terminal look --- */
.gt{position:fixed;z-index:26;width:min(330px,calc(100vw - 24px));box-sizing:border-box;padding:12px 14px 10px;border-radius:var(--r-lg);border:1px solid var(--line-2);
 background:linear-gradient(180deg,#171b21f5,#101317f5);box-shadow:var(--shadow-pop),inset 0 1px 0 #d4b16a24;color:var(--text);font-size:var(--fs-md);
 opacity:0;transform:translateY(6px);transition:opacity .22s var(--ease),transform .22s var(--ease)}
.gt::before{content:"";position:absolute;left:14px;right:14px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,#d4b16a99,transparent)}
.gt.gt-in{opacity:1;transform:none}
.gt[hidden]{display:none}
.gt-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.gt-count{font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;color:var(--gold);white-space:nowrap}
.gt-progress{display:flex;gap:4px;flex:1}
.gt-progress i{flex:1;height:3px;border-radius:2px;background:#ffffff14;transition:background .3s var(--ease)}
.gt-progress i.on{background:linear-gradient(90deg,#a8843f,var(--gold))}
.gt-x{display:grid;place-items:center;width:28px;height:28px;margin:-4px -6px -4px 0;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-2);cursor:pointer}
.gt-x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.gt-x:hover{background:var(--hover);color:#fff}
.gt-title{margin:0 0 4px;font-size:var(--fs-lg);font-weight:650;color:#fff;letter-spacing:.005em}
.gt .gt-title:focus,.gt .gt-title:focus-visible{outline:none;box-shadow:none} /* focused only so screen readers announce the step; the buttons carry the visible focus */
.gt-text{margin:0 0 10px;font-size:var(--fs-sm);line-height:1.5;color:var(--text-2)}
.gt-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:8px}
.gt-act{display:inline-flex;align-items:center;gap:6px}
.gt-act svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.gt[data-step=v7] .gt-act svg{fill:currentColor;stroke:none}
.gt-act:disabled{opacity:.6;cursor:default}
.gt-link{border:0;background:transparent;padding:4px 0;color:var(--text-2);font:inherit;font-size:var(--fs-sm);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#ffffff40;cursor:pointer}
.gt-link:hover{color:#fff}
.gt-nav{display:flex;align-items:center;gap:4px;padding-top:8px;border-top:1px solid var(--line)}
.gt-space{flex:1}
.gt-nav button{min-height:30px;padding:0 10px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-2);font:inherit;font-size:var(--fs-sm);font-weight:550;cursor:pointer}
.gt-nav button:hover{background:var(--hover);color:#fff}
.gt-nav .gt-skip{padding-left:0;color:var(--muted)}
.gt-nav .gt-next{background:var(--surface-3);color:#fff;box-shadow:inset 0 0 0 1px var(--line-2)}
.gt-nav .gt-next:hover{box-shadow:inset 0 0 0 1px var(--gold-line)}
.gt button:focus-visible,.gt-link:focus-visible{outline:none;box-shadow:var(--focus)}
.gt-nav button[hidden]{display:none}
/* the control the step talks about: soft gold ring */
.gt-target{position:relative;z-index:1;box-shadow:0 0 0 2px #d4b16acc,0 0 14px 2px #d4b16a59!important;border-radius:var(--r-sm);animation:gt-pulse 2.4s var(--ease) infinite}
@keyframes gt-pulse{50%{box-shadow:0 0 0 2px #d4b16a80,0 0 4px 0 #d4b16a33}}
/* phones: a sheet above the footer, clear of the home indicator */
.gt.gt-sheet{left:8px;right:44px;width:auto;bottom:calc(33px + env(safe-area-inset-bottom));top:auto!important;max-height:calc(100dvh - 120px);overflow:auto}
@media (max-height:480px){.gt.gt-sheet{left:auto;right:calc(48px + env(safe-area-inset-right));width:min(380px,calc(100vw - 64px));bottom:calc(30px + env(safe-area-inset-bottom));max-height:calc(100dvh - 84px);padding:10px 12px 8px}.gt-text{margin-bottom:6px}.gt-head{margin-bottom:5px}.gt-actions{margin-bottom:6px}.gt-nav{padding-top:6px}}
.tour-rail{margin-top:auto}
.tour-rail svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.tour-rail[aria-expanded=true]{background:var(--gold-soft);color:var(--gold)}
.embed .tour-rail{display:none}
@media (prefers-reduced-motion:reduce){.gt{transition:none;transform:none}.gt-target{animation:none}.gt-progress i{transition:none}}
