:root{
  color-scheme:dark;
  --bg:#0a0d12;--panel:#121824;--panel2:#171f2d;--border:#263244;--text:#f3f6fb;--muted:#8f9bad;
  --accent:#6f8cff;--green:#4fd29b;--red:#ff6c7c;--yellow:#f5c451;--orange:#ff9b57;--input:#0d131d;
  --shadow:0 20px 60px rgba(0,0,0,.25);
}
html[data-theme="light"]{
  color-scheme:light;
  --bg:#f3f5f8;--panel:#fff;--panel2:#f7f9fc;--border:#dbe2eb;--text:#172033;--muted:#6f7b8d;
  --accent:#4b67e8;--green:#16875e;--red:#d84255;--yellow:#a76d00;--orange:#c75b10;--input:#f7f9fc;
  --shadow:0 18px 50px rgba(40,55,80,.10);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:radial-gradient(circle at 20% -10%,rgba(90,115,255,.12),transparent 32%),var(--bg);color:var(--text)}
button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.wrap{width:min(1440px,calc(100% - 36px));margin:0 auto;padding:28px 0 52px}.panel{background:linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--panel) 92%,var(--bg)));border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}
.hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:11px;font-weight:700;margin-bottom:7px}.hero h1{margin:0;font-size:30px;line-height:1.1;letter-spacing:-.035em;font-weight:760}.version{font-size:.45em;vertical-align:top;color:var(--muted);margin-left:6px;font-weight:650}.hero-actions{display:flex;align-items:center;gap:13px}.status-stack{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.status{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;white-space:nowrap}.last-scan-inline{font-size:10px;color:var(--muted);white-space:nowrap}.last-scan-inline strong{color:var(--text);font-variant-numeric:tabular-nums}.dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px color-mix(in srgb,var(--green) 15%,transparent)}.status.scanning .dot{background:var(--yellow);box-shadow:0 0 0 5px color-mix(in srgb,var(--yellow) 15%,transparent)}.status.error .dot{background:var(--red)}
.user-chip{border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--panel2) 92%,var(--accent)),var(--panel));color:var(--text);padding:10px 14px;border-radius:12px;font-weight:780;min-width:96px;box-shadow:0 8px 22px rgba(0,0,0,.10)}.user-chip:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));transform:translateY(-1px)}.account-wrap{position:relative}.account-menu{position:absolute;right:0;top:calc(100% + 9px);z-index:50;width:265px;padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.account-menu-name{font-size:15px;font-weight:800;padding:3px 3px 12px;border-bottom:1px solid var(--border);margin-bottom:12px;overflow:hidden;text-overflow:ellipsis}.account-menu label{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--muted);font-size:13px;margin:10px 0}.account-menu select{width:124px}.menu-toggle input{width:18px;height:18px;accent-color:var(--accent)}.menu-logout{width:100%;margin-top:12px;border:1px solid color-mix(in srgb,var(--red) 35%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--red) 10%,var(--panel2)),color-mix(in srgb,var(--red) 6%,var(--panel)));color:var(--red);padding:11px 12px;border-radius:11px;font-weight:780}.menu-logout:hover{background:color-mix(in srgb,var(--red) 14%,var(--panel))}
.controls{display:flex;align-items:end;gap:14px;padding:15px 16px;margin-bottom:16px;flex-wrap:wrap}.controls label,.mode-control{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:12px}.control-title{color:var(--muted)}select,input{border:1px solid var(--border);background:var(--input);color:var(--text);border-radius:10px;padding:9px 10px;outline:none}select:focus,input:focus{border-color:var(--accent)}button{border:1px solid transparent;background:var(--accent);color:white;border-radius:10px;padding:10px 14px;font-weight:760;transition:.14s ease}button:hover{filter:brightness(1.06)}button.secondary{background:var(--panel2);color:var(--text);border-color:var(--border)}.segmented{display:flex;border:1px solid var(--border);background:var(--input);border-radius:11px;padding:3px}.mode-btn{background:transparent;color:var(--muted);border:0;padding:7px 12px}.mode-btn.active{background:var(--panel2);color:var(--text);box-shadow:0 2px 9px rgba(0,0,0,.12)}.mode-btn.high-risk.active{color:var(--orange)}.toggle{flex-direction:row!important;align-items:center!important;gap:8px!important;padding:9px 2px}.toggle input{width:17px;height:17px;accent-color:var(--accent)}
.stats{display:grid;gap:12px;margin-bottom:16px}.stats-four{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{padding:15px 16px;min-height:94px;display:flex;flex-direction:column;justify-content:center;text-align:left}.stat span{font-size:13px;color:var(--muted);margin-bottom:8px}.stat strong{font-size:27px;line-height:1;font-variant-numeric:tabular-nums}.stat small{margin-top:8px;color:var(--muted);font-size:11px;line-height:1.3}.stat-button,.virtual-stat{width:100%;color:var(--text);background:linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--panel) 92%,var(--bg)));border-color:var(--border);box-shadow:var(--shadow)}.stat-button:hover,.virtual-stat:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 48%,var(--border));filter:none}.stat-button.active-filter{border-color:color-mix(in srgb,var(--accent) 65%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent),var(--shadow)}
.table-panel{overflow:hidden}.table-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;border-bottom:1px solid var(--border)}.table-head h2{margin:0 0 4px;font-size:17px}.table-sub{color:var(--muted);font-size:11px}.table-head input{width:min(310px,42vw)}.table-wrap{overflow:auto;max-height:68vh}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--border);white-space:nowrap}thead th{position:sticky;top:0;background:var(--panel);z-index:2;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.055em}.sortable{cursor:pointer;user-select:none}.sortable:hover,.sortable.sorted{color:var(--text)}tbody tr{transition:.12s ease}tbody tr:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}tbody tr.clickable-row{cursor:pointer}.symbol{font-weight:800}.muted{color:var(--muted)}.small{font-size:11px}.pos{color:var(--green)}.neg{color:var(--red)}.volume{font-variant-numeric:tabular-nums}.badge,.prime-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:850;letter-spacing:.035em;border:1px solid var(--border)}.badge.long{color:var(--green);background:color-mix(in srgb,var(--green) 9%,transparent);border-color:color-mix(in srgb,var(--green) 25%,var(--border))}.badge.short{color:var(--red);background:color-mix(in srgb,var(--red) 9%,transparent);border-color:color-mix(in srgb,var(--red) 25%,var(--border))}.badge.watch-long,.badge.watch-short{color:var(--yellow);background:color-mix(in srgb,var(--yellow) 8%,transparent);border-color:color-mix(in srgb,var(--yellow) 22%,var(--border))}.badge.none{color:var(--muted)}.prime-badge{color:#ffd977;background:linear-gradient(135deg,rgba(255,198,64,.13),rgba(255,119,80,.08));border-color:rgba(255,198,64,.38)}.row-prime{background:linear-gradient(90deg,rgba(255,196,65,.07),transparent 35%)}.empty-row td{text-align:center;padding:34px;color:var(--muted)}
dialog{width:min(740px,calc(100vw - 28px));max-height:90vh;overflow:auto;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:17px;box-shadow:0 30px 90px rgba(0,0,0,.42);padding:22px}dialog::backdrop{background:rgba(5,8,13,.68);backdrop-filter:blur(5px)}.close{position:sticky;float:right;top:0;z-index:5;background:var(--panel2);color:var(--muted);border:1px solid var(--border);width:34px;height:34px;padding:0;border-radius:10px;font-size:20px}.detail-head h2{margin:2px 0 5px;font-size:25px}.detail-status{display:flex;gap:10px;align-items:center;margin:13px 0 18px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.detail-item{background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:12px}.detail-item span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.detail-item strong{font-size:15px}.exchange-block{border:1px solid var(--border);background:color-mix(in srgb,var(--panel2) 78%,transparent);border-radius:12px;padding:11px 12px;margin:12px 0}.exchange-block>span{display:block;color:var(--muted);font-size:11px;margin-bottom:7px}.source-strip{display:flex;gap:7px;flex-wrap:wrap}.source-pill{font-size:10px;color:var(--muted);border:1px solid var(--border);padding:5px 8px;border-radius:999px}.source-pill.primary-source{color:var(--text);border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:color-mix(in srgb,var(--accent) 7%,transparent)}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:17px}.start-trade{flex:1;min-width:210px}.start-trade:disabled{opacity:.55;cursor:not-allowed}.analysis-box{margin-top:15px;border:1px solid var(--border);border-radius:13px;background:var(--panel2);padding:16px}.analysis-box h3{margin:0 0 11px;font-size:16px}.analysis-box p{margin:8px 0;color:var(--muted);line-height:1.6}.analysis-summary{color:var(--text)!important}.analysis-box ul{padding-left:20px;margin:8px 0 14px}.analysis-box li{margin:7px 0;line-height:1.5}.detail-note{color:var(--muted);font-size:11px;line-height:1.5;margin-top:10px}
.history-dialog{width:min(1180px,calc(100vw - 26px))}.history-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.history-header h2{margin:0}.portfolio-actions{display:flex;gap:8px}.history-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:14px 0}.history-stats>div{border:1px solid var(--border);background:var(--panel2);border-radius:12px;padding:11px}.history-stats span{display:block;color:var(--muted);font-size:10px;margin-bottom:6px}.history-stats strong{font-size:17px}.history-tabs{display:flex;gap:9px;margin:16px 0}.history-tab{background:var(--panel2);color:var(--muted);border:1px solid var(--border);font-size:15px;padding:12px 17px;border-radius:12px}.history-tab.active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--panel2))}.history-tab b{margin-left:6px}.history-wrap{overflow:auto;max-height:48vh;border:1px solid var(--border);border-radius:12px}.portfolio-settings{margin-top:14px;border:1px solid var(--border);border-radius:12px;padding:12px}.portfolio-settings summary{cursor:pointer;font-weight:700}.settings-inline{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:12px}.settings-inline label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:11px}.input-prefix{display:flex;align-items:center;border:1px solid var(--border);border-radius:10px;background:var(--input);padding-left:10px}.input-prefix input{border:0;background:transparent;width:130px}.danger-btn{background:color-mix(in srgb,var(--red) 9%,var(--panel));border:1px solid color-mix(in srgb,var(--red) 35%,var(--border));color:var(--red)}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:22px}.auth-card{width:min(430px,100%);padding:28px}.auth-brand{font-size:25px;font-weight:790;letter-spacing:-.035em;margin-bottom:20px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);border-radius:11px;padding:3px;margin-bottom:18px;background:var(--input)}.auth-tab{background:transparent;color:var(--muted);border:0}.auth-tab.active{background:var(--panel2);color:var(--text)}#authForm{display:grid;gap:13px}#authForm label{display:grid;gap:6px;color:var(--muted);font-size:12px}#authForm input{width:100%;padding:11px}.auth-error{min-height:18px;color:var(--red);font-size:12px}.auth-language{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px;color:var(--muted);font-size:12px}.auth-language select{width:130px}
@media(max-width:960px){.stats-four{grid-template-columns:repeat(2,minmax(0,1fr))}.history-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.hero{align-items:flex-start}.hero-actions{align-items:flex-end}.controls{align-items:stretch}.controls>*{flex:1;min-width:140px}.mode-control{min-width:240px}.table-wrap{max-height:none}}
@media(max-width:620px){.wrap{width:min(100% - 18px,1440px);padding-top:16px}.hero h1{font-size:23px}.eyebrow{font-size:9px}.hero-actions{flex-direction:column-reverse;align-items:flex-end}.status{font-size:11px}.stats-four{grid-template-columns:1fr 1fr}.stat{min-height:86px;padding:13px}.stat strong{font-size:23px}.table-head{align-items:stretch;flex-direction:column}.table-head input{width:100%}.detail-grid{grid-template-columns:1fr}.history-stats{grid-template-columns:1fr 1fr}.history-header{align-items:flex-start;flex-direction:column}.account-menu{right:0;width:min(280px,calc(100vw - 28px))}}

