:root{--optilab-navy:#002E5D;--optilab-pink:#A13F3F;--optilab-cyan:#3D6E99;--optilab-yellow:#9C6B1F;--optilab-green:#3E7A4E;--ink:#3A3835;--bg:#F4F4F2;--panel:#FFFFFF;--line:#E2E1DD;--line-strong:#CFCEC9;--text:var(--ink);--muted:#6E6F72;--accent:#002E5D;--surface-subtle:#F0EFEC;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--shadow-sm:none;--shadow-md:none;--shadow-lg:0 12px 32px -10px rgba(58,56,53,.22);--font-body:"Public Sans",system-ui,Arial,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body)}h1,h2,h3,h4{font-family:var(--font-body);font-weight:700;letter-spacing:-.01em;color:var(--ink)}header{min-height:64px;display:flex;align-items:center;gap:10px;padding:0 5vw;border-bottom:1px solid var(--line);position:sticky;top:0;background:#f4f4f2ee;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2}header b{font-size:22px;letter-spacing:1px}header span{color:var(--accent);font-size:12px}nav{margin-left:auto;display:flex;gap:18px;flex-wrap:wrap}a{color:inherit;text-decoration:none}nav a{color:var(--muted)}main{max-width:1300px;margin:auto;padding:34px 5vw}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;overflow:auto;box-shadow:var(--shadow-sm),var(--shadow-md)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.stats b{display:block;font-family:var(--font-mono);font-size:30px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stats span{color:var(--muted)}.grid{display:grid;grid-template-columns:340px 1fr;gap:18px}form{display:grid;gap:12px}label{display:grid;gap:6px;color:var(--muted)}input,select,button{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-family:var(--font-body)}button{background:var(--optilab-navy);color:#fff;border:0;font-weight:700;cursor:pointer;transition:filter .15s ease,transform .1s ease}button:hover{filter:brightness(1.18)}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.secondary{background:var(--panel);color:var(--optilab-navy);border:1px solid var(--line);font-weight:700}.secondary:hover{filter:none;background:var(--surface-subtle)}.success{margin-top:16px;background:var(--optilab-green);color:#fff}.login{max-width:420px;margin:9vh auto}.alert{padding:10px;background:#a13f3f14;border:1px solid var(--optilab-pink);border-radius:10px}table{width:100%;border-collapse:collapse;min-width:650px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}table tr:has(td):hover{background:var(--surface-subtle)}th{color:var(--muted);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.badge{display:inline-block;padding:5px 9px;border:1px solid var(--line);border-radius:999px;font-size:12px}.qr{width:210px;background:#fff;padding:10px;border-radius:14px;border:1px solid var(--line)}@media (max-width:800px){header{align-items:flex-start;padding-top:15px;padding-bottom:15px;flex-wrap:wrap}nav{width:100%;margin:0;overflow:auto;flex-wrap:nowrap}.stats{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}main{padding:22px 14px}.card{padding:16px}}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn-link{display:flex;align-items:center;justify-content:center;width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);font-weight:700;transition:background .12s ease,filter .12s ease}.btn-link:hover{background:var(--surface-subtle)}.btn-link.secondary{background:var(--optilab-navy);color:#fff}.btn-link.secondary:hover{background:var(--optilab-navy);filter:brightness(1.18)}.disabled{opacity:.45;pointer-events:none}.muted{color:var(--muted)}.coords{font-family:var(--font-mono);font-size:12px}.map-link{display:inline-block;padding:7px 10px;border-radius:9px;background:var(--optilab-navy);color:#fff;white-space:nowrap;transition:filter .12s ease}.map-link:hover{filter:brightness(1.18)}.location-box{display:grid;gap:7px;margin:14px 0;padding:13px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-subtle)}.location-box .map-link{width:max-content}@media (max-width:520px){.button-row{grid-template-columns:1fr}}.alert{padding:12px 14px;border-radius:10px;margin:0 0 16px;font-weight:600}.alert.error{background:#a13f3f1a;border:1px solid var(--optilab-pink);color:#6b2a2a}.alert.success{background:#3e7a4e1f;border:1px solid var(--optilab-green);color:#1f3d28}.catalog-grid{display:grid;grid-template-columns:1fr;gap:18px}.compact-form{grid-template-columns:repeat(4,minmax(140px,1fr));align-items:end;margin-bottom:18px}.compact-form button{height:42px}.small-table button{padding:7px 9px;font-size:12px}.small-table form{display:block}.shipping-form{min-width:260px;gap:8px}.shipping-option[hidden]{display:none!important}@media (max-width:900px){.compact-form{grid-template-columns:1fr 1fr}}@media (max-width:560px){.compact-form{grid-template-columns:1fr}}.scanner-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.scanner-head h1{margin-bottom:6px}.scanner-head p{max-width:780px}.scanner-counter{min-width:170px;text-align:center;padding:14px 18px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.scanner-counter span{display:block;color:var(--muted);font-size:12px}.scanner-counter b{display:block;font-size:38px;color:var(--accent)}.scanner-grid{display:grid;grid-template-columns:minmax(300px,390px) 1fr;gap:18px}.scanner-control h2,.scanner-list-card h2{margin-top:0}.scanner-divider{height:1px;background:var(--line);margin:8px 0 4px}.barcode-input{font-size:24px;font-weight:800;letter-spacing:1px;border:2px solid var(--accent);padding:16px}.barcode-input:focus{outline:3px solid rgba(0,46,93,.25)}.scanner-help{font-size:12px;margin-top:-3px}.scan-message{min-height:45px;padding:11px 12px;border-radius:10px;border:1px solid transparent;font-weight:700}.scan-message:empty{display:none}.scan-message.ok{background:#3e7a4e1f;border-color:var(--optilab-green);color:#1f3d28}.scan-message.warn{background:#9c6b1f38;border-color:var(--optilab-yellow);color:#5c4012}.scan-message.error{background:#a13f3f1a;border-color:var(--optilab-pink);color:#6b2a2a}.dispatch-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;background:var(--surface-subtle);border:1px solid var(--line);border-radius:12px;margin-bottom:12px}.dispatch-summary b{font-family:var(--font-mono)}.scanner-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.scanner-list-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:10px}.scanner-list-head h2{margin-bottom:4px}.scanner-empty{padding:50px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px}.scanner-table-wrap{overflow:auto}.scanner-table{min-width:720px}.scanner-table tbody tr:first-child{background:#002e5d0f}.remove-scan{width:auto;padding:7px 10px;font-size:12px}.scanner-control select{font-size:16px}.scanner-list-card{min-height:480px}@media (max-width:900px){.scanner-grid{grid-template-columns:1fr}.scanner-head{align-items:stretch}.scanner-counter{min-width:140px}}@media (max-width:560px){.scanner-head{flex-direction:column}.scanner-counter{width:100%}.scanner-actions{grid-template-columns:1fr}.barcode-input{font-size:20px}}.dispatch-row-actions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}.dispatch-row-actions .map-link{font-size:12px;padding:6px 8px}.status-chip{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid transparent;white-space:nowrap;margin:2px 3px 2px 0}.status-chip.facturado{background:var(--surface-subtle);border-color:var(--line-strong);color:var(--muted)}.status-chip.listo{background:#5b8c7f29;border-color:var(--optilab-cyan);color:#1b3b54}.status-chip.asignado{background:#9c6b1f33;border-color:var(--optilab-yellow);color:#5c4012}.status-chip.en-ruta{background:#002e5d29;border-color:var(--optilab-navy);color:#0d2a45}.status-chip.entregado{background:#3e7a4e24;border-color:#5c8f68;color:#2c4a36}.status-chip.recibido{background:#3e7a4e3d;border-color:var(--optilab-green);color:#1f3d28}.status-chip.neutral{background:var(--surface-subtle);border-color:var(--line-strong);color:var(--muted)}.status-chip.overdue{background:#a13f3f24;border-color:var(--optilab-pink);color:#6b2a2a}.overdue-row{background:#a13f3f12!important;border-left:4px solid var(--optilab-pink)}.overdue-stat{border-color:var(--optilab-pink)!important;background:#a13f3f14!important}.overdue-stat b,.overdue-stat span{color:#6b2a2a!important}.stats-five{grid-template-columns:repeat(5,1fr)}.history-head,.history-detail-head,.section-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:620px}.history-filters{margin:18px 0}.history-filter-form{grid-template-columns:2fr 1.4fr 1.2fr .8fr;align-items:end}.history-table .small,.small{font-size:12px}.history-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.history-summary .card{display:grid;gap:6px;min-height:108px}.history-summary span,.history-summary small{color:var(--muted)}.history-summary b{font-size:17px}.history-total{margin-bottom:18px;padding:14px;border-radius:12px;background:#3e7a4e24;border:1px solid var(--optilab-green)}.overdue-alert{background:#a13f3f1a;border:1px solid var(--optilab-pink);color:#6b2a2a}.timeline{display:grid;gap:0;margin-top:10px}.timeline-item{display:grid;grid-template-columns:24px 1fr;gap:14px;position:relative;padding-bottom:22px}.timeline-item:not(:last-child):before{content:"";position:absolute;left:7px;top:17px;bottom:-2px;width:2px;background:var(--line)}.timeline-dot{width:16px;height:16px;border-radius:50%;margin-top:4px;border:3px solid var(--panel);box-shadow:0 0 0 2px var(--line);z-index:1}.timeline-dot.facturado{background:#b4b2ac}.timeline-dot.listo{background:var(--optilab-navy)}.timeline-dot.asignado{background:var(--optilab-yellow)}.timeline-dot.en-ruta{background:var(--optilab-cyan)}.timeline-dot.entregado{background:#6fa378}.timeline-dot.recibido{background:var(--optilab-green)}.timeline-body{padding:0 0 0 2px}.timeline-body p{margin:8px 0}.timeline-top{display:flex;gap:10px;justify-content:space-between;align-items:center}.history-mini{font-size:11px;color:var(--accent);margin-left:6px}@media (max-width:1050px){.stats-five{grid-template-columns:repeat(3,1fr)}.history-summary,.history-filter-form{grid-template-columns:1fr 1fr}}@media (max-width:650px){.history-head,.history-detail-head,.section-head{flex-direction:column}.legend{justify-content:flex-start}.stats-five{grid-template-columns:1fr 1fr}.history-summary,.history-filter-form{grid-template-columns:1fr}.timeline-top{align-items:flex-start;flex-direction:column;gap:4px}}.brand{display:flex;align-items:center;gap:10px;min-width:max-content}.brand img{display:block;width:auto;height:50px;object-fit:contain}.brand span{font-weight:700;letter-spacing:1.4px;color:var(--accent);font-size:11px}.login-brand{text-align:center;margin:-4px 0 8px}.login-brand img{width:auto;height:150px;max-width:100%;object-fit:contain}.receive-logo{display:block;width:auto;height:120px;max-width:80%;object-fit:contain;margin:0 auto 8px}.count-pill{display:inline-flex;min-width:42px;align-items:center;justify-content:center;padding:6px 10px;border-radius:10px;background:#002e5d1a;border:1px solid var(--optilab-navy);font-weight:800;color:#0d2a45}@media (max-width:800px){.brand img{height:44px}.brand span{font-size:10px}.login-brand img{height:125px}.receive-logo{height:100px}}.brand img{height:72px}.login-brand img{height:190px}.receive-logo{height:145px}.pickup-grid{grid-template-columns:minmax(300px,420px) 1fr}.pickup-optic{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-subtle);margin-bottom:14px;display:grid;gap:3px}.pickup-optic span{color:var(--muted);font-size:12px}.pickup-pending{background:#9c6b1f14}.inline-assign{display:grid;grid-template-columns:minmax(140px,1fr) auto;gap:7px;margin-bottom:7px}.small-btn{padding:7px 9px}.user-optic-form{display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:6px;min-width:290px}.table-wrap{overflow:auto}@media (max-width:800px){.brand img{height:58px}.login-brand img{height:155px}.receive-logo{height:120px}.pickup-grid{grid-template-columns:1fr}}@media (max-width:520px){.brand img{height:52px}.brand span{display:none}}.brand img{height:92px}.brand span{font-size:13px;letter-spacing:2px}@media (max-width:800px){.brand img{height:70px}}@media (max-width:520px){.brand img{height:62px}}button.danger,.button.danger{background:var(--optilab-pink);color:#fff;border-color:var(--optilab-pink)}button.danger:hover,.button.danger:hover{filter:brightness(1.08)}.notify-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:5px;border-radius:999px;background:var(--optilab-pink)!important;color:#fff!important;font-size:11px!important;font-weight:900;vertical-align:middle;box-shadow:0 0 0 2px #fff}.pickup-pending{box-shadow:inset 4px 0 0 var(--optilab-yellow)}.optics-grid{grid-template-columns:minmax(310px,380px) 1fr}.optic-inline-edit{min-width:620px}.optic-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(170px,1fr));gap:8px}.optic-inline-edit input{padding:8px 10px}.optics-table td:last-child{width:110px}.pickup-location{margin-top:6px;padding:7px 9px;border-radius:var(--radius-sm);background:var(--surface-subtle);border:1px solid var(--line);font-size:12px;max-width:340px;white-space:normal}.notification-shell{position:relative;display:flex;align-items:center}.notification-bell{position:relative;width:42px;height:42px;padding:0;border-radius:12px;background:var(--surface-subtle);color:var(--optilab-navy);border:1px solid var(--line);font-size:19px;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.notification-bell:hover{background:#e6e5e0}.notification-bell-icon{line-height:1}.notification-bell-label{display:none}.notification-bell .notify-badge{position:absolute;top:-7px;right:-8px;margin:0;box-shadow:0 0 0 3px #fff}.notification-panel{position:absolute;right:0;top:50px;width:min(390px,92vw);max-height:560px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);z-index:500;overflow:hidden}.notification-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 15px;border-bottom:1px solid var(--line)}.notification-head>div{display:grid;gap:2px}.notification-read-all{width:auto;padding:7px 9px;background:var(--optilab-navy);color:#fff;font-size:11px}.notification-list{max-height:475px;overflow:auto}.notification-item{display:grid;grid-template-columns:10px 1fr;gap:10px;width:100%;border-radius:0;border:0;border-bottom:1px solid var(--line);padding:13px 14px;text-align:left;background:var(--panel);color:var(--optilab-navy)}.notification-item:hover{background:var(--surface-subtle)}.notification-item.unread{background:#002e5d0f}.notification-dot{width:8px;height:8px;border-radius:50%;background:#cbc9c4;margin-top:6px}.notification-item.unread .notification-dot{background:var(--accent);box-shadow:0 0 0 4px #002e5d29}.notification-copy{display:grid;gap:4px}.notification-copy b{font-size:13px}.notification-copy span{font-size:12px;color:var(--muted);line-height:1.35}.notification-copy small{font-size:10px;color:#9a9994}.notification-empty{padding:30px 16px;text-align:center;color:var(--muted);font-size:12px}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:1200;display:grid;gap:10px;width:min(390px,calc(100vw - 28px));pointer-events:none}.app-toast{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:start;padding:14px;border-radius:15px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translateY(20px);opacity:0;transition:.22s ease;pointer-events:auto;cursor:pointer;color:var(--optilab-navy)}.app-toast.show{transform:translateY(0);opacity:1}.app-toast-icon{width:36px;height:36px;border-radius:10px;background:#002e5d1f;display:flex;align-items:center;justify-content:center}.app-toast b{font-size:13px}.app-toast p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.35}@media (max-width:800px){.optics-grid{grid-template-columns:1fr}.notification-panel{position:fixed;right:10px;left:10px;top:128px;width:auto}.toast-stack{right:14px;bottom:14px}.optic-edit-grid{grid-template-columns:1fr}.optic-inline-edit{min-width:310px}}.integration-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}.integration-summary .card{display:grid;gap:6px}.integration-summary span,.integration-summary small{color:var(--muted)}.integration-summary b{font-size:16px}.integration-actions{display:flex;gap:8px;flex-wrap:wrap}.integration-actions form{margin:0}.integration-form{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;margin-top:14px}.integration-form button,.integration-form details,.integration-checks{grid-column:1/-1}.integration-checks{display:flex;gap:18px;flex-wrap:wrap}.check-row{display:flex!important;align-items:center;gap:8px}.check-row input{width:auto!important}.field-map{border:1px solid var(--line);border-radius:12px;padding:12px}.field-map summary{cursor:pointer;font-weight:700}.integration-fields{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;margin-top:12px}@media (max-width:900px){.integration-summary{grid-template-columns:1fr}.integration-form,.integration-fields{grid-template-columns:1fr 1fr}}@media (max-width:600px){.integration-form,.integration-fields{grid-template-columns:1fr}.integration-actions,.integration-actions form,.integration-actions button{width:100%}}.users-table-wrap{overflow-x:visible}.users-table{min-width:0;table-layout:auto}.users-table th,.users-table td{padding:9px 8px}.users-table th:last-child,.users-table td:last-child{width:245px}.user-actions{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.user-actions form{display:inline-block;margin:0}.user-action-btn,.user-actions button{width:auto!important;min-width:0!important;padding:6px 8px!important;border-radius:8px!important;font-size:11px!important;line-height:1.15;white-space:nowrap}.user-actions .button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.users-table td:nth-child(1){max-width:125px;overflow-wrap:anywhere}.users-table td:nth-child(2){max-width:150px;overflow-wrap:anywhere}.users-table td:nth-child(4){max-width:190px;white-space:normal}@media (max-width:1050px){.users-table th,.users-table td{padding:7px 6px;font-size:12px}.users-table th:last-child,.users-table td:last-child{width:205px}.user-action-btn,.user-actions button{padding:5px 6px!important;font-size:10px!important}}@media (max-width:760px){.users-table-wrap{overflow-x:auto}.users-table{min-width:690px}}.delivery-alert-card{max-width:760px}.days-input{width:90px!important;min-width:70px!important;text-align:center}.settings-actions{margin-top:16px;display:flex;justify-content:flex-end}.compact-optics{width:100%;table-layout:fixed}.compact-optics th:nth-child(1){width:22%}.compact-optics th:nth-child(2){width:39%}.compact-optics th:nth-child(3){width:12%}.compact-optics th:nth-child(4){width:27%}.optic-actions{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.inline-form{display:inline;margin:0}.mini-btn,.optic-edit-details summary{font-size:12px!important;line-height:1.1!important;padding:6px 8px!important;min-height:auto!important;width:auto!important;margin:0!important;white-space:nowrap}.optic-edit-details{position:relative}.optic-edit-details summary{cursor:pointer;list-style:none;border-radius:7px;background:var(--optilab-navy);color:#fff}.optic-edit-details[open] .optic-compact-form{position:absolute;right:0;top:32px;z-index:30;width:320px;max-width:80vw;background:#fff;border:1px solid var(--line);padding:10px;border-radius:10px;box-shadow:var(--shadow-lg)}.optic-compact-form input{font-size:12px;padding:7px;margin:3px 0}.row-disabled{opacity:.62}@media (max-width:900px){.compact-optics{table-layout:auto}.optic-actions{min-width:150px}.optic-edit-details[open] .optic-compact-form{left:0;right:auto}}n .brand-credit{display:grid!important;grid-template-rows:auto auto;gap:0!important;align-items:center!important}.brand-main{display:flex;align-items:center;gap:10px}.brand-credit>small{display:block;margin-top:-8px;text-align:center;font-size:9px;letter-spacing:.25px;color:var(--muted);white-space:nowrap}.about-card{max-width:820px;margin:30px auto;display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:30px;align-items:center;overflow:hidden}.about-logo{display:block;width:100%;height:auto;max-height:330px;object-fit:contain}.about-copy h1{margin-top:0}.about-version{display:inline-block;padding:7px 11px;border:1px solid var(--line);border-radius:999px;color:var(--accent);font-weight:800}.about-designer{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted)}@media (max-width:800px){.brand-credit>small{margin-top:-5px;font-size:8px}.about-card{grid-template-columns:1fr;text-align:center}.about-logo{max-width:230px;margin:auto}}@media (max-width:520px){.brand-credit>small{display:none}}.route-stop{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.route-stop:last-child{border-bottom:0}.route-stop p{margin:4px 0}.route-stop .btn-link{width:auto;flex-shrink:0}.grid-form textarea{width:100%;box-sizing:border-box}.wide{grid-column:1/-1}@media (max-width:900px){.route-stop{align-items:flex-start;flex-direction:column}.route-stop .btn-link{width:100%;text-align:center}}main{max-width:1680px;width:100%}.page-head,.section-toolbar,.head-actions,.dispatch-card-head,.dispatch-meta,.select-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.page-head,.dispatch-card-head{justify-content:space-between}.page-head h1,.section-toolbar h2,.dispatch-card-head h2,.optic-group-head h3{margin:0}.head-actions{justify-content:flex-end}.danger-btn{background:var(--optilab-pink)!important;color:#fff!important}.mini{width:auto!important;padding:7px 10px!important;font-size:12px}.dispatch-list{display:grid;gap:16px}.dispatch-card{overflow:visible}.dispatch-code{font-family:var(--font-mono);color:var(--accent);font-size:12px;margin-bottom:6px}.dispatch-meta{margin-top:7px}.shipping-id{display:inline-block;margin:8px 8px 0 0;padding:8px 11px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-subtle)}.dispatch-items-wrap{margin-top:14px;border-top:1px solid var(--line);padding-top:13px}.dispatch-items-table{min-width:760px}.dispatch-items-table input[type=checkbox],.jobs-table input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.select-tools{margin-bottom:8px}.shipping-form{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-subtle)}.shipping-grid{display:grid;grid-template-columns:repeat(2,minmax(210px,1fr));gap:10px}.shipping-option{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px}.shipping-option[data-type=MENSAJERO],.shipping-option[data-type=PERSONAL]{grid-template-columns:1fr}.transfer-box{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.transfer-box form,.job-transfer-bar{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px;align-items:center}.jobs-layout{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:18px}.jobs-main-card{min-width:0}.job-entry-card{align-self:start;position:sticky;top:90px}.section-toolbar{justify-content:space-between;margin-bottom:12px}.job-transfer-bar{grid-template-columns:auto auto minmax(280px,1fr) auto;margin:12px 0;padding:10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-subtle)}.optic-group-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px 0 8px}.jobs-table{min-width:980px}.table-wrap{overflow-x:auto;max-width:100%}.dispatch-summary{margin:2px 0 4px;font-size:13px;font-weight:700;color:var(--muted)}.dispatch-summary.warning{color:#6b4e12;font-weight:800}@media (max-width:1100px){.jobs-layout{grid-template-columns:1fr}.job-entry-card{position:static}.shipping-grid,.transfer-box{grid-template-columns:1fr}.job-transfer-bar{grid-template-columns:1fr 1fr}.job-transfer-bar select{grid-column:1/-1}.job-transfer-bar button:last-child{grid-column:1/-1}.dispatch-card-head{align-items:flex-start}}@media (max-width:700px){main{padding:18px 10px}.card{padding:14px}.page-head,.dispatch-card-head,.section-toolbar{align-items:stretch;flex-direction:column}.head-actions,.dispatch-row-actions{justify-content:flex-start}.head-actions>*{width:100%}.shipping-grid,.shipping-option,.transfer-box,.transfer-box form,.job-transfer-bar{grid-template-columns:1fr}.dispatch-items-table{min-width:680px}.jobs-table{min-width:860px}.shipping-form button,.transfer-box button{width:100%}.select-tools .mini{flex:1}.notification-panel{top:118px}}.field-mode .grid{align-items:start}.field-action{min-height:48px;font-size:16px}@media (max-width:600px){.field-action{width:100%}}.field-mode input,.field-mode select,.field-mode textarea{font-size:16px}.field-mode button,.field-mode .button,.field-mode a.map-link,.field-mode a.button,.field-mode .btn-link{min-height:44px}@media (max-width:600px){.field-mode .grid{grid-template-columns:1fr}.field-mode .grid>.card:first-of-type.field-secondary{order:2}.field-mode .grid>.card.field-primary{order:1}}.app-shell{display:flex;min-height:100vh;align-items:stretch}.sidebar{width:230px;flex-shrink:0;display:flex;flex-direction:column;padding:20px 14px;border-right:1px solid var(--line);position:sticky;top:0;align-self:flex-start;height:100vh;overflow-y:auto;background:var(--panel)}.sidebar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding:0 6px}.sidebar-head .sidebar-brand,.mobile-topbar .sidebar-brand{margin-bottom:0;padding:0}.sidebar-brand{display:block;margin-bottom:14px;padding:0 6px}.sidebar-close{display:none}.sidebar nav{display:flex;flex-direction:column;gap:2px;margin-left:0;flex-wrap:nowrap}.sidebar nav a{padding:10px;border-radius:8px;color:var(--text);font-weight:600;transition:background .12s ease}.sidebar nav a:hover{background:var(--surface-subtle)}.sidebar nav a.active{background:var(--surface-subtle);color:var(--optilab-navy)}.app-content{flex:1;min-width:0}.mobile-topbar,.sidebar-overlay,.hamburger{display:none}@media (max-width:900px){.app-shell{flex-direction:column}.mobile-topbar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#f4f4f2ee;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:40}.mobile-topbar .notification-shell{margin-left:auto;flex-shrink:0}.mobile-topbar .notification-panel{position:fixed;left:10px;right:10px;top:64px;width:auto;margin-left:0}.hamburger{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:38px;height:38px;padding:0;flex-shrink:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer}.hamburger:hover{background:var(--surface-subtle)}.hamburger span{display:block;width:18px;height:2px;background:var(--ink);border-radius:1px}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#2b221d73;z-index:59;animation:sidebar-overlay-in .18s ease}.sidebar{position:fixed;top:0;left:0;height:100vh;width:min(300px,84vw);z-index:60;transform:translate(-100%);transition:transform .22s ease;box-shadow:var(--shadow-lg);border-right:0}.sidebar.is-open{transform:translate(0)}.sidebar-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;background:transparent;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);font-size:13px;cursor:pointer}.sidebar-close:hover{background:var(--surface-subtle)}}@keyframes sidebar-overlay-in{0%{opacity:0}to{opacity:1}}.daily-trend{display:flex;align-items:flex-end;gap:4px;height:140px;padding:10px 4px 0}.daily-bar{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.daily-bar b{font-size:10px;color:var(--text);font-weight:700}.daily-bar span{width:100%;background:var(--optilab-cyan);border-radius:4px 4px 0 0;min-height:2px;margin-top:2px}.daily-bar small{margin-top:4px;font-size:9px;color:var(--muted);white-space:nowrap}.brand-lockup{display:flex;align-items:center;gap:10px;min-width:0}.brand-lockup .brand-mark{display:block;flex-shrink:0;width:34px;height:34px;border-radius:9px}.brand-lockup .brand-text{display:grid;line-height:1.15;min-width:0}.brand-word{font-weight:800;font-size:15px;letter-spacing:.01em;color:var(--ink);white-space:nowrap}.brand-attribution{font-size:10.5px;color:var(--muted);letter-spacing:.02em;white-space:nowrap}.login-page{min-height:100vh;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;padding:48px 20px;background:var(--bg)}.login-page .brand-lockup{flex-direction:column;text-align:center;gap:14px}.login-page .brand-lockup .brand-mark{width:52px;height:52px;border-radius:13px}.login-page .brand-word{font-size:26px;letter-spacing:0}.login-page .brand-attribution{font-size:12.5px}.login-form-card{max-width:380px;width:100%;border-color:var(--line-strong);box-shadow:none}.login-form-card h1{font-size:19px;margin:0 0 4px;font-weight:700}.login-form-card>p{margin:0 0 20px;color:var(--muted);font-size:13px}.login-intro{margin:0 0 22px;color:var(--ink);font-size:14.5px;line-height:1.5;font-weight:500}.login-form-footer{margin:22px 0 0;padding-top:16px;border-top:1px solid var(--line);text-align:center;font-size:13px;color:var(--muted)}.login-form-footer a{color:var(--optilab-navy);font-weight:700}@media (max-width:520px){.login-page{padding:36px 16px;gap:26px}.login-page .brand-lockup .brand-mark{width:46px;height:46px}.login-page .brand-word{font-size:22px}}.topbar{justify-content:flex-end}@media (max-width:900px){.topbar{display:none}}.account-menu{position:relative;display:flex;align-items:center}.account-menu-trigger{width:auto;display:flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);font-weight:600;font-size:13px;cursor:pointer;transition:background .12s ease}.account-menu-trigger:hover{background:var(--surface-subtle);filter:none}.account-avatar{width:28px;height:28px;border-radius:7px;background:var(--optilab-navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;letter-spacing:0}.account-name{display:none;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.topbar .account-name{display:inline}.account-caret{font-size:10px;color:var(--muted)}.account-panel{position:absolute;right:0;top:calc(100% + 8px);min-width:190px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);z-index:500;overflow:hidden;padding:6px;display:grid;gap:2px}.account-panel-item{display:block;width:100%;text-align:left;padding:9px 10px;border-radius:8px;background:transparent;border:0;color:var(--text);font-weight:600;font-size:13px;cursor:pointer}.account-panel-item:hover{background:var(--surface-subtle);filter:none}.mobile-topbar .account-menu-trigger{padding:0;border:0;background:transparent;border-radius:7px}.mobile-topbar .account-menu-trigger:hover{background:transparent}.mobile-topbar .account-caret{display:none}.optic-picker{display:grid;gap:8px}.optic-picker-chips{display:flex;flex-wrap:wrap;gap:6px}.optic-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 10px;border-radius:999px;background:var(--surface-subtle);border:1px solid var(--line-strong);font-size:12.5px;font-weight:600;color:var(--ink)}.optic-chip button{width:auto;padding:0;background:transparent;border:0;color:var(--muted);font-size:12px;line-height:1;cursor:pointer}.optic-chip button:hover{color:var(--optilab-pink)}.optic-picker-suggestions{display:grid;gap:2px;border:1px solid var(--line);border-radius:var(--radius-md);padding:5px;max-height:220px;overflow:auto;background:var(--panel)}.optic-picker-suggestion{width:100%;text-align:left;padding:8px 9px;border-radius:6px;background:transparent;border:0;color:var(--text);font-weight:500;font-size:13px;cursor:pointer}.optic-picker-suggestion:hover{background:var(--surface-subtle);filter:none}.password-field{position:relative;display:flex}.password-field input{padding-right:40px}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:32px;height:32px;padding:0;background:transparent;border:0;color:var(--muted);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center}.password-toggle:hover{background:var(--surface-subtle);border-radius:6px}.error-toasts{top:20px;bottom:auto}.error-toasts .app-toast-icon{background:#b423181f}:root{--control-h:40px;--control-h-sm:32px;--danger:#A13F3F;--danger-ink:#7A2B2B;--danger-tint:rgba(161,63,63,.06);--row-hover:#F7F7F5;--focus:0 0 0 3px rgba(0,46,93,.18)}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1{font-size:26px;line-height:1.2;margin:0 0 6px;text-wrap:balance}h2{font-size:18px;line-height:1.3;text-wrap:balance}h3{font-size:15px;line-height:1.35}.page-head p.muted,.page-head .muted{margin:0;max-width:72ch}button,.btn-link{min-height:var(--control-h);border-radius:8px;font-size:14px;font-weight:600;letter-spacing:0;line-height:1.2;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,filter .15s ease}button:disabled,button[disabled]{opacity:.5;cursor:not-allowed;filter:none!important;transform:none!important}button:focus-visible,.btn-link:focus-visible,.map-link:focus-visible{outline:none;box-shadow:var(--focus)}.secondary{border-color:var(--line-strong)!important;font-weight:600}.mini,.small-btn,.mini-btn,button.mini{min-height:var(--control-h-sm)!important;padding:0 11px!important;font-size:12.5px!important;border-radius:6px!important;font-weight:600!important}.danger-btn{background:var(--panel)!important;color:var(--danger)!important;border:1px solid rgba(161,63,63,.45)!important;font-weight:600}.danger-btn:hover:not(:disabled){background:var(--danger-tint)!important;border-color:var(--danger)!important;filter:none!important}.map-link{display:inline-flex;align-items:center;gap:4px;min-height:var(--control-h-sm);padding:0 10px!important;border-radius:6px;background:var(--panel);color:var(--optilab-navy);border:1px solid var(--line-strong);font-size:12.5px!important;font-weight:600;line-height:1}.map-link:hover{filter:none;background:var(--surface-subtle)}input,select,textarea{border-color:var(--line-strong);border-radius:8px;font-size:14px}input,select{min-height:var(--control-h)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--optilab-navy);box-shadow:var(--focus)}input::placeholder,textarea::placeholder{color:#7c7d80}label{font-size:13px;font-weight:600;color:#56575a}input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;padding:0;accent-color:var(--optilab-navy);cursor:pointer}table{font-size:14px;font-variant-numeric:tabular-nums}th{font-size:11px;font-weight:700;letter-spacing:.05em;color:#6b6c6f;padding:10px 12px;background:var(--panel);border-bottom:1px solid var(--line-strong);white-space:nowrap}td{padding:11px 12px;line-height:1.4}table tr:has(td):hover{background:var(--row-hover)}td b{font-weight:600}td:has(>input[type=checkbox]){width:36px}.table-wrap{border:1px solid var(--line);border-radius:8px}.table-wrap>table th:first-child,.table-wrap>table td:first-child{padding-left:14px}.table-wrap>table tr:last-child td{border-bottom:0}.overdue-row{background:var(--danger-tint)!important;border-left:0!important}tr.overdue-row:hover{background:#a13f3f17!important}.dispatch-card.overdue-row{background:var(--panel)!important;border-color:#a13f3f66!important}.pickup-pending{box-shadow:none;background:#9c6b1f0d}.status-chip{font-size:11px;font-weight:700;letter-spacing:.03em;padding:3px 8px;line-height:1.4}.alert{font-weight:500;font-size:14px;line-height:1.45;border-radius:8px}.alert:not(.error):not(.success){background:#fbf7ee;border-color:#9c6b1f73;color:#5c4012}@media (min-width:701px){.page-head{flex-direction:row;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.head-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px}.head-actions>*{width:auto}.head-actions select{min-width:220px}.section-toolbar{flex-direction:row;align-items:center;justify-content:space-between}.dispatch-card-head{flex-direction:row;align-items:flex-start}.dispatch-row-actions{justify-content:flex-end;margin-bottom:0}}.dispatch-code,.dispatch-code a{font-family:var(--font-mono);font-size:12px;color:#6b6c6f;letter-spacing:0}.dispatch-card{padding:20px 22px}.dispatch-card+.dispatch-card,.dispatch-list>.dispatch-card{margin-bottom:14px}.select-tools .mini{flex:0 0 auto}@media (prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.dispatch-list>*,.grid>*,.scanner-grid>*,.catalog-grid>*,.dispatch-card,.card{min-width:0;max-width:100%}.dispatch-items-wrap .table-wrap{overflow-x:auto}@media (max-width:700px){.dispatch-row-actions{flex-wrap:wrap}.head-actions>button,.head-actions>select{width:100%}h1{font-size:22px}}button.danger,.button.danger{background:var(--panel)!important;color:var(--danger)!important;border:1px solid rgba(161,63,63,.45)!important}button.danger:hover:not(:disabled),.button.danger:hover{background:var(--danger-tint)!important;border-color:var(--danger)!important;filter:none!important}.user-actions button,.user-action-btn{min-height:30px!important}.app-dialog{width:min(440px,calc(100vw - 32px));padding:0;border:1px solid var(--line-strong);border-radius:12px;background:var(--panel);color:var(--text);box-shadow:0 18px 48px -12px #0b1c3359}.app-dialog::backdrop{background:#171a1f73}.app-dialog form{display:grid;gap:14px;padding:22px 22px 18px}.app-dialog h2{margin:0;font-size:17px}.app-dialog-message{margin:0;font-size:14.5px;line-height:1.5;color:var(--text);white-space:pre-line}.app-dialog-error{color:var(--danger);font-size:12.5px;font-weight:600}.app-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.app-dialog-actions button{width:auto;min-width:110px;padding:0 16px}.app-dialog .danger-solid{background:var(--danger);color:#fff}.app-dialog .danger-solid:hover{filter:brightness(1.08)}@media (max-width:520px){.app-dialog-actions{flex-direction:column-reverse}.app-dialog-actions button{width:100%}}@media (prefers-reduced-motion:no-preference){.app-dialog[open]{animation:app-dialog-in .16s cubic-bezier(.22,1,.36,1)}}@keyframes app-dialog-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}td.row-actions{white-space:nowrap}td.row-actions>button{margin:2px 4px 2px 0;vertical-align:middle}form.inline-assign{display:flex;gap:6px;align-items:center;flex-wrap:nowrap}form.inline-assign select{flex:1;min-width:150px}form.inline-assign>button{width:auto;flex:0 0 auto}.attention-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 12px}.attention-item{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.attention-item b{grid-row:1/3;font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;color:#6b6c6f;line-height:1}.attention-item span{font-size:14px;color:var(--muted)}.attention-item.is-danger{border-color:#a13f3f73;background:var(--danger-tint)}.attention-item.is-danger b{color:var(--danger)}.attention-item.is-danger span{color:var(--danger-ink);font-weight:600}.attention-item.is-info{border-color:#002e5d4d;background:#002e5d0a}.attention-item.is-info b{color:var(--optilab-navy)}.attention-item.is-info span{color:var(--optilab-navy);font-weight:600}.kpi-trend .daily-bar{max-width:64px}.attention-link{font-size:13px;font-weight:600;color:var(--optilab-navy);text-decoration:underline;text-underline-offset:2px;justify-self:start}.metric-panel{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));background:var(--panel);border:1px solid var(--line);border-radius:10px;margin:0 0 18px}.metric-panel>div{padding:14px 16px;border-left:1px solid var(--line);display:grid;gap:4px}.metric-panel>div:first-child{border-left:0}.metric-panel b{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.1}.metric-panel span{font-size:12.5px;color:var(--muted)}.code-link{font-family:var(--font-mono);font-size:12.5px;color:var(--optilab-navy);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}.code-link:hover{text-decoration-color:currentColor}.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.kpi-grid .kpi-trend{grid-column:1/-1}.kpi-grid .section-head{flex-direction:row;align-items:baseline}.compact-table{min-width:0}th.num,td.num{text-align:right}@media (max-width:1100px){.metric-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-panel>div:nth-child(4){border-left:0}.metric-panel>div:nth-child(n+4){border-top:1px solid var(--line)}}@media (max-width:800px){.attention-strip,.kpi-grid{grid-template-columns:1fr}}@media (max-width:520px){.metric-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-panel>div{border-left:0;border-top:1px solid var(--line)}.metric-panel>div:nth-child(-n+2){border-top:0}.metric-panel>div:nth-child(2n){border-left:1px solid var(--line)}}.my-route{max-width:720px}.stop-list{display:grid;gap:12px;margin-bottom:22px}.stop-list h2{margin:4px 0 0;font-size:16px}.stop-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:6px}.stop-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.stop-head h3{margin:0;font-size:17px;line-height:1.3}.stop-location{margin:0;font-size:15px;line-height:1.45;color:var(--text)}.stop-meta{margin:0;font-size:13px;color:var(--muted)}.mono{font-family:var(--font-mono);font-size:12.5px}.stop-actions{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}.stop-actions .btn-link{min-height:48px;font-size:15px}.stop-actions .field-action{background:var(--optilab-navy);color:#fff;border-color:var(--optilab-navy)}.stop-maps{padding:0 18px;background:var(--panel);color:var(--optilab-navy);border:1px solid var(--line-strong);width:auto}.stop-empty{margin:0;padding:18px;border:1px dashed var(--line-strong);border-radius:12px;text-align:center}@media (max-width:420px){.stop-actions{grid-template-columns:1fr}.stop-maps{width:100%}}.my-route .page-head{margin-bottom:14px}.stop-actions .field-action.is-done{background:var(--panel);color:var(--optilab-navy);border:1px solid var(--line-strong)}.history-filter-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;padding:12px 14px;margin:0 0 14px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.filter-bar label{flex:1 1 180px;max-width:320px}.filter-bar label:first-child{flex-basis:240px}.filter-bar>button{width:auto}.filter-count{margin-left:auto;font-size:13px;align-self:center}@media (max-width:700px){.filter-bar label{max-width:none}.filter-count{margin-left:0}}
