/* Base compartida heredada. Cambiar solo para ajustes globales deliberados. */

:root{--ink:#171b22;--ink2:#222934;--muted:#7f8a9c;--line:#dde3eb;--soft:#f5f7fa;--white:#fff;--red:#e7192d;--green:#18a957;--greenSoft:#def6e8;--yellow:#c89912;--yellowSoft:#fff1bf;--orange:#ec8325;--orangeSoft:#ffe6cf;--blue:#2777df;--blueSoft:#e5f0ff;--shadow:0 18px 55px rgba(29,39,53,.09)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink)}
body{min-height:100vh;background:radial-gradient(circle at -7% 94%,rgba(225,233,244,.85) 0 25%,rgba(225,233,244,.22) 26% 40%,transparent 41%),radial-gradient(circle at 108% -8%,rgba(233,239,247,.95) 0 27%,rgba(233,239,247,.28) 28% 41%,transparent 42%),linear-gradient(180deg,#fcfdff 0%,#f2f6fa 100%)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}svg.icon{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon.lg{width:28px;height:28px}.icon.sm{width:17px;height:17px}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:26px 18px}.auth-card{width:min(700px,94vw);background:rgba(255,255,255,.98);border:1px solid rgba(220,226,235,.95);border-radius:23px;box-shadow:var(--shadow);padding:38px 48px}.logo{display:block;width:min(315px,66%);margin:0 auto 26px}.auth-card h1{margin:0;text-align:center;font-size:clamp(29px,3vw,43px);letter-spacing:-.045em;line-height:1.04}.auth-sub{text-align:center;color:#98a4b7;font-weight:750;font-size:clamp(18px,1.6vw,23px);margin:8px 0 26px}.auth-stage{display:none}.auth-stage.active{display:block}.method-list{display:grid;gap:14px}.method-btn{height:78px;border-radius:14px;border:1px solid #cfd7e2;background:#fff;color:#222a35;display:flex;align-items:center;justify-content:center;gap:17px;font-size:22px;font-weight:850}.method-btn.primary{background:linear-gradient(180deg,#242c35,#161b21);color:#fff;border-color:#161b21}.selected-row{display:grid;grid-template-columns:58px 1fr;gap:14px;align-items:center;margin-bottom:17px}.back-btn{width:58px;height:58px;border-radius:50%;border:1px solid #d4dbe5;background:#fff;color:#1f2732;display:grid;place-items:center}.selected-method{min-height:62px;border:1px solid #d4dbe5;border-radius:13px;padding:8px 17px;background:#fff;display:flex;align-items:center;gap:14px}.selected-method .title{font-size:20px;font-weight:850}.selected-method .preview{font-size:14px;color:#9aa6b8;font-weight:700;margin-top:2px}.field-label{font-size:16px;color:#8b97a9;font-weight:750;margin:11px 0 7px}.field-wrap{position:relative}.field{width:100%;height:58px;border:1px solid #cfd7e2;border-radius:12px;background:#fff;color:#222a35;font-size:20px;outline:none;padding:0 52px}.field.email{font-size:17px}.field:focus{border-color:#9eafc2;box-shadow:0 0 0 4px rgba(55,82,112,.06)}.field-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#202832}.field-action{position:absolute;right:12px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#657286;padding:6px;border-radius:8px}.field-check{position:absolute;right:17px;top:50%;transform:translateY(-50%);color:var(--green)}.status-good{margin-top:10px;border-radius:11px;background:linear-gradient(90deg,#e3f7e9,#dcf5e3);padding:11px 15px;color:#087a31;font-size:14px;font-weight:800;display:flex;align-items:center;gap:9px}.activation-good{margin-top:11px;border-radius:13px;background:linear-gradient(90deg,#e4f7e9,#eefaf2);padding:15px 16px;display:flex;gap:12px;align-items:flex-start}.activation-good .avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#c9f3d5;color:#089f3b}.activation-good strong{display:block;font-size:17px;margin-bottom:4px}.activation-good p{margin:0;color:#78869a;font-weight:650;line-height:1.42;font-size:14px}.question{font-size:20px;font-weight:900;margin:21px 0 8px}.segment{display:grid;grid-template-columns:1fr 1fr;border:1px solid #cfd7e2;border-radius:12px;overflow:hidden;margin-bottom:8px}.segment button{height:54px;border:0;background:#fff;color:#222936;font-size:17px;font-weight:850}.segment button.active{background:linear-gradient(180deg,#252d36,#171c22);color:#fff}.helper{color:#8793a5;font-size:13px;font-weight:600;line-height:1.4;margin:4px 0 10px}.auth-action{width:100%;height:66px;border:0;border-radius:12px;background:linear-gradient(180deg,#242c34,#151a20);color:#fff;font-size:21px;font-weight:900;margin-top:17px;display:flex;align-items:center;justify-content:center;gap:12px}.inline-message{margin-top:11px;padding:10px 12px;border-radius:10px;font-size:13px;font-weight:700}.inline-message.error{background:#ffedef;color:#a61d30}.inline-message.info{background:#eaf3ff;color:#305b89}.blocked{text-align:center}.blocked .mark{margin:0 auto 17px;width:66px;height:66px;border-radius:20px;background:#ffeaed;color:#af1f31;display:grid;place-items:center}.blocked h2{margin:0 0 8px;font-size:28px}.blocked p{color:#7d8899;line-height:1.55}
.portal{display:none;min-height:100vh;padding:24px}.portal.active{display:block}.portal-shell{max-width:1480px;margin:0 auto}.portal-top{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:14px}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{border:1px solid var(--line);background:#fff;color:#4e5865;border-radius:999px;padding:10px 15px;font-weight:850;display:flex;align-items:center;gap:8px}.tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}.tab .count{font-size:11px;padding:2px 7px;border-radius:999px;background:#eef1f4;color:#5f6976}.tab.active .count{background:#343b44;color:#fff}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.branch-pill,.icon-button,.new-note{border:1px solid var(--line);background:#fff;border-radius:12px;height:42px;display:flex;align-items:center;gap:8px;padding:0 12px;font-weight:800}.branch-pill.open{color:#0b7738;background:#effaf3}.branch-pill.closed{color:#a14a16;background:#fff5ec}.icon-button{width:42px;padding:0;justify-content:center;position:relative}.notif-count{position:absolute;right:-4px;top:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--red);color:white;font-size:10px;display:grid;place-items:center;border:2px solid #f4f7fa}.new-note{background:var(--red);color:#fff;border-color:var(--red);padding:0 14px}.notice-panel{display:none;position:absolute;right:24px;top:76px;width:min(390px,calc(100vw - 48px));z-index:25;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(25,36,50,.16);padding:14px}.notice-panel.open{display:block}.notice-panel h3{margin:0 0 8px;font-size:17px}.notice-item{padding:11px;border-radius:11px;background:#f7f9fb;margin-top:8px;font-size:13px;line-height:1.4}.notice-item b{display:block;margin-bottom:3px}.pending-sign{display:none;margin-bottom:14px;border:1px solid #ffd8dd;background:linear-gradient(90deg,#fff1f3,#fff8f8);border-radius:16px;padding:13px 15px;align-items:center;justify-content:space-between;gap:15px}.pending-sign.show{display:flex}.pending-sign .left{display:flex;align-items:center;gap:11px}.pending-sign .round{width:39px;height:39px;border-radius:12px;background:#ffe1e5;color:#bd1b30;display:grid;place-items:center}.pending-sign strong{display:block}.pending-sign span{color:#7f8999;font-size:12px}.pending-sign .actions{display:flex;gap:7px}.btn-sm{height:36px;border-radius:9px;border:1px solid var(--line);background:#fff;padding:0 11px;font-weight:800}.btn-sm.red{background:var(--red);border-color:var(--red);color:#fff}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 8px 22px rgba(30,41,55,.04)}.kpi .label{font-size:12px;color:#778394;font-weight:750}.kpi .value{font-size:27px;font-weight:950;margin-top:4px;letter-spacing:-.03em}.kpi .sub{font-size:11px;color:#8792a2;margin-top:3px}.workload-chip{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:900}.workload-chip.Alta,.workload-chip.Saturada{background:var(--orangeSoft);color:#a85105}.workload-chip.Media{background:var(--yellowSoft);color:#826000}.workload-chip.Baja{background:var(--greenSoft);color:#0b7138}.portal-view{display:none}.portal-view.active{display:block}.notes-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:13px}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 8px 22px rgba(30,41,55,.04)}.panel-pad{padding:17px}.section-title{font-size:24px;font-weight:950;letter-spacing:-.025em;margin:0}.section-sub{font-size:12px;color:#808b9c;margin-top:4px}.searchbar{display:grid;grid-template-columns:1fr 160px;gap:8px;margin:13px 0 10px}.search-wrap{position:relative}.search-wrap .icon-pos{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#8d98a7}.search,.filter{width:100%;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;outline:none}.search{padding:0 12px 0 42px}.filter{padding:0 9px;color:#596574}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;min-width:850px}th{font-size:11px;color:#737f90;background:#f7f9fb;text-align:left;padding:10px;border-bottom:1px solid var(--line)}td{padding:11px 10px;border-bottom:1px solid #edf0f3;font-size:12px}tr:last-child td{border-bottom:0}tbody tr.selectable{cursor:pointer}tbody tr.selectable:hover{background:#fff9f9}tbody tr.selected{background:#fff4f5}.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900}.s-yellow{background:var(--yellowSoft);color:#806000}.s-green{background:var(--greenSoft);color:#0b7138}.s-blue{background:var(--blueSoft);color:#155cb5}.s-orange{background:var(--orangeSoft);color:#9e4d06}.s-red{background:#ffe0e5;color:#ae1830}.detail{padding:17px;position:sticky;top:18px;align-self:start}.detail-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.detail-folio{font-size:22px;font-weight:950}.detail-device{font-size:14px;font-weight:850;margin-top:11px}.detail-meta{font-size:11px;color:#7f8b9c;margin-top:3px}.hr{height:1px;background:var(--line);margin:14px 0}.timeline{display:grid}.timeline-step{display:grid;grid-template-columns:22px 1fr;gap:9px;position:relative;padding-bottom:14px}.timeline-step:not(:last-child):after{content:"";position:absolute;left:9px;top:18px;width:2px;height:calc(100% - 2px);background:#d7dde5}.timeline-dot{width:18px;height:18px;border-radius:50%;background:#28ad64;z-index:1}.timeline-step b{font-size:12px}.timeline-step span{display:block;font-size:10px;color:#8792a3;margin-top:2px}.detail-note{font-size:11px;line-height:1.5;background:#edf5ff;color:#345e8e;border-radius:10px;padding:10px;margin-top:5px}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.full-btn{width:100%;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:850}.full-btn.primary{background:#20262e;color:#fff;border-color:#20262e}.full-btn.red{background:var(--red);color:#fff;border-color:var(--red)}.retention{font-size:11px;color:#7f8a9a;margin-top:10px}
.workload-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:13px}.load-bars{display:grid;gap:10px;margin-top:16px}.load-row{display:grid;grid-template-columns:110px 1fr 46px;gap:10px;align-items:center}.load-track{height:14px;border-radius:99px;background:#eef2f5;overflow:hidden}.load-fill{height:100%;background:#2a3139;border-radius:99px}.flow-steps{display:grid;gap:9px;margin-top:12px}.flow-step{display:flex;gap:10px;align-items:flex-start;padding:10px;background:#f7f9fb;border-radius:10px}.flow-step .num{width:26px;height:26px;border-radius:8px;background:#20262e;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900}.flow-step b{display:block;font-size:12px}.flow-step span{font-size:11px;color:#818c9d}.appointments{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.appt{padding:16px}.appt .date{font-size:20px;font-weight:950}.appt .time{color:#738092;font-size:12px;margin-top:3px}.appt .device{font-size:14px;font-weight:850;margin-top:11px}.appt .reason{font-size:12px;color:#737f90;margin-top:4px}.users-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:13px}.security-list{display:grid;gap:8px}.security-card{padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff;display:flex;justify-content:space-between;gap:10px;align-items:center}
.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(15,20,27,.45);z-index:50;padding:20px;place-items:center}.modal-backdrop.open{display:grid}.modal{width:min(780px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.22);padding:18px}.modal.wide{width:min(1180px,97vw)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal-head h2{margin:0;font-size:22px}.close-modal{border:1px solid var(--line);background:#fff;width:38px;height:38px;border-radius:10px;display:grid;place-items:center}.modal-section{border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:13px}.modal-section h3{margin:0 0 4px;font-size:19px}.modal-section .desc{font-size:12px;color:#7d8999;margin-bottom:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid .wide{grid-column:1/-1}.form-grid label{display:block;font-size:11px;color:#6f7a8b;font-weight:850;margin-bottom:5px}.form-grid input,.form-grid textarea,.form-grid select{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px;outline:none;background:#fff}.form-grid input,.form-grid select{height:42px}.form-grid textarea{min-height:90px;resize:vertical}.device-types,.brand-grid,.choice-grid{display:grid;gap:9px}.device-types{grid-template-columns:repeat(5,1fr)}.brand-grid{grid-template-columns:repeat(5,1fr)}.choice-grid{grid-template-columns:repeat(4,1fr)}.select-card{min-height:74px;border:1px solid #d6dde7;border-radius:11px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-weight:800;padding:8px;text-align:center}.select-card.selected{background:#20262e;color:#fff;border-color:#20262e}.brand-mark{width:31px;height:31px;border-radius:9px;background:#f0f3f6;display:grid;place-items:center;font-weight:950;color:#252b33}.select-card.selected .brand-mark{background:#fff;color:#20262e}.pill-choice{height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:800;padding:0 10px}.pill-choice.selected{background:#20262e;color:#fff}.customer-search{display:grid;grid-template-columns:1fr auto auto;gap:8px;margin-bottom:13px}.customer-search input{height:42px;border:1px solid var(--line);border-radius:9px;padding:0 10px}.customer-results{display:grid;gap:6px;margin-bottom:12px}.customer-result{border:1px solid var(--line);border-radius:9px;padding:9px;background:#f8fafb;cursor:pointer}.customer-result b{display:block;font-size:12px}.customer-result span{font-size:11px;color:#7b8797}.evidence-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.evidence-list{font-size:11px;color:#6f7b8b;margin-top:8px;display:grid;gap:3px}.require-photo{font-size:11px;color:#9d5610;background:#fff3df;border-radius:9px;padding:9px;margin-top:8px}.soft-badge{display:inline-flex;padding:2px 6px;border-radius:999px;background:#f0f2f5;color:#778292;font-size:9px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.modal-actions button{height:40px;border-radius:9px;border:1px solid var(--line);padding:0 14px;font-weight:850;background:#fff}.modal-actions .save{background:var(--red);color:#fff;border-color:var(--red)}.signature-box{border:1px solid #cfd7e2;border-radius:12px;background:#fff;height:220px;margin-top:12px;overflow:hidden;position:relative}.signature-box canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.signature-placeholder{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;color:#8a96a7;text-align:center;padding:20px}.signature-tools{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-top:9px}.signature-tools .consent{font-size:12px;color:#697688;display:flex;gap:8px;align-items:flex-start;line-height:1.4}.signature-tools button{border:1px solid #d7dde6;background:#fff;border-radius:9px;height:36px;padding:0 11px;font-weight:800}.toast{position:fixed;right:20px;bottom:20px;z-index:80;background:#20262e;color:#fff;border-radius:12px;padding:12px 15px;box-shadow:0 12px 35px rgba(0,0,0,.18);font-size:13px;display:none;max-width:420px}.toast.show{display:block}
@media(max-width:1050px){.kpis{grid-template-columns:1fr 1fr}.notes-layout,.workload-layout,.users-grid{grid-template-columns:1fr}.detail{position:static}.appointments{grid-template-columns:1fr 1fr}.device-types,.brand-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:680px){.auth-card{padding:27px 20px}.portal{padding:12px}.kpis{grid-template-columns:1fr}.appointments{grid-template-columns:1fr}.searchbar{grid-template-columns:1fr}.pending-sign{flex-direction:column;align-items:flex-start}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.device-types,.brand-grid,.choice-grid{grid-template-columns:1fr 1fr}.customer-search{grid-template-columns:1fr}.selected-row{grid-template-columns:50px 1fr}.back-btn{width:50px;height:50px}}

/* V8: independent detail requests, document viewer and consistent SVG tiles. */
button:disabled{opacity:.55;cursor:wait}.pending-label{font-size:10px;color:#a32032;margin-top:3px}.empty-row{text-align:center;padding:28px;color:#738096}
.quote-summary{padding:12px;border:1px solid #e0e5eb;background:#f7f9fc;border-radius:10px;margin-top:12px;font-size:13px;line-height:1.8}
.device-types{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.brand-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:9px}
#familyGrid,#modelGrid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:9px;max-height:310px;overflow:auto;padding:4px}
.select-card,.pill-choice{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:92px;padding:12px!important;white-space:normal;text-align:center;font-size:13px;line-height:1.3}
.pill-choice{min-height:84px}.device-illustration{width:31px!important;height:35px!important;flex:none;stroke-width:1.5!important}.brand-symbol{display:grid;place-items:center;border:1px solid currentColor;border-radius:9px;width:36px;height:32px;font-size:13px;font-weight:800}.select-card.selected,.pill-choice.selected{border:2px solid #172029!important;background:#f0f4f8!important;color:#172029!important}
.manual-input{width:100%;height:44px;padding:10px;border:1px solid #ccd5df;border-radius:9px;margin-top:8px}.evidence-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0}.quote-form select,.quote-form input{height:44px;width:100%;border:1px solid #ccd5df;border-radius:9px;padding:9px}.quote-form label{display:block;font-size:13px;font-weight:700;margin:7px 0}.quote-form input[readonly]{background:#f1f4f7;font-weight:800}.quote-form .hint{color:#6d7786;font-size:12px;margin:8px 0;line-height:1.5}
.document-modal{width:min(1010px,96vw)!important;max-height:95vh!important;padding:16px!important}.document-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:12px 0}.document-tools select{height:38px;border:1px solid #d4dce6;border-radius:9px;padding:6px}.document-frame{display:block;border:1px solid #dce3eb;border-radius:10px;width:100%;height:70vh;background:#f4f6f9}.signature-document-frame{display:block;width:100%;height:350px;border:1px solid #dce3eb;border-radius:10px;margin-top:12px}.signature-box{touch-action:none}.signature-tools .consent input{flex:none}
@media(max-width:650px){.device-types{grid-template-columns:repeat(3,minmax(0,1fr))}.brand-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#familyGrid,#modelGrid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:290px}.document-frame{height:65vh}.document-modal{padding:10px!important}}

/* 8.1: never display an interactive login while session cleanup is pending. */
#authShell{visibility:hidden}
#accessBarrier[hidden]{display:none!important}
#accessBarrier{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;width:100vw;max-width:100vw;height:100svh;height:100dvh;min-height:100svh;min-height:100dvh;margin:0;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));box-sizing:border-box;overflow:hidden;background:#f4f7fb}
#accessBarrier .access-panel{width:min(520px,calc(100vw - 32px));max-width:520px;margin:auto;background:white;padding:32px 24px;border-radius:20px;text-align:center;box-shadow:0 15px 50px #16273d18;box-sizing:border-box}
#activationHandoff input{width:100%;height:44px;border:1px solid #ccd4df;border-radius:10px;padding:10px}
