:root{font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;line-height:1.45;color:#f5efe6;background-color:#1f1712;--bg-table: #1f1712;--bg-panel: #2b2019;--bg-surface: #362820;--bg-parchment-card: #fbf6ec;--border-brass: #7a5c3c;--accent-crimson: #c83e31;--accent-gold: #d9a03b;--text-main: #f7f1e6;--text-dark: #281e16;--text-muted: #c2b09b}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background:radial-gradient(circle at 50% 35%,#2b2019,#19120e);color:var(--text-main);-webkit-user-select:none;user-select:none}button{font-family:inherit;cursor:pointer}.game-shell{display:grid;grid-template-rows:56px 1fr 70px;width:100vw;height:100vh;overflow:hidden}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:linear-gradient(180deg,#32251d,#261c16);border-bottom:2px solid var(--border-brass);box-shadow:0 4px 16px #00000059;gap:12px}.brand-group{display:flex;align-items:center;gap:10px}.brand-group h1{font-size:1.2rem;font-weight:800;letter-spacing:-.02em;color:var(--accent-gold)}.subtitle-pill{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:999px;background:#c83e313d;border:1px solid rgba(217,160,59,.45);color:#f7d89c}.turn-banner{display:flex;align-items:center;gap:10px;background:var(--bg-surface);border:1px solid var(--border-brass);padding:5px 14px;border-radius:999px;font-size:.82rem}.turn-player-badge{padding:2px 10px;border-radius:999px;background:var(--accent-crimson);color:#fffdf9;font-weight:700;font-size:.76rem}.turn-status-text{color:var(--text-main);font-weight:500}.top-actions{display:flex;align-items:center;gap:8px}.top-btn{padding:6px 12px;border-radius:8px;border:1px solid var(--border-brass);background:var(--bg-surface);color:var(--text-main);font-size:.8rem;font-weight:600;transition:border-color .15s ease,background-color .15s ease}.top-btn:hover{border-color:var(--accent-gold);background:#433228}.top-btn.primary{background:var(--accent-crimson);border-color:var(--accent-gold);color:#fffdf9}.workspace-grid{display:grid;grid-template-columns:248px 1fr 212px;gap:10px;padding:10px 12px;min-height:0}.left-panel,.right-panel{display:flex;flex-direction:column;gap:10px;min-height:0}.panel-section{background:var(--bg-panel);border:1px solid var(--border-brass);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;box-shadow:inset 0 1px #ffffff0d,0 6px 18px #00000047}.tickets-section{flex:1;min-height:0}.section-header-row{display:flex;justify-content:space-between;align-items:center}.section-heading{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--accent-gold)}.mini-btn{padding:3px 8px;border-radius:6px;border:1px solid var(--border-brass);background:var(--bg-surface);font-size:.72rem;font-weight:700;color:#f7d89c}.mini-btn:hover{border-color:var(--accent-gold)}.player-cards-list{display:flex;flex-direction:column;gap:6px}.player-summary-card{background:var(--bg-surface);border:2px solid rgba(122,92,60,.65);border-radius:10px;padding:7px 9px;display:flex;flex-direction:column;gap:4px}.player-summary-card.active-turn{border-color:var(--accent-gold);background:#402e24;box-shadow:0 3px 12px #d9a03b38}.player-card-header{display:flex;align-items:center;gap:6px;font-size:.82rem}.player-dot{width:10px;height:10px;border-radius:50%;border:1px solid #fffdf9}.player-name{flex:1}.player-role-tag{font-size:.68rem;text-transform:uppercase;color:#f7d89c;background:#00000047;padding:1px 6px;border-radius:999px}.player-card-stats{display:flex;justify-content:space-between;font-size:.78rem;font-weight:700;color:var(--text-muted)}.tickets-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.ticket-card{background:var(--bg-parchment-card);color:var(--text-dark);border:1px solid #c9b598;border-left:5px solid var(--accent-crimson);border-radius:8px;padding:6px 8px;font-size:.76rem;display:flex;flex-direction:column;gap:2px;cursor:pointer;box-shadow:0 2px 6px #0003}.ticket-card.completed{border-left-color:#2f7a3e;background:#e9f5e6}.ticket-route-line{display:flex;justify-content:space-between;font-weight:700}.ticket-corridor{font-size:.68rem;color:#6b5847}.board-stage{background:radial-gradient(circle at 50% 50%,#3d2f24,#251b14);border:2px solid var(--border-brass);border-radius:16px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 36px #0000008c}.map-viewport{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}#nepal-board-svg{width:100%;height:100%;transition:transform .18s ease;transform-origin:center center}.map-zoom-controls{position:absolute;bottom:12px;right:12px;display:flex;gap:4px;background:var(--bg-panel);border:1px solid var(--border-brass);padding:4px;border-radius:10px}.zoom-btn{padding:4px 8px;border-radius:6px;border:1px solid var(--border-brass);background:var(--bg-surface);color:var(--text-main);font-size:.75rem;font-weight:700}.board-tooltip{position:absolute;pointer-events:none;background:#1c140ff5;color:#fbf8f3;border:1px solid var(--accent-gold);padding:7px 10px;border-radius:8px;font-size:.75rem;line-height:1.35;z-index:40;box-shadow:0 6px 18px #00000073;max-width:260px}.route-group{cursor:pointer;transition:opacity .15s ease}@keyframes routeClaimPop{0%{transform:scale(.7);opacity:.4}65%{transform:scale(1.14);opacity:1}to{transform:scale(1);opacity:1}}.route-claimed .route-owner-overlay{animation:routeClaimPop .38s cubic-bezier(.22,1,.36,1)}@keyframes floatScoreUp{0%{opacity:1;transform:translate(-50%) scale(.85)}to{opacity:0;transform:translate(-50%,-32px) scale(1.05)}}.floating-score-popup{position:absolute;pointer-events:none;color:#fffdf9;font-size:.76rem;font-weight:800;padding:3px 9px;border-radius:999px;border:2px solid #fffdf9;box-shadow:0 4px 12px #00000059;z-index:50;animation:floatScoreUp 1.05s ease-out forwards}.route-group:hover .route-bed{stroke:#d9a03bbf;stroke-width:13}.city-node{cursor:pointer}.city-ticket-focus .city-dot,.city-network-connected .city-dot{stroke:#d99b26!important;stroke-width:5px!important;fill:#fff3c4!important}.city-ticket-focus .city-halo,.city-network-connected .city-halo{r:18px;fill:#d99b26!important;opacity:.55!important}.blind-deck-btn{padding:10px;border-radius:10px;border:2px dashed var(--accent-gold);background:var(--bg-surface);color:var(--text-main);display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:700;font-size:.82rem}.blind-deck-btn small{font-size:.7rem;color:var(--text-muted)}.market-slots-stack{display:flex;flex-direction:column;gap:7px}.market-card-slot{height:48px;border-radius:9px;border:2px solid rgba(255,248,235,.35);font-weight:800;font-size:.78rem;letter-spacing:.04em;box-shadow:0 3px 8px #0000004d;transition:transform .12s ease}.market-card-slot:hover{transform:translate(-3px)}.bottom-hand-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 18px;background:linear-gradient(180deg,#2b2019,#211813);border-top:2px solid var(--border-brass)}.hand-bar-label{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-gold)}.hand-chips-row{display:flex;align-items:center;gap:8px}.hand-card-chip{display:flex;align-items:center;background:var(--bg-surface);border:1px solid var(--border-brass);border-radius:8px;overflow:hidden;font-size:.75rem;font-weight:700}.hand-card-chip.empty-card{opacity:.42}.hand-card-swatch{padding:5px 8px;text-transform:capitalize}.hand-card-count{padding:5px 8px;font-family:monospace;font-size:.82rem;color:var(--text-main)}.game-log-ticker{flex:1;text-align:right;font-size:.78rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hidden{display:none!important}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0a07b8;display:flex;align-items:center;justify-content:center;z-index:100}.modal-card{width:min(480px,92vw);background:var(--bg-panel);color:var(--text-main);border:2px solid var(--accent-gold);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 24px 52px #0000008c}.modal-card.modal-wide{width:min(640px,94vw)}.standings-table{width:100%;border-collapse:collapse;font-size:.82rem}.standings-table th,.standings-table td{border:1px solid var(--border-brass);padding:8px 10px;text-align:left}.standings-table th{background:var(--bg-surface);color:var(--accent-gold);font-weight:800}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:.8rem}.rules-box{background:var(--bg-surface);border:1px solid var(--border-brass);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px}.rules-box ul{padding-left:16px;display:flex;flex-direction:column;gap:6px}.setup-form{display:flex;flex-direction:column;gap:10px}.setup-field{display:flex;flex-direction:column;gap:4px;font-size:.8rem;font-weight:700}.setup-field input,.setup-field select{padding:8px 10px;border-radius:8px;border:1px solid var(--border-brass);background:var(--bg-surface);color:var(--text-main);font-size:.84rem}.modal-subtitle{font-size:.82rem;color:var(--text-muted)}.draft-tickets-stack{display:flex;flex-direction:column;gap:8px}.draft-ticket-option{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-surface);border:2px solid var(--border-brass);border-radius:10px;cursor:pointer}.draft-ticket-option.selected{border-color:var(--accent-gold);background:#463327}.draft-ticket-info{display:flex;flex-direction:column;gap:2px;font-size:.84rem}.draft-ticket-info small{color:var(--text-muted);font-size:.74rem}.modal-actions{display:flex;justify-content:flex-end;gap:8px}
