:root{--bg-dark:#0E1120;--bg-navy:#190C40;--bg-card:#252B4A;--bg-surface:#F2F2F7;--accent-purple:#27174E;--green:#2ECC71;--green-bright:#0EDF03;--red:#E74C3C;--orange:#F39C12;--blue:#4A9EFF;--grey-muted:#B8BED4;--grey-light:#D9D9D9;--grey-dark:#555555;--purple-mid:#A78BFA;--teal:#1ABC9C;--blue-light:#7EC8FF;--cyan:#00BCD4;--amber:#FFB74D;--white:#FFFFFF;--color-text-primary:var(--white);--color-text-secondary:var(--grey-muted);--color-text-tertiary:rgba(255,255,255,0.55);--color-text-inverse:var(--accent-purple);--color-bg-app:#0A0D14;--color-bg-base:var(--bg-dark);--color-bg-card:var(--bg-card);--color-bg-elevated:var(--bg-surface);--color-bg-overlay:var(--accent-purple);--color-bg-header:var(--accent-purple);--color-bg-header-end:var(--bg-dark);--color-header-text:var(--white);--color-header-text-muted:rgba(255,255,255,.5);--color-header-text-bright:rgba(255,255,255,.75);--color-header-border:rgba(74,158,255,.12);--color-header-hover:rgba(255,255,255,.08);--color-header-active:rgba(74,158,255,.15);--color-header-divider:rgba(255,255,255,.25);--color-border-subtle:rgba(255,255,255,.06);--color-border-default:rgba(255,255,255,.1);--color-border-accent:var(--accent-purple);--color-status-success:var(--green);--color-status-danger:var(--red);--color-status-warning:var(--orange);--color-status-info:var(--blue);--color-interactive-hover:rgba(255,255,255,.06);--color-interactive-active:rgba(255,255,255,.08);--color-pill-bg:rgba(74,158,255,.12);--color-pill-bg-hover:rgba(74,158,255,.20);--color-status-success-subtle:rgba(46,204,113,.15);--color-status-danger-subtle:rgba(231,76,60,.15);--color-status-danger-subtle-hover:rgba(231,76,60,.25);--color-status-info-subtle:rgba(74,158,255,.2);--color-status-ai-subtle:rgba(14,223,3,.15);--color-interactive-subtle:rgba(255,255,255,.04);--color-bg-input:rgba(255,255,255,.07);--color-bg-avatar-user:rgba(39,23,78,.8);--color-border-focus:rgba(255,255,255,.2);--color-bg-scrim:rgba(10,13,20,.92);--fs-3xs:8px;--fs-2xs:10px;--fs-xxs:12px;--fs-xs:9px;--fs-sm:11px;--fs-base:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:22px;--fs-2xl:24px;--fs-3xl:28px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--lh-tight:1.1;--lh-normal:1.5;--sp-2xs:4px;--sp-xs:8px;--sp-sm:16px;--sp-md:24px;--sp-lg:32px;--sp-xl:40px;--r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-full:9999px;--shadow-sm:0 2px 8px rgba(0,0,0,.25);--shadow-md:0 8px 28px rgba(0,0,0,.5);--shadow-lg:0 0 80px rgba(0,0,0,.6);--dur-fast:.12s;--dur-normal:.15s;--dur-slow:.3s;--ease-default:cubic-bezier(.4,0,.2,1);--titlebar-h:0px;--header-h:56px;--ticker-h:36px;--sidebar-chat-w:280px;--sidebar-nav-w:240px;--app-max-w:clamp(1280px,96vw,1860px);--chart-row-h:clamp(220px,26vh,320px);--chart-min-h:220px;--chart-max-h:320px;--mobile-top-bar-h:56px;--mobile-top-bar-clearance:36px;--mobile-tab-bar-h:60px;--mobile-safe-area-bottom:env(safe-area-inset-bottom,16px);--mobile-touch-target:44px;--mobile-fab-size:56px;--mobile-fs-title:17px;--mobile-fs-headline:15px;--mobile-fs-body:15px;--mobile-fs-caption:13px;--mobile-fs-footnote:11px;--mobile-r-card:14px;--mobile-r-button:12px;--mobile-r-sheet:20px;--mobile-dur-sheet:0.35s;--mobile-ease-out:cubic-bezier(0.0,0.0,0.2,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only,body{overflow:hidden}body{font-family:Roboto,system-ui,sans-serif;background:var(--color-bg-app);color:var(--color-text-primary);height:100vh;font-size:var(--fs-md)}.desktop-titlebar{height:var(--titlebar-h);background:var(--color-bg-elevated);display:flex;align-items:center;padding:0 var(--r-md);-webkit-app-region:drag;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden}.desktop-titlebar.hidden{display:none}.titlebar-traffic-lights{display:flex;gap:var(--sp-xs);align-items:center;-webkit-app-region:no-drag}.titlebar-traffic-lights span{width:12px;height:12px;border-radius:var(--r-full);display:inline-block;cursor:pointer}.titlebar-traffic-lights .tl-close{background:#E8534A}.titlebar-traffic-lights .tl-min{background:#F0A030}.titlebar-traffic-lights .tl-max{background:#3DDC84}.titlebar-title{flex:1;text-align:center;font-size:var(--fs-xxs);font-weight:var(--fw-medium);color:var(--color-text-inverse);letter-spacing:-.01em}.titlebar-win-controls{display:none;-webkit-app-region:no-drag;gap:var(--sp-2xs)}.titlebar-win-controls button{width:46px;height:30px;border:none;background:transparent;color:var(--color-text-inverse);cursor:pointer;font-size:var(--fs-md);display:flex;align-items:center;justify-content:center}.titlebar-win-controls button:hover{background:var(--color-header-hover)}.titlebar-win-controls .win-close:hover{background:var(--color-status-danger);color:var(--color-text-primary)}.app-shell{display:grid;grid-template-rows:var(--header-h) var(--ticker-h) 1fr;grid-template-areas:"header  header" "ticker  ticker" "sidebar main";height:calc(100vh - var(--titlebar-h));max-width:var(--app-max-w);margin:0 auto;background:var(--color-bg-base);box-shadow:var(--shadow-lg);overflow:hidden;transition:grid-template-columns var(--dur-slow) var(--ease-default)}.app-shell,.app-shell[data-sidebar=hidden]{grid-template-columns:0 1fr}.app-shell[data-sidebar=chat]{grid-template-columns:var(--sidebar-chat-w) 1fr}.app-shell[data-sidebar=nav]{grid-template-columns:var(--sidebar-nav-w) 1fr}.sidebar-reopen-btn{display:none;position:fixed;left:0;bottom:40%;width:36px;height:64px;background:var(--color-bg-card);border:1px solid var(--color-border-default);border-left:none;border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--color-text-secondary);cursor:pointer;align-items:center;justify-content:center;z-index:50;flex-shrink:0;transition:color var(--dur-normal)}.sidebar-reopen-btn:hover{color:var(--color-text-primary)}.app-shell[data-sidebar=hidden] .sidebar-reopen-btn,.header{display:flex}.header{grid-area:header;background:linear-gradient(135deg,var(--color-bg-header) 0,var(--bg-navy) 50%,var(--color-bg-header-end) 100%);align-items:center;padding:0 var(--sp-md);border-bottom:1px solid var(--color-header-border);gap:var(--sp-md)}.header-logo{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--color-header-text);letter-spacing:-.3px;flex-shrink:0}.header-nav{display:flex;align-items:center;gap:var(--sp-2xs);flex:1;overflow-x:auto;scrollbar-width:none}.header-nav::-webkit-scrollbar{display:none}.header-actions{gap:var(--sp-xs);flex-shrink:0}.header-actions,.icon-btn{display:flex;align-items:center}.icon-btn{width:40px;height:40px;border-radius:var(--r-sm);background:transparent;border:none;cursor:pointer;justify-content:center;color:var(--color-header-text-muted);transition:background var(--dur-normal);position:relative}.icon-btn:hover{background:var(--color-header-hover)}.icon-btn:focus-visible{outline:2px solid var(--color-status-info);outline-offset:2px}.icon-btn svg{width:20px;height:20px;flex-shrink:0}.icon-btn[data-tooltip]:hover:after,.sidebar-mode-btn[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;bottom:-28px;left:50%;transform:translateX(-50%);background:var(--bg-card);color:var(--color-text-primary);font-size:var(--fs-2xs);padding:3px 7px;border-radius:var(--r-xs);white-space:nowrap;pointer-events:none;z-index:99;border:1px solid var(--color-border-default);box-shadow:var(--shadow-sm)}.header-divider{width:2px;height:var(--sp-md);background:var(--color-header-divider);margin:0 var(--sp-2xs);border-radius:1px}.sidebar-mode-btn{width:40px;height:40px;border-radius:var(--r-sm);background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-header-text-muted);transition:background var(--dur-normal),color var(--dur-normal);position:relative}.sidebar-mode-btn:hover{background:var(--color-header-hover)}.sidebar-mode-btn.is-active{background:var(--color-header-active);color:var(--color-header-text)}.sidebar-mode-btn svg{width:18px;height:18px}.user-btn-wrap{position:relative}.user-btn{display:flex;align-items:center;gap:var(--sp-xs);padding:6px var(--fs-2xs);border-radius:var(--r-sm);background:transparent;border:none;cursor:pointer;font-family:inherit;font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--color-header-text-bright);transition:background var(--dur-normal)}.user-btn:hover{background:var(--color-header-hover)}.user-btn:focus-visible{outline:2px solid var(--color-status-info);outline-offset:2px}.user-btn .avatar{width:28px;height:28px;border-radius:var(--r-full);background:var(--color-header-active);color:var(--color-header-text);font-size:var(--fs-2xs);font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;border:1.5px solid var(--color-status-info-subtle)}.user-btn svg{width:14px;height:14px;opacity:.6}.user-menu{display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:210px;background:var(--color-bg-card);border:1px solid var(--color-border-default);border-radius:var(--r-md);padding:var(--sp-2xs) 0;box-shadow:var(--shadow-md);overflow:visible;z-index:200;animation:fade-in var(--dur-fast) ease}.user-menu.open{display:block}@keyframes fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.user-menu-item{display:flex;align-items:center;gap:var(--fs-2xs);padding:var(--fs-2xs) var(--sp-sm);font-size:var(--fs-base);color:var(--color-text-secondary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast);background:transparent;border:none;width:100%;font-family:inherit;text-align:left}.user-menu-item:focus-visible,.user-menu-item:hover{background:var(--color-interactive-hover);color:var(--color-text-primary);outline:none}.user-menu-item svg{width:var(--sp-sm);height:var(--sp-sm);flex-shrink:0;opacity:.7}.user-menu-sep{height:1px;background:var(--color-border-subtle);margin:var(--sp-2xs) 0}.user-menu-item.danger,.user-menu-item.danger:hover{color:var(--color-status-danger)}.user-menu-item.danger:hover{background:var(--color-status-danger-subtle)}.user-menu-sub-wrap{position:relative}.user-menu-item.has-sub{justify-content:space-between}.user-menu-item.has-sub .sub-arrow{width:14px;height:14px;opacity:.5;flex-shrink:0;margin-left:auto}.user-sub-menu{display:none;position:absolute;left:calc(-100% - 2px);top:-4px;min-width:230px;background:var(--color-bg-card);border:1px solid var(--color-border-default);border-radius:var(--r-md);padding:var(--sp-2xs) 0;box-shadow:var(--shadow-md);z-index:210;animation:fade-in var(--dur-fast) ease}.user-menu-sub-wrap:focus-within>.user-sub-menu,.user-menu-sub-wrap:hover>.user-sub-menu{display:block}.user-sub-menu .user-menu-item{justify-content:space-between}.user-sub-menu .sub-open-icon{width:14px;height:14px;opacity:.4;flex-shrink:0}.nav-tab{flex-shrink:0;height:36px;padding:0 var(--sp-sm);border-radius:var(--r-sm);display:flex;align-items:center;gap:6px;font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--color-header-text-muted);cursor:pointer;background:transparent;border:none;font-family:inherit;white-space:nowrap;transition:color var(--dur-normal),background var(--dur-normal)}.nav-tab:hover{background:var(--color-header-hover);color:var(--color-header-text)}.nav-tab:focus-visible{outline:2px solid var(--color-status-info);outline-offset:2px}.nav-tab.is-active{background:var(--color-header-active);color:var(--color-header-text);font-weight:var(--fw-bold)}@media (max-width:600px){.user-btn-label{display:none}}@media (max-width:900px){.header{flex-wrap:wrap;height:auto;padding:8px var(--sp-md);row-gap:4px;justify-content:space-between}.header-nav{flex-basis:100%;order:3;justify-content:center;gap:var(--sp-2xs)}.nav-tab{padding:0 10px;font-size:var(--fs-base)}}.ticker-bar{grid-area:ticker;background:var(--color-bg-base);border-bottom:1px solid var(--color-border-subtle);display:flex;align-items:center;overflow:hidden;cursor:pointer;transition:background var(--dur-normal)}.ticker-bar:hover{background:var(--color-interactive-hover)}.ticker-bar[aria-pressed=true] .ticker-scroll{animation-play-state:paused}.ticker-label{flex-shrink:0;height:100%;padding:0 var(--r-md);background:var(--color-bg-overlay);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:1.2px;text-transform:uppercase;color:var(--green-bright)}.ticker-label,.ticker-scroll{display:flex;align-items:center}.ticker-scroll{animation:ticker-move 28s linear infinite}@keyframes ticker-move{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.ticker-item{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:0 20px;border-right:1px solid var(--color-border-subtle);font-size:var(--fs-xxs);height:var(--ticker-h)}.ticker-name{color:var(--color-text-secondary);font-weight:var(--fw-medium)}.ticker-val{color:var(--color-text-primary);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.ticker-chg{font-size:var(--fs-2xs);font-weight:var(--fw-semibold)}.up{color:var(--color-status-success)}.down{color:var(--color-status-danger)}.ticker-item--news{gap:8px}.ticker-news-source{font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.5px}.ticker-news-dot,.ticker-news-source{color:var(--color-text-tertiary);font-size:var(--fs-2xs)}.ticker-item--positive .ticker-news-dot{color:var(--color-status-success)}.ticker-item--negative .ticker-news-dot{color:var(--color-status-danger)}.ticker-news-title{color:var(--color-text-primary);font-weight:var(--fw-medium)}.ticker-news-time{color:var(--color-text-tertiary);font-size:var(--fs-2xs);font-style:italic}.sidebar{grid-area:sidebar;background:var(--color-bg-card);border-right:1px solid var(--color-border-subtle);display:flex;transition:width var(--dur-slow) var(--ease-default);position:relative}.sidebar,.sidebar-panel{flex-direction:column;overflow:hidden}.sidebar-panel{display:none;flex:1;width:100%}.sidebar-panel.is-active{display:flex}.sidebar-header{padding:var(--sp-sm) var(--sp-sm) var(--sp-xs);justify-content:space-between;border-bottom:1px solid var(--color-interactive-active);flex-shrink:0}.sidebar-header,.sidebar-title{display:flex;align-items:center}.sidebar-title{gap:var(--sp-xs);font-size:var(--fs-base);color:var(--color-text-primary)}.ai-badge,.sidebar-title{font-weight:var(--fw-bold)}.ai-badge{font-size:var(--fs-xs);padding:2px 7px;border-radius:var(--r-full);background:var(--color-status-ai-subtle);color:var(--green-bright);letter-spacing:.5px}.sidebar-toggle-btn{width:44px;height:44px;border-radius:var(--r-sm);background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);flex-shrink:0;transition:background var(--dur-normal),color var(--dur-normal)}.sidebar-toggle-btn:hover{background:var(--color-interactive-hover);color:var(--color-text-primary)}.sidebar-messages{flex:1;overflow-y:auto;padding:var(--sp-sm);display:flex;flex-direction:column;gap:var(--sp-xs);scrollbar-width:thin;scrollbar-color:var(--color-border-default) transparent}.sidebar-messages::-webkit-scrollbar{width:3px}.sidebar-messages::-webkit-scrollbar-thumb{background:var(--color-border-default);border-radius:var(--sp-2xs)}.sidebar-input{padding:var(--sp-xs) var(--sp-sm);border-top:1px solid var(--color-interactive-active);flex-shrink:0}.input-row{display:flex;align-items:center;gap:6px;background:var(--color-bg-input);border:1px solid var(--color-border-default);border-radius:var(--r-full);padding:6px var(--fs-2xs);transition:border-color var(--dur-normal)}.input-row:focus-within{border-color:var(--color-status-info)}.chat-quick-actions{display:flex;flex-wrap:wrap;gap:6px;padding:6px var(--sp-sm) var(--sp-2xs);flex-shrink:0}.chat-quick-chip{font-size:var(--fs-2xs);font-weight:var(--fw-medium);padding:5px var(--fs-2xs);border-radius:var(--r-full);border:1px solid var(--color-border-default);background:var(--color-interactive-subtle);color:var(--tab-accent,var(--color-status-info));cursor:pointer;font-family:inherit;transition:background var(--dur-normal),color var(--dur-normal),border-color var(--dur-normal)}.chat-quick-chip:hover{background:var(--color-interactive-active);color:var(--color-text-primary);border-color:var(--color-border-focus)}.input-field{flex:1;background:transparent;border:none;outline:none;font-family:inherit;font-size:var(--fs-sm);color:var(--color-text-primary)}.input-field::-moz-placeholder{color:var(--color-text-secondary)}.input-field::placeholder{color:var(--color-text-secondary)}.send-btn{width:44px;height:44px;border-radius:50%;background:transparent;border:none;cursor:pointer;flex-shrink:0}.send-btn,.send-inner{display:flex;align-items:center;justify-content:center}.send-inner{width:28px;height:28px;border-radius:50%;background:var(--blue);pointer-events:none}.send-inner svg{width:12px;height:12px}.send-btn:hover .send-inner{box-shadow:0 0 0 4px var(--color-pill-bg)}.send-btn:focus-visible{outline:2px solid var(--color-status-info);outline-offset:2px}.msg-date{text-align:center;font-size:var(--fs-xs);color:var(--color-text-secondary);margin:var(--sp-2xs) 0}.msg{display:flex;gap:6px}.msg.user{flex-direction:row-reverse}.msg-bubble{max-width:78%;padding:var(--sp-xs) var(--fs-2xs);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:var(--lh-normal)}.msg.bot .msg-bubble{background:var(--color-interactive-active);color:var(--color-text-primary);border-radius:0 var(--r-md) var(--r-md) var(--r-md)}.msg.user .msg-bubble{background:var(--color-bg-overlay);color:var(--color-text-primary);border-radius:var(--r-md) 0 var(--r-md) var(--r-md)}.msg-avatar{width:22px;height:22px;border-radius:var(--r-full);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-3xs);font-weight:var(--fw-bold)}.msg.bot .msg-avatar{background:var(--color-status-info-subtle);color:var(--color-status-info)}.msg.user .msg-avatar{background:var(--color-bg-avatar-user);color:var(--color-text-primary);margin-top:auto}.msg-time{font-size:var(--fs-xs);margin-top:var(--sp-2xs);text-align:right}.msg-thinking,.msg-time{color:var(--color-text-secondary)}.msg-thinking{display:flex;align-items:center;gap:var(--sp-2xs);padding:var(--sp-xs) var(--fs-2xs);background:var(--color-interactive-hover);border-radius:0 var(--r-md) var(--r-md) var(--r-md);font-size:var(--fs-sm);width:-moz-fit-content;width:fit-content}.dot-pulse{display:flex;gap:3px}.dot-pulse span{width:var(--sp-2xs);height:var(--sp-2xs);border-radius:var(--r-full);background:var(--color-status-info);animation:pulse .9s ease-in-out infinite}.dot-pulse span:nth-child(2){animation-delay:.2s}.dot-pulse span:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.sidebar-nav-panel{padding:0}.sidebar-nav-header{padding:var(--sp-sm) var(--sp-sm) var(--fs-2xs);border-bottom:1px solid var(--color-interactive-active);flex-shrink:0;display:flex;align-items:center;justify-content:space-between}.sidebar-nav-title{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--sp-xs)}.sidebar-nav-title .nav-dot{width:var(--sp-xs);height:var(--sp-xs);border-radius:var(--r-full)}.sidebar-nav-list{flex:1;overflow-y:auto;padding:var(--sp-xs) 0;scrollbar-width:thin;scrollbar-color:var(--color-border-default) transparent}.sidebar-nav-list::-webkit-scrollbar{width:3px}.sidebar-nav-list::-webkit-scrollbar-thumb{background:var(--color-border-default);border-radius:var(--sp-2xs)}.sidebar-nav-item{display:flex;align-items:center;gap:var(--fs-2xs);padding:var(--fs-xs) var(--sp-sm);font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--color-text-secondary);cursor:pointer;border:none;border-left:2px solid transparent;background:transparent;width:100%;text-align:left;font-family:inherit;transition:all var(--dur-normal)}.sidebar-nav-item:focus-visible{outline:2px solid var(--color-status-info);outline-offset:-2px}.sidebar-nav-item:hover{color:var(--color-text-primary);background:var(--color-interactive-subtle)}.sidebar-nav-item.is-active{color:var(--color-text-primary);background:var(--color-interactive-hover);border-left-color:currentColor}.sidebar-nav-item.is-disabled,.sidebar-nav-item:disabled{opacity:.4;cursor:not-allowed}.sidebar-nav-disabled-wrapper{display:block;cursor:not-allowed}.sidebar-nav-disabled-wrapper>.sidebar-nav-item{width:100%;pointer-events:none}.sidebar-nav-sep{height:1px;background:var(--color-border-subtle);margin:6px var(--sp-sm)}.sidebar-nav-group-label{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.8px;color:var(--color-text-secondary);padding:var(--r-md) var(--sp-sm) var(--sp-2xs);opacity:.6}.sidebar-nav-panel[data-tab=assets] .sidebar-nav-title{color:var(--color-status-info)}.sidebar-nav-panel[data-tab=assets] .is-active{color:var(--color-status-info);border-left-color:var(--color-status-info)}.sidebar-nav-panel[data-tab=analytics] .sidebar-nav-title{color:var(--purple-mid)}.sidebar-nav-panel[data-tab=analytics] .is-active{color:var(--purple-mid);border-left-color:var(--purple-mid)}.sidebar-nav-panel[data-tab=transactions] .sidebar-nav-title{color:var(--teal)}.sidebar-nav-panel[data-tab=transactions] .is-active{color:var(--teal);border-left-color:var(--teal)}.sidebar-nav-panel[data-tab=steering] .sidebar-nav-title{color:var(--color-status-warning)}.sidebar-nav-panel[data-tab=steering] .is-active{color:var(--color-status-warning);border-left-color:var(--color-status-warning)}.sidebar-mobile-scrim{display:none;position:fixed;inset:0;background:var(--color-bg-scrim);z-index:90;cursor:pointer;animation:scrim-fade-in var(--dur-fast) var(--ease-default)}@keyframes scrim-fade-in{0%{opacity:0}to{opacity:1}}@media (max-width:900px){.sidebar-mobile-scrim{display:block}}.main-content{grid-area:main;padding:var(--sp-xs);display:flex;flex-direction:column;gap:var(--sp-xs);overflow-y:auto;background:var(--color-bg-base)}.main-content::-webkit-scrollbar{width:4px}.main-content::-webkit-scrollbar-thumb{background:var(--color-border-default);border-radius:var(--sp-2xs)}.kpi-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;flex-shrink:0}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr) 1.1fr;gap:6px;min-width:924px}.kpi-card{background:var(--color-bg-card);border-radius:var(--r-md);padding:var(--fs-2xs) var(--sp-md);display:flex;flex-direction:column;justify-content:center;gap:3px;border:1px solid var(--color-border-subtle);position:relative;overflow:hidden;min-height:64px;cursor:pointer;transition:box-shadow var(--dur-normal),transform var(--dur-normal)}.kpi-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.kpi-card:focus-visible{outline:2px solid var(--color-status-info);outline-offset:2px}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--r-md) var(--r-md) 0 0;background:var(--kpi-accent,var(--color-status-info))}.kpi-label{font-size:var(--fs-sm);color:var(--color-text-secondary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.6px}.kpi-value{font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);font-variant-numeric:tabular-nums;color:var(--kpi-accent,var(--color-text-primary))}.kpi-sub{font-size:var(--fs-sm);color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--sp-2xs)}.kpi-card-wrap{display:flex;flex-direction:column}.kpi-card-wrap>.kpi-card{flex:1}.badge{font-size:var(--fs-xs);font-weight:var(--fw-bold);padding:2px 6px;border-radius:var(--r-full)}.badge.up{background:var(--color-status-success-subtle);color:var(--color-status-success)}.badge.down{background:var(--color-status-danger-subtle);color:var(--color-status-danger)}.risk-score-unit{font-size:var(--fs-md);font-weight:var(--fw-regular)}.risk-label,.risk-score-unit{color:var(--color-text-secondary)}.risk-label{font-size:var(--fs-sm);margin-top:var(--sp-2xs)}.risk-gauge-wrap{display:flex;align-items:center;gap:var(--sp-sm)}.risk-score{font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--color-status-warning);line-height:var(--lh-tight)}.gauge-track{flex:1;height:var(--sp-xs);background:var(--color-interactive-active);overflow:hidden;position:relative}.gauge-fill,.gauge-track{border-radius:var(--r-full)}.gauge-fill{height:100%;background:linear-gradient(90deg,var(--color-status-success),var(--color-status-warning),var(--color-status-danger));width:40%}.gauge-marker{position:absolute;top:-2px;left:40%;width:12px;height:12px;border-radius:var(--r-full);background:var(--color-text-primary);border:2px solid var(--color-status-warning);transform:translateX(-50%)}.desktop-only-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-sm);padding:var(--sp-xl) var(--sp-md);text-align:center;min-height:60vh;color:var(--color-text-secondary)}.desktop-only-fallback-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--color-text-primary);margin:0}.desktop-only-fallback-message{font-size:var(--fs-sm);line-height:var(--lh-normal);max-width:320px;margin:0}.desktop-only-fallback-cta{display:inline-block;padding:10px 20px;background:var(--color-status-info);color:var(--white);border-radius:var(--r-sm);text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-semibold);margin-top:var(--sp-2xs);transition:background var(--dur-normal)}.desktop-only-fallback-cta:hover{background:var(--blue-light)}.desktop-only-fallback-cta:focus-visible{outline:2px solid var(--color-status-info);outline-offset:2px}section[aria-labelledby=kpi-heading]{flex-shrink:0}section[aria-labelledby=charts-heading]{flex:1;min-height:0;max-height:calc(3 * var(--chart-max-h) + 2 * 6px);display:flex;flex-direction:column;overflow:hidden}section[aria-labelledby=charts-heading]>h2{flex-shrink:0}.charts-scroll{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0}.charts-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,minmax(var(--chart-min-h),1fr));height:100%;gap:6px;min-width:1058px}.kpi-scroll::-webkit-scrollbar{height:4px}.charts-scroll::-webkit-scrollbar{width:4px;height:4px}.charts-scroll::-webkit-scrollbar-thumb,.kpi-scroll::-webkit-scrollbar-thumb{background:var(--color-border-default);border-radius:var(--sp-2xs)}.charts-scroll::-webkit-scrollbar-track,.kpi-scroll::-webkit-scrollbar-track{background:transparent}.chart-card{background:var(--color-bg-card);border-radius:var(--r-md);border:1px solid var(--color-border-subtle);overflow:hidden;display:flex;flex-direction:column;min-width:260px;min-height:var(--chart-min-h);max-height:var(--chart-max-h);container-type:size;container-name:chartcard}.chart-card:not(.skeleton){cursor:pointer;transition:box-shadow var(--dur-normal)}.chart-card:not(.skeleton):hover{box-shadow:var(--shadow-sm)}.chart-card:not(.skeleton):focus-visible{outline:2px solid var(--color-status-info);outline-offset:2px}.chart-header{padding:var(--sp-sm) var(--sp-sm) var(--sp-xs);display:flex;align-items:flex-start;justify-content:space-between;flex-shrink:0}.chart-title{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--color-text-primary)}.chart-sub{color:var(--color-text-secondary);margin-top:var(--sp-2xs)}.chart-pill,.chart-sub{font-size:var(--fs-2xs)}.chart-pill{font-weight:var(--fw-semibold);padding:3px var(--fs-2xs);border-radius:var(--r-full);background:var(--color-pill-bg);background:color-mix(in srgb,var(--tab-accent,var(--color-status-info)) 12%,transparent);color:var(--tab-accent,var(--color-status-info));cursor:pointer;border:none;font-family:inherit;flex-shrink:0;transition:background var(--dur-normal)}.chart-pill:hover{background:var(--color-pill-bg-hover);background:color-mix(in srgb,var(--tab-accent,var(--color-status-info)) 20%,transparent)}.chart-pill:focus-visible{outline:2px solid var(--color-status-info);outline-offset:2px}.chart-body{flex:1;padding:0 var(--sp-sm) var(--sp-sm);display:flex;align-items:stretch;min-height:0}.chart-body svg{width:100%;height:100%;display:block}.chart-legend{gap:var(--r-md);padding:0 var(--sp-sm) var(--sp-xs);flex-wrap:wrap;flex-shrink:0}.chart-legend,.legend-item{display:flex;align-items:center}.legend-item{gap:5px;font-size:var(--fs-2xs);color:var(--color-text-secondary)}.legend-dot{width:var(--sp-xs);height:var(--sp-xs);border-radius:var(--r-full);flex-shrink:0}.legend-sq{width:var(--fs-2xs);height:7px;border-radius:var(--sp-2xs);flex-shrink:0}.legend-line{width:var(--sp-sm);height:2px;border-radius:1px;flex-shrink:0}.bar-list{gap:var(--fs-2xs);padding:0 var(--sp-sm) var(--sp-sm)}.bar-list,.bar-row{display:flex;flex-direction:column}.bar-row{gap:var(--sp-2xs)}.bar-top{display:flex;justify-content:space-between;font-size:var(--fs-sm)}.bar-name{color:var(--color-text-secondary)}.bar-track{height:6px;background:var(--color-interactive-active);border-radius:3px;overflow:hidden}.bar-fill{height:100%;border-radius:3px}.bar-section-header{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:0 0 var(--sp-2xs);border-bottom:1px solid var(--color-border-subtle);margin-bottom:var(--sp-2xs)}.donut-layout{display:flex;align-items:center;justify-content:center;gap:var(--sp-md);padding:0 var(--sp-md) var(--sp-sm) var(--sp-sm);flex:1;min-height:0}.donut-layout svg{flex-shrink:0;height:100%;width:auto;max-height:160px}.donut-wrap{max-width:min(160px,calc(100cqw - 140px))}.donut-list{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);min-width:110px;max-width:140px}.donut-item{display:flex;align-items:center;gap:7px;color:var(--color-text-secondary)}.donut-item .di-dot{width:var(--sp-xs);height:var(--sp-xs);border-radius:var(--r-full);flex-shrink:0}.donut-item .di-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.donut-item .di-pct{font-weight:var(--fw-bold);color:var(--color-text-primary);font-variant-numeric:tabular-nums}.chart-eyebrow,.donut-item .di-val{color:var(--color-text-secondary);font-size:var(--fs-2xs)}.chart-eyebrow{font-weight:var(--fw-bold);letter-spacing:1.5px;text-transform:uppercase;line-height:1;margin-bottom:var(--sp-2xs)}.chart-body--bar{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;gap:var(--sp-2xs) 6px}.chart-yaxis{grid-column:1;grid-row:1;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;font-size:var(--fs-2xs);color:var(--color-text-secondary);padding-right:2px;line-height:1}.chart-plot{grid-column:2;grid-row:1;position:relative;border-left:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);min-height:0}.chart-plot svg{width:100%;height:100%;display:block}.chart-data-labels{position:absolute;inset:0;pointer-events:none}.chart-dl{position:absolute;transform:translate(-50%,-110%);font-weight:var(--fw-bold);white-space:nowrap}.chart-dl,.chart-xaxis{font-size:var(--fs-2xs)}.chart-xaxis{grid-column:2;grid-row:2;display:flex;justify-content:space-around;color:var(--color-text-secondary);padding-top:var(--sp-2xs)}.chart-xaxis--aligned{position:relative;display:block}.chart-xaxis--aligned>span{position:absolute;top:var(--sp-2xs);transform:translateX(-50%);font-size:var(--fs-2xs);color:var(--color-text-secondary);white-space:nowrap}.chart-body--hbar{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:1fr auto;gap:var(--sp-2xs) 6px}.chart-hbar-labels{grid-column:1;align-items:flex-end;color:var(--color-text-secondary);padding-right:var(--sp-2xs)}.chart-hbar-labels,.chart-hbar-values{grid-row:1;display:flex;flex-direction:column;justify-content:space-around;font-size:var(--fs-2xs);line-height:1}.chart-hbar-values{grid-column:3;align-items:flex-start;font-weight:var(--fw-semibold);color:var(--color-text-primary);padding-left:var(--sp-2xs)}.chart-hbar-xaxis{grid-column:2;grid-row:2;display:flex;justify-content:space-between;font-size:var(--fs-2xs);color:var(--color-text-secondary);padding-top:var(--sp-2xs)}.chart-body--stack,.chart-body--waterfall{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;gap:var(--sp-2xs) 6px}.chart-body--bullet{display:flex;flex-direction:column;padding:18px var(--sp-sm) 14px;justify-content:space-around;min-height:0}@container chartcard (max-height: 230px){.chart-body--bullet{justify-content:center;gap:var(--sp-2xs);padding:10px var(--sp-sm) 6px}}.chart-bullet-row{display:flex;flex-direction:column;gap:var(--sp-2xs)}.chart-bullet-top{display:flex;justify-content:space-between;font-size:var(--fs-2xs);color:var(--color-text-secondary)}.chart-bullet-top b{color:var(--color-text-primary);font-weight:var(--fw-bold)}.chart-bullet-track{position:relative;height:8px;background:rgba(255,255,255,.08);border-radius:var(--sp-2xs);overflow:hidden}.chart-bullet-fill{position:absolute;left:0;top:0;bottom:0;border-radius:var(--sp-2xs)}.chart-bullet-marker{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--color-text-primary)}.hy-plot{position:relative;flex:1;min-height:0;width:100%}.hy-plot>svg{width:100%;height:100%;display:block}.hy-overlay{position:absolute;inset:0;pointer-events:none;font-variant-numeric:tabular-nums}.hy-overlay>*,.hy-overlay>*>*{position:absolute;white-space:nowrap;line-height:1}.ov-y{transform:translate(-100%,-50%);padding-right:4px}.ov-x,.ov-y{font-size:var(--fs-sm);color:var(--color-text-secondary)}.ov-x{transform:translate(-50%)}.ov-bar{font-size:var(--fs-sm);font-weight:var(--fw-bold);transform:translate(-50%,-100%);padding-bottom:2px}.ov-bar--neg{transform:translate(-50%);padding-top:2px;padding-bottom:0}.ov-solde{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--white);transform:translate(-50%,-100%);padding-bottom:3px}.ov-dot{width:8px;height:8px;border-radius:50%;transform:translate(-50%,-50%);display:inline-block;box-shadow:0 0 0 1.5px var(--bg-card)}.c04-body{flex-direction:column;gap:var(--sp-2xs);padding-top:2px}.c04-title{flex:0 0 auto;padding:0 2px}.c04-big{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--white);line-height:1.05}.c04-pills{display:inline-flex;gap:6px}.c02-plot .ov-bar,.c02-plot .ov-x,.c02-plot .ov-y,.c05-plot .ov-bar,.c05-plot .ov-benchmark,.c05-plot .ov-x,.c05-plot .ov-y,.c10-plot .ov-bar,.c10-plot .ov-solde,.c10-plot .ov-x{font-size:var(--fs-2xs)}.ov-benchmark{font-weight:var(--fw-bold);transform:translate(-100%,-50%);padding-right:3px;position:absolute;white-space:nowrap;line-height:1}.c08-plot{position:relative;aspect-ratio:190/115;width:auto;max-width:100%;height:100%;max-height:100%;flex:0 0 auto;min-height:0}.c08-plot>svg{width:100%;height:100%;display:block}.c08-plot .ov-x{font-size:var(--fs-2xs);font-weight:var(--fw-bold)}.chart-card.skeleton .chart-body,.chart-card.skeleton .chart-header,.kpi-card.skeleton .kpi-label,.kpi-card.skeleton .kpi-sub,.kpi-card.skeleton .kpi-value{background:linear-gradient(90deg,rgba(255,255,255,.04) 25%,rgba(255,255,255,.08) 50%,rgba(255,255,255,.04) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--r-sm);color:transparent!important;min-height:1em}.chart-card.skeleton .chart-body{min-height:80px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.state-empty{flex-direction:column;flex:1;padding:var(--sp-md);text-align:center;gap:var(--sp-sm)}.state-empty,.state-empty-icon{display:flex;align-items:center;justify-content:center}.state-empty-icon{width:48px;height:48px;border-radius:50%;background:var(--color-interactive-subtle)}.state-empty-icon svg{width:24px;height:24px;color:var(--grey-muted)}.state-empty-title{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--white)}.state-empty-msg{font-size:var(--fs-sm);color:var(--grey-muted);max-width:220px}.state-empty-cta{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--blue);background:var(--color-pill-bg);border:none;border-radius:var(--r-full);padding:6px 16px;cursor:pointer;font-family:inherit;transition:background var(--dur-normal)}.state-empty-cta:hover{background:var(--color-pill-bg-hover)}.state-error{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:var(--sp-md);text-align:center;gap:var(--sp-xs)}.state-error-title{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--red)}.state-error-msg{font-size:var(--fs-sm);color:var(--grey-muted);max-width:220px}.state-error-retry{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--white);background:var(--color-status-danger-subtle);border:none;border-radius:var(--r-full);padding:6px 16px;cursor:pointer;font-family:inherit;transition:background var(--dur-normal)}.state-error-retry:hover{background:var(--color-status-danger-subtle-hover)}.chart-focus-overlay{display:none;position:fixed;inset:0;z-index:300;background:var(--color-bg-scrim);backdrop-filter:blur(6px);align-items:center;justify-content:center;padding:var(--sp-xl);animation:fade-in var(--dur-normal) ease}.chart-focus-overlay.is-active{display:flex}.chart-focus-overlay .chart-card{width:min(90vw,800px);max-height:80vh;min-height:400px;max-height:none;box-shadow:var(--shadow-lg);cursor:default}.chart-focus-overlay .chart-card:hover{box-shadow:var(--shadow-lg);transform:none}.chart-focus-close{position:absolute;top:var(--sp-sm);right:var(--sp-sm);width:44px;height:44px;border-radius:var(--r-full);background:var(--color-interactive-active);border:none;color:var(--color-text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xl);transition:background var(--dur-normal)}.chart-focus-close:hover{background:var(--color-border-default)}.scroll-fade-wrap{position:relative}.scroll-fade-wrap:after,.scroll-fade-wrap:before{content:"";position:absolute;top:0;bottom:0;width:32px;pointer-events:none;z-index:2;opacity:0;transition:opacity var(--dur-normal)}.scroll-fade-wrap:before{left:0;background:linear-gradient(90deg,var(--color-bg-base),transparent)}.scroll-fade-wrap:after{right:0;background:linear-gradient(-90deg,var(--color-bg-base),transparent)}.scroll-fade-wrap.can-scroll-left:before,.scroll-fade-wrap.can-scroll-right:after{opacity:1}@media (max-width:1280px){.app-shell[data-sidebar=chat]{grid-template-columns:240px 1fr}.app-shell[data-sidebar=nav]{grid-template-columns:200px 1fr}}@media (max-width:1100px){:root{--app-max-w:clamp(320px,96vw,1860px)}.app-shell[data-sidebar=chat],.app-shell[data-sidebar=nav]{grid-template-columns:0 1fr}.sidebar{position:absolute;left:0;top:0;bottom:0;z-index:100;width:var(--sidebar-chat-w);box-shadow:var(--shadow-md)}.app-shell[data-sidebar=hidden] .sidebar{transform:translateX(-100%)}}@media (max-width:900px){.app-shell{grid-template-rows:auto var(--ticker-h) 1fr}}@media (max-height:750px){:root{--chart-row-h:clamp(180px,28vh,280px);--chart-min-h:180px}.kpi-card{min-height:56px;padding:var(--sp-xs) var(--sp-sm)}.kpi-value{font-size:calc(var(--fs-2xl) - 4px)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.ticker-scroll{animation:none!important}@keyframes shimmer{0%,to{background-position:0 0}}}