@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";*{box-sizing:border-box;margin:0;padding:0}::selection{color:#f1f5f9;background:#2563eb59}:root{--bg-deep:#0b0e13;--bg-surface:#11151c;--bg-card:#131821;--bg-card-hover:#19202b;--bg-glass:#11151c;--bg-elevated:#171d27;--text-primary:#e6eaf0;--text-secondary:#9aa4b2;--text-muted:#6b7686;--accent-blue:#2f6fed;--accent-blue-bright:#5b9bff;--accent-blue-dim:#2f6fed24;--accent-purple:#8b7cf6;--accent-purple-dim:#8b7cf624;--accent-green:#1db573;--accent-green-dim:#1db57324;--accent-red:#f04452;--accent-red-dim:#f0445224;--accent-yellow:#e8a33d;--accent-yellow-dim:#e8a33d24;--accent-cyan:#2bb3c9;--border-color:#222a36;--border-hover:#323c4c;--border-glow:#2f6fed;--radius-sm:3px;--radius-md:4px;--radius-lg:4px;--radius-xl:6px;--header-height:48px;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--shadow-xl:0 8px 24px #00000059;--shadow-glow-blue:none;--shadow-glow-blue-lg:none;--shadow-glow-green:none;--shadow-glow-red:none;--shadow-glow-purple:none;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.2, .8, .2, 1);--duration-fast:.12s;--duration-normal:.15s;--duration-slow:.2s;--font-mono:"JetBrains Mono", "SF Mono", "Roboto Mono", Menlo, Consolas, monospace}[data-theme=light]{--bg-deep:#f3f5f8;--bg-surface:#fff;--bg-card:#fff;--bg-card-hover:#f5f7fa;--bg-glass:#fff;--bg-elevated:#fff;--text-primary:#17202e;--text-secondary:#46536a;--text-muted:#64748b;--accent-blue:#1f5fd6;--accent-blue-bright:#1f5fd6;--accent-green:#0e9a5d;--accent-red:#db2f3f;--border-color:#dce2ea;--border-hover:#c3ccd9;--border-glow:#1f5fd6;--shadow-xl:0 8px 24px #0f172a1f}[data-theme=light] body,[data-theme=light] html{background-color:var(--bg-deep)}[data-theme=light] body:before,[data-theme=light] body:after{display:none}[data-theme=light] ::selection{color:#1e293b;background:#2563eb33}[data-theme=light] .app-header{box-shadow:none;background:#ffffffd9}[data-theme=light] .app-header:after{background:0 0}[data-theme=light] input,[data-theme=light] select,[data-theme=light] textarea{color:#1e293b;background:#fff;border-color:#94a3b84d}[data-theme=light] .header-nav a{color:#475569}[data-theme=light] .header-nav a.active{color:var(--accent-blue);background:#2563eb1a}@media (width<=768px){[data-theme=light] .header-nav{box-shadow:none;background:#fffffff7}}[data-theme=light] .sector-chip{background:#f1f5f9cc;border-color:#94a3b84d}[data-theme=light] .sector-chip.hot{background:#f59e0b14;border-color:#f59e0b66}[data-theme=light] .sector-name{color:#334155}[data-theme=light] .stock-card{background:#ffffffe6;border-color:#94a3b833}[data-theme=light] .stock-card:hover{box-shadow:none;background:#f8fafcf2;border-color:#2563eb40}[data-theme=light] .holdings-table tr:hover td{background:#2563eb0a}[data-theme=light] .news-item{background:#fff9}[data-theme=light] .app-footer{background:0 0;border-color:#94a3b826}[data-theme=light] .footer-ai-provider{color:#1e293b;box-shadow:none;background:#eff6fff2;border-color:#2563eb33}[data-theme=light] .footer-ai-provider-copy small{color:#64748b}[data-theme=light] .footer-ai-provider-link{color:#1d4ed8}html,body{background-color:var(--bg-deep);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;overflow-x:hidden}body:before,body:after{content:"";filter:blur(80px);opacity:.6;z-index:-1;pointer-events:none;will-change:transform;border-radius:50%;position:fixed}body:before{background:0 0;width:600px;height:600px;animation:25s ease-in-out infinite floatOrb1;top:-10%;left:-5%}body:after{background:0 0;width:500px;height:500px;animation:30s ease-in-out infinite floatOrb2;bottom:-10%;right:-5%}@keyframes floatOrb1{0%,to{transform:translate(0)scale(1)}33%{transform:translate(80px,60px)scale(1.1)}66%{transform:translate(-40px,100px)scale(.95)}}@keyframes floatOrb2{0%,to{transform:translate(0)scale(1)}33%{transform:translate(-60px,-80px)scale(1.05)}66%{transform:translate(50px,-40px)scale(.9)}}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#2563eb4d;border-radius:3px}a{color:inherit;transition:color var(--duration-normal);text-decoration:none}button{cursor:pointer;transition:all var(--duration-normal) var(--ease-out);border:none;font-family:inherit;font-weight:500}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:not-allowed;filter:saturate(.5);transform:none}input,select,textarea{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-sm);outline:none;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .25s,box-shadow .25s,background .25s}input:focus,select:focus,textarea:focus{border-color:var(--accent-blue);box-shadow:none;background:var(--bg-elevated)}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.7}.app{min-height:100vh;animation:pageLoad .5s var(--ease-out);flex-direction:column;display:flex}@keyframes pageLoad{0%{opacity:0}to{opacity:1}}.app-main{max-width:1280px;padding:24px;padding-top:calc(var(--header-height) + 57px);width:100%;animation:contentSlideUp .4s var(--ease-out);flex:1;margin:0 auto}.app-main-admin{max-width:min(1760px,100vw - 24px);padding-left:28px;padding-right:28px}.app-main:has(.admin-page){max-width:min(1760px,100vw - 24px);padding-left:28px;padding-right:28px}@keyframes contentSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.app-footer{text-align:center;border-top:1px solid var(--border-color);color:var(--text-muted);background:0 0;padding:32px 24px;font-size:13px;position:relative}.app-footer:before{content:"";background:0 0;height:1px;position:absolute;top:0;left:10%;right:10%}.footer-brand{color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;margin-bottom:14px;font-weight:600;display:flex}.footer-brand img{opacity:.68;border-radius:4px;width:18px;height:18px}.footer-ai-provider{color:#e2e8f0;width:min(680px,100%);min-height:64px;box-shadow:none;text-align:left;transition:transform var(--duration-normal), border-color var(--duration-normal), box-shadow var(--duration-normal);background:0 0;border:1px solid #60a5fa33;border-radius:4px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin:0 auto 16px;padding:11px 14px;text-decoration:none;display:grid}.footer-ai-provider:hover{box-shadow:none;border-color:#60a5fa6b;transform:translateY(-2px)}.footer-ai-provider:focus-visible{outline-offset:3px;outline:3px solid #60a5fa6b}.footer-ai-provider-badge{color:#67e8f9;letter-spacing:.08em;background:#06b6d417;border:1px solid #22d3ee3d;border-radius:4px;padding:6px 8px;font:700 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.footer-ai-provider-copy{min-width:0}.footer-ai-provider-copy strong,.footer-ai-provider-copy small{display:block}.footer-ai-provider-copy strong{font-size:13px;line-height:1.4}.footer-ai-provider-copy small{color:#94a3b8;margin-top:3px;font-size:11px}.footer-ai-provider-link{color:#93c5fd;white-space:nowrap;font-size:12px;font-weight:700}.footer-copyright{opacity:.72;margin:0}.app-top-fixed{z-index:100;position:fixed;top:0;left:0;right:0}.app-header{height:var(--header-height);Nonebackdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid var(--border-color);box-shadow:none;background:#0b1221cc;align-items:center;padding:0 24px;display:flex}.app-header:after{content:"";background:0 0;height:1px;position:absolute;bottom:-1px;left:0;right:0}.header-left{align-items:center;margin-right:48px;display:flex}.logo{background:var(--accent-blue-bright);-webkit-text-fill-color:transparent;letter-spacing:-.5px;background-size:200% 200%;-webkit-background-clip:text;font-size:20px;font-weight:800;animation:6s ease-in-out infinite logoShimmer}@keyframes logoShimmer{0%,to{background-position:0%}50%{background-position:100%}}.header-nav{scrollbar-width:none;flex:1;gap:4px;display:flex;overflow-x:auto}.header-nav::-webkit-scrollbar{display:none}.header-nav a{border-radius:var(--radius-sm);color:var(--text-secondary);white-space:nowrap;transition:all var(--duration-normal) var(--ease-out);align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:500;display:flex;position:relative}.header-nav a:hover{color:var(--text-primary);background:#2563eb14}.header-nav a.active{color:var(--accent-blue-bright);box-shadow:none;background:#2563eb26;font-weight:600}.header-right{align-items:center;gap:12px;margin-left:auto;display:flex}.user-info{background:#2563eb14;border:1px solid #2563eb1f;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 8px;display:flex}.user-name{color:var(--text-primary);font-size:13px;font-weight:600}.btn-logout{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);background:0 0;padding:6px 10px;font-size:13px}.btn-logout:hover{color:var(--accent-blue-bright);box-shadow:none;background:#2563eb1a;border-color:#2563eb40}.page-title{letter-spacing:-.5px;background:var(--text-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:24px;font-size:28px;font-weight:800;display:inline-block;position:relative}.page-title:after{content:"";background:var(--accent-blue);border-radius:2px;width:40px;height:3px;margin-top:8px;display:block}.page-shell{flex-direction:column;gap:24px;display:flex}.page-header-card{border-radius:var(--radius-lg);box-shadow:none;background:0 0;border:1px solid #2563eb24;padding:22px 24px}.page-header-card .page-title{margin-bottom:0}.card,.stock-card,.news-item,.summary-card,.achievement-card,.lb-item,.quiz-option,.market-index-card,.sentiment-card,.thermometer-card,.economic-card,.macro-event-card,.mission-card,.rank-bar,.admin-stat-card,.admin-controls,.admin-students{background:var(--bg-card);Nonebackdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:none;transition:transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-slow) var(--ease-out), border-color var(--duration-normal), background var(--duration-normal)}.card{padding:24px}.page-stack{flex-direction:column;gap:24px;display:flex}.page-header{flex-direction:column;gap:8px;display:flex}.page-subtitle{max-width:72ch;color:var(--text-secondary);font-size:14px;line-height:1.6}.section-block{flex-direction:column;gap:14px;display:flex}.section-heading{color:var(--text-primary);font-size:15px;font-weight:700}.section-kicker{color:var(--text-secondary);font-size:13px}.card-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:none;padding:20px}.card-section+.card-section{margin-top:16px}.section-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.filter-toolbar{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:none;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;display:flex}.filter-toolbar input{flex:240px;min-width:180px}.chip-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip-button{border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);border-radius:999px;padding:8px 14px;font-size:12px;font-weight:700}.chip-button.is-active{border-color:var(--accent-blue);background:var(--accent-blue-dim);color:var(--accent-blue-bright);box-shadow:none}.table-card{padding:0;overflow:hidden}.table-scroll{overflow-x:auto}.compact-stock-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.compact-stock-card{padding:16px}.compact-stock-card .stock-card-header{margin-bottom:10px}.compact-stock-card .stock-name{font-size:14px}.compact-stock-card .stock-price{font-size:20px}.compact-stock-card .stock-change{font-size:12px}.compact-stock-card.selected{border-color:var(--accent-blue);box-shadow:none;background:var(--bg-card-hover)}.tournament-list{flex-direction:column;gap:12px;display:flex}.tournament-list-card{padding:18px 20px}.tournament-list-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.tournament-meta{color:var(--text-secondary);flex-wrap:wrap;gap:16px;margin-top:8px;font-size:12px;display:flex}.tournament-actions{flex-shrink:0;gap:8px;display:flex}.race-page{min-height:calc(100vh - 120px);color:var(--text-primary)}.race-shell{max-width:1120px;margin:0 auto;padding:4px 0 24px}.race-header-card{margin-bottom:18px;padding:22px 24px}.race-header-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.race-title-wrap{align-items:center;gap:16px;display:flex}.race-title-icon{width:56px;height:56px;box-shadow:none;background:#2563eb2e;border:1px solid #2563eb3d;border-radius:4px;justify-content:center;align-items:center;font-size:28px;display:inline-flex}.race-status{color:var(--text-secondary);align-items:center;gap:8px;margin-top:6px;font-size:13px;display:flex}.race-status-dot{border-radius:50%;width:8px;height:8px;animation:1.5s infinite pulse;display:inline-block}.race-board{overflow:hidden}.race-table-head,.race-table-row{grid-template-columns:52px 38px minmax(110px,.9fr) minmax(220px,1.8fr) 120px 96px;align-items:center;gap:12px;display:grid}.race-table-head{color:var(--text-secondary);border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.04em;padding:0 18px 12px;font-size:12px;font-weight:700}.race-table-row{border-bottom:1px solid var(--border-color);transition:background var(--duration-normal), transform var(--duration-normal);padding:14px 18px}.race-table-row:last-child{border-bottom:none}.race-table-row.is-top3{min-height:58px}.race-rank,.race-delta,.race-num{font-variant-numeric:tabular-nums}.race-rank{text-align:center;font-size:16px;font-weight:800}.race-rank.is-top3{font-size:22px}.race-delta{text-align:center;font-size:11px;font-weight:700}.race-name{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.race-name.is-top3{font-size:15px}.race-bar-track{background:#94a3b814;border:1px solid #94a3b81f;border-radius:999px;height:24px;overflow:hidden}.race-bar-fill{border-radius:inherit;height:100%;transition:width .8s var(--ease-out)}.race-num{text-align:right;font-size:13px;font-weight:700}.race-empty{text-align:center;color:var(--text-secondary);padding:48px 24px}.stock-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:32px;display:grid}.stock-card{cursor:pointer;padding:20px;position:relative;overflow:hidden}.stock-card:before{content:"";background:var(--accent-blue);opacity:0;height:2px;transition:opacity var(--duration-normal);position:absolute;top:0;left:0;right:0}.stock-card:hover:before{opacity:1}.stock-card:hover{box-shadow:none;border-color:var(--border-glow);background:var(--bg-card-hover);transform:translateY(-6px)}.stock-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.stock-code{color:var(--text-muted);letter-spacing:.5px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500}.stock-name{color:var(--text-primary);margin-top:2px;font-size:16px;font-weight:600}.stock-industry{color:var(--text-secondary);background:#2563eb14;border:1px solid #2563eb1f;border-radius:100px;padding:4px 10px;font-size:11px;font-weight:600}.stock-price{letter-spacing:-.5px;margin-bottom:4px;font-size:28px;font-weight:700}.stock-change{align-items:center;gap:4px;font-size:14px;font-weight:600;display:flex}.up,.trend-up,.active-sell{color:var(--accent-red)}.down,.trend-down,.active-buy{color:var(--accent-green)}.flat{color:var(--text-muted)}.news-tag,.t1-badge,.admin-status,.rank-level{text-transform:uppercase;letter-spacing:.3px;border-radius:6px;justify-content:center;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.market-dashboard{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:32px;display:grid}.market-index-card,.sentiment-card,.thermometer-card{flex-direction:column;justify-content:center;padding:24px;display:flex;position:relative;overflow:hidden}.market-index-card:before{content:"";background:var(--accent-blue);height:2px;position:absolute;top:0;left:0;right:0}.market-index-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:600}.market-index-value{letter-spacing:-1px;margin-bottom:4px;font-size:36px;font-weight:800}.news-section{margin-top:40px}.news-list{flex-direction:column;gap:8px;display:flex}.news-item{border-radius:4px;align-items:center;gap:16px;padding:14px 16px;display:flex;position:relative;overflow:hidden}.news-item:before{content:"";background:var(--accent-blue);opacity:0;width:2px;transition:opacity var(--duration-normal);position:absolute;top:0;bottom:0;left:0}.news-item:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.news-time{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:12px}.login-page{background:var(--bg-deep);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";filter:blur(60px);background:0 0;width:500px;height:500px;animation:15s ease-in-out infinite loginOrb1;position:absolute;top:20%;left:30%}.login-page:after{content:"";filter:blur(60px);background:0 0;width:400px;height:400px;animation:20s ease-in-out infinite loginOrb2;position:absolute;bottom:20%;right:25%}@keyframes loginOrb1{0%,to{transform:translate(0)}50%{transform:translate(40px,-30px)}}@keyframes loginOrb2{0%,to{transform:translate(0)}50%{transform:translate(-30px,20px)}}.login-card{Nonebackdrop-filter:none;-webkit-backdrop-filter:none;border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:none;z-index:1;animation:loginCardIn .6s var(--ease-out);background:#162032d9;border:1px solid #2563eb26;padding:44px 40px;position:relative}@keyframes loginCardIn{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.login-card h1{text-align:center;background:var(--accent-blue-bright);-webkit-text-fill-color:transparent;background-size:200% 200%;-webkit-background-clip:text;margin-bottom:8px;font-size:34px;font-weight:800;animation:6s ease-in-out infinite logoShimmer}.login-subtitle{text-align:center;color:var(--text-muted);margin-bottom:32px;font-size:14px}.auth-tabs{background:var(--bg-deep);border-radius:var(--radius-sm);border:1px solid var(--border-color);margin-bottom:24px;padding:4px;display:flex}.auth-tab{text-align:center;color:var(--text-secondary);transition:all var(--duration-normal) var(--ease-out);background:0 0;border-radius:6px;flex:1;padding:10px;font-size:14px;font-weight:500}.login-form input:not([type=checkbox]){border-color:var(--border-color);border-radius:var(--radius-sm);background:#0b122199;width:100%;margin-bottom:12px;padding:12px 16px}.login-form button{background:var(--accent-blue);color:#fff;border-radius:var(--radius-sm);width:100%;margin-top:8px;padding:13px;font-size:15px;font-weight:600;position:relative;overflow:hidden}.login-form button:before{content:"";background:0 0/200% 100%;animation:3s ease-in-out infinite btnShimmer;position:absolute;inset:0}@keyframes btnShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.login-form button:hover{box-shadow:none;background:#1d4ed8;transform:translateY(-1px)}.login-divider{color:var(--text-muted);align-items:center;gap:12px;margin:4px 0;font-size:13px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border-color);flex:1;height:1px}.btn-linuxdo{border:1px solid var(--border-color);background:var(--bg-surface);width:100%;color:var(--text-primary);cursor:pointer;border-radius:4px;padding:12px;font-size:15px;transition:all .2s}.btn-linuxdo:hover{background:var(--bg-card);border-color:var(--accent-blue)}.btn-oauth{border:1px solid var(--border-color);cursor:pointer;color:#fff;border-radius:4px;width:100%;margin-top:8px;padding:12px;font-size:15px;transition:all .2s}.btn-wechat{background:#07c160;border-color:#07c160}.btn-wechat:hover{background:#06ad56}.btn-qq{background:#12b7f5;border-color:#12b7f5}.btn-qq:hover{background:#0ea3db}.portfolio-summary{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px;display:grid}.cashflow-section{margin-bottom:32px}.cashflow-section .section-toolbar{margin-bottom:12px}.review-section,.risk-profile-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:none;margin-bottom:32px;padding:18px}.risk-profile-section.risk-high{border-color:#ef44445c}.risk-profile-section.risk-medium{border-color:#f59e0b52}.risk-profile-section.risk-low{border-color:#22c55e42}.risk-profile-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.risk-profile-title{color:var(--text-primary);flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;font-size:22px;font-weight:800;display:flex}.risk-profile-title span{color:var(--text-secondary);background:#94a3b81f;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700}.risk-tag-row{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.risk-tag{color:var(--accent-blue);background:#2563eb1f;border:1px solid #2563eb3d;border-radius:6px;padding:5px 8px;font-size:12px;font-weight:700}.risk-metric-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.risk-metric{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#0f172a59;padding:12px}.risk-note-list{color:var(--text-secondary);margin:14px 0 0;padding-left:18px;font-size:13px;line-height:1.6}.review-metric-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px;display:grid}.review-metric-grid.compact{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.review-metric{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#0f172a59;padding:12px}.review-chart-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:14px;display:grid}.trade-timeline{flex-direction:column;gap:8px;display:flex}.trade-timeline-item{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#0f172a59;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.trade-timeline-item>div:first-child{align-items:center;gap:8px;min-width:0;display:flex}.trade-timeline-meta{color:var(--text-secondary);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;font-size:12px;display:flex}.muted-inline{color:var(--text-muted);font-size:12px}.indicator-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.indicator-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:14px}.indicator-card.signal-positive{border-color:#10b98152}.indicator-card.signal-negative{border-color:#ef444452}.indicator-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-weight:700;display:flex}.indicator-category{color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:600}.indicator-category.leading{color:var(--accent-cyan)}.indicator-category.coincident{color:var(--accent-blue-bright)}.indicator-category.lagging{color:var(--accent-yellow)}.indicator-value{margin-bottom:8px;font-size:24px;font-weight:800;line-height:1.1}.indicator-value.trend-up{color:var(--accent-green)}.indicator-value.trend-down{color:var(--accent-red)}.indicator-desc{color:var(--text-secondary);font-size:12px;line-height:1.5}.cycle-hidden-card{border-color:#06b6d447}.cashflow-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.cashflow-item{border:1px solid var(--border-color);background:#1620328c;border-radius:4px;min-height:78px;padding:14px 16px}.cashflow-label{color:var(--text-secondary);margin-bottom:8px;font-size:12px}.cashflow-value{color:var(--text-primary);font-size:18px;font-weight:800}.summary-card{text-align:left;flex-direction:column;justify-content:space-between;min-height:126px;padding:24px;display:flex;position:relative;overflow:hidden}.summary-card:before{content:"";background:var(--accent-blue);opacity:.5;height:2px;position:absolute;top:0;left:0;right:0}.summary-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:600}.summary-value{color:var(--text-primary);letter-spacing:-.03em;font-size:28px;font-weight:800}.holdings-table{border-collapse:separate;border-spacing:0;width:100%}.holdings-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);z-index:1;background:#2563eb0f;padding:14px 16px;font-size:11px;font-weight:600;position:sticky;top:0}.holdings-table td{border-bottom:1px solid var(--border-color);transition:background var(--duration-fast);padding:14px 16px;font-size:14px}.holdings-table tr:last-child td{border-bottom:none}.btn-buy{background:var(--accent-red);color:#fff;border-radius:var(--radius-sm);width:100%;padding:10px 20px;font-weight:600}.btn-sell{background:var(--accent-green);color:#fff;border-radius:var(--radius-sm);width:100%;padding:10px 20px;font-weight:600}.limit-alert{top:calc(var(--header-height) + 41px);border-radius:var(--radius-lg);z-index:200;animation:alertSlideIn .4s var(--ease-spring);align-items:center;gap:10px;padding:14px 28px;font-weight:600;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000059}@keyframes alertSlideIn{0%{opacity:0;transform:translate(-50%)translateY(-20px)scale(.9)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.limit-alert.up{background:var(--accent-red);color:#fff;box-shadow:0 8px 24px #00000059}.limit-alert.down{background:var(--accent-green);color:#fff;box-shadow:0 8px 24px #00000059}.news-banner{background:var(--accent-blue-dim);animation:bannerSlideDown .3s var(--ease-out);border-bottom:1px solid #2563eb33;align-items:center;gap:12px;margin:0 -24px;padding:12px 24px;font-size:14px;display:flex}@keyframes bannerSlideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.news-banner .news-tag{background:var(--accent-blue);color:#fff}.announcement-banner{background:var(--accent-blue-dim);border-bottom:1px solid var(--border-color);animation:bannerSlideDown .3s var(--ease-out);align-items:center;gap:12px;padding:10px 24px;display:flex}.announcement-tag{background:var(--accent-blue);color:#fff;border-radius:6px;padding:3px 10px;font-size:11px;font-weight:700}.lb-item{align-items:center;gap:16px;margin-bottom:8px;padding:16px 20px;display:flex;position:relative;overflow:hidden}.lb-item:first-child{background:#f59e0b14;border-color:#f59e0b33}.lb-rank{text-align:center;width:40px;color:var(--text-muted);font-size:20px;font-weight:800}.lb-rank.top1{color:var(--accent-yellow);text-shadow:none;font-size:26px}.lb-rank.top2{color:#cbd5e1;text-shadow:none;font-size:22px}.lb-rank.top3{color:#d97706;text-shadow:none;font-size:22px}.quiz-option{cursor:pointer;border:1px solid var(--border-color);color:var(--text-primary);text-align:left;width:100%;margin-bottom:12px;padding:16px 20px;font-family:inherit;font-size:15px;position:relative;overflow:hidden}.quiz-option:before{content:"";background:var(--accent-blue);opacity:0;width:3px;transition:opacity var(--duration-normal);position:absolute;top:0;bottom:0;left:0}.quiz-option:hover{border-color:var(--accent-blue);background:var(--accent-blue-dim)}.quiz-option:hover:before{opacity:1}.quiz-option.correct{background:var(--accent-green-dim);border-color:var(--accent-green);box-shadow:none}.quiz-option.correct:before{background:var(--accent-green);opacity:1}.quiz-option.wrong{background:var(--accent-red-dim);border-color:var(--accent-red);box-shadow:none}.quiz-option.wrong:before{background:var(--accent-red);opacity:1}.admin-page{width:100%;max-width:min(1720px,100vw - 32px);margin:0 auto;padding:4px 0 36px}.admin-header{box-shadow:none;background:0 0;border:1px solid #60a5fa2e;border-radius:4px;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;padding:28px 30px;display:flex;position:relative;overflow:hidden}.admin-header:after{content:"";pointer-events:none;background:0 0;height:220px;position:absolute;inset:auto -10% -45% 40%}.admin-header-copy,.admin-header-actions{z-index:1;position:relative}.admin-header-copy{max-width:64ch}.admin-header-kicker{color:#bfdbfe;letter-spacing:.14em;text-transform:uppercase;background:#2563eb24;border:1px solid #60a5fa38;border-radius:999px;align-items:center;gap:6px;margin-bottom:12px;padding:6px 12px;font-size:11px;font-weight:700;display:inline-flex}.admin-header h2{background:var(--accent-blue-bright);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:8px;font-size:24px;font-weight:800}.admin-header-copy p{color:var(--text-secondary);max-width:52ch;margin:0;line-height:1.6}.admin-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.admin-role-pill{color:var(--text-secondary);background:#0f172ab8;border:1px solid #94a3b82e;border-radius:999px;align-items:center;gap:6px;padding:9px 14px;font-size:12px;font-weight:600;display:inline-flex}.admin-workspace-nav{z-index:20;box-shadow:none;Nonebackdrop-filter:none;background:#0f172ad1;border:1px solid #94a3b821;border-radius:4px;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin:0 0 18px;padding:10px;display:grid;position:sticky;top:10px}.admin-workspace-nav button{min-width:0;color:var(--text-secondary);text-align:left;transition:background var(--duration-normal), border-color var(--duration-normal), color var(--duration-normal), transform var(--duration-normal);background:0 0;border:1px solid #0000;border-radius:4px;padding:11px 13px}.admin-workspace-nav button:hover{color:var(--text-primary);background:#3b82f617;transform:translateY(-1px)}.admin-workspace-nav button.active{color:#dbeafe;box-shadow:none;background:#2563eb47;border-color:#60a5fa42}.admin-workspace-nav strong,.admin-workspace-nav span{display:block}.admin-workspace-nav strong{font-size:14px;font-weight:700}.admin-workspace-nav span{color:inherit;opacity:.72;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:11px;overflow:hidden}.admin-catalog-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.admin-catalog-heading h3{margin-bottom:6px}.admin-catalog-heading p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.55}.admin-catalog-heading>span{background:var(--accent-blue-dim);color:var(--accent-blue-bright);border-radius:999px;flex:none;padding:6px 10px;font-size:12px}.admin-catalog-layout{grid-template-columns:minmax(230px,.34fr) minmax(0,1fr);gap:18px;min-width:0;display:grid}.admin-catalog-list{flex-direction:column;gap:6px;max-height:460px;padding-right:4px;display:flex;overflow:auto}.admin-catalog-list button{width:100%;color:var(--text-secondary);text-align:left;background:#0f172a70;border:1px solid #0000;border-radius:4px;padding:10px 12px}.admin-catalog-list button:hover,.admin-catalog-list button.active{color:var(--text-primary);background:#2563eb24;border-color:#60a5fa4d}.admin-catalog-list strong,.admin-catalog-list span{display:block}.admin-catalog-list strong{letter-spacing:.04em;font-size:12px}.admin-catalog-list span{opacity:.78;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:12px;overflow:hidden}.admin-catalog-editor{background:#0f172a59;border:1px solid #94a3b81f;border-radius:4px;min-width:0;padding:16px}.admin-catalog-field{min-width:0;color:var(--text-secondary);flex-direction:column;gap:7px;font-size:12px;display:flex}.admin-catalog-field-wide{grid-column:1/-1}.admin-catalog-field textarea{resize:vertical;min-height:72px}.admin-catalog-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.admin-catalog-form-grid{align-items:stretch}.admin-catalog-form-grid>.admin-catalog-field{background:#0f172a3d;border:1px solid #94a3b81c;border-radius:4px;padding:12px}.admin-field-label{color:var(--text-primary);letter-spacing:.01em;font-size:12px;font-weight:700}.admin-field-help{color:#94a3b8;font-size:11px;font-weight:400;line-height:1.55;display:block}.admin-catalog-field input:focus-visible,.admin-catalog-field select:focus-visible,.admin-catalog-field textarea:focus-visible,.admin-json-area:focus-visible{outline-offset:1px;border-color:#60a5fa7a;outline:2px solid #60a5fa6b}.admin-form-guide{color:#bfdbfe;background:#2563eb14;border:1px solid #3b82f62e;border-radius:4px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;margin-bottom:14px;padding:11px 13px;font-size:12px;line-height:1.55;display:grid}.admin-form-guide strong{white-space:nowrap}.admin-form-guide span{color:#a8bad3}.admin-catalog-editor>.admin-catalog-actions{z-index:3;Nonebackdrop-filter:none;background:#0f172ae6;border-top:1px solid #94a3b81c;border-radius:0 0 16px 16px;margin:18px -16px -16px;padding:13px 16px 16px;position:sticky;bottom:-16px}.admin-catalog-workspace{min-height:min(760px,100vh - 190px)}.admin-catalog-tabs{background:#0f172a57;border:1px solid #94a3b81f;border-radius:4px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px;padding:6px;display:grid}.admin-catalog-tabs button{color:var(--text-secondary);background:0 0;border:1px solid #0000;border-radius:4px;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;display:flex}.admin-catalog-tabs button.active{color:#dbeafe;background:#2563eb2e;border-color:#60a5fa47}.admin-catalog-tabs button span{min-width:28px;color:var(--accent-blue-bright);text-align:center;background:#3b82f61f;border-radius:999px;padding:2px 7px;font-size:11px}.admin-catalog-section{min-width:0}.admin-catalog-editor-heading,.admin-catalog-filterbar{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.admin-catalog-editor-heading h4{color:var(--text-primary);margin:0 0 5px}.admin-catalog-editor-heading p{color:var(--text-secondary);margin:0;font-size:12px}.admin-catalog-editor-heading>span{border-radius:999px;flex:none;padding:5px 9px;font-size:11px}.admin-catalog-editor-heading>span.is-on{color:#86efac;background:#22c55e1f}.admin-catalog-editor-heading>span.is-off{color:#fca5a5;background:#ef44441f}.admin-catalog-editor-heading>span.admin-unsaved-badge{color:#fde68a;background:#f59e0b1a;border:1px solid #f59e0b33}.admin-catalog-filterbar{background:#0f172a47;border:1px solid #94a3b81f;border-radius:4px;align-items:end;padding:12px 14px}.admin-catalog-filterbar .admin-catalog-field{width:min(360px,100%)}.admin-catalog-filterbar>span{color:var(--text-secondary);padding-bottom:9px;font-size:12px}.admin-news-catalog-layout{grid-template-columns:minmax(230px,.42fr) minmax(0,1fr)}.admin-json-area{color:#dbeafe;resize:vertical;tab-size:2;background:#020617b3;border:1px solid #60a5fa33;border-radius:4px;width:100%;min-height:420px;padding:14px 16px;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.admin-json-area:focus{border-color:#60a5fa73;outline:2px solid #3b82f633}.admin-json-editor-label{justify-content:space-between;align-items:baseline;gap:14px;margin:14px 0 8px;display:flex}.admin-json-editor-label .admin-field-help{text-align:right;max-width:680px}.admin-schema-guide{background:#0f172a4d;border:1px solid #60a5fa2b;border-radius:4px;margin-bottom:12px;overflow:hidden}.admin-schema-guide summary{color:#bfdbfe;cursor:pointer;-webkit-user-select:none;user-select:none;padding:11px 14px;font-size:12px;font-weight:700}.admin-schema-guide summary:hover{background:#3b82f612}.admin-schema-grid{background:#94a3b814;border-top:1px solid #94a3b81a;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.admin-schema-grid>div{background:#080f1df0;min-width:0;padding:11px 13px}.admin-schema-grid code{color:#93c5fd;font-size:11px}.admin-schema-grid p{color:#94a3b8;margin:5px 0 0;font-size:11px;line-height:1.55}.admin-focus-selector{flex-direction:column;align-items:flex-end;gap:5px;min-width:min(280px,45%);display:flex}.admin-focus-selector .admin-stock-select{width:100%}.admin-focus-selector small{color:#86efac;text-align:right;font-size:10px;line-height:1.35}.admin-template-preview{color:var(--text-primary);background:#0f172a57;border:1px solid #94a3b81f;border-radius:4px;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 14px;display:flex}.admin-template-preview span{color:var(--text-secondary);font-size:12px}.admin-editor-mode{background:#02061742;border:1px solid #94a3b81f;border-radius:4px;grid-template-columns:repeat(2,minmax(120px,1fr));gap:4px;margin-bottom:14px;padding:4px;display:inline-grid}.admin-editor-mode button{min-height:38px;color:var(--text-secondary);background:0 0;border:1px solid #0000;border-radius:4px;padding:7px 12px}.admin-editor-mode button.active{color:#dbeafe;background:#2563eb2e;border-color:#60a5fa3d}.admin-news-form-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.admin-effect-editor{background:#0206172e;border:1px solid #94a3b81f;border-radius:4px;margin-top:16px;padding:14px}.admin-effect-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.admin-effect-heading h5{color:var(--text-primary);margin:0 0 4px;font-size:13px}.admin-effect-heading p{color:var(--text-secondary);margin:0;font-size:11px}.admin-effect-heading button{white-space:nowrap;min-height:36px;padding:7px 11px}.admin-effect-list{flex-direction:column;gap:10px;display:flex}.admin-effect-row{background:#0f172a57;border:1px solid #94a3b81a;border-radius:4px;grid-template-columns:minmax(120px,.7fr) minmax(160px,1fr) minmax(110px,.65fr) minmax(110px,.65fr) auto;align-items:stretch;gap:10px;padding:11px;display:grid}.admin-effect-row>.admin-catalog-field{justify-content:flex-start}.admin-effect-remove{color:#fca5a5;background:#ef444412;border-color:#ef44442e;align-self:center;min-height:38px;padding:7px 10px}.admin-news-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.admin-news-options>label{cursor:pointer;background:#0f172a3d;border:1px solid #94a3b81c;border-radius:4px;align-items:flex-start;gap:10px;min-height:82px;padding:12px;display:flex}.admin-news-options input{flex:none;margin-top:3px}.admin-news-options strong,.admin-news-options small{display:block}.admin-news-options strong{color:var(--text-primary);font-size:12px}.admin-news-options small{color:#94a3b8;margin-top:5px;font-size:11px;line-height:1.45}@media (width<=900px){.admin-workspace-nav{grid-template-columns:repeat(3,minmax(0,1fr));position:static}.admin-catalog-layout{grid-template-columns:1fr}.admin-catalog-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));max-height:220px;display:grid}.admin-json-area{min-height:340px}.admin-schema-grid{grid-template-columns:1fr}.admin-effect-row{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-effect-remove{align-self:end}.admin-news-options{grid-template-columns:1fr}}@media (width<=520px){.admin-workspace-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:7px}.admin-workspace-nav button{padding:10px}.admin-catalog-heading,.admin-catalog-editor-heading,.admin-catalog-filterbar,.admin-template-preview{flex-direction:column;align-items:stretch}.admin-catalog-tabs{grid-template-columns:1fr}.admin-form-guide{grid-template-columns:1fr;gap:4px}.admin-json-editor-label{flex-direction:column;align-items:stretch}.admin-json-editor-label .admin-field-help{text-align:left}.admin-focus-selector{align-items:stretch;min-width:100%}.admin-focus-selector small{text-align:left}.admin-editor-mode{grid-template-columns:1fr 1fr;display:grid}.admin-effect-heading{flex-direction:column}.admin-effect-row{grid-template-columns:1fr}}@media (width<=620px){.footer-ai-provider{grid-template-columns:auto minmax(0,1fr)}.footer-ai-provider-link{grid-column:2}}.admin-msg{background:var(--bg-elevated);border:1px solid var(--accent-blue);border-radius:var(--radius-lg);color:var(--text-primary);box-shadow:none;z-index:300;animation:adminMsgIn .4s var(--ease-spring);padding:12px 28px;font-size:14px;font-weight:500;position:fixed;top:24px;left:50%;transform:translate(-50%)}@keyframes adminMsgIn{0%{opacity:0;transform:translate(-50%)translateY(-16px)scale(.95)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.auth-error{background:var(--accent-red-dim);color:var(--accent-red);border-radius:var(--radius-sm);text-align:center;animation:shakeError .4s var(--ease-out);border:1px solid #ef44444d;margin-bottom:16px;padding:10px 14px;font-size:13px}@keyframes shakeError{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px;display:grid}.admin-stat-card{text-align:left;background:#0f172adb;border:1px solid #94a3b81f;border-radius:4px;padding:22px 20px;position:relative;overflow:hidden}.admin-stat-card:before{content:"";background:var(--accent-blue);opacity:.6;height:2px;position:absolute;top:0;left:0;right:0}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-size:11px;font-weight:600}.stat-value{color:var(--text-primary);font-size:24px;font-weight:800}.admin-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.admin-overview-card{box-shadow:none;background:#0f172adb;border:1px solid #94a3b824;border-radius:4px;padding:20px}.admin-overview-card-feature{grid-column:span 2}.admin-overview-card-pulse{background:#0f172aeb}.admin-overview-head{justify-content:space-between;gap:16px;margin-bottom:18px;display:flex}.admin-overview-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.admin-overview-title{color:var(--text-primary);margin-top:6px;font-size:20px;font-weight:800}.admin-overview-meta{color:var(--text-secondary);margin-top:8px;line-height:1.5}.admin-pulse-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.admin-pulse-chip{color:#67e8f9;text-align:center;background:#0f172acc;border:1px solid #67e8f92e;border-radius:4px;min-width:52px;padding:8px 12px;font-size:22px;font-weight:800}.admin-pulse-bar{background:#1e293be6;border-radius:999px;height:8px;margin-top:14px;overflow:hidden}.admin-pulse-bar span{border-radius:inherit;background:#38bdf8;height:100%;display:block}.admin-pulse-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.admin-pulse-item{background:#0f172a94;border:1px solid #94a3b81f;border-radius:4px;padding:12px 14px}.admin-pulse-item span{color:var(--text-muted);margin-bottom:6px;font-size:12px;display:block}.admin-pulse-item strong{color:var(--text-primary);font-size:14px}.admin-pulse-note{color:var(--text-secondary);margin:14px 0 0;font-size:13px;line-height:1.6}.admin-overview-inline{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.admin-overview-inline span,.admin-market-tags span{color:var(--text-secondary);background:#1e293bad;border:1px solid #94a3b81f;border-radius:999px;padding:6px 10px;font-size:12px}.admin-stock-select{min-width:180px;max-width:240px}.admin-market-hero{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.admin-market-price{color:var(--text-primary);font-size:clamp(28px,4vw,42px);font-weight:900;line-height:1}.admin-market-change{margin-top:8px;font-size:16px;font-weight:700}.admin-market-tags{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-mini-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.admin-mini-metric{background:#0f172a8f;border:1px solid #94a3b81f;border-radius:4px;padding:12px 14px}.admin-mini-metric span{color:var(--text-muted);margin-bottom:6px;font-size:12px;display:block}.admin-mini-metric strong{color:var(--text-primary);font-size:14px}.admin-target-callout{color:var(--text-secondary);background:#1e293b94;border:1px solid #94a3b824;border-radius:4px;margin-top:16px;padding:12px 14px;font-size:13px;line-height:1.6}.admin-market-empty{color:var(--text-muted);margin:0;font-size:13px}.admin-market-intel-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:16px;margin-bottom:18px;display:grid}.admin-market-focus-note{color:var(--text-secondary);margin:0 0 14px;font-size:13px;line-height:1.7}.admin-market-focus-toolbar{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.admin-market-context-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.admin-market-context-card{background:#1e293bcc;border:1px solid #94a3b81f;border-radius:4px;padding:14px 16px}.admin-market-context-card span{color:var(--text-muted);margin-bottom:6px;font-size:12px;display:block}.admin-market-context-card strong{color:var(--text-primary);font-size:14px}.admin-orderbook-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.admin-orderbook-card{background:#0f172a85;border:1px solid #94a3b81f;border-radius:4px;padding:16px}.admin-orderbook-title,.admin-watch-title{color:var(--text-primary);margin-bottom:10px;font-size:13px;font-weight:700}.admin-orderbook-row{border-bottom:1px solid #94a3b814;justify-content:space-between;gap:12px;padding:8px 0;font-size:13px;display:flex}.admin-orderbook-row:last-child{border-bottom:none}.admin-orderbook-empty{color:var(--text-muted);font-size:12px}.admin-orderbook-placeholder{color:var(--text-secondary);background:#0f172a70;border:1px dashed #94a3b82e;border-radius:4px;margin-top:12px;padding:12px 14px;font-size:12px;line-height:1.7}.admin-watch-columns{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;display:grid}.admin-watch-list,.admin-sector-list,.admin-event-stack{flex-direction:column;gap:10px;display:flex}.admin-watch-summary{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.admin-watch-summary span{color:var(--text-secondary);background:#1e293bad;border:1px solid #94a3b81f;border-radius:999px;padding:6px 10px;font-size:12px}.admin-watch-item,.admin-sector-chip{color:var(--text-secondary);text-align:left;background:#0f172a7a;border:1px solid #94a3b81f;border-radius:4px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.admin-watch-item>span:first-child,.admin-sector-chip>span:first-child{flex-direction:column;gap:4px;display:flex}.admin-watch-item strong,.admin-sector-chip strong{color:var(--text-primary)}.admin-watch-item small,.admin-sector-chip small{color:var(--text-muted);font-size:11px}.admin-watch-item.active,.admin-sector-chip.active{color:var(--text-primary);background:#2563eb29;border-color:#60a5fa61}.admin-sector-chip.hot,.admin-sector-chip.cold{box-shadow:none}.admin-sector-summary{background:#0f172a9e;border:1px solid #60a5fa29;border-radius:4px;margin-top:12px;padding:14px}.admin-sector-summary-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-sector-summary-head strong{color:var(--text-primary);font-size:14px}.admin-sector-summary-head p{color:var(--text-muted);margin:6px 0 0;font-size:12px;line-height:1.5}.admin-sector-summary-badge{color:var(--text-secondary);white-space:nowrap;background:#1e293bad;border:1px solid #94a3b81f;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.admin-sector-summary-badge.hot{color:#fbbf24;border-color:#fbbf243d}.admin-sector-summary-badge.cold{color:#67e8f9;border-color:#67e8f93d}.admin-sector-summary-stocks{flex-direction:column;gap:8px;margin-top:12px;display:flex}.admin-sector-stock{color:var(--text-secondary);background:#1e293b8f;border:1px solid #94a3b81a;border-radius:4px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.admin-sector-stock>span:first-child{align-items:center;gap:6px;display:flex}.admin-event-chip{color:var(--text-secondary);background:#082f4961;border:1px solid #22d3ee29;border-radius:4px;padding:12px 14px;line-height:1.5}.admin-event-chip strong{color:#bae6fd;margin-bottom:4px;display:block}.admin-controls{box-shadow:none;background:#0f172ad6;border:1px solid #94a3b81f;border-radius:4px;margin-bottom:16px;padding:24px}.admin-controls h3{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:16px;font-size:16px;font-weight:700;display:flex}.admin-controls h3:before{content:"";background:var(--accent-blue);border-radius:2px;width:3px;height:18px}.admin-control-btns{flex-wrap:wrap;gap:10px;display:flex}.btn-admin-pause,.btn-admin-resume,.btn-admin-news{border-radius:var(--radius-sm);color:#fff;padding:9px 18px;font-size:13px;font-weight:600}.btn-admin-news.active{box-shadow:none}.btn-admin-pause{background:var(--accent-yellow)}.btn-admin-pause:hover{box-shadow:none;transform:translateY(-1px)}.btn-admin-resume{background:var(--accent-green)}.btn-admin-resume:hover{box-shadow:none;transform:translateY(-1px)}.btn-admin-news{background:var(--accent-blue)}.btn-admin-news:hover{box-shadow:none;transform:translateY(-1px)}.btn-danger{color:var(--accent-red);background:0 0;border:1px solid #ef444466;border-radius:6px;padding:4px 10px;font-size:12px}.btn-danger:hover{background:var(--accent-red-dim);border-color:var(--accent-red)}.admin-param-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.admin-param-item{background:#0f172a7a;border:1px solid #94a3b81a;border-radius:4px;flex-direction:column;gap:10px;padding:16px;display:flex}.admin-param-item label{color:var(--text-secondary);font-size:13px;font-weight:500}.admin-param-item button:not(.stock-code-option){background:var(--accent-blue);color:#fff;border-radius:6px;align-self:flex-start;padding:6px 16px;font-size:13px;font-weight:600}.admin-param-item button:not(.stock-code-option):hover{background:#1d4ed8}.admin-inline-stock-card{box-shadow:none;background:#1e293bd1;border:1px solid #60a5fa38;border-radius:4px;padding:14px 16px}.admin-inline-stock-head{color:var(--text-primary);justify-content:space-between;gap:12px;margin-bottom:10px;font-size:14px;display:flex}.admin-inline-stock-head span{color:#93c5fd;font-size:13px;font-weight:700}.admin-inline-stock-metrics{color:var(--text-secondary);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.admin-inline-stock-metrics span{background:#0f172a8a;border:1px solid #94a3b81a;border-radius:999px;padding:6px 10px}.stock-code-autocomplete{position:relative}.stock-code-autocomplete input{width:100%}.stock-code-dropdown{z-index:30;Nonebackdrop-filter:none;-webkit-backdrop-filter:none;background:#0f172afa;border:1px solid #94a3b824;border-radius:4px;max-height:260px;padding:6px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000059}.stock-code-dropdown.upward{top:auto;bottom:calc(100% + 8px)}.stock-code-option{width:100%;color:var(--text-primary);text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;display:flex}.stock-code-option:hover,.stock-code-option.active{background:#94a3b814;border-color:#94a3b81f}.stock-code-option-main,.stock-code-option-side{flex-direction:column;gap:3px;display:flex}.stock-code-option-main{min-width:0}.stock-code-option-symbol{color:var(--text-primary);letter-spacing:.04em;background:#94a3b814;border:1px solid #94a3b81f;border-radius:999px;align-self:flex-start;padding:4px 8px;font-size:12px;font-weight:800;display:inline-flex}.stock-code-option-name{color:var(--text-primary);font-size:14px;font-weight:600}.stock-code-option-main small{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.stock-code-option-side{flex-shrink:0;align-items:flex-end}.stock-code-option-side span{font-size:12px;font-weight:700}.stock-code-option-side small{color:var(--text-muted);font-size:11px}.stock-code-empty{color:var(--text-secondary);padding:14px 16px;font-size:13px}.admin-ai-log-panel{background:#0f172a80;border:1px solid #94a3b81a;border-radius:4px;margin-top:18px;padding:16px}.admin-ai-log-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.admin-ai-log-table{border:1px solid var(--border-color);background:#0f172a52;border-radius:4px;max-height:320px;overflow-y:auto}.admin-game-stage{margin-top:18px}.admin-stage-header{background:#0f172abd;border:1px solid #94a3b814;border-radius:4px;margin:6px 0 14px;padding:14px 16px}.admin-stage-kicker{color:#c4b5fd;letter-spacing:.08em;text-transform:uppercase;background:#7c3aed24;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.admin-stage-header p{color:var(--text-secondary);margin:10px 0 0;font-size:13px;line-height:1.6}.admin-catalog-shell{gap:18px;display:grid}.admin-catalog-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.admin-catalog-stat{border:1px solid var(--border-color);background:linear-gradient(180deg, #2563eb14, #2563eb05), var(--bg-surface);border-radius:14px;gap:6px;min-width:0;padding:16px 18px;display:grid}.admin-catalog-stat-label{color:var(--text-secondary);font-size:12px;font-weight:600}.admin-catalog-stat-value{color:var(--text-primary);font-size:28px;font-weight:800;line-height:1}.admin-catalog-stat-meta{color:var(--text-secondary);font-size:12px}.admin-catalog-body{grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);align-items:start;gap:18px;display:grid}.admin-catalog-side{align-content:start;gap:18px;display:grid}.admin-catalog-panel{border:1px solid var(--border-color);background:linear-gradient(#ffffff05,#fff0),#0f172a47;border-radius:16px;gap:14px;min-width:0;padding:18px;display:grid}.admin-catalog-panel h4{color:var(--text-primary);font-size:15px;font-weight:700}.admin-catalog-panel-subtitle{color:var(--text-secondary);margin-top:4px;font-size:12px}.admin-catalog-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-catalog-controls{gap:12px;display:grid}.admin-catalog-field{gap:6px;display:grid}.admin-catalog-field>span{color:var(--text-secondary);font-size:12px;font-weight:600}.admin-catalog-badges{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-catalog-badge{min-height:28px;color:var(--text-secondary);background:#ffffff0a;border:1px solid #94a3b838;border-radius:999px;align-items:center;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.admin-catalog-badge.is-success{color:#bbf7d0;background:#10b9811f;border-color:#10b98159}.admin-catalog-badge.is-danger{color:#fecaca;background:#ef44441f;border-color:#ef444459}.admin-json-area{resize:vertical;background:#0f172a7a;border-color:#94a3b82e;border-radius:14px;width:100%;min-height:240px;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.6}.admin-json-area-stock{min-height:250px}.admin-json-area-compact{min-height:180px}.admin-json-area-template{min-height:320px}.admin-downstream-panel{background:#0f172a3d;border:1px solid #94a3b824;border-radius:14px;gap:12px;padding:16px;display:grid}.admin-downstream-list{gap:8px;max-height:232px;display:grid;overflow-y:auto}.admin-downstream-option{cursor:pointer;transition:border-color var(--duration-normal), background var(--duration-normal);background:#ffffff05;border:1px solid #94a3b826;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.admin-downstream-option:hover{background:#2563eb14;border-color:#3b82f652}.admin-downstream-option.selected{background:#4f46e51f;border-color:#6366f173}.admin-downstream-main{align-items:center;gap:10px;min-width:0;display:flex}.admin-downstream-copy{min-width:0;display:grid}.admin-downstream-title{color:var(--text-primary);font-size:14px;font-weight:600}.admin-downstream-meta,.admin-downstream-empty,.admin-downstream-relations,.admin-catalog-filter-note,.admin-catalog-preview-meta{color:var(--text-secondary);font-size:12px}.admin-downstream-chip-list{flex-wrap:wrap;gap:8px;display:flex}.admin-downstream-chip{color:var(--text-primary)!important;background:#ffffff0a!important;border:1px solid #94a3b847!important;border-radius:999px!important;padding:7px 11px!important}.admin-downstream-chip:hover{background:#2563eb1a!important;border-color:#3b82f666!important}.admin-downstream-warning{color:#fca5a5;background:#7f1d1d1f;border:1px solid #ef444438;border-radius:12px;padding:10px 12px;font-size:12px}.admin-downstream-relations{gap:6px;display:grid}.admin-catalog-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-catalog-actions button{background:linear-gradient(135deg, var(--accent-blue), #1d4ed8);color:#f8fafc;white-space:nowrap;border:1px solid #3b82f652;border-radius:10px;justify-content:center;align-self:stretch;align-items:center;min-height:42px;padding:0 16px;font-size:13px;font-weight:600;line-height:1;display:inline-flex;box-shadow:0 10px 24px #2563eb29}.admin-catalog-actions button:hover{transform:translateY(-1px);box-shadow:0 12px 28px #2563eb38}.admin-catalog-actions button:disabled{box-shadow:none}.admin-btn-secondary{color:var(--text-primary)!important;box-shadow:none!important;background:#ffffff0d!important;border:1px solid #94a3b83d!important}.admin-btn-secondary:hover{background:#2563eb24!important;border-color:#3b82f65c!important;box-shadow:0 10px 24px #2563eb1f!important}.admin-btn-danger{color:#fecaca!important;box-shadow:none!important;background:#ef44441f!important;border:1px solid #ef44444d!important}.admin-btn-danger:hover{background:#ef44442e!important;border-color:#f8717173!important;box-shadow:0 10px 24px #ef444424!important}.admin-catalog-actions .btn-admin-news{border-radius:10px;min-height:42px;padding:0 18px}.admin-catalog-template-top{grid-template-columns:minmax(0,1fr) minmax(260px,.72fr);align-items:start;gap:14px;display:grid}.admin-catalog-preview{background:#ffffff08;border:1px solid #94a3b826;border-radius:14px;gap:6px;padding:14px 16px;display:grid}.admin-catalog-preview strong{color:var(--text-primary);font-size:15px}.admin-catalog-preview-wide{margin-top:2px}@media (width<=1180px){.admin-catalog-body,.admin-catalog-template-top{grid-template-columns:1fr}.admin-catalog-badges{justify-content:flex-start}}@media (width<=768px){.admin-catalog-summary{grid-template-columns:1fr}.admin-catalog-panel{padding:14px}.admin-catalog-actions button{flex:calc(50% - 8px)}.admin-json-area-stock,.admin-json-area-template{min-height:220px}.admin-json-area-compact{min-height:160px}}.admin-param-item input[type=range]{appearance:none;background:var(--bg-surface);border:none;border-radius:3px;outline:none;width:100%;height:6px;padding:0}.admin-param-item input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent-blue);cursor:pointer;width:16px;height:16px;box-shadow:none;border-radius:50%}[data-theme=light] .admin-header{box-shadow:none;background:0 0;border-color:#60a5fa3d}[data-theme=light] .admin-header-kicker,[data-theme=light] .admin-stage-kicker{color:var(--accent-blue);background:#2563eb1a;border-color:#2563eb38}[data-theme=light] .admin-role-pill,[data-theme=light] .admin-workspace-nav,[data-theme=light] .admin-catalog-tabs,[data-theme=light] .admin-catalog-editor,[data-theme=light] .admin-ai-log-panel,[data-theme=light] .admin-ai-log-table{color:var(--text-primary);box-shadow:none;background:#ffffffe6;border-color:#94a3b83d}[data-theme=light] .admin-workspace-nav button.active,[data-theme=light] .admin-catalog-tabs button.active{color:var(--accent-blue);box-shadow:none;background:#2563eb1f;border-color:#2563eb47}[data-theme=light] .admin-catalog-list button,[data-theme=light] .admin-catalog-form-grid>.admin-catalog-field,[data-theme=light] .admin-overview-card,[data-theme=light] .admin-pulse-item,[data-theme=light] .admin-mini-metric,[data-theme=light] .admin-market-context-card,[data-theme=light] .admin-orderbook-card,[data-theme=light] .admin-watch-item,[data-theme=light] .admin-sector-chip,[data-theme=light] .admin-sector-summary,[data-theme=light] .admin-sector-stock,[data-theme=light] .admin-controls,[data-theme=light] .admin-param-item,[data-theme=light] .admin-inline-stock-card,[data-theme=light] .admin-stage-header,[data-theme=light] .empty-state{color:var(--text-primary);box-shadow:none;background:#ffffffe0;border-color:#94a3b83d}[data-theme=light] .admin-overview-card-feature,[data-theme=light] .admin-overview-card-pulse,[data-theme=light] .admin-controls,[data-theme=light] .admin-inline-stock-card,[data-theme=light] .admin-stage-header{background:#fffffff0}[data-theme=light] .admin-catalog-editor>.admin-catalog-actions{background:#ffffffe6;border-color:#94a3b838}[data-theme=light] .admin-field-help,[data-theme=light] .admin-form-guide span{color:var(--text-muted)}[data-theme=light] .admin-form-guide,[data-theme=light] .admin-target-callout,[data-theme=light] .admin-orderbook-placeholder,[data-theme=light] .admin-event-chip{color:var(--text-secondary);background:#eff6ffb8;border-color:#3b82f62e}[data-theme=light] .admin-event-chip strong,[data-theme=light] .admin-inline-stock-head span{color:var(--accent-blue)}[data-theme=light] .admin-overview-inline span,[data-theme=light] .admin-market-tags span,[data-theme=light] .admin-watch-summary span,[data-theme=light] .admin-sector-summary-badge,[data-theme=light] .admin-inline-stock-metrics span,[data-theme=light] .admin-pulse-chip,[data-theme=light] .stock-code-option-symbol{color:var(--text-secondary);background:#f1f5f9e6;border-color:#94a3b847}[data-theme=light] .admin-pulse-bar{background:#e2e8f0f2}[data-theme=light] .stock-code-dropdown{background:#fffffffa;border-color:#94a3b83d;box-shadow:0 8px 24px #00000059}[data-theme=light] .stock-code-option:hover,[data-theme=light] .stock-code-option.active{background:#2563eb14;border-color:#2563eb2e}.reg-mode-btns{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.reg-mode-btn{border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-color);padding:8px 16px;font-size:13px;font-weight:500}.reg-mode-btn:hover{border-color:var(--accent-blue);color:var(--text-primary)}.reg-mode-btn.active{background:var(--accent-blue-dim);color:var(--accent-blue);border-color:var(--accent-blue);font-weight:600}.invite-section{margin-top:8px}.invite-form{align-items:center;gap:8px;margin-bottom:12px;display:flex}.invite-list{flex-direction:column;gap:6px;display:flex}.invite-item{background:var(--bg-surface);border-radius:6px;align-items:center;gap:12px;padding:8px 12px;font-size:13px;display:flex}.invite-item code{color:var(--accent-blue);font-weight:600}.invite-item span{color:var(--text-secondary)}.invite-item button{color:var(--accent-red);background:0 0;border:1px solid #ef44444d;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:12px}.invite-item button:hover{background:var(--accent-red-dim)}.import-results{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:16px}.admin-table{border-collapse:separate;border-spacing:0;width:100%}.admin-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);white-space:nowrap;padding:12px 16px;font-size:11px;font-weight:600}.admin-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:12px 16px;font-size:13px}.admin-table tr:last-child td{border-bottom:none}.admin-table tbody tr{transition:background .15s}.admin-table tbody tr:hover td{background:var(--bg-card-hover)}.admin-status{border-radius:100px;padding:3px 10px;font-size:11px;font-weight:600}.admin-status.active{background:var(--accent-green-dim);color:var(--accent-green)}.admin-status.frozen{background:var(--accent-red-dim);color:var(--accent-red)}.admin-status.unverified{background:var(--accent-yellow-dim);color:var(--accent-yellow)}.admin-actions{flex-wrap:wrap;gap:6px;display:flex}.admin-actions button{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-color);white-space:nowrap;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:500}.admin-actions button:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-hover)}.admin-actions .btn-verify{background:var(--accent-green-dim);color:var(--accent-green);border-color:#10b9814d}.admin-actions .btn-verify:hover{border-color:var(--accent-green);background:#10b98140}.admin-students{margin-bottom:16px;padding:24px;overflow-x:auto}.admin-students h3{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:16px;font-size:16px;font-weight:700;display:flex}.admin-students h3:before{content:"";background:var(--accent-purple);border-radius:2px;width:3px;height:18px}.empty-state{text-align:center;color:var(--text-muted);border-radius:var(--radius-lg);background:#1620326b;border:1px dashed #94a3b833;padding:64px 24px;font-size:14px}.empty-state p{opacity:.8;max-width:40ch;margin:0 auto}.empty-state:before{content:"○";opacity:.3;margin-bottom:12px;font-size:40px;animation:2s ease-in-out infinite emptyPulse;display:block}@keyframes emptyPulse{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.4;transform:scale(1.05)}}.pw-change-overlay{Nonebackdrop-filter:none;-webkit-backdrop-filter:none;z-index:500;background:#020617b3;justify-content:center;align-items:center;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.pw-change-card{background:var(--bg-elevated);border:1px solid var(--border-glow);border-radius:var(--radius-xl);text-align:center;box-shadow:none;width:90%;max-width:380px;animation:modalIn .35s var(--ease-spring);padding:36px}.pw-change-card h3{margin-bottom:16px;font-weight:700}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:scale(.92)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.economic-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px;display:grid}.cycle-progress-bar{background:var(--bg-surface);border-radius:3px;height:6px;margin-bottom:8px;overflow:hidden}.cycle-progress-fill{background:var(--accent-blue);border-radius:3px;height:100%;position:relative;overflow:hidden}.cycle-progress-fill:after{content:"";background:0 0;animation:2s ease-in-out infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (width<=1200px){.admin-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-overview-card-feature{grid-column:span 2}.admin-market-intel-grid,.admin-market-context-grid,.admin-watch-columns,.admin-game-grid{grid-template-columns:1fr}}@media (width<=768px){.app-header{padding:0 12px}.header-left{margin-right:8px}.header-nav{Nonebackdrop-filter:none;-webkit-backdrop-filter:none;z-index:90;border-top:1px solid var(--border-color);box-shadow:none;background:#0b1221f7;justify-content:space-around;gap:0;padding:4px 2px 6px;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden}.header-nav:before{content:"";background:0 0;height:1px;position:absolute;top:0;left:5%;right:5%}.header-nav a{white-space:nowrap;flex-direction:column;flex:1;justify-content:center;gap:2px;min-width:0;padding:6px 8px;font-size:10px}.header-nav a svg{width:16px;height:16px}.header-nav a.active{box-shadow:none}.nav-secondary{display:none!important}.app-main{padding:12px;padding-top:calc(var(--header-height) + 50px);margin-bottom:64px}.stock-grid{grid-template-columns:1fr}.stock-card{padding:12px}.portfolio-summary{grid-template-columns:1fr 1fr}.risk-profile-head{flex-direction:column}.risk-tag-row{justify-content:flex-start}.realism-grid,.realism-detail-grid{grid-template-columns:1fr}.app-main-admin{max-width:100%;padding-left:12px;padding-right:12px}.admin-page{max-width:100%}.admin-header{flex-direction:column;padding:22px 20px}.admin-header-actions{justify-content:flex-start}.admin-stats{grid-template-columns:repeat(2,1fr)}.admin-overview-grid,.admin-market-intel-grid,.admin-market-context-grid,.admin-watch-columns,.admin-orderbook-grid,.admin-game-grid{grid-template-columns:1fr}.stock-code-option{flex-direction:column;align-items:flex-start}.stock-code-option-side{align-items:flex-start}.admin-overview-card-feature{grid-column:span 1}.admin-pulse-head,.admin-sector-summary-head{flex-direction:column}.admin-pulse-grid{grid-template-columns:1fr}.admin-market-hero{flex-direction:column;align-items:flex-start}.admin-market-tags{justify-content:flex-start}.admin-mini-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-param-grid{grid-template-columns:1fr}.admin-students{overflow-x:auto}.admin-table{min-width:600px}.admin-actions{gap:4px}.admin-actions button{padding:3px 8px;font-size:11px}.page-title{font-size:20px}.login-card{max-width:100%;margin:0 12px;padding:28px 20px}.login-card h1{font-size:22px}.trade-panel{padding:12px}.trade-tabs{flex-wrap:wrap;gap:6px}.trade-tab{padding:6px 10px;font-size:13px}.position-btns{flex-wrap:wrap}.position-btns button{padding:4px 8px;font-size:12px}.chart-container{padding:12px}.chart-tabs{gap:4px}.chart-tabs button{padding:5px 8px;font-size:12px}.ma-legend{gap:8px;font-size:10px}.news-item{gap:10px;padding:10px 12px;font-size:13px}.news-tag{padding:2px 6px;font-size:11px}.market-index-card{padding:12px}.pw-change-overlay>div{max-width:calc(100vw - 24px);margin:12px}}.auth-closed-hint{text-align:center;border-radius:var(--radius-sm);background:var(--accent-yellow-dim);color:var(--accent-yellow);border:1px solid #f59e0b4d;margin-bottom:16px;padding:10px 12px;font-size:13px}.login-features{color:var(--text-muted);justify-content:center;gap:16px;margin-top:20px;font-size:12px;display:flex}.login-features span{transition:all var(--duration-normal);background:#2563eb0f;border:1px solid #2563eb1a;border-radius:999px;padding:4px 10px}.login-features span:hover{color:var(--text-secondary);background:#2563eb1f}.pw-strength{margin:-4px 0 10px}.pw-strength-bar{background:var(--bg-card-hover);border-radius:999px;width:100%;height:6px;overflow:hidden}.pw-strength-fill{height:100%;transition:width .2s}.pw-strength-label{margin-top:6px;font-size:12px;font-weight:600;display:inline-block}.announcement-close{color:var(--text-secondary);background:0 0;margin-left:auto;font-size:22px;line-height:1}.announcement-close:hover{color:var(--text-primary)}.blackswan-alert{z-index:220;width:min(420px,100vw - 32px);animation:blackSwanIn .5s var(--ease-spring);position:fixed;bottom:24px;right:24px}@keyframes blackSwanIn{0%{opacity:0;transform:translate(40px)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}.blackswan-alert-content{border-radius:var(--radius-lg);Nonebackdrop-filter:none;-webkit-backdrop-filter:none;background:#7f1d1df2;border:1px solid #ef444473;padding:20px;box-shadow:0 8px 24px #00000059}.blackswan-tag{color:#fecaca;background:#ef444433;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.blackswan-title{margin-top:8px;font-size:16px;font-weight:700;display:block}.blackswan-desc{color:#fee2e2;margin-top:6px;font-size:13px}.blackswan-edu{color:#fecaca;opacity:.9;margin-top:6px;font-size:12px}.blackswan-close{color:#fee2e2;background:#ef444433;border:1px solid #ef444466;border-radius:6px;margin-top:10px;padding:7px 12px}.btn-back{border:1px solid var(--border-color);color:var(--text-secondary);background:0 0;border-radius:4px;width:fit-content;margin-bottom:14px;padding:10px 16px}.btn-back:hover{color:var(--accent-blue-bright);border-color:var(--border-glow);background:#2563eb0f}.btn-order,.btn-next,.btn-diary{background:var(--accent-blue);color:#fff;letter-spacing:.02em;border-radius:4px;width:100%;padding:12px 14px;font-weight:700}.trade-msg{border:1px solid #0000;border-radius:4px;margin-top:10px;padding:12px;font-size:13px}.trade-msg.success{background:var(--accent-green-dim);color:var(--accent-green);border-color:#10b9813d}.trade-msg.error{background:var(--accent-red-dim);color:var(--accent-red);border-color:#ef44443d}.news-text{color:var(--text-primary)}.achievements-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.achievement-card{text-align:center;padding:20px 16px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.achievement-card:hover{transform:translateY(-2px)}.achievement-card.locked{opacity:.45;filter:grayscale(.5)brightness(.9)}.achievement-card.hidden-locked{opacity:.3}.achievement-card.earned.rarity-common{box-shadow:none;border-color:#10b98159}.achievement-card.earned.rarity-common:before{content:"";background:var(--accent-green);height:2px;position:absolute;top:0;left:0;right:0}.achievement-card.earned.rarity-rare{box-shadow:none;border-color:#3b82f666}.achievement-card.earned.rarity-rare:before{content:"";background:#3b82f6;height:2px;position:absolute;top:0;left:0;right:0}.achievement-card.earned.rarity-epic{box-shadow:none;border-color:#8b5cf666}.achievement-card.earned.rarity-epic:before{content:"";background:#8b5cf6;height:2px;position:absolute;top:0;left:0;right:0}.achievement-card.earned.rarity-legendary{box-shadow:none;border-color:#f59e0b80;animation:3s ease-in-out infinite legendary-shimmer}.achievement-card.earned.rarity-legendary:before{content:"";background:#f59e0b 0 0/200% 100%;height:3px;animation:2s linear infinite shimmer-bar;position:absolute;top:0;left:0;right:0}.rarity-badge{letter-spacing:.5px;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;position:absolute;top:8px;right:8px}.rarity-badge-common{color:#10b981;background:#10b98126}.rarity-badge-rare{color:#3b82f6;background:#3b82f626}.rarity-badge-epic{color:#8b5cf6;background:#8b5cf626}.rarity-badge-legendary{color:#f59e0b;background:#f59e0b26}.hidden-badge{color:#a78bfa;background:#8b5cf61f;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600;position:absolute;top:8px;left:8px}.achievement-name{margin-bottom:6px;font-size:14px;font-weight:700}.achievement-desc{color:var(--text-secondary);font-size:12px;line-height:1.4}.app-notification-stack{z-index:10020;pointer-events:none;flex-direction:column;gap:10px;width:min(360px,100vw - 24px);display:flex;position:fixed;top:80px;right:16px}.app-notification-card{pointer-events:auto;Nonebackdrop-filter:none;-webkit-backdrop-filter:none;background:#121c2ef0;border:1px solid #94a3b829;border-radius:4px;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 14px 14px 16px;animation:.35s cubic-bezier(.16,1,.3,1) toast-slide-in;display:flex;box-shadow:0 8px 24px #00000059}.app-notification-card.tone-info{border-color:#2563eb38}.app-notification-card.tone-success{border-color:#10b9813d}.app-notification-card.tone-warning{border-color:#f59e0b3d}.app-notification-card.tone-danger{border-color:#ef44443d}.app-notification-main{flex:1;gap:12px;min-width:0;display:flex}.app-notification-icon{background:#94a3b814;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:inline-flex}.app-notification-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.app-notification-title{color:var(--text-primary);font-size:12px;font-weight:700;line-height:1.35}.app-notification-message{color:var(--text-secondary);font-size:12px;line-height:1.45}.app-notification-close{width:24px;height:24px;color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:inline-flex}.app-notification-close:hover{color:var(--text-primary);border-color:var(--border-color);background:#94a3b814}.achievement-toast-container{z-index:10000;pointer-events:none;flex-direction:column;gap:8px;max-width:340px;display:flex;position:fixed;top:228px;right:16px}.achievement-toast{pointer-events:auto;cursor:pointer;background:var(--bg-surface);border:1px solid var(--border-color);Nonebackdrop-filter:none;border-radius:4px;align-items:flex-start;gap:12px;padding:14px 16px;animation:.4s cubic-bezier(.16,1,.3,1) toast-slide-in;display:flex;box-shadow:0 8px 24px #00000059}.achievement-toast.rarity-rare{border-color:#3b82f666;box-shadow:0 8px 24px #00000059}.achievement-toast.rarity-epic{border-color:#8b5cf666;box-shadow:0 8px 24px #00000059}.achievement-toast.rarity-legendary{border-color:#f59e0b80;animation:.4s cubic-bezier(.16,1,.3,1) toast-slide-in,3s ease-in-out infinite legendary-shimmer;box-shadow:0 8px 24px #00000059}.achievement-toast-icon{flex-shrink:0;font-size:36px}.achievement-toast-body{flex:1;min-width:0}.achievement-toast-header{align-items:center;gap:6px;margin-bottom:2px;display:flex}.achievement-toast-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.achievement-toast-name{color:var(--text-primary);margin-bottom:2px;font-size:15px;font-weight:700}.achievement-toast-desc{color:var(--text-secondary);font-size:12px;line-height:1.4}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes legendary-shimmer{0%,to{box-shadow:none}50%{box-shadow:none}}@keyframes shimmer-bar{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=600px){.app-notification-stack{width:auto;left:8px;right:8px}.achievement-toast-container{max-width:none;left:8px;right:8px}.achievements-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.leaderboard-tabs{border:1px solid var(--border-color);background:#1620328c;border-radius:4px;flex-wrap:wrap;gap:8px;width:fit-content;margin-bottom:16px;padding:6px;display:flex}.lb-tab{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:4px;padding:9px 16px;font-weight:700}.lb-tab.active{color:var(--accent-blue-bright);box-shadow:none;background:#2563eb26;border-color:#2563eb4d;font-weight:600}.lb-list{flex-direction:column;gap:8px;display:flex}.lb-name{color:var(--text-primary);flex:1;font-weight:600}.chart-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);Nonebackdrop-filter:none;-webkit-backdrop-filter:none;margin-bottom:16px;padding:20px}.sector-bar{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.sector-chip{border:1px solid var(--border-color);transition:all var(--duration-normal) var(--ease-out);background:#16203299;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.sector-chip:hover{background:#2563eb14;border-color:#2563eb33}.sector-chip.hot{background:#f59e0b0d;border-color:#f59e0b73}.sector-name{color:var(--text-secondary)}.sector-change{font-weight:600}.section-title{color:var(--text-secondary);margin-bottom:10px;font-size:15px}.macro-events{gap:8px;margin-bottom:16px;display:grid}.macro-event-title{margin-bottom:6px;font-weight:700}.macro-event-desc{color:var(--text-secondary);font-size:13px}.economic-dashboard{margin-bottom:16px}.economic-label,.economic-desc{color:var(--text-secondary);font-size:12px}.economic-value{margin:4px 0 8px;font-size:24px;font-weight:700}.sentiment-value{font-size:32px;font-weight:800}.sentiment-label{margin-bottom:8px;font-size:14px;font-weight:600}.sentiment-bar{background:var(--bg-surface);border-radius:999px;width:100%;height:8px;margin-bottom:8px;overflow:hidden}.sentiment-fill{background:linear-gradient(90deg,#10b981 0%,#f59e0b 50%,#ef4444 100%);height:100%;position:relative;overflow:hidden}.sentiment-fill:after{content:"";background:linear-gradient(90deg,#0000 30%,#fff3 50%,#0000 70%);animation:2.5s ease-in-out infinite shimmer;position:absolute;inset:0}.sentiment-desc{color:var(--text-secondary);font-size:12px}.thermometer-gradient{height:10px;box-shadow:none;background:linear-gradient(90deg,#2563eb,#10b981,#f59e0b,#ef4444);border-radius:999px;margin-bottom:20px;position:relative}.thermometer-indicator{background:var(--bg-deep);border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;top:-3px;transform:translate(-50%)}.thermometer-labels{color:var(--text-muted);justify-content:space-between;font-size:11px;display:flex;position:absolute;top:14px;left:0;right:0}.thermometer-signals{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px;display:grid}.thermo-signal{justify-content:space-between;gap:8px;font-size:12px;display:flex}.thermo-label{color:var(--text-muted)}.thermo-value{color:var(--text-primary);font-weight:600}.stock-detail{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px;display:grid}.stock-detail-summary{flex-direction:column;gap:0;display:flex}.detail-hero{border-radius:var(--radius-lg);box-shadow:none;background:0 0;border:1px solid #2563eb24;padding:26px 28px}.detail-header{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.detail-header h1{letter-spacing:-.04em;margin:0;font-size:clamp(32px,4vw,48px);line-height:1.05}.detail-price-row{flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:22px;display:flex}.detail-price-row .stock-price{margin-bottom:0;font-size:clamp(44px,6vw,64px);line-height:.98}.detail-price-row .stock-change{font-size:28px;font-weight:700;margin-left:0!important}.detail-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:0;display:grid}.stat-item{border-radius:var(--radius-md);min-height:104px;box-shadow:none;background:#162032d6;border:1px solid #94a3b81f;padding:16px 18px}.stat-value{letter-spacing:-.03em;font-size:clamp(18px,2vw,22px);font-weight:800}.chart-tabs,.trade-tabs{gap:8px;margin-bottom:10px;display:flex}.chart-tabs button,.trade-tab{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:4px;padding:8px 12px;font-weight:700}.chart-tabs button.active,.trade-tab.active-buy,.trade-tab.active-cover{color:var(--accent-red);background:var(--accent-red-dim);border-color:#ef444459}.trade-tab.active-sell,.trade-tab.active-short{color:var(--accent-green);background:var(--accent-green-dim);border-color:#10b98159}.trade-panel{border-radius:var(--radius-lg);height:fit-content;top:calc(var(--header-height) + 33px + 8px);box-shadow:none;background:0 0;border:1px solid #94a3b824;padding:18px;position:sticky}.trade-form{flex-direction:column;gap:12px;display:flex}.trade-form>div>label,.order-section h4{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:700;display:block}.trade-panel input,.trade-panel select{background:#0c1321b3;border-radius:4px;min-height:46px}.trade-info{color:var(--text-secondary);border-bottom:1px dashed #94a3b81f;justify-content:space-between;padding:8px 0;font-size:13px;display:flex}.trade-info:last-of-type{border-bottom:none}.trade-info span:last-child{color:var(--text-primary)}.trade-attribution{border-top:1px solid #94a3b829;margin-top:12px;padding-top:12px}.trade-attribution-head{color:var(--text-primary);justify-content:space-between;align-items:center;gap:12px;font-size:13px;font-weight:800;display:flex}.trade-attribution-summary{color:var(--text-secondary);margin:8px 0 10px;font-size:12px;line-height:1.5}.trade-attribution-block{margin-top:10px}.trade-attribution-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:11px;font-weight:800}.trade-attribution-row{border-bottom:1px dashed #94a3b81f;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;padding:8px 0;display:grid}.trade-attribution-row span{min-width:0}.trade-attribution-row strong{color:var(--text-primary);font-size:12px;display:block}.trade-attribution-row small{color:var(--text-muted);margin-top:2px;font-size:11px;line-height:1.4;display:block}.trade-attribution-row b{white-space:nowrap;font-size:12px}.trade-attribution-signals{gap:6px;display:grid}.trade-attribution-signal{background:#0f172a70;border-left:3px solid #94a3b859;padding:8px 10px}.trade-attribution-signal strong{color:var(--text-primary);margin-bottom:3px;font-size:12px;display:block}.trade-attribution-signal span{color:var(--text-secondary);font-size:11px;line-height:1.45}.trade-attribution-signal.good{border-left-color:var(--accent-green)}.trade-attribution-signal.warning{border-left-color:var(--accent-yellow)}.trade-attribution-signal.risk{border-left-color:var(--accent-red)}.trade-attribution-lessons{color:var(--text-secondary);margin:0;padding-left:18px;font-size:12px;line-height:1.55}.attribution-positive{color:var(--accent-green)}.attribution-negative{color:var(--accent-red)}.attribution-neutral{color:var(--text-secondary)}.realism-grid,.realism-detail-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:22px;display:grid}.realism-detail-grid{margin-bottom:0}.realism-panel{border-radius:var(--radius-sm);background:#0f172a6b;border:1px solid #94a3b824;min-width:0;padding:12px}.realism-item{border-bottom:1px dashed #94a3b81f;flex-direction:column;gap:4px;padding:9px 0;display:flex}.realism-item:last-child{border-bottom:0}.realism-item strong{min-width:0;color:var(--text-primary);font-size:13px;line-height:1.35}.realism-item span,.realism-item small{min-width:0;color:var(--text-secondary);font-size:12px;line-height:1.45}.realism-item small{color:var(--text-muted)}.phase-rumor{border-left:3px solid #f59e0bb3;padding-left:8px}.phase-announcement,.phase-analysis{border-left:3px solid #2563ebb8;padding-left:8px}.phase-clarification{border-left:3px solid #22c55ead;padding-left:8px}.realism-empty{color:var(--text-muted);padding:12px 0;font-size:12px;line-height:1.45}.capital-flow-row{border-bottom:1px dashed #94a3b81f;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:6px 10px;padding:8px 0;display:grid}.capital-flow-row:last-child{border-bottom:0}.capital-flow-row>span{background:#94a3b81a;border-radius:6px;grid-row:span 2;justify-content:center;align-self:stretch;align-items:center;font-size:12px;font-weight:800;display:inline-flex}.capital-flow-row strong{min-width:0;color:var(--text-primary);font-size:13px}.capital-flow-row small{min-width:0;color:var(--text-muted);font-size:11px;line-height:1.4}.realism-detail-section{margin-top:0}.order-book-mini{grid-template-columns:1fr 1fr;gap:10px;display:grid}.order-book-mini>div{flex-direction:column;gap:6px;min-width:0;display:flex}.order-book-mini strong{color:var(--text-primary);font-size:12px}.order-book-mini span{color:var(--text-secondary);background:#94a3b814;border-radius:6px;padding:5px 7px;font-size:12px}.order-section{border-top:1px solid #94a3b824;margin-top:18px;padding-top:18px}.ma-legend{border-top:1px dashed #94a3b81f;gap:16px;margin-top:14px;padding-top:10px;font-size:12px;display:flex}.fundamentals-section{margin-top:0}.fundamentals-title{letter-spacing:-.02em;margin-bottom:16px;font-size:18px;font-weight:800}.fundamentals-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.fundamental-item{border-radius:var(--radius-md);background:#162032d6;border:1px solid #94a3b81f;padding:16px}.fundamental-label{color:var(--text-secondary);margin-bottom:6px;font-size:12px}.fundamental-value{letter-spacing:-.03em;margin-bottom:8px;font-size:24px;font-weight:800}.fundamental-tip{color:var(--text-muted);font-size:12px;line-height:1.4}.stock-news-section{margin-top:0}.detail-description p{color:var(--text-secondary);margin-top:10px;font-size:14px;line-height:1.75}.detail-news-list{background:#0c132159;border:1px solid #94a3b824;border-radius:4px;padding:8px}.detail-news-list .news-item{border-radius:4px}.t1-warning{background:var(--accent-yellow-dim);color:var(--accent-yellow);border-radius:var(--radius-sm);border:1px solid #f59e0b59;padding:8px 10px;font-size:12px}.t1-badge.restricted{background:var(--accent-yellow-dim);color:var(--accent-yellow)}.t1-badge.tradable{background:var(--accent-green-dim);color:var(--accent-green)}.trade-log{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);margin-top:8px;padding:10px 12px;font-size:13px}.trade-log.buy{border-left:3px solid var(--accent-red)}.trade-log.sell{border-left:3px solid var(--accent-green)}.diary-form textarea{resize:vertical;width:100%;min-height:110px;margin-bottom:10px}.diary-list{gap:10px;display:grid}.diary-entry{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:12px}.diary-entry-header{color:var(--text-muted);justify-content:space-between;margin-bottom:8px;font-size:12px;display:flex}.diary-entry-content{color:var(--text-primary);white-space:pre-wrap;line-height:1.6}.quiz-progress{margin-bottom:12px}.quiz-progress-text{color:var(--text-secondary);margin-bottom:6px;font-size:12px}.quiz-progress-bar{background:var(--bg-surface);border-radius:999px;height:8px;overflow:hidden}.quiz-progress-fill{background:var(--accent-blue);height:100%;position:relative;overflow:hidden}.quiz-progress-fill:after{content:"";background:0 0;animation:2s ease-in-out infinite shimmer;position:absolute;inset:0}.quiz-streak{color:var(--accent-yellow);margin-bottom:10px;font-weight:600}.quiz-card{max-width:720px}.quiz-question{margin-bottom:14px;font-size:18px;font-weight:600}.quiz-options{gap:10px;display:grid}.quiz-option.disabled{pointer-events:none;opacity:.9}.quiz-result{border-radius:var(--radius-sm);margin:12px 0;padding:12px;font-size:14px}.quiz-result.correct{background:var(--accent-green-dim);border:1px solid #10b98166}.quiz-result.wrong{background:var(--accent-red-dim);border:1px solid #ef444466}.missions-page h2,.predictions-page h2,.social-page h2,.blindbox-page h2{margin-bottom:14px}.mission-toast{background:var(--accent-green-dim);color:var(--accent-green);border-radius:var(--radius-sm);z-index:300;animation:toastSlideIn .4s var(--ease-spring);border:1px solid #10b98166;padding:12px 16px;position:fixed;top:84px;right:20px;box-shadow:0 8px 24px #00000059}@keyframes toastSlideIn{0%{opacity:0;transform:translate(30px)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}.rank-bar{margin-bottom:12px;padding:16px;position:relative;overflow:hidden}.rank-bar:before{content:"";background:var(--accent-blue);height:2px;position:absolute;top:0;left:0;right:0}.rank-info{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.rank-title{font-weight:700}.rank-xp{color:var(--text-secondary);font-size:12px}.rank-progress{background:var(--bg-surface);border-radius:999px;height:8px;overflow:hidden}.rank-progress-fill{background:var(--accent-blue);height:100%;position:relative;overflow:hidden}.rank-progress-fill:after{content:"";background:0 0;animation:2s ease-in-out infinite shimmer;position:absolute;inset:0}.mission-filters,.pred-tabs,.social-tabs{border:1px solid var(--border-color);background:#16203280;border-radius:4px;flex-wrap:wrap;gap:8px;width:fit-content;margin-bottom:12px;padding:6px;display:flex}.filter-btn,.pred-tab,.social-tab{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:4px;padding:8px 14px;font-weight:700}.filter-btn.active,.pred-tab.active,.social-tab.active{color:var(--accent-blue-bright);background:#2563eb1f;border-color:#2563eb4d;font-weight:600}.mission-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.mission-card{padding:16px;position:relative;overflow:hidden}.mission-card.completed{border-color:#10b98159}.mission-card.completed:before{content:"";background:var(--accent-green);height:2px;position:absolute;top:0;left:0;right:0}.mission-header,.mission-footer{color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;display:flex}.mission-desc,.mission-reward,.mission-progress-text,.mission-diff{color:var(--text-secondary);font-size:12px}.mission-cat{background:var(--bg-surface);border-radius:999px;padding:2px 8px}.mission-progress-bar{background:var(--bg-surface);border-radius:999px;height:8px;margin:10px 0;overflow:hidden}.mission-progress-fill{background:var(--accent-blue);height:100%;position:relative;overflow:hidden}.mission-progress-fill:after{content:"";background:0 0;animation:2s ease-in-out infinite shimmer;position:absolute;inset:0}.claim-btn{background:var(--accent-green);color:#fff;border-radius:var(--radius-sm);width:100%;margin-top:8px;padding:9px 10px;font-weight:600}.claim-btn:hover{box-shadow:none;transform:translateY(-1px)}.claimed-badge{color:var(--accent-green);margin-top:8px;font-size:12px;font-weight:700;display:inline-block}.pred-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.pred-stat-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);text-align:center;padding:14px;position:relative;overflow:hidden}.pred-stat-item:before{content:"";background:var(--accent-blue);opacity:.5;height:2px;position:absolute;top:0;left:0;right:0}.pred-stat-val{font-size:22px;font-weight:800;display:block}.pred-stat-label{color:var(--text-secondary);margin-top:4px;font-size:12px;display:block}.pred-form,.pred-list,.pred-leaderboard,.social-feed,.popular-stocks,.title-grid,.bb-cards-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:none;padding:18px}.pred-form-row{margin-bottom:10px}.pred-form-row label{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.pred-form select,.pred-form input{background:#0c1321b3;border-radius:4px;width:100%;min-height:46px}.pred-type-btns,.pred-dir-btns,.pred-dur-btns{flex-wrap:wrap;gap:8px;display:flex}.pred-type-btns button,.pred-dir-btns button,.pred-dur-btns button{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:4px;min-width:88px;padding:9px 12px;font-weight:700}.pred-type-btns button.active,.pred-dur-btns button.active,.pred-dir-btns button.active{color:var(--accent-blue);border-color:var(--accent-blue);background:var(--accent-blue-dim);box-shadow:none}.pred-dir-btns .dir-up.active{color:var(--accent-red);background:var(--accent-red-dim);box-shadow:none;border-color:#ef444459}.pred-dir-btns .dir-down.active{color:var(--accent-green);background:var(--accent-green-dim);box-shadow:none;border-color:#10b98159}.pred-msg{color:var(--accent-yellow);background:var(--accent-yellow-dim);border:1px solid #f59e0b38;border-radius:4px;margin-bottom:12px;padding:12px 14px;font-size:13px}.pred-submit{background:var(--accent-blue);color:#fff;letter-spacing:.02em;width:100%;box-shadow:none;border-radius:4px;margin-top:10px;padding:12px 14px;font-weight:700}.pred-submit:hover{box-shadow:none;transform:translateY(-1px)}.pred-item,.pred-rank-item{border-bottom:1px solid var(--border-color);grid-template-columns:1.2fr 1fr auto auto;align-items:center;gap:10px;padding:9px 0;display:grid}.pred-item:last-child,.pred-rank-item:last-child{border-bottom:none}.pred-points{color:var(--accent-green);font-weight:700}.pred-type-badge{color:var(--text-muted);font-size:11px}.pred-target,.pred-prediction,.pred-rank-id,.pred-rank-pos,.pred-rank-pts,.pred-rank-acc{font-size:13px}.empty-text{color:var(--text-muted);font-size:13px}.feed-item,.popular-item{border-bottom:1px solid var(--border-color);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 0;display:grid}.feed-item:last-child,.popular-item:last-child{border-bottom:none}.popular-item{cursor:pointer}.feed-icon{font-size:16px}.feed-msg,.popular-name,.popular-rank{color:var(--text-primary);font-weight:500}.feed-time,.popular-count,.popular-code{color:var(--text-muted);font-size:12px}.title-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.title-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-sm);flex-direction:column;gap:6px;padding:12px;display:flex}.title-card.earned{border-color:#10b98166}.title-card.locked{opacity:.6}.title-icon{font-size:22px}.title-name{font-weight:700}.title-desc{color:var(--text-secondary);font-size:12px}.bb-error{border-radius:var(--radius-sm);background:var(--accent-red-dim);color:var(--accent-red);margin-bottom:10px;padding:10px}.bb-daily,.bb-tier,.bb-result-card,.bb-card-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md)}.bb-daily{align-items:center;gap:12px;margin-bottom:12px;padding:12px;display:flex}.bb-daily-icon{font-size:24px}.bb-daily-info p{color:var(--text-secondary);font-size:12px}.bb-daily-btn,.bb-open-btn,.bb-close-btn,.bb-activate-btn{border-radius:var(--radius-sm);background:var(--accent-blue);color:#fff;margin-left:auto;padding:8px 14px;font-weight:600}.bb-daily-btn:hover,.bb-open-btn:hover,.bb-activate-btn:hover{box-shadow:none;transform:translateY(-1px)}.bb-tiers{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:12px;display:grid}.bb-tier{text-align:center;padding:12px}.bb-tier-detail{color:var(--text-secondary);gap:4px;margin:8px 0 10px;font-size:12px;display:grid}.bb-reveal-overlay,.bb-result{Nonebackdrop-filter:none;-webkit-backdrop-filter:none;z-index:280;background:#020617c7;justify-content:center;align-items:center;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.bb-reveal-box,.bb-result-card{text-align:center;width:min(420px,90vw);animation:modalIn .4s var(--ease-spring);padding:28px}.bb-result-tier{color:var(--accent-yellow);margin-bottom:8px;font-weight:700}.bb-result-stock{justify-content:center;gap:8px;margin-bottom:8px;font-size:18px;display:flex}.bb-stock-code{color:var(--text-secondary)}.bb-result-shares{margin-bottom:6px;font-size:20px;font-weight:700}.bb-result-price{color:var(--text-secondary);margin-bottom:10px}.bb-bonus-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-sm);text-align:left;margin:10px 0;padding:10px}.bb-bonus-tag{color:var(--accent-purple);font-size:11px;font-weight:700}.bb-bonus-name{margin-top:6px;font-weight:700;display:block}.bb-bonus-desc,.bb-bonus-edu{color:var(--text-secondary);margin-top:6px;font-size:12px}.bb-card-item{align-items:center;gap:8px;margin-top:8px;padding:10px;display:flex}.bb-card-desc{color:var(--text-secondary);font-size:12px}.bb-active-cards,.bb-held-cards{margin-top:10px}.bb-stock-name{font-weight:700}.bb-card-item .bb-activate-btn{margin-left:auto}.bb-card-item.active{border-color:#10b98173}.spinning{animation:1s linear infinite bbSpin}@keyframes bbSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.news-tag.positive{background:var(--accent-red-dim);color:var(--accent-red)}.news-tag.negative{background:var(--accent-green-dim);color:var(--accent-green)}.news-tag.macro,.news-tag.earnings,.news-tag.neutral-cat{background:var(--bg-surface);color:var(--text-secondary)}.market-time-bar{z-index:1001;border-bottom:1px solid var(--border-color);color:var(--text-secondary);Nonebackdrop-filter:none;-webkit-backdrop-filter:none;background:#2563eb1f;justify-content:center;align-items:center;gap:8px;padding:6px 16px;font-size:13px;font-weight:600;transition:background .3s,color .3s;display:flex}.market-time-bar.day-break-active{color:var(--accent-yellow);background:#f59e0b2e}.market-time-dot{background:var(--accent-green);width:8px;height:8px;box-shadow:none;border-radius:50%;animation:2s ease-in-out infinite timeDotPulse}@keyframes timeDotPulse{0%,to{opacity:1}50%{opacity:.4}}.market-time-sep{color:var(--text-muted);margin:0 2px}.position-btns{background:#1620326b;border:1px solid #94a3b81a;border-radius:4px;gap:6px;margin-top:8px;padding:6px;display:flex}.position-btns button{color:var(--accent-blue-bright);background:var(--accent-blue-dim);cursor:pointer;transition:all var(--duration-fast);border:1px solid #2563eb40;border-radius:4px;flex:1;padding:8px 6px;font-family:inherit;font-size:12px;font-weight:700}.position-btns button:hover{border-color:var(--accent-blue);background:#2563eb40;transform:translateY(-1px)}.position-btns button:active{transform:translateY(0)}.btn-undo{width:100%;color:var(--text-secondary);border:1px dashed var(--border-hover);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast);background:0 0;margin-top:8px;padding:10px;font-family:inherit;font-size:13px;font-weight:500}.btn-undo:hover{color:var(--accent-yellow);border-color:var(--accent-yellow);background:var(--accent-yellow-dim)}.admin-row-clickable{cursor:pointer}.admin-row-clickable:hover td{color:var(--accent-blue-bright)}.student-detail-modal{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:90vw;max-width:960px;max-height:85vh;animation:modalIn var(--duration-slow) var(--ease-spring);padding:28px;overflow-y:auto;box-shadow:0 8px 24px #00000059}.sd-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.sd-header h3{font-size:18px;font-weight:700}.sd-meta{color:var(--text-muted);align-items:center;gap:10px;margin-top:6px;font-size:12px;display:flex}.sd-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:24px;line-height:1}.sd-close:hover{color:var(--text-primary)}.sd-summary{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.sd-summary-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);text-align:center;padding:14px}.sd-label{color:var(--text-muted);margin-bottom:4px;font-size:12px}.sd-val{font-size:18px;font-weight:700}.sd-inline-action{border:1px solid var(--border-color);background:var(--bg-surface);color:var(--accent-blue-bright);border-radius:5px;margin-top:8px;padding:3px 8px;font-size:12px;font-weight:600}.sd-inline-action:hover{border-color:var(--accent-blue);background:var(--accent-blue-dim)}.cash-adjust-modal{text-align:left;max-width:440px}.cash-adjust-modal h3{text-align:left;margin-bottom:6px}.cash-adjust-target{color:var(--text-muted);margin:0 0 16px;font-size:13px}.cash-adjust-field{color:var(--text-secondary);flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px;font-weight:600;display:flex}.cash-adjust-field input,.cash-adjust-field select{border:1px solid var(--border-color);background:var(--bg-card);width:100%;color:var(--text-primary);border-radius:4px;padding:10px 12px;font-size:14px}.cash-adjust-preview{border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-primary);border-radius:4px;margin:4px 0 16px;padding:10px 12px;font-size:13px;font-weight:600}.cash-adjust-actions{justify-content:flex-end;gap:8px;display:flex}.cash-adjust-actions button{border:1px solid var(--border-color);border-radius:4px;width:auto;padding:8px 14px}.cash-adjust-actions button:first-child{background:var(--bg-surface);color:var(--text-secondary)}.sd-section{margin-bottom:18px}.sd-section-title{color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin-bottom:10px;padding-bottom:6px;font-size:14px;font-weight:600}.sd-badges{flex-wrap:wrap;gap:6px;display:flex}.sd-badge{background:var(--accent-blue-dim);color:var(--accent-blue-bright);border:1px solid #2563eb33;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:500}.sd-table{font-size:13px}.sd-table th{font-size:12px}.sd-trade-type{border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.sd-trade-type.buy{background:var(--accent-red-dim);color:var(--accent-red)}.sd-trade-type.sell{background:var(--accent-green-dim);color:var(--accent-green)}.sd-trade-type.short{background:var(--accent-purple-dim);color:var(--accent-purple)}.sd-trade-type.cover{background:var(--accent-yellow-dim);color:var(--accent-yellow)}.margin-alert{z-index:220;width:min(420px,100vw - 32px);animation:blackSwanIn .5s var(--ease-spring);position:fixed;bottom:24px;right:24px}.margin-alert-content{border-radius:var(--radius-lg);Nonebackdrop-filter:none;-webkit-backdrop-filter:none;background:#7f1d1df2;border:1px solid #ef444473;padding:20px;box-shadow:0 8px 24px #00000059}.margin-alert.warning .margin-alert-content{background:#785000f2;border-color:#f59e0b73;box-shadow:0 8px 24px #00000059}.margin-alert-tag{color:#fecaca;background:#ef444433;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.margin-alert.warning .margin-alert-tag{color:#fef3c7;background:#f59e0b33}.margin-alert-msg{color:#fee2e2;margin-top:8px;font-size:14px;font-weight:600}.margin-alert.warning .margin-alert-msg{color:#fef3c7}.margin-alert-loss{color:#fca5a5;margin-top:4px;font-size:13px}.margin-risk-badge{border-radius:4px;margin-top:4px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.margin-risk-badge.warning{background:var(--accent-yellow-dim);color:var(--accent-yellow)}.margin-risk-badge.danger{background:var(--accent-red-dim);color:var(--accent-red);animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.bb-tier-note{color:var(--text-muted);margin-top:4px;font-size:11px}.bb-result-lock{color:var(--accent-yellow);margin-top:6px;font-size:12px;font-weight:500}@media (width<=1024px){.stock-detail{grid-template-columns:1fr}.trade-panel{position:static}.race-table-head,.race-table-row{grid-template-columns:44px 30px minmax(90px,.9fr) minmax(160px,1.5fr) 110px 88px;gap:10px}}@media (width<=768px){.pred-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-stats,.fundamentals-grid{grid-template-columns:1fr 1fr}.detail-stats .stat-item{padding:8px}.detail-price-row .stock-price{font-size:42px}.detail-price-row .stock-change{font-size:22px}.stat-label{font-size:11px}.thermometer-signals{grid-template-columns:1fr}.blackswan-alert{max-width:none;bottom:76px;left:12px;right:12px}.login-features{flex-direction:column;align-items:center}.stock-price{font-size:24px!important}.stock-change{font-size:13px!important}.lb-item{padding:10px 12px;font-size:13px}.diary-entry,.tournament-card,.filter-toolbar{padding:12px}.filter-toolbar input{flex-basis:100%}.section-toolbar{align-items:flex-start}.tournament-list-head{flex-direction:column}.tournament-actions{flex-wrap:wrap;width:100%}.race-header-top{flex-direction:column}.race-title-wrap{align-items:flex-start}.race-header-card{padding:18px}.race-table-head,.race-table-row{grid-template-columns:34px 18px minmax(72px,1fr) minmax(110px,1.2fr) 74px;gap:8px;padding-left:12px;padding-right:12px}.race-table-head .race-num.asset-col,.race-table-row .race-num.asset-col{display:none}.race-bar-track{height:20px}.page-stack{gap:20px}}.admin-game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px;display:grid}.admin-game-grid .gc-divider{border-top:none;margin-top:0;padding-top:0}.gc-section{flex-direction:column;gap:16px;display:flex}.gc-section h3{color:var(--text-primary);align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.gc-section h3:before{content:"";background:var(--accent-purple);border-radius:2px;width:3px;height:18px}.gc-form{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);grid-template-columns:repeat(2,1fr);gap:14px;padding:20px;display:grid}.gc-form.gc-form-2col{grid-template-columns:repeat(2,1fr)}.gc-form.gc-form-3col{grid-template-columns:repeat(3,1fr)}.gc-field{flex-direction:column;gap:6px;display:flex}.gc-field label{color:var(--text-secondary);font-size:13px;font-weight:500}.gc-field-full{grid-column:1/-1}.gc-stock-preview,.gc-stock-hint{box-shadow:none;background:#1e293bd6;border:1px solid #60a5fa33;border-radius:4px;padding:14px 16px}.gc-stock-preview-head{color:var(--text-primary);justify-content:space-between;gap:12px;font-size:14px;display:flex}.gc-stock-preview-head span{color:#93c5fd;font-size:12px;font-weight:700}.gc-stock-preview-metrics{color:var(--text-secondary);flex-wrap:wrap;gap:10px;margin-top:8px;font-size:12px;display:flex}.gc-stock-preview-metrics span{background:#0f172a8f;border:1px solid #94a3b81a;border-radius:999px;padding:5px 9px}.gc-stock-hint{color:var(--text-secondary);font-size:12px;line-height:1.6}.gc-code-button{font:inherit;background:0 0;border:none;padding:0}.gc-code-button:hover{color:var(--accent-blue-bright)}.gc-btn-row{flex-direction:row;gap:10px}.gc-btn-primary{background:var(--accent-blue);color:#fff;border-radius:var(--radius-sm);width:100%;padding:10px 18px;font-size:13px;font-weight:600}.gc-btn-primary:hover{box-shadow:none;transform:translateY(-1px)}.gc-btn-accent{color:#fff;border-radius:var(--radius-sm);background:#f59e0b;width:100%;padding:10px 18px;font-size:13px;font-weight:600}.gc-btn-accent:hover{box-shadow:none;transform:translateY(-1px)}.gc-btn-warning{background:var(--accent-yellow);color:#fff;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600}.gc-btn-warning:hover{box-shadow:none}.gc-btn-danger{color:var(--accent-red);background:0 0;border:1px solid #ef444466;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600}.gc-btn-danger:hover{background:var(--accent-red-dim);border-color:var(--accent-red)}.gc-btn-success{background:var(--accent-green);color:#fff;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600}.gc-btn-success:hover{box-shadow:none}.gc-btn-secondary{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600}.gc-btn-secondary:hover{border-color:var(--border-hover);color:var(--text-primary)}.gc-msg{background:var(--accent-blue-dim);border-radius:var(--radius-sm);color:var(--accent-blue-bright);animation:adminMsgIn .4s var(--ease-spring);border:1px solid #2563eb40;padding:10px 14px;font-size:13px}.gc-list{flex-direction:column;gap:10px;display:flex}.gc-list h4{color:var(--text-secondary);margin-bottom:4px;font-size:14px;font-weight:600}.gc-empty{color:var(--text-muted);font-size:13px}.gc-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:border-color var(--duration-normal), background var(--duration-normal);padding:14px 16px}.gc-item:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.gc-item-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.gc-item-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gc-item-actions{align-items:center;gap:6px;display:flex}.gc-item-actions select{padding:5px 8px;font-size:12px}.gc-code{color:var(--text-primary);font-size:15px;font-weight:700}.gc-badge{letter-spacing:.3px;border-radius:4px;padding:3px 10px;font-size:11px;font-weight:600}.gc-badge-active{background:var(--accent-green-dim);color:var(--accent-green)}.gc-badge-stopped{color:var(--text-muted);background:#64748b26}.gc-badge-danger{background:var(--accent-red-dim);color:var(--accent-red)}.gc-badge-warning{background:var(--accent-yellow-dim);color:var(--accent-yellow)}.gc-badge-info{background:var(--accent-blue-dim);color:var(--accent-blue-bright)}.gc-meta{color:var(--text-muted);font-size:12px}.gc-item-details{border-top:1px solid var(--border-color);color:var(--text-secondary);flex-wrap:wrap;gap:16px;margin-top:10px;padding-top:10px;font-size:13px;display:flex}.gc-divider{border-top:1px solid var(--border-hover);margin-top:32px;padding-top:24px}.gc-divider-title{color:var(--accent-purple);align-items:center;gap:10px;margin-bottom:20px;font-size:18px;font-weight:700;display:flex}.gc-divider-title:before{content:"";background:var(--accent-purple);border-radius:2px;width:4px;height:22px}@media (width<=768px){.gc-form,.gc-form.gc-form-2col,.gc-form.gc-form-3col{grid-template-columns:1fr}.gc-item-header{flex-direction:column;align-items:flex-start}.gc-item-details{flex-direction:column;gap:6px}.gc-btn-row{flex-direction:column}}@media (width<=400px){.header-nav a{min-width:40px;padding:3px 6px;font-size:8px}.header-nav a svg{width:14px;height:14px}.stock-price{font-size:20px!important}.detail-stats{grid-template-columns:1fr 1fr;gap:6px}.portfolio-summary{grid-template-columns:1fr}.page-title{font-size:18px}}.inflation-toast{Nonebackdrop-filter:none;color:var(--accent-red);z-index:9000;white-space:nowrap;background:#ef444426;border:1px solid #ef444466;border-radius:4px;align-items:center;gap:8px;padding:10px 20px;font-size:13px;font-weight:500;animation:.3s slideUpFade;display:flex;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}.inflation-toast-icon{font-size:18px}@keyframes slideUpFade{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}[role=button],.sector-chip,.stock-card,.news-item,.lb-item,.quiz-option,.market-index-card{cursor:pointer}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}button:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px;box-shadow:none}a:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}body:before,body:after,.logo,.cycle-progress-fill:after,.sentiment-fill:after,.app,.app-main{animation:none!important}}@keyframes slideIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.day-break-banner{background:var(--accent-yellow-dim);color:var(--accent-yellow);border:1px solid #f59e0b4d;border-radius:4px;align-items:center;gap:8px;margin-bottom:12px;padding:8px 16px;font-size:13px;font-weight:600;animation:2s ease-in-out infinite pulse-glow;display:flex}.day-break-dot{background:var(--accent-yellow);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite blink}@keyframes pulse-glow{0%,to{box-shadow:none}50%{box-shadow:none}}.nav-more-btn{display:none}@media (width<=768px){.nav-more-btn{min-width:0;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:color var(--duration-normal);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:4px 8px;font-family:inherit;font-size:9px;font-weight:500;display:flex}.nav-more-btn:hover{color:var(--accent-blue-bright)}.nav-more-btn svg{width:16px;height:16px}.nav-more-btn:active{transform:scale(.95)}}.nav-more-overlay{Nonebackdrop-filter:none;-webkit-backdrop-filter:none;z-index:200;background:#0000008c;align-items:flex-end;animation:.18s ease-out navOverlayFadeIn;display:flex;position:fixed;inset:0}.nav-more-drawer{background:var(--bg-surface);border-top:1px solid var(--border-color);width:100%;padding:16px 16px calc(72px + env(safe-area-inset-bottom,8px));animation:navDrawerSlideUp .22s var(--ease-out);border-radius:20px 20px 0 0;box-shadow:0 8px 24px #00000059}.nav-more-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.nav-more-title{color:var(--text-primary);font-size:15px;font-weight:600}.nav-more-close{border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--duration-normal);background:0 0;justify-content:center;align-items:center;padding:6px;display:flex}.nav-more-close:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-hover)}.nav-more-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.nav-more-item{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary);text-align:center;transition:all var(--duration-normal) var(--ease-out);flex-direction:column;align-items:center;gap:6px;padding:14px 8px;font-size:11px;font-weight:500;display:flex}.nav-more-item:hover,.nav-more-item.active{color:var(--accent-blue-bright);box-shadow:none;background:#2563eb1a;border-color:#2563eb40}[data-theme=light] .nav-more-drawer{background:var(--bg-surface);border-color:#94a3b840}[data-theme=light] .nav-more-item{background:#ffffffe6;border-color:#94a3b840}@keyframes navOverlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes navDrawerSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.btn-spinner{vertical-align:-2px;border:2px solid #fff6;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-right:6px;animation:.7s linear infinite btn-spin;display:inline-block}@keyframes btn-spin{to{transform:rotate(360deg)}}button:disabled .btn-spinner{border-top-color:#fff9}.stock-card:hover .stock-price{color:var(--text-primary)}.news-item{transition:transform var(--duration-normal) var(--ease-out), background var(--duration-normal), border-color var(--duration-normal)}.news-item:hover{transform:translate(4px)}.macro-event-card:hover{box-shadow:none;transition:transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal);transform:translateY(-2px)}.summary-card{transition:transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-slow) var(--ease-out), border-color var(--duration-normal)}.summary-card:hover{box-shadow:none;transform:translateY(-3px)}.market-index-card[style*=cursor]{transition:transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-slow)}.market-index-card[style*=cursor]:hover{box-shadow:none;transform:translateY(-3px)}.market-index-card[style*=cursor]:active{transform:translateY(-1px)}.admin-stat-card{transition:transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-slow);cursor:default}.admin-stat-card:hover{box-shadow:none;transform:translateY(-2px)}.sector-chip{transition:all var(--duration-normal) var(--ease-out)}.sector-chip:hover{transform:scale(1.04)}.quiz-option{cursor:pointer}.quiz-option:disabled,.quiz-option.correct,.quiz-option.wrong{cursor:default}.btn-admin-pause,.btn-admin-resume,.btn-admin-news{transition:all var(--duration-normal) var(--ease-out);align-items:center;gap:6px;display:inline-flex}.btn-admin-pause:disabled,.btn-admin-resume:disabled,.btn-admin-news:disabled{opacity:.6;cursor:not-allowed;transform:none}.page-loading-bar{background:var(--accent-blue);z-index:10000;border-radius:0 2px 2px 0;height:2px;animation:1.5s ease-in-out infinite loading-bar;position:fixed;top:0;left:0}@keyframes loading-bar{0%{opacity:1;width:0%}50%{opacity:1;width:70%}90%{opacity:1;width:95%}to{opacity:0;width:100%}}.trade-confirm-overlay{z-index:300;background:#0f172a9e;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.trade-confirm-dialog{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-surface);width:min(100%,420px);padding:24px;box-shadow:0 8px 24px #00000059}.trade-confirm-dialog h3{margin-top:0}.trade-confirm-hint{color:var(--text-secondary);font-size:13px}.trade-confirm-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}:root{--gradient-primary:var(--accent-blue);--gradient-gold:var(--accent-yellow);--gradient-success:var(--accent-green);--gradient-danger:var(--accent-red);--gradient-surface:var(--bg-card);--glow-blue:none;--glow-purple:none;--glow-cyan:none;--noise-filter:none}body{background-image:none}body:before{background:0 0;width:700px;height:700px;animation:30s ease-in-out infinite floatOrb1}body:after{background:0 0;width:600px;height:600px;animation:35s ease-in-out infinite floatOrb2}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:#2563eb66;border:1px solid #ffffff0d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#2563eb99}.app-header{Nonebackdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;background:#0b1221d9}.app-header:after{opacity:.8;background:0 0;height:2px}.header-left{gap:10px}.logo{background:#3b82f6 0 0/300% 300%;-webkit-text-fill-color:transparent;letter-spacing:-.8px;text-shadow:none;-webkit-background-clip:text;font-size:22px;font-weight:900;position:relative}.header-nav a{border-radius:4px;padding:8px 16px;font-weight:500;position:relative;overflow:hidden}.header-nav a:before{content:"";opacity:0;background:0 0;transition:opacity .3s;position:absolute;inset:0}.header-nav a:hover:before{opacity:1}.header-nav a.active{box-shadow:none;background:#2563eb2e}.header-nav a.active:after{content:"";background:var(--accent-blue);border-radius:1px;height:2px;position:absolute;bottom:2px;left:20%;right:20%}.user-info{box-shadow:none;background:#2563eb1a;border:1px solid #2563eb26;padding:5px 14px 5px 10px}.login-page:before{filter:blur(80px);background:0 0;width:600px;height:600px;animation:20s ease-in-out infinite loginOrb1}.login-page:after{filter:blur(80px);background:0 0;width:500px;height:500px;animation:25s ease-in-out infinite loginOrb2}.login-card{max-width:440px;box-shadow:none;background:#162032e6;border:1px solid #2563eb33;border-radius:4px;padding:48px 44px}.login-card h1{background:#3b82f6 0 0/300% 300%;-webkit-text-fill-color:transparent;letter-spacing:-1px;-webkit-background-clip:text;margin-bottom:6px;font-size:36px;font-weight:900;animation:8s ease-in-out infinite logoShimmer}.login-subtitle{color:var(--text-muted);letter-spacing:.3px;margin-bottom:36px;font-size:15px}.auth-tabs{background:#0b122199;border:1px solid #94a3b814;border-radius:4px;margin-bottom:28px;padding:5px}.auth-tab{border-radius:4px;padding:11px;font-size:14px;font-weight:500;transition:all .25s cubic-bezier(.16,1,.3,1)}.auth-tab.active{color:var(--text-primary);box-shadow:none;background:#2563eb40;font-weight:600}.login-form input:not([type=checkbox]){background:#0b1221b3;border:1px solid #94a3b81f;border-radius:4px;margin-bottom:14px;padding:13px 18px;font-size:14px;transition:all .3s cubic-bezier(.16,1,.3,1)}.login-form input:not([type=checkbox]):focus{box-shadow:none;background:#0b1221e6;border-color:#2563eb80}.login-form button{letter-spacing:.3px;box-shadow:none;background:#2563eb 0 0/200% 200%;border-radius:4px;margin-top:10px;padding:14px;font-size:15px;font-weight:700;transition:all .3s cubic-bezier(.16,1,.3,1)}.login-form button:hover{box-shadow:none;background-position:100%;transform:translateY(-2px)}.login-features{gap:12px;margin-top:28px}.login-features span{background:#2563eb14;border:1px solid #2563eb1f;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:500;transition:all .25s}.login-features span:hover{color:var(--accent-blue-bright);box-shadow:none;background:#2563eb26;border-color:#2563eb40;transform:translateY(-1px)}.page-title{letter-spacing:-.8px;background:var(--text-primary);-webkit-text-fill-color:transparent;background-size:200% 200%;-webkit-background-clip:text;font-size:30px;font-weight:900;animation:8s ease-in-out infinite titleGradient}.page-title:after{background:var(--accent-blue);background-size:200% 100%;width:48px;height:3px;margin-top:10px;animation:3s linear infinite shimmer-bar}@keyframes titleGradient{0%,to{background-position:0%}50%{background-position:100%}}.card,.stock-card,.news-item,.summary-card,.achievement-card,.lb-item,.quiz-option,.market-index-card,.sentiment-card,.thermometer-card,.economic-card,.macro-event-card,.mission-card,.rank-bar,.admin-stat-card,.admin-controls,.admin-students{box-shadow:none;background:#162032cc;border:1px solid #94a3b814;border-radius:4px}.stock-card{border-radius:4px;padding:22px;position:relative}.stock-card:before{background:var(--accent-blue);background-size:200% 100%;height:3px}.stock-card:hover:before{opacity:1;animation:2s linear infinite shimmer-bar}.stock-card:hover{box-shadow:none;border-color:#2563eb4d;transform:translateY(-8px)scale(1.01)}.stock-card:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;background:0 0;transition:opacity .3s;position:absolute;inset:0}.stock-card:hover:after{opacity:1}.stock-code{letter-spacing:1px;color:var(--accent-blue-bright);opacity:.8;font-size:12px;font-weight:600}.stock-name{font-size:17px;font-weight:700}.stock-industry{Nonebackdrop-filter:none;background:#2563eb1a;border:1px solid #2563eb26;border-radius:100px;padding:4px 12px;font-size:11px;font-weight:600}.stock-price{letter-spacing:-1px;font-family:JetBrains Mono,Inter,monospace;font-size:30px;font-weight:800}.stock-change{font-size:14px;font-weight:700}.market-index-card{border-radius:4px;padding:28px}.market-index-card:before{background:var(--accent-blue);background-size:200% 100%;height:3px;animation:3s linear infinite shimmer-bar}.market-index-value{letter-spacing:-1.5px;font-family:JetBrains Mono,Inter,monospace;font-size:40px;font-weight:900}.market-index-label{letter-spacing:1px;opacity:.8;font-size:12px}.sentiment-value{font-family:JetBrains Mono,Inter,monospace;font-size:36px;font-weight:900}.sentiment-bar{height:10px;box-shadow:none;border-radius:999px}.sentiment-fill{background:linear-gradient(90deg,#10b981 0%,#06b6d4 25%,#f59e0b 50%,#ef4444 75%,#dc2626 100%);border-radius:999px}.thermometer-gradient{height:12px;box-shadow:none;background:linear-gradient(90deg,#2563eb,#06b6d4,#10b981,#f59e0b,#ef4444);border-radius:999px}.thermometer-indicator{width:18px;height:18px;box-shadow:none;border:3px solid #fff;top:-4px}.sector-chip{Nonebackdrop-filter:none;background:#162032b3;border:1px solid #94a3b81a;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:500;transition:all .25s cubic-bezier(.16,1,.3,1)}.sector-chip:hover{box-shadow:none;background:#2563eb1f;border-color:#2563eb40;transform:translateY(-1px)}.sector-chip.hot{box-shadow:none;background:#f59e0b14;border-color:#f59e0b80}.news-item{border-radius:4px;padding:16px 18px;transition:all .25s cubic-bezier(.16,1,.3,1)}.news-item:before{background:var(--accent-blue);border-radius:0 2px 2px 0;width:3px}.news-item:hover{box-shadow:none;transform:translate(4px)}.news-item:hover:before{opacity:1}.summary-card{border-radius:4px;padding:28px;position:relative}.summary-card:before{background:var(--accent-blue);opacity:.7;background-size:200% 100%;height:3px;animation:4s linear infinite shimmer-bar}.summary-value{letter-spacing:-.5px;font-family:JetBrains Mono,Inter,monospace;font-size:30px;font-weight:900}.summary-label{letter-spacing:1px;font-size:12px;font-weight:600}.holdings-table th{letter-spacing:.8px;background:#2563eb0a;border-bottom:2px solid #2563eb1a;padding:16px 18px;font-size:11px}.holdings-table td{padding:16px 18px;font-size:14px}.btn-buy{letter-spacing:.3px;box-shadow:none;background:#ef4444;border-radius:4px;padding:12px 24px;font-size:15px;font-weight:700}.btn-buy:hover{box-shadow:none;transform:translateY(-2px)}.btn-sell{letter-spacing:.3px;box-shadow:none;background:#10b981;border-radius:4px;padding:12px 24px;font-size:15px;font-weight:700}.btn-sell:hover{box-shadow:none;transform:translateY(-2px)}.trade-panel{box-shadow:none;background:#162032d9;border:1px solid #94a3b81a;border-radius:4px;padding:18px}.chart-container{box-shadow:none;background:#162032d9;border:1px solid #94a3b814;border-radius:4px;padding:24px}.chart-tabs button,.trade-tab{border-radius:4px;padding:8px 14px;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1)}.lb-item{border-radius:4px;margin-bottom:10px;padding:18px 22px;transition:all .25s cubic-bezier(.16,1,.3,1)}.lb-item:hover{box-shadow:none;transform:translate(4px)}.lb-item:first-child{box-shadow:none;background:#f59e0b1f;border-color:#f59e0b40}.lb-item:nth-child(2){background:#e2e8f014;border-color:#e2e8f02e}.lb-item:nth-child(3){background:#b453091a;border-color:#b4530940}.lb-rank{width:44px;font-size:22px;font-weight:900}.lb-rank.top1{text-shadow:none;font-size:28px}.lb-value{font-family:JetBrains Mono,monospace;font-size:16px;font-weight:800}.achievement-card{border-radius:4px;padding:24px 18px;transition:all .3s cubic-bezier(.16,1,.3,1)}.achievement-card:hover{box-shadow:none;transform:translateY(-4px)}.achievement-icon{margin-bottom:12px;font-size:36px}.achievement-name{font-size:15px;font-weight:800}.quiz-option{border-radius:4px;padding:18px 22px;font-size:15px;transition:all .25s cubic-bezier(.16,1,.3,1)}.quiz-option:before{border-radius:0 2px 2px 0;width:4px}.quiz-option:hover{box-shadow:none;transform:translate(4px)}.mission-card{border-radius:4px;padding:20px;transition:all .25s cubic-bezier(.16,1,.3,1)}.mission-card:hover{box-shadow:none;transform:translateY(-3px)}.rank-progress,.mission-progress-bar,.quiz-progress-bar,.sentiment-bar,.cycle-progress-bar{height:10px;box-shadow:none;background:#0f172a99;border-radius:999px}.rank-progress-fill,.mission-progress-fill,.quiz-progress-fill,.cycle-progress-fill{border-radius:999px}.app-footer{letter-spacing:.3px;background:0 0;padding:36px 24px;font-size:13px}.app-footer:before{background:0 0;height:2px}.blackswan-alert-content{border-radius:4px;padding:24px;box-shadow:0 8px 24px #00000059}.margin-alert-content{border-radius:4px;padding:24px}.bb-tier{border-radius:4px;padding:16px;transition:all .25s cubic-bezier(.16,1,.3,1)}.bb-tier:hover{box-shadow:none;transform:translateY(-4px)}.bb-tier-icon{margin-bottom:8px;font-size:32px}.bb-reveal-box,.bb-result-card{border-radius:4px;padding:36px}.market-time-bar{Nonebackdrop-filter:none;background:#2563eb26;padding:8px 20px;font-size:13px;font-weight:600}.market-time-dot{width:9px;height:9px;box-shadow:none}input,select,textarea{border-radius:4px;padding:11px 16px;font-size:14px;transition:all .3s cubic-bezier(.16,1,.3,1)}input:focus,select:focus,textarea:focus{box-shadow:none;border-color:#2563eb80}.stat-item{background:#162032b3;border-radius:4px;padding:14px;transition:all .2s}.stat-item:hover{box-shadow:none;border-color:#2563eb33}.news-banner{background:#2563eb1f;border-bottom:2px solid #2563eb26;border-radius:0;padding:14px 24px}.news-banner .news-tag{color:#fff;background:#2563eb;border-radius:4px;padding:4px 12px;font-weight:700;box-shadow:0 8px 24px #00000059}.announcement-banner{background:#2563eb1a;border-bottom:2px solid #2563eb1a;padding:12px 24px}.announcement-tag{background:var(--accent-blue);box-shadow:none;border-radius:4px;padding:4px 12px;font-weight:700}.inflation-toast{Nonebackdrop-filter:none;border-radius:4px;padding:12px 24px;box-shadow:0 8px 24px #00000059}.achievement-toast{border-radius:4px;padding:16px 18px;box-shadow:0 8px 24px #00000059}.pw-change-card{border-radius:4px;padding:40px}.student-detail-modal{border-radius:4px;padding:32px}.admin-stat-card{border-radius:4px;padding:24px}.admin-stat-card:before{background:var(--accent-blue);opacity:.7;background-size:200% 100%;height:3px;animation:4s linear infinite shimmer-bar}.stat-value{font-family:JetBrains Mono,Inter,monospace;font-size:26px;font-weight:900}.pred-stat-item{border-radius:4px;padding:18px}.pred-stat-item:before{background:var(--accent-blue);opacity:.6;background-size:200% 100%;height:3px;animation:4s linear infinite shimmer-bar}.pred-stat-val{font-family:JetBrains Mono,Inter,monospace;font-size:24px;font-weight:900}.leaderboard-tabs,.mission-filters,.pred-tabs,.social-tabs{gap:10px}.lb-tab,.filter-btn,.pred-tab,.social-tab{border-radius:4px;padding:9px 18px;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1)}.lb-tab.active,.filter-btn.active,.pred-tab.active,.social-tab.active{box-shadow:none;background:#2563eb2e;border-color:#2563eb59}.diary-entry{border-radius:4px;padding:18px;transition:all .2s}.diary-entry:hover{box-shadow:none;border-color:#2563eb33}.gc-form{border-radius:4px;padding:24px}.gc-item{border-radius:4px;padding:18px 20px}.gc-badge{border-radius:4px;padding:4px 12px;font-weight:700}[data-theme=light] .login-page{background:url(/login-bg-pattern.png) center/cover no-repeat fixed, radial-gradient(ellipse 80% 60% at 50% 30%, #2563eb0f 0%, transparent 60%), var(--bg-deep)}[data-theme=light] .login-card{box-shadow:none;background:#fffffff2;border-color:#94a3b833}[data-theme=light] .admin-stat-card,[data-theme=light] .admin-controls,[data-theme=light] .admin-students{box-shadow:none;background:#ffffffeb;border-color:#94a3b838}[data-theme=light] .stock-card:hover{box-shadow:none}@media (width<=768px){.header-nav{box-shadow:none;background:#0b1221fa;padding:6px 4px 8px}.header-nav:before{background:0 0;height:2px}.header-nav a{border-radius:4px;padding:6px 10px}.header-nav a.active:after{display:none}.stock-card{border-radius:4px}.login-card{border-radius:4px;padding:32px 24px}.login-card h1{font-size:26px}.summary-card{padding:20px}.summary-value{font-size:24px}}@media (width<=400px){.login-card{border-radius:4px;padding:24px 18px}.login-card h1{font-size:22px}}.app-main{animation:.5s cubic-bezier(.16,1,.3,1) contentSlideUp}.btn-back:hover{transform:translate(-2px)}.btn-order:hover,.btn-next:hover,.btn-diary:hover,.claim-btn:hover{box-shadow:none;transform:translateY(-2px)}.empty-state{padding:80px 20px}.empty-state:before{content:"○";background:var(--accent-blue);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:16px;font-size:48px}.btn-linuxdo{border-radius:4px;padding:13px;font-weight:600;transition:all .25s cubic-bezier(.16,1,.3,1)}.btn-linuxdo:hover{box-shadow:none;transform:translateY(-1px)}.btn-oauth{border-radius:4px;padding:13px;font-weight:600}.btn-wechat{box-shadow:none}.btn-wechat:hover{box-shadow:none;transform:translateY(-1px)}.btn-qq{box-shadow:none}.btn-qq:hover{box-shadow:none;transform:translateY(-1px)}.day-break-banner{border-radius:4px;padding:10px 18px;font-weight:700;box-shadow:0 8px 24px #00000059}.pw-strength-bar{height:8px;box-shadow:none;border-radius:999px}.fundamental-item{border-radius:4px;padding:16px;transition:all .2s}.fundamental-item:hover{box-shadow:none;border-color:#2563eb33}.fundamental-value{font-family:JetBrains Mono,Inter,monospace;font-size:20px;font-weight:800}.pred-form,.pred-list,.pred-leaderboard,.social-feed,.popular-stocks,.title-grid,.bb-cards-section{border-radius:4px;padding:18px}.title-card{border-radius:4px;padding:16px;transition:all .2s}.title-card:hover{box-shadow:none;border-color:#2563eb33;transform:translateY(-2px)}.invite-item{border-radius:4px;padding:10px 14px;transition:all .2s}.invite-item:hover{background:var(--bg-card-hover)}.admin-table th{letter-spacing:.8px;background:#2563eb0a;border-bottom:2px solid #2563eb14;padding:14px 18px}.admin-table td{padding:14px 18px}.news-tag,.t1-badge,.admin-status,.rank-level{letter-spacing:.5px;border-radius:4px;padding:4px 12px;font-weight:700}a,button,.stock-card,.news-item,.lb-item,.quiz-option,.mission-card,.achievement-card,.sector-chip,.bb-tier,.diary-entry,.title-card,.fundamental-item,.stat-item{transition:all .25s cubic-bezier(.16,1,.3,1)}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#94a3b80f 25%,#94a3b81f 37%,#94a3b80f 63%) 0 0/400% 100%;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.skeleton-text{border-radius:4px;height:14px;margin-bottom:8px}.skeleton-title{border-radius:4px;width:60%;height:20px;margin-bottom:12px}.skeleton-card{border-radius:var(--radius-md);height:100px}.empty-state{position:relative}.empty-state:before{content:"";width:40px;height:40px;font-size:unset;background:0 0;border:2px dashed #94a3b84d;border-radius:50%;margin:0 auto 16px;animation:2s ease-in-out infinite emptyPulse;display:block}.btn-buy:active,.btn-sell:active,.btn-order:active,.btn-next:active{transition:transform .1s var(--ease-out);transform:scale(.97)}.btn-admin-pause:active,.btn-admin-resume:active,.btn-admin-news:active{transform:scale(.97)}.holdings-table tr:hover td,.admin-table tbody tr:hover td{background:#2563eb0f}.chip-button:hover{color:var(--text-primary);background:#2563eb0f;border-color:#2563eb4d}.chip-button:active{transform:scale(.96)}.page-shell,.page-stack{animation:.3s cubic-bezier(.16,1,.3,1) both page-enter}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-shell>*{animation:.3s cubic-bezier(.16,1,.3,1) both page-enter}.page-shell>:first-child{animation-delay:0s}.page-shell>:nth-child(2){animation-delay:40ms}.page-shell>:nth-child(3){animation-delay:80ms}.page-shell>:nth-child(4){animation-delay:.12s}.page-shell>:nth-child(5){animation-delay:.16s}.stock-grid .stock-card{animation:.35s cubic-bezier(.16,1,.3,1) both card-enter}.stock-grid .stock-card:first-child{animation-delay:0s}.stock-grid .stock-card:nth-child(2){animation-delay:30ms}.stock-grid .stock-card:nth-child(3){animation-delay:60ms}.stock-grid .stock-card:nth-child(4){animation-delay:90ms}.stock-grid .stock-card:nth-child(5){animation-delay:.12s}.stock-grid .stock-card:nth-child(6){animation-delay:.15s}.stock-grid .stock-card:nth-child(7){animation-delay:.18s}.stock-grid .stock-card:nth-child(8){animation-delay:.21s}.stock-grid .stock-card:nth-child(n+9){animation-delay:.24s}@keyframes card-enter{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.lb-list .lb-item{animation:.3s cubic-bezier(.16,1,.3,1) both card-enter}.lb-list .lb-item:first-child{animation-delay:0s}.lb-list .lb-item:nth-child(2){animation-delay:35ms}.lb-list .lb-item:nth-child(3){animation-delay:70ms}.lb-list .lb-item:nth-child(n+4){animation-delay:.105s}.achievements-grid .achievement-card{animation:.3s cubic-bezier(.16,1,.3,1) both card-enter}.achievements-grid .achievement-card:first-child{animation-delay:0s}.achievements-grid .achievement-card:nth-child(2){animation-delay:35ms}.achievements-grid .achievement-card:nth-child(3){animation-delay:70ms}.achievements-grid .achievement-card:nth-child(4){animation-delay:.105s}.achievements-grid .achievement-card:nth-child(5){animation-delay:.14s}.achievements-grid .achievement-card:nth-child(n+6){animation-delay:.175s}.value-up{animation:.5s ease-out both flash-up}.value-down{animation:.5s ease-out both flash-down}@keyframes flash-up{0%{color:var(--accent-green);transform:scale(1.05)}to{color:inherit;transform:scale(1)}}@keyframes flash-down{0%{color:var(--accent-red);transform:scale(1.05)}to{color:inherit;transform:scale(1)}}.quiz-option{transition:all .2s cubic-bezier(.16,1,.3,1)}.quiz-option:hover:not(:disabled):not(.correct):not(.wrong){transform:translate(4px)}.quiz-option.correct{animation:.4s cubic-bezier(.16,1,.3,1) both quiz-correct}.quiz-option.wrong{animation:.35s ease-out both quiz-wrong}@keyframes quiz-correct{0%{transform:scale(1)}40%{transform:scale(1.02)translate(4px)}to{transform:scale(1)}}@keyframes quiz-wrong{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}[data-theme=light] .login-form input:not([type=checkbox]),[data-theme=light] .login-form input:not([type=checkbox]):focus{color:var(--text-primary);box-shadow:none;background:#fffffff5;border-color:#2563eb47}[data-theme=light] .login-form input:not([type=checkbox])::placeholder{color:var(--text-muted);opacity:1}[data-theme=light] .auth-tabs,[data-theme=light] .leaderboard-tabs,[data-theme=light] .chart-tabs,[data-theme=light] .trade-tabs,[data-theme=light] .mission-filters,[data-theme=light] .pred-tabs,[data-theme=light] .social-tabs{box-shadow:none;background:#ffffffdb;border-color:#94a3b83d}[data-theme=light] .auth-tab,[data-theme=light] .lb-tab,[data-theme=light] .chart-tabs button,[data-theme=light] .trade-tab,[data-theme=light] .filter-btn,[data-theme=light] .pred-tab,[data-theme=light] .social-tab{color:var(--text-secondary);background:#ffffffad;border-color:#94a3b838}[data-theme=light] .auth-tab.active,[data-theme=light] .lb-tab.active,[data-theme=light] .chart-tabs button.active,[data-theme=light] .trade-tab.active-buy,[data-theme=light] .trade-tab.active-cover,[data-theme=light] .filter-btn.active,[data-theme=light] .pred-tab.active,[data-theme=light] .social-tab.active{color:var(--accent-blue);box-shadow:none;background:#2563eb1f;border-color:#2563eb4d}[data-theme=light] .card,[data-theme=light] .stock-card,[data-theme=light] .news-item,[data-theme=light] .achievement-card,[data-theme=light] .lb-item,[data-theme=light] .market-index-card,[data-theme=light] .sentiment-card,[data-theme=light] .thermometer-card,[data-theme=light] .economic-card,[data-theme=light] .macro-event-card,[data-theme=light] .mission-card,[data-theme=light] .rank-bar,[data-theme=light] .chart-container,[data-theme=light] .review-section,[data-theme=light] .risk-profile-section,[data-theme=light] .trade-timeline-item,[data-theme=light] .gc-form,[data-theme=light] .gc-item,[data-theme=light] .bb-tier,[data-theme=light] .bb-result-card,[data-theme=light] .bb-reveal-box,[data-theme=light] .student-detail-modal,[data-theme=light] .cash-adjust-modal,[data-theme=light] .pw-change-card{color:var(--text-primary);background:#ffffffeb;border-color:#94a3b83d;box-shadow:0 8px 24px #00000059}[data-theme=light] .summary-card,[data-theme=light] .risk-metric,[data-theme=light] .review-metric,[data-theme=light] .indicator-card,[data-theme=light] .gc-stock-preview-metrics span{color:var(--text-primary);box-shadow:none;background:#f8fafceb;border-color:#94a3b83d}[data-theme=light] .quiz-option{color:var(--text-primary);box-shadow:none;background:#fffffff0;border-color:#94a3b83d}[data-theme=light] .quiz-option:hover:not(:disabled):not(.correct):not(.wrong){color:var(--text-primary);background:#eff6ffeb;border-color:#2563eb52}[data-theme=light] .quiz-option.correct{color:#065f46;background:#dcfce7e6;border-color:#10b98173}[data-theme=light] .quiz-option.wrong{color:#991b1b;background:#fee2e2e6;border-color:#ef444473}[data-theme=light] .macro-event-desc,[data-theme=light] .achievement-desc,[data-theme=light] .review-metric span,[data-theme=light] .risk-note-list,[data-theme=light] .trade-timeline-meta,[data-theme=light] .indicator-category,[data-theme=light] .news-time{color:var(--text-secondary)}[data-theme=light] .news-banner,[data-theme=light] .announcement-banner,[data-theme=light] .app-notification-card,[data-theme=light] .achievement-toast,[data-theme=light] .inflation-toast,[data-theme=light] .mission-toast{color:var(--text-primary);background:#fffffff0;border-color:#94a3b83d;box-shadow:0 8px 24px #00000059}[data-theme=light] .app-notification-card.tone-info,[data-theme=light] .news-banner{background:#eff6fffa;border-color:#2563eb3d}[data-theme=light] .app-notification-card.tone-success{background:#ecfdf5fa;border-color:#10b98152}[data-theme=light] .app-notification-card.tone-warning,[data-theme=light] .inflation-toast,[data-theme=light] .mission-toast{background:#fffbebfa;border-color:#f59e0b57}[data-theme=light] .app-notification-card.tone-danger{background:#fef2f2fa;border-color:#ef444452}[data-theme=light] .app-notification-icon{color:var(--accent-blue);background:#2563eb1a}[data-theme=light] .app-notification-title,[data-theme=light] .achievement-toast-name,[data-theme=light] .news-text,[data-theme=light] .macro-event-title,[data-theme=light] .indicator-value,[data-theme=light] .summary-value,[data-theme=light] .lb-value{color:var(--text-primary)}[data-theme=light] .app-notification-message,[data-theme=light] .achievement-toast-title,[data-theme=light] .achievement-toast-desc{color:var(--text-secondary)}[data-theme=light] .rank-progress,[data-theme=light] .mission-progress-bar,[data-theme=light] .quiz-progress-bar,[data-theme=light] .sentiment-bar,[data-theme=light] .cycle-progress-bar{box-shadow:none;background:#e2e8f0f2}[data-theme=light] .page-header-card{background:0 0;border-color:#2563eb29;box-shadow:0 8px 24px #00000059}[data-theme=light] .page-header-card .page-subtitle,[data-theme=light] .page-header-card p{color:var(--text-secondary)}[data-theme=light] .cashflow-item{background:#f8fafcf0;border-color:#94a3b83d}[data-theme=light] .pred-form select,[data-theme=light] .pred-form input{color:var(--text-primary);background:#fffffff5;border-color:#94a3b84d}[data-theme=light] .pred-type-btns button,[data-theme=light] .pred-dir-btns button,[data-theme=light] .pred-dur-btns button{color:var(--text-secondary);background:#ffffffe6;border-color:#94a3b84d}[data-theme=light] .skeleton{background:linear-gradient(90deg,#94a3b81f 25%,#94a3b83d 37%,#94a3b81f 63%) 0 0/400% 100%;animation:1.4s infinite skeleton-shimmer}body{background-image:none;font-size:14px}body:before,body:after,.login-page:before,.login-page:after{display:none!important}.app,.app-main,.page-shell,.page-shell>*,.page-stack,.page-stack>*,.page-header-card,.section-block,.card{animation:none!important}.page-title,.login-card h1,.logo{-webkit-text-fill-color:currentColor!important;color:var(--text-primary)!important;background:0 0!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;animation:none!important}.page-title:after{display:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-main{max-width:1440px;padding:16px 20px 32px;padding-top:calc(var(--header-height) + 48px)}.page-shell,.page-stack{gap:14px}.page-title{letter-spacing:0;margin:0;font-size:18px;font-weight:600}.section-title,.section-heading,.fundamentals-title{color:var(--text-secondary);letter-spacing:.02em;margin-bottom:8px;font-size:13px;font-weight:600}.stock-price,.stock-change,.market-index-value,.economic-value,.indicator-value,.sentiment-value,.holdings-table td,.quote-table td.num,.quote-ladder,.trade-info,.trade-form input,.stock-detail-price,.stat-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.app-top-fixed{background:var(--bg-deep)}.market-time-bar{border-bottom:1px solid var(--border-color);background:var(--bg-deep)!important}.app-header{height:var(--header-height);border-bottom:1px solid var(--border-color);padding:0 16px;background:var(--bg-surface)!important}.app-header:after{display:none}.logo{white-space:nowrap;font-size:15px;font-weight:600}.header-nav{gap:2px}.header-nav a{border-radius:var(--radius-sm);color:var(--text-secondary);padding:6px 12px;font-size:13px;font-weight:500}.header-nav a:hover{background:var(--bg-card-hover);color:var(--text-primary)}.header-nav a.active{background:var(--accent-blue-dim);color:var(--accent-blue-bright);box-shadow:inset 0 -2px 0 var(--accent-blue)}.header-nav a.nav-admin{color:var(--accent-purple)}.nav-secondary{display:none!important}.nav-more-btn{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:0;flex-direction:row;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;display:inline-flex!important}.nav-more-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.card,.market-index-card,.sentiment-card,.thermometer-card,.economic-card,.indicator-card,.realism-panel,.macro-event-card,.chart-container,.trade-panel,.filter-toolbar,.page-header-card,.fundamentals-card,.news-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md)}.market-index-card,.sentiment-card,.thermometer-card,.economic-card,.indicator-card,.realism-panel{padding:12px 14px}.market-dashboard{gap:12px;margin-bottom:0}.market-index-value{font-size:30px;font-weight:600;line-height:1.2}.economic-cards,.indicator-grid,.realism-grid{gap:10px}.indicator-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.economic-value{font-size:20px;font-weight:600}.indicator-value{font-size:18px;font-weight:600}.economic-desc,.indicator-desc,.sentiment-desc{color:var(--text-muted);font-size:12px;line-height:1.5}.sector-chip,.chip-button{border-radius:var(--radius-sm)}.chip-button.is-active{background:var(--accent-blue-dim);border-color:var(--accent-blue);color:var(--accent-blue-bright)}.filter-toolbar{gap:10px;padding:8px 10px}.filter-toolbar input{height:32px}.btn-buy,.btn-sell,.btn-primary,.btn-secondary{border-radius:var(--radius-sm);font-weight:600}.btn-buy{background:var(--accent-red)}.btn-sell{background:var(--accent-green)}.btn-buy:hover:not(:disabled),.btn-sell:hover:not(:disabled){filter:brightness(1.08);transform:none}.chart-tabs button,.trade-tab{border-radius:var(--radius-sm);padding:5px 12px;font-size:13px;font-weight:500}.chart-tabs button.active{background:var(--accent-blue-dim);border-color:var(--accent-blue);color:var(--accent-blue-bright)}input,select,textarea{border-radius:var(--radius-sm)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent-blue);outline-offset:1px}.login-page{background:var(--bg-deep)}.login-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl)}.login-card h1{font-size:22px;font-weight:600}.quote-table-wrap{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow-x:auto}.quote-table{border-collapse:collapse;width:100%;font-size:13px}.quote-table th{background:var(--bg-surface);color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap;padding:8px 12px;font-size:12px;font-weight:500;position:sticky;top:0}.quote-table th button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.quote-table th button:hover{color:var(--text-primary)}.quote-table td{border-bottom:1px solid var(--border-color);white-space:nowrap;color:var(--text-secondary);padding:7px 12px}.quote-table tbody tr{cursor:pointer}.quote-table tbody tr:last-child td{border-bottom:0}.quote-table tbody tr:hover td{background:var(--bg-card-hover)}.quote-table .num{text-align:right}.quote-table td.strong{font-size:14px;font-weight:600}.quote-table td.up{color:var(--accent-red)}.quote-table td.down{color:var(--accent-green)}.quote-table td.flat{color:var(--text-secondary)}.quote-name{color:var(--text-primary);margin-right:8px;font-weight:500}.quote-code{color:var(--text-muted);font-family:var(--font-mono);font-size:12px}.limit-tag{color:#fff;border-radius:2px;margin-left:8px;padding:0 5px;font-size:11px;font-weight:600;line-height:16px;display:inline-block}.limit-tag.up{background:var(--accent-red)}.limit-tag.down{background:var(--accent-green)}.quote-table .col-actions{text-align:right;width:1%}.quote-action{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;height:26px;margin-left:6px;padding:0 12px;font-size:12px;font-weight:600}.quote-action.buy{color:var(--accent-red);border-color:var(--accent-red)}.quote-action.buy:hover{background:var(--accent-red);color:#fff}.quote-action.sell{color:var(--accent-green);border-color:var(--accent-green)}.quote-action.sell:hover{background:var(--accent-green);color:#fff}@media (width<=1100px){.quote-table .col-ohl{display:none}}@media (width<=760px){.app-main{padding-left:12px;padding-right:12px}.quote-table .col-industry,.quote-table .col-change,.quote-table .col-volume{display:none}.quote-table th,.quote-table td{padding:8px}.quote-name{margin-right:0;display:block}.quote-action{margin-left:4px;padding:0 8px}.logo-text{display:none}}.quote-ladder{flex-direction:column;gap:1px;font-size:12px;display:flex}.quote-row{grid-template-columns:34px 1fr auto;align-items:center;gap:8px;padding:3px 6px;display:grid;position:relative;overflow:hidden}.quote-row>span{z-index:1;position:relative}.quote-label{color:var(--text-muted);font-family:inherit}.quote-qty{color:var(--text-secondary);text-align:right}.quote-price.up{color:var(--accent-red)}.quote-price.down{color:var(--accent-green)}.quote-price.flat{color:var(--text-primary)}.quote-box{border-bottom:1px solid var(--border-color);margin-bottom:12px;padding-bottom:10px}.quote-box-title{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}.quote-row .quote-bar{z-index:0;border-radius:2px;position:absolute;top:1px;bottom:1px;right:0}.quote-row.ask .quote-bar{background:var(--accent-green-dim)}.quote-row.bid .quote-bar{background:var(--accent-red-dim)}.quote-mid{border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);color:var(--text-primary);justify-content:space-between;align-items:baseline;margin:2px 0;padding:5px 6px;font-size:14px;font-weight:600;display:flex}.quote-mid small{color:var(--text-muted);font-size:11px;font-weight:400}.quote-sealed{color:var(--text-muted);padding:4px 6px;font-family:inherit;font-size:12px}
