:root{--bg:#d4d0c8;--panel:#ececec;--panel-border:#9a9a9a;--header-bg:#1d4e89;--header-text:#fff;--header-active:#ffffff40;--text:#1a1a1a;--text-muted:#555;--accent:#1d4e89;--ok:#2e7d32;--warn:#b37400;--error:#c62828;--night-note:#ffe08a;--input-bg:#fff;--input-disabled-bg:#dcdcdc;--row-alt:#f6f6f6;--night-bg:#2b2b55;--font-ui:Tahoma, "Segoe UI", Arial, sans-serif;--font-num:Consolas, "Courier New", monospace;--gap:8px;--radius:2px;--min-width:1280px;--cell:18px;--cell-empty:#f4f4f4;--cell-line:#d6d6d6;--cell-own:#2e7d32;--cell-player:#1d4e89;--cell-orphan:#8a8a8a;--cell-reserved:#e0b34a;--quadrant-line:#b04a4a;--own-row:#cfe3f7}*{box-sizing:border-box}body{min-width:var(--min-width);background:var(--bg);color:var(--text);font:13px/1.4 var(--font-ui);margin:0}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.muted{color:var(--text-muted)}.panel{background:var(--panel);border:1px solid var(--panel-border);padding:var(--gap);margin:var(--gap)}.panel h2{margin:0 0 var(--gap);font-size:14px}button{font:inherit;border:1px solid var(--panel-border);background:var(--panel);border-radius:var(--radius);cursor:pointer;padding:3px 10px}button:disabled{cursor:default;color:var(--text-muted);background:var(--input-disabled-bg)}input{font:inherit;border:1px solid var(--panel-border);background:var(--input-bg);border-radius:var(--radius);padding:3px 6px}input:disabled{background:var(--input-disabled-bg)}.error{color:var(--error);margin:0 0 var(--gap)}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--panel-border);padding:4px 8px}tbody tr:nth-child(2n){background:var(--row-alt)}.header{background:var(--header-bg);color:var(--header-text);align-items:center;gap:16px;padding:6px 12px;display:flex}.header.night{background:var(--night-bg)}.header .title{font-size:16px;font-weight:700}.header nav{gap:12px;display:flex}.header nav a{color:var(--header-text);padding:2px 6px;text-decoration:none}.header nav a.active{background:var(--header-active)}.header .spacer{flex:1}.header .night-note{color:var(--night-note)}.login{gap:var(--gap);flex-direction:column;width:320px;margin:80px auto;display:flex}.login label{flex-direction:column;gap:2px;display:flex}.resources{flex-wrap:wrap;align-items:baseline;gap:24px;display:flex}.resource{flex-direction:column;min-width:190px;display:flex}.resource .value{font-size:20px}.resource.full .value{color:var(--warn)}.badge-full{color:var(--warn);font-weight:700}.dot{background:var(--ok);border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.dot.blocked{background:var(--error)}.name-edit{cursor:pointer;border-bottom:1px dashed var(--text-muted)}.queue-empty{color:var(--text-muted)}.own-row{font-weight:700;background:var(--own-row)!important}.train-block{margin-bottom:var(--gap)}.train-block h3{margin:var(--gap) 0 4px;font-size:13px}.train-count{width:64px}.map-layout{align-items:flex-start;gap:16px;display:flex}.map-wrap{padding:18px 40px;position:relative}.map-grid{border:1px solid var(--panel-border);gap:0;width:max-content;display:grid}.cell{width:var(--cell);height:var(--cell);background:var(--cell-empty);border:1px solid var(--cell-line)}.cell-own{background:var(--cell-own)}.cell-player{background:var(--cell-player)}.cell-orphan{background:var(--cell-orphan)}.cell-reserved{background:var(--cell-reserved)}.map-lines{width:calc(var(--cell) * 40);height:calc(var(--cell) * 40);pointer-events:none;stroke:var(--quadrant-line);stroke-width:.08px;fill:none;position:absolute;top:19px;left:41px}.rz{color:var(--text-muted);font-size:11px;position:absolute}.rz-n{top:2px;left:50%;transform:translate(-50%)}.rz-s{bottom:2px;left:50%;transform:translate(-50%)}.rz-o{top:50%;right:0}.rz-w{top:50%;left:0}.map-side{gap:var(--gap);flex-direction:column;min-width:220px;display:flex}.hover-card{min-height:110px;padding:var(--gap);background:var(--input-bg);border:1px solid var(--panel-border)}.legend{margin:0;padding:0;list-style:none}.legend li{align-items:center;gap:6px;padding:2px 0;display:flex}.swatch{border:1px solid var(--cell-line);width:14px;height:14px;display:inline-block}