.search-box{display:flex;gap:8px;align-items:center}.search-box input{min-width:280px;flex:1}.search-box button{white-space:nowrap}.detail-item #detailLivePrice{font-variant-numeric:tabular-nums}.detail-item #detailLivePrice::after{content:" •";font-size:.75em;color:var(--green)}


/* Production polish: optional accounts, soft motion and loading state. */
.boot-splash{position:fixed;inset:0;z-index:1000;display:grid;place-content:center;gap:18px;background:var(--bg);transition:opacity .28s ease,visibility .28s ease}.boot-splash.done{opacity:0;visibility:hidden;pointer-events:none}.boot-logo{font-size:clamp(24px,4vw,38px);font-weight:760;letter-spacing:-.035em}.boot-line{width:210px;height:3px;border-radius:999px;overflow:hidden;background:var(--border)}.boot-line span{display:block;width:42%;height:100%;border-radius:inherit;background:var(--accent);animation:bootSlide 1s ease-in-out infinite alternate}@keyframes bootSlide{from{transform:translateX(-5%)}to{transform:translateX(145%)}}
.app-enter:not(.hidden){animation:appEnter .34s cubic-bezier(.2,.8,.2,1) both}@keyframes appEnter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.guest-auth-actions{display:flex;gap:9px;align-items:center}.compact{min-height:38px!important;padding:8px 14px!important;border-radius:11px!important}.auth-dialog{width:min(430px,calc(100vw - 28px));padding:0;border:1px solid var(--border);border-radius:20px;background:var(--panel);color:var(--text);box-shadow:var(--shadow);overflow:visible}.auth-dialog::backdrop{background:rgba(3,7,12,.64);backdrop-filter:blur(7px)}.auth-dialog[open]{animation:dialogIn .22s ease both}@keyframes dialogIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}.auth-dialog .auth-card{padding:30px}.auth-dialog .close{z-index:2}
.panel,.stat-button,.clickable-row,button{transition:transform .16s ease,border-color .16s ease,background-color .16s ease,box-shadow .16s ease,opacity .16s ease}.stat-button:hover{transform:translateY(-2px)}.clickable-row:hover{transform:translateX(2px)}button:not(:disabled):active{transform:translateY(1px) scale(.992)}
.guest-portfolio{color:var(--muted)!important;font-size:15px!important}.login-needed{border:1px dashed var(--border);border-radius:13px;padding:12px 14px;background:var(--panel2);color:var(--muted);margin-top:12px}.login-needed button{margin-top:10px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}


