:root{--navy:#102839;--navy2:#193b50;--mint:#5ad8be;--mint2:#25b89d;--ink:#183041;--muted:#697d8c;--bg:#f4f7f8;--line:#dfe7ea;--white:#fff;--red:#c44046;--amber:#d58d20;--shadow:0 13px 42px rgba(16,40,57,.075);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-size:15px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}a{color:inherit;text-decoration:none}label{font-size:.84rem;font-weight:700;display:block;margin-bottom:7px;color:#3e5362}input,select,textarea{width:100%;border:1px solid #d7e1e6;background:#fff;border-radius:10px;padding:12px 13px;outline:none;color:var(--ink);transition:border .15s,box-shadow .15s;min-height:44px}textarea{resize:vertical;min-height:90px}input:focus,select:focus,textarea:focus{border-color:#39bfa7;box-shadow:0 0 0 3px rgba(58,192,169,.16)}input:disabled{background:#f1f5f6;color:#526471}input[type=checkbox]{width:auto;min-height:0;margin-right:9px;accent-color:var(--mint2)}:focus-visible{outline:3px solid #28bda4;outline-offset:2px}.btn{border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;padding:12px 18px;font-weight:750;min-height:43px;white-space:nowrap;transition:transform .12s,background .12s,box-shadow .12s}.btn:active{transform:translateY(1px)}.btn-primary{background:#14394d;color:#fff}.btn-primary:hover{background:#0b293b}.btn-mint{background:var(--mint);color:#073d36}.btn-mint:hover{background:#3dcbb0}.btn-outline{background:#fff;border:1px solid #d4e0e4;color:var(--ink)}.btn-outline:hover{background:#f4f9f9}.btn-danger{background:#fff2f2;color:#a52d38;border:1px solid #f8dbde}.btn-sm{padding:8px 12px;min-height:34px;font-size:.82rem}.btn-wide{width:100%}.btn-plain{border:0;background:transparent;color:#35627a;font-weight:750;padding:4px 0}.btn-plain:hover{text-decoration:underline}.icon{font-style:normal;display:inline-flex;justify-content:center;align-items:center}.boot{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;color:var(--muted)}.spinner{display:inline-block;border:3px solid #dfe7e9;border-top-color:var(--mint2);width:32px;height:32px;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(350px,1fr) minmax(460px,1fr);background:#fff}.auth-brand{background:linear-gradient(148deg,#10293b,#1d4257 62%,#143449);color:#fff;padding:clamp(32px,5vw,90px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-brand:before,.auth-brand:after{content:'';position:absolute;border-radius:50%;border:1px solid rgba(118,211,191,.15);width:600px;height:600px;right:-260px;top:22%}.auth-brand:after{width:400px;height:400px;right:-160px;top:30%}.auth-brand .brand-mark{position:relative;z-index:2}.logo{display:flex;align-items:center;gap:12px}.logo-symbol{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:rgba(90,216,190,.15);color:var(--mint);border:1px solid rgba(90,216,190,.27);font-size:24px}.logo-name{line-height:1.1;font-size:1.26rem;font-weight:850;letter-spacing:-.4px}.logo-desc{font-size:.66rem;letter-spacing:2.2px;font-weight:700;color:#aac3d0;margin-top:6px}.hero-body{position:relative;z-index:2;max-width:480px;margin:50px 0}.eyebrow{display:inline-flex;gap:8px;align-items:center;font-size:.7rem;font-weight:850;letter-spacing:1.6px;text-transform:uppercase;color:var(--mint);margin:0 0 20px}.hero-body h1{font-size:clamp(2.5rem,4vw,4.2rem);font-weight:850;line-height:1.08;letter-spacing:-2px;margin:0 0 22px}.hero-body h1 span{color:var(--mint)}.hero-body p{color:#c4d4db;font-size:1.07rem;line-height:1.7}.auth-foot{position:relative;z-index:2;color:#a4bcc7;font-size:.75rem}.auth-right{display:flex;align-items:center;justify-content:center;padding:32px}.auth-content{width:100%;max-width:415px}.auth-content h2{font-size:2rem;line-height:1.2;letter-spacing:-.8px;margin:0 0 12px}.subtext{color:var(--muted);line-height:1.6;margin:0 0 26px}.field{margin-bottom:17px}.field-help{font-size:.75rem;color:var(--muted);margin:7px 0 0}.form-footer{margin-top:26px}.mini-note{color:var(--muted);line-height:1.6;font-size:.79rem}.auth-mobile-logo{display:none}.notice{border:1px solid #bfdfd7;border-radius:12px;background:#effcf8;color:#286954;padding:13px 15px;font-size:.85rem;margin:18px 0}
.shell{display:flex;min-height:100vh}.sidebar{width:258px;flex-shrink:0;background:var(--navy);color:#e6f2f4;padding:28px 15px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .logo{margin:4px 10px 40px}.sidebar .logo-symbol{width:42px;height:42px}.sidebar .logo-name{font-size:1.1rem}.sidebar .logo-desc{font-size:.56rem}.side-label{font-size:.64rem;color:#6e98a7;letter-spacing:1.7px;font-weight:800;margin:0 16px 14px}.nav{display:flex;flex-direction:column;gap:5px}.navbtn{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:12px 13px;color:#bcd1d9;border:0;border-radius:10px;background:transparent;font-weight:650}.navbtn:hover{background:#ffffff10;color:#fff}.navbtn.active{background:#2b5363;color:#f7ffff;box-shadow:inset 3px 0 var(--mint)}.nav-ico{font-size:18px;width:24px;text-align:center}.side-footer{margin-top:auto;padding:15px 9px 0;border-top:1px solid #365263}.side-user{font-weight:750;color:#fff}.side-role{font-size:.72rem;color:#a1bec8;margin-top:5px}.sidebar .logout{margin-top:18px;width:100%;color:#bdd0da;border:1px solid #416174;background:transparent}.sidebar .logout:hover{background:#ffffff11}.main{flex:1;min-width:0;padding:36px clamp(18px,3.1vw,56px) 70px;max-width:1650px;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:29px}.topbar .breadcrumb{color:var(--muted);font-size:.8rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px}.page-title{margin:0;font-size:2.02rem;line-height:1.15;letter-spacing:-1px;color:var(--ink)}.page-desc{margin:9px 0 0;color:var(--muted);line-height:1.5}.top-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.userchip{background:#fff;border:1px solid var(--line);padding:7px 11px 7px 7px;border-radius:25px;display:flex;align-items:center;gap:8px;font-size:.78rem;font-weight:800;white-space:nowrap}.avatar{display:grid;place-items:center;width:31px;height:31px;background:#def7ef;color:#147b69;border-radius:50%;font-weight:850}.card{background:#fff;border:1px solid #e5edf0;border-radius:17px;box-shadow:var(--shadow);padding:24px}.card + .card{margin-top:20px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.card-title{font-size:1.12rem;letter-spacing:-.3px;font-weight:820;margin:0}.card-hint{margin:6px 0 0;color:var(--muted);font-size:.82rem;line-height:1.5}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.one{grid-template-columns:1fr}.stat{border:1px solid #e5ecef;background:#fff;border-radius:15px;padding:20px 22px;box-shadow:var(--shadow)}.stat.accent{background:var(--navy);border-color:var(--navy);color:#fff}.stat-label{color:var(--muted);font-size:.81rem;font-weight:720;margin-bottom:16px}.stat.accent .stat-label{color:#b4cbd4}.stat-number{font-size:1.9rem;letter-spacing:-1px;font-weight:850;font-variant-numeric:tabular-nums}.stat-bottom{color:#8da0a9;font-size:.72rem;margin-top:6px}.stat.accent .stat-bottom{color:#a1c5cb}.section{margin-top:26px}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar select,.toolbar input{max-width:220px}.table-wrap{overflow:auto;border:1px solid #e5ecef;border-radius:12px}.table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:.85rem}.table th{background:#f7fafb;padding:13px 15px;color:#617986;font-size:.72rem;letter-spacing:.3px;font-weight:850}.table td{padding:14px 15px;border-top:1px solid #e9eff1;vertical-align:middle}.table tr:hover td{background:#fbfdfd}.muted{color:var(--muted)}.small{font-size:.78rem}.strong{font-weight:800}.mono{font-variant-numeric:tabular-nums;font-weight:800}.pill{border-radius:20px;padding:6px 10px;display:inline-block;font-weight:800;font-size:.7rem;white-space:nowrap}.pill-pendiente{background:#fff5df;color:#94610b}.pill-observado{background:#eaf2ff;color:#3360ab}.pill-aprobado{background:#e2f7ee;color:#167a5a}.pill-facturado{background:#ebf0f3;color:#47616f}.pill-rechazado{background:#ffebeb;color:#a73f46}.pill-active{background:#dff6ee;color:#19785f}.pill-inactive{background:#f2e8ea;color:#9b5361}.blank{padding:42px 16px;text-align:center;color:var(--muted)}.blank-icon{font-size:32px;margin-bottom:12px}.blank h3{font-size:1rem;color:var(--ink);margin:0 0 6px}.blank p{margin:0 auto;max-width:440px;font-size:.85rem;line-height:1.6}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e7edee;padding-top:20px;margin-top:12px}.form-section-heading{font-weight:830;font-size:.93rem;margin:7px 0 18px}.form-section-heading:not(:first-child){border-top:1px solid #ebf0f2;padding-top:24px;margin-top:13px}.highlight{background:#edfaf6;border:1px solid #cdece2;border-radius:13px;padding:18px;color:#315d56;margin-bottom:25px}.highlight strong{color:#1e6759}.highlight p{margin:6px 0 0;font-size:.83rem;line-height:1.5}.two-cols{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.list{display:flex;flex-direction:column;gap:12px}.list-item{border:1px solid #e6ebee;border-radius:12px;padding:15px;display:flex;justify-content:space-between;gap:12px;align-items:center}.list-item strong{display:block;margin-bottom:4px}.list-item .meta{font-size:.76rem;color:var(--muted)}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.info-grid>div{background:#f7fafb;border-radius:10px;padding:13px}.info-grid .label{color:var(--muted);font-size:.73rem;margin-bottom:5px}.info-grid .value{font-weight:770;overflow-wrap:anywhere}.overlay{position:fixed;inset:0;background:rgba(7,27,40,.61);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:#fff;border-radius:18px;width:100%;max-width:660px;max-height:min(92vh,1000px);overflow:auto;padding:26px 28px;box-shadow:0 22px 80px #0004}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:22px}.modal-header h2{margin:0;font-size:1.33rem;letter-spacing:-.5px}.close{border:1px solid #e4ebee;border-radius:8px;background:#fff;padding:5px 11px;color:var(--muted);font-size:1.3rem}.toast{position:fixed;bottom:22px;right:22px;max-width:400px;z-index:100;background:#173c46;color:#fff;box-shadow:0 20px 40px #0003;padding:14px 18px;border-radius:12px;display:none;font-size:.85rem;line-height:1.4}.toast.error{background:#932f39}.toast.visible{display:block}.small-tabs{display:flex;gap:7px;flex-wrap:wrap}.tab{border:1px solid #d7e1e5;border-radius:20px;padding:8px 13px;color:#637b89;font-size:.79rem;font-weight:800;background:#fff}.tab.active{color:#0a6e5c;background:#e7f9f3;border-color:#ade6d7}.callout{border-left:3px solid #41c1a6;background:#ecfaf6;color:#3d6259;padding:15px 18px;border-radius:0 10px 10px 0;font-size:.85rem;line-height:1.6}.empty-nudge{display:inline-block;margin-top:18px}.footer-note{text-align:center;color:#98a6af;font-size:.69rem;margin-top:50px}.mobile-bar{display:none}.helper-line{color:var(--muted);font-size:.77rem;line-height:1.5}.inline{display:flex;align-items:center;gap:8px}.mini-divider{border:0;border-top:1px solid #e9eff1;margin:18px 0}.mobile-driver-hero{background:linear-gradient(120deg,#102839,#19495a);border-radius:16px;padding:28px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.mobile-driver-hero h2{font-size:1.56rem;margin:0 0 9px;letter-spacing:-.5px}.mobile-driver-hero p{font-size:.86rem;color:#c4dadd;line-height:1.5;margin:0;max-width:460px}.mobile-driver-hero .btn{background:var(--mint);color:#0b4037}
@media(max-width:1150px){.grid.four{grid-template-columns:repeat(2,1fr)}.two-cols{grid-template-columns:1fr}.sidebar{width:230px}.main{padding:26px 23px 70px}.auth-brand{padding:40px}}@media(max-width:780px){.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.auth-right{min-height:100vh;padding:28px 22px}.auth-content{max-width:460px}.auth-mobile-logo{display:flex;gap:12px;align-items:center;margin-bottom:42px}.auth-mobile-logo .logo-symbol{background:#dff7ef;color:#197864}.auth-mobile-logo .logo-desc{color:#738895}.shell{display:block;padding-bottom:65px}.sidebar{height:auto;position:relative;width:100%;padding:13px 18px;flex-direction:row;justify-content:space-between;align-items:center}.sidebar .logo{margin:0}.sidebar .logo-symbol{width:36px;height:36px;font-size:20px}.sidebar .logo-name{font-size:1rem}.sidebar .logo-desc{font-size:.52rem}.sidebar .side-label,.sidebar .nav,.sidebar .side-footer{display:none}.mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;box-shadow:0 -5px 30px #0925371b;z-index:30;justify-content:space-around;padding:9px max(8px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom));border-top:1px solid #e6edee;gap:3px}.mobile-tab{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;color:#788d99;gap:4px;font-size:.64rem;font-weight:800;min-width:60px}.mobile-tab .nav-ico{font-size:20px}.mobile-tab.active{color:#098a74}.main{padding:27px 16px 48px}.page-title{font-size:1.7rem}.topbar{align-items:flex-start}.top-actions .userchip{display:none}.grid.three,.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.field-row,.field-row.three{grid-template-columns:1fr}.card{padding:18px}.mobile-driver-hero{display:block}.mobile-driver-hero .btn{width:100%;margin-top:17px}.card-head{flex-wrap:wrap}.info-grid{grid-template-columns:1fr}.modal{padding:20px;max-height:94vh}}@media(max-width:450px){.grid.three,.grid.four{gap:9px}.stat{padding:15px}.stat-number{font-size:1.4rem}.top-actions{justify-content:flex-end}.topbar{margin-bottom:24px}.toolbar select,.toolbar input{max-width:100%}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}.auth-content h2{font-size:1.7rem}}
