:root{
  --azul:#123fa3;
  --azul2:#071a44;
  --amarillo:#f2cc00;
  --bg:#eef3f8;
  --text:#1e293b;
  --muted:#64748b;
  --border:#e2e8f0;
  --green:#16a34a;
  --red:#dc2626;
}
*{box-sizing:border-box}
body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--azul2),var(--azul));padding:20px}
.login-card{background:#fff;border-radius:28px;width:100%;max-width:440px;padding:36px;text-align:center;box-shadow:0 35px 90px rgba(0,0,0,.35)}
.logo{width:270px;max-width:100%;background:#fff;border-radius:18px;margin-bottom:10px}
.login-card h1{color:var(--azul);font-size:38px;margin:8px 0}
.login-card p{color:var(--muted);margin-bottom:24px}
input,select,textarea{width:100%;padding:13px;border:1px solid var(--border);border-radius:12px;margin-bottom:12px;font-size:15px;background:white}
button,.btn{border:0;border-radius:12px;background:var(--azul);color:white;font-weight:800;padding:13px 18px;cursor:pointer;text-decoration:none;display:inline-block}
.btn.secondary{background:white;color:var(--azul);border:1px solid var(--border)}
.alert{background:#fee2e2;color:#991b1b;padding:12px;border-radius:12px;margin-bottom:14px}
.app{min-height:100vh;display:flex}
.sidebar{width:292px;position:fixed;inset:0 auto 0 0;background:linear-gradient(180deg,var(--azul2),#0f172a);color:white;padding:22px}
.brand img{width:220px;background:#fff;border-radius:18px;padding:10px}
.brand h2{margin:17px 0 2px;font-size:24px}
.brand small{color:#cbd5e1}
.menu{display:grid;gap:8px;margin-top:26px}
.menu a{color:#cbd5e1;text-decoration:none;padding:13px 14px;border-radius:13px}
.menu a:hover,.menu a.active{background:rgba(255,255,255,.11);color:white}
.dev{position:absolute;left:22px;right:22px;bottom:22px;color:#cbd5e1;background:rgba(255,255,255,.08);border-radius:14px;padding:13px;font-size:13px}
.content{margin-left:292px;width:calc(100% - 292px);padding:28px}
.top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}
.top h1{margin:0;font-size:31px}
.top p{margin:6px 0;color:var(--muted)}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}
.card,.panel{background:white;border:1px solid var(--border);border-radius:23px;box-shadow:0 14px 35px rgba(15,23,42,.08)}
.card{padding:22px}
.card p{margin:0;color:var(--muted)}
.card h3{font-size:34px;margin:8px 0;color:var(--azul)}
.grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.panel{padding:22px;margin-bottom:18px}
table{width:100%;border-collapse:collapse}
th,td{padding:13px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
th{font-size:13px;color:var(--muted)}
.badge{display:inline-block;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}
.pendiente{background:#fef3c7;color:#92400e}
.asignada,.en-ruta,.en-terreno{background:#dbeafe;color:#1d4ed8}
.finalizada,.aprobada{background:#dcfce7;color:#166534}
.cancelada{background:#fee2e2;color:#991b1b}
.facturada{background:#ede9fe;color:#5b21b6}
.note{background:#f8fafc;border:1px solid var(--border);border-radius:14px;padding:14px;color:var(--muted)}
.footer{margin-top:22px;color:var(--muted);font-size:13px}
@media(max-width:900px){
  .app{display:block}.sidebar{position:static;width:100%}.content{margin-left:0;width:100%;padding:16px}
  .cards,.grid,.grid-2{grid-template-columns:1fr}.top{display:block}.actions{margin-top:12px}
  .dev{position:static;margin-top:22px}
}
