*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0d0d1a;--bg2:#13131f;--bg3:#1a1a2e;--bg4:#20203a;--border:#2a2a45;--text:#e2e2f0;--text-muted:#6b6b8a;--green:#4ade80;--red:#f87171;--accent:#7c6aff;--accent2:#a78bfa;--yellow:#fbbf24}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,Noto Sans KR,sans-serif;font-size:14px}.mono{font-family:IBM Plex Mono,Consolas,monospace}.up{color:var(--green)}.down{color:var(--red)}.muted{color:var(--text-muted)}.accent{color:var(--accent2)}.app{flex-direction:column;min-height:100vh;display:flex}.header{background:var(--bg2);border-bottom:1px solid var(--border);z-index:100;flex-wrap:wrap;align-items:center;gap:16px;padding:10px 20px;display:flex;position:sticky;top:0}.header-left{align-items:center;display:flex}.header-logo{align-items:center;gap:10px;display:flex}.logo-icon{font-size:24px}.logo-title{color:var(--accent2);font-family:IBM Plex Mono,monospace;font-size:18px;font-weight:700}.logo-sub{color:var(--text-muted);letter-spacing:.04em;font-size:10px}.header-stats{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:18px;display:flex}.header-divider{background:var(--border);width:1px;height:28px}.stat-block{text-align:right}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px}.stat-value{font-size:13px;font-weight:600}.stat-value.total{color:var(--accent2)}.tick-block{background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:4px 10px}.tick-timer{color:var(--green);letter-spacing:.08em;font-family:IBM Plex Mono,monospace}.market-badge{border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;display:flex}.market-badge.open{color:var(--green);background:#4ade801f;border:1px solid #4ade8040}.market-badge.closed{color:var(--red);background:#f8717114;border:1px solid #f8717133}.market-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.market-badge.open .market-dot{animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.badge-disconnected{color:var(--yellow);background:#fbbf241a;border-radius:12px;padding:4px 10px;font-size:11px}.header-right{align-items:center;gap:10px;display:flex}.user-info{text-align:right}.user-name{color:var(--accent2);font-size:13px;font-weight:600}.btn-logout{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:5px 12px;font-size:12px;transition:all .15s}.btn-logout:hover{color:var(--text);border-color:var(--accent)}.news-bar{background:#fbbf2412;border-bottom:1px solid #fbbf2433;flex-shrink:0;align-items:center;height:32px;display:flex;overflow:hidden}.news-label{color:var(--yellow);white-space:nowrap;border-right:1px solid #fbbf2433;align-items:center;gap:4px;height:100%;padding:0 12px;font-size:11px;font-weight:700;display:flex}.news-ticker-wrap{flex:1;align-items:center;height:100%;display:flex;overflow:hidden}.news-ticker{white-space:nowrap;align-items:center;padding-left:100%;animation:60s linear infinite ticker;display:flex}.news-ticker:hover{animation-play-state:paused}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-100%)}}.news-item{color:var(--text);padding:0 16px 0 0;font-size:11px;transition:background .3s}.news-item.news-flash{animation:3s ease-out newsFlash}@keyframes newsFlash{0%,25%{color:var(--yellow)}to{color:var(--text)}}.news-impact{margin-right:4px;font-size:10px;font-weight:700}.news-stock{color:var(--accent2);font-weight:700}.news-sep{color:var(--text-muted);margin:0 8px}.market-tab-bar{border-bottom:1px solid var(--border);background:var(--bg2);flex-shrink:0;gap:0;padding:0 20px;display:flex}.market-tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 20px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.market-tab-btn:hover{color:var(--text)}.market-tab-btn.active{color:var(--accent2);border-bottom-color:var(--accent2)}.market-tab-sub{color:var(--text-muted);font-size:10px;font-weight:400}.etf-card{cursor:pointer}.etf-ticker{letter-spacing:.04em;font-family:IBM Plex Mono,monospace;font-size:18px;font-weight:800}.etf-lev-badge{color:var(--text-muted);background:#ffffff12;border:1px solid #ffffff26;border-radius:12px;padding:2px 8px;font-size:10px;font-weight:700}.etf-category-chip{color:var(--text-muted);align-items:center;gap:5px;margin:3px 0 6px;font-size:11px;display:flex}.etf-cat-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.etf-header{justify-content:space-between;align-items:flex-start;margin-bottom:4px;display:flex}.etf-badges{align-items:center;gap:6px;display:flex}.etf-category-badge{background:0 0;border:1px solid;border-radius:12px;padding:2px 8px;font-size:11px;font-weight:700}.etf-inverse-badge{color:var(--red);background:#f8717114;border:1px solid #f8717166;border-radius:12px;padding:2px 7px;font-size:10px}.etf-name{margin-bottom:6px;font-size:14px;font-weight:700}.etf-members-row{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:3px;margin-top:8px;padding-top:8px;display:flex}.etf-more{color:var(--text-muted);padding:0 4px;font-size:10px}.etf-count{margin-left:auto;font-size:10px}.etf-no-data{height:60px;color:var(--text-muted);justify-content:center;align-items:center;font-size:11px;display:flex}.etf-modal-members{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.etf-modal-member-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px;display:grid}.etf-modal-member-chip{background:var(--bg3);border-radius:8px;align-items:center;gap:6px;padding:6px 8px;display:flex}.etf-member-chip-info{flex-direction:column;gap:1px;display:flex}.etf-member-name{font-size:11px;font-weight:600}.main{flex:1;gap:0;display:flex}.stocks-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-content:start;gap:12px;padding:16px;display:grid}.sidebar{background:var(--bg2);border-left:1px solid var(--border);flex-shrink:0;width:340px;max-height:calc(100vh - 58px);position:sticky;top:58px;overflow-y:auto}.stock-card{background:var(--bg2);border:1px solid var(--border);cursor:pointer;border-radius:12px;padding:14px;transition:border-color .2s,transform .15s;position:relative}.stock-card:hover{border-color:var(--accent);transform:translateY(-2px)}.stock-card.halted{border-color:#fbbf2466}.halt-badge{letter-spacing:.03em;border-radius:0 12px 0 8px;padding:3px 10px;font-size:11px;font-weight:700;position:absolute;top:-1px;right:-1px}.halt-badge.upper{color:var(--red);background:#f8717140}.halt-badge.lower{color:var(--green);background:#4ade8026}.halt-badge.circuit{color:var(--yellow);background:#fbbf2433}.halt-resume{opacity:.8;font-weight:400}.stock-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.stock-info{flex:1}.stock-name{font-size:15px;font-weight:700}.stock-role{color:var(--text-muted);margin-top:1px;font-size:10px}.stock-price-block{text-align:right}.stock-price{font-family:IBM Plex Mono,monospace;font-size:14px;font-weight:700}.stock-change{font-family:IBM Plex Mono,monospace;font-size:11px}.stock-change-tick{margin-top:1px}.stock-chart{margin:6px 0}.stock-footer{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.stock-desc{color:var(--text-muted);flex:1;margin-right:8px;font-size:11px}.chart-hint{color:var(--accent);opacity:.7;white-space:nowrap;font-size:10px}.owned-info{background:var(--bg3);border-radius:6px;align-items:center;gap:8px;margin-bottom:8px;padding:5px 8px;font-size:11px;display:flex}.owned-qty{color:var(--accent2);font-weight:600}.owned-avg{color:var(--text-muted)}.owned-pnl{font-family:IBM Plex Mono,monospace;font-weight:600}.trade-section{border-top:1px solid var(--border);padding-top:10px}.trade-controls{align-items:center;gap:6px;display:flex}.qty-input{background:var(--bg3);border:1px solid var(--border);width:56px;color:var(--text);text-align:center;border-radius:6px;padding:6px;font-family:IBM Plex Mono,monospace;font-size:13px}.qty-input:focus{outline:1px solid var(--accent)}.btn-buy,.btn-sell{cursor:pointer;border:none;border-radius:6px;flex:1;padding:6px 0;font-size:12px;font-weight:600;transition:opacity .15s}.btn-buy{color:#fff;background:#16a34a}.btn-sell{color:#fff;background:#dc2626}.btn-buy:hover:not(:disabled){background:#15803d}.btn-sell:hover:not(:disabled){background:#b91c1c}.btn-buy:disabled,.btn-sell:disabled{opacity:.3;cursor:not-allowed}.trade-cost{color:var(--text-muted);margin-top:5px;font-family:IBM Plex Mono,monospace;font-size:10px}.max-buy{opacity:.7}.trade-error{color:var(--red);margin-top:4px;font-size:11px}.portfolio-panel{padding:14px}.portfolio-summary{background:var(--bg3);border-radius:10px;flex-direction:column;gap:5px;margin-bottom:12px;padding:12px 14px;display:flex}.summary-row{justify-content:space-between;align-items:center;display:flex}.summary-label{color:var(--text-muted);font-size:11px}.summary-val{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.summary-val.total{color:var(--accent2);font-size:14px}.port-tabs{gap:4px;margin-bottom:10px;display:flex}.port-tab{color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border:1px solid #0000;border-radius:6px;flex:1;padding:6px 0;font-size:11px;font-weight:600;transition:all .15s}.port-tab:hover{background:var(--bg3);color:var(--text)}.port-tab.active{color:var(--accent2);background:#a78bfa1f;border-color:#a78bfa40}.holdings-list{flex-direction:column;gap:6px;display:flex}.holding-row{background:var(--bg3);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.holding-info{flex:1}.holding-name{font-size:13px;font-weight:600}.holding-sub{color:var(--text-muted);gap:8px;margin-top:2px;font-size:10px;display:flex}.holding-right{text-align:right}.holding-value{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.holding-pnl{margin-top:1px;font-family:IBM Plex Mono,monospace;font-size:10px}.holding-current{margin-top:1px;font-size:10px}.tx-list{flex-direction:column;gap:4px;display:flex}.tx-row{background:var(--bg3);border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:11px;display:flex}.tx-type{min-width:28px;font-size:10px;font-weight:700}.tx-type.buy{color:var(--green)}.tx-type.sell{color:var(--red)}.tx-info{flex:1}.tx-name{font-weight:600;display:block}.tx-detail{color:var(--text-muted);font-family:IBM Plex Mono,monospace;font-size:10px}.tx-right{text-align:right}.tx-total{font-family:IBM Plex Mono,monospace;font-weight:600;display:block}.tx-pnl{font-family:IBM Plex Mono,monospace;font-size:10px;display:block}.tx-time{font-size:9px;display:block}.leaderboard{flex-direction:column;gap:4px;display:flex}.lb-row{background:var(--bg3);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.lb-row.me{background:#7c6aff1f;border:1px solid #7c6aff33}.lb-rank{color:var(--text-muted);min-width:28px;font-family:IBM Plex Mono,monospace;font-weight:700}.lb-name{flex:1;font-weight:600}.lb-right{text-align:right}.lb-total{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;display:block}.lb-pct{font-family:IBM Plex Mono,monospace;font-size:10px}.empty-state{color:var(--text-muted);text-align:center;padding:16px 0;font-size:12px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#000000bf;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg2);border:1px solid var(--border);border-radius:16px;width:100%;max-width:900px;max-height:92vh;padding:22px;position:relative;overflow-y:auto}.modal-close{background:var(--bg3);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;transition:color .15s;display:flex;position:absolute;top:14px;right:14px}.modal-close:hover{color:var(--text)}.modal-halt-banner{text-align:center;letter-spacing:.03em;border-radius:8px;margin-bottom:14px;padding:8px 16px;font-size:13px;font-weight:700}.modal-halt-banner.upper{color:var(--red);background:#f8717126;border:1px solid #f871714d}.modal-halt-banner.lower{color:var(--green);background:#4ade801a;border:1px solid #4ade8040}.modal-halt-banner.circuit{color:var(--yellow);background:#fbbf241f;border:1px solid #fbbf244d}.modal-header{align-items:center;gap:14px;margin-bottom:14px;padding-right:36px;display:flex}.modal-title-block{flex:1}.modal-name{font-size:20px;font-weight:700}.modal-role{color:var(--text-muted);margin-top:2px;font-size:11px}.modal-price-block{text-align:right}.modal-price{font-family:IBM Plex Mono,monospace;font-size:24px;font-weight:700}.modal-change{margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:12px}.modal-range-change{color:var(--text-muted);margin-top:2px;font-size:11px}.modal-stats-row,.modal-holding-row{background:var(--bg3);border-radius:10px;flex-wrap:wrap;gap:16px;margin-bottom:10px;padding:10px 14px;display:flex}.modal-holding-row{background:#a78bfa0f;border:1px solid #a78bfa26}.modal-stat{flex-direction:column;gap:2px;display:flex}.modal-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px}.modal-stat-val{font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600}.modal-stat-val.muted{color:var(--text-muted);font-size:11px}.range-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:10px;padding-bottom:10px;display:flex}.range-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;transition:all .15s}.range-tab:hover{color:var(--text);background:var(--bg3)}.range-tab.active{color:var(--accent2);background:#a78bfa1f;border-color:#a78bfa40}.chart-area{margin-bottom:8px}.chart-empty{color:var(--text-muted);text-align:center;padding:60px 0;font-size:12px}.chart-range-stats{color:var(--text-muted);gap:20px;margin-bottom:14px;font-size:11px;display:flex}.chart-range-stats b{font-family:IBM Plex Mono,monospace}.chart-tooltip{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:8px 12px}.ct-date{color:var(--text-muted);margin-bottom:3px;font-size:10px}.ct-price{font-family:IBM Plex Mono,monospace;font-size:14px;font-weight:700}.ct-change{margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:11px}.modal-trade{border-top:1px solid var(--border);padding-top:14px}.modal-trade .trade-controls{align-items:center;gap:10px;display:flex}.modal-trade .btn-buy,.modal-trade .btn-sell{padding:9px 0;font-size:13px}.trade-msg{text-align:center;border-radius:6px;margin-top:8px;padding:6px 12px;font-size:12px}.trade-msg.success{color:var(--green);background:#4ade801a}.trade-msg.error{color:var(--red);background:#f871711a}.auth-overlay{background:var(--bg);z-index:999;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.auth-card{background:var(--bg2);border:1px solid var(--border);border-radius:20px;width:100%;max-width:440px;padding:32px 36px;box-shadow:0 24px 80px #00000080}.auth-logo{text-align:center;margin-bottom:24px}.auth-logo-icon{margin-bottom:6px;font-size:36px}.auth-logo-title{color:var(--accent2);letter-spacing:.05em;font-family:IBM Plex Mono,monospace;font-size:24px;font-weight:700}.auth-logo-sub{color:var(--text-muted);letter-spacing:.04em;margin-top:3px;font-size:11px}.auth-market-info{background:var(--bg3);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:6px;margin-bottom:20px;padding:12px 16px;display:flex}.auth-info-row{justify-content:space-between;align-items:center;font-size:12px;display:flex}.auth-info-label{color:var(--text-muted)}.auth-info-val{font-family:IBM Plex Mono,monospace;font-weight:600}.auth-info-val.accent{color:var(--accent2)}.auth-tabs{gap:4px;margin-bottom:16px;display:flex}.auth-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:1;padding:8px;font-size:13px;font-weight:600;transition:all .15s}.auth-tab.active{color:var(--accent2);background:#a78bfa1f;border-color:#a78bfa40}.auth-form{flex-direction:column;gap:12px;margin-bottom:14px;display:flex}.auth-field{flex-direction:column;gap:4px;display:flex}.auth-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.auth-input{background:var(--bg3);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 14px;font-size:14px;transition:border-color .15s}.auth-input:focus{border-color:var(--accent);outline:none}.auth-input.error{border-color:var(--red)}.auth-field-error{color:var(--red);font-size:11px}.auth-error{color:var(--red);text-align:center;background:#f871711a;border:1px solid #f8717133;border-radius:8px;padding:10px 14px;font-size:13px}.auth-submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:12px;font-size:14px;font-weight:700;transition:opacity .15s}.auth-submit:hover:not(:disabled){opacity:.85}.auth-submit:disabled{opacity:.4;cursor:not-allowed}.auth-switch{text-align:center;color:var(--text-muted);font-size:12px}.auth-switch-btn{color:var(--accent2);cursor:pointer;background:0 0;border:none;font-size:12px;font-weight:600}.auth-switch-btn:hover{text-decoration:underline}.auth-card-slim{max-width:380px}.auth-notice{text-align:center;color:var(--text-muted);margin-top:10px;font-size:11px}.auth-divider{color:var(--text-muted);align-items:center;gap:10px;margin:14px 0;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-discord-btn{color:#fff;background:#5865f2;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;padding:11px;font-size:14px;font-weight:700;text-decoration:none;transition:opacity .15s;display:flex}.auth-discord-btn:hover{opacity:.85}.gossip-cta-btn{width:100%;color:var(--yellow);cursor:pointer;background:linear-gradient(135deg,#fbbf2426,#fbbf2414);border:1px solid #fbbf2459;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin-bottom:10px;padding:9px 0;font-size:13px;font-weight:700;transition:all .15s;display:flex}.gossip-cta-btn:hover:not(.disabled){background:#fbbf2433}.gossip-cta-btn.disabled{opacity:.35;cursor:not-allowed}.gossip-cta-sub{color:var(--text-muted);font-size:10px;font-weight:400}.portfolio-action-row{gap:5px;margin-bottom:10px;display:flex}.port-action-btn{cursor:pointer;white-space:nowrap;text-align:center;border:1px solid;border-radius:8px;flex:1;padding:9px 0;font-size:12px;font-weight:700;transition:all .15s}.port-action-btn:hover:not(.disabled){filter:brightness(1.15)}.port-action-btn.disabled{opacity:.35;cursor:not-allowed}.transfer-cta-btn{color:var(--green);cursor:pointer;white-space:nowrap;background:#4ade8014;border:1px solid #4ade804d;border-radius:8px;padding:9px 14px;font-size:13px;font-weight:700;transition:all .15s}.transfer-cta-btn:hover{background:#4ade8029}.gossip-tier-guide{background:var(--bg3);border-radius:8px;flex-wrap:wrap;gap:10px;margin-bottom:12px;padding:8px 12px;font-size:11px;display:flex}.gossip-tier-item{white-space:nowrap}.gossip-result-tier-stars{letter-spacing:1px;font-size:12px}.gossip-direction-badge{opacity:.9;background:#ffffff0d;border:1px solid;border-radius:8px;margin-top:10px;padding:8px 12px;font-size:13px;font-weight:700}.savings-modal{max-width:420px}.savings-summary{background:var(--bg3);border:1px solid #a78bfa33;border-radius:12px;flex-direction:column;gap:7px;margin-bottom:12px;padding:14px 16px;display:flex}.savings-summary-row{justify-content:space-between;align-items:center;font-size:13px;display:flex}.savings-summary-row.main{border-bottom:1px solid var(--border);margin-bottom:3px;padding-bottom:7px}.savings-balance{color:var(--accent2);font-family:IBM Plex Mono,monospace;font-size:18px;font-weight:700}.savings-rate-box{text-align:center;color:var(--text-muted);background:#a78bfa0f;border:1px solid #a78bfa26;border-radius:8px;margin-bottom:4px;padding:7px;font-size:12px}.savings-form{flex-direction:column;margin-top:4px;display:flex}.savings-form-label{color:var(--text-muted);text-align:center;margin-bottom:6px;font-size:11px}.work-modal{max-width:420px}.work-progress-bar{background:var(--bg3);border-radius:2px;height:4px;margin:8px 0 16px;overflow:hidden}.work-progress-fill{background:var(--accent2);border-radius:2px;height:100%;transition:width .15s}.work-grid{grid-template-columns:repeat(5,1fr);gap:10px;padding:4px 0;display:grid}.work-circle{aspect-ratio:1;border:2px solid var(--border);background:var(--bg3);cursor:pointer;border-radius:50%;transition:all .12s;position:relative}.work-circle:hover:not(.work-circle-done){border-color:var(--accent2);background:#a78bfa26;transform:scale(1.05)}.work-circle-done{border-color:var(--accent2);background:var(--accent2);cursor:default}.work-circle-done:after{content:"✓";color:#fff;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex;position:absolute;inset:0}.work-done{flex-direction:column;align-items:center;gap:10px;padding:24px 0;display:flex}.work-done-icon{font-size:48px}.work-done-text{color:var(--accent2);font-size:18px;font-weight:700}.transfer-form{flex-direction:column;display:flex}.transfer-summary{color:var(--text-muted);text-align:center;padding:8px 0;font-size:12px}.relief-btn{width:100%;color:var(--green);cursor:pointer;background:#4ade801a;border:1px solid #4ade8066;border-radius:8px;margin-bottom:10px;padding:9px;font-size:13px;font-weight:700;transition:all .15s;animation:2s infinite relief-pulse}.relief-btn:hover:not(.relief-btn-disabled){background:#4ade8033}@keyframes relief-pulse{0%,to{border-color:#4ade8066}50%{border-color:#4ade80cc}}.relief-row{gap:6px;display:flex}.relief-row .relief-btn{flex:1;animation:none}.work-btn{color:var(--accent2)!important;background:#a78bfa14!important;border-color:#a78bfa59!important;animation:none!important}.work-btn:hover{background:#a78bfa2e!important}.relief-btn-disabled{opacity:.45;cursor:default;border-color:var(--border);background:var(--bg3);color:var(--text-muted);flex-direction:column;gap:2px;animation:none}.relief-reason{color:var(--text-muted);font-size:10px;font-weight:400;display:block}.lottery-modal{max-width:480px}.lottery-table{border:1px solid var(--border);border-radius:10px;margin:12px 0;overflow:hidden}.lottery-row{border-bottom:1px solid var(--border);grid-template-columns:60px 1fr 80px;align-items:center;padding:8px 14px;font-size:12px;display:grid}.lottery-row:last-child{border-bottom:none}.lottery-row.header{color:var(--text-muted);text-transform:uppercase;background:var(--bg3);font-size:10px;font-weight:700}.lottery-buy{flex-direction:column;gap:10px;margin-top:10px;display:flex}.lottery-count-row{justify-content:space-between;align-items:center;display:flex}.lottery-count-ctrl{gap:4px;display:flex}.lottery-count-btn{border:1px solid var(--border);background:var(--bg3);color:var(--text-muted);cursor:pointer;border-radius:6px;padding:5px 10px;font-size:12px;transition:all .15s}.lottery-count-btn.active{color:#ff9ff3;background:#ff9ff326;border-color:#ff9ff3}.lottery-count-btn:hover:not(:disabled){color:var(--text)}.lottery-count-btn:disabled{opacity:.3;cursor:not-allowed}.lottery-cost-summary{text-align:center;font-size:13px}.lottery-results{flex-direction:column;gap:12px;margin-top:10px;display:flex}.lottery-results-title{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:700}.lottery-results-grid{flex-wrap:wrap;gap:6px;display:flex}.lottery-result-chip{border:1px solid;border-radius:20px;padding:6px 12px;font-size:12px;font-weight:700}.lottery-results-total{text-align:center;background:var(--bg3);border-radius:10px;padding:10px;font-size:16px;font-weight:700}.gossip-modal{background:var(--bg2);border:1px solid var(--border);border-radius:16px;width:100%;max-width:680px;max-height:85vh;padding:22px;position:relative;overflow-y:auto}.gossip-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.gossip-icon{font-size:28px}.gossip-title{font-size:18px;font-weight:700}.gossip-subtitle{color:var(--text-muted);margin-top:2px;font-size:11px}.gossip-count-badge{color:var(--yellow);background:#fbbf241f;border:1px solid #fbbf244d;border-radius:20px;margin-left:auto;padding:4px 12px;font-size:12px;font-weight:700}.gossip-warning{color:var(--red);background:#f8717114;border:1px solid #f8717133;border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:12px}.gossip-pick-label{color:var(--text-muted);margin-bottom:10px;font-size:13px}.gossip-stock-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;max-height:400px;display:grid;overflow-y:auto}.gossip-stock-btn{background:var(--bg3);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;transition:all .15s;display:flex;position:relative}.gossip-stock-btn:hover{border-color:var(--accent);background:var(--bg4)}.gossip-stock-btn.selected{border-color:var(--accent2);background:#a78bfa1a}.gossip-stock-btn.bought{opacity:.6}.gossip-stock-info{flex:1;overflow:hidden}.gossip-stock-name{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;display:block;overflow:hidden}.gossip-stock-price{color:var(--text-muted);font-family:IBM Plex Mono,monospace;font-size:10px;display:block}.gossip-bought-badge{color:var(--accent2);background:#a78bfa26;border-radius:4px;padding:1px 5px;font-size:9px;position:absolute;top:3px;right:4px}.gossip-confirm{flex-direction:column;gap:12px;display:flex}.gossip-confirm-card{background:var(--bg3);border:1px solid var(--border);border-radius:10px;align-items:center;gap:12px;padding:12px 16px;display:flex}.gossip-confirm-name{font-size:16px;font-weight:700}.gossip-confirm-price{color:var(--text-muted);font-family:monospace;font-size:12px}.gossip-confirm-desc{font-size:13px;line-height:1.7}.gossip-error{color:var(--red);background:#f871711a;border-radius:6px;padding:8px 12px;font-size:12px}.gossip-confirm-btns{gap:8px;display:flex}.gossip-btn-cancel{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;flex:1;padding:9px;font-size:13px;font-weight:600;transition:all .15s}.gossip-btn-cancel:hover{color:var(--text);border-color:var(--accent)}.gossip-btn-buy{background:var(--yellow);color:#000;cursor:pointer;border:none;border-radius:8px;flex:2;padding:9px;font-size:13px;font-weight:700;transition:opacity .15s}.gossip-btn-buy:hover:not(:disabled){opacity:.85}.gossip-btn-buy:disabled{opacity:.4;cursor:not-allowed}.gossip-result{flex-direction:column;gap:14px;display:flex}.gossip-result-header{align-items:center;gap:10px;display:flex}.gossip-result-stock{font-size:16px;font-weight:700}.gossip-result-tier{font-size:13px;font-weight:600}.gossip-result-box{background:var(--bg3);border:1px solid #fbbf2440;border-radius:12px;padding:16px}.gossip-result-label{color:var(--yellow);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:10px}.gossip-result-text{font-size:14px;font-weight:500;line-height:1.7}.gossip-result-fired{color:var(--yellow);margin-top:10px;font-size:11px}.gossip-disclaimer{color:var(--text-muted);font-size:11px;font-style:italic}.gossip-result-meta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.gossip-timing-hint,.gossip-result-fired-inline{color:var(--yellow);font-size:11px}.my-gossip-section{margin-bottom:14px}.my-gossip-title{color:var(--yellow);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:11px;font-weight:700}.my-gossip-item{background:#fbbf240f;border-left:3px solid #fbbf2466;border-radius:8px;margin-bottom:5px;padding:9px 12px}.my-gossip-item.fired{border-left-color:var(--text-muted);opacity:.7}.my-gossip-top{flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:4px;display:flex}.my-gossip-name{font-size:12px;font-weight:700}.my-gossip-tier{font-size:10px;font-weight:700}.my-gossip-timing{color:var(--yellow);font-size:10px}.my-gossip-fired-badge{color:var(--text-muted);background:#6b6b8a4d;border-radius:4px;margin-left:auto;padding:1px 5px;font-size:9px}.my-gossip-text{color:var(--text);font-size:12px;line-height:1.6}.news-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:11px;font-weight:700}.news-tab-badge{background:var(--yellow);color:#000;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;margin-left:4px;font-size:9px;font-weight:700;display:inline-flex}.news-feed{flex-direction:column;gap:6px;display:flex}.news-feed-item{background:var(--bg3);border-left:3px solid var(--yellow);border-radius:8px;padding:10px 12px}.news-feed-top{align-items:center;gap:6px;margin-bottom:5px;display:flex}.news-feed-name{font-size:12px;font-weight:700}.news-feed-tier{font-size:10px;font-weight:700}.news-feed-time{margin-left:auto;font-size:10px}.news-feed-text{color:var(--text);font-size:12px;line-height:1.6}.holding-row-extended{flex-direction:column;align-items:stretch;gap:6px}.holding-top{align-items:center;gap:8px;display:flex}.holding-trade{align-items:center;gap:6px;padding-top:4px;display:flex}.qty-input-sm{width:50px;padding:4px 5px;font-size:12px}.btn-sm{border-radius:5px;padding:4px 10px;font-size:11px}.holding-trade-cost{font-family:monospace;font-size:10px}.holding-trade-msg{border-radius:4px;padding:3px 6px;font-size:11px}.holdings-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:4px 0 2px;font-size:10px;font-weight:700}.btn-admin{color:var(--yellow);cursor:pointer;background:#fbbf241a;border:1px solid #fbbf2466;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:700;transition:all .15s}.btn-admin:hover{background:#fbbf2433}.admin-panel{background:var(--bg2);border:1px solid var(--border);border-radius:16px;width:100%;max-width:700px;max-height:85vh;padding:22px;position:relative;overflow-y:auto}.admin-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:20px;padding-bottom:14px;display:flex}.admin-badge{color:var(--yellow);background:#fbbf2426;border:1px solid #fbbf244d;border-radius:6px;padding:3px 10px;font-size:11px;font-weight:700}.admin-title{flex:1;font-size:18px;font-weight:700}.admin-who{color:var(--text-muted);font-size:12px}.admin-body{flex-wrap:wrap;gap:16px;display:flex}.admin-section{flex:1;min-width:260px}.admin-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:11px;font-weight:700}.admin-user-list{flex-direction:column;gap:4px;max-height:380px;display:flex;overflow-y:auto}.admin-user-row{background:var(--bg3);cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;padding:8px 10px;transition:all .15s;display:flex}.admin-user-row:hover{border-color:var(--border)}.admin-user-row.selected{border-color:var(--yellow);background:#fbbf240f}.admin-user-info{flex-direction:column;gap:2px;display:flex}.admin-user-name{font-size:13px;font-weight:600}.admin-user-id{font-family:monospace;font-size:10px}.admin-user-assets{text-align:right}.admin-user-total{font-family:monospace;font-size:12px;font-weight:600;display:block}.admin-give-form{flex-direction:column;gap:10px;display:flex}.admin-give-target{background:var(--bg3);border-radius:8px;padding:8px 12px;font-size:13px}.admin-give-controls{align-items:center;gap:8px;display:flex}.admin-give-controls input{flex:1}.admin-give-presets{flex-wrap:wrap;gap:4px;display:flex}.admin-preset-btn{border:1px solid var(--border);background:var(--bg3);color:var(--text-muted);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:11px;transition:all .15s}.admin-preset-btn:hover{color:var(--text);border-color:var(--accent)}.admin-msg{border-radius:6px;padding:8px 12px;font-size:12px}.admin-msg.up{color:var(--green);background:#4ade801a}.admin-msg.down{color:var(--red);background:#f871711a}.btn-sidebar-toggle{border:1px solid var(--border);background:var(--bg3);color:var(--text);cursor:pointer;border-radius:7px;padding:6px 10px;font-size:18px;line-height:1;transition:all .15s;display:none}.btn-sidebar-toggle:hover{border-color:var(--accent)}.header-mobile-stats{align-items:center;gap:10px;display:none}.header-mobile-asset{flex-direction:column;align-items:flex-end;display:flex}.header-mobile-total{color:var(--accent2);font-family:IBM Plex Mono,monospace;font-size:14px;font-weight:700}.header-mobile-pnl{font-family:monospace;font-size:10px}.desktop-only{display:inline}@media (width<=900px){.main{flex-direction:column}.sidebar{z-index:500;background:var(--bg2);border-left:1px solid var(--border);width:min(360px,92vw);height:100vh;max-height:100vh;padding-bottom:40px;transition:transform .28s cubic-bezier(.4,0,.2,1);position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%)}.sidebar.sidebar-open{transform:translate(0)}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:499;background:#0009;position:fixed;inset:0}.sidebar-drawer-header{border-bottom:1px solid var(--border);background:var(--bg2);z-index:1;justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex;position:sticky;top:0}.sidebar-drawer-title{color:var(--text);font-size:14px;font-weight:700}.sidebar-drawer-close{background:var(--bg3);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:flex}.btn-sidebar-toggle{justify-content:center;align-items:center;display:flex}.header-stats{display:none}.header-mobile-stats{flex:1;justify-content:flex-end;display:flex}.desktop-only{display:none}.stocks-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;padding:12px}}@media (width<=600px){.header{flex-wrap:nowrap;gap:8px;padding:8px 12px}.logo-title{font-size:16px}.logo-sub{display:none}.logo-icon{font-size:20px}.stocks-grid{grid-template-columns:1fr;gap:8px;padding:10px}.btn-logout,.btn-admin{padding:4px 8px;font-size:11px}.market-tab-bar{padding:0 12px}.auth-card{padding:24px 16px}.header-mobile-total{font-size:13px}.header-mobile-pnl{font-size:10px}.gossip-modal,.savings-modal{border-radius:16px 16px 0 0;max-width:100vw;max-height:90vh;margin:0}.modal-overlay{align-items:flex-end;padding:0}.modal-content{border-radius:16px 16px 0 0;max-width:100vw;max-height:88vh}}@media (width>=901px){.sidebar-drawer-header{display:none}.sidebar-overlay{display:none!important}}
