:root{font-family:Inter,system-ui,sans-serif;color:#0f172a;background:#f1f5f9}*{box-sizing:border-box}body{margin:0}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:#0f172a;color:#e2e8f0;padding:1rem}.sidebar a{display:block;color:inherit;text-decoration:none;padding:.5rem .75rem;border-radius:8px;margin-bottom:.25rem}.sidebar a.active,.sidebar a:hover{background:#1e293b}.content{padding:1.25rem}.card{background:#fff;border-radius:12px;padding:1rem 1.25rem;box-shadow:0 1px 3px #0f172a14;margin-bottom:1rem}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}label{display:block;font-size:.85rem;margin-bottom:.25rem}input,select,button{font:inherit}input,select{width:100%;padding:.45rem .6rem;border:1px solid #cbd5e1;border-radius:8px}button{background:#2563eb;color:#fff;border:none;border-radius:8px;padding:.5rem .9rem;cursor:pointer}button.secondary{background:#475569}.map-wrap{height:520px;border-radius:12px;overflow:hidden}.login-page{min-height:100vh;display:grid;place-items:center}.login-box{width:min(420px,92vw)}.error{color:#b91c1c;font-size:.9rem}.hint{color:#64748b;font-size:.85rem}
