:root{
 --bg:#060B16;--panel:#0B1220;--panel-2:#0E1728;--line:#1b2a42;--text:#EAF2FF;--muted:#8798b3;--blue:#0EA5FF;--cyan:#22D3EE;--violet:#7C3AED;--green:#22c55e;--red:#ef4444;--amber:#f59e0b;
 --radius:18px;--shadow:0 20px 60px rgba(0,0,0,.35);--sidebar:250px;
}
*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:radial-gradient(circle at 85% 5%,rgba(14,165,255,.08),transparent 30%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#07101e,#060b15 70%);border-right:1px solid rgba(96,165,250,.12);padding:22px 14px;display:flex;flex-direction:column;z-index:40}.brand{display:block;padding:0 10px 24px}.brand img{width:185px;max-width:100%;display:block}.side-nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#a7b5c9;display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:12px;transition:.2s;width:100%;text-align:left}.nav-item svg,.mobile-nav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-item:hover{background:#0c1729;color:#fff}.nav-item.active{background:linear-gradient(90deg,rgba(14,165,255,.22),rgba(124,58,237,.10));box-shadow:inset 3px 0 var(--blue);color:#fff}.sidebar-user{margin-top:auto;border-top:1px solid var(--line);padding:18px 10px 10px;display:flex;gap:10px;align-items:center}.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user small{color:var(--muted);font-size:11px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--violet));color:#fff;font-weight:800;box-shadow:0 0 25px rgba(14,165,255,.25)}.logout-form{margin-top:4px}.logout{color:#7f90a8}.app-content{margin-left:var(--sidebar);min-height:100vh}.topbar{height:72px;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:rgba(6,11,22,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.05)}.top-title{display:flex;flex-direction:column}.top-title small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.14em}.top-title strong{font-size:16px}.top-actions{display:flex;align-items:center;gap:9px;color:#bdc9da}.status-dot{width:8px;height:8px;background:var(--green);border-radius:50%;box-shadow:0 0 14px var(--green)}.page-wrap{padding:28px;max-width:1500px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:24px}.page-heading h1{font-size:30px;line-height:1.15;margin:4px 0 5px;letter-spacing:-.03em}.page-heading p{margin:0;color:var(--muted);max-width:700px}.eyebrow{display:inline-block;color:var(--cyan);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.btn{border:1px solid transparent;border-radius:10px;padding:10px 16px;font-weight:700;transition:.2s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,#0879ff,var(--blue));color:#fff;box-shadow:0 8px 25px rgba(14,165,255,.22)}.btn-secondary{background:#0d1728;color:#dce9f8;border-color:#21324d}.btn-full{width:100%}.icon-btn{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:#0c1525;color:#dbeafe}.menu-toggle{display:none}.menu-toggle span{display:block;width:17px;height:1.5px;background:currentColor;margin:2px 0}.panel,.metric-card{background:linear-gradient(180deg,rgba(14,23,40,.96),rgba(8,15,27,.96));border:1px solid rgba(96,165,250,.14);border-radius:var(--radius);box-shadow:var(--shadow)}.metric-grid{display:grid;gap:14px;margin-bottom:20px}.metric-grid.four{grid-template-columns:repeat(4,1fr)}.metric-card{padding:18px;display:flex;gap:14px;align-items:center;position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-45px;top:-45px;background:var(--card-accent);filter:blur(38px);opacity:.18}.accent-blue{--card-accent:var(--blue)}.accent-cyan{--card-accent:var(--cyan)}.accent-violet{--card-accent:var(--violet)}.accent-green{--card-accent:var(--green)}.metric-icon{width:44px;height:44px;border:1px solid color-mix(in srgb,var(--card-accent) 50%,transparent);background:color-mix(in srgb,var(--card-accent) 12%,transparent);border-radius:13px;display:grid;place-items:center;color:var(--card-accent);font-size:18px}.metric-card small,.metric-card span{display:block;color:var(--muted)}.metric-card strong{display:block;font-size:24px;line-height:1.2;margin:2px 0}.metric-card span{font-size:11px}.dashboard-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:18px}.panel{padding:20px}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.panel-head h2{margin:2px 0 0;font-size:18px}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700;vertical-align:middle;margin-left:6px}.pill.success{color:#7df7a8;background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.25)}.pill.info{color:#8fdfff;background:rgba(14,165,255,.1);border:1px solid rgba(14,165,255,.25)}.pill.muted{color:#9ca9bc;background:rgba(148,163,184,.1);border:1px solid rgba(148,163,184,.2)}.setup-list{display:grid;gap:9px}.setup-list a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid #18263c;border-radius:13px;background:#0a1424;transition:.2s}.setup-list a:hover{border-color:#24558c;background:#0c1a2f}.setup-list strong,.setup-list small{display:block}.setup-list small{color:var(--muted);margin-top:2px}.step-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(14,165,255,.25),rgba(124,58,237,.25));border:1px solid rgba(14,165,255,.35);color:#a7e5ff;font-weight:800}.activity-list{display:grid;gap:12px}.activity-item{display:flex;gap:11px;align-items:flex-start}.activity-item strong,.activity-item small{display:block}.activity-item strong{font-size:12px;text-transform:capitalize}.activity-item small{color:var(--muted);font-size:11px}.activity-dot{width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--blue);box-shadow:0 0 12px var(--blue)}.empty-state{color:var(--muted);padding:20px 0}.form-panel{padding:22px}.narrow-panel{max-width:620px}.profile-layout{display:grid;grid-template-columns:240px 1fr;gap:24px}.logo-card{border-right:1px solid var(--line);padding-right:22px}.company-logo-preview{height:140px;border:1px dashed #29405f;border-radius:15px;background:#07111f;display:grid;place-items:center;padding:14px;margin-bottom:12px}.company-logo-preview img{max-width:100%;max-height:100%}.file-btn{display:block;text-align:center;border:1px solid #29405f;background:#0c1728;border-radius:10px;padding:9px;cursor:pointer}.file-btn input{display:none}.logo-card>small{display:block;color:var(--muted);font-size:10px;margin-top:8px;text-align:center}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-grid.three{grid-template-columns:repeat(3,1fr)}label{display:block;color:#c6d3e3;font-size:12px;font-weight:600}input,select,textarea{width:100%;margin-top:6px;border:1px solid #20324c;background:#08121f;color:#eef6ff;padding:10px 12px;border-radius:9px;outline:none;min-height:42px}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(14,165,255,.10)}.form-stack{display:grid;gap:14px}.form-content{display:grid;gap:14px}.form-actions{display:flex;justify-content:flex-end;margin-top:6px}.table-panel{padding:0;overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:800px}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid #152238}th{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#73869f;background:#091321}td{color:#c9d5e5;font-size:12px}tbody tr:hover{background:rgba(14,165,255,.025)}td strong{color:#f1f7ff}.link-btn{border:0;background:transparent;color:#4bc3ff;padding:4px}.user-cell{display:flex;align-items:center;gap:10px}.user-cell small{display:block;color:var(--muted);font-size:10px}.small-avatar{width:31px;height:31px;font-size:11px}.modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.68);display:none;place-items:center;padding:18px;backdrop-filter:blur(6px)}.modal.open{display:grid}.modal-card{width:min(620px,100%);max-height:90vh;overflow:auto;background:#0a1322;border:1px solid #233854;border-radius:18px;box-shadow:0 35px 100px rgba(0,0,0,.6);padding:22px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h2{margin:2px 0 0}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.span-2{grid-column:span 2}.help{color:var(--muted);font-size:11px;margin:10px 0 0}.checkline{display:flex;align-items:center;gap:8px;margin-top:10px}.checkline input{width:auto;min-height:auto;margin:0}.toast{position:relative;padding:11px 14px;border-radius:10px;margin-bottom:12px;border:1px solid #26405f;background:#0a1728;color:#dce9f8;transition:.35s}.toast.success{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.08)}.toast.error{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08)}.toast.warning{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}.toast.fade{opacity:0;transform:translateY(-6px)}
/* Login / instalación */
.guest-shell{min-height:100vh;overflow-x:hidden;position:relative}.aurora{position:fixed;border-radius:50%;filter:blur(90px);pointer-events:none;opacity:.3}.aurora-a{width:420px;height:420px;background:#0EA5FF;right:-120px;top:-120px}.aurora-b{width:380px;height:380px;background:#7C3AED;left:-140px;bottom:-140px}.guest-main{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{position:relative;width:min(460px,100%);background:linear-gradient(180deg,rgba(13,22,38,.95),rgba(7,13,24,.96));border:1px solid rgba(96,165,250,.2);border-radius:24px;padding:30px;box-shadow:0 35px 100px rgba(0,0,0,.55)}.login-brand img{width:230px;display:block;margin:0 auto 20px}.login-copy{text-align:center;margin-bottom:24px}.login-copy h1{font-size:26px;line-height:1.2;margin:6px 0 8px}.login-copy p{color:var(--muted);margin:0}.secure-note{display:block;text-align:center;color:#667992;margin-top:14px}.installer-main{min-height:100vh;padding:35px}.install-wrap{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:start}.install-hero{position:sticky;top:35px;padding:30px}.install-logo{width:290px;max-width:100%;margin-bottom:30px}.install-hero h1{font-size:40px;line-height:1.08;letter-spacing:-.04em;margin:8px 0 12px}.install-hero p{color:var(--muted);font-size:16px}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:25px}.env-check{display:flex;align-items:center;gap:9px;background:#0a1424;border:1px solid #182941;border-radius:11px;padding:11px}.env-check span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:800}.env-check.ok span{background:rgba(34,197,94,.12);color:#6af795}.env-check.bad span{background:rgba(239,68,68,.12);color:#ff8f8f}.install-form{background:linear-gradient(180deg,rgba(13,22,38,.96),rgba(7,13,24,.97));border:1px solid rgba(96,165,250,.18);border-radius:22px;padding:24px;box-shadow:var(--shadow)}.form-section{padding:4px 0 18px;margin-bottom:18px;border-bottom:1px solid #17263b}.form-section h2{font-size:16px;margin:0 0 13px}.form-section label{margin-top:10px}.form-section small{display:block;color:var(--muted);margin-top:4px}.center-card{width:min(520px,100%);text-align:center;background:#0c1525;border:1px solid #213450;border-radius:20px;padding:35px;box-shadow:var(--shadow)}.center-card h1{margin:12px 0 7px}.center-card p{color:var(--muted);margin-bottom:20px}.brand-mark{margin:0 auto;width:64px;height:64px;border-radius:18px;display:grid;place-items:center;font-size:34px;font-weight:900;background:linear-gradient(135deg,var(--cyan),var(--violet));color:#fff}
.mobile-nav{display:none}
@media(max-width:1050px){.metric-grid.four{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.profile-layout{grid-template-columns:1fr}.logo-card{border-right:0;border-bottom:1px solid var(--line);padding:0 0 20px}.company-logo-preview{max-width:300px}.install-wrap{grid-template-columns:1fr}.install-hero{position:relative;top:0;padding:10px}.settings-grid{grid-template-columns:1fr}.span-2{grid-column:auto}}
@media(max-width:760px){body{font-size:13px}.sidebar{transform:translateX(-105%);transition:.25s;width:260px}.sidebar.open{transform:translateX(0);box-shadow:40px 0 80px rgba(0,0,0,.6)}.app-content{margin-left:0}.topbar{height:64px;padding:0 15px}.menu-toggle{display:grid}.top-title small{display:none}.top-user{display:none}.page-wrap{padding:18px 14px 90px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:25px}.metric-grid.four{grid-template-columns:repeat(2,1fr)}.metric-card{padding:14px;align-items:flex-start}.metric-icon{width:38px;height:38px}.metric-card strong{font-size:20px}.metric-card span{display:none}.panel{padding:16px}.form-grid.two,.form-grid.three{grid-template-columns:1fr}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;z-index:35;background:rgba(7,13,24,.94);border-top:1px solid #1b2a42;backdrop-filter:blur(18px);padding:7px 4px max(7px,env(safe-area-inset-bottom))}.mobile-nav a{display:grid;justify-items:center;gap:3px;color:#72859e;font-size:9px}.mobile-nav a.active{color:var(--blue)}.mobile-nav svg{width:20px;height:20px}.install-shell .installer-main{padding:20px 12px}.install-hero h1{font-size:31px}.install-logo{width:230px;margin-bottom:18px}.check-grid{grid-template-columns:1fr}.install-form{padding:17px}.login-card{padding:24px 18px}.modal{padding:10px;align-items:end}.modal-card{border-radius:20px 20px 10px 10px;max-height:88vh}}
@media(max-width:420px){.metric-grid.four{grid-template-columns:1fr 1fr}.metric-card{gap:9px}.metric-icon{display:none}.page-heading .btn{width:100%}.install-hero{padding:4px}.login-copy h1{font-size:23px}}

/* Resumen operativo */
.accent-amber{--card-accent:var(--amber)}
.dashboard-heading{align-items:center}.dashboard-actions{display:flex;align-items:flex-end;gap:10px}.dashboard-filters{display:flex;gap:8px;align-items:flex-end}.compact-field{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.compact-field span{display:block;margin-bottom:5px}.compact-field select{margin:0;min-width:130px;min-height:39px;padding:8px 34px 8px 10px;background:#091423}
.dashboard-metric-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dashboard-kpis .metric-card{min-height:105px}
.operations-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:18px;border:1px solid rgba(96,165,250,.13);border-radius:15px;overflow:hidden;background:#142138}.operations-strip>div,.operations-strip>a{display:grid;grid-template-columns:auto auto 1fr;column-gap:10px;align-items:center;background:linear-gradient(180deg,#0b1525,#08111e);padding:13px 16px;min-height:66px;transition:.2s}.operations-strip>a:hover{background:#0d1b2e}.operations-strip strong{font-size:15px}.operations-strip small{grid-column:2/4;color:var(--muted);font-size:10px}.ops-icon{grid-row:1/3;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(14,165,255,.09);border:1px solid rgba(14,165,255,.18);color:#63cfff;font-weight:800}
.dashboard-board{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.dashboard-widget{grid-column:span 6;min-width:0}.wide-widget{grid-column:span 12}.panel-link{font-size:11px;color:#45bfff}.panel-link:hover{color:#8ad9ff}.widget-note{margin:15px 0 0;padding-top:13px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}
.status-chart-layout{display:grid;grid-template-columns:180px 1fr;gap:24px;align-items:center}.donut-wrap{width:170px;height:170px;position:relative;margin:auto}.status-donut{width:100%;height:100%;transform:rotate(-90deg)}.status-donut circle{fill:none;stroke-width:4.8}.donut-track{stroke:#14243a}.donut-segment{stroke-linecap:round}.donut-completed{stroke:#22c55e}.donut-progress{stroke:#7c3aed}.donut-pending{stroke:#f59e0b}.donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.donut-center strong{font-size:31px;line-height:1}.donut-center small{color:var(--muted);margin-top:5px}.status-legend{display:grid;gap:10px}.status-legend>div{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:10px 11px;border:1px solid #17263b;background:#091422;border-radius:11px}.status-legend strong{font-size:12px}.status-legend b{font-size:14px}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.completed{background:var(--green);box-shadow:0 0 10px rgba(34,197,94,.5)}.legend-dot.progress{background:var(--violet);box-shadow:0 0 10px rgba(124,58,237,.5)}.legend-dot.pending{background:var(--amber);box-shadow:0 0 10px rgba(245,158,11,.5)}
.quick-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-day{min-width:0;text-align:center;border:1px solid #17263b;background:#091321;border-radius:12px;padding:10px 5px}.calendar-day span,.calendar-day small{display:block}.calendar-day span{font-size:9px;text-transform:uppercase;color:#6f829d}.calendar-day strong{display:block;font-size:19px;margin:2px 0 5px}.calendar-day small{font-size:9px;color:#74869e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-day.today{border-color:rgba(14,165,255,.5);background:linear-gradient(180deg,rgba(14,165,255,.12),#091321);box-shadow:inset 0 0 24px rgba(14,165,255,.05)}.calendar-day.today strong{color:#79d8ff}.calendar-summary{display:flex;gap:8px;align-items:center;margin-top:13px;color:var(--muted);font-size:11px}
.branch-performance-list{display:grid}.branch-performance-row{display:grid;grid-template-columns:minmax(230px,1.25fr) 90px 90px minmax(220px,1fr);gap:15px;align-items:center;padding:13px 0;border-top:1px solid #142138}.branch-performance-row:first-child{border-top:0}.branch-main{display:flex;align-items:center;gap:10px;min-width:0}.branch-main strong,.branch-main small{display:block}.branch-main small{font-size:10px;color:var(--muted)}.branch-badge{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(14,165,255,.18),rgba(124,58,237,.18));border:1px solid rgba(14,165,255,.18);font-size:10px;color:#b7e9ff;font-weight:800}.branch-metric{text-align:center}.branch-metric strong,.branch-metric small{display:block}.branch-metric strong{font-size:16px}.branch-metric small{font-size:9px;color:var(--muted)}.branch-progress progress{width:100%;height:7px;border:0;border-radius:999px;overflow:hidden;background:#17253a}.branch-progress progress::-webkit-progress-bar{background:#17253a;border-radius:999px}.branch-progress progress::-webkit-progress-value{background:linear-gradient(90deg,#0879ff,#22d3ee);border-radius:999px}.branch-progress progress::-moz-progress-bar{background:linear-gradient(90deg,#0879ff,#22d3ee);border-radius:999px}.branch-progress small{display:block;color:var(--muted);font-size:9px;margin-top:4px}
.trend-chart{height:180px;display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:end;border-bottom:1px solid #17253a;padding:10px 2px 0}.trend-column{height:100%;display:grid;grid-template-rows:1fr auto auto;justify-items:center;min-width:0}.trend-column svg{width:100%;height:120px;overflow:visible}.trend-column rect{fill:url(#none);fill:#148cf7;opacity:.78}.trend-column strong{font-size:10px;color:#a9c5e8}.trend-column small{font-size:9px;color:var(--muted);margin-top:3px}
.technician-list{display:grid;gap:6px}.technician-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid #142138}.technician-row:first-child{border-top:0}.technician-row strong,.technician-row small{display:block}.technician-row strong{font-size:12px}.technician-row small{color:var(--muted);font-size:10px}.dashboard-activity{max-height:310px;overflow:auto;padding-right:4px}.compact-empty{display:grid;gap:4px;padding:28px 8px}.compact-empty strong{color:#dce9f8}.compact-empty span{font-size:11px}
.dashboard-preferences-card{width:min(720px,100%)}.widget-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.widget-choice{display:flex;gap:10px;align-items:flex-start;border:1px solid #1a2a42;background:#091422;padding:12px;border-radius:12px;cursor:pointer}.widget-choice:hover{border-color:#2b4f77}.widget-choice input{width:auto;min-height:auto;margin:3px 0 0}.widget-choice strong,.widget-choice small{display:block}.widget-choice small{color:var(--muted);font-size:10px;margin-top:2px}
@media(max-width:1180px){.dashboard-heading{align-items:flex-start;flex-direction:column}.dashboard-actions{width:100%;justify-content:space-between}.dashboard-widget{grid-column:span 12}.branch-performance-row{grid-template-columns:minmax(220px,1.2fr) 80px 80px minmax(180px,1fr)}}
@media(max-width:760px){.dashboard-actions{align-items:stretch;flex-direction:column}.dashboard-filters{display:grid;grid-template-columns:1fr 1fr}.compact-field select{min-width:0}.dashboard-actions>.btn{width:100%}.operations-strip{grid-template-columns:repeat(2,1fr)}.status-chart-layout{grid-template-columns:1fr}.quick-calendar{overflow-x:auto;grid-template-columns:repeat(7,minmax(78px,1fr));padding-bottom:5px}.branch-performance-row{grid-template-columns:1fr auto auto}.branch-progress{grid-column:1/4}.widget-choice-grid{grid-template-columns:1fr}.dashboard-board{gap:12px}}
@media(max-width:420px){.dashboard-filters{grid-template-columns:1fr}.operations-strip{grid-template-columns:1fr 1fr}.operations-strip>div,.operations-strip>a{grid-template-columns:auto 1fr;padding:11px}.operations-strip small{grid-column:2}.ops-icon{grid-row:1/3}.status-chart-layout{gap:12px}.donut-wrap{width:145px;height:145px}.branch-performance-row{grid-template-columns:1fr auto}.branch-metric:nth-of-type(3){display:none}.branch-progress{grid-column:1/3}}

/* Clientes y domicilios */
.heading-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.customer-heading{align-items:center}.customer-kpis .metric-card{min-height:104px}.customer-filter-panel{padding:14px 16px;margin-bottom:18px}.customer-filters{display:grid;grid-template-columns:minmax(240px,1.7fr) repeat(4,minmax(120px,.75fr)) auto;gap:10px;align-items:end}.customer-filters label>span,.field-label{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px}.customer-filters input,.customer-filters select{margin:0;min-height:40px}.filter-actions{display:flex;gap:7px}.filter-actions .btn{padding:9px 13px}.customer-list-head{padding:18px 18px 4px}.customer-list-head small{color:var(--muted)}.customer-cell{display:flex;align-items:center;gap:10px}.customer-cell>span:last-child,.customer-cell strong,.customer-cell small{display:block}.customer-cell small,.cell-sub{color:var(--muted);font-size:10px;margin-top:2px}.customer-avatar{width:34px;height:34px;flex:0 0 auto;border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:800;border:1px solid rgba(14,165,255,.25);background:linear-gradient(135deg,rgba(14,165,255,.17),rgba(34,211,238,.08));color:#a9e7ff}.customer-avatar.person{border-radius:50%;background:linear-gradient(135deg,rgba(124,58,237,.2),rgba(14,165,255,.12));border-color:rgba(124,58,237,.3);color:#d8c6ff}.customer-avatar.large{width:62px;height:62px;font-size:22px;border-radius:18px;box-shadow:0 12px 30px rgba(14,165,255,.12)}.customer-avatar.large.person{border-radius:50%}.count-chip{display:inline-grid;place-items:center;min-width:27px;height:25px;padding:0 7px;border:1px solid #233751;border-radius:8px;background:#0a1525;color:#c7eaff;font-weight:700}.geo-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px rgba(34,211,238,.65);margin-left:6px}.tag-summary{display:block;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#96a8bf}.customer-mobile-list{display:none}.customer-empty{display:grid;gap:4px;text-align:center;padding:50px 20px}.customer-empty strong{color:#dceaff}.pagination{display:flex;justify-content:center;align-items:center;gap:15px;padding:16px;border-top:1px solid #152238}.pagination a{color:#58c7ff;font-size:11px}.pagination span{color:var(--muted);font-size:10px}
.customer-form-panel{max-width:980px;margin:0 auto;padding:22px}.customer-form{gap:16px}.form-section-card{display:grid;gap:14px;padding:18px;border:1px solid #172941;background:linear-gradient(180deg,#0a1525,#08111e);border-radius:15px}.section-title{display:flex;gap:11px;align-items:center;padding-bottom:11px;border-bottom:1px solid #17263b}.section-title strong,.section-title small{display:block}.section-title small{font-size:10px;color:var(--muted);margin-top:2px}.tag-choice-grid{display:flex;gap:8px;flex-wrap:wrap}.tag-choice{display:inline-flex;align-items:center;gap:7px;border:1px solid #223650;background:#0a1626;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:600;cursor:pointer}.tag-choice input{width:auto;min-height:auto;margin:0}.tag-color{--tag-color:#0EA5FF;width:8px;height:8px;border-radius:50%;background:var(--tag-color);box-shadow:0 0 8px color-mix(in srgb,var(--tag-color) 55%,transparent)}.customer-form-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}
.back-link{display:inline-block;color:#62caff;font-size:11px;margin-bottom:12px}.customer-title-line{display:flex;align-items:center;gap:15px}.customer-detail-heading{align-items:center}.customer-detail-heading h1{margin:1px 0 2px}.customer-detail-heading p{font-size:12px}.customer-detail-grid{display:grid;grid-template-columns:310px minmax(0,1fr);gap:16px}.customer-sidebar-stack,.customer-main-stack{display:grid;gap:16px;align-content:start}.profile-list{display:grid;margin:0}.profile-list>div{display:grid;grid-template-columns:98px 1fr;gap:10px;padding:10px 0;border-top:1px solid #16243a}.profile-list>div:first-child{border-top:0}.profile-list dt{color:var(--muted);font-size:10px}.profile-list dd{margin:0;font-size:11px;color:#d9e6f5;word-break:break-word}.profile-note{border-top:1px solid #17263b;padding-top:13px;margin-top:8px}.profile-note small{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.07em}.profile-note p{margin:5px 0 0;color:#b7c6d9;font-size:11px}.tag-cloud{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:13px}.customer-tag{--tag-color:#0EA5FF;display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--tag-color) 32%,#17263b);background:color-mix(in srgb,var(--tag-color) 9%,#091321);padding:6px 9px;border-radius:999px;color:#dfeeff;font-size:10px}.customer-tag i{width:7px;height:7px;border-radius:50%;background:var(--tag-color);box-shadow:0 0 8px var(--tag-color)}.tag-sync-form{display:grid;gap:10px;padding-top:10px;border-top:1px solid #17263b}.tag-choice-grid.compact{gap:6px}.tag-choice-grid.compact .tag-choice{padding:5px 8px;font-size:10px}.create-tag-link{margin-top:9px}.muted-copy{color:var(--muted);font-size:11px}.btn-danger-soft{background:rgba(239,68,68,.09);border-color:rgba(239,68,68,.25);color:#ff9e9e}
.address-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.address-card{border:1px solid #192a42;background:#091422;border-radius:14px;padding:14px}.address-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.address-card-head strong{font-size:12px}.address-card p{margin:9px 0 2px;color:#dce9f8;font-size:11px}.address-card>small{display:block;color:var(--muted);font-size:10px}.address-card em{display:block;font-style:normal;color:#88a0ba;font-size:10px;border-top:1px dashed #20314a;margin-top:9px;padding-top:8px}.geo-badge{font-size:9px;color:#7ee7ff;background:rgba(34,211,238,.07);border:1px solid rgba(34,211,238,.16);border-radius:999px;padding:3px 7px;white-space:nowrap}.address-actions{display:flex;gap:5px;justify-content:flex-end;border-top:1px solid #17263b;margin-top:10px;padding-top:8px}.address-actions form,.document-actions form,.heading-actions form{margin:0}.danger-link{color:#ff8f8f}.wide-modal{width:min(780px,100%)}.coordinate-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.location-btn{min-height:42px;white-space:nowrap}.customer-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.note-form{display:grid;gap:8px;margin-bottom:14px}.note-form textarea{margin:0}.note-form .btn{justify-self:end}.note-list{display:grid;gap:8px;max-height:370px;overflow:auto}.note-list article{border-left:2px solid rgba(14,165,255,.45);background:#091321;padding:10px 11px;border-radius:0 10px 10px 0}.note-list p{margin:0 0 5px;font-size:11px;color:#c6d6e8}.note-list small{font-size:9px;color:var(--muted)}.document-upload{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:14px}.file-drop{position:relative;display:grid;place-items:center;min-height:42px;border:1px dashed #2b4a6d;background:#091522;border-radius:10px;color:#8fcaeb;font-size:11px;cursor:pointer;padding:8px 12px;text-align:center;overflow:hidden}.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}.file-drop[data-filename]:after{content:attr(data-filename);display:block;color:#d7eaff;font-size:10px;margin-left:6px;max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-drop.large{min-height:120px;border-radius:14px;font-size:13px}.document-list{display:grid;gap:7px}.document-list article{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;border:1px solid #18283f;background:#091321;border-radius:11px;padding:9px}.document-icon{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;color:#66d0ff;background:rgba(14,165,255,.08);border:1px solid rgba(14,165,255,.15)}.document-list strong,.document-list small{display:block}.document-list strong{font-size:10px;max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-list small{font-size:9px;color:var(--muted)}.document-actions{display:flex;align-items:center;gap:3px}.customer-timeline{display:grid}.customer-timeline article{display:grid;grid-template-columns:14px 1fr;gap:8px;position:relative;padding:7px 0}.customer-timeline article:not(:last-child):after{content:"";position:absolute;left:4px;top:17px;bottom:-7px;width:1px;background:#20334e}.timeline-dot{width:9px;height:9px;border-radius:50%;margin-top:4px;background:var(--blue);box-shadow:0 0 10px rgba(14,165,255,.45)}.customer-timeline strong,.customer-timeline small{display:block}.customer-timeline strong{font-size:11px}.customer-timeline small{font-size:9px;color:var(--muted);margin-top:2px}
.import-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px}.import-card,.import-guide{align-content:start}.import-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.import-columns>div{border:1px solid #18283f;background:#091321;border-radius:10px;padding:10px}.import-columns strong,.import-columns span{display:block}.import-columns strong{font-size:11px;color:#dceaff}.import-columns span{font-size:9px;color:var(--muted);margin-top:2px}
@media(max-width:1180px){.customer-filters{grid-template-columns:repeat(3,1fr)}.search-field{grid-column:span 2}.filter-actions{align-self:end}.customer-detail-grid{grid-template-columns:270px minmax(0,1fr)}.customer-two-col{grid-template-columns:1fr}.address-grid{grid-template-columns:1fr}}
@media(max-width:900px){.customer-detail-grid{grid-template-columns:1fr}.customer-sidebar-stack{grid-template-columns:1fr 1fr}.customer-profile-card{grid-row:span 1}.import-layout{grid-template-columns:1fr}.coordinate-row{grid-template-columns:1fr 1fr}.coordinate-row .location-btn{grid-column:1/3}}
@media(max-width:760px){.customer-heading,.customer-detail-heading{align-items:flex-start}.heading-actions{width:100%}.heading-actions .btn,.heading-actions form{flex:1}.heading-actions form .btn{width:100%}.customer-filters{grid-template-columns:1fr 1fr}.search-field{grid-column:1/3}.filter-actions{grid-column:1/3}.filter-actions .btn{flex:1}.customer-table-panel .table-wrap{display:none}.customer-mobile-list{display:grid;gap:8px;padding:10px}.customer-list-head{padding:14px 14px 4px}.customer-mobile-card{border:1px solid #18283f;background:#091321;border-radius:13px;padding:11px}.customer-mobile-top{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px}.customer-mobile-top strong,.customer-mobile-top small{display:block}.customer-mobile-top small{font-size:9px;color:var(--muted)}.customer-mobile-meta{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #17263b;margin-top:9px;padding-top:8px;color:#8296ae;font-size:9px}.customer-form-panel{padding:14px}.form-section-card{padding:14px}.customer-form-actions{display:grid;grid-template-columns:1fr 1fr}.customer-title-line{align-items:flex-start}.customer-avatar.large{width:52px;height:52px}.customer-detail-heading h1{font-size:22px}.customer-sidebar-stack{grid-template-columns:1fr}.address-grid{grid-template-columns:1fr}.document-list article{grid-template-columns:auto 1fr}.document-actions{grid-column:2;justify-content:flex-start}.import-columns{grid-template-columns:1fr}}
@media(max-width:420px){.customer-filters{grid-template-columns:1fr}.search-field,.filter-actions{grid-column:auto}.customer-kpis .metric-card{min-height:86px}.heading-actions{display:grid;grid-template-columns:1fr 1fr}.heading-actions .btn:first-child:last-child{grid-column:1/3}.customer-title-line{gap:10px}.customer-avatar.large{width:46px;height:46px;font-size:18px}.coordinate-row{grid-template-columns:1fr}.coordinate-row .location-btn{grid-column:auto}.customer-form-actions{grid-template-columns:1fr}.document-upload{grid-template-columns:1fr}.address-card-head{display:block}.geo-badge{display:inline-block;margin-top:5px}}

/* Solicitudes de servicio */
.request-heading,.request-detail-heading{align-items:center}.request-kpis .metric-card{min-height:104px}.request-filter-panel{padding:14px}.request-filters{display:grid;grid-template-columns:2fr repeat(3,minmax(140px,1fr)) auto;gap:10px;align-items:end}.request-filters label>span{display:block;margin-bottom:6px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.request-table-panel{padding:0;overflow:hidden}.request-list-head{padding:18px 18px 10px}.request-table{width:100%;border-collapse:collapse}.request-table th{font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#7890aa;font-weight:700;padding:10px 13px;text-align:left;border-bottom:1px solid #18283f}.request-table td{padding:12px 13px;border-bottom:1px solid #142338;font-size:11px;vertical-align:middle}.request-table tbody tr:hover{background:rgba(14,165,255,.035)}.request-cell{display:grid;gap:3px}.request-cell strong{color:#e9f4ff;font-size:11px}.request-cell small{color:var(--muted);font-size:9px;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.request-status,.priority-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:700;white-space:nowrap;border:1px solid transparent}.request-status.received{color:#78d5ff;background:rgba(14,165,255,.08);border-color:rgba(14,165,255,.18)}.request-status.evaluating{color:#d3b4ff;background:rgba(124,58,237,.09);border-color:rgba(124,58,237,.18)}.request-status.scheduled{color:#7ee7ff;background:rgba(34,211,238,.08);border-color:rgba(34,211,238,.18)}.request-status.in_progress{color:#ffd56b;background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.18)}.request-status.completed{color:#8bf0af;background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.18)}.request-status.cancelled{color:#ff9c9c;background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.18)}.priority-chip.low{color:#9eb0c5;background:#0b1726;border-color:#1c3048}.priority-chip.medium{color:#7ee7ff;background:rgba(34,211,238,.06);border-color:rgba(34,211,238,.16)}.priority-chip.high{color:#ffd56b;background:rgba(245,158,11,.07);border-color:rgba(245,158,11,.17)}.priority-chip.urgent{color:#ff9eaa;background:rgba(244,63,94,.08);border-color:rgba(244,63,94,.18)}.request-mobile-list{display:none}.request-form-panel{max-width:1050px;margin:auto}.request-form .field-help{display:block;margin-top:-8px;color:var(--muted);font-size:9px}.request-heading-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:11px;margin-top:8px}.request-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px}.request-main-stack,.request-side-stack{display:grid;gap:16px;align-content:start}.request-description{font-size:13px;line-height:1.8;color:#cbd9e8;margin:0}.request-attachment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.request-file{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:1px solid #18283f;background:#091321;border-radius:12px;padding:10px}.request-file-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:#66d0ff;background:rgba(14,165,255,.08);border:1px solid rgba(14,165,255,.16)}.request-file strong,.request-file small{display:block}.request-file strong{font-size:10px;max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.request-file small{font-size:9px;color:var(--muted);margin-top:2px}.request-timeline{display:grid}.request-timeline article{display:grid;grid-template-columns:14px 1fr;gap:8px;position:relative;padding:8px 0}.request-timeline article:not(:last-child):after{content:"";position:absolute;left:4px;top:18px;bottom:-8px;width:1px;background:#20334e}.request-timeline strong,.request-timeline small{display:block}.request-timeline strong{font-size:11px}.request-timeline small{font-size:9px;color:var(--muted);margin-top:2px}.request-progress{display:grid;gap:10px;margin-bottom:15px}.progress-line{height:8px;border-radius:999px;background:#102037;overflow:hidden}.progress-line i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--violet));box-shadow:0 0 15px rgba(14,165,255,.3)}.status-form{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:14px}.order-created-card{border-color:rgba(34,197,94,.22);background:linear-gradient(180deg,rgba(34,197,94,.05),rgba(8,17,30,.96))}.order-created-card h2{margin:5px 0}.order-created-card p{color:var(--muted);font-size:10px;line-height:1.6;margin:0}.accent-cyan{--card-accent:var(--cyan)}
@media(max-width:1180px){.request-filters{grid-template-columns:2fr 1fr 1fr}.request-filters label:nth-of-type(4){grid-column:1}.request-filters .filter-actions{grid-column:2/4}.request-detail-grid{grid-template-columns:minmax(0,1fr) 290px}.request-attachment-grid{grid-template-columns:1fr}}
@media(max-width:900px){.request-detail-grid{grid-template-columns:1fr}.request-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.request-side-stack .order-created-card{grid-column:1/3}}
@media(max-width:760px){.request-heading,.request-detail-heading{align-items:flex-start}.request-filters{grid-template-columns:1fr 1fr}.request-filters .search-field{grid-column:1/3}.request-filters .filter-actions{grid-column:1/3}.request-filters .filter-actions .btn{flex:1}.request-table-panel .table-wrap{display:none}.request-mobile-list{display:grid;gap:8px;padding:10px}.request-mobile-card{display:grid;gap:7px;border:1px solid #18283f;background:#091321;border-radius:13px;padding:11px}.request-mobile-card>div:first-child,.request-mobile-card footer{display:flex;justify-content:space-between;align-items:center;gap:8px}.request-mobile-card h3{font-size:12px;margin:0;color:#e8f3ff}.request-mobile-card p{font-size:10px;color:#9cb0c6;margin:0}.request-mobile-card footer{border-top:1px solid #17263b;padding-top:8px}.request-mobile-card footer small{color:var(--muted);font-size:9px}.request-form-panel{padding:14px}.request-detail-heading .heading-actions{width:100%}.request-detail-heading .heading-actions .btn,.request-detail-heading .heading-actions form{flex:1}.request-detail-heading .heading-actions form .btn{width:100%}.request-side-stack{grid-template-columns:1fr}.request-side-stack .order-created-card{grid-column:auto}.request-file{grid-template-columns:auto 1fr}.request-file .document-actions{grid-column:2;justify-content:flex-start}}
@media(max-width:420px){.request-filters{grid-template-columns:1fr}.request-filters .search-field,.request-filters .filter-actions{grid-column:auto}.request-heading .btn{width:100%}.request-heading-meta{gap:5px}.request-attachment-grid{grid-template-columns:1fr}}

/* Agenda y calendario */
.accent-amber{--card-accent:var(--amber)}.heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn-compact{padding:7px 11px;font-size:11px}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.calendar-heading{align-items:center}.calendar-kpis .metric-card{min-height:104px}.calendar-toolbar{padding:14px;margin-bottom:16px}.calendar-viewbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:13px;border-bottom:1px solid var(--line)}.segmented{display:inline-flex;padding:3px;border:1px solid #1d2e47;background:#091321;border-radius:11px}.segmented a{padding:7px 14px;border-radius:8px;color:#8fa3bb;font-size:11px;font-weight:700}.segmented a.active{background:linear-gradient(135deg,rgba(14,165,255,.2),rgba(124,58,237,.18));color:#fff;box-shadow:inset 0 0 0 1px rgba(96,165,250,.18)}.calendar-period{display:flex;align-items:center;justify-content:flex-end;gap:8px}.calendar-period strong{font-size:13px;min-width:130px;text-align:center}.calendar-arrow{width:32px;height:32px;border-radius:9px;border:1px solid #20324d;background:#0a1423;display:grid;place-items:center;color:#dcecff;font-size:20px}.calendar-filters{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;gap:10px;align-items:end;padding-top:13px}.calendar-filters label>span,.calendar-filters label{font-size:10px;color:var(--muted)}.calendar-filters label{display:grid;gap:6px}.calendar-reminders{border:1px solid rgba(124,58,237,.2);background:linear-gradient(90deg,rgba(124,58,237,.08),rgba(14,165,255,.05));border-radius:16px;margin-bottom:16px;overflow:hidden}.reminder-head{padding:11px 14px;border-bottom:1px solid rgba(124,58,237,.13);display:flex;justify-content:space-between;gap:10px}.reminder-head span{font-size:11px;font-weight:800}.reminder-head small{font-size:9px;color:#b3a2ef}.reminder-strip{display:flex;gap:8px;padding:10px;overflow:auto}.reminder-strip a{min-width:210px;border:1px solid #1c2c46;background:#091321;border-radius:11px;padding:9px 11px}.reminder-strip strong,.reminder-strip span{display:block}.reminder-strip strong{font-size:10px}.reminder-strip span{font-size:9px;color:var(--muted);margin-top:3px}.calendar-board{padding:0;overflow:auto}.month-head,.month-grid{min-width:840px;display:grid;grid-template-columns:repeat(7,minmax(120px,1fr))}.month-head{position:sticky;top:0;z-index:2;background:#0b1423;border-bottom:1px solid #1a2b43}.month-head div{padding:11px 12px;text-transform:uppercase;letter-spacing:.08em;color:#7890aa;font-size:9px;font-weight:800}.month-grid{grid-auto-rows:minmax(128px,1fr)}.month-day{border-right:1px solid #15243a;border-bottom:1px solid #15243a;background:rgba(8,16,29,.58);min-height:128px}.month-day:nth-child(7n){border-right:0}.month-day.outside{opacity:.45}.month-day.today{background:rgba(14,165,255,.035)}.month-day header{display:flex;justify-content:space-between;align-items:center;padding:8px 9px}.month-day header span{font-size:11px;font-weight:800}.month-day.today header span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--violet));color:#fff}.month-day header a{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;color:#66809e}.month-day header a:hover{background:#102038;color:#fff}.month-events{display:grid;gap:4px;padding:0 6px 7px;min-height:85px}.calendar-event{position:relative;z-index:1;display:grid;gap:1px;border:1px solid rgba(14,165,255,.2);background:linear-gradient(135deg,rgba(14,165,255,.13),rgba(14,165,255,.05));border-radius:8px;padding:6px 7px;overflow:hidden;transition:.15s}.calendar-event:hover{transform:translateY(-1px);border-color:rgba(14,165,255,.42)}.calendar-event[draggable="true"]{cursor:grab}.calendar-event.dragging{opacity:.45}.calendar-event time,.calendar-event span{font-size:8px;color:#8ea7c2}.calendar-event strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.confirmed{border-color:rgba(124,58,237,.3);background:rgba(124,58,237,.11)}.calendar-event.in_progress{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.1)}.calendar-event.completed{border-color:rgba(34,197,94,.27);background:rgba(34,197,94,.09);opacity:.8}.calendar-event.cancelled{border-color:rgba(239,68,68,.2);background:rgba(239,68,68,.07);opacity:.55;text-decoration:line-through}.more-events{font-size:8px;color:#7188a4;padding:2px 4px}.time-calendar{min-width:1050px;display:grid;grid-template-columns:62px repeat(7,minmax(130px,1fr));align-items:stretch}.time-calendar.single-day{min-width:520px;grid-template-columns:62px minmax(420px,1fr)}.time-corner,.day-heading{height:58px;position:sticky;top:0;z-index:4;background:#0b1423;border-bottom:1px solid #1a2b43}.day-heading{border-left:1px solid #15243a;display:flex;align-items:center;justify-content:center;gap:8px}.day-heading span{font-size:9px;text-transform:uppercase;color:#7890aa}.day-heading strong{font-size:16px}.day-heading.today strong{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--violet))}.time-label{height:82px;border-bottom:1px solid #142239;color:#6f849e;font-size:9px;text-align:center;padding-top:7px;position:sticky;left:0;background:#0a1220;z-index:3}.time-slot{height:82px;border-left:1px solid #142239;border-bottom:1px solid #142239;padding:4px;position:relative;display:grid;gap:3px;align-content:start;transition:.12s}.time-slot:hover{background:rgba(14,165,255,.025)}.slot-add{position:absolute;inset:0;z-index:0}.time-slot .calendar-event{z-index:1}.calendar-drop-active{background:rgba(34,211,238,.08)!important;box-shadow:inset 0 0 0 1px rgba(34,211,238,.28)}.calendar-empty{display:grid;place-items:center;text-align:center;gap:4px;color:var(--muted);padding:20px}.calendar-empty strong{color:#dbeafe}.calendar-form-panel{max-width:1000px;margin:auto}.calendar-form .field-help{display:block;color:var(--muted);font-size:9px;margin-top:-8px}.calendar-detail-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:11px}.calendar-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:800;border:1px solid #1f324d}.calendar-status.scheduled{color:#7dd7ff;background:rgba(14,165,255,.08)}.calendar-status.confirmed{color:#d3b6ff;background:rgba(124,58,237,.08)}.calendar-status.in_progress{color:#ffd46d;background:rgba(245,158,11,.08)}.calendar-status.completed{color:#8df0ae;background:rgba(34,197,94,.08)}.calendar-status.cancelled{color:#ff9d9d;background:rgba(239,68,68,.08)}.calendar-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}.calendar-main-stack,.calendar-side-stack{display:grid;gap:16px;align-content:start}.calendar-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.calendar-info-grid div{border:1px solid #18283f;background:#091321;border-radius:11px;padding:10px}.calendar-info-grid dt{font-size:9px;color:var(--muted)}.calendar-info-grid dd{font-size:11px;margin:3px 0 0;color:#e4f1ff;font-weight:700}.availability-panel{max-width:950px;margin:auto}.availability-selector{display:flex;justify-content:flex-end;margin-bottom:14px}.availability-selector label{display:grid;gap:5px;min-width:280px;font-size:9px;color:var(--muted)}.availability-list{display:grid;gap:8px}.availability-list article{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;align-items:center;border:1px solid #18283f;background:#091321;border-radius:12px;padding:11px}.availability-list article>label:not(.availability-toggle){display:grid;gap:5px;font-size:9px;color:var(--muted)}.availability-toggle{display:flex;align-items:center;gap:10px;font-weight:800}.availability-toggle input{width:18px;height:18px}.availability-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.availability-actions span{font-size:9px;color:var(--muted)}
@media(max-width:1180px){.calendar-filters{grid-template-columns:repeat(3,1fr)}.calendar-filters .filter-actions{grid-column:span 2}.calendar-detail-grid{grid-template-columns:minmax(0,1fr) 280px}}
@media(max-width:900px){.calendar-viewbar{align-items:flex-start;flex-direction:column}.calendar-period{width:100%;justify-content:flex-start}.calendar-filters{grid-template-columns:1fr 1fr}.calendar-filters .filter-actions{grid-column:1/3}.calendar-detail-grid{grid-template-columns:1fr}.calendar-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-side-stack section:last-child:nth-child(odd){grid-column:1/3}.availability-list article{grid-template-columns:1fr 1fr}.availability-toggle{grid-column:1/3}}
@media(max-width:760px){.calendar-heading,.calendar-detail-heading{align-items:flex-start}.calendar-heading .heading-actions,.calendar-detail-heading .heading-actions{width:100%}.calendar-heading .heading-actions .btn,.calendar-detail-heading .heading-actions .btn{flex:1;text-align:center}.calendar-toolbar{padding:10px}.calendar-filters{grid-template-columns:1fr 1fr}.calendar-period{flex-wrap:wrap}.calendar-period strong{order:-1;width:100%;text-align:left}.calendar-board{border-radius:14px}.time-calendar{min-width:820px}.time-calendar.single-day{min-width:460px}.month-head,.month-grid{min-width:720px}.calendar-side-stack{grid-template-columns:1fr}.calendar-side-stack section:last-child:nth-child(odd){grid-column:auto}.availability-panel{padding:14px}.availability-selector label{min-width:100%;width:100%}.availability-list article{grid-template-columns:1fr 1fr}.availability-toggle{grid-column:1/3}.availability-actions{align-items:stretch;flex-direction:column}.availability-actions .btn{width:100%}}
@media(max-width:420px){.calendar-filters{grid-template-columns:1fr}.calendar-filters .filter-actions{grid-column:auto}.calendar-viewbar .segmented{width:100%}.segmented a{flex:1;text-align:center}.calendar-kpis .metric-card{min-height:86px}.calendar-info-grid{grid-template-columns:1fr}.availability-list article{grid-template-columns:1fr}.availability-toggle{grid-column:auto}.calendar-heading .heading-actions{display:grid;grid-template-columns:1fr 1fr}}

/* Módulo 6 · Órdenes de trabajo */
.work-order-heading{align-items:center}.work-order-kpis .metric-card{min-height:106px}.work-order-filter-panel{padding:14px;margin-bottom:16px}.work-order-filters{display:grid;grid-template-columns:2fr repeat(4,minmax(120px,1fr)) auto;gap:10px;align-items:end}.work-order-filters label{display:grid;gap:6px;font-size:10px;color:var(--muted)}.work-order-filters .filter-actions{display:flex;gap:7px}.work-order-table-panel{padding:0;overflow:hidden}.work-order-list-head{padding:16px 18px;border-bottom:1px solid var(--line)}.work-order-table{min-width:1060px}.work-order-table td{vertical-align:middle}.order-status{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:999px;border:1px solid #213550;font-size:9px;font-weight:800;white-space:nowrap}.order-status.draft{color:#a9bbce;background:rgba(148,163,184,.08)}.order-status.scheduled{color:#78d8ff;background:rgba(14,165,255,.09);border-color:rgba(14,165,255,.25)}.order-status.in_progress{color:#ffd36b;background:rgba(245,158,11,.09);border-color:rgba(245,158,11,.25)}.order-status.completed{color:#8ff0b0;background:rgba(34,197,94,.09);border-color:rgba(34,197,94,.24)}.order-status.closed{color:#a7f3d0;background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.28)}.order-status.cancelled{color:#ff9d9d;background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.22)}.check-progress-mini{display:inline-flex;width:58px;height:5px;background:#13233a;border-radius:999px;overflow:hidden;vertical-align:middle;margin-right:6px}.check-progress-mini i,.summary-progress i{display:block;background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:inherit}.work-order-mobile-list{display:none}.work-order-mobile-card{border:1px solid #1a2b44;background:#091321;border-radius:14px;padding:13px;color:inherit}.mobile-order-top,.work-order-mobile-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.work-order-mobile-card h3{font-size:13px;margin:9px 0 4px}.work-order-mobile-card p{font-size:10px;color:var(--muted);margin:0}.work-order-mobile-card footer{margin-top:11px}.work-order-mobile-card footer small{color:var(--muted);font-size:9px}.mobile-order-progress{display:flex;align-items:center;gap:5px;margin-top:10px}.mobile-order-progress .check-progress-mini{flex:1;width:auto}.mobile-order-progress small{font-size:8px;color:var(--muted)}
.work-order-form-panel{max-width:1020px;margin:auto}.source-link-card{display:grid;gap:3px;border:1px solid rgba(14,165,255,.2);background:rgba(14,165,255,.05);border-radius:12px;padding:12px;margin-top:10px}.source-link-card span,.source-link-card small{font-size:9px;color:var(--muted)}.source-link-card strong{font-size:12px;color:#dff4ff}
.work-order-detail-heading{align-items:center}.work-order-heading-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:10px}.work-order-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.work-order-summary-grid article{border:1px solid #1a2b43;background:linear-gradient(145deg,rgba(12,24,40,.96),rgba(8,17,30,.96));border-radius:15px;padding:14px;min-height:92px;display:grid;align-content:start;gap:5px}.work-order-summary-grid span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.work-order-summary-grid strong{font-size:20px}.work-order-summary-grid small{font-size:9px;color:var(--muted)}.summary-progress{height:5px;background:#14263e;border-radius:999px;overflow:hidden;margin-top:3px}.work-order-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px}.work-order-main-stack,.work-order-side-stack{display:grid;gap:16px;align-content:start}.panel-counter{display:grid;place-items:center;min-width:32px;height:26px;padding:0 8px;border:1px solid #213550;border-radius:999px;color:#9fc3e8;font-size:9px}.panel-total{font-size:14px;color:#dff4ff}.order-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.order-info-grid>div,.order-schedule>div{border:1px solid #172840;background:#091321;border-radius:12px;padding:11px;display:grid;gap:3px}.order-info-grid span,.order-schedule span,.order-description>span,.resolution-box>span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.order-info-grid strong,.order-schedule strong{font-size:10px}.order-info-grid small{font-size:8px;color:#7f96b0;line-height:1.4}.order-description{margin-top:12px;padding:13px;border:1px solid #172840;border-radius:12px;background:#08111f}.order-description p,.resolution-box p{font-size:11px;color:#b8cbe0;line-height:1.7;margin:7px 0 0}.order-schedule{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.resolution-box{margin-top:12px;border:1px solid rgba(16,185,129,.22);background:rgba(16,185,129,.05);border-radius:12px;padding:13px}
.checklist-list{display:grid;gap:7px}.checklist-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #172840;background:#091321;border-radius:11px;padding:9px 10px}.checklist-row.done{opacity:.75}.checklist-row.done strong{text-decoration:line-through;color:#8195ab}.check-toggle{width:24px;height:24px;border-radius:7px;border:1px solid #29405f;background:#0c1829;color:#7df0ad;font-weight:900}.checklist-row.done .check-toggle{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.3)}.check-toggle:disabled{cursor:not-allowed;opacity:.6}.checklist-row strong{font-size:10px}.checklist-row small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.icon-delete{width:25px;height:25px;border:0;background:transparent;color:#7890aa;font-size:17px;border-radius:7px}.icon-delete:hover{background:rgba(239,68,68,.09);color:#ff9393}.inline-add-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:10px}.mini-empty{padding:14px;text-align:center;border:1px dashed #20344f;border-radius:11px;color:var(--muted);font-size:9px}
.evidence-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.evidence-column{border:1px solid #172840;border-radius:12px;background:#08111f;overflow:hidden}.evidence-column>header{display:flex;justify-content:space-between;padding:9px 10px;border-bottom:1px solid #172840}.evidence-column>header strong{font-size:9px}.evidence-column>header small{font-size:8px;color:var(--muted)}.evidence-grid{display:grid;gap:7px;padding:7px}.evidence-card{position:relative;border:1px solid #1a2c45;background:#0b1626;border-radius:9px;overflow:hidden}.evidence-preview{display:block;aspect-ratio:16/9;background:#060b16}.evidence-preview img{width:100%;height:100%;object-fit:cover;display:block}.evidence-file{height:78px;display:grid;place-items:center;font-size:16px;font-weight:900;color:#ffb4b4;background:linear-gradient(145deg,rgba(239,68,68,.09),rgba(124,58,237,.06))}.evidence-card>div{display:grid;gap:2px;padding:7px 8px}.evidence-card>div strong{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evidence-card>div small{font-size:7px;color:var(--muted)}.evidence-card>form{position:absolute;top:5px;right:5px}.evidence-card>form .icon-delete{background:rgba(6,11,22,.82);backdrop-filter:blur(7px)}.evidence-upload-form{display:flex;align-items:end;gap:8px;margin-top:11px}.evidence-upload-form label,.material-add-form label,.time-add-form label{display:grid;gap:5px;font-size:8px;color:var(--muted)}.evidence-upload-form .grow,.material-add-form .grow,.time-add-form .grow{flex:1}
.compact-table-wrap{overflow:auto}.compact-table{width:100%;border-collapse:collapse;min-width:650px}.compact-table th,.compact-table td{padding:9px 8px;border-bottom:1px solid #14253b;text-align:left;font-size:9px}.compact-table th{font-size:8px;color:#7890aa;text-transform:uppercase;letter-spacing:.06em}.compact-table td strong{font-size:9px}.compact-table td small{display:block;color:var(--muted);font-size:7px;margin-top:2px}.material-add-form,.time-add-form{display:flex;align-items:end;gap:8px;margin-top:11px}.material-add-form label:not(.grow){width:110px}.time-add-form label{min-width:145px}.time-entry-list{display:grid;gap:7px}.time-entry-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #172840;background:#091321;border-radius:11px;padding:9px}.time-entry-duration{width:48px;height:42px;border-radius:10px;background:rgba(14,165,255,.08);display:grid;place-items:center;align-content:center}.time-entry-duration strong{font-size:12px;color:#8dddff;line-height:1}.time-entry-duration span{font-size:7px;color:var(--muted)}.time-entry-list article>div:nth-child(2)>strong{font-size:9px}.time-entry-list article>div:nth-child(2)>small{display:block;font-size:8px;color:var(--muted);margin-top:3px}
.note-add-form{display:grid;gap:8px;margin-bottom:13px}.note-add-form>div{display:flex;align-items:end;gap:10px}.note-add-form>div>label:first-child{min-width:150px;display:grid;gap:5px;font-size:8px;color:var(--muted)}.checkbox-line{display:flex!important;align-items:center;gap:7px!important;flex:1;font-size:9px;color:#9db0c7}.checkbox-line input{width:16px;height:16px}.order-notes-list{display:grid;gap:12px}.order-notes-list article{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px}.note-avatar{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(14,165,255,.2),rgba(124,58,237,.2));font-size:10px;font-weight:800}.order-notes-list header{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.order-notes-list header strong{font-size:9px}.order-notes-list header span,.order-notes-list header time{font-size:7px;color:var(--muted)}.order-notes-list p{font-size:10px;line-height:1.55;color:#acbfd5;margin:4px 0 0}
.signature-form{display:grid;gap:9px}.signature-form>label{max-width:360px}.signature-pad-wrap{border:1px solid #263b58;background:#f8fbff;border-radius:12px;overflow:hidden}.signature-pad-wrap canvas{display:block;width:100%;height:180px;touch-action:none;cursor:crosshair}.signature-pad-wrap>div{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;background:#0b1626}.signature-pad-wrap>div span{font-size:8px;color:var(--muted)}.signature-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.signature-list article{display:grid;grid-template-columns:150px minmax(0,1fr);gap:9px;align-items:center;border:1px solid #172840;background:#091321;border-radius:11px;padding:8px}.signature-list img{width:150px;height:65px;object-fit:contain;background:#fff;border-radius:7px}.signature-list strong{font-size:9px}.signature-list small{display:block;font-size:7px;color:var(--muted);margin-top:3px}
.order-state-progress{display:grid;gap:8px;padding:5px 0 14px}.order-state-progress .progress-line{height:6px;background:#14253d;border-radius:99px;overflow:hidden}.order-state-progress .progress-line i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--violet),var(--cyan));border-radius:inherit}.order-state-progress strong{font-size:13px}.order-state-progress small{font-size:8px;color:var(--muted)}.close-readiness ul{list-style:none;padding:0;margin:0;display:grid;gap:7px}.close-readiness li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:center;border:1px solid #172840;background:#091321;border-radius:10px;padding:8px}.close-readiness li>span{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:#111f32;color:#6e849e}.close-readiness li.ready>span{background:rgba(34,197,94,.1);color:#7ef0a5}.close-readiness li strong{font-size:9px}.close-readiness li small{display:block;font-size:7px;color:var(--muted);margin-top:2px}.close-order-form{display:grid;gap:9px;border-top:1px solid #172840;margin-top:12px;padding-top:12px}.closed-stamp{margin-top:12px;padding:13px;border:1px solid rgba(16,185,129,.28);background:rgba(16,185,129,.06);border-radius:12px;display:grid;gap:3px;text-align:center}.closed-stamp strong{font-size:12px;color:#9bf0c3}.closed-stamp span,.closed-stamp small{font-size:8px;color:var(--muted)}.order-history-list{display:grid;gap:9px}.order-history-list article{display:grid;grid-template-columns:9px minmax(0,1fr);gap:8px;position:relative}.order-history-list article:not(:last-child):before{content:"";position:absolute;left:3px;top:12px;bottom:-10px;width:1px;background:#1d334f}.order-history-list i{width:7px;height:7px;margin-top:4px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px rgba(14,165,255,.08)}.order-history-list strong{font-size:8px;display:block;line-height:1.4}.order-history-list small{font-size:7px;color:var(--muted)}
@media(max-width:1220px){.work-order-filters{grid-template-columns:2fr repeat(3,1fr)}.work-order-filters .filter-actions{grid-column:auto}.work-order-detail-grid{grid-template-columns:minmax(0,1fr) 285px}.order-info-grid,.order-schedule{grid-template-columns:repeat(2,minmax(0,1fr))}.material-add-form,.time-add-form,.evidence-upload-form{flex-wrap:wrap}.material-add-form .grow,.time-add-form .grow,.evidence-upload-form .grow{flex:1 1 220px}}
@media(max-width:960px){.work-order-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-order-detail-grid{grid-template-columns:1fr}.work-order-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.work-order-side-stack section:last-child:nth-child(odd){grid-column:1/3}.evidence-columns{grid-template-columns:1fr 1fr}.evidence-column:last-child{grid-column:1/3}.signature-list{grid-template-columns:1fr}.work-order-filters{grid-template-columns:1fr 1fr 1fr}.work-order-filters .search-field{grid-column:span 2}}
@media(max-width:760px){.work-order-heading,.work-order-detail-heading{align-items:flex-start}.work-order-heading .btn{width:100%;text-align:center}.work-order-detail-heading .heading-actions{width:100%;display:grid;grid-template-columns:repeat(2,1fr)}.work-order-detail-heading .heading-actions .btn{text-align:center}.work-order-table-panel .table-wrap{display:none}.work-order-mobile-list{display:grid;gap:8px;padding:10px}.work-order-list-head{padding:13px}.work-order-filters{grid-template-columns:1fr 1fr}.work-order-filters .search-field{grid-column:1/3}.work-order-filters .filter-actions{grid-column:1/3}.work-order-filters .filter-actions .btn{flex:1;text-align:center}.order-info-grid,.order-schedule{grid-template-columns:1fr 1fr}.evidence-columns{grid-template-columns:1fr}.evidence-column:last-child{grid-column:auto}.evidence-upload-form,.material-add-form,.time-add-form{display:grid;grid-template-columns:1fr 1fr}.evidence-upload-form .grow,.material-add-form .grow,.time-add-form .grow{grid-column:span 1}.evidence-upload-form .btn,.material-add-form .btn,.time-add-form .btn{width:100%}.material-add-form label:not(.grow),.time-add-form label{width:auto;min-width:0}.note-add-form>div{align-items:stretch;flex-direction:column}.note-add-form>div>label:first-child{min-width:0}.signature-list article{grid-template-columns:110px minmax(0,1fr)}.signature-list img{width:110px}.work-order-side-stack{grid-template-columns:1fr}.work-order-side-stack section:last-child:nth-child(odd){grid-column:auto}}
@media(max-width:520px){.work-order-summary-grid{grid-template-columns:1fr 1fr;gap:8px}.work-order-summary-grid article{min-height:82px;padding:11px}.work-order-summary-grid strong{font-size:17px}.work-order-filters{grid-template-columns:1fr}.work-order-filters .search-field,.work-order-filters .filter-actions{grid-column:auto}.order-info-grid,.order-schedule{grid-template-columns:1fr}.evidence-upload-form,.material-add-form,.time-add-form{grid-template-columns:1fr}.signature-pad-wrap canvas{height:150px}.signature-list article{grid-template-columns:1fr}.signature-list img{width:100%;height:80px}.inline-add-form{grid-template-columns:1fr}.inline-add-form .btn{width:100%}.work-order-detail-heading .heading-actions{grid-template-columns:1fr}.work-order-heading-meta{gap:6px}.work-order-form-panel{padding:12px}}
@media(max-width:360px){.work-order-summary-grid{grid-template-columns:1fr}.work-order-mobile-card{padding:11px}.work-order-heading-meta span:not(.order-status):not(.priority-chip){width:100%}}

/* Módulo 7 · Técnicos y cuadrillas */
.side-nav{min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#1d3552 transparent;padding-right:2px}.sidebar-user{flex:0 0 auto}.technician-heading .heading-actions,.crew-heading .heading-actions,.technician-detail-heading .heading-actions,.crew-detail-heading .heading-actions{display:flex;gap:8px;flex-wrap:wrap}.technician-filter-panel{padding:14px 16px;margin-bottom:18px}.technician-filters{display:grid;grid-template-columns:minmax(260px,2fr) repeat(3,minmax(140px,1fr)) auto;gap:10px;align-items:end}.technician-filters label{display:grid;gap:5px}.technician-filters input,.technician-filters select{margin-top:0}.technician-filters .filter-actions{display:flex;gap:7px}.technician-list-head{padding:17px 19px;margin:0;border-bottom:1px solid #17263b}.technician-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px}.technician-card{border:1px solid #192b44;background:linear-gradient(155deg,#0a1525,#08101d);border-radius:15px;padding:15px;display:grid;gap:13px;min-width:0;transition:.2s}.technician-card:hover{transform:translateY(-2px);border-color:#285680;box-shadow:0 15px 35px rgba(0,0,0,.22)}.technician-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.tech-avatar{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(14,165,255,.24),rgba(124,58,237,.24));border:1px solid rgba(14,165,255,.25);font-weight:850;color:#d9f3ff}.tech-avatar.large{width:58px;height:58px;border-radius:16px;font-size:20px;flex:0 0 auto}.tech-status,.crew-status{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border:1px solid #29405b}.tech-status.operational,.crew-status.active{background:rgba(34,197,94,.08);color:#8df0ae;border-color:rgba(34,197,94,.24)}.tech-status.on_leave{background:rgba(245,158,11,.08);color:#ffc866;border-color:rgba(245,158,11,.25)}.tech-status.non_operational,.crew-status.inactive{background:rgba(148,163,184,.08);color:#a6b3c6;border-color:rgba(148,163,184,.22)}.tech-code{display:block;color:#6ecfff;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.technician-card h3{font-size:15px;margin:3px 0 2px}.technician-card p{color:var(--muted);font-size:9px;line-height:1.45;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tech-card-meta{display:grid;grid-template-columns:1.25fr .65fr .65fr;gap:7px;border-top:1px solid #16263b;padding-top:10px}.tech-card-meta span{min-width:0}.tech-card-meta small,.tech-card-meta strong{display:block}.tech-card-meta small{color:var(--muted);font-size:7px}.tech-card-meta strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.technician-pagination{padding:12px 15px}.empty-state.padded{padding:28px}.technician-form-panel{max-width:1000px}.form-section-title{display:flex;align-items:center;gap:10px;padding:5px 0 2px;border-bottom:1px solid #172840}.form-section-title>span{width:29px;height:29px;border-radius:9px;display:grid;place-items:center;background:rgba(14,165,255,.1);border:1px solid rgba(14,165,255,.2);font-size:8px;color:#8dddff;font-weight:850}.form-section-title strong,.form-section-title small{display:block}.form-section-title strong{font-size:11px}.form-section-title small{font-size:8px;color:var(--muted);margin-top:1px}
.tech-detail-title{display:flex;gap:14px;align-items:center}.tech-heading-meta,.crew-heading-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:#8da0b7;font-size:9px;margin-top:7px}.tech-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:17px}.tech-summary-grid article{border:1px solid rgba(96,165,250,.14);background:linear-gradient(155deg,#0d1829,#09111e);border-radius:15px;padding:14px;box-shadow:0 12px 35px rgba(0,0,0,.13)}.tech-summary-grid span,.tech-summary-grid small,.tech-summary-grid strong{display:block}.tech-summary-grid span{font-size:8px;color:#7890aa;text-transform:uppercase;letter-spacing:.06em}.tech-summary-grid strong{font-size:19px;margin:3px 0 1px}.tech-summary-grid small{font-size:7px;color:var(--muted)}.technician-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start}.technician-main-stack,.technician-side-stack,.crew-side-stack{display:grid;gap:14px}.tech-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.tech-info-grid>div{border:1px solid #172a42;background:#091321;border-radius:11px;padding:10px;min-width:0}.tech-info-grid>div.span-2{grid-column:span 2}.tech-info-grid small,.tech-info-grid strong{display:block}.tech-info-grid small{font-size:7px;color:#7389a2;text-transform:uppercase;letter-spacing:.05em}.tech-info-grid strong{font-size:9px;margin-top:3px;word-break:break-word}.tech-info-grid p{font-size:9px;color:#aabbd0;line-height:1.55;margin:5px 0 0}.specialty-chip-list{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}.specialty-chip-list>span{padding:6px 9px;border-radius:999px;background:rgba(34,211,238,.07);border:1px solid rgba(34,211,238,.18);font-size:8px;color:#9aeaf7;font-weight:700}.muted-copy{color:var(--muted);font-size:8px}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:9px}.choice-card{display:flex;align-items:flex-start;gap:7px;border:1px solid #182b43;background:#091321;border-radius:10px;padding:8px;cursor:pointer}.choice-card input{width:15px;height:15px;min-height:auto;margin:2px 0 0;flex:0 0 auto}.choice-card strong,.choice-card small{display:block}.choice-card strong{font-size:8px}.choice-card small{font-size:7px;color:var(--muted);margin-top:2px}.specialty-sync-form{display:grid;gap:7px;margin-bottom:10px}.specialty-sync-form>.btn{justify-self:start}.tech-inline-form{border-top:1px solid #172840;padding-top:10px;margin-top:6px}.availability-table{display:grid;gap:6px}.availability-row{display:grid;grid-template-columns:minmax(120px,1fr) 120px 15px 120px;gap:7px;align-items:center;border:1px solid #172840;background:#091321;padding:7px 9px;border-radius:9px}.availability-row input{margin:0;min-height:36px}.availability-row>span{text-align:center;color:#667c95;font-size:8px}.day-toggle{display:flex;align-items:center;gap:8px}.day-toggle input{width:15px;height:15px;min-height:auto}.day-toggle span{font-size:9px}.tech-document-list{display:grid;gap:7px}.tech-document-list article{display:grid;grid-template-columns:39px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid #172840;background:#091321;border-radius:10px;padding:8px}.document-mark{width:39px;height:39px;border-radius:9px;display:grid;place-items:center;background:rgba(124,58,237,.09);border:1px solid rgba(124,58,237,.18);font-size:7px;color:#c0a7ff;font-weight:850}.tech-document-list strong,.tech-document-list span,.tech-document-list small{display:block}.tech-document-list strong{font-size:9px}.tech-document-list span{font-size:8px;color:#aabbd0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tech-document-list small{font-size:7px;color:var(--muted)}.document-actions{display:flex;align-items:center;gap:6px}.document-actions form{margin:0}.icon-delete{width:27px;height:27px;display:grid;place-items:center;border:1px solid rgba(239,68,68,.22);border-radius:8px;background:rgba(239,68,68,.06);color:#ff9f9f}.tech-document-upload{display:grid;grid-template-columns:150px 145px minmax(180px,1fr) minmax(180px,1fr) auto;gap:8px;align-items:end;border-top:1px solid #172840;margin-top:10px;padding-top:10px}.tech-document-upload label{font-size:8px;color:var(--muted)}.tech-document-upload input{margin-top:5px}.performance-score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:12px}.performance-score-grid>span{border:1px solid #172840;background:#091321;border-radius:10px;padding:9px}.performance-score-grid small,.performance-score-grid strong{display:block}.performance-score-grid small{font-size:7px;color:var(--muted)}.performance-score-grid strong{font-size:13px;margin-top:2px}.performance-timeline{display:grid;gap:8px}.performance-timeline article{display:grid;grid-template-columns:10px minmax(0,1fr);gap:8px;position:relative}.performance-timeline article:not(:last-child):before{content:"";position:absolute;left:4px;top:12px;bottom:-9px;width:1px;background:#1c3049}.performance-timeline i{width:8px;height:8px;border-radius:50%;margin-top:4px;background:#4dbff5;box-shadow:0 0 0 3px rgba(14,165,255,.07)}.performance-timeline i.evaluation{background:#a78bfa}.performance-timeline i.status{background:#fbbf24}.performance-timeline strong{display:block;font-size:8px}.performance-timeline p{font-size:8px;color:#9eb0c6;margin:2px 0;line-height:1.45}.performance-timeline small{font-size:7px;color:var(--muted)}.evaluation-form{display:grid;gap:9px;border:1px solid #172840;background:#091321;border-radius:11px;padding:10px;margin-bottom:11px}.evaluation-list{display:grid;gap:7px}.evaluation-list article{display:grid;grid-template-columns:45px minmax(0,1fr);gap:9px;border-bottom:1px solid #172840;padding:7px 0}.evaluation-score{width:45px;height:45px;border-radius:10px;background:rgba(14,165,255,.08);display:grid;place-items:center;align-content:center;font-size:14px;font-weight:850;color:#9addff}.evaluation-score small{font-size:7px}.evaluation-list strong,.evaluation-list span{display:block}.evaluation-list strong{font-size:9px}.evaluation-list span{font-size:7px;color:var(--muted)}.evaluation-list p{font-size:8px;color:#aabbd0;margin:3px 0 0}.assigned-branch-list{display:grid;gap:6px;margin-bottom:10px}.assigned-branch-list>div{display:flex;justify-content:space-between;gap:8px;align-items:center;border:1px solid #172840;background:#091321;border-radius:9px;padding:8px}.assigned-branch-list span{font-size:8px}.assigned-branch-list small{font-size:7px;color:#8dddff}.branch-sync-form{display:grid;gap:9px;border-top:1px solid #172840;padding-top:9px}.branch-choice-list{display:grid;gap:5px}.branch-choice-list label{display:flex;align-items:center;gap:7px;font-size:8px}.branch-choice-list input{width:14px;height:14px;min-height:auto;margin:0}.tech-crew-list{display:grid;gap:6px}.tech-crew-list a{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #172840;background:#091321;border-radius:9px;padding:8px}.tech-crew-list strong,.tech-crew-list small{display:block}.tech-crew-list strong{font-size:8px}.tech-crew-list small{font-size:7px;color:var(--muted)}.tech-crew-list em{font-size:7px;color:#8dddff;font-style:normal}.status-update-form{display:grid;gap:9px}.status-history-list{display:grid;gap:7px;border-top:1px solid #172840;margin-top:11px;padding-top:10px}.status-history-list article{display:grid;grid-template-columns:8px minmax(0,1fr);gap:7px}.status-history-list i{width:6px;height:6px;background:#22d3ee;border-radius:50%;margin-top:4px}.status-history-list strong{display:block;font-size:8px}.status-history-list small{font-size:7px;color:var(--muted)}.status-history-list p{font-size:7px;color:#9fb0c5;margin:2px 0}.empty-state.compact{padding:8px 0;font-size:8px}
.crew-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.crew-card{border:1px solid rgba(96,165,250,.14);background:linear-gradient(160deg,#0d1829,#08101c);border-radius:17px;padding:16px;display:grid;gap:9px;box-shadow:0 16px 45px rgba(0,0,0,.18);transition:.2s;min-width:0}.crew-card:hover{transform:translateY(-2px);border-color:#2b567e}.crew-card-head{display:flex;align-items:center;justify-content:space-between}.crew-mark{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(14,165,255,.12),rgba(124,58,237,.12));border:1px solid rgba(14,165,255,.2);color:#9cddff}.crew-card h2{font-size:16px;margin:0}.crew-card p{font-size:9px;color:var(--muted);margin:0;line-height:1.5;min-height:27px}.crew-card-meta{display:grid;grid-template-columns:1fr 80px;gap:7px;border-top:1px solid #172840;border-bottom:1px solid #172840;padding:9px 0}.crew-card-meta small,.crew-card-meta strong{display:block}.crew-card-meta small{font-size:7px;color:var(--muted)}.crew-card-meta strong{font-size:9px;margin-top:2px}.crew-card footer{display:flex;justify-content:space-between;gap:8px;font-size:8px;color:#9cafc5}.crew-card footer b{color:#5dc8ff}.crew-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start}.crew-member-list{display:grid;gap:7px}.crew-member-list article{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;gap:9px;align-items:center;border:1px solid #172840;background:#091321;border-radius:11px;padding:9px}.crew-member-list strong,.crew-member-list small{display:block}.crew-member-list strong{font-size:9px}.crew-member-list small{font-size:7px;color:var(--muted)}.member-role{padding:5px 7px;border-radius:999px;font-size:7px;border:1px solid #263b55;color:#9cafc5}.member-role.leader{color:#8dddff;background:rgba(14,165,255,.07);border-color:rgba(14,165,255,.2)}.crew-add-member-form{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;gap:8px;align-items:end;border-top:1px solid #172840;margin-top:11px;padding-top:11px}.crew-info-list{display:grid;gap:7px}.crew-info-list>div{border:1px solid #172840;background:#091321;border-radius:9px;padding:8px}.crew-info-list small,.crew-info-list strong{display:block}.crew-info-list small{font-size:7px;color:var(--muted)}.crew-info-list strong{font-size:9px;margin-top:2px}.crew-info-list p{font-size:8px;color:#a5b7cb;margin:3px 0 0;line-height:1.5}
@media(max-width:1180px){.technician-card-grid,.crew-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.technician-filters{grid-template-columns:2fr repeat(2,1fr)}.technician-filters .filter-actions{grid-column:auto}.tech-document-upload{grid-template-columns:1fr 1fr 1fr}.tech-document-upload .grow{grid-column:span 1}.tech-document-upload .btn{width:100%}.tech-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:960px){.technician-detail-grid,.crew-detail-grid{grid-template-columns:1fr}.technician-side-stack,.crew-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.technician-side-stack>section:last-child:nth-child(odd),.crew-side-stack>section:last-child:nth-child(odd){grid-column:1/3}.technician-filters{grid-template-columns:1fr 1fr}.technician-filters .search-field{grid-column:1/3}.checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tech-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.performance-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.technician-heading,.technician-detail-heading,.crew-heading,.crew-detail-heading{align-items:flex-start}.technician-heading .heading-actions,.technician-detail-heading .heading-actions,.crew-heading .heading-actions,.crew-detail-heading .heading-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.technician-heading .heading-actions .btn,.technician-detail-heading .heading-actions .btn,.crew-heading .heading-actions .btn,.crew-detail-heading .heading-actions .btn{text-align:center}.technician-card-grid,.crew-grid{grid-template-columns:1fr}.technician-filters{grid-template-columns:1fr 1fr}.technician-filters .search-field{grid-column:1/3}.technician-filters .filter-actions{grid-column:1/3}.technician-filters .filter-actions .btn{flex:1;text-align:center}.tech-document-upload{grid-template-columns:1fr 1fr}.availability-row{grid-template-columns:minmax(110px,1fr) 1fr 12px 1fr}.crew-add-member-form{grid-template-columns:1fr 130px}.crew-add-member-form .btn{grid-column:1/3;width:100%}.crew-member-list article{grid-template-columns:42px minmax(0,1fr) auto}.crew-member-list article>form{grid-column:3;grid-row:2}.technician-side-stack,.crew-side-stack{grid-template-columns:1fr}.technician-side-stack>section:last-child:nth-child(odd),.crew-side-stack>section:last-child:nth-child(odd){grid-column:auto}.form-grid.three{grid-template-columns:repeat(2,1fr)}.form-grid.three .span-2{grid-column:span 2}}
@media(max-width:520px){.technician-filters{grid-template-columns:1fr}.technician-filters .search-field,.technician-filters .filter-actions{grid-column:auto}.tech-detail-title{align-items:flex-start}.tech-detail-title .tech-avatar.large{width:48px;height:48px}.tech-summary-grid{grid-template-columns:1fr 1fr}.tech-info-grid,.checkbox-grid,.performance-score-grid{grid-template-columns:1fr}.tech-info-grid>div.span-2{grid-column:auto}.availability-row{grid-template-columns:1fr 1fr 12px 1fr;padding:7px}.availability-row .day-toggle{grid-column:1/5}.tech-document-upload{grid-template-columns:1fr}.crew-member-list article{grid-template-columns:38px minmax(0,1fr) auto}.member-role{grid-column:2/4;justify-self:start}.crew-member-list article>form{grid-column:3;grid-row:1}.crew-add-member-form{grid-template-columns:1fr}.crew-add-member-form .btn{grid-column:auto}.technician-heading .heading-actions,.technician-detail-heading .heading-actions,.crew-heading .heading-actions,.crew-detail-heading .heading-actions{grid-template-columns:1fr}.form-grid.three{grid-template-columns:1fr}.form-grid.three .span-2{grid-column:auto}.tech-document-list article{grid-template-columns:35px minmax(0,1fr)}.document-actions{grid-column:2}.technician-card{padding:13px}}
@media(max-width:360px){.tech-summary-grid{grid-template-columns:1fr}.tech-card-meta{grid-template-columns:1fr 1fr}.tech-card-meta span:first-child{grid-column:1/3}.availability-row{grid-template-columns:1fr 8px 1fr}.availability-row .day-toggle{grid-column:1/4}.crew-card{padding:13px}}

/* Módulo 8 · Asignación y despacho */
.accent-red{--card-accent:var(--red)}
.btn-danger{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.28);color:#ff9d9d}.btn-danger:hover{background:rgba(239,68,68,.16)}
.dispatch-heading-meta,.dispatch-heading-meta span{display:flex;align-items:center;gap:9px}.dispatch-heading-meta{flex-wrap:wrap;color:var(--muted);font-size:12px;margin-top:9px}.dispatch-filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:10px;align-items:end}.dispatch-board{display:grid;grid-template-columns:repeat(5,minmax(245px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px;margin-bottom:18px}.dispatch-column{min-width:245px;border:1px solid rgba(96,165,250,.13);border-radius:16px;background:rgba(7,15,27,.74);min-height:430px}.dispatch-column>header{padding:14px 14px 10px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #142238}.dispatch-column>header h2{font-size:15px;margin:2px 0 0}.dispatch-column>header .eyebrow{font-size:8px}.dispatch-count{min-width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#0d1c30;border:1px solid #203a5a;color:#a8ddff;font-weight:800}.dispatch-card-list{padding:10px;display:grid;gap:9px;align-content:start}.dispatch-card{border:1px solid #1a2b43;background:linear-gradient(180deg,#0c1728,#091321);border-radius:13px;padding:12px;box-shadow:0 10px 25px rgba(0,0,0,.16);transition:.2s}.dispatch-card:hover{border-color:#2d5683;transform:translateY(-1px)}.dispatch-card.is-priority{box-shadow:inset 3px 0 var(--amber),0 10px 28px rgba(0,0,0,.2)}.dispatch-card-top,.dispatch-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.dispatch-card-top strong{font-size:10px;color:#8fdfff}.dispatch-card h3{font-size:13px;line-height:1.35;margin:9px 0 3px}.dispatch-card>p{font-size:10px;color:#c8d5e6;margin:0 0 9px}.dispatch-card-meta{display:grid;gap:4px;padding:8px 0;border-top:1px solid #15263d;border-bottom:1px solid #15263d;color:#8599b2;font-size:9px}.dispatch-card footer{margin-top:9px}.dispatch-priority-level{font-size:8px;color:#ffc866;margin-top:7px}.dispatch-status{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;border:1px solid #27405f;background:#0b1b2d;color:#a8bad1;font-size:8px;font-weight:800;white-space:nowrap}.dispatch-status.unassigned{color:#a8bad1}.dispatch-status.assigned,.dispatch-status.confirmed{color:#82d9ff;border-color:rgba(14,165,255,.28);background:rgba(14,165,255,.08)}.dispatch-status.en_route,.dispatch-status.arrived{color:#67e8f9;border-color:rgba(34,211,238,.28);background:rgba(34,211,238,.07)}.dispatch-status.working,.dispatch-status.paused{color:#c6a8ff;border-color:rgba(124,58,237,.3);background:rgba(124,58,237,.09)}.dispatch-status.completed{color:#86efac;border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.08)}.dispatch-empty{padding:30px 12px;text-align:center;color:#71839b}.dispatch-empty strong,.dispatch-empty span{display:block}.dispatch-empty strong{font-size:11px}.dispatch-empty span{font-size:9px;margin-top:3px}.dispatch-load-preview{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.load-mini-grid{display:grid;gap:8px}.load-mini-grid article{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid #16273e;border-radius:11px;background:#091321;padding:9px}.load-mini-grid strong,.load-mini-grid small{display:block}.load-mini-grid strong{font-size:10px}.load-mini-grid small{font-size:8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.load-mini-grid article>span{font-size:8px;color:#8fdfff}.crew-mini-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:rgba(124,58,237,.1);border:1px solid rgba(124,58,237,.25);color:#c4b5fd;font-size:18px}.dispatch-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) 360px;gap:16px}.dispatch-main-stack,.dispatch-side-stack{display:grid;gap:14px;align-content:start}.dispatch-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.dispatch-summary-grid>div{border:1px solid #17283f;background:#091321;border-radius:10px;padding:10px}.dispatch-summary-grid small,.dispatch-summary-grid strong,.dispatch-summary-grid span{display:block}.dispatch-summary-grid small{font-size:8px;color:var(--muted)}.dispatch-summary-grid strong{font-size:10px;margin-top:3px}.dispatch-summary-grid span{font-size:8px;color:#8c9fb7;margin-top:2px}.dispatch-priority-badge,.source-chip{padding:5px 8px;border-radius:999px;font-size:8px;font-weight:800;border:1px solid rgba(245,158,11,.25);background:rgba(245,158,11,.08);color:#ffc969}.source-chip{border-color:rgba(14,165,255,.24);background:rgba(14,165,255,.07);color:#8fdfff}.dispatch-progress-track{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;margin:8px 0 18px}.dispatch-progress-track>div{position:relative;text-align:center;color:#667991;font-size:7px;padding-top:21px}.dispatch-progress-track>div:before{content:"";position:absolute;left:-50%;right:50%;top:7px;height:2px;background:#1a2d46}.dispatch-progress-track>div:first-child:before{display:none}.dispatch-progress-track i{position:absolute;top:3px;left:50%;transform:translateX(-50%);width:10px;height:10px;border-radius:50%;background:#1c304a;border:2px solid #0d1727;z-index:2}.dispatch-progress-track .done{color:#9edfff}.dispatch-progress-track .done:before{background:#0ea5ff}.dispatch-progress-track .done i{background:#0ea5ff;box-shadow:0 0 12px rgba(14,165,255,.45)}.dispatch-status-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.dispatch-timeline{display:grid;gap:0}.dispatch-timeline article{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:8px;position:relative;padding:0 0 14px}.dispatch-timeline article:before{content:"";position:absolute;left:5px;top:10px;bottom:0;width:1px;background:#1a2c44}.dispatch-timeline article:last-child:before{display:none}.dispatch-timeline article>i{width:11px;height:11px;border-radius:50%;background:#0ea5ff;border:3px solid #102139;z-index:1}.dispatch-timeline strong,.dispatch-timeline small{display:block}.dispatch-timeline strong{font-size:9px}.dispatch-timeline small{font-size:7px;color:var(--muted);margin-top:2px}.dispatch-note-form{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end;border-top:1px solid #18283f;padding-top:13px;margin-top:4px}.dispatch-note-form .btn{margin-bottom:1px}.dispatch-auto-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.dispatch-unassign{display:grid;gap:7px;border-top:1px solid #1b2b40;padding-top:12px;margin-top:12px}.dispatch-assignment-history table{min-width:650px}.dispatch-workload-filter{display:grid;grid-template-columns:180px minmax(220px,1fr) auto;gap:10px;align-items:end;max-width:700px}.dispatch-load-panel{margin-top:14px}.dispatch-load-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dispatch-load-grid article{border:1px solid #172940;background:#091321;border-radius:13px;padding:12px}.load-card-head{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:8px}.load-card-head strong,.load-card-head small{display:block}.load-card-head strong{font-size:10px}.load-card-head small{font-size:8px;color:var(--muted)}.load-card-head>span{font-size:8px;color:#8fdfff}.load-bar{height:6px;background:#14253b;border-radius:999px;overflow:hidden;margin:11px 0}.load-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--violet))}.load-card-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.load-card-meta span{min-width:0}.load-card-meta small,.load-card-meta strong{display:block}.load-card-meta small{font-size:7px;color:var(--muted)}.load-card-meta strong{font-size:8px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dispatch-zone-list{display:grid;gap:8px}.dispatch-zone-row{display:grid;grid-template-columns:40px 180px minmax(220px,1fr) auto;gap:10px;align-items:end;border:1px solid #17283f;background:#091321;border-radius:12px;padding:10px}.zone-tech{align-self:center}.zone-tech strong,.zone-tech small{display:block}.zone-tech strong{font-size:10px}.zone-tech small{font-size:8px;color:var(--muted)}
@media(max-width:1280px){.dispatch-board{grid-template-columns:repeat(5,270px)}.dispatch-load-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1050px){.dispatch-detail-grid{grid-template-columns:1fr}.dispatch-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.dispatch-filters{grid-template-columns:2fr 1fr 1fr}.dispatch-filters .filter-actions{grid-column:auto}.dispatch-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dispatch-zone-row{grid-template-columns:40px 160px minmax(200px,1fr)}.dispatch-zone-row .btn{grid-column:3;justify-self:end}}
@media(max-width:760px){.dispatch-heading,.dispatch-detail-heading,.dispatch-workload-heading,.dispatch-zones-heading{align-items:flex-start}.dispatch-heading .heading-actions,.dispatch-detail-heading .heading-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.dispatch-heading .heading-actions .btn,.dispatch-detail-heading .heading-actions .btn{text-align:center}.dispatch-filters{grid-template-columns:1fr 1fr}.dispatch-filters .search-field{grid-column:1/3}.dispatch-filters .filter-actions{grid-column:1/3}.dispatch-load-preview{grid-template-columns:1fr}.dispatch-side-stack{grid-template-columns:1fr}.dispatch-load-grid{grid-template-columns:1fr}.dispatch-workload-filter{grid-template-columns:1fr 1fr}.dispatch-workload-filter .btn{grid-column:1/3}.dispatch-zone-row{grid-template-columns:40px minmax(0,1fr)}.dispatch-zone-row label{grid-column:1/3}.dispatch-zone-row .btn{grid-column:1/3;width:100%;justify-self:stretch}.dispatch-note-form{grid-template-columns:1fr}.dispatch-status-form{grid-template-columns:1fr}.dispatch-progress-track{overflow-x:auto;grid-template-columns:repeat(6,90px);padding-bottom:5px}}
@media(max-width:520px){.dispatch-filters{grid-template-columns:1fr}.dispatch-filters .search-field,.dispatch-filters .filter-actions{grid-column:auto}.dispatch-filters .filter-actions{display:grid;grid-template-columns:1fr 1fr}.dispatch-heading .heading-actions,.dispatch-detail-heading .heading-actions{grid-template-columns:1fr}.dispatch-summary-grid{grid-template-columns:1fr}.dispatch-summary-grid .span-2{grid-column:auto}.dispatch-auto-actions{grid-template-columns:1fr}.dispatch-workload-filter{grid-template-columns:1fr}.dispatch-workload-filter .btn{grid-column:auto}.load-card-meta{grid-template-columns:1fr 1fr}.load-card-meta span:nth-child(2){grid-column:1/3}.dispatch-zone-row{grid-template-columns:34px minmax(0,1fr)}}
/* Módulo 9 · mapa, rutas y seguimiento */
.map-heading .heading-actions,.route-detail-heading .heading-actions{display:flex;gap:8px;flex-wrap:wrap}.map-filter-panel{margin-bottom:16px}.map-filters{display:grid;grid-template-columns:180px minmax(220px,1fr) auto;gap:10px;align-items:end;max-width:720px}.map-filters .filter-actions,.map-history-filters .filter-actions{display:flex;gap:7px}.map-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) 360px;gap:16px;margin-bottom:16px}.map-main-panel{min-width:0}.field-map{height:520px;border:1px solid #1b2d46;border-radius:15px;background:radial-gradient(circle at 40% 35%,rgba(14,165,255,.12),transparent 35%),linear-gradient(135deg,#0a1728,#08111f);overflow:hidden;position:relative}.route-map{height:470px}.map-fallback{padding:12px 14px;border:1px solid rgba(245,158,11,.24);background:rgba(245,158,11,.06);border-radius:11px;margin-top:9px}.map-fallback strong,.map-fallback span{display:block}.map-fallback strong{font-size:10px}.map-fallback span{font-size:8px;color:var(--muted);margin-top:2px}.map-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;color:#8ea1b9;font-size:9px}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-service{background:#0ea5ff}.legend-tech{background:#7c3aed}.legend-complete{background:#22c55e}.map-live-indicator{display:flex;align-items:center;gap:6px;color:#91a5bd;font-size:8px}.map-live-indicator i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 12px rgba(34,197,94,.65)}.map-side-stack,.route-side-stack,.route-main-stack{display:grid;gap:14px;align-content:start}.location-share-panel p,.route-refresh-card p{font-size:9px;color:#93a6be;margin:-4px 0 12px;line-height:1.55}.location-share-panel form{display:grid;gap:8px}.location-share-panel form>small{font-size:8px;color:var(--muted);line-height:1.45}.route-mini-list{display:grid;gap:7px}.route-mini-list>a{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #172940;background:#091321;border-radius:11px;padding:9px;transition:.2s}.route-mini-list>a:hover{border-color:#2b527f;transform:translateY(-1px)}.route-tech-avatar{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(14,165,255,.25),rgba(124,58,237,.28));border:1px solid rgba(14,165,255,.28);font-weight:850;color:#d8efff}.route-mini-list strong,.route-mini-list small{display:block}.route-mini-list strong{font-size:9px}.route-mini-list small{font-size:7px;color:var(--muted);margin-top:2px}.route-mini-list>a>span{font-size:8px;color:#74d2ff}.map-routes-builder,.map-services-panel{margin-bottom:16px}.route-builder-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.route-builder-card{border:1px solid #172940;background:#091321;border-radius:13px;padding:11px;display:grid;gap:8px}.route-builder-head{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:center}.route-builder-head strong,.route-builder-head small{display:block}.route-builder-head strong{font-size:9px}.route-builder-head small{font-size:7px;color:var(--muted)}.route-builder-head>span{font-size:8px;color:#85d9ff}.route-builder-card form{margin:0}.map-service-list{display:grid;gap:7px}.map-service-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #172940;background:#091321;border-radius:11px;padding:9px 11px}.map-service-row.missing-location{border-color:rgba(245,158,11,.28)}.map-sequence{width:34px;height:34px;border-radius:10px;background:#0d2035;border:1px solid #23425f;display:grid;place-items:center;color:#91dcff;font-weight:850}.map-service-row strong,.map-service-row span,.map-service-row small{display:block}.map-service-row strong{font-size:9px}.map-service-row>div:nth-child(2)>span{font-size:8px;color:#a8b9ce;margin-top:2px}.map-service-row>div:nth-child(2)>small{font-size:7px;color:var(--muted);margin-top:2px}.map-service-status{text-align:right;display:grid;justify-items:end;gap:4px}.map-service-status small{font-size:7px;color:#91a5bd}.route-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) 330px;gap:16px}.route-status,.route-stop-status,.visit-event{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:8px;font-weight:800;border:1px solid #27405f;background:#0b1b2d;color:#a8bad1}.route-status.active,.route-stop-status.en_route,.visit-event.en_route{color:#67e8f9;border-color:rgba(34,211,238,.28);background:rgba(34,211,238,.07)}.route-status.completed,.route-stop-status.completed,.visit-event.completed{color:#86efac;border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.08)}.route-stop-status.arrived,.visit-event.arrived{color:#8fdfff;border-color:rgba(14,165,255,.28);background:rgba(14,165,255,.08)}.route-stop-status.working,.visit-event.working{color:#c6a8ff;border-color:rgba(124,58,237,.3);background:rgba(124,58,237,.09)}.visit-event.location{color:#d1d5db;border-color:rgba(148,163,184,.24);background:rgba(148,163,184,.08)}.route-stop-list{display:grid;gap:8px}.route-stop{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #172940;background:#091321;border-radius:12px;padding:10px}.route-stop.completed{opacity:.75}.route-stop.skipped{opacity:.55}.route-stop-number{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#0c2137;border:1px solid #244664;color:#91dcff;font-weight:850}.route-stop-content strong,.route-stop-content span,.route-stop-content small{display:block}.route-stop-content strong{font-size:10px}.route-stop-content>span{font-size:8px;color:#b4c4d7;margin-top:2px}.route-stop-content>small{font-size:7px;color:var(--muted);margin-top:2px}.route-stop-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.route-stop-meta span{font-size:7px;padding:3px 6px;border-radius:7px;background:#0d1b2d;border:1px solid #1c334f;color:#8fa5bd}.route-stop-actions{display:grid;justify-items:end;gap:5px;min-width:120px}.route-order-actions{display:flex;gap:5px}.route-order-actions form{margin:0}.route-order-actions .icon-btn{width:30px;height:30px}.route-order-actions .icon-btn:disabled{opacity:.35;cursor:not-allowed}.route-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.route-summary-grid>div{border:1px solid #172940;background:#091321;border-radius:10px;padding:9px}.route-summary-grid small,.route-summary-grid strong{display:block}.route-summary-grid small{font-size:7px;color:var(--muted)}.route-summary-grid strong{font-size:13px;margin-top:2px}.latest-location strong,.latest-location span,.latest-location small{display:block}.latest-location strong{font-size:10px;color:#b8e8ff}.latest-location span{font-size:8px;margin-top:4px}.latest-location small{font-size:7px;color:var(--muted);margin-top:2px}.map-history-filter{margin-bottom:14px}.map-history-filters{display:grid;grid-template-columns:150px 150px minmax(180px,1fr) 140px auto;gap:9px;align-items:end}.table-subtext{display:block;color:var(--muted);font-size:9px;margin-top:2px}.muted-text{color:var(--muted)}
/* Mapa interno por coordenadas */
.coordinate-map-svg{width:100%;height:100%;display:block;background:radial-gradient(circle at 25% 25%,rgba(34,211,238,.08),transparent 30%),linear-gradient(155deg,rgba(10,25,42,.96),rgba(6,14,27,.98))}.coordinate-map-grid line{stroke:rgba(124,154,190,.12);stroke-width:1}.coordinate-map-bounds text{fill:#607690;font-size:14px;font-weight:650;letter-spacing:.04em}.coordinate-route-line{fill:none;stroke:#46bfff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:12 10;opacity:.64}.coordinate-track-line{fill:none;stroke:#22d3ee;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.coordinate-marker{cursor:pointer;outline:none}.coordinate-marker:focus .coordinate-marker-halo,.coordinate-marker:hover .coordinate-marker-halo{opacity:.48}.coordinate-marker-halo{fill:#0ea5ff;opacity:.16;transition:.2s}.coordinate-marker.tech .coordinate-marker-halo{fill:#7c3aed}.coordinate-marker-shape{fill:#0ea5ff;stroke:#e8f7ff;stroke-width:3;filter:drop-shadow(0 7px 8px rgba(0,0,0,.32))}.coordinate-marker.completed .coordinate-marker-shape{fill:#22c55e}.coordinate-marker.tech .coordinate-marker-shape{fill:#7c3aed}.coordinate-marker-label{fill:#fff;font-size:13px;font-weight:900;pointer-events:none}.coordinate-map-note{position:absolute;right:10px;bottom:9px;border:1px solid rgba(115,153,192,.2);background:rgba(5,13,24,.86);backdrop-filter:blur(8px);border-radius:999px;padding:5px 9px;color:#7790aa;font-size:8px}.coordinate-map-card{position:absolute;left:12px;bottom:12px;z-index:4;width:min(300px,calc(100% - 24px));border:1px solid #274968;background:rgba(7,17,31,.96);box-shadow:0 18px 40px rgba(0,0,0,.35);border-radius:13px;padding:12px 38px 12px 13px;backdrop-filter:blur(12px)}.coordinate-map-card small,.coordinate-map-card strong,.coordinate-map-card span,.coordinate-map-card a{display:block}.coordinate-map-card small{font-size:7px;text-transform:uppercase;letter-spacing:.12em;color:#70d5ff}.coordinate-map-card strong{font-size:10px;margin-top:3px}.coordinate-map-card span{font-size:8px;color:#9eb0c6;margin-top:3px}.coordinate-map-card a{font-size:8px;font-weight:800;color:#77d9ff;margin-top:8px}.coordinate-map-card-close{position:absolute;right:9px;top:8px;width:24px;height:24px;border:1px solid #27405f;border-radius:8px;background:#0d1d30;color:#d9e8f8;cursor:pointer}.coordinate-map-empty{position:absolute;inset:0;display:grid;place-items:center;color:#7389a3;font-size:10px}
@media(max-width:1180px){.map-dashboard-grid,.route-detail-grid{grid-template-columns:1fr}.map-side-stack,.route-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.route-builder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-history-filters{grid-template-columns:1fr 1fr 1fr}.map-history-filters .filter-actions{grid-column:span 1}}
@media(max-width:760px){.map-heading,.route-detail-heading,.map-history-heading{align-items:flex-start}.map-heading .heading-actions,.route-detail-heading .heading-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.map-heading .heading-actions .btn,.route-detail-heading .heading-actions .btn{text-align:center}.map-filters{grid-template-columns:1fr 1fr}.map-filters .filter-actions{grid-column:1/3}.field-map{height:430px}.map-side-stack,.route-side-stack{grid-template-columns:1fr}.map-service-row,.route-stop{grid-template-columns:38px minmax(0,1fr)}.map-service-status,.route-stop-actions{grid-column:2;justify-items:start;text-align:left}.route-stop-actions{display:flex;flex-wrap:wrap;align-items:center}.map-history-filters{grid-template-columns:1fr 1fr}.map-history-filters .filter-actions{grid-column:1/3}.map-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.map-heading .heading-actions,.route-detail-heading .heading-actions{grid-template-columns:1fr}.map-filters,.map-history-filters{grid-template-columns:1fr}.map-filters .filter-actions,.map-history-filters .filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.route-builder-grid{grid-template-columns:1fr}.field-map{height:360px}.map-kpis{grid-template-columns:1fr}.route-stop-meta{display:grid;grid-template-columns:1fr}.map-service-row,.route-stop{padding:9px}.route-stop-actions{grid-column:1/3}.map-service-status{grid-column:1/3;justify-items:start}.route-summary-grid{grid-template-columns:1fr 1fr}}

/* Módulo 10 · Cotizaciones */
.quote-heading-actions,.quote-heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.quote-kpis .metric-card strong{font-size:1.7rem}.quote-filter-panel{padding:18px}.quote-filters{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(3,minmax(150px,1fr)) auto;gap:14px;align-items:end}.quote-filters label{display:grid;gap:7px}.quote-filters label>span{font-size:.76rem;color:var(--muted);font-weight:700}.quote-table td small,.quote-detail-table td small{display:block;margin-top:4px;color:var(--muted)}.quote-status{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 10px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.01em;border:1px solid rgba(148,163,184,.16);background:rgba(148,163,184,.08);color:#cbd5e1}.quote-status.draft{color:#cbd5e1}.quote-status.sent,.quote-status.viewed{color:#7dd3fc;background:rgba(14,165,255,.1);border-color:rgba(14,165,255,.22)}.quote-status.approved,.quote-status.converted{color:#86efac;background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.22)}.quote-status.rejected,.quote-status.cancelled{color:#fca5a5;background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.22)}.quote-status.expired{color:#fcd34d;background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.22)}.quote-mobile-list{display:none}.quote-mobile-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:20px;padding:16px;color:var(--text);text-decoration:none}.quote-mobile-card>div,.quote-mobile-card footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.quote-mobile-card h3{margin:12px 0 6px;font-size:1rem}.quote-mobile-card p,.quote-mobile-card footer span{margin:0;color:var(--muted);font-size:.8rem}.quote-mobile-card footer{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.quote-form-panel{padding:20px}.quote-items-head{align-items:center}.quote-items-head>div{flex:1}.quote-items{display:grid;gap:14px}.quote-item-row{border:1px solid var(--border);background:rgba(255,255,255,.018);border-radius:18px;padding:16px}.quote-item-row-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.quote-item-row-top strong{font-size:.88rem}.quote-item-grid{display:grid;grid-template-columns:140px 140px minmax(260px,2fr) repeat(5,minmax(110px,1fr));gap:12px}.quote-item-grid label{display:grid;gap:7px;font-size:.74rem;color:var(--muted);font-weight:700}.quote-item-grid input,.quote-item-grid select{width:100%}.quote-desc-field{grid-column:span 2}.quote-line-total{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.quote-line-total span{font-size:.76rem;color:var(--muted)}.quote-line-total strong{font-size:1rem}.quote-totals{margin-left:auto;width:min(100%,420px);display:grid;gap:9px;padding:18px;border-radius:18px;background:rgba(14,165,255,.04);border:1px solid rgba(14,165,255,.14)}.quote-totals>div,.quote-detail-totals>div,.public-quote-totals>div{display:flex;align-items:center;justify-content:space-between;gap:20px}.quote-totals span,.quote-detail-totals span,.public-quote-totals span{color:var(--muted);font-size:.82rem}.quote-totals .grand,.quote-detail-totals .grand,.public-quote-totals .grand{border-top:1px solid var(--border);padding-top:11px;margin-top:3px}.quote-totals .grand strong,.quote-detail-totals .grand strong,.public-quote-totals .grand strong{font-size:1.3rem;color:#eaf2ff}.link-btn.danger{color:#fca5a5}
.quote-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.quote-main-stack,.quote-side-stack{display:grid;gap:18px}.quote-summary-panel .panel-head{align-items:center}.quote-grand-display{font-size:1.45rem}.quote-party-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.quote-party-grid>div{display:grid;gap:5px;padding:15px;border-radius:16px;background:var(--surface-soft);border:1px solid var(--border)}.quote-party-grid small{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.quote-party-grid span{font-size:.8rem;color:var(--muted)}.quote-detail-table th,.quote-detail-table td{white-space:nowrap}.quote-detail-table td:first-child{white-space:normal;min-width:260px}.quote-detail-totals{display:grid;gap:9px;width:min(100%,420px);margin:18px 0 0 auto}.quote-text-panel>div:not(.panel-head){padding:14px 0;border-top:1px solid var(--border)}.quote-text-panel p{margin:8px 0 0;line-height:1.7;color:var(--muted);white-space:normal}.quote-client-action,.quote-convert-panel,.quote-converted-panel{display:grid;gap:14px}.quote-client-action>p,.quote-convert-panel>p{margin:0;color:var(--muted);line-height:1.6;font-size:.84rem}.quote-client-action label{display:grid;gap:7px;font-size:.74rem;color:var(--muted);font-weight:700}.quote-link-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quote-response-box{display:grid;gap:4px;border-radius:16px;padding:14px;border:1px solid var(--border);background:var(--surface-soft)}.quote-response-box small,.quote-response-box span{color:var(--muted)}.quote-response-box p{margin:7px 0 0;font-size:.82rem}.quote-response-box.approved{border-color:rgba(34,197,94,.28);background:rgba(34,197,94,.06)}.quote-response-box.rejected{border-color:rgba(239,68,68,.25);background:rgba(239,68,68,.06)}.quote-converted-panel>strong{font-size:1.2rem}
.public-quote-shell{width:min(100%,980px);margin:30px auto;padding:0 18px 40px;display:grid;gap:18px}.public-quote-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:26px;border:1px solid var(--border);border-radius:24px;background:rgba(11,18,32,.92);box-shadow:0 24px 70px rgba(0,0,0,.25)}.public-quote-header h1{margin:6px 0 4px;font-size:1.6rem}.public-quote-header p{margin:0;color:var(--muted)}.public-quote-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.public-quote-meta>div{padding:15px;border:1px solid var(--border);border-radius:18px;background:rgba(11,18,32,.88);display:grid;gap:4px}.public-quote-meta small{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.66rem}.public-quote-card{padding:24px;border:1px solid var(--border);border-radius:24px;background:rgba(11,18,32,.9);box-shadow:0 20px 60px rgba(0,0,0,.18)}.public-quote-card h2{margin:0 0 16px}.public-quote-items{display:grid}.public-quote-items article{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-top:1px solid var(--border)}.public-quote-items article:first-child{border-top:0}.public-quote-items article>div{display:grid;gap:4px}.public-quote-items small,.public-quote-items span{color:var(--muted)}.public-quote-items article>strong{white-space:nowrap}.public-quote-totals{display:grid;gap:9px;margin-left:auto;width:min(100%,390px);padding-top:16px;border-top:1px solid var(--border)}.public-quote-text{display:grid;gap:18px}.public-quote-text>div+div{padding-top:18px;border-top:1px solid var(--border)}.public-quote-text p{color:var(--muted);line-height:1.75;margin:0}.public-response{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:start}.public-response>div>p{color:var(--muted);line-height:1.6}.public-response-actions{display:flex;justify-content:flex-end;gap:10px}.public-response-result{display:grid;gap:7px;text-align:center}.public-response-result>strong{font-size:1.2rem}.public-response-result.approved{border-color:rgba(34,197,94,.28)}.public-response-result.rejected{border-color:rgba(239,68,68,.25)}.public-quote-footer{text-align:center;display:grid;gap:4px;color:var(--muted);font-size:.78rem}.public-quote-footer strong{color:var(--text)}.public-unavailable{min-height:70vh;place-content:center}.public-unavailable .public-quote-card{text-align:center}.public-unavailable h1{margin:10px 0}.public-unavailable p{color:var(--muted)}
@media(max-width:1180px){.quote-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-filters .search-field{grid-column:span 2}.quote-item-grid{grid-template-columns:repeat(4,minmax(120px,1fr))}.quote-desc-field{grid-column:span 2}.quote-detail-grid{grid-template-columns:1fr}.quote-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-side-stack>section:last-child{grid-column:1/-1}}
@media(max-width:760px){.quote-kpis{grid-template-columns:1fr 1fr}.quote-filters{grid-template-columns:1fr}.quote-filters .search-field{grid-column:auto}.quote-table{display:none}.quote-mobile-list{display:grid;gap:10px}.quote-item-grid{grid-template-columns:1fr 1fr}.quote-desc-field{grid-column:1/-1}.quote-items-head{display:grid;grid-template-columns:auto 1fr}.quote-items-head .btn{grid-column:1/-1}.quote-party-grid{grid-template-columns:1fr}.quote-side-stack{grid-template-columns:1fr}.quote-side-stack>section:last-child{grid-column:auto}.public-quote-meta{grid-template-columns:1fr 1fr}.public-response{grid-template-columns:1fr}.quote-heading-actions{width:100%}.quote-heading-actions .btn{flex:1}.quote-link-actions{grid-template-columns:1fr}}
@media(max-width:520px){.quote-kpis{grid-template-columns:1fr}.quote-item-grid{grid-template-columns:1fr}.quote-desc-field{grid-column:auto}.quote-item-row{padding:13px}.quote-totals{padding:14px}.public-quote-shell{padding:0 10px 28px;margin-top:14px}.public-quote-header{display:grid;padding:19px}.public-quote-meta{grid-template-columns:1fr}.public-quote-card{padding:18px}.public-quote-items article{display:grid}.public-quote-items article>strong{justify-self:end}.public-response-actions{display:grid;grid-template-columns:1fr}.quote-detail-table{min-width:760px}}

/* Módulo 11 · Productos, materiales y almacén */
.inventory-heading p,.page-heading p{max-width:760px}
.inventory-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.inventory-kpis article{position:relative;overflow:hidden;padding:20px;border:1px solid rgba(148,163,184,.14);border-radius:22px;background:linear-gradient(145deg,rgba(15,23,42,.92),rgba(7,15,30,.84));box-shadow:0 18px 42px rgba(0,0,0,.16)}.inventory-kpis article:after{content:"";position:absolute;right:-34px;top:-42px;width:112px;height:112px;border-radius:50%;background:rgba(14,165,255,.08)}.inventory-kpis article.attention:after{background:rgba(124,58,237,.14)}.inventory-kpis span{display:block;color:#94a3b8;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.inventory-kpis strong{display:block;margin:9px 0 4px;color:#f8fbff;font-size:1.8rem}.inventory-kpis small{color:#7f8da3}.inventory-shortcuts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.inventory-shortcuts>a{display:flex;gap:12px;align-items:center;padding:16px;border:1px solid rgba(148,163,184,.12);border-radius:18px;background:rgba(12,21,38,.82);text-decoration:none;transition:.2s ease}.inventory-shortcuts>a:hover{transform:translateY(-2px);border-color:rgba(34,211,238,.35);background:rgba(14,29,51,.92)}.inventory-shortcuts strong,.inventory-shortcuts small{display:block}.inventory-shortcuts strong{color:#edf6ff}.inventory-shortcuts small{margin-top:3px;color:#8190a8;font-size:.76rem;line-height:1.25}.inventory-shortcut-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:13px;background:linear-gradient(145deg,rgba(14,165,255,.16),rgba(124,58,237,.15));color:#72ddff;font-size:1.1rem}.inventory-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.inventory-alert-list,.inventory-movement-list{display:grid;gap:9px}.inventory-alert-list article,.inventory-movement-list article{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(148,163,184,.08)}.inventory-alert-list article:last-child,.inventory-movement-list article:last-child{border-bottom:0}.inventory-alert-list article>div,.inventory-movement-list article>div{min-width:0;flex:1}.inventory-alert-list strong,.inventory-movement-list strong{display:block;color:#eef6ff}.inventory-alert-list small,.inventory-movement-list small{display:block;margin-top:3px;color:#7f8da3}.inventory-alert-list article>span{padding:7px 10px;border-radius:12px;background:rgba(124,58,237,.13);color:#d9c6ff;font-weight:700}.movement-sign{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;font-weight:800}.movement-sign.in{background:rgba(34,211,238,.12);color:#73e9fa}.movement-sign.out{background:rgba(124,58,237,.16);color:#cab2ff}.inventory-filter-panel{margin-bottom:18px}.inventory-filter-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.inventory-filter-form label{min-width:150px}.inventory-filter-form .grow{flex:1;min-width:230px}.inventory-filter-form input,.inventory-filter-form select{min-height:43px}.soft-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:rgba(14,165,255,.09);color:#9adfff;font-size:.76rem;font-weight:700}.stock-warning{display:inline-flex;margin-left:8px;padding:4px 8px;border-radius:999px;background:rgba(124,58,237,.14);color:#d8c4ff;font-size:.7rem;font-weight:800}.stock-low-value{color:#d9c2ff}.movement-qty.in{color:#78e9f7}.movement-qty.out{color:#d1baff}.modern-table td small{display:block;margin-top:4px;color:#7f8da3}.modern-table .table-actions{white-space:nowrap}.modern-table .table-actions form{display:inline-block}.inventory-item-form{display:grid;gap:18px}.inventory-kit-panel[hidden],.material-manual-fields[hidden]{display:none!important}.checkbox-card{display:flex!important;align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(148,163,184,.12);border-radius:14px;background:rgba(8,17,31,.6)}.checkbox-card input{width:18px;height:18px}.checkbox-card span,.checkbox-card strong,.checkbox-card small{display:block}.checkbox-card small{margin-top:2px;color:#7f8da3}.kit-component-list,.transfer-item-list{display:grid;gap:10px}.kit-component-row,.transfer-item-row{display:flex;gap:10px;align-items:end;padding:12px;border:1px solid rgba(148,163,184,.1);border-radius:16px;background:rgba(7,16,30,.55)}.kit-component-row label,.transfer-item-row label{min-width:150px}.kit-component-row .grow,.transfer-item-row .grow{flex:1}.inventory-catalog-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.inventory-warehouses-card{grid-column:1/-1}.catalog-create-form,.warehouse-create-form{display:flex;align-items:end;gap:9px;flex-wrap:wrap;margin-bottom:16px}.catalog-create-form input{flex:1;min-width:120px}.catalog-unit-form input:nth-of-type(3){max-width:90px}.catalog-list,.warehouse-list{display:grid;gap:8px}.catalog-list article,.warehouse-list article{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid rgba(148,163,184,.08)}.catalog-list article>div,.warehouse-list article>div:not(.warehouse-avatar){flex:1;min-width:0}.catalog-list strong,.catalog-list small,.warehouse-list strong,.warehouse-list small{display:block}.catalog-list small,.warehouse-list small{margin-top:3px;color:#7f8da3}.catalog-list strong span{color:#8ea1b9;font-weight:500}.warehouse-create-form label{min-width:150px}.warehouse-create-form .grow{flex:1}.warehouse-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(14,165,255,.11);color:#83ddff;font-weight:800}.stock-adjust-form{display:grid;grid-template-columns:100px minmax(140px,1fr) auto;gap:6px;min-width:360px}.stock-adjust-form input{min-height:38px}.inventory-transfer-form{display:grid;gap:18px}.inventory-transfer-detail{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px}.transfer-meta{display:grid;gap:16px;align-content:start}.transfer-meta>div{padding-bottom:13px;border-bottom:1px solid rgba(148,163,184,.08)}.transfer-meta span,.transfer-meta strong,.transfer-meta small{display:block}.transfer-meta span{color:#7f8da3;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.transfer-meta strong{margin-top:5px;color:#f1f7ff}.transfer-meta small{margin-top:4px;color:#8190a8}.transfer-meta p{color:#a9b5c7;line-height:1.55}.status-pill.draft{background:rgba(14,165,255,.11);color:#8bdcff}.status-pill.completed{background:rgba(34,211,238,.11);color:#87edf8}.status-pill.cancelled{background:rgba(124,58,237,.14);color:#d4bdff}.material-inventory-form{display:flex;gap:9px;align-items:end;flex-wrap:wrap}.material-inventory-form>label{min-width:150px}.material-inventory-form>.grow{flex:1;min-width:260px}.material-manual-fields{display:flex;gap:9px;align-items:end;flex:1 1 100%;flex-wrap:wrap;padding-top:4px}.material-manual-fields label{min-width:140px}.material-manual-fields .grow{flex:1;min-width:220px}
@media(max-width:1180px){.inventory-kpis{grid-template-columns:repeat(2,1fr)}.inventory-shortcuts{grid-template-columns:repeat(3,1fr)}.inventory-transfer-detail{grid-template-columns:1fr}.transfer-meta{grid-template-columns:repeat(2,1fr)}.transfer-meta form{grid-column:1/-1}}
@media(max-width:860px){.inventory-dashboard-grid,.inventory-catalog-grid{grid-template-columns:1fr}.inventory-warehouses-card{grid-column:auto}.inventory-shortcuts{grid-template-columns:repeat(2,1fr)}.kit-component-row,.transfer-item-row{align-items:stretch;flex-wrap:wrap}.kit-component-row .grow,.transfer-item-row .grow{flex-basis:100%}.stock-adjust-form{min-width:300px;grid-template-columns:90px 1fr}.stock-adjust-form button{grid-column:1/-1}.warehouse-create-form label{flex:1 1 180px}.transfer-meta{grid-template-columns:1fr}}
@media(max-width:560px){.inventory-kpis{grid-template-columns:1fr 1fr;gap:10px}.inventory-kpis article{padding:15px}.inventory-kpis strong{font-size:1.35rem}.inventory-shortcuts{grid-template-columns:1fr}.inventory-filter-form{display:grid;grid-template-columns:1fr;width:100%}.inventory-filter-form label,.inventory-filter-form .grow{min-width:0;width:100%}.catalog-create-form,.warehouse-create-form,.material-inventory-form,.material-manual-fields{display:grid;grid-template-columns:1fr;width:100%}.catalog-create-form input,.warehouse-create-form label,.material-inventory-form>label,.material-inventory-form>.grow,.material-manual-fields label,.material-manual-fields .grow{min-width:0;width:100%}.kit-component-row,.transfer-item-row{display:grid;grid-template-columns:1fr}.stock-adjust-form{min-width:250px}.inventory-kpis small{display:none}}

/* Módulo 12 · Cobranza */
.billing-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.billing-kpis article{position:relative;overflow:hidden;padding:20px;border:1px solid rgba(148,163,184,.14);border-radius:22px;background:linear-gradient(145deg,rgba(15,23,42,.94),rgba(7,15,30,.86));box-shadow:0 18px 42px rgba(0,0,0,.16)}.billing-kpis article:after{content:"";position:absolute;right:-36px;top:-42px;width:116px;height:116px;border-radius:50%;background:rgba(14,165,255,.09)}.billing-kpis article.attention:after{background:rgba(239,68,68,.13)}.billing-kpis span{display:block;color:#94a3b8;font-size:.77rem;text-transform:uppercase;letter-spacing:.08em}.billing-kpis strong{display:block;margin:9px 0 4px;color:#f8fbff;font-size:1.55rem;line-height:1.2}.billing-kpis small{color:#7f8da3}.billing-shortcuts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.billing-shortcuts>a{display:flex;gap:12px;align-items:center;padding:16px;border:1px solid rgba(148,163,184,.12);border-radius:18px;background:rgba(12,21,38,.82);transition:.2s ease}.billing-shortcuts>a:hover{transform:translateY(-2px);border-color:rgba(34,211,238,.35);background:rgba(14,29,51,.92)}.billing-shortcuts>a>span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:13px;background:linear-gradient(145deg,rgba(14,165,255,.16),rgba(124,58,237,.15));color:#72ddff;font-size:1.1rem;font-weight:850}.billing-shortcuts strong,.billing-shortcuts small{display:block}.billing-shortcuts strong{color:#edf6ff}.billing-shortcuts small{margin-top:3px;color:#8190a8;font-size:.75rem;line-height:1.25}.billing-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.billing-list{display:grid}.billing-list>a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid rgba(148,163,184,.08)}.billing-list>a:last-child{border-bottom:0}.billing-list strong,.billing-list small,.billing-list b{display:block}.billing-list small{margin-top:3px;color:#7f8da3;font-size:.75rem}.billing-list b{color:#eaf6ff}.billing-amount{text-align:right}.billing-alert-panel{margin-top:18px}.billing-alert-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.billing-alert-grid>a{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px;border:1px solid rgba(239,68,68,.16);border-radius:14px;background:rgba(239,68,68,.04)}.billing-alert-grid strong,.billing-alert-grid small,.billing-alert-grid b{display:block}.billing-alert-grid small{color:#8b9aae;margin-top:3px;font-size:.72rem}.billing-alert-grid b{color:#ffd2d2;white-space:nowrap}.billing-filters{display:grid;grid-template-columns:minmax(220px,1.6fr) 150px minmax(180px,1fr) 160px auto;gap:10px;align-items:end}.billing-filters.compact{grid-template-columns:minmax(240px,1.7fr) 150px minmax(200px,1fr) auto}.billing-filters input,.billing-filters select{margin-top:6px}.filter-panel{margin-bottom:18px}.status-pill.issued{background:rgba(14,165,255,.11);color:#8bdcff}.status-pill.partial{background:rgba(245,158,11,.12);color:#ffd07c}.status-pill.paid,.status-pill.posted{background:rgba(34,197,94,.11);color:#86efac}.status-pill.overdue{background:rgba(239,68,68,.12);color:#fca5a5}.billing-form-panel,.billing-payment-form{max-width:1120px;margin:0 auto}.billing-items{display:grid;gap:12px}.billing-items-head{justify-content:flex-start}.billing-items-head .btn{margin-left:auto}.billing-item-row{padding:14px;border:1px solid rgba(148,163,184,.12);border-radius:16px;background:rgba(7,16,30,.6)}.billing-item-row-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.billing-item-grid{display:grid;grid-template-columns:minmax(260px,2fr) 110px 120px 140px 120px 120px;gap:10px}.billing-line-total{display:flex;justify-content:flex-end;gap:14px;align-items:center;padding-top:10px}.billing-line-total span{color:#7f8da3;font-size:.75rem}.billing-line-total strong{color:#dff7ff}.billing-form-bottom{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.billing-totals{display:grid;gap:7px;padding:15px;border:1px solid rgba(148,163,184,.12);border-radius:15px;background:#081321}.billing-totals>div{display:flex;justify-content:space-between;gap:10px}.billing-totals span{color:#8a9ab0}.billing-totals .grand{padding-top:9px;border-top:1px solid rgba(148,163,184,.12);font-size:1.08rem}.billing-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) 340px;gap:18px}.billing-main-stack,.billing-side-stack{display:grid;gap:18px;align-content:start}.billing-balance-hero{display:grid;gap:12px}.billing-balance-hero span,.billing-balance-hero small,.billing-balance-hero strong{display:block}.billing-balance-hero span{color:#8ea0b7;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.billing-balance-hero strong{font-size:2rem;margin:3px 0}.billing-balance-hero small{color:#7f8da3}.billing-progress{height:9px;border-radius:999px;background:#091321;overflow:hidden;border:1px solid #172941}.billing-progress i{display:block;height:100%;background:linear-gradient(90deg,#0ea5ff,#22d3ee);border-radius:inherit}.billing-party-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.billing-party-grid>div{padding:13px;border:1px solid rgba(148,163,184,.1);border-radius:14px;background:rgba(8,18,32,.55)}.billing-party-grid small,.billing-party-grid strong,.billing-party-grid span{display:block}.billing-party-grid small{color:#7f8da3;font-size:.7rem;text-transform:uppercase;letter-spacing:.07em}.billing-party-grid strong{margin:5px 0;color:#eef7ff}.billing-party-grid span{font-size:.77rem;color:#a2b2c6;margin-top:3px}.billing-detail-totals{margin-left:auto;width:min(360px,100%);padding-top:14px}.billing-detail-totals>div{display:flex;justify-content:space-between;padding:7px 0;color:#a8b7c9}.billing-detail-totals .grand{border-top:1px solid rgba(148,163,184,.12);margin-top:5px;padding-top:12px;color:#f1f8ff;font-size:1.05rem}.billing-cancel-form{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(148,163,184,.1)}.billing-cancel-note{margin-top:12px;padding:12px;border-radius:12px;background:rgba(124,58,237,.09);border:1px solid rgba(124,58,237,.18)}.billing-cancel-note p,.billing-note-text{color:#a8b7c9;line-height:1.6}.billing-payment-hero>span{display:block;color:#8ea0b7;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.billing-payment-hero>strong{display:block;font-size:2.1rem;margin:7px 0 18px}.billing-payment-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.billing-payment-breakdown>div{padding:12px;border:1px solid rgba(148,163,184,.1);border-radius:13px;background:rgba(8,18,32,.56)}.billing-payment-breakdown small,.billing-payment-breakdown b{display:block}.billing-payment-breakdown small{color:#7f8da3}.billing-payment-breakdown b{margin-top:4px;color:#eef7ff}.billing-statement-selector{margin-bottom:18px}.billing-statement-selector form{display:grid;grid-template-columns:minmax(260px,520px) auto;gap:10px;align-items:end}.statement-kpis{margin-top:0}.billing-statement-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:18px}.billing-method-create{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:12px;align-items:end;padding-bottom:16px;border-bottom:1px solid rgba(148,163,184,.1)}.billing-method-list{display:grid}.billing-method-list article{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid rgba(148,163,184,.08)}.billing-method-list strong,.billing-method-list small{display:block}.billing-method-list small{margin-top:3px;color:#7f8da3}.btn-compact{padding:8px 12px}.link-btn.danger{color:#f5a0a0}.pagination a.active{color:#fff;font-weight:800}.heading-actions form{margin:0}
@media(max-width:1180px){.billing-kpis{grid-template-columns:repeat(2,1fr)}.billing-shortcuts{grid-template-columns:repeat(3,1fr)}.billing-alert-grid{grid-template-columns:repeat(2,1fr)}.billing-item-grid{grid-template-columns:minmax(220px,2fr) 100px 110px 130px 110px 110px}.billing-filters{grid-template-columns:1fr 1fr 1fr}.billing-filters .filter-actions{grid-column:span 3}.billing-detail-grid{grid-template-columns:1fr}.billing-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-statement-grid{grid-template-columns:1fr}}
@media(max-width:820px){.billing-dashboard-grid{grid-template-columns:1fr}.billing-shortcuts{grid-template-columns:repeat(2,1fr)}.billing-item-grid{grid-template-columns:1fr 1fr 1fr}.billing-desc-field{grid-column:1/-1}.billing-form-bottom{grid-template-columns:1fr}.billing-filters,.billing-filters.compact{grid-template-columns:1fr 1fr}.billing-filters .filter-actions{grid-column:1/-1}.billing-party-grid{grid-template-columns:1fr 1fr}.billing-side-stack{grid-template-columns:1fr}.billing-payment-breakdown{grid-template-columns:1fr 1fr}.billing-statement-selector form{grid-template-columns:1fr auto}.billing-method-create{grid-template-columns:1fr 1fr}.billing-method-create .btn{grid-column:1/-1}.billing-alert-grid{grid-template-columns:1fr}}
@media(max-width:560px){.billing-kpis{grid-template-columns:1fr}.billing-shortcuts{grid-template-columns:1fr}.billing-shortcuts>a{padding:14px}.billing-item-grid{grid-template-columns:1fr 1fr}.billing-desc-field{grid-column:1/-1}.billing-items-head{align-items:flex-start;flex-wrap:wrap}.billing-items-head .btn{margin-left:49px}.billing-filters,.billing-filters.compact{grid-template-columns:1fr}.billing-filters .filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.billing-party-grid,.billing-payment-breakdown{grid-template-columns:1fr}.billing-statement-selector form{grid-template-columns:1fr}.billing-statement-selector .btn{width:100%}.billing-method-create{grid-template-columns:1fr}.billing-method-create .btn{grid-column:auto}.billing-list>a{align-items:flex-start}.billing-amount{text-align:right}.billing-detail-totals{width:100%}}
/* Módulo 13 · Gastos y comisiones */
.expense-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-form-grid .span-2{grid-column:span 2}
.expense-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.expense-kpis article{position:relative;overflow:hidden;padding:20px;border:1px solid rgba(148,163,184,.14);border-radius:22px;background:linear-gradient(145deg,rgba(15,23,42,.94),rgba(7,15,30,.86));box-shadow:0 18px 42px rgba(0,0,0,.16)}.expense-kpis article:after{content:"";position:absolute;right:-36px;top:-42px;width:116px;height:116px;border-radius:50%;background:rgba(34,211,238,.08)}.expense-kpis article.attention:after{background:rgba(245,158,11,.14)}.expense-kpis span{display:block;color:#94a3b8;font-size:.77rem;text-transform:uppercase;letter-spacing:.08em}.expense-kpis strong{display:block;margin:9px 0 4px;color:#f8fbff;font-size:1.55rem}.expense-kpis small{color:#7f8da3}.expense-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.expense-shortcuts>a{display:flex;gap:12px;align-items:center;padding:16px;border:1px solid rgba(148,163,184,.12);border-radius:18px;background:rgba(12,21,38,.82);transition:.2s ease}.expense-shortcuts>a:hover{transform:translateY(-2px);border-color:rgba(34,211,238,.35);background:rgba(14,29,51,.92)}.expense-shortcuts>a>span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:13px;background:linear-gradient(145deg,rgba(34,211,238,.14),rgba(124,58,237,.16));color:#79e9f5;font-size:1.1rem;font-weight:850}.expense-shortcuts strong,.expense-shortcuts small{display:block}.expense-shortcuts strong{color:#edf6ff}.expense-shortcuts small{margin-top:3px;color:#8190a8;font-size:.75rem}.expense-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.expense-list{display:grid}.expense-list>a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid rgba(148,163,184,.08)}.expense-list>a:last-child{border-bottom:0}.expense-list strong,.expense-list small,.expense-list b{display:block}.expense-list small{margin-top:3px;color:#7f8da3;font-size:.75rem}.expense-amount{text-align:right}.expense-filters{display:grid;grid-template-columns:minmax(210px,1.5fr) 145px 170px 160px 145px 145px auto;gap:10px;align-items:end}.expense-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) 340px;gap:18px}.expense-main-stack,.expense-side-stack{display:grid;gap:18px;align-content:start}.expense-total-hero>span,.expense-total-hero>strong,.expense-total-hero>small{display:block}.expense-total-hero>span{color:#8ea0b7;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.expense-total-hero>strong{font-size:2.1rem;margin:7px 0}.expense-total-hero>small{color:#7f8da3}.detail-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.detail-list>div{padding:12px;border:1px solid rgba(148,163,184,.1);border-radius:13px;background:rgba(8,18,32,.55)}.detail-list span,.detail-list strong{display:block}.detail-list span{color:#7f8da3;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.detail-list strong{margin-top:4px;color:#eef7ff}.expense-note-text{color:#a8b7c9;line-height:1.65}.expense-document{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid rgba(148,163,184,.1);border-radius:14px;background:rgba(8,18,32,.55)}.expense-document strong,.expense-document small{display:block}.expense-document small{color:#7f8da3}.expense-action-form{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(148,163,184,.1)}.expense-alert{margin-top:12px;padding:12px;border-radius:12px;background:rgba(124,58,237,.09);border:1px solid rgba(124,58,237,.18)}.expense-alert p{margin:5px 0 0;color:#a8b7c9}.expense-category-grid{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:18px}.category-list{display:grid}.category-list article{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(148,163,184,.08)}.category-list article>div{min-width:0;flex:1}.category-list strong,.category-list small{display:block}.category-list small{margin-top:3px;color:#7f8da3}.commission-preview{padding:14px;border:1px solid rgba(34,211,238,.18);border-radius:14px;background:linear-gradient(135deg,rgba(14,165,255,.07),rgba(124,58,237,.07))}.commission-preview span,.commission-preview strong,.commission-preview small{display:block}.commission-preview span{color:#8ea0b7;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}.commission-preview strong{margin:5px 0;font-size:1.35rem;color:#eafaff}.commission-preview small{color:#7f8da3}.report-date-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.report-date-filter label{min-width:180px}.report-kpis{margin-top:0}.expense-report-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.report-ranking{display:grid}.report-ranking article{display:grid;grid-template-columns:minmax(130px,1fr) minmax(120px,1.2fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid rgba(148,163,184,.08)}.report-ranking strong,.report-ranking small{display:block}.report-ranking small{margin-top:3px;color:#7f8da3}.report-ranking b{white-space:nowrap}.report-bar{height:8px;border-radius:999px;background:#091321;overflow:hidden}.report-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0ea5ff,#22d3ee)}.status-pill.pending{background:rgba(245,158,11,.12);color:#ffd07c}.status-pill.approved{background:rgba(14,165,255,.11);color:#8bdcff}.status-pill.rejected{background:rgba(239,68,68,.12);color:#fca5a5}
@media(max-width:1180px){.expense-kpis{grid-template-columns:repeat(2,1fr)}.expense-filters{grid-template-columns:repeat(3,1fr)}.expense-filters .filter-actions{grid-column:1/-1}.expense-detail-grid{grid-template-columns:1fr}.expense-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-report-grid{grid-template-columns:1fr}.detail-list{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.expense-form-grid{grid-template-columns:1fr}.expense-form-grid .span-2{grid-column:auto}.expense-dashboard-grid,.expense-category-grid{grid-template-columns:1fr}.expense-shortcuts{grid-template-columns:repeat(2,1fr)}.expense-filters{grid-template-columns:1fr 1fr}.expense-filters .filter-actions{grid-column:1/-1}.expense-side-stack{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr 1fr}.report-ranking article{grid-template-columns:1fr auto}.report-bar{grid-column:1/-1}}
@media(max-width:560px){.expense-kpis{grid-template-columns:1fr}.expense-shortcuts{grid-template-columns:1fr}.expense-filters{grid-template-columns:1fr}.expense-filters .filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.detail-list{grid-template-columns:1fr}.expense-list>a{align-items:flex-start}.expense-document{align-items:flex-start;flex-direction:column}.report-date-filter{display:grid;grid-template-columns:1fr;width:100%}.report-date-filter label,.report-date-filter .btn{width:100%}.report-ranking article{grid-template-columns:1fr}.report-ranking b{justify-self:start}.report-bar{grid-column:auto;width:100%}.commission-preview.span-2{grid-column:auto}}
/* Módulo 14 · Contratos y mantenimientos recurrentes */
.contract-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.contract-kpis article{position:relative;overflow:hidden;padding:20px;border:1px solid rgba(148,163,184,.14);border-radius:22px;background:linear-gradient(145deg,rgba(15,23,42,.94),rgba(7,15,30,.86));box-shadow:0 18px 42px rgba(0,0,0,.16)}.contract-kpis article:after{content:"";position:absolute;right:-36px;top:-42px;width:116px;height:116px;border-radius:50%;background:rgba(14,165,255,.09)}.contract-kpis article.attention:after{background:rgba(245,158,11,.14)}.contract-kpis span{display:block;color:#94a3b8;font-size:.77rem;text-transform:uppercase;letter-spacing:.08em}.contract-kpis strong{display:block;margin:9px 0 4px;color:#f8fbff;font-size:1.55rem}.contract-kpis small{color:#7f8da3}.contract-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.contract-shortcuts>a,.contract-shortcuts form>button{display:flex;width:100%;height:100%;gap:12px;align-items:center;text-align:left;padding:16px;border:1px solid rgba(148,163,184,.12);border-radius:18px;background:rgba(12,21,38,.82);color:inherit;transition:.2s ease;cursor:pointer}.contract-shortcuts>a:hover,.contract-shortcuts form>button:hover{transform:translateY(-2px);border-color:rgba(34,211,238,.35);background:rgba(14,29,51,.92)}.contract-shortcuts>a>span,.contract-shortcuts form>button>span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:13px;background:linear-gradient(145deg,rgba(14,165,255,.14),rgba(124,58,237,.16));color:#85eaff;font-size:1.15rem;font-weight:850}.contract-shortcuts strong,.contract-shortcuts small{display:block}.contract-shortcuts strong{color:#edf6ff}.contract-shortcuts small{margin-top:3px;color:#8190a8;font-size:.75rem}.contract-shortcuts form{margin:0}.contract-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contract-list{display:grid}.contract-list>a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid rgba(148,163,184,.08)}.contract-list>a:last-child{border-bottom:0}.contract-list strong,.contract-list small{display:block}.contract-list small{margin-top:3px;color:#7f8da3}.contract-list-meta{text-align:right}.contract-list-meta small{margin-top:6px}.contract-renewal-panel{margin-top:18px}.renewal-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.renewal-cards>a{display:flex;justify-content:space-between;gap:14px;padding:14px;border:1px solid rgba(148,163,184,.1);border-radius:16px;background:rgba(8,18,32,.52)}.renewal-cards strong,.renewal-cards small{display:block}.renewal-cards small{margin-top:4px;color:#7f8da3}.renewal-cards b{align-self:center;white-space:nowrap;color:#9ee8ff}.renewal-cards b.is-overdue{color:#fca5a5}.contract-filters{display:grid;grid-template-columns:minmax(210px,1.4fr) 145px 160px minmax(180px,1fr) minmax(170px,1fr) 150px auto;gap:10px;align-items:end}.contract-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-form-grid .span-2,.contract-plan-form .span-2{grid-column:span 2}.form-section-title{display:flex;justify-content:space-between;gap:12px;align-items:end;padding-top:8px;border-bottom:1px solid rgba(148,163,184,.1);padding-bottom:10px}.form-section-title span{font-weight:800;color:#eff8ff}.form-section-title small{color:#7f8da3}.contract-option-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.switch-card{display:flex!important;align-items:flex-start!important;gap:12px;padding:14px;border:1px solid rgba(148,163,184,.12);border-radius:16px;background:rgba(8,18,32,.55)}.switch-card input{margin-top:3px;width:18px;height:18px;accent-color:#0ea5ff}.switch-card strong,.switch-card small{display:block}.switch-card strong{color:#edf6ff}.switch-card small{margin-top:4px;color:#7f8da3;line-height:1.45}.contract-detail-grid{display:grid;grid-template-columns:minmax(0,1.55fr) 350px;gap:18px}.contract-main-stack,.contract-side-stack{display:grid;gap:18px;align-content:start}.contract-hero-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.contract-hero-top>div>strong,.contract-hero-top>div>small{display:block}.contract-hero-top>div>strong{margin-top:14px;font-size:2rem;color:#f8fbff}.contract-hero-top>div>small{margin-top:6px;color:#8b9ab0}.plan-chip{display:inline-flex;padding:8px 11px;border-radius:999px;background:rgba(124,58,237,.13);border:1px solid rgba(124,58,237,.22);color:#d6c5ff;font-size:.78rem;font-weight:800}.contract-detail-list{grid-template-columns:repeat(3,1fr)}.contract-copy{margin-top:16px;padding-top:16px;border-top:1px solid rgba(148,163,184,.1)}.contract-copy>span{display:block;color:#7f8da3;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}.contract-copy p,.contract-notes{margin:7px 0 0;color:#aab8c9;line-height:1.65}.contract-actions{display:grid;gap:12px}.contract-actions form{display:grid;gap:9px}.contract-actions .btn{width:100%}.compact-form{gap:12px}.compact-form .btn{width:100%}.check-inline{display:flex!important;align-items:center!important;gap:9px}.check-inline input{width:18px;height:18px;accent-color:#0ea5ff}.visit-inline-form{display:flex;gap:8px;align-items:center}.visit-inline-form select{min-width:125px}.contract-plan-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:18px}.contract-plan-form{grid-template-columns:1fr 1fr}.service-plan-list{display:grid;gap:12px}.service-plan-list article{padding:15px;border:1px solid rgba(148,163,184,.1);border-radius:16px;background:rgba(8,18,32,.52)}.service-plan-head{display:flex;justify-content:space-between;gap:12px}.service-plan-head strong,.service-plan-head small{display:block}.service-plan-head small{margin-top:3px;color:#7f8da3}.service-plan-list article>p{margin:10px 0;color:#9eacbe;line-height:1.55}.service-plan-meta{display:flex;gap:8px;flex-wrap:wrap}.service-plan-meta span{padding:7px 9px;border-radius:10px;background:rgba(14,165,255,.06);border:1px solid rgba(14,165,255,.12);color:#9bc7df;font-size:.76rem}.service-plan-meta b{color:#eaf8ff}.row-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid rgba(148,163,184,.08)}.row-actions form{margin:0}.contract-calendar-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:end;margin-bottom:18px}.contract-calendar-toolbar form{display:flex;gap:10px;align-items:end;flex:1;justify-content:center}.contract-calendar-toolbar label{min-width:190px}.contract-calendar{overflow:hidden}.contract-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid rgba(148,163,184,.1)}.contract-weekdays span{padding:10px;text-align:center;color:#7f8da3;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}.contract-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day{min-height:145px;padding:10px;border-right:1px solid rgba(148,163,184,.08);border-bottom:1px solid rgba(148,163,184,.08);background:rgba(8,18,32,.38)}.calendar-day:nth-child(7n){border-right:0}.calendar-day.is-empty{background:rgba(5,12,24,.28)}.calendar-day.is-today{background:linear-gradient(145deg,rgba(14,165,255,.09),rgba(124,58,237,.06))}.calendar-day-number{display:flex;justify-content:space-between;align-items:center;color:#dfeeff;font-weight:800}.calendar-day-number span{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:rgba(34,211,238,.11);color:#8feaff;font-size:.7rem}.calendar-day-events{display:grid;gap:6px;margin-top:8px}.contract-calendar-event{display:block;padding:8px;border-radius:10px;background:rgba(14,165,255,.08);border-left:3px solid #0ea5ff}.contract-calendar-event.completed{background:rgba(16,185,129,.08);border-left-color:#10b981}.contract-calendar-event.in_progress{background:rgba(124,58,237,.08);border-left-color:#7c3aed}.contract-calendar-event.cancelled,.contract-calendar-event.skipped{opacity:.65;border-left-color:#64748b}.contract-calendar-event strong,.contract-calendar-event small{display:block}.contract-calendar-event strong{font-size:.74rem;color:#eaf7ff}.contract-calendar-event small{margin-top:3px;color:#8090a6;font-size:.66rem}.status-pill.draft{background:rgba(148,163,184,.11);color:#cbd5e1}.status-pill.active{background:rgba(16,185,129,.12);color:#8bf0c8}.status-pill.paused{background:rgba(245,158,11,.12);color:#ffd07c}.status-pill.expired{background:rgba(239,68,68,.12);color:#fca5a5}.status-pill.planned{background:rgba(148,163,184,.11);color:#cbd5e1}.status-pill.scheduled{background:rgba(14,165,255,.12);color:#8bdcff}.status-pill.in_progress{background:rgba(124,58,237,.13);color:#d6c5ff}.status-pill.completed{background:rgba(16,185,129,.12);color:#8bf0c8}.status-pill.skipped{background:rgba(100,116,139,.13);color:#cbd5e1}
@media(max-width:1180px){.contract-kpis{grid-template-columns:repeat(2,1fr)}.contract-shortcuts{grid-template-columns:repeat(2,1fr)}.contract-filters{grid-template-columns:repeat(3,1fr)}.contract-filters .filter-actions{grid-column:1/-1}.contract-detail-grid{grid-template-columns:1fr}.contract-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-plan-grid{grid-template-columns:1fr}.renewal-cards{grid-template-columns:repeat(2,1fr)}.calendar-day{min-height:125px;padding:8px}}
@media(max-width:820px){.contract-dashboard-grid{grid-template-columns:1fr}.contract-filters{grid-template-columns:1fr 1fr}.contract-filters .filter-actions{grid-column:1/-1}.contract-form-grid{grid-template-columns:1fr}.contract-form-grid .span-2,.contract-plan-form .span-2{grid-column:auto}.contract-option-grid{grid-template-columns:1fr}.contract-side-stack{grid-template-columns:1fr}.contract-detail-list{grid-template-columns:1fr 1fr}.renewal-cards{grid-template-columns:1fr}.contract-calendar-toolbar{align-items:center}.contract-calendar-toolbar form{display:grid;grid-template-columns:1fr 1fr auto}.contract-calendar-toolbar label{min-width:0}.contract-calendar{overflow:auto}.contract-weekdays,.contract-calendar-grid{min-width:840px}.calendar-day{min-height:130px}}
@media(max-width:560px){.contract-kpis{grid-template-columns:1fr}.contract-shortcuts{grid-template-columns:1fr}.contract-filters{grid-template-columns:1fr}.contract-filters .filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.contract-hero-top{display:grid}.contract-detail-list{grid-template-columns:1fr}.contract-plan-form{grid-template-columns:1fr}.contract-calendar-toolbar{display:grid;grid-template-columns:auto 1fr auto}.contract-calendar-toolbar form{grid-column:1/-1;grid-row:2;grid-template-columns:1fr}.contract-calendar-toolbar form .btn{width:100%}.visit-inline-form{display:grid}.visit-inline-form select{min-width:0;width:100%}.form-section-title{display:block}.form-section-title small{display:block;margin-top:4px}.renewal-cards>a{display:grid}.renewal-cards b{justify-self:start}}
/* Módulo 15 · Portal del cliente */
.portal-shell{min-height:100vh;background:radial-gradient(circle at 78% 0,rgba(14,165,255,.10),transparent 28%),radial-gradient(circle at 15% 20%,rgba(124,58,237,.08),transparent 25%),#060B16}.portal-topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:18px;min-height:72px;padding:10px 24px;border-bottom:1px solid rgba(148,163,184,.10);background:rgba(6,11,22,.88);backdrop-filter:blur(18px)}.portal-brand{display:flex;align-items:center;gap:12px;min-width:210px}.portal-brand img{width:142px;max-height:38px}.portal-brand span{display:block;max-width:160px;color:#8fa2ba;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-nav{display:flex;align-items:center;gap:4px;flex:1;overflow:auto;scrollbar-width:none}.portal-nav::-webkit-scrollbar{display:none}.portal-nav a{white-space:nowrap;padding:9px 11px;border-radius:10px;color:#9bacc1;font-size:.78rem;font-weight:700;transition:.2s}.portal-nav a:hover,.portal-nav a.active{background:rgba(14,165,255,.10);color:#eef8ff}.portal-nav a.active{box-shadow:inset 0 -2px #0ea5ff}.portal-menu-btn{display:none;width:40px;height:40px;border-radius:10px;border:1px solid #20324c;background:#0b1626;color:#dcecff}.portal-main{max-width:1320px;margin:0 auto;padding:30px 24px 56px}.portal-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:22px}.portal-hero h1{margin:4px 0 6px;font-size:32px;letter-spacing:-.035em}.portal-hero p{margin:0;color:#8798b3}.portal-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.portal-kpis article{padding:18px;border-radius:18px;border:1px solid rgba(96,165,250,.14);background:linear-gradient(160deg,rgba(14,23,40,.95),rgba(8,15,27,.95));box-shadow:0 18px 48px rgba(0,0,0,.24)}.portal-kpis span,.portal-kpis small{display:block;color:#8293aa}.portal-kpis strong{display:block;margin-top:6px;font-size:24px;color:#f2f8ff;overflow-wrap:anywhere}.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.portal-grid.messages{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)}.portal-next{display:grid;gap:5px;padding:18px;border:1px solid rgba(14,165,255,.12);border-radius:16px;background:rgba(14,165,255,.05)}.portal-next strong{font-size:1rem}.portal-next span{color:#a5c7df}.portal-next small,.portal-muted{color:#7f90a7}.portal-activity{display:grid;gap:0}.portal-activity>div{display:grid;gap:3px;padding:11px 0;border-bottom:1px solid rgba(148,163,184,.08)}.portal-activity>div:last-child{border-bottom:0}.portal-activity span{color:#66d7ff;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.portal-activity strong{color:#e8f2ff}.portal-activity small{color:#75879e}.portal-list{padding:4px 20px}.portal-list>a,.portal-list-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 2px;border-bottom:1px solid rgba(148,163,184,.08)}.portal-list>a:last-child,.portal-list-row:last-child{border-bottom:0}.portal-list>a:hover{background:linear-gradient(90deg,rgba(14,165,255,.035),transparent)}.portal-list strong,.portal-list small{display:block}.portal-list small{margin-top:4px;color:#8192a8}.portal-list.compact{padding:0}.portal-list-meta{text-align:right;display:grid;justify-items:end;gap:7px}.portal-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.portal-detail-grid>div{padding:13px;border:1px solid rgba(148,163,184,.10);border-radius:14px;background:rgba(8,18,32,.48)}.portal-detail-grid span,.portal-detail-grid strong{display:block}.portal-detail-grid span{color:#778aa1;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.portal-detail-grid strong{margin-top:5px;color:#e9f4ff}.portal-section{margin-top:18px}.portal-section>p{color:#a9b8c9;line-height:1.7}.portal-tracking-grid,.portal-payment-review{display:grid;gap:16px}.portal-tracking-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-map-link{display:inline-flex;margin-top:14px}.portal-tracking-grid .portal-muted{display:block;margin-top:7px}.portal-total-card{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:18px 20px;border:1px solid rgba(34,211,238,.18);border-radius:18px;background:linear-gradient(135deg,rgba(14,165,255,.09),rgba(124,58,237,.08))}.portal-total-card span{color:#a4b5c9}.portal-total-card strong{font-size:1.5rem}.portal-conversation{display:grid;gap:12px;max-height:650px;overflow:auto;padding-right:4px}.portal-conversation article{max-width:84%;padding:14px 15px;border-radius:16px;border:1px solid rgba(148,163,184,.10);background:#0a1423}.portal-conversation article.mine{justify-self:end;background:linear-gradient(145deg,rgba(14,165,255,.13),rgba(124,58,237,.10));border-color:rgba(14,165,255,.20)}.portal-conversation article.staff{justify-self:start}.portal-conversation article span,.portal-conversation article strong,.portal-conversation article small{display:block}.portal-conversation article span{color:#66d7ff;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.portal-conversation article strong{margin-top:4px}.portal-conversation article p{margin:7px 0;color:#b8c5d4}.portal-conversation article small{color:#72839a}.portal-conversation.staff-view{max-height:740px}.portal-timeline{display:grid;gap:0}.portal-timeline article{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid rgba(148,163,184,.08)}.portal-timeline article:last-child{border-bottom:0}.portal-timeline article span,.portal-timeline article strong,.portal-timeline article small{display:block}.portal-timeline article span{color:#64d8ff;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.portal-timeline article small{color:#78899f;margin-top:3px}.portal-login-card{max-width:470px}.portal-login-card p{color:#8798b3;margin:0 0 20px}.portal-login-card h1{margin-bottom:6px}.portal-admin-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:18px;align-items:start}.portal-pad{padding:18px 18px 0}.portal-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(148,163,184,.08)}.portal-review-actions form{display:grid;grid-template-columns:1fr auto;gap:8px}.portal-review-actions input{margin:0}.status-pill.pending{background:rgba(245,158,11,.12);color:#ffd486}.status-pill.approved{background:rgba(34,197,94,.12);color:#8af2ad}.status-pill.rejected,.status-pill.blocked{background:rgba(239,68,68,.12);color:#fda4af}.status-pill.inactive{background:rgba(100,116,139,.14);color:#cbd5e1}.status-pill.new,.status-pill.in_review{background:rgba(14,165,255,.12);color:#8cdcff}.status-pill.closed,.status-pill.paid{background:rgba(34,197,94,.12);color:#8af2ad}.status-pill.overdue,.status-pill.cancelled{background:rgba(239,68,68,.12);color:#fca5a5}.status-pill.sent,.status-pill.viewed,.status-pill.issued,.status-pill.partial{background:rgba(14,165,255,.12);color:#8cdcff}.status-pill.en_route,.status-pill.arrived,.status-pill.working{background:rgba(124,58,237,.13);color:#d3c1ff}
@media(max-width:1120px){.portal-topbar{flex-wrap:wrap}.portal-brand{min-width:0}.portal-nav{order:3;width:100%}.portal-kpis{grid-template-columns:repeat(2,1fr)}.portal-detail-grid{grid-template-columns:repeat(2,1fr)}.portal-admin-grid{grid-template-columns:1fr}.portal-tracking-grid{grid-template-columns:1fr}}
@media(max-width:760px){.portal-topbar{padding:10px 14px;flex-wrap:nowrap}.portal-brand{flex:1}.portal-brand span{display:none}.portal-menu-btn{display:grid;place-items:center}.portal-nav{display:none;position:absolute;top:68px;left:12px;right:12px;order:initial;width:auto;padding:10px;max-height:70vh;overflow:auto;flex-direction:column;align-items:stretch;background:#091321;border:1px solid #20324c;border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.5)}.portal-nav.open{display:flex}.portal-nav a{padding:11px 12px}.portal-main{padding:22px 14px 42px}.portal-hero,.page-heading{align-items:flex-start;display:grid}.portal-grid,.portal-grid.messages{grid-template-columns:1fr}.portal-review-actions{grid-template-columns:1fr}.portal-review-actions form{grid-template-columns:1fr}.portal-conversation article{max-width:94%}}
@media(max-width:520px){.portal-topbar form .btn{padding:8px 10px}.portal-brand img{width:118px}.portal-kpis{grid-template-columns:1fr}.portal-detail-grid{grid-template-columns:1fr}.portal-list>a,.portal-list-row{align-items:flex-start}.portal-list-meta{justify-items:start;text-align:left}.portal-list-row{display:grid}.portal-total-card{display:grid;gap:5px}.portal-hero h1{font-size:27px}.form-grid.two{grid-template-columns:1fr}.span-2{grid-column:auto}}

.status-pill.received,.status-pill.evaluating{border-color:rgba(34,211,238,.32);background:rgba(34,211,238,.11);color:#b7f5ff}

/* Módulo 16 · Avisos y automatizaciones */
.notification-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0}.notification-kpis article{background:var(--panel,#fff);border:1px solid var(--line,#e8edf5);border-radius:20px;padding:18px;box-shadow:0 12px 28px rgba(15,23,42,.06)}.notification-kpis article span,.notification-kpis article small{display:block;color:var(--muted,#64748b)}.notification-kpis article strong{display:block;font-size:28px;margin:7px 0}.notification-kpis article.attention{border-color:rgba(245,158,11,.35)}
.notification-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 20px}.notification-shortcuts>a{display:flex;gap:12px;align-items:center;padding:16px;border:1px solid var(--line,#e8edf5);background:var(--panel,#fff);border-radius:18px;text-decoration:none;color:inherit}.notification-shortcuts>a>span{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:rgba(14,165,255,.1);font-size:19px}.notification-shortcuts strong,.notification-shortcuts small{display:block}.notification-shortcuts small{color:var(--muted,#64748b);margin-top:3px}
.notification-dashboard-grid,.notification-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.notification-list{display:grid;gap:0}.notification-list article{display:flex;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid var(--line,#e8edf5)}.notification-list article:last-child{border-bottom:0}.notification-list p{margin:5px 0 0;color:var(--muted,#64748b);line-height:1.5}.notification-list small{color:var(--muted,#64748b)}.template-list article,.automation-list article{align-items:flex-start}.inline-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-actions form{margin:0}
.template-tokens{display:flex;gap:7px;flex-wrap:wrap}.template-tokens small{width:100%;color:var(--muted,#64748b)}.template-tokens span{padding:5px 8px;border-radius:9px;background:rgba(14,165,255,.08);font-size:12px}.notification-compose-panel,.notification-settings-panel{max-width:920px}.notice-box{padding:15px 17px;border-radius:16px;background:rgba(14,165,255,.07);border:1px solid rgba(14,165,255,.15)}.notice-box p{margin:5px 0 0;color:var(--muted,#64748b)}
.outbox-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:18px 0;border-bottom:1px solid var(--line,#e8edf5)}.outbox-list article:last-child{border-bottom:0}.outbox-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.outbox-main small{color:var(--muted,#64748b)}.outbox-main p{white-space:normal;line-height:1.55;margin:9px 0}.outbox-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:160px}.inline-error{padding:8px 10px;border-radius:10px;background:rgba(239,68,68,.08);color:#b91c1c;font-size:13px}.link-btn.danger{color:#dc2626}
.notification-center-list article{display:grid;grid-template-columns:12px 1fr;gap:14px;padding:18px 0;border-bottom:1px solid var(--line,#e8edf5)}.notification-center-list article>i{width:9px;height:9px;margin-top:7px;border-radius:50%;background:#0ea5ff}.notification-center-list article.is-read{opacity:.67}.notification-center-list article.notice-warning>i{background:#f59e0b}.notification-center-list article.notice-danger>i{background:#ef4444}.notification-center-list article.notice-success>i{background:#10b981}.notification-center-list p{margin:6px 0;color:var(--muted,#64748b)}.phone-prefix-field{display:flex;align-items:center;gap:8px}.phone-prefix-field>span{font-size:22px;font-weight:700}.phone-prefix-field input{max-width:140px}
.status-pill.manual_ready{background:rgba(14,165,255,.1);color:#0284c7}.status-pill.failed{background:rgba(239,68,68,.1);color:#dc2626}.status-pill.cancelled{background:rgba(100,116,139,.12);color:#64748b}
@media(max-width:980px){.notification-kpis,.notification-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.notification-dashboard-grid,.notification-editor-grid{grid-template-columns:1fr}}
@media(max-width:620px){.notification-kpis,.notification-shortcuts{grid-template-columns:1fr 1fr;gap:10px}.notification-kpis article{padding:14px}.notification-shortcuts>a{padding:13px}.outbox-list article{grid-template-columns:1fr}.outbox-actions{min-width:0}.notification-list article{flex-direction:column}.notification-editor-grid{display:block}.notification-editor-grid>.panel+ .panel{margin-top:16px}}
@media(max-width:390px){.notification-kpis,.notification-shortcuts{grid-template-columns:1fr}}

/* Módulo 17 · Reportes + Centro IA */
.report-filter{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:12px;align-items:end;margin:18px 0}.report-filter>div{display:grid;gap:6px}.report-filter label{font-size:12px;font-weight:800;color:var(--muted,#64748b);text-transform:uppercase;letter-spacing:.04em}.report-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:18px 0}.report-kpis article{padding:17px;border:1px solid var(--line,#e8edf5);border-radius:20px;background:var(--panel,#fff);box-shadow:0 12px 30px rgba(15,23,42,.055)}.report-kpis article.attention{border-color:rgba(245,158,11,.35)}.report-kpis span,.report-kpis small{display:block;color:var(--muted,#64748b)}.report-kpis strong{display:block;font-size:24px;margin:6px 0}.report-shortcuts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px}.report-shortcuts a{display:grid;gap:4px;padding:14px 15px;text-decoration:none;color:inherit;border:1px solid var(--line,#e8edf5);border-radius:16px;background:var(--panel,#fff);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.report-shortcuts a:hover{transform:translateY(-2px);border-color:rgba(14,165,255,.28);box-shadow:0 10px 24px rgba(15,23,42,.08)}.report-shortcuts span{font-weight:800}.report-shortcuts small{color:var(--muted,#64748b)}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.report-span-2{grid-column:1/-1}.bar-report{display:grid;gap:14px}.bar-report article>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px}.bar-report article>i{display:block;height:9px;border-radius:999px;background:rgba(148,163,184,.16);overflow:hidden}.bar-report article>i>b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0ea5ff,#7c3aed)}.compact-report-list{display:grid}.compact-report-list article{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line,#e8edf5)}.compact-report-list article:last-child{border-bottom:0}.compact-report-list strong,.compact-report-list small{display:block}.compact-report-list small{color:var(--muted,#64748b);margin-top:3px}.compact-report-list>article>span:not(.status-pill){font-weight:900;color:#0ea5ff}.modern-table{width:100%;border-collapse:separate;border-spacing:0}.modern-table th,.modern-table td{padding:13px 14px;border-bottom:1px solid var(--line,#e8edf5);text-align:left;white-space:nowrap}.modern-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#64748b);background:rgba(148,163,184,.05)}.modern-table tbody tr:hover{background:rgba(14,165,255,.035)}
.ai-status-card{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:20px;margin:18px 0;border-radius:22px;border:1px solid var(--line,#e8edf5);background:linear-gradient(135deg,rgba(14,165,255,.08),rgba(124,58,237,.07))}.ai-status-card>div{display:flex;align-items:center;gap:14px}.ai-status-card p{margin:4px 0 0;color:var(--muted,#64748b)}.ai-status-card.ready{border-color:rgba(16,185,129,.28)}.ai-status-card.pending{border-color:rgba(245,158,11,.25)}.ai-orb{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,#0ea5ff,#7c3aed);color:white;font-size:24px;box-shadow:0 12px 28px rgba(14,165,255,.22)}.ai-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.ai-cards article{position:relative;min-height:180px;padding:18px;border:1px solid var(--line,#e8edf5);border-radius:20px;background:var(--panel,#fff);transition:transform .2s ease,box-shadow .2s ease}.ai-cards article:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(15,23,42,.08)}.ai-cards article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(124,58,237,.1);color:#7c3aed;font-size:18px}.ai-cards h3{margin:13px 0 7px}.ai-cards p{margin:0 0 14px;color:var(--muted,#64748b);line-height:1.5}.ai-cards a{font-weight:800;text-decoration:none;color:#0ea5ff}.ai-grid,.ai-run-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel-copy{color:var(--muted,#64748b);line-height:1.7}.ai-settings-panel{max-width:940px}.switch-row{display:flex!important;align-items:center;gap:10px}.switch-row input{width:auto}.ai-result-panel{min-height:420px}.ai-result-text{white-space:normal;line-height:1.75;color:inherit;padding:4px 0 16px}.status-pill.success{background:rgba(16,185,129,.11);color:#059669}.status-pill.error{background:rgba(239,68,68,.10);color:#dc2626}.status-pill.not_configured{background:rgba(245,158,11,.11);color:#b45309}
@media(max-width:1250px){.report-kpis{grid-template-columns:repeat(3,1fr)}.report-shortcuts{grid-template-columns:repeat(3,1fr)}.ai-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.report-filter{grid-template-columns:1fr 1fr}.report-grid,.ai-grid,.ai-run-grid{grid-template-columns:1fr}.report-span-2{grid-column:auto}.ai-status-card{align-items:flex-start}.report-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.report-filter{grid-template-columns:1fr}.report-kpis,.report-shortcuts,.ai-cards{grid-template-columns:1fr}.ai-status-card{display:grid}.ai-status-card>div{align-items:flex-start}.modern-table th,.modern-table td{padding:11px 12px}}

/* Estado, seguridad y continuidad */
.system-grid{align-items:start}.system-kpis{margin-bottom:22px}.health-list{display:grid;gap:10px}.health-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid rgba(148,163,184,.14);border-radius:16px;background:rgba(255,255,255,.025)}.health-row>div{display:grid;gap:3px}.health-row small,.compact-item small,.cell-sub{display:block;color:var(--muted);font-size:.78rem}.health-dot{width:10px;height:10px;border-radius:999px;background:#22d3ee;box-shadow:0 0 0 4px rgba(34,211,238,.09)}.health-dot.warning{background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.09)}.health-dot.error{background:#fb7185;box-shadow:0 0 0 4px rgba(251,113,133,.09)}.badge.ok{background:rgba(16,185,129,.11);color:#5eead4}.badge.warning{background:rgba(245,158,11,.12);color:#fbbf24}.badge.error{background:rgba(244,63,94,.12);color:#fda4af}.compact-list{display:grid;gap:10px}.compact-item{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(148,163,184,.12)}.compact-item:last-child{border-bottom:0}.empty-mini,.empty-cell{color:var(--muted);padding:18px 0}.stack-form{display:grid;gap:14px}.stack-form label{display:grid;gap:7px}.stack-form label small{color:var(--muted)}.hash-short{font-size:.76rem}.table-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.table-actions form{margin:0}.offline-shell{display:grid;place-items:center;min-height:100vh;padding:24px}.offline-card{width:min(520px,100%);padding:36px;border:1px solid rgba(148,163,184,.16);border-radius:28px;background:rgba(11,18,32,.92);box-shadow:0 28px 80px rgba(0,0,0,.28);text-align:center}.offline-card img{border-radius:22px;margin-bottom:18px}.offline-card h1{margin:8px 0 10px}.offline-card p{color:var(--muted);line-height:1.65;margin:0 auto 22px;max-width:420px}
@media(max-width:720px){.health-row{grid-template-columns:auto 1fr}.health-row>.badge{grid-column:2;justify-self:start}.table-actions{justify-content:flex-start}.offline-card{padding:28px 20px}}
