:root{color-scheme:light;--ink:#171719;--muted:#69666a;--paper:#f6f4f3;--card:#fff;--line:#e7dfe1;--green:#791f3a;--green-dark:#591329;--lime:#f4c928;--red:#a62f2f;--amber:#94651b;--burgundy-soft:#f6e8ed;--yellow-soft:#fff5c9;--shadow:0 18px 45px rgba(47,15,27,.08);font-family:'DM Sans',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);min-height:100vh}.topbar{height:76px;padding:0 clamp(18px,5vw,72px);display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:#fff}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;font:800 17px Manrope,sans-serif;letter-spacing:-.4px}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:11px;background:var(--lime);color:var(--ink);font:800 21px Manrope}.brand small{display:block;font:700 9px 'DM Sans',sans-serif;letter-spacing:2px;color:#d9c4cc;margin-top:2px}.top-actions{display:flex;align-items:center;gap:16px}.connection{font-size:12px;color:#f0e9ec;display:flex;align-items:center;gap:7px}.connection i{display:block;width:7px;height:7px;border-radius:50%;background:#f4c928}.sync-state{font:600 11px system-ui,sans-serif;color:#f4c928;max-width:220px;background:transparent;border:0;padding:0;text-align:left;cursor:pointer}.sync-state:empty{display:none}.connection.offline i{background:#ffb25c}.quiet-button,.secondary-button,.primary-button,.back-button,.icon-button{font:600 14px 'DM Sans',sans-serif;cursor:pointer;border:0}.quiet-button{color:#fff;background:#4c1629;border-radius:10px;padding:10px 14px}.app-shell{max-width:1180px;margin:0 auto;padding:clamp(22px,5vw,60px) clamp(16px,4vw,40px) 70px}.hidden{display:none!important}.login-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,8vw,110px);align-items:center;min-height:calc(100vh - 190px)}.intro-panel h1,.page-heading h1{font:800 clamp(40px,6vw,68px)/1.06 Manrope,sans-serif;letter-spacing:-2.8px;margin:18px 0}.intro-panel h1 em{font-style:normal;color:var(--green)}.muted{color:var(--muted);line-height:1.55}.intro-copy{font-size:17px;max-width:390px;margin-bottom:38px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--green);margin:0 0 9px}.feature-line{display:flex;align-items:center;gap:17px;padding:15px 0;border-top:1px solid var(--line);font-size:14px;font-weight:600;max-width:390px}.feature-line span:first-child{font:700 11px Manrope;color:#819086}.panel{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:clamp(24px,4vw,38px);box-shadow:var(--shadow)}.login-card{max-width:450px;width:100%;justify-self:end}.panel-heading{margin-bottom:28px}.panel-heading h2,.section-heading h2,.modal-heading h2{font:800 26px Manrope,sans-serif;letter-spacing:-.7px;margin:0}.panel-heading .muted{font-size:13px;margin-bottom:0}.login-card label,.manual-entry label{display:block;font-size:12px;font-weight:700;margin:17px 0 8px}.login-card input,.manual-row input{width:100%;border:1px solid #e1d5da;border-radius:11px;padding:14px 13px;background:#fdfbfc;color:var(--ink);font:500 14px 'DM Sans',sans-serif;outline:none}.login-card input:focus,.manual-row input:focus{border-color:var(--green);box-shadow:0 0 0 3px #791f3a1c}.primary-button{background:var(--green);color:white;border-radius:11px;padding:15px 17px;display:flex;justify-content:space-between;align-items:center;gap:16px}.primary-button:hover{background:var(--green-dark)}.full-width{width:100%;margin-top:24px}.feedback{font-size:13px;min-height:18px;color:var(--red);line-height:1.4}.feedback.success{color:var(--green)}.small-note{font-size:11px;color:#8b968f;line-height:1.5}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}.page-heading h1{font-size:clamp(34px,4.6vw,51px);letter-spacing:-2px;margin:8px 0}.page-heading .muted{margin:0}.secondary-button{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 15px;color:var(--ink);white-space:nowrap}.secondary-button:hover{border-color:#cda9b5}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:40px}.summary-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px}.summary-label{display:block;font-size:12px;color:var(--muted);margin-bottom:12px}.summary-card strong{font:800 32px Manrope,sans-serif;letter-spacing:-1px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-heading h2{font-size:20px}.small-text{font-size:11px}.service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.service-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:21px;cursor:pointer;text-align:left;width:100%;color:inherit;transition:transform .15s,border-color .15s;box-shadow:0 5px 20px #17171905}.service-card:hover{transform:translateY(-2px);border-color:#cda9b5}.service-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}.service-code{font:800 14px Manrope,sans-serif;letter-spacing:.1px}.status-pill{font-size:10px;font-weight:700;padding:6px 9px;border-radius:999px;background:#f0edef;color:#575157;white-space:nowrap}.status-pill.in_progress{background:#f6e8ed;color:#791f3a}.status-pill.assigned{background:#fff5c9;color:#785b00}.route-point{display:grid;grid-template-columns:18px 1fr;gap:9px;margin:13px 0}.route-marker{width:9px;height:9px;border:2px solid var(--green);border-radius:50%;margin:4px 0 0 3px;position:relative}.route-point:first-of-type .route-marker:after{content:'';position:absolute;top:8px;left:1px;width:2px;height:32px;background:#e7d6dc}.route-point strong{font-size:13px;display:block}.route-point small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.card-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eee8eb;margin-top:18px;padding-top:14px;font-size:12px;color:var(--muted)}.card-footer b{color:var(--green)}.empty-state{padding:48px 20px;text-align:center;background:#fff;border:1px dashed #d9c8cf;border-radius:17px}.empty-icon{margin:auto;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff5c9;color:var(--green);font-size:22px}.empty-state h3{font:700 18px Manrope;margin:15px 0 4px}.empty-state p{font-size:13px;margin:0}.back-button{padding:0;background:transparent;color:var(--green);margin-bottom:24px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.detail-header h1{font:800 clamp(28px,4vw,40px) Manrope;letter-spacing:-1.4px;margin:5px 0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:18px}.location-card,.packages-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:21px}.location-card h3,.packages-panel h2{font:700 16px Manrope;margin:0 0 12px}.location-card .location-name{font-weight:700;font-size:14px}.location-card p{font-size:13px;color:var(--muted);margin:5px 0;line-height:1.5}.packages-panel{padding:0;overflow:hidden}.packages-heading{padding:21px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.packages-heading h2{margin:0}.package-progress{font-size:12px;color:var(--muted)}.package-row{display:flex;align-items:center;gap:12px;padding:15px 21px;border-bottom:1px solid #eef1ee}.package-row:last-child{border-bottom:0}.package-number{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:#f6edf0;font:700 13px Manrope}.package-info{flex:1;min-width:0}.package-info strong{font-size:13px;display:block}.package-info small{font-size:11px;color:var(--muted)}.package-status{font-size:10px;font-weight:700;white-space:nowrap}.package-status.DELIVERED{color:var(--green)}.package-status.PICKED_UP{color:var(--amber)}.package-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.package-actions .primary-button{justify-content:center}.package-actions .secondary-button{padding:15px}.service-finish{width:100%;margin-top:12px;justify-content:center}.action-hint{font-size:12px;color:var(--muted);margin:12px 0}.modal{position:fixed;inset:0;background:#0d1b15d9;z-index:10;display:flex;align-items:center;justify-content:center;padding:16px}.modal-card{background:#fff;width:min(100%,520px);max-height:min(92vh,850px);overflow:auto;border-radius:20px;padding:23px}.modal-heading{display:flex;align-items:center;justify-content:space-between}.modal-heading h2{font-size:23px}.icon-button{background:#f4edf0;border-radius:50%;width:38px;height:38px;font-size:24px;color:var(--ink)}.modal-card>p.muted{font-size:13px}.video-frame{position:relative;background:#0b120e;border-radius:14px;overflow:hidden;aspect-ratio:4/3;display:grid;place-items:center}.video-frame video{width:100%;height:100%;object-fit:cover}.scan-reticle{position:absolute;width:56%;aspect-ratio:1;border:2px solid var(--lime);border-radius:16px;box-shadow:0 0 0 999px #0003;pointer-events:none}.manual-entry{border-top:1px solid var(--line);padding-top:12px}.manual-row{display:flex;gap:8px}.manual-row input{min-width:0}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:12px;padding:13px 18px;box-shadow:var(--shadow);font-size:13px;z-index:20;max-width:calc(100% - 30px)}@media(max-width:760px){.topbar{height:66px;padding:0 17px}.app-shell{padding-top:27px}.login-layout{display:block;min-height:auto}.intro-panel{padding:10px 4px 25px}.intro-panel h1{font-size:45px;letter-spacing:-2px;margin:12px 0}.intro-copy{font-size:14px;margin-bottom:18px}.feature-line{display:none}.login-card{max-width:none;justify-self:auto}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:20px}.page-heading h1{font-size:37px}.summary-grid{gap:8px;margin-bottom:30px}.summary-card{padding:13px 12px}.summary-label{font-size:10px;line-height:1.35;min-height:27px}.summary-card strong{font-size:26px}.service-list{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr;gap:10px}.detail-header{flex-direction:column;gap:10px}.packages-heading{padding:17px}.package-row{padding:13px 15px}.package-status{max-width:82px;text-align:right;white-space:normal}.package-actions{grid-template-columns:1fr}.modal-card{padding:18px}.connection{font-size:0;gap:0}.connection i{width:8px;height:8px}.sync-state{font-size:10px;max-width:120px;text-align:right}.quiet-button{padding:9px 11px}.service-card{padding:18px}}@media(min-width:761px) and (max-width:960px){.login-layout{gap:35px}.service-list{grid-template-columns:1fr}.intro-panel h1{font-size:53px}}

/* Administration portal */
.admin-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:4px 0 16px}.admin-toolbar h2{font:800 23px Manrope,sans-serif;letter-spacing:-.6px;margin:0}.admin-filters{display:flex;gap:8px;flex-wrap:wrap}.admin-filters input,.admin-filters select{min-height:42px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;color:var(--ink);font:500 13px 'DM Sans',sans-serif}.admin-filters input{width:min(320px,55vw)}.admin-service-list{display:grid;gap:10px}.admin-service-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(180px,.9fr);gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px 19px}.admin-service-main .service-card-head{justify-content:flex-start;margin-bottom:9px}.admin-service-main>strong{display:block;font-size:14px}.admin-service-main>small,.admin-service-meta span{display:block;color:var(--muted);font-size:11px;margin-top:6px}.admin-service-meta{border-left:1px solid var(--line);padding-left:18px}.status-pill.delivered{background:#f6e8ed;color:#791f3a}.status-pill.pending{background:#f1f1ed;color:#56645a}.status-pill.cancelled{background:#fbe7e5;color:#963a35}@media(max-width:760px){.admin-toolbar{align-items:stretch;flex-direction:column}.admin-filters{display:grid;grid-template-columns:1fr}.admin-filters input{width:100%}.admin-service-row{grid-template-columns:1fr;gap:8px}.admin-service-meta{border-left:0;border-top:1px solid var(--line);padding:9px 0 0}.admin-service-meta span{overflow-wrap:anywhere}}


/* TransVoltant brand system: black, yellow and burgundy */
.topbar{background:var(--ink);border-bottom:3px solid var(--lime)}.brand-mark{background:var(--lime);color:var(--ink);border-radius:9px}.eyebrow{color:var(--green)}.primary-button{background:var(--green);box-shadow:0 5px 14px rgba(121,31,58,.14)}.primary-button:hover{background:var(--green-dark);transform:translateY(-1px)}.primary-button:focus-visible,.secondary-button:focus-visible,.quiet-button:focus-visible,.back-button:focus-visible,.icon-button:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.login-card input:focus,.manual-row input:focus{border-color:var(--green);box-shadow:0 0 0 3px #791f3a1c}.summary-card{position:relative;overflow:hidden;transition:transform .16s,border-color .16s,box-shadow .16s}.summary-card:before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:var(--lime)}.summary-card:hover{transform:translateY(-2px);border-color:#d8c1ca;box-shadow:0 12px 28px rgba(47,15,27,.07)}.summary-card strong{color:var(--ink)}.admin-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:12px 0 18px}.admin-toolbar h2{font:800 23px Manrope,sans-serif;letter-spacing:-.6px;margin:0}.admin-filters{display:flex;gap:9px;flex-wrap:wrap}.admin-filters input,.admin-filters select{min-width:190px;max-width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px 13px;color:var(--ink);font:500 13px 'DM Sans',sans-serif}.admin-filters input:focus,.admin-filters select:focus{outline:3px solid #f4c92866;border-color:var(--green)}.admin-service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-service-list:empty{display:none}.status-pill.delivered{background:var(--burgundy-soft);color:var(--green)}.status-pill.cancelled{background:#f7e6e4;color:#a62f2f}.empty-icon{background:var(--yellow-soft);color:var(--green)}.route-marker{border-color:var(--green)}.card-footer b{color:var(--green)}.back-button:hover{color:var(--green-dark)}.sync-state{color:var(--lime)}.scan-reticle{border-color:var(--lime)}.toast{border-top:3px solid var(--lime)}
@media(max-width:760px){.admin-toolbar{align-items:stretch;flex-direction:column}.admin-filters{display:grid;grid-template-columns:1fr}.admin-filters input,.admin-filters select{width:100%;min-width:0}.admin-service-list{grid-template-columns:1fr}.summary-card:before{width:3px}.panel{border-radius:18px}}


/* Brand refinement: black + yellow lead; burgundy is an accent only. */
:root{--ink:#111112;--muted:#626166;--paper:#f5f5f2;--card:#fff;--line:#e2e2dc;--green:#f4c928;--green-dark:#dfb514;--lime:#ffd92e;--burgundy:#791f3a;--burgundy-soft:#f4e9ed;--yellow-soft:#fff6c7;--shadow:0 18px 45px rgba(17,17,18,.08)}
.topbar{background:#111112;border-bottom:4px solid #f4c928}
.brand small{color:#f4c928}
.intro-panel h1 em,.eyebrow{color:#8a2442}
.primary-button{background:#f4c928;color:#111112;box-shadow:0 5px 14px rgba(17,17,18,.12)}
.primary-button:hover{background:#dfb514;color:#111112}
.secondary-button{background:#791f3a;color:#fff}
.quiet-button{background:#29292c;border:1px solid #f4c928;color:#fff}
.login-card input:focus,.manual-row input:focus{border-color:#d5aa00;box-shadow:0 0 0 3px #f4c92855}
.admin-filters input:focus,.admin-filters select:focus{outline:3px solid #f4c92866;border-color:#d5aa00}
.status-pill.in_progress{background:#fff0a6;color:#4e3d00}
.status-pill.assigned{background:#fff6c7;color:#594600}
.status-pill.delivered{background:#f1f1ed;color:#343434}
.route-marker{border-color:#d2a900}
.card-footer b,.back-button{color:#791f3a}
.empty-icon{background:#fff1a0;color:#111112}
.scan-reticle{border-color:#ffd92e}
.toast{border-top:3px solid #f4c928}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.admin-service-row-button{width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s}.admin-service-row-button:hover,.admin-service-row-button:focus-visible{border-color:var(--yellow);box-shadow:0 8px 24px rgba(0,0,0,.08);outline:none;transform:translateY(-1px)}.admin-assignment form{display:grid;gap:10px;max-width:520px}.admin-assignment select{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;color:var(--ink);font:500 14px 'DM Sans',sans-serif}.admin-assignment .primary-button{justify-self:start}
/* Administración de usuarios y recursos: negro/amarillo principales, granate secundario. */
.admin-heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.management-form{display:grid;gap:9px;align-content:start}.management-form h2{margin:0 0 5px;font-size:18px}.management-form input,.management-form select{min-height:42px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;color:var(--ink);font:500 14px 'DM Sans',sans-serif}.management-form input:focus,.management-form select:focus{outline:3px solid #f4c92866;border-color:var(--lime)}.management-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.management-list-grid>.panel{min-width:0}.management-list{display:grid;gap:8px}.management-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.management-row-info{min-width:0;display:grid;gap:5px}.management-row-info strong{overflow-wrap:anywhere}.management-row-info small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.management-row .quiet-button{flex-shrink:0;border:1px solid var(--line);border-radius:8px;padding:8px 10px}.management-form .primary-button{margin-top:6px}.admin-heading-actions .primary-button{background:var(--lime);color:var(--ink);box-shadow:none}.admin-heading-actions .primary-button:hover{background:#e3b900}@media(max-width:760px){.management-grid,.management-list-grid{grid-template-columns:1fr}.admin-heading-actions{align-items:stretch;flex-direction:column}.admin-heading-actions button{width:100%}.management-row{align-items:flex-start}.management-row .quiet-button{white-space:nowrap}}


/* Portal de clientes: misma identidad TransVoltant, orientada a trazabilidad. */
.client-welcome{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:6px 0 28px}.client-welcome h1{font:800 clamp(32px,4vw,45px) Manrope,sans-serif;letter-spacing:-1.6px;margin:7px 0 10px;color:var(--ink)}.client-welcome h1 span{color:var(--burgundy)}.client-welcome p.muted{max-width:650px;line-height:1.65}.client-summary-grid{margin-bottom:34px}.client-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 17px}.client-toolbar h2{font:800 23px Manrope,sans-serif;letter-spacing:-.6px;margin:0}.client-filters{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.client-filters input,.client-filters select{min-height:42px;min-width:190px;max-width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;color:var(--ink);font:500 13px 'DM Sans',sans-serif}.client-filters input:focus,.client-filters select:focus{outline:3px solid #f4c92866;border-color:#d5aa00}.client-order-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.client-order-card{width:100%;min-width:0;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px;color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}.client-order-card:hover,.client-order-card:focus-visible{transform:translateY(-1px);border-color:#d6b600;box-shadow:0 10px 28px #1111110b;outline:0}.client-order-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px}.client-order-code{font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--muted)}.client-order-card>strong{display:block;font-size:15px;overflow-wrap:anywhere}.client-status{display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:7px 10px;border-radius:999px;background:#f0f0ed;color:#454549;font-size:11px;font-weight:800;line-height:1.25;text-align:center}.client-status.pending{background:#fff3b5;color:#594600}.client-status.accepted,.client-status.delivered{background:#e8f3e8;color:#23552a}.client-status.rejected,.client-status.cancelled{background:#f4e9ed;color:#791f3a}.client-status.in_progress{background:#fff0a6;color:#4e3d00}.client-status.assigned{background:#fff6c7;color:#594600}.client-route{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;margin:19px 0 16px}.client-route>span:not(.route-arrow){font-size:13px;font-weight:700;overflow-wrap:anywhere}.client-route small{display:block;font-size:9px;letter-spacing:.09em;color:var(--muted);margin-bottom:6px}.route-arrow{color:var(--burgundy);font-size:19px}.client-order-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:13px;font-size:11px;color:var(--muted)}.client-order-bottom b{color:var(--ink);white-space:nowrap}.client-no-results{grid-column:1/-1}.client-request-form{display:grid;gap:15px;max-width:1000px}.client-form-section{padding:24px}.client-form-title{display:flex;gap:13px;align-items:flex-start;margin-bottom:22px}.client-form-title>span{display:grid;place-items:center;flex:0 0 37px;height:37px;border-radius:10px;background:var(--yellow-soft);color:var(--ink);font-weight:800}.client-form-title h2{font:800 19px Manrope,sans-serif;margin:0 0 5px}.client-form-title p{font-size:12px;margin:0}.client-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.client-form-grid label,.client-request-form>section>label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#353539}.client-form-grid input,.client-form-grid textarea,.client-request-form>section>input{width:100%;min-width:0;min-height:43px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;color:var(--ink);font:500 14px 'DM Sans',sans-serif}.client-form-grid textarea{resize:vertical}.client-form-grid input:focus,.client-form-grid textarea:focus,.client-request-form>section>input:focus{outline:3px solid #f4c92855;border-color:#d5aa00}.client-form-grid .full-span{grid-column:1/-1}.package-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.client-submit-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:4px 0 20px}.client-submit-row .small-note{max-width:600px;line-height:1.6}.client-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin:4px 0 23px}.client-detail-heading h1{font:800 clamp(30px,4vw,42px) Manrope,sans-serif;letter-spacing:-1px;margin:7px 0}.client-detail-heading .client-status{margin-top:12px}.client-detail-notice{padding:17px 19px;border:1px solid var(--line);border-left:4px solid var(--burgundy);border-radius:13px;background:#fff;margin-bottom:17px}.client-detail-notice.notice-pending{border-left-color:var(--lime);background:#fffdf4}.client-detail-notice strong{font-size:14px}.client-detail-notice p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.client-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.client-location-card h2,.client-package-summary h2,.client-timeline h2{font:800 18px Manrope,sans-serif;margin:8px 0}.client-location-card>p:not(.eyebrow){font-size:13px;line-height:1.65;overflow-wrap:anywhere}.client-package-summary{display:flex;justify-content:space-between;gap:22px;align-items:center;margin-top:14px}.client-package-stats{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.client-package-stats b{color:var(--ink)}.client-timeline{margin-top:14px}.timeline-row{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line)}.timeline-dot{flex:0 0 12px;height:12px;border-radius:50%;background:#ddd;margin-top:3px;box-shadow:0 0 0 4px #f3f3ef}.timeline-dot.complete{background:var(--lime)}.timeline-dot.reviewed{background:var(--burgundy)}.timeline-row>div{display:grid;gap:5px}.timeline-row strong{font-size:13px}.timeline-row small{font-size:11px;color:var(--muted)}.client-detail-content>.primary-button{margin:0 0 20px}.client-detail-screen .small-note{line-height:1.6}
@media(max-width:760px){.client-welcome{align-items:stretch;flex-direction:column}.client-welcome>.primary-button{width:100%}.client-toolbar{align-items:stretch;flex-direction:column}.client-filters{display:grid;grid-template-columns:1fr}.client-filters input,.client-filters select{width:100%;min-width:0}.client-order-list{grid-template-columns:1fr}.client-order-card{padding:16px}.client-route{gap:7px}.client-order-bottom{align-items:flex-start;flex-direction:column}.client-form-section{padding:18px}.client-form-grid,.package-fields,.client-detail-grid{grid-template-columns:1fr}.client-form-grid .full-span{grid-column:auto}.client-submit-row{align-items:stretch;flex-direction:column}.client-submit-row .primary-button{width:100%}.client-detail-heading{flex-direction:column}.client-detail-heading .client-status{margin-top:0}.client-package-summary{align-items:flex-start;flex-direction:column}.client-package-stats{display:grid;gap:9px}}


/* Cola de revisión de solicitudes: la aceptación crea el servicio operativo. */
.review-section{margin-top:42px;padding-top:30px;border-top:1px solid var(--line)}.review-section .client-toolbar h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.review-count{display:inline-flex;padding:6px 9px;border-radius:999px;background:var(--yellow-soft);font:700 10px 'DM Sans',sans-serif;letter-spacing:0;color:#594600}.review-section .client-toolbar>.client-filters{align-items:center}.review-request-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.review-request-card{min-width:0;padding:22px}.review-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.review-card-head h3{font:800 18px Manrope,sans-serif;overflow-wrap:anywhere;margin:5px 0}.review-card-head small{color:var(--muted);font-size:11px}.review-card-head .client-status{flex-shrink:0}.review-route{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;margin:23px 0 17px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.review-route>div{display:grid;gap:5px;min-width:0}.review-route small{font-size:9px;letter-spacing:.09em;color:var(--muted)}.review-route strong{font-size:13px;overflow-wrap:anywhere}.review-route span:not(.route-arrow){font-size:11px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}.review-package-line{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:11px;color:var(--muted);margin-bottom:18px}.review-package-line strong{color:var(--ink)}.review-note-label{display:block;font-size:11px;font-weight:700;margin-bottom:7px}.review-note{display:block;width:100%;resize:vertical;min-height:64px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:500 12px 'DM Sans',sans-serif;color:var(--ink)}.review-note:focus{outline:3px solid #f4c92855;border-color:#d5aa00}.review-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.review-actions .primary-button,.review-actions .secondary-button{font-size:12px;padding:11px 13px}.review-actions .primary-button{background:var(--lime);color:var(--ink)}.review-actions .primary-button:hover{background:#e3b900}.review-actions button:disabled{opacity:.55;cursor:wait}.review-decision-note{padding:12px;background:#faf7f7;border-radius:9px;font-size:12px;line-height:1.5}.review-result{font-size:12px;color:var(--muted);margin-bottom:0}@media(max-width:760px){.review-request-list{grid-template-columns:1fr}.review-section .client-toolbar{gap:12px}.review-route{gap:7px}.review-actions{display:grid;grid-template-columns:1fr}.review-actions button{width:100%;justify-content:center}}

/* Journey planning and creation */
.journey-management { margin: 1.5rem 0 2rem; }
.journey-create-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; align-items: end; margin: 1.25rem 0; }
.journey-create-form label { display: grid; gap: .45rem; color: var(--muted, #777); font-size: .82rem; }
.journey-create-form input, .journey-create-form select { width: 100%; min-width: 0; }
.journey-list { display: grid; gap: .6rem; }
.journey-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; border: 1px solid var(--line, #e4e4e7); border-radius: 12px; }
.journey-row > div { display: grid; gap: .25rem; }
.journey-row > div span { color: var(--muted, #777); font-size: .88rem; }
@media (max-width: 850px) { .journey-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .journey-create-form { grid-template-columns: 1fr; } .journey-row { align-items: flex-start; } }
.driver-journey-panel { margin: 0 0 2rem; }
.driver-journey-list { display: grid; gap: .65rem; }
.driver-journey-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; background: var(--card); border: 1px solid var(--line); border-radius: 14px; }
.driver-journey-row > div { display: grid; gap: .35rem; }
.driver-journey-row > div span { color: var(--muted); font-size: .85rem; }
.driver-journey-row .primary-button { padding: .7rem .9rem; }
.driver-journey-row .primary-button:disabled { cursor: not-allowed; opacity: .55; }
.journey-create-form input, .journey-create-form select { min-height: 44px; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: #fff; color: var(--ink); font: 500 14px 'DM Sans', sans-serif; }
@media (max-width: 520px) { .driver-journey-row { align-items: flex-start; flex-direction: column; } .driver-journey-row .primary-button { width: 100%; justify-content: center; } }


/* Vista previa de etiquetas QR: diseño neutro, listo para ajustar al hardware térmico. */
.label-preview-panel { margin-top: 1rem; }
.label-preview-panel .packages-heading { align-items: center; }
.label-preview-panel .packages-heading > div { display: grid; gap: .35rem; }
.label-preview-panel .packages-heading h2 { margin: 0; }
.label-preview-panel .packages-heading .small-note { margin: 0; }
#label-print-root { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 12px; }
.package-label { box-sizing: border-box; display: flex; align-items: center; gap: 8px; min-width: 0; width: 100%; max-width: 390px; min-height: 170px; padding: 12px; border: 1px dashed #a4a4a4; border-radius: 8px; background: #fff; color: #111; }
.package-label-qr { display: block; flex: 0 0 112px; width: 112px; height: 112px; object-fit: contain; image-rendering: pixelated; }
.package-label-copy { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 5px; overflow-wrap: anywhere; }
.label-logo { display:block; width:100%; max-width:72px; height:17px; object-fit:contain; object-position:left center; }
.label-manual-caption { font-size:8px; font-weight:700; letter-spacing:.04em; color:#555; }
.label-manual-code { font:800 15px/1.05 Manrope,sans-serif; letter-spacing:.04em; color:#111; }
.label-service-code { font-size: 12px; font-weight: 700; }
.label-package-number { font-size: 15px; line-height: 1.2; }
.label-instruction { font-size: 9px; line-height: 1.3; color: #444; }
@media(max-width: 520px) { .label-preview-panel .packages-heading { align-items: stretch; flex-direction: column; } .label-preview-panel .packages-heading button { width: 100%; } #label-print-root { grid-template-columns: 1fr; } .package-label { max-width: none; } }
@media print {
  @page { size: 58mm 40mm; margin: 1.5mm; }
  html, body { width: 58mm !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; background: #fff !important; overflow: visible !important; }
  body.printing-labels > *:not(#label-print-root) { display: none !important; }
  body.printing-labels > #label-print-root { display: block !important; position: static !important; inset: auto !important; width: 55mm !important; max-width: 55mm !important; margin: 0 !important; padding: 0 !important; }
  body.printing-labels #label-print-root .package-label { display: flex !important; box-sizing: border-box !important; width: 55mm !important; max-width: 55mm !important; height: 37mm !important; min-height: 37mm !important; margin: 0 !important; padding: 1mm !important; gap: 1mm !important; border: 0 !important; border-radius: 0 !important; break-inside: avoid !important; page-break-inside: avoid !important; break-after: page; page-break-after: always; overflow: hidden !important; }
  body.printing-labels #label-print-root .package-label:last-child { break-after: auto !important; page-break-after: auto !important; }
  body.printing-labels #label-print-root .package-label-qr { flex: 0 0 25mm !important; width: 25mm !important; height: 25mm !important; }
  body.printing-labels #label-print-root .package-label-copy { gap: 1mm !important; }
  body.printing-labels #label-print-root .label-logo { max-width:16mm !important; height:4mm !important; }
  body.printing-labels #label-print-root .label-manual-caption { font-size:5pt !important; }
  body.printing-labels #label-print-root .label-manual-code { font-size:8pt !important; }
  body.printing-labels #label-print-root .label-service-code { font-size: 7pt !important; }
  body.printing-labels #label-print-root .label-package-number { font-size: 9pt !important; }
  body.printing-labels #label-print-root .label-instruction { font-size: 5pt !important; }
}

/* Official TransVoltant V logo in the application header */
.brand-logo{display:block;width:76px;height:36px;object-fit:contain;object-position:left center;flex:0 0 auto}.brand{gap:13px}.brand-logo+span{line-height:1.05}@media(max-width:760px){.brand-logo{width:62px;height:31px}.brand{gap:9px}}

/* Identidad corporativa en la pantalla de acceso */
.login-brand{display:flex;align-items:center;gap:18px;margin:0 0 26px;color:var(--ink);font:800 clamp(28px,4vw,42px)/1.05 Manrope,sans-serif;letter-spacing:-1.5px}.login-brand img{display:block;width:100px;height:86px;object-fit:contain;object-position:left center}.login-brand span{display:block}@media(max-width:760px){.login-brand{gap:13px;font-size:32px;margin-bottom:20px}.login-brand img{width:76px;height:68px}}

.journey-history { margin: 0 0 2rem; }
.journey-history-filters { margin: 0 0 12px; }
.journey-management .journey-row { flex-wrap: wrap; }
.journey-history-detail { padding: 9px 12px; }
.journey-detail-overlay { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 18px; background: #17171999; }
.journey-detail-card { width: min(680px, 100%); max-height: 85vh; overflow: auto; background: var(--card); border-radius: 18px; padding: 24px; box-shadow: var(--shadow); }
.journey-detail-card h2 { margin: 8px 0; }
.journey-detail-card li { margin: 8px 0; font-size: 13px; }
.journey-detail-close { float: right; }

/* Collapsible operational sections */
.collapse-section-button { margin-left: auto; align-self: center; border: 1px solid var(--border, #dedee2); border-radius: 9px; padding: 7px 10px; background: transparent; color: var(--text, #29292d); font: inherit; font-size: 12px; cursor: pointer; white-space: nowrap; }
.section-collapsed > :not(:first-child) { display: none !important; }
.section-collapsed > :first-child { margin-bottom: 0; }
.section-collapsed { padding-bottom: 14px !important; }
.journey-review-actions { margin-top: 20px; border-top: 1px solid var(--border, #dedee2); padding-top: 16px; }
.journey-review-actions label { display:block; margin-bottom: 6px; font-weight: 600; }
.journey-review-actions textarea { width: 100%; box-sizing: border-box; resize: vertical; margin-bottom: 12px; }
.journey-review-actions .review-actions { display:flex; gap:10px; flex-wrap:wrap; }
@media (max-width: 640px) { .collapse-section-button { font-size: 11px; padding: 6px 8px; } }

/* Service change traceability */
.service-changes-panel { margin-top: 1.25rem; }
.change-entry { margin: 1rem 0; }
.change-entry > summary { display: inline-flex; cursor: pointer; list-style: none; }
.change-entry > summary::-webkit-details-marker { display: none; }
.change-entry[open] > summary { margin-bottom: .75rem; }
.change-entry form { border: 1px solid var(--border, #dedede); border-radius: 12px; padding: 1rem; }
.form-grid-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.original-snapshot { margin: .75rem 0 1rem; }
.original-snapshot summary { cursor: pointer; font-weight: 600; }
.original-snapshot pre { max-height: 20rem; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; background: var(--surface-secondary, #f5f5f5); padding: .75rem; border-radius: 8px; font-size: .8rem; }
.change-history-list { display: grid; gap: .75rem; }
.change-history-card { border: 1px solid var(--border, #dedede); border-radius: 12px; padding: 1rem; }
.change-history-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.change-values { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: .75rem; margin: .85rem 0; }
.change-values > div { min-width: 0; display: grid; gap: .25rem; }
.change-values small { color: var(--muted, #666); font-size: .7rem; letter-spacing: .06em; }
.change-values strong { overflow-wrap: anywhere; }
.change-review-form { border-top: 1px solid var(--border, #dedede); padding-top: .85rem; margin-top: .85rem; }
.change-review-form .review-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
.review-note { background: var(--surface-secondary, #f5f5f5); border-radius: 8px; padding: .65rem; }
@media (max-width: 600px) { .form-grid-two { grid-template-columns: 1fr; } .change-values { gap: .4rem; } .change-values strong { font-size: .9rem; } .change-review-form .review-actions > button { flex: 1 1 100%; } }

/* Package consolidation UI */
.consolidation-panel { margin-top: 1rem; }
.consolidation-select { border: 1px solid var(--border, #ddd); border-radius: .75rem; padding: .75rem; margin: 0 0 1rem; min-width: 0; }
.consolidation-select legend { padding: 0 .25rem; font-weight: 650; }
.consolidation-option { display: flex; align-items: center; gap: .75rem; padding: .7rem .25rem; border-bottom: 1px solid var(--border, #e5e5e5); cursor: pointer; }
.consolidation-option:last-child { border-bottom: 0; }
.consolidation-option input { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; }
.consolidation-option span { display: grid; gap: .2rem; }
.consolidation-option small, .consolidation-history-row small { color: var(--muted, #666); }
.consolidation-history-row { border: 1px solid var(--border, #ddd); border-radius: .75rem; padding: .9rem; margin-top: .75rem; }
.consolidation-history-row p { margin: .4rem 0; }
.consolidation-source-codes { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .65rem; }
.consolidation-source-codes span { font-size: .8rem; border-radius: 999px; padding: .25rem .55rem; background: var(--surface-muted, #f2f2f2); }

/* Client location book: inline manager embedded in the request form. */
.location-book-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1.5fr) auto;align-items:center;gap:10px;margin:-5px 0 18px;padding:13px;background:#faf9f5;border:1px solid var(--line);border-radius:12px}.location-book-tools>label{font-size:12px;font-weight:700}.location-book-tools select{width:100%;min-width:0;min-height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 11px;color:var(--ink);font:500 13px 'DM Sans',sans-serif}.location-book-panel{max-width:1000px;border:1px solid #e4d9a6;background:#fffefa}.location-book-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.location-book-header h2{font:800 22px Manrope,sans-serif;margin:5px 0}.location-book-header p.muted{font-size:12px;margin:0}.location-book-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:18px;align-items:start}.location-book-list{display:grid;gap:10px}.location-book-card{border:1px solid var(--line);border-radius:12px;padding:13px;min-width:0}.location-book-card-main{display:grid;gap:5px;min-width:0}.location-book-card-main strong{font-size:14px;overflow-wrap:anywhere}.location-book-card-main span{font-size:12px;font-weight:700}.location-book-card-main small{font-size:11px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}.location-book-card-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.location-book-card-actions button{font-size:11px;padding:8px 10px}.location-book-editor{display:grid;gap:12px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff}.location-book-editor>label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#353539}.location-book-editor input,.location-book-editor textarea{width:100%;min-width:0;min-height:41px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px 11px;color:var(--ink);font:500 13px 'DM Sans',sans-serif}.location-book-editor input:focus,.location-book-editor textarea:focus,.location-book-tools select:focus{outline:3px solid #f4c92855;border-color:#d5aa00}.location-book-editor-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.location-book-editor .client-form-grid{gap:11px}.location-book-editor .client-form-grid label{font-size:11px}.location-book-editor .feedback{margin:0;font-size:12px}.location-book-card-actions .quiet-button{border:1px solid var(--line);border-radius:9px}.location-book-tools .secondary-button{white-space:nowrap}@media(max-width:760px){.location-book-tools{grid-template-columns:1fr;align-items:stretch}.location-book-layout{grid-template-columns:1fr}.location-book-card-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.location-book-card-actions button{width:100%;justify-content:center}.location-book-header h2{font-size:19px}.location-book-panel{padding:16px}.location-book-editor{padding:12px}}

/* Client location book: search, quick duplication and usage sorting */
.location-book-list-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.55fr);gap:10px;margin-bottom:12px}
.location-book-list-tools label{display:grid;gap:6px;font-size:11px;font-weight:700;color:#353539}
.location-book-list-tools input,.location-book-list-tools select{width:100%;min-width:0;min-height:40px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 10px;color:var(--ink);font:500 12px 'DM Sans',sans-serif}
.location-book-use-count{color:var(--muted);font-size:10px!important;font-weight:500!important}
.location-book-card-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.location-book-list-tools{grid-template-columns:1fr}.location-book-card-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Complementary service delivery-note QR label and recipient signature capture. */
.document-label { box-sizing:border-box; display:flex; align-items:center; gap:8px; width:100%; max-width:390px; min-height:170px; padding:12px; border:1px dashed #a4a4a4; border-radius:8px; background:#fff; color:#111; }
.document-label-qr { display:block; flex:0 0 112px; width:112px; height:112px; object-fit:contain; image-rendering:pixelated; }
.document-label-copy { display:flex; flex:1; min-width:0; flex-direction:column; gap:6px; overflow-wrap:anywhere; font-size:12px; }
.document-label-copy strong { font-size:15px; }
.delivery-signature-canvas { display:block; width:100%; height:150px; margin:10px 0; border:2px solid #c7c7c7; border-radius:8px; background:#fff; touch-action:none; }
.signature-actions { display:flex; gap:10px; flex-wrap:wrap; }
#delivery-receiver-name { display:block; width:100%; box-sizing:border-box; margin-top:6px; padding:12px; border:1px solid #bbb; border-radius:6px; }
@media print {
  body.printing-labels #label-print-root .document-label { display:flex !important; box-sizing:border-box !important; width:55mm !important; max-width:55mm !important; height:37mm !important; min-height:37mm !important; margin:0 !important; padding:1mm !important; gap:1mm !important; border:0 !important; border-radius:0 !important; break-inside:avoid !important; page-break-inside:avoid !important; break-after:page !important; page-break-after:always !important; overflow:hidden !important; }
  body.printing-labels #label-print-root .document-label-qr { flex:0 0 25mm !important; width:25mm !important; height:25mm !important; }
  body.printing-labels #label-print-root .document-label-copy { gap:1mm !important; font-size:5pt !important; }
  body.printing-labels #label-print-root .document-label-copy strong { font-size:8pt !important; }
  body.printing-labels #label-print-root .document-label-copy .label-logo { max-width:16mm !important; height:4mm !important; }
}
@media print { body.printing-labels #label-print-root .document-label:last-child { break-after:auto !important; page-break-after:auto !important; } }
.deca-form-card { width: min(760px, 100%); }
.deca-create-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; margin-top: 1rem; }
.deca-create-form h3, .deca-create-form .deca-check, .deca-create-form .deca-confirm, .deca-create-form > button, .deca-create-form > .feedback { grid-column: 1 / -1; }
.deca-create-form label:not(.deca-check):not(.deca-confirm) { display: grid; gap: .35rem; font-size: .9rem; }
.deca-create-form input:not([type="checkbox"]), .deca-create-form select, .deca-create-form textarea { width: 100%; min-width: 0; }
.deca-shipment-fields { display: grid; gap: .65rem; margin: .7rem 0 1rem; }
.deca-shipment { border: 1px solid var(--line); border-radius: 12px; padding: .8rem; display: grid; gap: .6rem; }
.deca-shipment > label:not(.deca-check) { display: grid; gap: .3rem; }
.deca-check, .deca-confirm { display: flex; align-items: flex-start; gap: .55rem; }
.deca-check input, .deca-confirm input { margin-top: .25rem; }
.deca-confirm { padding: .8rem; background: var(--surface-soft, #f5f5f5); border-radius: 10px; }
@media (max-width: 600px) { .deca-create-form { grid-template-columns: 1fr; } .deca-create-form h3, .deca-create-form .deca-check, .deca-create-form .deca-confirm, .deca-create-form > button, .deca-create-form > .feedback { grid-column: 1; } }

/* Jornada: separar revisión y creación en vistas excluyentes */
.journey-mode-switch { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0 1.25rem; padding:.3rem; border:1px solid var(--line, #e4e4e7); border-radius:12px; background:var(--surface, #f7f7f8); }
.journey-mode-button { flex:1 1 180px; min-height:42px; padding:.7rem 1rem; border:1px solid transparent; border-radius:9px; background:transparent; color:var(--ink, #222); font:inherit; font-weight:600; cursor:pointer; }
.journey-mode-button.active { background:var(--card, #fff); border-color:var(--line, #e4e4e7); box-shadow:0 1px 3px #0000000d; }
.journey-mode-button:focus-visible { outline:2px solid var(--accent, #a88a28); outline-offset:2px; }
.journey-mode-view[hidden] { display:none !important; }
.journey-mode-view > .muted { margin:.25rem 0 1rem; }

/* Jornada central: zonas de soltado y servicios arrastrables */
.journey-drop-target{transition:border-color .15s,background-color .15s,box-shadow .15s}
.journey-drop-target::after{content:'Suelta aquí un servicio pendiente para asignarlo';display:none;color:var(--muted);font-size:.78rem}
.journey-drop-target.journey-drop-active{border-color:var(--yellow);background:rgba(255,196,0,.12);box-shadow:0 0 0 2px rgba(255,196,0,.25)}
.admin-service-row-button[draggable="true"]{cursor:grab}
.admin-service-row-button[draggable="true"]:active,.admin-service-row-button.service-dragging{cursor:grabbing;opacity:.55}

/* Package photo evidence */
.package-photo-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}.package-photo-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-upload-label{display:inline-flex;align-items:center}.package-photo-figure{margin:.65rem 0}.package-photo-figure img{display:block;max-width:min(100%,420px);max-height:360px;object-fit:contain;border-radius:10px;border:1px solid var(--line)}.package-photo-figure figcaption{font-size:.75rem;color:var(--muted);margin-top:.3rem}.assignment-current{background:#f8f3f5;border:1px solid var(--line);border-radius:10px;padding:12px;margin:12px 0}.assignment-current p{margin:5px 0 10px}.change-entry-body{padding:.75rem 0}.consolidation-entry{margin:0 0 1rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.package-row-evidence{align-items:flex-start}

/* -------------------------------------------------------------------------
   TRANSVOLTANT / OPERATIVA — visual system refresh
   Industrial premium: charcoal surfaces, high-visibility yellow, garnet accents.
   ------------------------------------------------------------------------- */
:root {
  color-scheme: dark;
  --ink: #f2f3f5;
  --muted: #a0a5ad;
  --paper: #111316;
  --card: #1b1e23;
  --line: #30343b;
  --green: #ffd329;
  --green-dark: #e6b900;
  --lime: #ffd329;
  --yellow: #ffd329;
  --yellow-soft: #3a3217;
  --red: #ff7373;
  --amber: #ffd166;
  --burgundy: #8c334a;
  --burgundy-soft: #38212a;
  --shadow: 0 22px 55px rgba(0,0,0,.24);
  --surface-1: #171a1f;
  --surface-2: #20242a;
  --surface-3: #262b32;
  --focus-ring: 0 0 0 3px rgba(255,211,41,.22);
  font-family: 'DM Sans', Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
html { background: var(--paper); scroll-behavior: smooth; }
body {
  position: relative;
  isolation: isolate;
  background: transparent;
  color: var(--ink);
  letter-spacing: -.01em;
}
/* Tres trazos de marca desenfocados detrás de las superficies acrílicas. */
body::before {
  content: "";
  position: fixed;
  inset: -18vh -12vw;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(112deg, transparent 0 23%, rgba(255,211,41,.22) 23.15% 23.65%, transparent 23.8% 100%),
    linear-gradient(112deg, transparent 0 48%, rgba(112,43,58,.38) 48.15% 49.1%, transparent 49.25% 100%),
    linear-gradient(112deg, transparent 0 72%, rgba(238,240,243,.13) 72.15% 72.45%, transparent 72.6% 100%),
    radial-gradient(ellipse at 7% 0%, rgba(112,43,58,.16), transparent 34rem),
    radial-gradient(ellipse at 100% 10%, rgba(255,211,41,.07), transparent 30rem),
    var(--paper);
  filter: saturate(110%);
}
@media (prefers-reduced-motion: no-preference) {
  body::before { animation: brand-backdrop-drift 26s ease-in-out infinite alternate; }
  @keyframes brand-backdrop-drift { from { transform: translate3d(-.5%,0,0); } to { transform: translate3d(.5%,1%,0); } }
}
::selection { background: rgba(255,211,41,.32); color: #fff; }
:focus-visible { outline: 2px solid var(--yellow); outline-offset: 3px; }
button, input, select, textarea { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
button:disabled { cursor: not-allowed !important; opacity: .42; transform: none !important; box-shadow: none !important; }
.topbar {
  position: sticky; top: 0; z-index: 30; height: 72px;
  padding: 0 clamp(18px,4vw,58px);
  background: rgba(19,21,25,.88); border-bottom: 1px solid rgba(255,255,255,.075);
  box-shadow: 0 8px 30px rgba(0,0,0,.12); backdrop-filter: blur(18px) saturate(140%);
}
.brand { gap: 12px; font-size: 16px; letter-spacing: -.55px; }
.brand-logo { width: 36px; height: 36px; object-fit: contain; filter: drop-shadow(0 3px 10px rgba(255,211,41,.12)); }
.brand small { color: #c5c7cb; font-size: 9px; letter-spacing: 2.5px; }
.top-actions { gap: 14px; }
.connection { color: #c7cbd1; font-size: 11px; letter-spacing: .01em; }
.connection i { box-shadow: 0 0 0 4px rgba(255,211,41,.1); }
.sync-state { color: var(--yellow); }
.app-shell { width: min(100%, 1500px); max-width: none; margin: 0 auto; padding: clamp(24px,4vw,52px) clamp(16px,4vw,58px) 76px; }
.hidden { display: none !important; }
.login-layout { min-height: calc(100vh - 160px); gap: clamp(36px,7vw,110px); }
.login-brand { display:flex; align-items:center; gap:13px; margin-bottom:34px; font:800 17px Manrope,sans-serif; letter-spacing:-.4px; }
.login-brand img { width:50px; height:50px; object-fit:contain; padding:9px; border:1px solid rgba(255,211,41,.2); border-radius:15px; background:linear-gradient(145deg,#2a2d32,#17191d); box-shadow:0 10px 30px #0003; }
.eyebrow { color: var(--yellow); font-size:10px; font-weight:800; letter-spacing:2.2px; line-height:1.5; }
.intro-panel h1,.page-heading h1 { color:#f7f7f8; font-weight:800; letter-spacing:-.055em; }
.intro-panel h1 em,.client-welcome h1 span { color:var(--yellow); }
.intro-copy { color:#b5bac2; max-width:440px; font-size:16px; line-height:1.75; }
.feature-line { max-width:440px; border-color:rgba(255,255,255,.09); color:#e4e6e9; padding:16px 0; }
.feature-line span:first-child { display:grid; place-items:center; width:27px; height:27px; border-radius:8px; color:var(--yellow); background:rgba(255,211,41,.09); font-size:10px; }
.panel,.summary-card,.service-card,.admin-service-row,.client-order-card,.location-card,.packages-panel,.empty-state,.journey-detail-card,.modal-card,.location-book-card,.location-book-editor,.deca-shipment,.journey-mode-switch {
  background: linear-gradient(145deg, rgba(34,37,43,.80), rgba(26,29,34,.78));
  -webkit-backdrop-filter: blur(18px) saturate(125%);
  backdrop-filter: blur(18px) saturate(125%);
  border-color:var(--line); color:var(--ink); box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.panel { border-radius:20px; padding:clamp(22px,3vw,34px); }
.login-card { max-width:460px; border-radius:24px; border-color:#373b43; box-shadow:0 28px 80px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.035); }
.panel-heading { margin-bottom:25px; }
.panel-heading h2,.section-heading h2,.modal-heading h2 { color:#f4f5f7; letter-spacing:-.035em; }
.panel-heading .muted,.muted { color:var(--muted); }
.login-card label,.manual-entry label,.client-form-grid label,.client-request-form>section>label,.location-book-editor>label,.management-form label,.deca-create-form label { color:#d8dbe0; }
.login-card input,.manual-row input,.admin-filters input,.admin-filters select,.management-form input,.management-form select,.client-filters input,.client-filters select,.client-form-grid input,.client-form-grid textarea,.client-request-form>section>input,.location-book-tools select,.location-book-editor input,.location-book-editor textarea,.location-book-list-tools input,.location-book-list-tools select,.deca-create-form input:not([type="checkbox"]),.deca-create-form select,.deca-create-form textarea,.journey-review-actions textarea,.journey-review-actions input,.journey-review-actions select,.management-form textarea,.service-changes-panel input,.service-changes-panel select,.service-changes-panel textarea {
  background:#14171b; color:#f0f1f3; border:1px solid #3b4048; border-radius:10px; transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
input:not([type="checkbox"]):not([type="radio"]), select, textarea { color-scheme:dark; }
input::placeholder,textarea::placeholder { color:#747b85; }
.login-card input,.manual-row input { min-height:47px; padding:13px 14px; }
.login-card input:focus,.manual-row input:focus,.admin-filters input:focus,.admin-filters select:focus,.management-form input:focus,.management-form select:focus,.client-filters input:focus,.client-filters select:focus,.client-form-grid input:focus,.client-form-grid textarea:focus,.client-request-form>section>input:focus,.location-book-tools select:focus,.location-book-editor input:focus,.location-book-editor textarea:focus,.location-book-list-tools input:focus,.location-book-list-tools select:focus,.deca-create-form input:focus,.deca-create-form select:focus,.deca-create-form textarea:focus,.service-changes-panel input:focus,.service-changes-panel select:focus,.service-changes-panel textarea:focus { outline:0; border-color:var(--yellow); box-shadow:var(--focus-ring); background:#191c20; }
.primary-button,.secondary-button,.quiet-button,.back-button,.icon-button,.journey-mode-button,.collapse-section-button {
  position:relative; isolation:isolate; border-radius:11px; font-weight:700;
  transition:transform .18s cubic-bezier(.2,.8,.2,1), background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease, filter .18s ease;
}
.primary-button { background:var(--yellow); color:#171719; box-shadow:0 5px 0 rgba(0,0,0,.13), 0 8px 22px rgba(255,211,41,.08); }
.primary-button:hover:not(:disabled) { background:#ffe16a; color:#101114; transform:translateY(-2px); box-shadow:0 7px 0 rgba(0,0,0,.13),0 12px 26px rgba(255,211,41,.13); }
.primary-button:active:not(:disabled) { transform:translateY(0) scale(.99); box-shadow:0 2px 0 rgba(0,0,0,.15); }
.secondary-button { background:#24282e; border:1px solid #3b4048; color:#e7e9ec; }
.secondary-button:hover:not(:disabled) { background:#2d3239; border-color:#656b75; transform:translateY(-1px); box-shadow:0 8px 18px rgba(0,0,0,.15); }
.quiet-button { background:#38212a; color:#f7e9ee; border:1px solid #55303c; }
.quiet-button:hover:not(:disabled) { background:#4a2733; border-color:#8c334a; transform:translateY(-1px); }
.back-button { color:var(--yellow); }
.back-button:hover { color:#ffe889; transform:translateX(-3px); }
.icon-button { background:#2a2e34; color:#f1f2f4; border:1px solid #3d424a; }
.icon-button:hover { background:#383d45; transform:rotate(4deg); }
.full-width { margin-top:22px; }
.feedback { color:#ff9292; }
.feedback.success { color:#f3d45c; }
.small-note { color:#8f96a0; }
.page-heading { margin-bottom:27px; }
.page-heading h1,.client-welcome h1 { font-size:clamp(32px,4vw,48px); letter-spacing:-.055em; line-height:1.08; }
.page-heading .muted { max-width:720px; }
.summary-grid { gap:14px; margin-bottom:34px; }
.summary-card { position:relative; overflow:hidden; min-height:124px; padding:20px 22px; border-radius:16px; transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.summary-card::after { content:""; position:absolute; width:105px; height:105px; right:-45px; bottom:-56px; border:1px solid rgba(255,211,41,.14); border-radius:50%; box-shadow:0 0 0 13px rgba(255,211,41,.025),0 0 0 27px rgba(255,211,41,.018); pointer-events:none; }
.summary-card:hover { transform:translateY(-3px); border-color:#56504a; box-shadow:0 15px 35px rgba(0,0,0,.2); }
.summary-label { color:#a7adb6; font-size:11px; font-weight:700; letter-spacing:.035em; text-transform:uppercase; }
.summary-card strong { color:#fff; font-size:34px; letter-spacing:-.055em; }
.section-heading { gap:16px; margin-bottom:15px; }
.section-heading h2,.client-toolbar h2,.admin-toolbar h2 { font-size:20px; }
.service-list,.client-order-list { gap:14px; }
.service-card,.client-order-card { border-radius:17px; padding:21px; box-shadow:0 7px 22px rgba(0,0,0,.1); transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s ease,box-shadow .22s ease,background .22s ease; }
.service-card:hover,.service-card:focus-visible,.client-order-card:hover,.client-order-card:focus-visible { transform:translateY(-3px); border-color:rgba(255,211,41,.6); box-shadow:0 16px 36px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.025); outline:0; }
.service-card-head { margin-bottom:18px; }
.service-code,.client-order-code { color:#dfe2e6; }
.status-pill,.client-status { background:#30343b; color:#d9dde2; border:1px solid rgba(255,255,255,.055); }
.status-pill.in_progress,.client-status.in_progress { background:rgba(255,211,41,.14); color:#ffe17a; }
.status-pill.assigned,.client-status.assigned { background:rgba(255,211,41,.1); color:#f8dc75; }
.status-pill.pending,.client-status.pending { background:rgba(255,211,41,.12); color:#f8dc75; }
.status-pill.delivered,.client-status.delivered,.client-status.accepted { background:rgba(127,190,143,.13); color:#a8e0b4; }
.status-pill.cancelled,.client-status.cancelled,.client-status.rejected { background:rgba(140,51,74,.24); color:#f0b3c1; }
.route-marker { border-color:var(--yellow); }
.route-point:first-of-type .route-marker:after { background:linear-gradient(var(--yellow),rgba(255,211,41,.08)); }
.route-point strong,.admin-service-main>strong { color:#f1f2f4; }
.route-point small,.admin-service-main>small,.admin-service-meta span { color:#a2a8b1; }
.card-footer { border-color:#33373e; color:#9fa5ae; }
.card-footer b { color:var(--yellow); }
.empty-state { border-style:dashed; border-color:#454a52; padding:52px 22px; }
.empty-icon { background:rgba(255,211,41,.13); color:var(--yellow); }
.empty-state h3 { color:#f2f3f5; }
.back-button { margin-bottom:22px; }
.detail-header h1 { color:#f5f6f7; letter-spacing:-.05em; }
.detail-grid { gap:14px; }
.location-card,.packages-panel { border-radius:16px; }
.location-card h3,.packages-panel h2 { color:#f1f2f4; }
.location-card p { color:#a7adb6; }
.packages-heading { border-color:#343941; }
.package-row { border-color:#30343b; }
.package-number { background:rgba(255,211,41,.11); color:var(--yellow); border:1px solid rgba(255,211,41,.12); }
.package-info strong { color:#f1f2f4; }
.package-info small,.package-progress { color:#9da4ad; }
.package-status.DELIVERED { color:#a8e0b4; }
.package-status.PICKED_UP { color:#f4d36a; }
.assignment-current,.location-book-tools,.location-book-panel,.client-detail-notice,.client-detail-notice.notice-pending,.client-confirmation,.deca-confirm { background:#20242a; border-color:#3b4048; color:#e9ebee; }
.location-book-card-actions .quiet-button { border-color:#454a52; }
.admin-toolbar,.client-toolbar { gap:18px; }
.admin-service-list { gap:10px; }
.admin-service-row { border-radius:14px; padding:18px 20px; transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease; }
.admin-service-row:hover { border-color:#56504a; box-shadow:0 12px 28px rgba(0,0,0,.18); }
.admin-service-meta { border-color:#3a3f47; }
.admin-service-row-button:hover,.admin-service-row-button:focus-visible { border-color:var(--yellow); box-shadow:0 12px 28px rgba(0,0,0,.2); }
.client-welcome { margin:6px 0 28px; }
.client-welcome h1 { color:#f5f6f7; }
.client-welcome h1 span { color:var(--yellow); }
.client-order-card>strong { color:#f2f3f5; }
.client-route small { color:#969da7; }
.route-arrow { color:var(--yellow); }
.client-order-bottom { border-color:#363a42; color:#a3a9b2; }
.client-order-bottom b { color:#e8eaed; }
.client-detail-heading h1 { color:#f5f6f7; }
.client-detail-notice { border-left-color:var(--yellow); }
.client-detail-notice.notice-pending { border-left-color:var(--yellow); }
.client-detail-notice p,.client-location-card>p:not(.eyebrow) { color:#a8aeb7; }
.client-package-stats { color:#a5abb4; }
.client-package-stats b { color:#f0f2f4; }
.timeline-row { border-color:#363a42; }
.timeline-dot { background:#4a5059; }
.timeline-row.completed .timeline-dot { background:var(--yellow); box-shadow:0 0 0 4px rgba(255,211,41,.12); }
.client-form-section { border-radius:17px; }
.client-form-title>span { background:rgba(255,211,41,.12); border:1px solid rgba(255,211,41,.15); color:var(--yellow); }
.client-form-title h2 { color:#f3f4f6; }
.client-form-title p { color:#a4abb4; }
.client-submit-row .small-note { color:#9ca3ad; }
.client-filters input,.client-filters select,.admin-filters input,.admin-filters select { min-height:43px; }
.management-row { border-color:#353a42; }
.management-row-info small { color:#a2a8b1; }
.management-row .quiet-button { border-color:#454a52; }
.management-form h2 { color:#f1f3f5; }
.change-entry-body { color:#e8eaed; }
.change-entry summary { color:#e9ebee; }
.change-entry[open] summary { border-color:var(--yellow); }
.consolidation-entry { border-color:#3a3e45; }
.journey-mode-switch { background:#171a1f; border-color:#353a42; }
.journey-mode-button { color:#b8bec6; }
.journey-mode-button.active { background:#2b2f36; color:#fff; border-color:#414650; box-shadow:0 4px 14px rgba(0,0,0,.18); }
.journey-mode-button:hover:not(.active) { color:#fff; background:#23272d; }
.journey-drop-target.journey-drop-active { border-color:var(--yellow); background:rgba(255,211,41,.1); box-shadow:0 0 0 2px rgba(255,211,41,.18); }
.journey-detail-overlay { background:rgba(5,6,8,.78); backdrop-filter:blur(7px); }
.journey-detail-card { border:1px solid #3b4048; }
.journey-review-actions { border-color:#363a42; }
.deca-shipment { border-color:#3b4048; }
.deca-confirm { background:#252930; }
.location-book-editor { border-color:#3b4048; }
.package-photo-figure img { border-color:#444a53; }
.document-label,.package-label { background:#fff; color:#111; }
.modal { background:rgba(5,6,8,.78); backdrop-filter:blur(8px); animation:tv-fade-in .18s ease both; }
.modal-card { border:1px solid #41464e; border-radius:20px; box-shadow:0 30px 100px rgba(0,0,0,.45); animation:tv-modal-in .24s cubic-bezier(.2,.8,.2,1) both; }
.modal-heading { gap:16px; margin-bottom:12px; }
.video-frame { box-shadow:inset 0 0 0 1px rgba(255,255,255,.08); }
.scan-reticle { border-color:var(--yellow); box-shadow:0 0 0 999px rgba(0,0,0,.45),0 0 28px rgba(255,211,41,.12); }
.toast { background:#252930; border:1px solid #41464e; border-top:3px solid var(--yellow); color:#f5f6f7; box-shadow:0 18px 50px rgba(0,0,0,.38); animation:tv-toast-in .24s cubic-bezier(.2,.8,.2,1) both; }
.connection.offline i { background:#ff9f63; box-shadow:0 0 0 4px rgba(255,159,99,.1); }
.sync-state { color:var(--yellow); }
.driver-journey-row,.journey-row,.journey-history-detail,.consolidation-history-row { border-color:#363b43; }
.service-changes-panel,.client-timeline,.location-book-panel { color:var(--ink); }
/* Subtle route-grid texture, kept low-contrast to protect legibility. */
.intro-panel { position:relative; }
.intro-panel::before { content:""; display:block; position:absolute; z-index:-1; left:-25px; top:-40px; width:min(44vw,500px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(140,51,74,.18),rgba(140,51,74,.04) 48%,transparent 70%); pointer-events:none; }
.page-heading,.client-welcome,.client-toolbar,.admin-toolbar,.section-heading { animation:tv-content-in .34s cubic-bezier(.2,.8,.2,1) both; }
#service-list > *,#client-order-list > *,#admin-service-list > *,#driver-journey-list > * { animation:tv-card-in .3s cubic-bezier(.2,.8,.2,1) both; }
#service-list > *:nth-child(2),#client-order-list > *:nth-child(2),#admin-service-list > *:nth-child(2) { animation-delay:25ms; }
#service-list > *:nth-child(3),#client-order-list > *:nth-child(3),#admin-service-list > *:nth-child(3) { animation-delay:50ms; }
#service-list > *:nth-child(4),#client-order-list > *:nth-child(4),#admin-service-list > *:nth-child(4) { animation-delay:75ms; }
.screen-enter { animation:tv-screen-in .26s cubic-bezier(.2,.8,.2,1) both; }
@keyframes tv-fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes tv-modal-in { from { opacity:0; transform:translateY(10px) scale(.985); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes tv-toast-in { from { opacity:0; transform:translate(-50%,8px); } to { opacity:1; transform:translate(-50%,0); } }
@keyframes tv-content-in { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@keyframes tv-card-in { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@keyframes tv-screen-in { from { opacity:.35; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@media (hover:none) { .summary-card:hover,.service-card:hover,.client-order-card:hover,.admin-service-row:hover { transform:none; } }
@media (max-width:760px) {
  .topbar { height:64px; padding:0 15px; }
  .brand-logo { width:32px; height:32px; }
  .brand { gap:9px; font-size:15px; }
  .brand small { font-size:8px; }
  .app-shell { padding:24px 15px 48px; }
  .login-layout { min-height:auto; }
  .intro-panel { padding:8px 2px 22px; }
  .login-brand { margin-bottom:22px; }
  .intro-panel h1 { font-size:clamp(38px,11vw,48px); letter-spacing:-.055em; }
  .intro-copy { font-size:14px; line-height:1.65; }
  .login-card { padding:23px 20px; border-radius:19px; }
  .summary-grid { gap:8px; margin-bottom:27px; }
  .summary-card { min-height:100px; padding:14px 12px; border-radius:13px; }
  .summary-label { font-size:9px; letter-spacing:.02em; }
  .summary-card strong { font-size:27px; }
  .page-heading h1,.client-welcome h1 { font-size:clamp(31px,8vw,39px); }
  .service-card,.client-order-card { padding:17px; }
  .client-welcome { align-items:stretch; flex-direction:column; gap:16px; }
  .client-welcome .primary-button { width:100%; justify-content:center; }
  .client-toolbar { align-items:stretch; flex-direction:column; }
  .client-filters { display:grid; grid-template-columns:1fr; }
  .client-filters input,.client-filters select { width:100%; min-width:0; }
  .client-form-section { padding:18px; }
  .client-form-grid { gap:12px; }
  .client-submit-row { align-items:stretch; flex-direction:column; gap:12px; }
  .client-submit-row .primary-button { width:100%; justify-content:center; }
  .summary-card::after { width:70px; height:70px; right:-35px; bottom:-40px; }
  .package-actions { gap:9px; }
  .package-photo-controls { gap:7px; }
  .package-photo-controls button,.package-photo-controls label { font-size:11px; }
  .modal { padding:10px; }
  .modal-card { padding:17px; border-radius:16px; }
}
@media (min-width:761px) and (max-width:1050px) {
  .app-shell { padding-left:28px; padding-right:28px; }
  .login-layout { gap:36px; }
  .service-list,.client-order-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .screen-enter { animation:none !important; }
}


/* Refinements: official horizontal brand and high-contrast section toggles */
.login-brand {
  display: block;
  width: min(100%, 430px);
  margin: 0 0 34px;
  padding: 0;
}
.login-brand img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: left center;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.collapse-section-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 36px;
  padding: 8px 12px;
  background: #292e35;
  color: #f4f5f7;
  border: 1px solid #565e69;
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,.16);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.2;
}
.collapse-section-button::before {
  content: '−';
  display: inline-grid;
  place-items: center;
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  border-radius: 6px;
  background: rgba(255,211,41,.14);
  color: var(--yellow, #ffd329);
  font-size: 17px;
  font-weight: 800;
  line-height: 1;
}
.collapse-section-button[aria-expanded="false"]::before { content: '+'; }
.collapse-section-button:hover {
  background: #383e47;
  border-color: var(--yellow, #ffd329);
  color: #fff;
  box-shadow: 0 5px 15px rgba(0,0,0,.22);
  transform: translateY(-1px);
}
.collapse-section-button:active { transform: translateY(0); }
.collapse-section-button:focus-visible {
  outline: 3px solid var(--yellow, #ffd329);
  outline-offset: 3px;
}
@media (max-width: 640px) {
  .login-brand { width: min(100%, 350px); margin-bottom: 24px; }
  .collapse-section-button { min-height: 34px; padding: 7px 9px; gap: 6px; font-size: 11px; }
}

/* Keep native dropdown menus readable on every supported browser. */
select, select option, select optgroup { background-color: #14171b; color: #f0f1f3; }
select option:checked { background: #35302a linear-gradient(0deg,#35302a 0%,#35302a 100%); color: #ffd329; }
.package-comments { grid-column: 1 / -1; overflow-wrap: anywhere; }
.package-fields textarea { min-height: 88px; resize: vertical; }

.client-form-grid select { width:100%; min-width:0; min-height:43px; border:1px solid #3b4048; border-radius:10px; background:#14171b; padding:10px 12px; color:#f0f1f3; font:500 14px 'DM Sans',sans-serif; }
.client-form-grid select:focus { outline:0; border-color:var(--yellow); box-shadow:var(--focus-ring); background:#191c20; }


/* Client urgency control: a clear, accessible brand-aligned selection card. */
.urgent-request-option {
  display: grid !important; grid-template-columns: 44px minmax(0, 1fr) 48px; align-items: center; gap: 14px !important;
  width: 100%; min-height: 92px; padding: 17px 19px; border: 1px solid #4a4142; border-radius: 16px;
  background: linear-gradient(115deg, rgba(112,43,58,.20), rgba(22,25,29,.94) 58%); color: #f4f5f7 !important;
  cursor: pointer; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.urgent-request-option:hover { border-color: #b57a42; background: linear-gradient(115deg, rgba(112,43,58,.28), rgba(22,25,29,.97) 62%); box-shadow: 0 8px 24px rgba(0,0,0,.18); transform: translateY(-1px); }
.urgent-request-option:focus-within { outline: 2px solid var(--yellow, #ffd329); outline-offset: 3px; }
.urgent-request-option input[type="checkbox"] { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; }
.urgent-request-symbol { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(255,211,41,.24); border-radius: 12px; background: rgba(255,211,41,.10); color: var(--yellow, #ffd329); font-size: 24px; transition: background .18s ease, color .18s ease, transform .18s ease; }
.urgent-request-copy { display: grid; gap: 5px; min-width: 0; }
.urgent-request-copy strong { color: #f5f5f3; font-size: 14px; font-weight: 800; }
.urgent-request-copy small { color: #b8bdc5; font-size: 12px; font-weight: 450; line-height: 1.5; }
.urgent-request-state { display: flex; align-items: center; justify-content: flex-start; width: 46px; height: 27px; padding: 3px; border: 1px solid #626873; border-radius: 999px; background: #292e35; transition: background .18s ease, border-color .18s ease; }
.urgent-request-state span { display: block; width: 19px; height: 19px; border-radius: 50%; background: #aeb3bb; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .18s ease, background .18s ease; }
.urgent-request-option:has(input:checked) { border-color: var(--yellow, #ffd329); background: linear-gradient(110deg, rgba(112,43,58,.42), rgba(50,43,23,.92) 62%, rgba(22,25,29,.97)); box-shadow: inset 0 0 0 1px rgba(255,211,41,.12), 0 8px 26px rgba(0,0,0,.18); }
.urgent-request-option:has(input:checked) .urgent-request-symbol { background: var(--yellow, #ffd329); color: #17191d; transform: scale(1.04); }
.urgent-request-option:has(input:checked) .urgent-request-state { justify-content: flex-end; background: #5b4a0c; border-color: var(--yellow, #ffd329); }
.urgent-request-option:has(input:checked) .urgent-request-state span { background: var(--yellow, #ffd329); }
@media (max-width: 520px) { .urgent-request-option { grid-template-columns: 38px minmax(0,1fr) 42px; gap: 10px !important; padding: 14px; } .urgent-request-symbol { width: 38px; height: 38px; } .urgent-request-copy strong { font-size: 13px; } .urgent-request-copy small { font-size: 11px; } .urgent-request-state { width: 42px; } }

/* TransVoltant motion refinement: expressive feedback, strongest in the client portal. */
.primary-button::after,
.secondary-button::after,
.quiet-button::after,
#client-new-request::after,
#client-empty-new::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(112deg, transparent 12%, rgba(255,255,255,.34) 44%, transparent 72%);
  transform: translateX(-115%);
}
.primary-button:hover:not(:disabled)::after,
.secondary-button:hover:not(:disabled)::after,
.quiet-button:hover:not(:disabled)::after {
  opacity: .85;
  animation: tv-button-sheen .72s ease-out both;
}
.primary-button:focus-visible,
.secondary-button:focus-visible,
.quiet-button:focus-visible,
.icon-button:focus-visible {
  outline: 3px solid rgba(255,211,41,.8);
  outline-offset: 3px;
}
.primary-button:active:not(:disabled),
.secondary-button:active:not(:disabled),
.quiet-button:active:not(:disabled) { filter: brightness(1.08); }
.button-submit-state { display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.button-spinner { width: 16px; height: 16px; display: inline-block; border: 2px solid rgba(23,25,29,.25); border-top-color: currentColor; border-radius: 50%; animation: tv-spin .68s linear infinite; }
.primary-button[aria-busy="true"] { cursor: progress; filter: saturate(.86); }
.primary-button.is-success { box-shadow: 0 0 0 3px rgba(125,205,143,.22), 0 8px 25px rgba(125,205,143,.14); }

/* Client experience: more expressive transitions and staggered entrance. */
#client-screen .client-welcome { position: relative; overflow: hidden; border-radius: 22px; padding: clamp(22px,3.5vw,38px); margin: 0 0 22px; border: 1px solid rgba(255,211,41,.16); background: linear-gradient(115deg, rgba(112,43,58,.24), rgba(27,30,36,.82) 52%, rgba(255,211,41,.055)); box-shadow: 0 18px 48px rgba(0,0,0,.13); }
#client-screen .client-welcome::after { content:""; position:absolute; width:280px; height:280px; right:-90px; top:-170px; border:1px solid rgba(255,211,41,.18); border-radius:50%; box-shadow:0 0 0 22px rgba(255,211,41,.025),0 0 0 48px rgba(112,43,58,.07); pointer-events:none; animation: tv-orbit-drift 9s ease-in-out infinite alternate; }
#client-screen .client-welcome > * { position:relative; z-index:1; }
#client-screen .client-welcome .primary-button { min-height:52px; padding:15px 21px; box-shadow:0 7px 0 rgba(0,0,0,.2),0 12px 28px rgba(255,211,41,.14); }
#client-screen .client-welcome .primary-button:hover:not(:disabled) { transform:translateY(-4px) scale(1.015); box-shadow:0 9px 0 rgba(0,0,0,.18),0 18px 36px rgba(255,211,41,.22); }
#client-screen .summary-card { transition: transform .28s cubic-bezier(.2,.8,.2,1), border-color .25s ease, box-shadow .25s ease; }
#client-screen .summary-card:hover { transform:translateY(-5px) scale(1.012); border-color:rgba(255,211,41,.42); box-shadow:0 18px 36px rgba(0,0,0,.22); }
#client-screen .client-toolbar { transition: transform .2s ease; }
#client-screen .client-filters input:focus,
#client-screen .client-filters select:focus { transform:translateY(-1px); box-shadow:0 0 0 3px rgba(255,211,41,.12),0 8px 20px rgba(0,0,0,.15); }
#client-order-list > * { animation-duration:.48s; }
#client-order-list > *:nth-child(2) { animation-delay:55ms; }
#client-order-list > *:nth-child(3) { animation-delay:100ms; }
#client-order-list > *:nth-child(4) { animation-delay:145ms; }
#client-order-list > *:nth-child(5) { animation-delay:190ms; }
.client-order-card { position:relative; overflow:hidden; transform:translateZ(0); }
.client-order-card::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:linear-gradient(180deg,rgba(255,211,41,.9),rgba(112,43,58,.6)); opacity:0; transition:opacity .24s ease,width .24s ease; pointer-events:none; }
.client-order-card:hover::before,.client-order-card:focus-visible::before { opacity:1; width:5px; }
.client-order-card:hover,.client-order-card:focus-visible { transform:translateY(-5px) scale(1.008); }
.client-order-badges,.service-card-badges { display:inline-flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:7px; }
.urgent-card-badge { display:inline-flex; align-items:center; gap:4px; padding:6px 9px; border-radius:999px; background:linear-gradient(105deg,#8f1f32,#c43b45); border:1px solid rgba(255,150,157,.55); color:#fff5f5; font-size:10px; line-height:1; font-weight:900; letter-spacing:.055em; white-space:nowrap; box-shadow:0 4px 13px rgba(166,34,54,.22); }
.client-order-card.is-urgent { border-color:rgba(218,64,78,.62); background:linear-gradient(118deg,rgba(118,24,42,.55) 0%,rgba(55,29,37,.9) 35%,rgba(27,30,36,.94) 78%); box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 10px 28px rgba(111,20,38,.16); animation:tv-urgent-arrive .55s cubic-bezier(.2,.8,.2,1) both,tv-urgent-glow 4s ease-in-out 650ms infinite; }
.client-order-card.is-urgent::before { opacity:1; width:5px; background:linear-gradient(180deg,#ff5d68,#ffb14d); }
.client-order-card.is-urgent:hover,.client-order-card.is-urgent:focus-visible { border-color:#ff6570; background:linear-gradient(118deg,rgba(143,25,46,.7),rgba(61,29,38,.95) 42%,rgba(27,30,36,.97)); box-shadow:0 20px 42px rgba(125,20,39,.3),inset 0 1px 0 rgba(255,255,255,.07); }
.client-order-card.is-urgent .client-order-code { color:#fff0f1; }
.service-card.is-urgent,.admin-service-row.is-urgent { position:relative; overflow:hidden; border-color:rgba(210,66,80,.58); background:linear-gradient(115deg,rgba(113,25,43,.34),rgba(31,31,37,.92) 48%,rgba(25,28,33,.95)); }
.service-card.is-urgent::before,.admin-service-row.is-urgent::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:linear-gradient(180deg,#ff5967,#ffb24e); pointer-events:none; }
.service-card.is-urgent:hover,.admin-service-row.is-urgent:hover { border-color:#d95a68; box-shadow:0 15px 34px rgba(115,19,37,.22),0 12px 28px rgba(0,0,0,.2); }
.service-card.is-urgent .route-marker { border-color:#ff6873; box-shadow:0 0 0 4px rgba(255,88,103,.09); }

/* The request form should feel guided, not like a static wall of fields. */
#client-request-screen .page-heading { margin-bottom:22px; }
#client-request-form .client-form-section { position:relative; transition:transform .24s cubic-bezier(.2,.8,.2,1),border-color .24s ease,box-shadow .24s ease; animation:tv-form-section-in .42s cubic-bezier(.2,.8,.2,1) both; }
#client-request-form .client-form-section:nth-of-type(2) { animation-delay:45ms; }
#client-request-form .client-form-section:nth-of-type(3) { animation-delay:90ms; }
#client-request-form .client-form-section:nth-of-type(4) { animation-delay:135ms; }
#client-request-form .client-form-section:nth-of-type(5) { animation-delay:180ms; }
#client-request-form .client-form-section:hover { border-color:rgba(255,211,41,.24); box-shadow:0 14px 32px rgba(0,0,0,.17); }
#client-request-form .client-form-title>span { transition:transform .25s cubic-bezier(.2,.8,.2,1),background .25s ease,box-shadow .25s ease; }
#client-request-form .client-form-section:hover .client-form-title>span { transform:rotate(-5deg) scale(1.06); background:rgba(255,211,41,.2); box-shadow:0 0 0 5px rgba(255,211,41,.035); }
#client-request-form input:not([type="checkbox"]),#client-request-form select,#client-request-form textarea { transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .2s ease; }
#client-request-form input:not([type="checkbox"]):focus,#client-request-form select:focus,#client-request-form textarea:focus { transform:translateY(-1px); }
#client-request-form .urgent-request-option:has(input:checked) { animation:tv-urgent-select .38s cubic-bezier(.2,.8,.2,1) both; }
#client-request-form .client-submit-row { position:relative; padding:20px; border:1px solid rgba(255,211,41,.15); border-radius:16px; background:linear-gradient(115deg,rgba(112,43,58,.2),rgba(25,28,33,.9) 60%); }
#client-request-form .client-submit-row .primary-button { min-height:54px; padding:16px 22px; box-shadow:0 6px 0 rgba(0,0,0,.22),0 12px 26px rgba(255,211,41,.12); }
#client-request-form .client-submit-row .primary-button:hover:not(:disabled) { transform:translateY(-3px) scale(1.012); box-shadow:0 9px 0 rgba(0,0,0,.18),0 18px 34px rgba(255,211,41,.2); }
#client-request-form .client-submit-row .primary-button[aria-busy="true"] { transform:none; box-shadow:0 0 0 3px rgba(255,211,41,.13); }
#client-request-form .feedback { padding:0 3px; }

@keyframes tv-button-sheen { 0% { transform:translateX(-115%); opacity:0; } 18% { opacity:.75; } 100% { transform:translateX(115%); opacity:0; } }
@keyframes tv-spin { to { transform:rotate(360deg); } }
@keyframes tv-orbit-drift { from { transform:translate3d(0,0,0) rotate(-7deg); } to { transform:translate3d(-12px,12px,0) rotate(8deg); } }
@keyframes tv-urgent-arrive { from { opacity:.7; transform:translateY(8px) scale(.99); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes tv-urgent-glow { 0%,100% { box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 10px 28px rgba(111,20,38,.14); } 50% { box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 13px 34px rgba(180,29,52,.27); } }
@keyframes tv-form-section-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes tv-urgent-select { 0% { transform:scale(.985); } 60% { transform:scale(1.012); } 100% { transform:scale(1); } }
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
@media (max-width: 640px) {
  #client-screen .client-welcome { padding:20px; }
  #client-request-form .client-submit-row { padding:14px; }
  #client-request-form .client-submit-row .primary-button { width:100%; justify-content:center; }
  .urgent-card-badge { font-size:9px; padding:5px 7px; }
}

/* Expanded vehicle records and account-security administration */
.optional-vehicle-details, .user-edit-panel, .vehicle-edit-panel {
  margin: .85rem 0;
  padding: .9rem;
  border: 1px solid var(--border, rgba(255,255,255,.12));
  border-radius: 14px;
  background: rgba(8, 10, 13, .78);
}
.optional-vehicle-details > summary { cursor: pointer; color: var(--accent, #ffd329); font-weight: 700; padding: .25rem 0 .55rem; }
.vehicle-extra-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: .7rem; }
.vehicle-extra-fields .full-span { grid-column: 1 / -1; }
.vehicle-extra-fields label { display: grid; gap: .35rem; }
.vehicle-extra-fields input, .vehicle-extra-fields select, .vehicle-extra-fields textarea { width: 100%; min-width: 0; }
.management-user-row, .management-vehicle-row { display: grid; gap: .65rem; }
.management-user-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.management-user-actions button { min-height: 38px; }
.user-presence { display: inline-flex; align-items: center; gap: .4rem; }
.user-presence i { width: 8px; height: 8px; border-radius: 50%; display: inline-block; background: #858b95; }
.user-presence.online i { background: #4ade80; box-shadow: 0 0 0 4px rgba(74,222,128,.12), 0 0 12px rgba(74,222,128,.6); }
.password-reset-needed { color: #ffd329 !important; font-weight: 700; }
.temporary-credential-panel { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: 1.2rem; margin: 1rem 0; border: 1px solid rgba(255,211,41,.55); border-radius: 18px; background: linear-gradient(135deg, rgba(255,211,41,.13), rgba(112,43,58,.25) 65%, rgba(10,12,15,.96)); box-shadow: 0 18px 45px rgba(0,0,0,.2); }
.temporary-credential-panel h3 { margin: .25rem 0; }
.temporary-credential-panel code { display: inline-block; margin-top: .45rem; padding: .6rem .8rem; border: 1px solid rgba(255,211,41,.35); border-radius: 9px; background: #090a0c; color: #ffe17b; font-size: 1rem; overflow-wrap: anywhere; user-select: all; }
#change-password-screen .login-card { align-self: center; }
@media (max-width: 640px) {
  .vehicle-extra-fields { grid-template-columns: minmax(0,1fr); }
  .vehicle-extra-fields .full-span { grid-column: auto; }
  .management-user-actions > button { flex: 1 1 100%; }
  .temporary-credential-panel { align-items: stretch; }
}


/* Documentos DeCA del conductor: disponibilidad y confirmación son estados separados. */
.driver-deca-panel{margin:1.5rem 0 2rem;padding:1.25rem;background:var(--card);border:1px solid var(--line);border-radius:16px}.driver-deca-panel .section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.driver-deca-panel h2{margin:0}.driver-deca-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.driver-deca-card{min-width:0;padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--surface,#fff)}.driver-deca-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.driver-deca-card-head h3{margin:5px 0 0;font-size:17px;overflow-wrap:anywhere}.driver-deca-status{display:inline-flex;flex-shrink:0;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800}.driver-deca-status.pending{background:#fff1b5;color:#594600}.driver-deca-status.confirmed{background:#e8f3e8;color:#23552a}.driver-deca-services,.driver-deca-ack-state{font-size:12px;line-height:1.5;overflow-wrap:anywhere}.driver-deca-ack-state{font-weight:700}.driver-deca-card.is-acknowledged{border-color:#d5e5d5}.driver-deca-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.driver-deca-actions .primary-button,.driver-deca-actions .secondary-button{font-size:12px;text-decoration:none}.driver-deca-empty{display:grid;gap:6px;padding:16px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:12px;line-height:1.55}.driver-deca-empty strong{color:var(--ink)}@media(max-width:760px){.driver-deca-list{grid-template-columns:1fr}.driver-deca-panel{padding:15px}.driver-deca-panel .section-heading{align-items:stretch;flex-direction:column}.driver-deca-panel .section-heading button{width:100%}.driver-deca-actions{display:grid;grid-template-columns:1fr}.driver-deca-actions>*{width:100%;justify-content:center;text-align:center}}

/* DeCA administration: delivery state is distinct from document generation. */
.admin-deca-panel{margin:1.5rem 0 2rem;padding:1.25rem;background:var(--card);border:1px solid var(--line);border-radius:16px}
.admin-deca-panel .section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.admin-deca-panel h2{margin:0}
.admin-deca-filters{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 10px}
.admin-deca-filters input{flex:1;min-width:220px}
.admin-deca-summary{display:flex;gap:16px;flex-wrap:wrap;margin:10px 0;color:var(--muted);font-size:12px;font-weight:700}
.admin-deca-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.admin-deca-card{min-width:0;padding:15px;border:1px solid var(--line);border-radius:13px;background:var(--surface,#fff)}
.admin-deca-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.admin-deca-card-head h3{margin:5px 0 0;font-size:17px;overflow-wrap:anywhere}
.admin-deca-status{display:inline-flex;max-width:55%;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800;line-height:1.35}
.admin-deca-status.pending{background:#fff1b5;color:#594600}
.admin-deca-status.confirmed{background:#e8f3e8;color:#23552a}
.admin-deca-status.unavailable{background:#fce8e6;color:#8a241d}
.admin-deca-status.superseded{background:#eceff3;color:#4a5563}
.admin-deca-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:14px 0 0}
.admin-deca-meta div{min-width:0}
.admin-deca-meta dt{font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.admin-deca-meta dd{margin:4px 0 0;font-size:12px;overflow-wrap:anywhere}
.admin-deca-actions{display:flex;justify-content:flex-start;margin-top:12px}
.admin-deca-actions a{text-decoration:none}
.admin-deca-empty{display:grid;gap:6px;padding:16px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:12px;line-height:1.55}
.admin-deca-empty strong{color:var(--ink)}
@media(max-width:760px){.admin-deca-list{grid-template-columns:1fr}.admin-deca-panel{padding:15px}.admin-deca-panel .section-heading{align-items:stretch;flex-direction:column}.admin-deca-panel .section-heading button{width:100%}.admin-deca-filters{display:grid;grid-template-columns:1fr}.admin-deca-filters input{min-width:0}.admin-deca-meta{grid-template-columns:1fr 1fr}}

/* La ubicación geográfica es el dato principal en las tarjetas de servicio. */
.route-point .route-location-title { color: #ffd329; font-size: 14px; font-weight: 800; letter-spacing: -.15px; }
.route-point .route-location-name { display: block; margin-top: 5px; color: #aeb4be; line-height: 1.45; }
.location-card .service-detail-location { color: #ffd329; font-size: 19px; line-height: 1.3; margin-bottom: 7px; }
.location-card .service-detail-site { color: #f1f2f4; font-size: 13px; font-weight: 700; margin-top: 0; }

/* V-System brand lockup */
.brand{gap:12px}.brand-logo{width:46px;height:28px;object-fit:contain;object-position:center;background:#f7f5f2;border-radius:9px;padding:5px;filter:none}.brand-wordmark{font:800 19px/.95 Manrope,system-ui,sans-serif;letter-spacing:-.8px;color:#f7f7f8}.brand-wordmark b,.login-wordmark b{color:#ffd12f;font-weight:900}.brand-wordmark i,.login-wordmark i{font-style:normal;color:#888d96;margin:0 1px}.brand-wordmark small{display:block;margin-top:5px;color:#c5c7cb;font:700 8px/1 'DM Sans',system-ui,sans-serif;letter-spacing:2px}.login-brand{gap:16px}.login-brand img{width:76px;height:76px;object-fit:contain;padding:16px;border:1px solid rgba(255,209,47,.22);border-radius:20px;background:#f7f5f2;box-shadow:0 12px 32px #0003}.login-wordmark{display:block;font:800 clamp(32px,4vw,46px)/.95 Manrope,system-ui,sans-serif;letter-spacing:-1.8px;color:var(--ink)}.login-wordmark small{display:block;margin-top:10px;color:#b7bac1;font:800 9px/1.4 'DM Sans',system-ui,sans-serif;letter-spacing:1.8px}@media(max-width:760px){.brand-logo{width:42px;height:27px}.brand-wordmark{font-size:17px}.login-brand img{width:62px;height:62px;padding:13px}.login-wordmark{font-size:34px}.login-wordmark small{font-size:8px;letter-spacing:1.2px}}


/* Individual package editor */
.package-editor { display:grid; gap:16px; }
.package-editor-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.package-editor-toolbar p { margin:0; }
.package-rows { display:grid; gap:12px; }
.package-row { min-width:0; margin:0; padding:16px; border:1px solid var(--border, #dedede); border-radius:12px; background:var(--surface, #fff); }
.package-row legend { padding:0 8px; font-weight:700; }
.package-row-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.package-row-grid label { min-width:0; display:grid; gap:6px; font-size:.88rem; }
.package-row-grid input,.package-row-grid select { width:100%; min-width:0; }
.package-description { grid-column:span 2; }
.package-remove { margin-top:12px; }
.package-total-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.package-total-fields label { display:grid; gap:6px; }
@media(max-width:720px) {
  .package-row-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .package-total-fields { grid-template-columns:1fr; }
}


/* Operations package management */
.package-detail-summary { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.package-detail-summary span { padding:4px 8px; border-radius:6px; background:var(--surface-muted, #f1f2f4); font-size:.82rem; }
.package-management { margin:10px 0; }
.package-management > summary { display:inline-flex; cursor:pointer; }
.package-edit-form { display:grid; gap:12px; padding:14px; margin-top:10px; border:1px solid var(--border, #ddd); border-radius:10px; }
.package-row-retired { opacity:.72; border-style:dashed; }
.package-row-retired .package-status { background:#eee; color:#555; }
.package-retire-button { margin:8px 0; color:var(--danger, #8c2735); }
@media(max-width:720px) { .package-edit-form .package-row-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }


/* Individual package detail in client request and operations review */
.package-item-details{margin:0 0 18px;padding:15px 16px;border:1px solid var(--line);border-radius:12px;background:#fcfcfa}
.package-item-details h4{margin:0 0 10px;font:800 12px Manrope,sans-serif;color:var(--ink)}
.package-item-details ol{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.package-item-details li{padding:10px 11px;border:1px solid #eceee9;border-radius:9px;background:#fff;min-width:0}
.package-item-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px}
.package-item-detail-head strong{color:var(--ink)}
.package-item-detail-head span{font-size:11px;color:var(--muted)}
.package-item-details li>p{margin:5px 0 0;font-size:11px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
.package-item-detail-values{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:7px;font-size:10px;color:var(--muted)}
.package-item-detail-values b{color:var(--ink);font-weight:700}
.package-item-details .package-item-special{padding-top:6px;border-top:1px solid #f0f0ec}
@media(max-width:560px){.package-item-details{padding:12px}.package-item-detail-values{display:grid;gap:4px}.package-item-detail-head{align-items:flex-start;flex-direction:column;gap:3px}}


/* -------------------------------------------------------------------------
   BULTOS — integración visual con el tema oscuro TransVoltant
   ------------------------------------------------------------------------- */
#client-request-screen .package-editor {
  gap: 16px;
}
#client-request-screen .package-editor-toolbar {
  align-items: center;
  gap: 14px;
}
#client-request-screen .package-editor-toolbar > p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}
#client-request-screen .package-rows {
  gap: 12px;
}
#client-request-screen .package-row {
  min-width: 0;
  margin: 0;
  padding: 16px 18px 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-2, var(--card));
  color: var(--ink);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}
#client-request-screen .package-row legend {
  padding: 0 8px;
  color: var(--ink);
  font: 800 14px/1.4 Manrope, sans-serif;
}
#client-request-screen .package-row-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px 16px;
}
#client-request-screen .package-row-grid label {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 7px;
  color: var(--muted);
  font: 600 12px/1.4 'DM Sans', sans-serif;
}
#client-request-screen .package-row-grid input,
#client-request-screen .package-row-grid select {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid #414751;
  border-radius: 8px;
  background: var(--surface-3, #262b32);
  color: var(--ink);
  font: 500 14px 'DM Sans', sans-serif;
  color-scheme: dark;
}
#client-request-screen .package-row-grid input::placeholder {
  color: #858c96;
  opacity: 1;
}
#client-request-screen .package-row-grid input:focus,
#client-request-screen .package-row-grid select:focus {
  outline: 0;
  border-color: var(--lime);
  box-shadow: var(--focus-ring, 0 0 0 3px rgba(255,211,41,.22));
}
#client-request-screen .package-row-grid .package-description {
  grid-column: span 2;
}
#client-request-screen .package-remove {
  min-height: 36px;
  margin-top: 12px;
  padding: 7px 11px;
  border: 1px solid rgba(255,115,115,.35);
  border-radius: 8px;
  background: rgba(255,115,115,.09);
  color: #ff9292;
  font: 700 12px 'DM Sans', sans-serif;
  cursor: pointer;
}
#client-request-screen .package-remove:hover:not(:disabled) {
  background: rgba(255,115,115,.16);
  border-color: rgba(255,115,115,.6);
}
#client-request-screen .package-remove:disabled {
  opacity: .38;
  cursor: not-allowed;
}
#client-request-screen .package-total-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
#client-request-screen .package-total-fields label {
  min-width: 0;
  display: grid;
  gap: 7px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
}
#client-request-screen .package-total-fields input,
#client-request-screen .package-total-fields textarea {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid #414751;
  border-radius: 8px;
  background: var(--surface-3, #262b32);
  color: var(--ink);
  font: 500 14px 'DM Sans', sans-serif;
  color-scheme: dark;
}
#client-request-screen .package-total-fields input::placeholder,
#client-request-screen .package-total-fields textarea::placeholder {
  color: #858c96;
  opacity: 1;
}
#client-request-screen .package-total-fields input:focus,
#client-request-screen .package-total-fields textarea:focus {
  outline: 0;
  border-color: var(--lime);
  box-shadow: var(--focus-ring, 0 0 0 3px rgba(255,211,41,.22));
}
#client-request-screen .package-total-fields .full-span {
  grid-column: 1 / -1;
}
#client-request-screen #package-total-summary {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
@media (max-width: 760px) {
  #client-request-screen .package-row-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  #client-request-screen .package-row-grid .package-description {
    grid-column: 1 / -1;
  }
  #client-request-screen .package-total-fields {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 420px) {
  #client-request-screen .package-row {
    padding: 13px 12px 15px;
  }
  #client-request-screen .package-row-grid {
    grid-template-columns: 1fr;
  }
}


/* Client-facing package traceability */
.client-tracking-summary { display:grid; gap:14px; }
.client-tracking-progress { height:9px; overflow:hidden; border-radius:999px; background:#343941; }
.client-tracking-progress span { display:block; height:100%; border-radius:inherit; background:var(--yellow); transition:width .25s ease; }

.client-detail-actions { display:flex; align-items:center; gap:9px; flex-wrap:wrap; justify-content:flex-end; }
@media(max-width:760px) { .client-detail-actions { justify-content:flex-start; } }

/* Planificación recurrente */
.recurring-schedule-panel{margin:1.5rem 0 2rem}.recurring-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0 1.5rem}.recurring-form{display:grid;gap:.8rem;align-content:start}.recurring-form h3{margin:0}.weekday-picker{border:1px solid var(--line);border-radius:10px;padding:.7rem}.weekday-picker legend{padding:0 .35rem;color:var(--muted);font-size:.85rem}.weekday-options{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}.weekday-options label{display:grid;justify-items:center;gap:.3rem;font-weight:600}.weekday-options input{accent-color:var(--accent)}.recurring-list{display:grid;gap:.55rem;margin:.75rem 0 1.25rem}.recurring-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}.recurring-row>div:first-child{display:grid;gap:.25rem;min-width:0}.recurring-row small{color:var(--muted);overflow-wrap:anywhere}.recurring-actions{display:flex;gap:.5rem;flex-wrap:wrap}.recurring-schedule-panel h3{margin-top:1.2rem}.recurring-view[hidden]{display:none!important}@media(max-width:760px){.recurring-grid{grid-template-columns:1fr}.recurring-row{align-items:flex-start;flex-direction:column}.recurring-actions{width:100%}.weekday-options{gap:.15rem}}

/* Calendario semanal y mensual de jornadas recurrentes */
.recurring-calendar-toolbar{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin:.8rem 0}
.recurring-calendar-toolbar>strong{min-width:190px;text-align:center;text-transform:capitalize}
.recurring-calendar-mode{display:flex;gap:.35rem;margin-right:auto}
.recurring-calendar-mode .active{border-color:var(--accent);color:var(--accent)}
.recurring-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:.75rem 0 1.25rem}
.recurring-calendar-weekday{padding:.5rem;text-align:center;color:var(--muted);font-size:.8rem;font-weight:700}
.recurring-calendar-day{min-width:0;min-height:118px;padding:.45rem;border:1px solid var(--line);border-radius:9px;background:var(--card);display:flex;flex-direction:column;gap:.35rem}
.recurring-calendar-day.outside-month{opacity:.42}
.recurring-calendar-day-number{font-size:.82rem;font-weight:700}
.recurring-calendar-empty{color:var(--muted);font-size:.75rem}
.recurring-calendar-event{display:grid;gap:.2rem;padding:.4rem;border-radius:7px;background:var(--surface,#20242a);border-left:3px solid var(--muted);font-size:.75rem;overflow-wrap:anywhere}
.recurring-calendar-event small{color:var(--muted)}
.recurring-calendar-event.status-planned{border-left-color:var(--yellow)}
.recurring-calendar-event.status-confirmed,.recurring-calendar-event.status-activated{border-left-color:#36a269}
.recurring-calendar-event.status-blocked{border-left-color:#d88b35}
.recurring-calendar-event .primary-button,.recurring-calendar-event .secondary-button{padding:.28rem .4rem;font-size:.7rem;min-height:28px}
.recurring-calendar-filters{margin-top:1rem}
@media(max-width:760px){.recurring-calendar{gap:2px}.recurring-calendar-day{min-height:78px;padding:.25rem;border-radius:6px}.recurring-calendar-weekday{padding:.25rem 0;font-size:.7rem}.recurring-calendar-event{padding:.2rem;font-size:.65rem}.recurring-calendar-event small{display:none}.recurring-calendar-event button{font-size:.6rem;padding:.2rem}.recurring-calendar-toolbar>strong{min-width:130px}}

/* Fase 6 · Servicios y revisión de jornadas recurrentes */
.recurring-plan-editor{margin:1rem 0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.recurring-service-option{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer}
.recurring-service-option input{margin-top:.2rem;accent-color:var(--accent)}
.recurring-service-option span{display:grid;gap:.2rem;min-width:0}
.recurring-service-option small{color:var(--muted);overflow-wrap:anywhere}
.recurring-assessment{margin-top:1rem;padding:.85rem;border-radius:10px;background:var(--surface)}
.recurring-assessment:empty{display:none}
.recurring-assessment h4{margin:.1rem 0 .5rem}
.recurring-assessment ul{padding-left:1.25rem}
.recurring-assessment li{margin:.3rem 0}
