:root{color-scheme:dark;--bg: #0f1720;--panel: #182430;--border: #2a3a4a;--text: #e6edf3;--muted: #8ea0b0;--accent: #3fa9f5;--positive: #2ecc71;--negative: #e74c3c}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.app-shell{display:flex;flex-direction:column;height:100vh}.nav{display:flex;align-items:center;gap:1.25rem;padding:.75rem 1.5rem;background:var(--panel);border-bottom:1px solid var(--border)}.nav a{color:var(--muted);text-decoration:none;font-size:.95rem}.nav a.active{color:var(--text);font-weight:600}.nav .brand{font-weight:700;color:var(--accent);margin-right:.5rem}.nav .spacer{flex:1}.nav .cash{font-weight:600}.game-clock{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--muted)}.speed-tag{background:#3fa9f526;color:var(--accent);border-radius:999px;padding:.1rem .5rem;font-size:.75rem;font-weight:600}.nav button{background:transparent;border:1px solid var(--border);color:var(--text);padding:.35rem .75rem;border-radius:6px;cursor:pointer}.main{flex:1;overflow:auto;min-height:0}.page{padding:1.5rem;max-width:1100px;margin:0 auto}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.25rem}.panel.placeholder{color:var(--muted)}.stat-row{display:flex;gap:1rem;margin-bottom:1.25rem}.stat{flex:1;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1rem;display:flex;flex-direction:column;gap:.35rem}.stat-label{color:var(--muted);font-size:.85rem}.stat-value{font-size:1.5rem;font-weight:700}.columns{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.ledger-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;max-height:320px;overflow-y:auto}.ledger-list li{display:flex;justify-content:space-between;gap:.75rem;font-size:.9rem;border-bottom:1px solid var(--border);padding-bottom:.35rem}.ledger-list li.positive span:last-child{color:var(--positive)}.ledger-list li.negative span:last-child{color:var(--negative)}.muted{color:var(--muted)}.error{color:var(--negative)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border);font-size:.9rem}.form-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem;flex-wrap:wrap}input,select,button{background:#0f1720;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.45rem .6rem;font-size:.9rem}button{cursor:pointer;background:var(--accent);color:#051018;font-weight:600;border:none}button:disabled{opacity:.5;cursor:not-allowed}.stop-list{padding-left:1.2rem}.stop-list li{margin-bottom:.3rem}.stop-list button{margin-left:.5rem;padding:.1rem .5rem;font-size:.75rem}.auth-page{height:100vh;display:flex;align-items:center;justify-content:center}.auth-form{width:340px;display:flex;flex-direction:column;gap:.6rem}.center-message{padding:3rem;text-align:center;color:var(--muted)}.map-page{display:grid;grid-template-columns:1fr 320px;height:100%}.map-container{height:100%}.side-panel{padding:1rem;overflow-y:auto;border-left:1px solid var(--border)}.legend-row{display:flex;align-items:center;gap:.5rem;font-size:.85rem;margin-bottom:.4rem}.dot{width:12px;height:12px;border-radius:50%;border:2px solid #ffffff;display:inline-block;background:#7f8c8d;flex-shrink:0}.legend .dot.mine{border-color:var(--accent);background:#27ae60}.legend .dot.theirs{border-color:#fff;background:#27ae60}.train-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.train-list-item{width:100%;display:flex;align-items:center;gap:.5rem;background:transparent;border:1px solid transparent;color:var(--text);font-weight:400;padding:.4rem .5rem;border-radius:6px;text-align:left}.train-list li.active .train-list-item{border-color:var(--accent);background:#3fa9f51a}.train-list-name{flex:1}.button-row{display:flex;gap:.5rem}.panel-header{display:flex;align-items:center;justify-content:space-between}.panel-header h3{margin:0}.link-button{background:transparent;border:none;color:var(--muted);font-size:1rem;padding:.1rem .4rem}.detail-table{margin:.5rem 0}.detail-table td{padding:.25rem .5rem .25rem 0;border-bottom:none;vertical-align:top}.table-scroll{overflow-x:auto;margin-bottom:.75rem}
