*,:before,:after{box-sizing:border-box}:root{--bg:#0f1117;--bg-card:#181b24;--bg-elevated:#1e2130;--border:#2a2d3a;--text:#e2e4ed;--text-secondary:#8b8fa8;--text-hint:#555870;--green:#4caf50;--green-bright:#69f07a;--red:#ef5350;--yellow:#ffd54f;--accent:#4caf50;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,sans-serif;font-size:14px}body{min-height:100vh;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3{color:var(--text);margin:0;font-weight:600}p{margin:0}input,select,textarea,button{font:inherit}button{cursor:pointer;background:var(--bg-elevated);color:var(--text);border:none;border-radius:8px;padding:8px 16px;transition:background .15s}button:hover{background:#252840}button.primary{background:var(--green);color:#000;font-weight:600}button.primary:hover{background:var(--green-bright)}button.ghost{border:1px solid var(--border);color:var(--text-secondary);background:0 0}button.ghost:hover{border-color:var(--green);color:var(--green)}input[type=text],input[type=number],input[type=time],select{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:6px;outline:none;padding:6px 10px}input:focus,select:focus{border-color:var(--green)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px}label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);font-size:11px}.leaflet-container{background:#1a1d2a}@media print{body{color:#000;background:#fff;font-size:9pt}.no-print{display:none!important}.print-only{display:block!important}#root{min-height:auto}}.print-only{display:none}
