*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:#0a0e1a;color:#e2e8f0;overflow:hidden;height:100vh;width:100vw}#root{height:100vh;width:100vw}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#1a2035}::-webkit-scrollbar-thumb{background:#3a4a6b;border-radius:3px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-green{color:#4ade80}.text-red{color:#f87171}.text-yellow{color:#fbbf24}.text-muted{color:#94a3b8}.w-full{width:100%}.rounded{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.p-2{padding:.5rem}.p-4{padding:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.panel{background:#0f172af2;border:1px solid rgba(59,130,246,.2);border-radius:.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.panel-header{padding:.75rem 1rem;border-bottom:1px solid rgba(59,130,246,.15);font-weight:600;font-size:.9rem;display:flex;align-items:center;justify-content:space-between;color:#93c5fd}.panel-body{padding:1rem}.btn{padding:.5rem 1rem;border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .15s ease;display:inline-flex;align-items:center;gap:.4rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-success{background:#22c55e;color:#fff}.btn-success:hover:not(:disabled){background:#16a34a}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-ghost{background:transparent;color:#94a3b8;border:1px solid rgba(148,163,184,.3)}.btn-ghost:hover:not(:disabled){background:#94a3b81a;color:#e2e8f0}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.input{background:#1e293bcc;border:1px solid rgba(71,85,105,.5);border-radius:.375rem;padding:.5rem .75rem;color:#e2e8f0;font-size:.875rem;width:100%;outline:none;transition:border-color .15s}.input:focus{border-color:#3b82f6}.input::placeholder{color:#64748b}select.input{cursor:pointer}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.8rem;color:#94a3b8;margin-bottom:.35rem;font-weight:500}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:2000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:#0f172a;border:1px solid rgba(59,130,246,.3);border-radius:.75rem;width:90vw;max-width:600px;max-height:85vh;overflow-y:auto;box-shadow:0 25px 50px #0009}.modal-large{max-width:900px}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid rgba(59,130,246,.15);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#0f172a;z-index:1}.modal-header h2{font-size:1.1rem;font-weight:600;color:#93c5fd}.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid rgba(59,130,246,.15);display:flex;justify-content:flex-end;gap:.75rem}.badge{padding:.2rem .5rem;border-radius:9999px;font-size:.7rem;font-weight:600;text-transform:uppercase}.badge-road{background:#3b82f633;color:#60a5fa}.badge-rail{background:#f9731633;color:#fb923c}.badge-water{background:#14b8a633;color:#2dd4bf}.badge-air{background:#a855f733;color:#c084fc}.badge-open{background:#22c55e26;color:#4ade80}.badge-bidding{background:#eab30826;color:#fbbf24}.badge-awarded,.badge-active{background:#3b82f626;color:#60a5fa}.badge-completed{background:#22c55e26;color:#4ade80}.badge-failed{background:#ef444426;color:#f87171}.badge-idle{background:#94a3b826;color:#94a3b8}.badge-en_route{background:#3b82f626;color:#60a5fa}.badge-maintenance{background:#ef444426;color:#f87171}.badge-planned{background:#94a3b826;color:#94a3b8}.map-container{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.leaflet-container{height:100%;width:100%;background:#0d1117}.hud{position:absolute;top:0;left:0;right:0;height:52px;z-index:1000;display:flex;align-items:center;padding:0 1rem;gap:1rem;background:linear-gradient(180deg,#0a0e1afa,#0a0e1ab3);border-bottom:1px solid rgba(59,130,246,.2)}.sidebar{position:absolute;top:52px;left:0;bottom:0;width:340px;z-index:900;display:flex;flex-direction:column;background:#0a0e1af2;border-right:1px solid rgba(59,130,246,.15)}.sidebar-tabs{display:flex;border-bottom:1px solid rgba(59,130,246,.15)}.sidebar-tab{flex:1;padding:.7rem .25rem;background:transparent;border:none;color:#64748b;font-size:.72rem;font-weight:500;cursor:pointer;transition:all .15s;border-bottom:2px solid transparent;text-align:center}.sidebar-tab:hover{color:#94a3b8}.sidebar-tab.active{color:#60a5fa;border-bottom-color:#3b82f6}.sidebar-content{flex:1;overflow-y:auto;padding:.75rem}.maintenance-bar{height:4px;border-radius:2px;background:#1e293b;overflow:hidden}.maintenance-fill{height:100%;border-radius:2px;transition:width .3s ease}.notifications{position:absolute;bottom:1rem;right:1rem;z-index:1500;display:flex;flex-direction:column;gap:.5rem;max-width:340px}.notification{padding:.75rem 1rem;border-radius:.5rem;font-size:.8rem;border:1px solid;animation:slideIn .2s ease-out}.notification-success{background:#15803d33;border-color:#16a34a;color:#4ade80}.notification-error{background:#b91c1c33;border-color:#dc2626;color:#f87171}.notification-info{background:#1e40af33;border-color:#2563eb;color:#60a5fa}.notification-warning{background:#a1620733;border-color:#d97706;color:#fbbf24}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.wizard-steps{display:flex;justify-content:center;gap:.5rem;margin-bottom:2rem}.wizard-step{width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;border:2px solid #334155;color:#64748b}.wizard-step.active{border-color:#3b82f6;color:#3b82f6}.wizard-step.done{background:#3b82f6;border-color:#3b82f6;color:#fff}.card{background:#1e293b80;border:1px solid rgba(71,85,105,.4);border-radius:.5rem;padding:.75rem;margin-bottom:.5rem;cursor:pointer;transition:all .15s}.card:hover{border-color:#3b82f666;background:#1e293bcc}.card.selected{border-color:#3b82f6;background:#3b82f61a}.job-card{background:#0f172a99;border:1px solid rgba(71,85,105,.3);border-radius:.5rem;padding:.75rem;margin-bottom:.5rem}.job-card:hover{border-color:#3b82f64d}.vehicle-card{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:#1e293b80;border:1px solid rgba(71,85,105,.3);border-radius:.5rem;margin-bottom:.5rem;cursor:pointer;transition:all .15s}.vehicle-card:hover{border-color:#3b82f666}.vehicle-card.selected{border-color:#3b82f6}.vehicle-icon{font-size:1.5rem;width:2.5rem;text-align:center}.leg-row{background:#0f172a99;border:1px solid rgba(71,85,105,.3);border-radius:.5rem;padding:.75rem;margin-bottom:.5rem;position:relative}.leg-connector{width:2px;height:1rem;background:#47556980;margin:0 auto}.loading{display:flex;align-items:center;justify-content:center;height:100%;flex-direction:column;gap:1rem;color:#64748b}.spinner{width:2rem;height:2rem;border:3px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#0f1a2e,#0a0e1a 70%);padding:2rem}.auth-box{width:100%;max-width:420px;background:#0f172af2;border:1px solid rgba(59,130,246,.25);border-radius:1rem;overflow:hidden;box-shadow:0 30px 60px #00000080}.auth-header{padding:2rem;text-align:center;background:linear-gradient(135deg,rgba(59,130,246,.1) 0%,transparent 100%);border-bottom:1px solid rgba(59,130,246,.15)}.auth-header h1{font-size:1.75rem;font-weight:700;color:#60a5fa;letter-spacing:-.5px}.auth-header p{color:#64748b;margin-top:.25rem}.auth-body{padding:2rem}.auth-footer{padding:1rem 2rem;text-align:center;font-size:.8rem;color:#64748b;border-top:1px solid rgba(59,130,246,.1)}.auth-footer a{color:#60a5fa;text-decoration:none}.auth-footer a:hover{text-decoration:underline}