/* 1.0 mobile polish + portfolio trade details */
.history-wrap tbody tr.trade-row{cursor:pointer;transition:background .16s ease,transform .16s ease}.history-wrap tbody tr.trade-row:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.trade-detail-price{font-variant-numeric:tabular-nums}.trade-detail-status{margin-bottom:14px}.trade-detail-pnl{font-size:22px!important}.trade-detail-note{margin-top:14px;color:var(--muted);line-height:1.55}
.analysis-box .analysis-section{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
@media(max-width:620px){
  body{overflow-x:hidden}.wrap{width:calc(100% - 16px);padding:12px 0 26px}.hero{gap:12px;align-items:flex-start}.brand-block{min-width:0}.hero h1{font-size:21px;line-height:1.08}.hero h1 .version{font-size:11px}.hero-actions{width:auto;max-width:48%;gap:8px}.guest-auth-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.guest-auth-actions button{padding:8px 10px;font-size:11px}.status-stack{align-items:flex-end}.last-scan-inline{font-size:9px;text-align:right}
  .controls{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:11px}.controls>*{min-width:0!important;width:100%}.mode-control{grid-column:1/-1}.controls #scanBtn{grid-column:1/-1}.toggle{grid-column:1/-1;justify-content:center}.segmented{width:100%}.segmented button{flex:1}
  .stats-four{gap:8px}.stat{min-height:78px;padding:11px}.stat span{font-size:11px}.stat strong{font-size:20px}.stat small{font-size:9px;margin-top:6px}
  .table-panel{padding:11px}.table-head{gap:10px}.search-box{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto}.search-box input{min-width:0;width:100%}.search-box button{padding-left:12px;padding-right:12px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap table{min-width:690px}
  dialog{width:calc(100vw - 14px);max-height:92dvh;padding:15px;border-radius:15px}.detail-head h2{font-size:22px}.detail-grid{gap:8px}.detail-item{padding:10px}.detail-actions{flex-direction:column}.detail-actions>*{width:100%;min-width:0!important}.analysis-box{padding:13px}.analysis-box p,.analysis-box li{font-size:13px;line-height:1.55}
  .history-dialog{padding:14px}.history-stats{grid-template-columns:1fr 1fr;gap:8px}.history-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.history-tab{min-width:0;padding:9px 5px;font-size:11px}.history-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.history-wrap table{min-width:720px}.portfolio-actions{width:100%;display:flex;gap:7px}.portfolio-actions button{flex:1}.settings-inline{grid-template-columns:1fr!important}
}

/* Vibrozz 1.0.1 visual polish */
.boot-brand{display:flex;align-items:center;justify-content:center;gap:14px}.boot-mark{width:52px;height:52px;filter:drop-shadow(0 8px 22px rgba(121,147,255,.2))}.boot-subtitle{margin-top:2px;color:var(--muted);font-size:12px;letter-spacing:.14em;text-transform:uppercase}.trade-detail-price{font-size:22px!important;line-height:1.05;transition:color .18s ease,text-shadow .18s ease}.trade-detail-price.price-up{color:var(--green);text-shadow:0 0 18px color-mix(in srgb,var(--green) 22%,transparent)}.trade-detail-price.price-down{color:var(--red);text-shadow:0 0 18px color-mix(in srgb,var(--red) 20%,transparent)}
