:root{--max-width: 540px;--bg-primary: #1a1a2e;--bg-secondary: #16213e;--hud-bg: #12192b;--tile-bg: #1e2742;--dialog-bg: #1b2340;--text-primary: #ecf0f1;--text-secondary: #94a3b8;--border-color: #2a3555;--btn-bg: #3498db;--btn-text: #ffffff;--accent: #2ecc71;--danger: #e74c3c;--overlay-bg: rgba(0, 0, 0, .55);--wall-color: #0d1220;--station-backdrop: #0e1628;--station-ring: #2b3a5a;--station-shape: #ecf0f1;--station-shape-stroke: #0e1628;--queue-passenger: #cbd5e1;--queue-hot: #f59e0b;--train-stroke: #0b111e;--train-passenger: #ecf0f1;--train-full-stroke: #f59e0b;--drag-preview: #94a3b8}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);-webkit-user-select:none;user-select:none;touch-action:manipulation}.game-wrapper{width:100%;height:100%;display:flex;justify-content:center}#app{width:100%;max-width:var(--max-width);height:100%;display:flex;flex-direction:column;position:relative;background:var(--bg-primary)}.board{flex:1;display:flex;align-items:center;justify-content:center;padding:8px;min-height:0;width:100%}.board-svg{width:100%;height:100%;max-width:100%;max-height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.wall-cell{fill:var(--wall-color)}.line-stroke{fill:none;stroke-width:.22;stroke-linecap:round;stroke-linejoin:round;opacity:.92}.station-backdrop{fill:var(--station-backdrop);stroke:var(--station-ring);stroke-width:.06}.station-shape{fill:var(--station-shape);stroke:var(--station-shape-stroke);stroke-width:.04;stroke-linejoin:round}.queue-passenger{fill:var(--queue-passenger);opacity:.9}.queue-hot{fill:var(--queue-hot)}.train{transition:none}.train-body{stroke:var(--train-stroke);stroke-width:.03}.train-passenger{fill:var(--train-passenger)}.train-full .train-body{stroke:var(--train-full-stroke);stroke-width:.05}.train-crashed{cursor:pointer}.train-crashed .train-body{stroke:var(--danger);stroke-width:.06;filter:saturate(.4) brightness(.75)}.train-crash-halo{fill:var(--danger);opacity:.25;animation:crashPulse .9s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.train-crash-icon{font-size:.35px;font-weight:900;fill:#fff;stroke:var(--danger);stroke-width:.02;paint-order:stroke fill;pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes crashPulse{0%,to{opacity:.15;transform:scale(.9)}50%{opacity:.45;transform:scale(1.15)}}.drag-preview{stroke:var(--drag-preview);stroke-width:.1;stroke-dasharray:.2 .15;stroke-linecap:round;opacity:.8;pointer-events:none}.hud{width:100%;padding:10px 12px 6px;display:flex;flex-direction:column;gap:8px;background:var(--hud-bg);border-bottom:1px solid var(--border-color);flex-shrink:0}.hud-top{display:flex;align-items:center;gap:8px}.hud-btn{background:var(--btn-bg);color:var(--btn-text);border:none;padding:6px 10px;border-radius:6px;font-size:14px;cursor:pointer}.hud-title{font-weight:600;font-size:16px;flex:1;text-align:center;color:var(--text-primary)}.hud-spacer{width:60px}.hud-stats{display:flex;gap:12px;font-size:13px;color:var(--text-secondary);align-items:center;justify-content:space-between}.hud-stat{display:flex;align-items:center;gap:6px}.hud-stat.hud-hot{color:var(--danger);font-weight:600}.hud-lines-slot{gap:8px}.hud-lines{display:flex;gap:4px}.hud-line-slot{width:22px;height:22px;border-radius:50%;border:2px solid var(--border-color);background:transparent;cursor:pointer;padding:0}.hud-line-slot.filled{background:var(--slot-color);border-color:var(--slot-color)}.hud-line-slot.empty{cursor:default}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.dialog{background:var(--dialog-bg);color:var(--text-primary);border-radius:12px;max-width:360px;width:100%;padding:20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 10px 30px #0006}.dialog-title{font-size:20px;font-weight:700}.dialog-body{font-size:15px;color:var(--text-secondary);line-height:1.4}.dialog-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.dialog-btn{padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;border:none;cursor:pointer}.dialog-btn-primary{background:var(--btn-bg);color:var(--btn-text)}.dialog-btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.level-select{padding:40px 20px 20px;display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.level-select-title{font-size:36px;font-weight:800;letter-spacing:-.5px;color:var(--text-primary);margin:0}.level-select-tagline{color:var(--text-secondary);font-size:13px;margin-bottom:20px;text-align:center}.level-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;width:100%;max-width:360px}.level-tile{aspect-ratio:1;background:var(--tile-bg);color:var(--text-primary);border:1px solid var(--border-color);border-radius:12px;padding:10px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;cursor:pointer;transition:transform .08s ease;position:relative}.level-tile:active{transform:scale(.98)}.level-tile.completed{border-color:var(--accent)}.level-tile-id{font-size:28px;font-weight:700;color:var(--text-secondary)}.level-tile-name{font-size:14px;text-align:left;font-weight:600}.level-tile-best{position:absolute;top:8px;right:10px;font-size:18px;color:var(--accent)}
