:root{--paper: #f7faf9;--card: #ffffff;--ink: #101820;--ink-soft: #5a6b74;--line: #d7e6e7;--line-soft: #e8f1f1;--navy: #0d1a24;--navy-2: #0085c0;--orange: #00a7e1;--orange-soft: #e2f5fc;--lime: #b9d80b;--lime-soft: #eff8bd;--green: #1e8a4a;--green-soft: #e4f3e9;--amber: #d98e04;--amber-soft: #fdf3dc;--red: #c8402e;--radius: 14px;--shadow: 0 2px 10px rgba(16, 24, 32, .07), 0 1px 2px rgba(16, 24, 32, .06);--display: "Barlow Condensed", "Arial Narrow", sans-serif;--body: "Barlow", "Helvetica Neue", sans-serif}*{box-sizing:border-box}html,body{margin:0;background:radial-gradient(1100px 500px at 80% -10%,rgba(0,167,225,.06),transparent 60%),radial-gradient(900px 420px at 10% -6%,rgba(185,216,11,.05),transparent 60%),var(--paper);color:var(--ink);font-family:var(--body);font-size:15px;-webkit-font-smoothing:antialiased}#root{min-height:100vh}.app{max-width:520px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding-bottom:calc(74px + env(safe-area-inset-bottom))}.header{background:var(--navy);color:#f4f1e8;padding:14px 18px 12px;border-radius:0 0 20px 20px;position:relative;overflow:hidden;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.brand-block{flex:1 1 auto;min-width:0}.header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(90deg,var(--orange),var(--lime));opacity:.95}.header .brand{display:flex;align-items:baseline;gap:10px}.header h1{margin:0;font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:.04em;text-transform:uppercase}.header h1 .cmk{color:var(--orange)}.header .sub{margin:0;font-size:12.5px;color:#b8c6d8;letter-spacing:.02em}.badge-modo{margin-left:auto;font-family:var(--display);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid rgba(244,241,232,.35);color:#d8e2ee;white-space:nowrap}.badge-modo.local{border-color:#d98e04cc;color:#f5c76a}.nav{position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--navy);display:grid;grid-template-columns:repeat(5,1fr);padding:6px 6px calc(6px + env(safe-area-inset-bottom));gap:2px;box-shadow:0 -4px 16px #12233a40}.nav button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#93a5bb;font-family:var(--display);font-weight:700;font-size:10.5px;line-height:1.1;letter-spacing:.04em;text-transform:uppercase;text-align:center;padding:8px 2px 6px;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;transition:color .15s,background .15s}.nav button svg{width:20px;height:20px}.nav button.active{color:#fff;background:#00a7e12e}.nav button.active svg{color:var(--orange)}main{padding:14px 14px 20px;flex:1}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;margin-bottom:12px}h2.section{font-family:var(--display);font-weight:800;font-size:21px;text-transform:uppercase;letter-spacing:.05em;margin:4px 2px 10px}.muted{color:var(--ink-soft);font-size:13px}.road-divider{border:0;height:3px;margin:12px 0;background:repeating-linear-gradient(90deg,var(--line) 0 18px,transparent 18px 32px)}.date-nav{display:flex;align-items:center;gap:8px;margin-bottom:12px}.date-nav .arrow{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--card);color:var(--ink);width:42px;height:42px;border-radius:12px;font-size:19px;cursor:pointer;flex-shrink:0;box-shadow:var(--shadow)}.date-nav .fecha-box{flex:1;position:relative;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:5px 10px 6px;text-align:center;cursor:pointer}.date-nav .fecha-box .dia{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:.02em;line-height:1.15}.date-nav .fecha-box .anio{font-size:11.5px;color:var(--ink-soft)}.date-nav .mes-box{cursor:default}.date-nav .mes-box .dia{text-transform:uppercase;letter-spacing:.04em}.date-nav .fecha-box input[type=date]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;cursor:pointer}.btn-hoy{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--orange);color:var(--orange);background:var(--orange-soft);font-family:var(--display);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:13px;border-radius:12px;height:42px;padding:0 12px;cursor:pointer;flex-shrink:0}.chofer-card{padding:0;overflow:hidden}.chofer-head{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;-webkit-user-select:none;user-select:none}.avatar{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;font-family:var(--display);font-weight:800;font-size:16px;letter-spacing:.02em;flex-shrink:0}.chofer-head .nombre{font-family:var(--display);font-weight:700;font-size:18.5px;letter-spacing:.02em;line-height:1.1}.chofer-head .resumen-mini{font-size:12.5px;color:var(--ink-soft);margin-top:1px}.chofer-head .total-chip{margin-left:auto;text-align:right;flex-shrink:0}.total-chip .num{font-family:var(--display);font-weight:800;font-size:23px;font-variant-numeric:tabular-nums;line-height:1}.total-chip .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.total-chip.ok .num{color:var(--green)}.total-chip.pendiente .num{color:var(--ink-soft)}.chofer-body{border-top:1px dashed var(--line);padding:12px 14px 14px;display:grid;gap:11px}.field label{display:block;font-family:var(--display);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:5px}.time-row{display:flex;gap:8px}input[type=time],input[type=text],input[type=password],input[type=date].plain,input[type=number]{width:100%;border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px 12px;font-family:var(--body);font-size:16px;font-variant-numeric:tabular-nums;color:var(--ink)}input:focus{outline:2px solid var(--orange);outline-offset:1px;border-color:var(--orange)}.btn-ahora{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--navy);color:#fff;font-family:var(--display);font-weight:700;font-size:13.5px;letter-spacing:.07em;border-radius:11px;padding:0 16px;cursor:pointer;flex-shrink:0;transition:background .15s}.btn-ahora:active{background:var(--orange)}.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1 1 0;min-width:68px;border:1px solid var(--line);background:#fff;color:var(--ink);font-family:var(--display);font-weight:600;font-size:14.5px;font-variant-numeric:tabular-nums;border-radius:999px;padding:10px 14px;cursor:pointer;transition:all .12s}.seg button.sel{background:var(--navy);border-color:var(--navy);color:#fff}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:11px}.dest-select{position:relative}.dest-control{position:relative;display:flex;align-items:center}.dest-control input{padding-right:40px}.dest-caret{position:absolute;right:4px;top:50%;transform:translateY(-50%);-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink-soft);font-size:16px;line-height:1;padding:8px 10px;cursor:pointer}.dest-menu{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;max-height:260px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:5px}.dest-opt{display:block;width:100%;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink);font-family:var(--body);font-size:15.5px;border-radius:9px;padding:10px 12px;cursor:pointer}.dest-opt:hover{background:var(--line-soft)}.dest-opt.sel{background:var(--orange-soft);color:var(--navy);font-weight:600}.dest-opt.agregar{color:var(--navy-2);font-weight:700;border-top:1px dashed var(--line);margin-top:3px}.dest-vacio{padding:12px;color:var(--ink-soft);font-size:14px;text-align:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#10182073;display:flex;align-items:center;justify-content:center;padding:20px;animation:rise .18s ease both}.modal{width:100%;max-width:420px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.modal-titulo{font-family:var(--display);font-weight:700;font-size:20px;margin:0 0 14px;color:var(--ink)}.modal input{margin-bottom:14px}.modal input:last-of-type{margin-bottom:0}.modal-label{display:block;font-family:var(--display);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:5px}.modal-acciones{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal-acciones button{width:auto;padding:0 20px;height:44px}.total-line{display:flex;align-items:baseline;justify-content:space-between;background:var(--green-soft);border:1px solid #cbe6d4;border-radius:11px;padding:9px 13px}.total-line.pendiente{background:var(--line-soft);border-color:var(--line)}.total-line .lbl{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft)}.total-line .num{font-family:var(--display);font-weight:800;font-size:26px;font-variant-numeric:tabular-nums;color:var(--green)}.total-line.pendiente .num{color:var(--ink-soft);font-size:16px;font-weight:600}.save-state{font-size:12px;text-align:right;color:var(--ink-soft);min-height:15px}.save-state.ok{color:var(--green)}.save-state.err{color:var(--red)}.cal-head{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:10px}.cal-head .titulo{font-family:var(--display);font-weight:800;font-size:21px;text-transform:uppercase;letter-spacing:.04em}.cal-selectores{display:flex;gap:10px;align-items:center}.cal-select{font-family:var(--display);font-weight:800;font-size:18px;text-transform:uppercase;letter-spacing:.03em;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 34px 9px 14px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2394a3b8' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.cal-select:focus{outline:none;border-color:var(--orange);box-shadow:inset 0 0 0 1px var(--orange)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal-dow{text-align:center;font-family:var(--display);font-weight:700;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);padding:4px 0}.cal-day{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line-soft);background:var(--card);border-radius:10px;min-height:54px;padding:5px 3px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;font-family:var(--body);color:var(--ink);transition:border-color .12s,transform .08s}.cal-day:active{transform:scale(.96)}.cal-day.vacio{visibility:hidden}.cal-day .n{font-size:13.5px;font-weight:600}.cal-day.hoy{border-color:var(--orange);box-shadow:inset 0 0 0 1px var(--orange)}.cal-day .hrs{font-family:var(--display);font-weight:700;font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--green);background:var(--green-soft);border-radius:6px;padding:1px 5px}.cal-day.parcial .hrs{color:var(--amber);background:var(--amber-soft)}.week-nav{display:flex;align-items:center;gap:8px;margin-bottom:12px}.week-nav .rango{flex:1;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:8px 10px;font-family:var(--display);font-weight:700;font-size:16.5px;letter-spacing:.02em}.week-nav .rango .sem{display:block;font-size:11px;color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.wk-row{display:flex;align-items:center;gap:10px;padding:10px 2px}.wk-row+.wk-row{border-top:1px dashed var(--line-soft)}.wk-row .nombre{font-family:var(--display);font-weight:700;font-size:16.5px;width:108px;flex-shrink:0;line-height:1.1}.wk-row .barra{flex:1;height:14px;background:var(--line-soft);border-radius:999px;overflow:hidden;position:relative}.wk-row .barra .fill{height:100%;border-radius:999px;background:var(--green);transition:width .4s ease}.wk-row .barra .fill.excede{background:var(--red)}.wk-row .barra .meta{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--ink);opacity:.35}.wk-row .horas{font-family:var(--display);font-weight:800;font-size:18px;font-variant-numeric:tabular-nums;width:64px;text-align:right;flex-shrink:0}.wk-row .horas.excede{color:var(--red)}.wk-row .horas .exceso-chip{display:block;font-size:11px;font-weight:800;letter-spacing:.02em;color:#fff;background:var(--red);border-radius:6px;padding:1px 5px;margin-top:3px}.tabla-scroll{overflow-x:auto}table.wk-tabla{width:100%;border-collapse:collapse;font-size:13px;min-width:480px}.wk-tabla th,.wk-tabla td{padding:7px 8px;border-bottom:1px solid var(--line-soft);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.wk-tabla th{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}.wk-tabla th:first-child,.wk-tabla td:first-child{text-align:left}.wk-tabla td.total{font-weight:700;color:var(--navy-2)}.btn-primario,.btn-secundario{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:12px;padding:13px 16px;font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;width:100%}.btn-primario{background:var(--navy);color:#fff}.btn-primario:active{background:var(--orange)}.btn-secundario{background:var(--card);color:var(--navy);border:1px solid var(--line);box-shadow:var(--shadow)}.chofer-row{display:flex;align-items:center;gap:10px;padding:9px 2px}.chofer-row+.chofer-row{border-top:1px dashed var(--line-soft)}.chofer-row .nombre{flex:1;font-weight:600;font-size:15.5px}.chofer-row .nombre.inactivo{color:var(--ink-soft);text-decoration:line-through}.mini-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#fff;border-radius:9px;padding:6px 11px;font-family:var(--display);font-weight:600;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);cursor:pointer}.add-row{display:flex;gap:8px;margin-top:10px}.add-row input{flex:1}.add-row button{width:auto;padding:0 18px}.empty{text-align:center;color:var(--ink-soft);padding:26px 10px;font-size:14px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.card,.date-nav,.week-nav{animation:rise .3s ease both}.card:nth-child(2){animation-delay:.04s}.card:nth-child(3){animation-delay:.08s}.card:nth-child(4){animation-delay:.12s}.card:nth-child(5){animation-delay:.16s}.card:nth-child(6){animation-delay:.2s}.card:nth-child(7){animation-delay:.24s}@media (min-width: 900px){.app{max-width:1040px;padding-bottom:28px}.header{border-radius:0 0 22px 22px;display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;padding:16px 26px 14px}.nav{position:static;background:transparent;box-shadow:none;display:flex;flex-wrap:wrap;gap:2px;padding:0;order:3;flex-basis:100%}.nav button{flex-direction:row;color:#93a5bb;font-size:13px;padding:8px 11px}.nav button svg{width:18px;height:18px}main{padding:22px 26px}.date-nav,.week-nav{max-width:none}.day-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;align-items:start}.day-grid .card{margin-bottom:0}.cal-day{min-height:72px}.logout-btn{position:static;order:2;margin-left:auto}}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 18px calc(24px + env(safe-area-inset-bottom))}.login-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:26px 22px 24px;display:flex;flex-direction:column}.login-brand{display:flex;align-items:baseline;gap:10px}.login-brand h1{margin:0;font-family:var(--display);font-weight:800;font-size:30px;letter-spacing:.04em;text-transform:uppercase}.login-brand h1 .cmk{color:var(--orange)}.login-sub{margin:4px 0 20px;font-size:13px;color:var(--ink-soft);letter-spacing:.02em}.login-label{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:12px 0 5px}.login-card input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font-family:var(--body);font-size:15px;background:var(--paper);color:var(--ink)}.login-card input:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}.login-clave{display:flex;gap:8px;align-items:stretch}.login-clave input{flex:1}.login-error{margin-top:14px;color:var(--red);font-size:13.5px;font-weight:600}.login-btn{margin-top:20px;width:100%;padding:12px;font-size:16px}.logout-btn{display:inline-flex;align-items:center;gap:6px;max-width:46vw;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(244,241,232,.3);background:#f4f1e814;color:#d8e2ee;font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;padding:6px 11px;border-radius:999px;cursor:pointer;transition:background .15s,color .15s}.logout-btn:hover{background:#f4f1e829;color:#fff}.logout-btn svg{width:15px;height:15px;flex:none}.logout-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usuario-nombre{color:var(--ink-soft);font-weight:500}.usuario-yo{color:var(--orange);font-weight:700;font-size:12px}.add-usuario{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}.add-usuario input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-family:var(--body);font-size:15px;background:var(--paper);color:var(--ink)}.add-usuario input:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}.mini-btn.peligro{color:var(--red);border-color:var(--red)}.mini-btn:disabled{opacity:.4;cursor:not-allowed}
