*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:Space Grotesk,Noto Sans SC,system-ui,sans-serif;background:radial-gradient(circle at top,#0a1630,#03060e 55%,#010205);color:#f8fbff;min-height:100vh;padding:32px 20px 60px}body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 20% 0%,rgba(77,214,255,.15),transparent 55%);opacity:.8;z-index:-2}body:after{content:"";position:fixed;inset:0;background:linear-gradient(180deg,#04060ce6,#05060af5);z-index:-1}#root{max-width:1200px;margin:0 auto}.page-shell{display:flex;flex-direction:column;gap:24px}.main-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}.schedule-col{animation:fadeInUp .7s ease-out both}.note-panel{background:#0a0c19e0;border-radius:32px;padding:28px;border:1px solid rgba(77,214,255,.18);box-shadow:0 30px 60px #000000a6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);display:flex;flex-direction:column;gap:10px}.note-label{font-size:12px;letter-spacing:.4em;color:#fff9}.note-title{font-size:20px;color:#f8fbff}.note-time{font-size:22px;color:#ffd166;letter-spacing:.1em}.note-text{font-size:16px;color:#fffc}.note-date{font-size:14px;color:#ffffff73}.schedule-card{padding:28px;border:none;min-height:360px}.schedule-row{border-radius:28px;padding:0}.schedule-row-content{gap:8}.schedule-note{font-size:16px;color:#62c4ff}.status-footer{text-align:center;font-size:15px;color:#fff9;letter-spacing:.2em}.page-loading{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;color:#9bb2ff}.loading-text{color:#ffffffa6}@keyframes fadeInUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@media(min-width:900px){body{padding:48px 60px 80px}.page-shell{gap:32px}.main-grid{grid-template-columns:1.4fr .6fr;align-items:flex-start}.status-footer{text-align:right}}.tab-row{display:flex;gap:12px;align-items:center;padding:0 12px}.tab-button{border-radius:18px;padding:10px 18px;border:1px solid rgba(255,255,255,.15);background:transparent;color:#f8fbff;font-weight:500;letter-spacing:.1em;cursor:pointer;transition:all .25s ease}.tab-button:hover{border-color:#4dd6ffb3}.tab-button.active{background:#4dd6ff26;border-color:#addbffb3;box-shadow:0 10px 30px #4dd6ff33}.learning-panel{background:#080b16eb;border-radius:32px;padding:32px;border:1px solid rgba(77,214,255,.18);box-shadow:0 40px 75px #0009;min-height:360px}.learning-header{margin-bottom:26px}.learning-label{font-size:12px;letter-spacing:.6em;color:#ffffff80;margin-bottom:8px}.learning-headline{font-size:24px;margin-bottom:6px}.learning-subtitle{color:#ffffffa6;font-size:14px}.learning-list{display:flex;flex-direction:column;gap:20px}.learning-entry{padding:18px 20px;border-radius:24px;background:#ffffff05;border:1px solid rgba(255,255,255,.08);animation:fadeInUp .5s ease both}.learning-entry-date{font-size:12px;letter-spacing:.5em;color:#fff6;margin-bottom:6px}.learning-entry-title{font-size:20px;margin-bottom:6px}.learning-entry-items{list-style:disc;padding-left:18px;color:#ffffffb3;font-size:15px;margin-top:6px}.learning-entry-items li+li{margin-top:4px}.learning-loading,.learning-empty{min-height:280px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#ffffffa6;gap:10px}.learning-loading-text{font-size:14px}.quant-page{min-height:100vh;padding:24px;background:linear-gradient(180deg,#03060ccc,#060a18f2);border-radius:32px;border:1px solid rgba(255,255,255,.08);box-shadow:0 60px 120px #000000b3}.quant-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.quant-header h1{font-size:32px;margin-bottom:4px}.quant-subtitle{color:#fff9;margin:0;max-width:52ch}.stat-card{border-radius:20px;border:1px solid rgba(255,255,255,.1);background:#070b18e6;min-height:140px}.stat-change{color:#ffffffa6;font-weight:600}.stat-note{color:#ffffff73;font-size:12px}.watch-name{font-size:12px;color:#ffffff80}.quant-card{border-radius:28px;border:1px solid rgba(255,255,255,.1);background:#060a12eb}.signal-title{font-weight:600}.signal-detail{color:#ffffffb3;margin:4px 0}.signal-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#ffffff73}.chart-slot{margin-top:24px;border-radius:22px;padding:24px;background:radial-gradient(circle at top,rgba(79,210,255,.15),transparent 60%),#ffffff05;border:1px dashed rgba(255,255,255,.15)}.chart-label{font-size:18px;margin-bottom:8px}.chart-subtitle{color:#fff9}.quant-chart-card{border-radius:28px;border:1px solid rgba(255,255,255,.08);background:#050812f2;min-height:280px}.quant-chart-loading,.quant-chart-empty{min-height:220px;display:flex;justify-content:center;align-items:center;color:#ffffffa6}.stock-tile .stock-tile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.mini-stat{border:1px solid rgba(255,255,255,.08);background:#070b18f2;border-radius:18px;padding:16px}.crypto-card{border-radius:28px;border:1px solid rgba(255,255,255,.1);background:#030710f2;min-height:240px;padding:24px}.crypto-card .stat-change{margin-top:8px}.crypto-position-list{list-style:none;padding-left:0;margin-top:12px;display:flex;flex-direction:column;gap:8px;color:#ffffffbf;font-size:14px}.news-source{color:#fff9}.news-time{color:#ffffff73}.news-summary{margin:4px 0 0;color:#ffffffa6;font-size:13px}.news-link{color:#7dd3fc}.news-link:hover{color:#4fd2ff}@media(max-width:768px){.quant-page{padding:16px}.quant-header{flex-direction:column}.quant-header button{align-self:flex-start}}.appnav-shell{min-height:100vh;display:flex;flex-direction:column;padding:0 16px 32px}.appnav-header{padding:20px 0 28px;text-align:center}.appnav-brand{font-size:22px;font-weight:700;color:#f8fbff;letter-spacing:.06em}.appnav-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;max-width:420px;margin:0 auto}.appnav-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:20px 18px;border-radius:24px;text-decoration:none;color:inherit;border:1px solid rgba(255,255,255,.08);background:#ffffff0d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 32px #00000059;transition:transform .2s ease,box-shadow .2s ease;min-height:120px;position:relative}.appnav-card:hover{transform:translateY(-3px);box-shadow:0 14px 40px #00000073}.appnav-card:active{transform:translateY(0);box-shadow:0 4px 20px #0006}.appnav-card-icon{font-size:28px;line-height:1;margin-bottom:10px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.appnav-card-title{font-size:16px;font-weight:600;color:#f8fbff;letter-spacing:.02em;margin-bottom:2px}.appnav-card-sub{font-size:12px;color:#fff9;letter-spacing:.03em}.appnav-card-arrow{position:absolute;top:18px;right:18px;font-size:14px;color:#fff6;transition:transform .2s ease}.appnav-card:hover .appnav-card-arrow{transform:translate(4px);color:#ffffffb3}.appnav-card--calendar{border-left:3px solid #60a5fa;box-shadow:0 8px 32px #60a5fa26}.appnav-card--calendar:hover{box-shadow:0 14px 40px #60a5fa40}.appnav-card--rail{border-left:3px solid #fbbf24;box-shadow:0 8px 32px #fbbf241f}.appnav-card--rail:hover{box-shadow:0 14px 40px #fbbf2438}.appnav-card--metro{border-left:3px solid #a855f7;box-shadow:0 8px 32px #a855f726}.appnav-card--metro:hover{box-shadow:0 14px 40px #a855f740}.appnav-card--dashboard{border-left:3px solid #f472b6;box-shadow:0 8px 32px #f472b626}.appnav-card--dashboard:hover{box-shadow:0 14px 40px #f472b640}.appnav-card--quant{border-left:3px solid #34d399;box-shadow:0 8px 32px #34d3991f}.appnav-card--quant:hover{box-shadow:0 14px 40px #34d39938}.appnav-card--downloads{border-left:3px solid #f472b6;box-shadow:0 8px 32px #f472b61f}.appnav-card--downloads:hover{box-shadow:0 14px 40px #f472b638}.appnav-card--usage{border-left:3px solid #60a5fa;box-shadow:0 8px 32px #60a5fa1f}.appnav-card--usage:hover{box-shadow:0 14px 40px #60a5fa38}.appnav-card--pdf{border-left:3px solid #ff6b6b;box-shadow:0 8px 32px #ff6b6b1f}.appnav-card--pdf:hover{box-shadow:0 14px 40px #ff6b6b38}@media(min-width:520px){.appnav-grid{grid-template-columns:repeat(2,1fr);max-width:480px;gap:18px}.appnav-card{min-height:130px;padding:24px 22px}.appnav-card-icon{font-size:32px}.appnav-card-title{font-size:17px}}@media(min-width:768px){.appnav-shell{padding:0 24px 48px}.appnav-header{padding:28px 0 36px}.appnav-brand{font-size:26px}.appnav-grid{grid-template-columns:repeat(2,1fr);max-width:520px;gap:22px}.appnav-card{min-height:140px;padding:26px 24px}}.calendar-page-header{margin-bottom:20px}.calendar-page-header .back-link{color:#fffc;text-decoration:none;font-size:14px}.calendar-page-header .back-link:hover{color:#7dd3fc}.dashboard-embed-wrap{position:fixed;inset:0;width:100%;height:100%;z-index:10;background:#fff;display:flex;flex-direction:column}.dashboard-nav-bar{flex-shrink:0;padding:10px 20px;background:#0f172a;border-bottom:1px solid rgba(255,255,255,.1)}.dashboard-back-link{color:#ffffffd9;text-decoration:none;font-size:14px}.dashboard-back-link:hover{color:#7dd3fc}.dashboard-iframe{flex:1;width:100%;min-height:0;border:none;display:block}.rail-page{min-height:100vh;background:#0c0c0c;color:#e8a317;padding:16px 20px 32px}.rail-header{margin-bottom:24px}.rail-back{display:inline-block;color:#e8a317e6;text-decoration:none;font-size:14px;margin-bottom:12px}.rail-back:hover{color:#f0b830}.rail-title{font-size:22px;font-weight:700;letter-spacing:.05em;margin:0 0 4px}.rail-sub{font-size:12px;color:#e8a317a6;margin:0}.rail-sub a{color:#e8a317d9}.rail-boards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}.rail-station-board{background:#141414;border:1px solid rgba(232,163,23,.25);border-radius:8px;padding:14px 16px;overflow:hidden}.rail-station-title{font-size:16px;font-weight:600;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid rgba(232,163,23,.3);letter-spacing:.03em}.rail-loading,.rail-error{padding:20px 0;text-align:center;color:#e8a317b3;font-size:14px}.rail-table{width:100%;border-collapse:collapse;font-size:14px}.rail-table th{text-align:left;font-weight:600;color:#e8a317d9;padding:6px 8px 6px 0;border-bottom:1px solid rgba(232,163,23,.2)}.rail-th-time{width:52px}.rail-th-plat{width:36px}.rail-th-delay{width:44px}.rail-table td{padding:6px 8px 6px 0;border-bottom:1px solid rgba(232,163,23,.08)}.rail-time{font-variant-numeric:tabular-nums;font-weight:500}.rail-platform{font-variant-numeric:tabular-nums}.rail-delay{color:#e85c4a;font-variant-numeric:tabular-nums}.rail-dest{color:#ffffffeb}.rail-train{color:#e8a317e6;font-size:13px}.rail-row-canceled .rail-dest{text-decoration:line-through;opacity:.6}.rail-row-fav{background:linear-gradient(90deg,rgba(232,163,23,.12) 0%,transparent 12%);border-left:3px solid rgba(245,198,83,.9)}.rail-row-fav td{border-bottom-color:#e8a31726}.rail-row-fav .rail-dest{color:#f5d053;font-weight:500}.rail-fav-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#f0b830;margin-right:8px;vertical-align:.2em;box-shadow:0 0 0 2px #f0b83059}.rail-row-fav.rail-row-canceled .rail-dest{color:#f5d053bf}.metro-page{min-height:100vh;background:#0f0f13;color:#e2e8f0;padding:16px 20px 32px}.metro-header{margin-bottom:24px}.metro-back{display:inline-block;color:#a855f7e6;text-decoration:none;font-size:14px;margin-bottom:12px}.metro-back:hover{color:#c084fc}.metro-title{font-size:22px;font-weight:700;letter-spacing:.05em;margin:0 0 16px;color:#f8fafc}.metro-line-tabs{display:flex;gap:8px;flex-wrap:wrap}.metro-tab{min-width:52px;height:44px;padding:0 12px;border-radius:12px;border:1px solid rgba(168,85,247,.35);background:#a855f714;color:#c084fc;font-size:18px;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.metro-tab:hover{background:#a855f72e;border-color:#a855f780}.metro-tab--active{background:#a855f759;border-color:#a855f7;color:#fff}.metro-loading,.metro-error{padding:40px 0;text-align:center;color:#e2e8f0b3}.metro-error{color:#f87171}.metro-empty{padding:40px 20px;text-align:center;color:#e2e8f0cc}.metro-diagram-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px}.metro-direction{background:#16161d;border:1px solid rgba(168,85,247,.2);border-radius:16px;padding:16px 20px;overflow:hidden}.metro-direction-label{font-size:13px;font-weight:600;color:#a855f7;text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid rgba(168,85,247,.25)}.metro-line-track{display:flex;flex-direction:column;gap:0}.metro-stop-row{display:flex;align-items:center;gap:14px;min-height:44px;position:relative}.metro-stop-row:before{content:"";position:absolute;left:10px;top:22px;bottom:-2px;width:2px;background:linear-gradient(180deg,#a855f7,#a855f766)}.metro-stop-row:last-child:before{display:none}.metro-stop-marker{position:relative;width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;z-index:1}.metro-stop-dot{width:12px;height:12px;border-radius:50%;border:2px solid #a855f7;background:#0f0f13;box-sizing:border-box}.metro-train-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:18px;height:18px;border-radius:50%;background:#dc2626;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #fff,0 0 12px #dc262699;line-height:1}.metro-stop-name{font-size:14px;color:#e2e8f0f2;font-weight:500}.metro-shared-wrap{max-width:420px;margin:0 auto;background:#1a1a22;border:1px solid rgba(156,163,175,.25);border-radius:16px;padding:18px 20px 20px;overflow:hidden}.metro-shared-title{font-size:13px;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid rgba(156,163,175,.3)}.metro-line-track--shared .metro-stop-row--shared:before{background:linear-gradient(180deg,#9ca3af,#9ca3af66)}.metro-stop-dot--shared{border-color:#9ca3af;background:#111}.metro-shared-wrap .metro-stop-name{color:#fff}.metro-h-wrap{max-width:720px;margin:0 auto;background:#1a1a22;border-radius:16px;padding:20px 24px 24px;overflow:hidden}.metro-h-wrap--1-5{border:1px solid rgba(236,72,153,.25)}.metro-h-wrap--1-5 .metro-h-legend-l{border-color:#ec4899;color:#f9a8d4}.metro-h-wrap--1-5 .metro-h-legend-bar{border-color:#9ca3af;color:#d1d5db}.metro-h-wrap--1-5 .metro-h-legend-r{border-color:#eab308;color:#fde047}.metro-h-wrap--1-5 .metro-h-col-left:before{background:linear-gradient(180deg,#ec4899,#ec489966)}.metro-h-wrap--1-5 .metro-stop-dot-l{border-color:#ec4899;background:#111}.metro-h-wrap--1-5 .metro-h-col-right:before{background:linear-gradient(180deg,#eab308,#eab30866)}.metro-h-wrap--1-5 .metro-stop-dot-r{border-color:#eab308;background:#111}.metro-h-wrap--1-5 .metro-h-bar-line-shared{background:linear-gradient(90deg,#9ca3af80,#9ca3af,#9ca3af80)}.metro-h-wrap--1-5 .metro-h-row-shared .metro-stop-dot-l,.metro-h-wrap--1-5 .metro-h-row-shared .metro-stop-dot-r{border-color:#9ca3af;background:#111}.metro-h-wrap--2-6{border:1px solid rgba(59,130,246,.25)}.metro-h-wrap--2-6 .metro-h-legend-l{border-color:#3b82f6;color:#93c5fd}.metro-h-wrap--2-6 .metro-h-legend-bar{border-color:#9ca3af;color:#d1d5db}.metro-h-wrap--2-6 .metro-h-legend-r{border-color:#22c55e;color:#86efac}.metro-h-wrap--2-6 .metro-h-col-left:before{background:linear-gradient(180deg,#3b82f6,#3b82f666)}.metro-h-wrap--2-6 .metro-stop-dot-l{border-color:#3b82f6;background:#111}.metro-h-wrap--2-6 .metro-h-col-right:before{background:linear-gradient(180deg,#22c55e,#22c55e66)}.metro-h-wrap--2-6 .metro-stop-dot-r{border-color:#22c55e;background:#111}.metro-h-wrap--2-6 .metro-h-bar-line-shared{background:linear-gradient(90deg,#9ca3af80,#9ca3af,#9ca3af80)}.metro-h-wrap--2-6 .metro-h-row-shared .metro-stop-dot-l,.metro-h-wrap--2-6 .metro-h-row-shared .metro-stop-dot-r{border-color:#9ca3af;background:#111}.metro-h-legend{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.metro-h-legend-chip{padding:6px 14px;border-radius:8px;border:2px solid;background:#0000004d}.metro-h-diagram{display:flex;flex-direction:column;gap:0}.metro-h-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;min-height:48px}.metro-h-row-pad{min-height:32px}.metro-h-row-pad .metro-h-mid{opacity:.35}.metro-h-col{display:flex;align-items:center;gap:12px;position:relative;min-width:0}.metro-h-col-left{justify-content:flex-end}.metro-h-col-left:before{content:"";position:absolute;left:0;top:24px;bottom:-24px;width:2px;background:linear-gradient(180deg,#a855f7,#a855f759)}.metro-h-row:last-child .metro-h-col-left:before,.metro-h-row-pad .metro-h-col-left:before{display:none}.metro-h-col-right{justify-content:flex-start}.metro-h-col-right:before{content:"";position:absolute;right:0;top:24px;bottom:-24px;width:2px;background:linear-gradient(180deg,#c084fc,#c084fc59)}.metro-h-row:last-child .metro-h-col-right:before,.metro-h-row-pad .metro-h-col-right:before{display:none}.metro-h-mid{min-width:48px;display:flex;align-items:center;justify-content:center;position:relative}.metro-h-bar-seg{position:relative;width:100%;height:2px;min-width:40px;background:linear-gradient(90deg,#a855f780,#c084fccc,#a855f780);border-radius:1px}.metro-h-bar-seg .metro-train-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.metro-h-bar-gap{width:100%;height:2px;min-width:40px;background:transparent}.metro-h-empty{min-height:24px}.metro-h-wrap .metro-stop-name{color:#fff;font-weight:500;min-width:0}.metro-h-row-shared .metro-h-bar-seg{box-shadow:0 0 10px #9ca3af33}.metro-h-wrap--1-5 .metro-h-row-shared .metro-h-bar-seg{box-shadow:0 0 10px #9ca3af40}.metro-tab{min-width:56px}@media(max-width:768px){body{padding:16px 12px 48px}.toolnav-header{padding:12px 0 14px;margin-bottom:20px;gap:10px}.toolnav-brand{font-size:18px}.toolnav-links{gap:14px}.toolnav-links a{font-size:14px}.toolnav-main{gap:18px}.toolnav-card-head{padding:14px 16px}.toolnav-card-head h2{font-size:17px}.toolnav-list{padding:12px 16px 14px}.toolnav-list li{padding:8px 0}.toolnav-list a{font-size:14px}.calendar-page-header{margin-bottom:12px}.calendar-page-header .back-link{font-size:13px}.dashboard-nav-bar{padding:8px 12px}.dashboard-back-link{font-size:13px}.page-shell,.main-grid{gap:16px}.metro-h-wrap{padding:14px 12px 18px;margin-left:-4px;margin-right:-4px;max-width:none}.metro-h-legend{gap:10px;margin-bottom:16px;padding-bottom:12px;font-size:11px}.metro-h-legend-chip{padding:5px 10px}.metro-h-row{gap:8px;min-height:44px}.metro-h-wrap .metro-stop-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;max-width:100%}.metro-h-mid{min-width:36px}.metro-h-bar-seg,.metro-h-bar-gap{min-width:28px}}
