@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Inter:wght@400;500;600&display=swap";:root{--bg-app:linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%);--glass-bg:#ffffff0d;--glass-border:#ffffff1a;--glass-shadow:0 8px 32px 0 #0000004d;--text-main:#f8fafc;--text-muted:#94a3b8;--primary:#6366f1;--primary-hover:#4f46e5;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;font-family:Outfit,Inter,system-ui,sans-serif}body{background:var(--bg-app);min-height:100vh;color:var(--text-main);background-attachment:fixed;margin:0;padding-bottom:34px}body:after{content:"DerivativeCalculus copyright";letter-spacing:.08em;color:#f8fafc9e;pointer-events:none;z-index:9999;font-size:12px;position:fixed;bottom:10px;left:50%;transform:translate(-50%)}*{box-sizing:border-box}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#6366f126,#0000 60%);width:200%;height:200%;position:fixed;top:-50%;left:-50%}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px}.topbar{border-radius:20px;justify-content:space-between;align-items:center;margin:20px;padding:16px 32px;display:flex}.topbar-brand{align-items:center;gap:16px;display:flex}.topbar-brand h1{background:linear-gradient(90deg,#a5b4fc,#c4b5fd);color:#0000;-webkit-background-clip:text;margin:0;font-size:1.5rem}.page-container{padding:0 20px 40px}.dashboard-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.dashboard-filters{grid-template-columns:minmax(260px,2fr) repeat(3,minmax(180px,1fr));gap:12px;margin-bottom:24px;padding:16px;display:grid}.kanban-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;display:grid}.vehicle-card{cursor:pointer;color:inherit;flex-direction:column;gap:12px;padding:24px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex}.vehicle-card:hover{border-color:#6366f166;transform:translateY(-4px);box-shadow:0 12px 40px #0006}.vehicle-card h3{letter-spacing:2px;color:#fff;margin:0;font-size:1.8rem}.vehicle-card.richer{gap:16px}.vehicle-card p{color:var(--text-muted);margin:0}.vehicle-card-meta{flex-direction:column;gap:8px;display:flex}.vehicle-card-donuts{grid-template-columns:repeat(2,minmax(110px,1fr));gap:12px;display:grid}.mini-donut-card{background:#ffffff0d;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:10px;display:flex}.mini-donut-card span{color:var(--text-muted);font-size:.82rem}.mini-donut{--ring-color:#14b8a6;background:conic-gradient(var(--ring-color) 0 var(--donut-fill), #ffffff24 var(--donut-fill) 100%);border-radius:50%;place-items:center;width:72px;height:72px;display:grid}.mini-donut.red{--ring-color:#ef4444}.mini-donut.teal{--ring-color:#14b8a6}.mini-donut-inner{color:#fff;background:#0f172af5;border-radius:50%;place-items:center;width:52px;height:52px;font-size:.88rem;font-weight:700;display:grid}.vehicle-card-kpis{flex-wrap:wrap;gap:8px;display:flex}.metric-chip{border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.metric-chip.ok{color:#9ef7d0;background:#10b98129}.metric-chip.danger{color:#ffb4b4;background:#ef444429}.metric-chip.neutral{color:#d9deff;background:#ffffff17}.status-pill{color:var(--warning);background:#f59e0b1a;border-radius:99px;align-items:center;gap:6px;margin-top:auto;padding:6px 12px;font-size:.85rem;display:inline-flex}.empty-state{align-items:flex-start;gap:12px;margin-bottom:24px;padding:18px 20px;display:flex}.empty-state p{margin-top:4px}.data-grid-container{border-radius:12px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1860px}th,td{text-align:left;border-bottom:1px solid var(--glass-border);padding:12px 16px}th{color:#cbd5e1;background:#0003;font-weight:600}tr:hover td{background:#ffffff05}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--glass-border);color:#fff;background:#0003;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-family:inherit}input[type=checkbox],input[type=radio]{flex-shrink:0;width:auto}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--primary)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.modal-content{width:90%;max-width:500px;padding:24px}.btn{background:var(--glass-bg);border:1px solid var(--glass-border);color:#fff;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-weight:600;transition:all .2s;display:inline-flex}.btn:hover{background:#ffffff1a}.btn.primary{background:var(--primary);border-color:var(--primary)}.btn.primary:hover{background:var(--primary-hover)}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn.success{background:var(--success);border-color:var(--success)}.detail-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.detail-shell{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:24px;display:flex}.detail-actions{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.detail-sections-grid{grid-template-columns:repeat(2,minmax(280px,1fr));gap:20px;margin-top:20px;margin-bottom:20px;display:grid}.detail-block{padding:18px}.detail-block-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.detail-block-header h3{margin:0}.detail-block-header span{color:var(--text-muted);font-size:.84rem}.detail-list{gap:12px;display:grid}.detail-list-card{border:1px solid var(--glass-border);background:#ffffff0d;border-radius:12px;gap:6px;padding:14px;display:grid}.detail-list-card span,.detail-list-card small{color:var(--text-muted)}.detail-empty{color:var(--text-muted);background:#ffffff0a;border-radius:12px;padding:18px}.incident-chip-row{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.incident-chip{max-width:100%}.section-add-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;display:flex}.section-title-wrap{gap:4px;display:grid}.section-title-wrap h3{margin:0}.section-title-wrap span{color:var(--text-muted);font-size:.84rem}.inline-add-part{flex-direction:column;gap:4px;display:flex}.bulk-actions-bar{background:#63b3ed14;border:1px solid #63b3ed33;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0;padding:8px 14px;display:flex}.bulk-actions-count{color:var(--text-muted);margin-right:4px;font-size:.82rem}.vehicle-summary{flex-direction:column;gap:10px;display:flex}.vehicle-meta-chips{flex-wrap:wrap;gap:10px;display:flex}.meta-chip{color:var(--text-main);background:#ffffff14;border-radius:999px;gap:6px;padding:8px 12px;font-size:.9rem;display:inline-flex}.parts-kpis{flex-wrap:wrap;gap:12px;display:flex}.parts-kpi{background:#10b98124;border:1px solid #10b98147;border-radius:14px;align-items:center;gap:10px;min-width:150px;padding:12px 14px;display:flex}.parts-kpi.warning{background:#f59e0b24;border-color:#f59e0b47}.parts-kpi.returned{background:#ef444424;border-color:#ef444447}.parts-kpi.neutralized{background:#6366f124;border-color:#6366f147}.parts-kpi strong,.parts-kpi span{display:block}.parts-kpi span{color:var(--text-muted);font-size:.85rem}.parts-table th{white-space:nowrap}.parts-table td{vertical-align:middle}.parts-table-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.parts-bulk-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.select-all-toggle{color:var(--text-muted);align-items:center;gap:8px;display:inline-flex}.select-all-toggle input,.grid-checkbox{width:auto}.qty-input{text-align:center;min-width:54px}.date-cell{align-items:center;gap:8px;display:flex}.parts-row.row-on-time td{background:#10b9811a;border-bottom-color:#10b98138}.parts-row.row-late td,.parts-row.row-returned td{background:#ef44441a;border-bottom-color:#ef444438}.row-action-stack{flex-direction:column;align-items:stretch;gap:8px;min-width:150px;display:flex}.btn.subtle{padding:6px 10px;font-size:.82rem}.table-pill,.table-status{border-radius:999px;justify-content:center;align-items:center;min-width:92px;padding:6px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.table-pill.ok,.table-status.ok{color:#9ef7d0;background:#10b9812e}.table-pill.danger,.table-status.danger{color:#ffb4b4;background:#ef44442e}.table-pill.neutral{color:#d9deff;background:#ffffff17}.notes-btn{white-space:nowrap;padding:8px 10px;font-size:.82rem}.quality-modal-box{width:min(760px,100vw - 32px);padding:24px}.notes-modal-box{width:min(920px,100vw - 32px);padding:24px}.notes-modal-layout{grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);gap:18px;display:grid}.notes-history,.notes-editor{gap:12px;display:grid}.notes-history-scroll{gap:10px;max-height:360px;padding-right:4px;display:grid;overflow:auto}.quality-modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.quality-modal-body{gap:18px;display:grid}.quality-check-table{gap:10px;display:grid}.quality-check-row{grid-template-columns:minmax(280px,1fr) 110px 110px;align-items:center;gap:10px;display:grid}.quality-check-head{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.84rem}.quality-choice{border:1px solid var(--glass-border);cursor:pointer;background:#ffffff0a;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:44px;display:inline-flex}.quality-choice input{width:auto}.quality-modal-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.quality-warning{color:var(--warning);align-items:center;gap:4px;margin-top:12px;font-size:.85rem;display:flex}.autosave-pill{border-radius:999px;justify-content:center;align-items:center;min-width:128px;padding:8px 12px;font-size:.84rem;font-weight:600;display:inline-flex}.autosave-pill.guardado{color:#9ef7d0;background:#10b98129}.autosave-pill.pendiente,.autosave-pill.guardando{color:#ffd48b;background:#f59e0b29}.autosave-pill.error{color:#ffb4b4;background:#ef444429}.save-inline-message{color:var(--text-muted);font-size:.85rem}.save-inline-message.error{color:#ffb4b4}.save-inline-message.guardado{color:#9ef7d0}@media (width<=900px){.dashboard-filters{grid-template-columns:1fr 1fr}}@media (width<=640px){.topbar{padding:16px 20px}.dashboard-filters{grid-template-columns:1fr}.vehicle-card-donuts{grid-template-columns:1fr 1fr}.detail-sections-grid,.notes-modal-layout{grid-template-columns:1fr}}.topbar-nav{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.topbar-link{color:var(--text-muted);border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:10px 14px;text-decoration:none;display:inline-flex}.topbar-link.active,.topbar-link:hover{color:#fff;background:#ffffff14;border-color:#ffffff24}.topbar-user{text-align:right;align-items:center;gap:14px;display:flex}.topbar-user span{color:var(--text-muted);font-size:.82rem;display:block}.auth-shell{place-items:center;min-height:100vh;padding:32px 20px;display:grid}.auth-card{grid-template-columns:minmax(300px,1fr) minmax(320px,440px);width:min(1080px,100%);display:grid;overflow:hidden}.auth-side,.auth-form{padding:36px}.auth-side{background:radial-gradient(circle at 0 0,#22c55e38,#0000 42%),linear-gradient(145deg,#0f172adb,#0f172a73);gap:18px;display:grid}.auth-side h1,.auth-form h2{margin:0}.auth-side p,.auth-form p,.admin-helper{color:var(--text-muted)}.auth-badge,.hero-chip{background:#ffffff14;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:10px;width:fit-content;padding:10px 14px;display:inline-flex}.auth-feature-list{gap:12px;margin:0;padding-left:18px;display:grid}.auth-feature-list li{color:#dbeafe}.auth-form{background:#0f172ae0;gap:18px;display:grid}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:#86efac;margin-bottom:8px;font-size:.75rem;display:inline-block}.input-group{gap:8px;display:grid}.input-group span{color:#cbd5e1;font-size:.9rem}.input-shell{border:1px solid var(--glass-border);background:#ffffff0d;border-radius:10px;align-items:center;gap:10px;padding:0 12px;display:flex}.input-shell input{background:0 0;border:0;padding-left:0}.auth-error{color:#fecaca;background:#ef444424;border-radius:12px;padding:12px 14px}.auth-submit{justify-content:center;min-height:48px}.access-card,.admin-message{padding:20px 24px}.admin-inline-msg{background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--primary);border:1px solid color-mix(in srgb, var(--primary) 25%, transparent);border-radius:8px;margin:8px 0 12px;padding:8px 12px;font-size:.85rem}.access-card h2{margin-top:0}.admin-hero{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding:24px;display:flex}.admin-hero h2{margin:0 0 8px}.admin-hero-icons{flex-wrap:wrap;gap:10px;display:flex}.admin-grid{grid-template-columns:repeat(2,minmax(280px,1fr));gap:20px;margin-bottom:20px;display:grid}.admin-card{flex-direction:column;gap:16px;padding:20px;display:flex}.admin-form{gap:12px;display:grid}.role-tabs,.permission-pills,.button-row,.user-actions{flex-wrap:wrap;gap:10px;display:flex}.role-tab,.permission-pill{color:#e2e8f0;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:999px;padding:10px 14px}.role-tab.active,.permission-pill.active{color:#dcfce7;background:#22c55e29;border-color:#22c55e47}.users-list{gap:12px;display:grid}.user-row{background:#ffffff0a;border:1px solid #ffffff14;border-radius:16px;grid-template-columns:minmax(200px,1.4fr) minmax(160px,1fr) auto;align-items:center;gap:16px;padding:14px 16px;display:grid}.user-row p{color:var(--text-muted);margin:4px 0}.status-badge{border-radius:999px;width:fit-content;margin-top:6px;padding:6px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.status-badge.ok{color:#bbf7d0;background:#10b9812e}.status-badge.danger{color:#fecaca;background:#ef44442e}@media (width<=960px){.auth-card,.admin-grid{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:stretch;gap:16px}.topbar-nav,.topbar-user{justify-content:space-between}}@media (width<=720px){.user-row{grid-template-columns:1fr}.topbar-user{text-align:left;flex-direction:column;align-items:flex-start}}.pnl-root{flex-direction:column;gap:24px;display:flex}.pnl-loading{min-height:320px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:1rem;display:flex}.pnl-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.pnl-title{color:var(--text-main);margin:0 0 4px;font-size:1.8rem;font-weight:800}.pnl-subtitle{color:var(--text-muted);text-transform:capitalize;margin:0;font-size:.88rem}.pnl-kpi-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;display:grid}.pnl-kpi{background:#ffffff0a;border:1px solid #ffffff14;border-radius:18px;flex-direction:column;gap:4px;padding:18px 16px 14px;display:flex;position:relative;overflow:hidden}.pnl-kpi-accent{background:var(--acc,var(--primary));border-radius:3px 3px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.pnl-kpi-value{color:var(--text-main);font-size:2rem;font-weight:800;line-height:1}.pnl-kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:600}.pnl-kpi-sub{color:var(--text-muted);margin-top:2px;font-size:.75rem}@keyframes pnl-pulse-anim{0%,to{opacity:1}50%{opacity:.55}}.pnl-pulse{animation:2s ease-in-out infinite pnl-pulse-anim}.pnl-analytics{grid-template-columns:repeat(3,1fr);align-items:start;gap:16px;display:grid}.pnl-panel{flex-direction:column;gap:10px;padding:18px 16px;display:flex}.pnl-panel-title{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);align-items:center;gap:5px;margin:0;font-size:.82rem;font-weight:700;display:flex}.pnl-panel-center{align-items:center}.pnl-divider{background:#ffffff12;height:1px;margin:4px 0}.pnl-hbars{flex-direction:column;gap:8px;width:100%;display:flex}.pnl-hbar{flex-direction:column;gap:3px;display:flex}.pnl-hbar-meta{color:var(--text-muted);justify-content:space-between;font-size:.78rem;display:flex}.pnl-hbar-track{background:#ffffff12;border-radius:99px;height:7px;overflow:hidden}.pnl-hbar-fill{border-radius:99px;height:100%;transition:width .4s}.pnl-donut-wrap{flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;display:flex}.pnl-legend{flex-direction:column;gap:8px;display:flex}.pnl-legend-row{color:var(--text-muted);align-items:center;gap:8px;font-size:.82rem;display:flex}.pnl-legend-row strong{color:var(--text-main);margin-left:auto}.pnl-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.pnl-casi{flex-direction:column;gap:6px;width:100%;margin-top:4px;display:flex}.pnl-casi-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:5px;font-size:.75rem;font-weight:700;display:flex}.pnl-casi-row{color:var(--text-main);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:4px 0;font-size:.8rem;text-decoration:none;display:grid}.pnl-casi-row:hover{opacity:.8}.pnl-casi-pct{color:#10b981;font-size:.78rem;font-weight:700}.pnl-mini-track{background:#ffffff12;border-radius:99px;width:70px;height:5px;overflow:hidden}.pnl-mini-fill{background:#10b981;border-radius:99px;height:100%}.pnl-overdue-list{flex-direction:column;gap:6px;width:100%;display:flex}.pnl-overdue-row{background:#ef44440f;border:1px solid #ef44441a;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;transition:background .15s;display:flex}.pnl-overdue-row:hover{background:#ef44441f}.pnl-overdue-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.pnl-overdue-name{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:.83rem;font-weight:600;overflow:hidden}.pnl-overdue-plate{color:var(--text-muted);font-size:.73rem}.pnl-overdue-badge{color:#fca5a5;white-space:nowrap;background:#ef44442e;border-radius:99px;flex-shrink:0;padding:3px 8px;font-size:.75rem;font-weight:700}.pnl-completos-mini{border-top:1px solid #ffffff12;width:100%;margin-top:8px;padding-top:12px}.pnl-completo-row{color:var(--text-main);align-items:center;gap:8px;padding:5px 0;font-size:.82rem;text-decoration:none;display:flex}.pnl-completo-row:hover{opacity:.8}.pnl-completo-plate{min-width:70px;font-weight:700}.pnl-completo-client{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pnl-completos-more{color:var(--text-muted);margin-top:4px;font-size:.75rem;display:block}.pnl-sev-section{flex-direction:column;gap:14px;display:flex}.pnl-sev-header{cursor:pointer;color:var(--text-main);text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:0;display:flex}.pnl-sev-badge{border-radius:999px;align-items:center;gap:5px;padding:5px 12px;font-size:.82rem;font-weight:700;display:inline-flex}.pnl-sev-count{color:var(--text-muted);font-size:.82rem}.pnl-sev-chevron{color:var(--text-muted);align-items:center;margin-left:auto;display:flex}.pnl-cards-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.pnl-vcard{background:#ffffff0a;border:1px solid #ffffff14;border-left:3px solid #0000;border-radius:16px;flex-direction:column;gap:7px;padding:14px;text-decoration:none;transition:background .15s,transform .15s;display:flex}.pnl-vcard:hover{background:#ffffff12;transform:translateY(-2px)}.pnl-vcard-top{justify-content:space-between;align-items:center;gap:6px;display:flex}.pnl-vcard-plate{color:var(--text-main);letter-spacing:.04em;font-size:.9rem;font-weight:800}.pnl-vcard-insurer{color:var(--text-muted);font-size:.72rem}.pnl-vcard-client{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.pnl-vbar-track{background:#ffffff12;border-radius:99px;height:5px;overflow:hidden}.pnl-vbar-fill{border-radius:99px;height:100%;transition:width .4s}.pnl-vcard-pct{color:var(--text-muted);justify-content:space-between;font-size:.73rem;display:flex}.pnl-vcard-chips{flex-wrap:wrap;gap:4px;display:flex}.pnl-chip{border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700}.pnl-vcard-status{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.73rem;overflow:hidden}.pnl-error{color:#fca5a5;align-items:center;gap:10px;padding:16px 20px;display:flex}.pnl-empty-mini{color:var(--text-muted);flex-direction:column;align-items:center;gap:10px;padding:24px 0;font-size:.85rem;display:flex}@media (width<=1100px){.pnl-analytics{grid-template-columns:1fr 1fr}.pnl-analytics>:last-child{grid-column:1/-1}}@media (width<=700px){.pnl-analytics{grid-template-columns:1fr}.pnl-kpi-grid{grid-template-columns:repeat(2,1fr)}.pnl-cards-grid{grid-template-columns:1fr}}
