@import"https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:wght@400;500;600;700&display=swap";:root{--color-main: #004643;--color-main-light: #006b65;--color-main-dark: #002e2c;--color-second: #f0ede5;--color-second-dark: #e2ddd3;--color-accent: #d4a853;--color-success: #2d8a4e;--color-success-bg: #e8f5ed;--color-warning: #c97b2f;--color-warning-bg: #fdf3e3;--color-danger: #c0392b;--color-danger-bg: #fdecea;--color-info: #1a6b9a;--color-info-bg: #e3f0fa;--color-white: #fff;--color-gray-50: #f8f7f4;--color-gray-100: #efede7;--color-gray-200: #d8d4ca;--color-gray-400: #8f8a7f;--color-gray-600: #4a4640;--color-gray-900: #1a1917;--shadow-sm: 0 1px 3px #00000014;--shadow-md: 0 4px 12px #0000001a;--radius-md: 8px;--radius-lg: 14px;--font-display: "Bebas Neue", "Arial Narrow", sans-serif;--font-body: "DM Sans", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--color-gray-50);color:var(--color-gray-900);font-family:var(--font-body)}h1,h2,h3{margin-top:0}h1{font-family:var(--font-display);font-size:2.2rem;letter-spacing:.03em;color:var(--color-main)}a{color:inherit}.page{max-width:1440px;margin:auto;padding:24px}.page--map{max-width:none;padding:0;height:100vh;overflow:hidden}.app-header{height:68px;background:var(--color-main);color:var(--color-second);display:flex;align-items:center;justify-content:space-between;padding:0 24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:700}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:2px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-display);font-size:1.4rem}.header-user{display:flex;gap:16px;align-items:center}.app-nav{display:flex;gap:4px;overflow:auto;padding:0 20px;background:#fff;box-shadow:var(--shadow-sm)}.app-nav a{padding:15px 14px;text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap}.app-nav a.router-link-active{color:var(--color-main);border-color:var(--color-accent);font-weight:700}.card{background:#fff;padding:20px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:minmax(300px,1fr) minmax(380px,1.5fr)}.input{width:100%;padding:11px 12px;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background:#fff;font:inherit}.input:focus{outline:2px solid #006b6540;border-color:var(--color-main-light)}.field{display:grid;gap:6px;font-weight:600}.field small{font-weight:400}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.full{grid-column:1/-1}.btn{border:0;border-radius:var(--radius-md);padding:11px 16px;font:600 1rem var(--font-body);cursor:pointer}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-main);color:#fff}.btn-secondary{background:var(--color-second-dark);color:var(--color-main-dark)}.btn-danger{background:var(--color-danger);color:#fff}.link-btn{border:0;background:none;color:inherit;text-decoration:underline;cursor:pointer}.actions,.filters,.toolbar{display:flex;gap:10px;align-items:center}.filters .input{min-width:190px}.badge,.connection{display:inline-block;border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:700;text-transform:capitalize;background:var(--color-info-bg);color:var(--color-info)}.status-calculada,.status-cumplio,.status-activa{background:var(--color-success-bg);color:var(--color-success)}.status-error,.status-no_paso_taller,.status-cancelada{background:var(--color-danger-bg);color:var(--color-danger)}.status-pendiente,.status-calculando{background:var(--color-warning-bg);color:var(--color-warning)}.connection{background:var(--color-success-bg);color:var(--color-success)}.connection.offline{background:var(--color-warning-bg);color:var(--color-warning)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--color-gray-100);vertical-align:top}th{font-size:.78rem;text-transform:uppercase;color:var(--color-gray-600)}.map-canvas{height:460px;background:#dfe8df;border-radius:var(--radius-lg);overflow:hidden}.map-placeholder{height:100%;display:grid;place-items:center;color:var(--color-gray-600)}.empty{padding:32px;text-align:center;color:var(--color-gray-600)}.error{color:var(--color-danger)}.notice{border-left:4px solid var(--color-accent);background:#fff;padding:14px}.splash{height:100vh;display:grid;place-content:center;text-align:center;color:var(--color-main)}.spinner{width:42px;height:42px;border:4px solid var(--color-second-dark);border-top-color:var(--color-main);border-radius:50%;animation:spin .8s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-hero{background:var(--color-main);color:var(--color-second);padding:8vw;display:grid;align-content:center}.login-hero h1{font-size:4.8rem;color:var(--color-accent);line-height:.95}.login-panel{display:grid;place-items:center;padding:30px}.login-form{width:min(420px,100%);display:grid;gap:18px}.dialog-backdrop{position:fixed;inset:0;background:#0008;display:grid;place-items:center;z-index:20}.dialog{background:#fff;border-radius:var(--radius-lg);padding:24px;width:min(420px,90vw)}.toast{position:fixed;right:24px;bottom:24px;background:var(--color-main-dark);color:#fff;padding:16px 22px;border-radius:var(--radius-md);box-shadow:var(--shadow-md)}@media(max-width:800px){.grid-2,.login{grid-template-columns:1fr}.login-hero{display:none}.form-grid{grid-template-columns:1fr}.page{padding:14px}.page--map{padding:0;height:100dvh;min-height:100dvh}.header-user>span:not(.connection){display:none}.app-header{padding:0 14px}}
