@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:#0b1221;--bg-surface:#162032;--bg-card:#162032bf;--bg-card-hover:#1e2a40d9;--bg-glass:#0e1626a6;--bg-elevated:#19263ae6;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-blue:#2563eb;--accent-blue-bright:#3b82f6;--accent-blue-dim:#2563eb26;--accent-purple:#8b5cf6;--accent-purple-dim:#8b5cf626;--accent-green:#10b981;--accent-green-dim:#10b98126;--accent-red:#ef4444;--accent-red-dim:#ef444426;--accent-yellow:#f59e0b;--accent-yellow-dim:#f59e0b26;--accent-cyan:#06b6d4;--border-color:#94a3b81a;--border-hover:#94a3b833;--border-glow:#2563eb40;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--header-height:64px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -1px #00000026;--shadow-lg:0 10px 15px -3px #0000004d, 0 4px 6px -2px #00000026;--shadow-xl:0 20px 25px -5px #0006, 0 8px 10px -6px #0003;--shadow-glow-blue:0 0 20px #2563eb33;--shadow-glow-blue-lg:0 0 40px #2563eb26, 0 0 80px #2563eb0d;--shadow-glow-green:0 0 20px #10b98126;--shadow-glow-red:0 0 20px #ef444426;--shadow-glow-purple:0 0 20px #8b5cf626;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.15s;--duration-normal:.2s;--duration-slow:.35s}[data-theme=light]{--bg-deep:#f5f7fa;--bg-surface:#fff;--bg-card:#ffffffe6;--bg-card-hover:#f5f7faf2;--bg-glass:#ffffffb3;--bg-elevated:#fffffff2;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#64748b;--border-color:#94a3b840;--border-hover:#94a3b866;--border-glow:#2563eb4d;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 4px 6px -1px #00000014;--shadow-lg:0 10px 15px -3px #00000014;--shadow-xl:0 20px 25px -5px #0000001a;--shadow-glow-blue:0 0 20px #2563eb1a;--shadow-glow-blue-lg:0 0 40px #2563eb14;--shadow-glow-green:0 0 20px #10b9811a;--shadow-glow-red:0 0 20px #ef44441a;--shadow-glow-purple:0 0 20px #8b5cf61a}[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{background:#ffffffd9;box-shadow:0 1px 3px #00000014}[data-theme=light] .app-header:after{background:linear-gradient(90deg,#0000 5%,#2563eb26 30%,#8b5cf61a 50%,#06b6d41a 70%,#0000 95%)}[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{background:#fffffff7;box-shadow:0 -1px 8px #00000014}}[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{background:#f8fafcf2;border-color:#2563eb40;box-shadow:0 10px 20px #00000014,0 4px 8px #2563eb14}[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;background:linear-gradient(135deg,#eff6fff2,#f5f3ffeb);border-color:#2563eb33;box-shadow:0 14px 32px #2563eb1a}[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:radial-gradient(circle,#2563eb1f 0%,#0000 70%);width:600px;height:600px;animation:25s ease-in-out infinite floatOrb1;top:-10%;left:-5%}body:after{background:radial-gradient(circle,#8b5cf61a 0%,#0000 70%);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:linear-gradient(#2563eb4d,#8b5cf64d);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:0 0 0 3px var(--accent-blue-dim), var(--shadow-glow-blue);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:linear-gradient(#0000,#0b1221cc);padding:32px 24px;font-size:13px;position:relative}.app-footer:before{content:"";background:linear-gradient(90deg,#0000,#2563eb4d,#8b5cf64d,#0000);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;text-align:left;width:min(680px,100%);min-height:64px;transition:transform var(--duration-normal), border-color var(--duration-normal), box-shadow var(--duration-normal);background:radial-gradient(circle at 8% 20%,#06b6d421,#0000 34%),linear-gradient(135deg,#0f172ae0,#1e1b4bb8);border:1px solid #60a5fa33;border-radius:16px;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;box-shadow:0 18px 42px #02061738}.footer-ai-provider:hover{border-color:#60a5fa6b;transform:translateY(-2px);box-shadow:0 20px 46px #2563eb29}.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:8px;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);-webkit-backdrop-filter:blur(20px)saturate(1.5);border-bottom:1px solid var(--border-color);background:#0b1221cc;align-items:center;padding:0 24px;display:flex;box-shadow:0 1px 3px #0000004d,0 8px 24px -8px #0003}.app-header:after{content:"";background:linear-gradient(90deg,#0000 5%,#2563eb66 30%,#8b5cf64d 50%,#06b6d44d 70%,#0000 95%);height:1px;position:absolute;bottom:-1px;left:0;right:0}.header-left{align-items:center;margin-right:48px;display:flex}.logo{background:linear-gradient(135deg, var(--accent-blue-bright), var(--accent-cyan), var(--accent-green));-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);background:linear-gradient(135deg,#2563eb26,#8b5cf61a);font-weight:600;box-shadow:inset 0 0 0 1px #2563eb26}.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:var(--shadow-glow-blue);background:#2563eb1a;border-color:#2563eb40}.page-title{letter-spacing:-.5px;background:linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 100%);-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:linear-gradient(90deg, var(--accent-blue), var(--accent-purple));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:var(--shadow-lg);background:radial-gradient(circle at 100% 0,#2563eb1a,#0000 32%),linear-gradient(145deg,#121c2ee0,#0c1321f0);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);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);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:var(--shadow-sm);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:var(--shadow-sm);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:var(--shadow-glow-blue)}.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:var(--shadow-glow-blue);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:var(--shadow-glow-blue);background:linear-gradient(135deg,#2563eb2e,#8b5cf624);border:1px solid #2563eb3d;border-radius:18px;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:linear-gradient(90deg, var(--accent-blue), var(--accent-purple));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:var(--shadow-xl), var(--shadow-glow-blue-lg);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:linear-gradient(135deg,#2563eb14,#8b5cf614);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:linear-gradient(90deg, var(--accent-blue), var(--accent-cyan));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:14px;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:radial-gradient(circle,#2563eb26 0%,#0000 70%);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:radial-gradient(circle,#8b5cf61f 0%,#0000 70%);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{-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-xl), var(--shadow-glow-blue-lg);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:linear-gradient(135deg, var(--accent-blue-bright), var(--accent-purple), var(--accent-cyan));-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}.auth-tab.active{color:var(--text-primary);box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#2563eb33,#8b5cf626);font-weight:600}.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:linear-gradient(135deg, var(--accent-blue), #1d4ed8);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:linear-gradient(135deg,#0000 40%,#ffffff1a 50%,#0000 60%) 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{background:linear-gradient(135deg, #1d4ed8, var(--accent-blue));transform:translateY(-1px);box-shadow:0 4px 20px #2563eb66}.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:12px;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:12px;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:var(--shadow-md);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:8px;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:linear-gradient(90deg, var(--accent-blue), var(--accent-purple));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:linear-gradient(#2563eb0f,#2563eb05);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:linear-gradient(135deg, var(--accent-red), #dc2626);color:#fff;border-radius:var(--radius-sm);width:100%;padding:10px 20px;font-weight:600}.btn-sell{background:linear-gradient(135deg, var(--accent-green), #059669);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);box-shadow:var(--shadow-xl);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%)}@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:linear-gradient(135deg, var(--accent-red), #dc2626);color:#fff;box-shadow:var(--shadow-xl), var(--shadow-glow-red)}.limit-alert.down{background:linear-gradient(135deg, var(--accent-green), #059669);color:#fff;box-shadow:var(--shadow-xl), var(--shadow-glow-green)}.news-banner{background:linear-gradient(90deg, var(--accent-blue-dim), #8b5cf614);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:linear-gradient(135deg, var(--accent-blue), #1d4ed8);color:#fff}.announcement-banner{background:linear-gradient(90deg, var(--accent-blue-dim), #8b5cf60d, transparent);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:linear-gradient(135deg, var(--accent-blue), var(--accent-purple));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:linear-gradient(135deg,#f59e0b14,#f59e0b05);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:0 0 16px #f59e0b80;font-size:26px}.lb-rank.top2{color:#cbd5e1;text-shadow:0 0 12px #cbd5e14d;font-size:22px}.lb-rank.top3{color:#d97706;text-shadow:0 0 12px #d977064d;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:0 0 16px #10b9811a}.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:0 0 16px #ef44441a}.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:var(--shadow-xl), 0 16px 40px #0206172e;background:radial-gradient(circle at 100% 0,#0ea5e929,#0000 40%),linear-gradient(145deg,#0f172aeb,#111827e6);border:1px solid #60a5fa2e;border-radius:26px;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:radial-gradient(circle,#3b82f62e,#0000 70%);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:linear-gradient(135deg, var(--accent-blue-bright), var(--accent-purple));-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;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0f172ad1;border:1px solid #94a3b821;border-radius:18px;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin:0 0 18px;padding:10px;display:grid;position:sticky;top:10px;box-shadow:0 12px 28px #02061729}.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:12px;padding:11px 13px}.admin-workspace-nav button:hover{color:var(--text-primary);background:#3b82f617;transform:translateY(-1px)}.admin-workspace-nav button.active{color:#dbeafe;background:linear-gradient(135deg,#2563eb47,#7c3aed2e);border-color:#60a5fa42;box-shadow:inset 0 1px #bfdbfe1f,0 6px 16px #2563eb1f}.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:10px;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:16px;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:12px;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:11px;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;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#0f172ae6,#0f172afa);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:14px;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:10px;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:12px;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:12px;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:12px;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:10px;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:11px;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:8px;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:14px;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:12px;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:12px;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:var(--shadow-xl), var(--shadow-glow-blue-lg);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:linear-gradient(#0f172adb,#0f172ac7),radial-gradient(circle at 100% 0,#2563eb1f,#0000 60%);border:1px solid #94a3b81f;border-radius:18px;padding:22px 20px;position:relative;overflow:hidden}.admin-stat-card:before{content:"";background:linear-gradient(90deg, var(--accent-blue), var(--accent-purple));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:var(--shadow-md);background:linear-gradient(#0f172adb,#111827d1),radial-gradient(circle at 100% 0,#3b82f61f,#0000 60%);border:1px solid #94a3b824;border-radius:22px;padding:20px}.admin-overview-card-feature{grid-column:span 2}.admin-overview-card-pulse{background:linear-gradient(#0f172aeb,#141e34e0),radial-gradient(circle at 100% 0,#22d3ee1a,#0000 58%)}.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:14px;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:linear-gradient(90deg,#38bdf8,#3b82f6 45%,#8b5cf6 100%);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:16px;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:16px;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:14px;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:linear-gradient(#1e293bcc,#121c2db8),radial-gradient(circle at 100% 0,#60a5fa14,#0000 58%);border:1px solid #94a3b81f;border-radius:16px;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:16px;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:14px;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:14px;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{box-shadow:inset 0 0 0 1px #f59e0b29}.admin-sector-chip.cold{box-shadow:inset 0 0 0 1px #38bdf829}.admin-sector-summary{background:#0f172a9e;border:1px solid #60a5fa29;border-radius:16px;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:12px;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:14px;padding:12px 14px;line-height:1.5}.admin-event-chip strong{color:#bae6fd;margin-bottom:4px;display:block}.admin-controls{box-shadow:var(--shadow-md);background:linear-gradient(#0f172ad6,#0f172ac7),radial-gradient(circle at 100% 0,#3b82f614,#0000 55%);border:1px solid #94a3b81f;border-radius:22px;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:linear-gradient(180deg, var(--accent-blue), var(--accent-purple));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:0 0 0 2px #bfdbfe38,0 10px 20px #2563eb2e}.btn-admin-pause{background:linear-gradient(135deg, var(--accent-yellow), #d97706)}.btn-admin-pause:hover{box-shadow:0 4px 16px var(--accent-yellow-dim);transform:translateY(-1px)}.btn-admin-resume{background:linear-gradient(135deg, var(--accent-green), #059669)}.btn-admin-resume:hover{box-shadow:0 4px 16px var(--accent-green-dim);transform:translateY(-1px)}.btn-admin-news{background:linear-gradient(135deg, var(--accent-blue), #1d4ed8)}.btn-admin-news:hover{box-shadow:0 4px 16px var(--accent-blue-dim);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:16px;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{background:linear-gradient(#1e293bd1,#23324ec7),radial-gradient(circle at 100% 0,#60a5fa1f,#0000 60%);border:1px solid #60a5fa38;border-radius:16px;padding:14px 16px;box-shadow:inset 0 1px #bfdbfe0f}.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;-webkit-backdrop-filter:blur(16px);background:#0f172afa;border:1px solid #94a3b824;border-radius:16px;max-height:260px;padding:6px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 18px 32px #02061742}.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:12px;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:18px;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:12px;max-height:320px;overflow-y:auto}.admin-game-stage{margin-top:18px}.admin-stage-header{background:linear-gradient(#0f172abd,#0f172a85),radial-gradient(circle at 0,#8b5cf61f,#0000 42%);border:1px solid #94a3b814;border-radius:18px;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-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:0 0 6px var(--accent-blue-dim);border-radius:50%}[data-theme=light] .admin-header{box-shadow:var(--shadow-xl), 0 16px 40px #0f172a14;background:radial-gradient(circle at 100% 0,#0ea5e91f,#0000 40%),linear-gradient(145deg,#fffffff5,#eff6ffeb);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);background:#ffffffe6;border-color:#94a3b83d;box-shadow:0 12px 28px #0f172a14}[data-theme=light] .admin-workspace-nav button.active,[data-theme=light] .admin-catalog-tabs button.active{color:var(--accent-blue);background:linear-gradient(135deg,#2563eb1f,#7c3aed14);border-color:#2563eb47;box-shadow:inset 0 1px #fffc,0 6px 16px #2563eb14}[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);background:#ffffffe0;border-color:#94a3b83d;box-shadow:0 8px 22px #0f172a0f}[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:linear-gradient(#fffffff0,#f8fafce0),radial-gradient(circle at 100% 0,#3b82f61a,#0000 58%)}[data-theme=light] .admin-catalog-editor>.admin-catalog-actions{background:linear-gradient(#ffffffe6,#f8fafcfa);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 18px 32px #0f172a1f}[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-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:linear-gradient(180deg, var(--accent-purple), var(--accent-blue));border-radius:2px;width:3px;height:18px}.empty-state{text-align:center;color:var(--text-muted);border-radius:var(--radius-lg);background:linear-gradient(#1620326b,#0f172a8c);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{-webkit-backdrop-filter:blur(8px);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:var(--shadow-xl), var(--shadow-glow-blue-lg);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:linear-gradient(90deg, var(--accent-blue), var(--accent-cyan));border-radius:3px;height:100%;position:relative;overflow:hidden}.cycle-progress-fill:after{content:"";background:linear-gradient(90deg,#0000 30%,#ffffff26 50%,#0000 70%);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{-webkit-backdrop-filter:blur(20px)saturate(1.5);z-index:90;border-top:1px solid var(--border-color);background:#0b1221f7;justify-content:space-around;gap:0;padding:4px 2px 6px;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -4px 20px #0000004d}.header-nav:before{content:"";background:linear-gradient(90deg,#0000,#2563eb4d,#0000);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);box-shadow:var(--shadow-xl), 0 0 40px #ef444426;-webkit-backdrop-filter:blur(12px);background:linear-gradient(160deg,#7f1d1df2,#1e2a40f2);border:1px solid #ef444473;padding:20px}.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:10px;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:linear-gradient(135deg, var(--accent-blue), #1d4ed8);color:#fff;letter-spacing:.02em;border-radius:12px;width:100%;padding:12px 14px;font-weight:700}.trade-msg{border:1px solid #0000;border-radius:12px;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:var(--shadow-sm), 0 0 12px #10b9810f;border-color:#10b98159}.achievement-card.earned.rarity-common:before{content:"";background:linear-gradient(90deg, var(--accent-green), var(--accent-cyan));height:2px;position:absolute;top:0;left:0;right:0}.achievement-card.earned.rarity-rare{box-shadow:var(--shadow-sm), 0 0 16px #3b82f61a;border-color:#3b82f666}.achievement-card.earned.rarity-rare:before{content:"";background:linear-gradient(90deg,#3b82f6,#06b6d4);height:2px;position:absolute;top:0;left:0;right:0}.achievement-card.earned.rarity-epic{box-shadow:var(--shadow-sm), 0 0 20px #8b5cf61f;border-color:#8b5cf666}.achievement-card.earned.rarity-epic:before{content:"";background:linear-gradient(90deg,#8b5cf6,#ec4899);height:2px;position:absolute;top:0;left:0;right:0}.achievement-card.earned.rarity-legendary{box-shadow:var(--shadow-sm), 0 0 24px #f59e0b26;border-color:#f59e0b80;animation:3s ease-in-out infinite legendary-shimmer}.achievement-card.earned.rarity-legendary:before{content:"";background:linear-gradient(90deg,#f59e0b,#ef4444,#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;-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow-lg);background:linear-gradient(160deg,#121c2ef0,#0c1321fa);border:1px solid #94a3b829;border-radius:14px;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}.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);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;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 32px #0003}.achievement-toast.rarity-rare{border-color:#3b82f666;box-shadow:0 8px 32px #3b82f626}.achievement-toast.rarity-epic{border-color:#8b5cf666;box-shadow:0 8px 32px #8b5cf626}.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 32px #f59e0b33}.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:var(--shadow-sm), 0 0 20px #f59e0b1a}50%{box-shadow:var(--shadow-sm), 0 0 30px #f59e0b40}}@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:14px;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:10px;padding:9px 16px;font-weight:700}.lb-tab.active{color:var(--accent-blue-bright);background:linear-gradient(135deg,#2563eb26,#8b5cf61a);border-color:#2563eb4d;font-weight:600;box-shadow:0 0 12px #2563eb1a}.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);-webkit-backdrop-filter:blur(8px);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{background:linear-gradient(90deg,#2563eb,#10b981,#f59e0b,#ef4444);border-radius:999px;height:10px;margin-bottom:20px;position:relative;box-shadow:0 0 12px #2563eb26}.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:var(--shadow-lg), var(--shadow-glow-blue);background:radial-gradient(circle at 100% 0,#2563eb1f,#0000 32%),linear-gradient(145deg,#121c2eeb,#0c1321f5);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);background:linear-gradient(#162032d6,#101827e6);border:1px solid #94a3b81f;min-height:104px;padding:16px 18px;box-shadow:inset 0 1px #ffffff08}.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:10px;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:var(--shadow-lg);background:radial-gradient(circle at 0 0,#8b5cf614,#0000 28%),linear-gradient(#162032e0,#0f172af0);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:12px;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:linear-gradient(#162032d6,#101827e6);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:14px;padding:8px}.detail-news-list .news-item{border-radius:12px}.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:linear-gradient(90deg, var(--accent-blue), var(--accent-cyan));height:100%;position:relative;overflow:hidden}.quiz-progress-fill:after{content:"";background:linear-gradient(90deg,#0000 30%,#ffffff26 50%,#0000 70%);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;box-shadow:var(--shadow-lg), var(--shadow-glow-green);animation:toastSlideIn .4s var(--ease-spring);border:1px solid #10b98166;padding:12px 16px;position:fixed;top:84px;right:20px}@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:linear-gradient(90deg, var(--accent-blue), var(--accent-purple));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:linear-gradient(90deg, var(--accent-blue), var(--accent-purple));height:100%;position:relative;overflow:hidden}.rank-progress-fill:after{content:"";background:linear-gradient(90deg,#0000 30%,#fff3 50%,#0000 70%);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:14px;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:10px;padding:8px 14px;font-weight:700}.filter-btn.active,.pred-tab.active,.social-tab.active{color:var(--accent-blue-bright);background:linear-gradient(135deg,#2563eb1f,#8b5cf614);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:linear-gradient(90deg, var(--accent-green), var(--accent-cyan));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:linear-gradient(90deg, var(--accent-blue), var(--accent-cyan));height:100%;position:relative;overflow:hidden}.mission-progress-fill:after{content:"";background:linear-gradient(90deg,#0000 30%,#ffffff26 50%,#0000 70%);animation:2s ease-in-out infinite shimmer;position:absolute;inset:0}.claim-btn{background:linear-gradient(135deg, var(--accent-green), #059669);color:#fff;border-radius:var(--radius-sm);width:100%;margin-top:8px;padding:9px 10px;font-weight:600}.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:linear-gradient(90deg, var(--accent-blue), var(--accent-purple));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:var(--shadow-sm);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:12px;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:10px;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:var(--shadow-glow-blue)}.pred-dir-btns .dir-up.active{color:var(--accent-red);background:var(--accent-red-dim);box-shadow:var(--shadow-glow-red);border-color:#ef444459}.pred-dir-btns .dir-down.active{color:var(--accent-green);background:var(--accent-green-dim);box-shadow:var(--shadow-glow-green);border-color:#10b98159}.pred-msg{color:var(--accent-yellow);background:var(--accent-yellow-dim);border:1px solid #f59e0b38;border-radius:12px;margin-bottom:12px;padding:12px 14px;font-size:13px}.pred-submit{background:linear-gradient(135deg, var(--accent-blue), #1d4ed8);color:#fff;letter-spacing:.02em;border-radius:12px;width:100%;margin-top:10px;padding:12px 14px;font-weight:700;box-shadow:0 8px 24px #2563eb38}.pred-submit:hover{transform:translateY(-1px);box-shadow:0 12px 28px #2563eb47}.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:linear-gradient(135deg, var(--accent-blue), #1d4ed8);color:#fff;margin-left:auto;padding:8px 14px;font-weight:600}.bb-daily-btn:hover,.bb-open-btn:hover,.bb-activate-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #2563eb4d}.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{-webkit-backdrop-filter:blur(8px);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);-webkit-backdrop-filter:blur(12px);background:linear-gradient(90deg,#2563eb1f,#8b5cf614);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:linear-gradient(90deg,#f59e0b2e,#ef44441a)}.market-time-dot{background:var(--accent-green);border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite timeDotPulse;box-shadow:0 0 8px #10b98180}@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:14px;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:10px;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;box-shadow:var(--shadow-xl), var(--shadow-glow-blue-lg);animation:modalIn var(--duration-slow) var(--ease-spring);padding:28px;overflow-y:auto}.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:8px;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:8px;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:8px;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);box-shadow:var(--shadow-xl), 0 0 40px #ef444426;-webkit-backdrop-filter:blur(12px);background:linear-gradient(160deg,#7f1d1df2,#1e2a40f2);border:1px solid #ef444473;padding:20px}.margin-alert.warning .margin-alert-content{box-shadow:var(--shadow-xl), 0 0 40px #f59e0b26;background:linear-gradient(160deg,#785000f2,#1e2a40f2);border-color:#f59e0b73}.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:linear-gradient(180deg, var(--accent-purple), var(--accent-blue));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{background:linear-gradient(#1e293bd6,#23324ecc),radial-gradient(circle at 100% 0,#60a5fa1f,#0000 58%);border:1px solid #60a5fa33;border-radius:16px;padding:14px 16px;box-shadow:inset 0 1px #bfdbfe0d}.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:linear-gradient(135deg, var(--accent-blue), #1d4ed8);color:#fff;border-radius:var(--radius-sm);width:100%;padding:10px 18px;font-size:13px;font-weight:600}.gc-btn-primary:hover{box-shadow:0 4px 16px var(--accent-blue-dim);transform:translateY(-1px)}.gc-btn-accent{color:#fff;border-radius:var(--radius-sm);background:linear-gradient(135deg,#f59e0b,#d97706);width:100%;padding:10px 18px;font-size:13px;font-weight:600}.gc-btn-accent:hover{box-shadow:0 4px 16px var(--accent-yellow-dim);transform:translateY(-1px)}.gc-btn-warning{background:linear-gradient(135deg, var(--accent-yellow), #d97706);color:#fff;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600}.gc-btn-warning:hover{box-shadow:0 4px 12px var(--accent-yellow-dim)}.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:linear-gradient(135deg, var(--accent-green), #059669);color:#fff;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600}.gc-btn-success:hover{box-shadow:0 4px 12px var(--accent-green-dim)}.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:20px;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:linear-gradient(180deg, var(--accent-purple), var(--accent-blue));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{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--accent-red);z-index:9000;white-space:nowrap;background:#ef444426;border:1px solid #ef444466;border-radius:10px;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:0 0 0 4px var(--accent-blue-dim)}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:8px;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:0 0 #f59e0b00}50%{box-shadow:0 0 12px 2px #f59e0b26}}.nav-secondary{display:flex}.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{-webkit-backdrop-filter:blur(6px);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 32px #0006}.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:var(--shadow-glow-blue);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:var(--shadow-md);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:var(--shadow-lg), var(--shadow-glow-blue);transform:translateY(-3px)}.achievement-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.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:var(--shadow-lg), var(--shadow-glow-blue);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:var(--shadow-lg);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:linear-gradient(90deg, var(--accent-blue), var(--accent-purple), var(--accent-cyan));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);box-shadow:var(--shadow-lg);padding:24px}.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:linear-gradient(135deg, #2563eb 0%, #7c3aed 50%, #06b6d4 100%);--gradient-gold:linear-gradient(135deg, #f59e0b 0%, #ef4444 50%, #f59e0b 100%);--gradient-success:linear-gradient(135deg, #10b981 0%, #06b6d4 100%);--gradient-danger:linear-gradient(135deg, #ef4444 0%, #dc2626 100%);--gradient-surface:linear-gradient(145deg, #162032d9 0%, #0f172af2 100%);--glow-blue:0 0 30px #2563eb40, 0 0 60px #2563eb1a;--glow-purple:0 0 30px #8b5cf633, 0 0 60px #8b5cf614;--glow-cyan:0 0 30px #06b6d433, 0 0 60px #06b6d414;--noise-filter:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E")}body{background-image:radial-gradient(80% 50% at 50% -20%,#2563eb14 0%,#0000 60%),radial-gradient(60% 40% at 80% 80%,#8b5cf60f 0%,#0000 50%),radial-gradient(50% 30% at 20% 60%,#06b6d40d 0%,#0000 50%)}body:before{background:radial-gradient(circle,#2563eb26 0%,#06b6d414 40%,#0000 70%);width:700px;height:700px;animation:30s ease-in-out infinite floatOrb1}body:after{background:radial-gradient(circle,#8b5cf61f 0%,#ec48990f 40%,#0000 70%);width:600px;height:600px;animation:35s ease-in-out infinite floatOrb2}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:linear-gradient(#2563eb66,#8b5cf666,#06b6d44d);border:1px solid #ffffff0d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(#2563eb99,#8b5cf699,#06b6d480)}.app-header{-webkit-backdrop-filter:blur(24px)saturate(1.8);background:#0b1221d9;box-shadow:0 1px 3px #0006,0 8px 32px -8px #0000004d,inset 0 -1px #ffffff08}.app-header:after{opacity:.8;background:linear-gradient(90deg,#0000 2%,#2563eb80 20%,#8b5cf666 40%,#06b6d466 60%,#10b9814d 80%,#0000 98%);height:2px}.header-left{gap:10px}.logo{background:linear-gradient(135deg,#3b82f6 0%,#8b5cf6 40%,#06b6d4 70%,#10b981 100%) 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:10px;padding:8px 16px;font-weight:500;position:relative;overflow:hidden}.header-nav a:before{content:"";opacity:0;background:radial-gradient(circle,#2563eb1f 0%,#0000 70%);transition:opacity .3s;position:absolute;inset:0}.header-nav a:hover:before{opacity:1}.header-nav a.active{background:linear-gradient(135deg,#2563eb2e,#8b5cf61f,#06b6d414);box-shadow:inset 0 0 0 1px #2563eb33,0 0 16px #2563eb14}.header-nav a.active:after{content:"";background:linear-gradient(90deg, var(--accent-blue), var(--accent-purple));border-radius:1px;height:2px;position:absolute;bottom:2px;left:20%;right:20%}.user-info{background:linear-gradient(135deg,#2563eb1a,#8b5cf60f);border:1px solid #2563eb26;padding:5px 14px 5px 10px;box-shadow:0 0 12px #2563eb0f}.login-page{background:url(/login-bg-pattern.png) center/cover no-repeat fixed, radial-gradient(ellipse 80% 60% at 50% 30%, #2563eb1f 0%, transparent 60%), radial-gradient(ellipse 60% 50% at 80% 70%, #8b5cf614 0%, transparent 50%), var(--bg-deep)}.login-page:before{filter:blur(80px);background:radial-gradient(circle,#2563eb2e 0%,#06b6d41a 40%,#0000 70%);width:600px;height:600px;animation:20s ease-in-out infinite loginOrb1}.login-page:after{filter:blur(80px);background:radial-gradient(circle,#8b5cf626 0%,#ec489914 40%,#0000 70%);width:500px;height:500px;animation:25s ease-in-out infinite loginOrb2}.login-card{background:linear-gradient(145deg,#162032e6 0%,#0f172af2 100%);border:1px solid #2563eb33;border-radius:24px;max-width:440px;padding:48px 44px;box-shadow:0 25px 50px -12px #00000080,0 0 60px #2563eb1a,0 0 120px #8b5cf60d,inset 0 1px #ffffff0d}.login-card h1{background:linear-gradient(135deg,#3b82f6 0%,#8b5cf6 35%,#06b6d4 65%,#10b981 100%) 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:12px;margin-bottom:28px;padding:5px}.auth-tab{border-radius:9px;padding:11px;font-size:14px;font-weight:500;transition:all .25s cubic-bezier(.16,1,.3,1)}.auth-tab.active{color:var(--text-primary);background:linear-gradient(135deg,#2563eb40,#8b5cf62e);font-weight:600;box-shadow:0 2px 8px #2563eb26,inset 0 1px #ffffff0d}.login-form input:not([type=checkbox]){background:#0b1221b3;border:1px solid #94a3b81f;border-radius:12px;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{background:#0b1221e6;border-color:#2563eb80;box-shadow:0 0 0 4px #2563eb1a,0 0 20px #2563eb14}.login-form button{letter-spacing:.3px;background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 50%,#7c3aed 100%) 0 0/200% 200%;border-radius:12px;margin-top:10px;padding:14px;font-size:15px;font-weight:700;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 16px #2563eb40}.login-form button:hover{background-position:100%;transform:translateY(-2px);box-shadow:0 8px 30px #2563eb73,0 0 40px #8b5cf626}.login-features{gap:12px;margin-top:28px}.login-features span{background:linear-gradient(135deg,#2563eb14,#8b5cf60d);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);background:linear-gradient(135deg,#2563eb26,#8b5cf61a);border-color:#2563eb40;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb1a}.page-title{letter-spacing:-.8px;background:linear-gradient(135deg, var(--text-primary) 0%, var(--accent-blue-bright) 50%, var(--text-secondary) 100%);-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:linear-gradient(90deg, var(--accent-blue), var(--accent-purple), var(--accent-cyan));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{background:linear-gradient(145deg,#162032cc 0%,#0f172ae6 100%);border:1px solid #94a3b814;border-radius:14px;box-shadow:0 2px 8px #0003,inset 0 1px #ffffff08}.stock-card{border-radius:16px;padding:22px;position:relative}.stock-card:before{background:linear-gradient(90deg, var(--accent-blue), var(--accent-purple), var(--accent-cyan));background-size:200% 100%;height:3px}.stock-card:hover:before{opacity:1;animation:2s linear infinite shimmer-bar}.stock-card:hover{border-color:#2563eb4d;transform:translateY(-8px)scale(1.01);box-shadow:0 20px 40px -10px #0006,0 0 40px #2563eb1a,0 0 80px #2563eb0d}.stock-card:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;background:radial-gradient(at 50% 0,#2563eb0f 0%,#0000 60%);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{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(135deg,#2563eb1a,#8b5cf614);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:16px;padding:28px}.market-index-card:before{background:linear-gradient(90deg, var(--accent-blue), var(--accent-cyan), var(--accent-green));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{border-radius:999px;height:10px;box-shadow:inset 0 1px 3px #0000004d}.sentiment-fill{background:linear-gradient(90deg,#10b981 0%,#06b6d4 25%,#f59e0b 50%,#ef4444 75%,#dc2626 100%);border-radius:999px}.thermometer-gradient{background:linear-gradient(90deg,#2563eb,#06b6d4,#10b981,#f59e0b,#ef4444);border-radius:999px;height:12px;box-shadow:0 0 16px #2563eb33,inset 0 1px 2px #ffffff1a}.thermometer-indicator{border:3px solid #fff;width:18px;height:18px;top:-4px;box-shadow:0 0 12px #0000004d,0 0 20px #2563eb33}.sector-chip{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);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{background:#2563eb1f;border-color:#2563eb40;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb1a}.sector-chip.hot{background:#f59e0b14;border-color:#f59e0b80;box-shadow:0 0 12px #f59e0b14}.news-item{border-radius:12px;padding:16px 18px;transition:all .25s cubic-bezier(.16,1,.3,1)}.news-item:before{background:linear-gradient(180deg, var(--accent-blue), var(--accent-purple));border-radius:0 2px 2px 0;width:3px}.news-item:hover{transform:translate(4px);box-shadow:0 4px 16px #00000026}.news-item:hover:before{opacity:1}.summary-card{border-radius:16px;padding:28px;position:relative}.summary-card:before{background:linear-gradient(90deg, var(--accent-blue), var(--accent-purple), var(--accent-cyan));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;background:linear-gradient(135deg,#ef4444 0%,#dc2626 50%,#b91c1c 100%);border-radius:12px;padding:12px 24px;font-size:15px;font-weight:700;box-shadow:0 4px 12px #ef444433}.btn-buy:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ef444466,0 0 40px #ef44441a}.btn-sell{letter-spacing:.3px;background:linear-gradient(135deg,#10b981 0%,#059669 50%,#047857 100%);border-radius:12px;padding:12px 24px;font-size:15px;font-weight:700;box-shadow:0 4px 12px #10b98133}.btn-sell:hover{transform:translateY(-2px);box-shadow:0 8px 24px #10b98166,0 0 40px #10b9811a}.trade-panel{background:linear-gradient(145deg,#162032d9 0%,#0f172af2 100%);border:1px solid #94a3b81a;border-radius:16px;padding:18px;box-shadow:0 8px 32px #0003}.chart-container{background:linear-gradient(145deg,#162032d9 0%,#0f172af2 100%);border:1px solid #94a3b814;border-radius:16px;padding:24px;box-shadow:0 4px 16px #00000026}.chart-tabs button,.trade-tab{border-radius:10px;padding:8px 14px;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1)}.lb-item{border-radius:14px;margin-bottom:10px;padding:18px 22px;transition:all .25s cubic-bezier(.16,1,.3,1)}.lb-item:hover{transform:translate(4px);box-shadow:0 4px 16px #00000026}.lb-item:first-child{background:linear-gradient(135deg,#f59e0b1f 0%,#f59e0b08 100%);border-color:#f59e0b40;box-shadow:0 0 20px #f59e0b0f}.lb-item:nth-child(2){background:linear-gradient(135deg,#e2e8f014 0%,#e2e8f005 100%);border-color:#e2e8f02e}.lb-item:nth-child(3){background:linear-gradient(135deg,#b453091a 0%,#b4530908 100%);border-color:#b4530940}.lb-rank{width:44px;font-size:22px;font-weight:900}.lb-rank.top1{text-shadow:0 0 20px #f59e0b99;font-size:28px}.lb-value{font-family:JetBrains Mono,monospace;font-size:16px;font-weight:800}.achievement-card{border-radius:16px;padding:24px 18px;transition:all .3s cubic-bezier(.16,1,.3,1)}.achievement-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #0003}.achievement-icon{margin-bottom:12px;font-size:36px}.achievement-name{font-size:15px;font-weight:800}.quiz-option{border-radius:14px;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{transform:translate(4px);box-shadow:0 4px 16px #2563eb1a}.mission-card{border-radius:16px;padding:20px;transition:all .25s cubic-bezier(.16,1,.3,1)}.mission-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000026}.rank-progress,.mission-progress-bar,.quiz-progress-bar,.sentiment-bar,.cycle-progress-bar{background:#0f172a99;border-radius:999px;height:10px;box-shadow:inset 0 1px 3px #0000004d}.rank-progress-fill,.mission-progress-fill,.quiz-progress-fill,.cycle-progress-fill{border-radius:999px}.app-footer{letter-spacing:.3px;background:linear-gradient(#0000 0%,#0b1221e6 100%);padding:36px 24px;font-size:13px}.app-footer:before{background:linear-gradient(90deg,#0000 5%,#2563eb4d 25%,#8b5cf64d 50%,#06b6d44d 75%,#0000 95%);height:2px}.blackswan-alert-content{border-radius:20px;padding:24px;box-shadow:0 25px 50px -12px #00000080,0 0 50px #ef444433}.margin-alert-content{border-radius:20px;padding:24px}.bb-tier{border-radius:16px;padding:16px;transition:all .25s cubic-bezier(.16,1,.3,1)}.bb-tier:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0003}.bb-tier-icon{margin-bottom:8px;font-size:32px}.bb-reveal-box,.bb-result-card{border-radius:24px;padding:36px}.market-time-bar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(90deg,#2563eb26 0%,#8b5cf61a 50%,#06b6d414 100%);padding:8px 20px;font-size:13px;font-weight:600}.market-time-dot{width:9px;height:9px;box-shadow:0 0 10px #10b98199,0 0 20px #10b9814d}input,select,textarea{border-radius:10px;padding:11px 16px;font-size:14px;transition:all .3s cubic-bezier(.16,1,.3,1)}input:focus,select:focus,textarea:focus{border-color:#2563eb80;box-shadow:0 0 0 4px #2563eb1a,0 0 24px #2563eb1a}.stat-item{background:linear-gradient(145deg,#162032b3 0%,#0f172ad9 100%);border-radius:12px;padding:14px;transition:all .2s}.stat-item:hover{border-color:#2563eb33;box-shadow:0 0 12px #2563eb0f}.news-banner{background:linear-gradient(90deg,#2563eb1f 0%,#8b5cf614 50%,#06b6d40d 100%);border-bottom:2px solid #2563eb26;border-radius:0;padding:14px 24px}.news-banner .news-tag{color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:8px;padding:4px 12px;font-weight:700;box-shadow:0 2px 8px #2563eb4d}.announcement-banner{background:linear-gradient(90deg,#2563eb1a 0%,#8b5cf60f 50%,#0000 100%);border-bottom:2px solid #2563eb1a;padding:12px 24px}.announcement-tag{background:linear-gradient(135deg, var(--accent-blue), var(--accent-purple));border-radius:8px;padding:4px 12px;font-weight:700;box-shadow:0 2px 8px #2563eb33}.inflation-toast{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:14px;padding:12px 24px;box-shadow:0 8px 32px #0000004d}.achievement-toast{border-radius:16px;padding:16px 18px;box-shadow:0 12px 40px #0000004d}.pw-change-card{border-radius:24px;padding:40px}.student-detail-modal{border-radius:24px;padding:32px}.admin-stat-card{border-radius:16px;padding:24px}.admin-stat-card:before{background:linear-gradient(90deg, var(--accent-blue), var(--accent-purple), var(--accent-cyan));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:14px;padding:18px}.pred-stat-item:before{background:linear-gradient(90deg, var(--accent-blue), var(--accent-purple), var(--accent-cyan));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:10px;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{background:linear-gradient(135deg,#2563eb2e,#8b5cf61f);border-color:#2563eb59;box-shadow:0 0 16px #2563eb1a,inset 0 1px #ffffff08}.diary-entry{border-radius:14px;padding:18px;transition:all .2s}.diary-entry:hover{border-color:#2563eb33;box-shadow:0 4px 12px #0000001a}.gc-form{border-radius:16px;padding:24px}.gc-item{border-radius:14px;padding:18px 20px}.gc-badge{border-radius:24px;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{background:#fffffff2;border-color:#94a3b833;box-shadow:0 25px 50px -12px #00000026,0 0 60px #2563eb0d}[data-theme=light] .admin-stat-card,[data-theme=light] .admin-controls,[data-theme=light] .admin-students{background:#ffffffeb;border-color:#94a3b838;box-shadow:0 2px 8px #0000000f,inset 0 1px #fffc}[data-theme=light] .stock-card:hover{box-shadow:0 20px 40px -10px #0000001f,0 0 40px #2563eb0f}@media (width<=768px){.header-nav{background:#0b1221fa;padding:6px 4px 8px;box-shadow:0 -4px 24px #0006}.header-nav:before{background:linear-gradient(90deg,#0000,#2563eb66,#8b5cf64d,#0000);height:2px}.header-nav a{border-radius:8px;padding:6px 10px}.header-nav a.active:after{display:none}.stock-card{border-radius:14px}.login-card{border-radius:20px;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:16px;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{transform:translateY(-2px);box-shadow:0 8px 24px #2563eb66}.claim-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #10b98159}.empty-state{padding:80px 20px}.empty-state:before{content:"○";background:linear-gradient(135deg, var(--accent-blue), var(--accent-purple));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:16px;font-size:48px}.btn-linuxdo{border-radius:14px;padding:13px;font-weight:600;transition:all .25s cubic-bezier(.16,1,.3,1)}.btn-linuxdo:hover{transform:translateY(-1px);box-shadow:0 4px 16px #2563eb26}.btn-oauth{border-radius:14px;padding:13px;font-weight:600}.btn-wechat{box-shadow:0 4px 12px #07c16033}.btn-wechat:hover{transform:translateY(-1px);box-shadow:0 8px 24px #07c1604d}.btn-qq{box-shadow:0 4px 12px #12b7f533}.btn-qq:hover{transform:translateY(-1px);box-shadow:0 8px 24px #12b7f54d}.day-break-banner{border-radius:12px;padding:10px 18px;font-weight:700;box-shadow:0 0 16px #f59e0b1a}.pw-strength-bar{border-radius:999px;height:8px;box-shadow:inset 0 1px 3px #0003}.fundamental-item{border-radius:12px;padding:16px;transition:all .2s}.fundamental-item:hover{border-color:#2563eb33;box-shadow:0 0 12px #2563eb0f}.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:16px;padding:18px}.title-card{border-radius:12px;padding:16px;transition:all .2s}.title-card:hover{border-color:#2563eb33;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.invite-item{border-radius:10px;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:8px;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{background:#2563eb0f}.admin-table tbody tr:hover td{background:linear-gradient(90deg,#2563eb0f,#2563eb08)}.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);background:#fffffff5;border-color:#2563eb47;box-shadow:0 10px 24px #0f172a0f}[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{background:#ffffffdb;border-color:#94a3b83d;box-shadow:0 10px 24px #0f172a0f}[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);background:linear-gradient(135deg,#2563eb1f,#8b5cf614);border-color:#2563eb4d;box-shadow:0 8px 18px #2563eb14,inset 0 1px #ffffffe6}[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 12px 28px #0f172a14,inset 0 1px #ffffffd9}[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);background:#f8fafceb;border-color:#94a3b83d;box-shadow:0 12px 28px #0f172a14,inset 0 1px #ffffffd9}[data-theme=light] .quiz-option{color:var(--text-primary);background:#fffffff0;border-color:#94a3b83d;box-shadow:0 12px 28px #0f172a14,inset 0 1px #ffffffd9}[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 16px 34px #0f172a1f}[data-theme=light] .app-notification-card.tone-info,[data-theme=light] .news-banner{background:linear-gradient(135deg,#eff6fffa,#fffffff0);border-color:#2563eb3d}[data-theme=light] .app-notification-card.tone-success{background:linear-gradient(135deg,#ecfdf5fa,#fffffff0);border-color:#10b98152}[data-theme=light] .app-notification-card.tone-warning,[data-theme=light] .inflation-toast,[data-theme=light] .mission-toast{background:linear-gradient(135deg,#fffbebfa,#fffffff0);border-color:#f59e0b57}[data-theme=light] .app-notification-card.tone-danger{background:linear-gradient(135deg,#fef2f2fa,#fffffff0);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{background:#e2e8f0f2;box-shadow:inset 0 1px 3px #0f172a14}[data-theme=light] .page-header-card{background:radial-gradient(circle at 100% 0,#2563eb14,#0000 32%),linear-gradient(145deg,#fffffff5,#eff6ffe6);border-color:#2563eb29;box-shadow:0 10px 24px #0f172a14}[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}
