
:root{
  --cyan:#23D3FF; --green:#52e5a5; --orange:#ffbb5c; --red:#ff746d;
  --ink:#F5F8FC; --muted:#8AA6C1; --line:rgba(77,225,238,.20);
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:#061426;color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;overflow:hidden}
button,input{font:inherit}
#viewport{position:fixed;inset:0;overflow:hidden;background:#04101f}
.app{position:absolute;width:1664px;height:936px;transform-origin:0 0;overflow:hidden;background:#061426}
.bg{position:absolute;inset:0;background-image:url("../media/321988a535e8c42a.webp");background-size:1664px 936px;background-position:0 0;filter:saturate(1.04) contrast(1.03)}
.bg::before{content:"";position:absolute;left:488px;top:0;width:1176px;height:936px;
  background:
    linear-gradient(180deg,rgba(2,9,14,.24) 0%,rgba(2,9,14,.18) 100%),
    radial-gradient(circle at 18% 0%,rgba(35,211,255,.035),transparent 28%);
  backdrop-filter:blur(2.4px) saturate(.88);
  -webkit-backdrop-filter:blur(2.4px) saturate(.88);
  pointer-events:none}
.bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 28.5%,rgba(2,9,14,.12) 30%,rgba(2,9,14,.35) 37%,rgba(2,9,14,.18) 100%)}
.navzone{position:absolute;left:0;top:0;width:490px;height:815px;z-index:10}
.hit{position:absolute;width:62px;height:62px;border-radius:50%;
border:1px solid rgba(35,211,255,0);background:rgba(0,0,0,0);cursor:pointer;transition:.18s}
.hit:hover{border-color:rgba(35,211,255,.14);background:rgba(35,211,255,.035);
box-shadow:0 0 0 1px rgba(35,211,255,.03),0 0 10px rgba(35,211,255,.08)}
.hit.active{border-color:rgba(35,211,255,0);background:rgba(35,211,255,.01);box-shadow:none}
.h-obras{left:85px;top:130px}.h-plan{left:220px;top:122px}.h-cons{left:330px;top:180px}.h-reg{left:381px;top:276px}
.h-pres{left:384px;top:372px}.h-mat{left:354px;top:460px}.h-fin{left:249px;top:541px}.h-caja{left:136px;top:548px}
.h-home{left:78px;top:273px;width:232px;height:190px;border-radius:48%}.h-bib{left:76px;top:642px;width:60px;height:60px}
.h-conf{left:286px;top:625px;width:122px;height:96px;border-radius:46%}.h-clima{left:332px;top:634px;width:96px;height:94px;border-radius:38% 44% 46% 40% / 36% 36% 44% 44%;z-index:2}
.h-config{left:150px;top:622px;width:176px;height:112px;border-radius:42% 42% 48% 48% / 34% 34% 54% 54%;z-index:2}
.h-doc{left:191px;top:738px;width:62px;height:62px}
.h-home.active,.h-config.active,.h-clima.active{box-shadow:none}
.h-config:hover,.h-clima:hover{background:rgba(35,211,255,.02);border-color:rgba(35,211,255,.10);box-shadow:0 0 12px rgba(35,211,255,.08)}
.brandbar{position:absolute;left:16px;bottom:17px;z-index:12;display:flex;align-items:center;gap:13px;width:470px;height:92px;padding:8px 13px;border-radius:16px;background:rgba(3,12,18,.82);border:1px solid rgba(82,229,242,.19);backdrop-filter:blur(8px);cursor:pointer}
.logoBox{width:64px;height:64px;border:1px dashed rgba(84,229,242,.35);border-radius:12px;display:grid;place-items:center;overflow:hidden;color:#91aab6;font-size:10px;text-align:center;flex:0 0 auto;background:#071720}
.logoBox img{max-width:100%;max-height:100%;display:none}
.userInfo small{display:block;color:#87a5b4;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.userInfo b{display:block;font-size:14px}.userInfo span{font-size:11px;color:#8ea8b5}
.workspace{position:absolute;left:488px;right:0;top:0;bottom:0;z-index:8;padding:18px 20px 18px 22px;display:flex;flex-direction:column;gap:12px;overflow:hidden;background:linear-gradient(180deg,rgba(3,12,18,.16),rgba(3,12,18,.10))}
.workspace::before{content:"";position:absolute;inset:0;z-index:0;background:
  linear-gradient(180deg,rgba(2,10,15,.10) 0%,rgba(2,10,15,.06) 100%);
  pointer-events:none}
.topline,.canvas,.settings,.rightDrawer,.syncBar{position:relative;z-index:2}
.topline{height:72px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-left:4px}
.eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan)}
.titleblock h1{margin:2px 0 3px;font-size:27px;letter-spacing:-.03em}.titleblock p{margin:0;color:var(--muted);font-size:12px}
.top-actions{display:flex;align-items:flex-start;gap:10px}
.datebox,.aibox{border:1px solid var(--line);background:linear-gradient(180deg,rgba(7,23,32,.94),rgba(4,14,20,.94));border-radius:17px;box-shadow:0 14px 34px rgba(0,0,0,.28);backdrop-filter:blur(8px)}
.datebox{padding:10px 14px;min-width:155px}.datebox small{display:block;color:#9db1bc;font-size:10px}.datebox b{font-size:18px}
.aibox{display:flex;align-items:center;gap:10px;padding:10px 13px;cursor:pointer;min-width:190px}
.aiorb{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(101,238,247,.45);background:radial-gradient(circle at 35% 35%,#2ff4ff,#1166b5 48%,#061522 70%);box-shadow:0 0 20px rgba(35,226,241,.20)}
.aibox small{display:block;color:#8ea8b5;font-size:10px}.aibox b{font-size:14px}
.canvas{flex:1;min-height:0;overflow:auto;padding-right:2px}
.page{display:none;animation:fade .18s ease}.page.active{display:block}
@keyframes fade{from{opacity:.25;transform:translateY(3px)}to{opacity:1;transform:none}}
.grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.grid2{display:grid;grid-template-columns:1.15fr .85fr;gap:10px}
.gridSplit{display:grid;grid-template-columns:340px 1fr;gap:10px}
.rowgap{margin-top:10px}
.card{border:1px solid rgba(80,226,238,.28);border-radius:18px;background:linear-gradient(180deg,rgba(7,27,38,.79),rgba(3,16,24,.75));box-shadow:0 14px 34px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.025);backdrop-filter:blur(14px) saturate(.92);-webkit-backdrop-filter:blur(14px) saturate(.92);padding:14px;position:relative;overflow:hidden}
.card::before{content:"";position:absolute;right:-28px;top:-28px;width:90px;height:90px;border-radius:50%;background:rgba(41,229,242,.025)}
.kpi{min-height:92px}.kpi .label{font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:#819eac}.kpi .value{font-size:25px;font-weight:800;margin-top:7px}.kpi .sub{font-size:10px;color:var(--muted);margin-top:5px}
.kpi.cyan{box-shadow:inset 0 2px 0 rgba(35,211,255,.65),0 14px 34px rgba(0,0,0,.22)}.kpi.green{box-shadow:inset 0 2px 0 rgba(82,229,165,.65),0 14px 34px rgba(0,0,0,.22)}.kpi.orange{box-shadow:inset 0 2px 0 rgba(255,187,92,.65),0 14px 34px rgba(0,0,0,.22)}.kpi.red{box-shadow:inset 0 2px 0 rgba(255,116,109,.65),0 14px 34px rgba(0,0,0,.22)}
.sectionTitle{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.sectionTitle h3,.sectionTitle h4{margin:0}.sectionTitle span{font-size:10px;color:var(--cyan)}
.table{width:100%;border-collapse:collapse;font-size:11px}.table th{font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:#7694a4;text-align:left;padding:8px;border-bottom:1px solid rgba(255,255,255,.07)}.table td{padding:9px 8px;border-bottom:1px solid rgba(255,255,255,.06);color:#d8eaf1}.table tr:last-child td{border-bottom:0}
.progress{height:6px;background:#142833;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.04)}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),#51dba0)}
.list{display:flex;flex-direction:column}.item{display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px 12px;margin-top:7px;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:rgba(5,20,29,.46);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);align-items:center}.item:first-child{margin-top:0}.item b{font-size:11px}.item small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.timeline{display:flex;flex-direction:column;gap:10px}.event{display:grid;grid-template-columns:45px 8px 1fr;gap:8px;padding:9px 10px;border:1px solid rgba(255,255,255,.06);border-radius:12px;background:rgba(5,20,29,.42);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.event .time{font-size:9px;color:#7695a5}.event .dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);margin-top:3px;box-shadow:0 0 11px rgba(35,211,255,.42)}.event b{font-size:10px}.event p{margin:2px 0 0;color:var(--muted);font-size:9px}
.status{display:inline-block;padding:4px 7px;border-radius:999px;border:1px solid rgba(52,232,243,.18);font-size:9px}.ok{color:#8af0bb}.warn{color:#ffd08a}.bad{color:#ff9994}
.btn{border:1px solid rgba(81,226,238,.22);background:linear-gradient(180deg,#123443,#09212c);color:#e7fcff;padding:8px 11px;border-radius:10px;font-size:10px;cursor:pointer}.btn.primary{background:linear-gradient(135deg,#12c6d4,#1b8ec6);color:#021015;font-weight:800;border:0}
.toolbar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.selector{display:flex;flex-direction:column;gap:8px}.selItem{padding:11px 12px;border:1px solid rgba(80,226,238,.15);border-radius:12px;background:rgba(5,20,29,.46);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);cursor:pointer}.selItem:hover,.selItem.active{border-color:rgba(80,226,238,.35);box-shadow:0 0 0 1px rgba(80,226,238,.10),0 0 18px rgba(80,226,238,.10)}.selItem b{font-size:11px;display:block}.selItem small{font-size:9px;color:var(--muted)}
.bucket{padding:9px;border:1px solid rgba(80,226,238,.14);border-radius:12px;background:rgba(5,20,29,.48);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}.bucket .top{display:flex;justify-content:space-between;font-size:10px}.bucket .amt{font-size:15px;font-weight:800;margin-top:3px}.bucket .debt{font-size:9px;color:#ffd08a;margin-top:4px}.buckets{display:flex;flex-direction:column;gap:8px}
.circleGauge{width:110px;height:110px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--cyan) 0 64%,#142833 64%);position:relative;margin:7px auto}.circleGauge:after{content:"";position:absolute;inset:10px;border-radius:50%;background:#071923}.circleGauge b{position:relative;z-index:2;font-size:21px}
.gantt{display:grid;grid-template-columns:160px repeat(7,1fr);font-size:9px;border-top:1px solid rgba(255,255,255,.06);border-left:1px solid rgba(255,255,255,.06)}.gantt>div{min-height:34px;padding:7px;border-right:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05)}.gantt .head{color:#7694a4;text-align:center;background:rgba(255,255,255,.018)}.gantt .task{color:#d8e8ee}.barcell{position:relative}.gbar{position:absolute;left:3px;right:3px;top:10px;height:12px;border-radius:999px;background:linear-gradient(90deg,var(--cyan),#51dba0)}
.docgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.doc{min-height:95px;padding:12px;border:1px solid rgba(80,226,238,.12);border-radius:14px;background:rgba(5,20,28,.82)}.doc b{font-size:11px}.doc small{display:block;color:var(--muted);font-size:9px;margin-top:6px}
.settings{position:absolute;left:30.5%;bottom:16px;z-index:30;width:330px;border:1px solid rgba(80,226,238,.20);border-radius:15px;background:rgba(4,17,25,.97);padding:12px;display:none}.settings.open{display:block}.settings h4{margin:0 0 8px;font-size:11px}.settings label{font-size:9px;color:var(--muted)}.settings input{width:100%;margin-top:6px;font-size:9px}
.rightDrawer{position:absolute;right:20px;top:94px;z-index:25;width:280px;border:1px solid rgba(81,226,238,.20);border-radius:16px;background:rgba(4,17,25,.95);box-shadow:0 14px 36px rgba(0,0,0,.36);display:none}.rightDrawer.open{display:block}
.rightDrawer header{padding:11px 12px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-between}.rightDrawer header b{font-size:12px}.rightDrawer header button{border:0;background:transparent;color:#9bb6c2;cursor:pointer}
.aiBody{padding:11px}.persona{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:8px}.persona button{border:1px solid rgba(80,226,238,.15);background:#09212b;color:#eafcff;padding:8px;border-radius:10px;font-size:10px;text-align:left;cursor:pointer}.chat{min-height:110px;border:1px solid rgba(80,226,238,.12);border-radius:10px;background:#06141c;padding:10px;color:var(--muted);font-size:10px;line-height:1.45}.send{display:flex;gap:8px;margin-top:8px}.mini-input{width:100%;border:1px solid rgba(80,226,238,.15);border-radius:10px;background:#071923;color:#fff;padding:8px 10px;font-size:10px;outline:none}
.syncBar{position:absolute;left:22px;right:22px;bottom:6px;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#7e9aaa}.syncBar .pill{padding:5px 8px;border-radius:999px;border:1px solid rgba(80,226,238,.14);background:rgba(4,18,26,.70)}
.note{font-size:10px;color:#cfe7f0}

.calendarWeek{display:grid;grid-template-columns:90px repeat(7,1fr);border-top:1px solid rgba(255,255,255,.06);border-left:1px solid rgba(255,255,255,.06);font-size:9px}
.calendarWeek>div{min-height:74px;padding:7px;border-right:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05)}
.calendarWeek .calHead{min-height:30px;color:#7d9cab;text-align:center;background:rgba(255,255,255,.018)}
.calendarWeek .hour{min-height:74px;color:#6f8e9d}
.calEvent{padding:5px 6px;border-radius:7px;background:linear-gradient(135deg,rgba(35,211,255,.18),rgba(21,151,211,.15));border:1px solid rgba(35,211,255,.22);margin-bottom:4px;line-height:1.25}
.calEvent.orange{background:rgba(255,187,92,.10);border-color:rgba(255,187,92,.25)}
.calEvent.green{background:rgba(82,229,165,.10);border-color:rgba(82,229,165,.22)}
.filesQuick{display:flex;flex-direction:column;gap:7px}
.fileQuick{padding:8px 9px;border:1px solid rgba(80,226,238,.12);border-radius:10px;background:rgba(4,18,26,.68);cursor:pointer}
.fileQuick:hover{border-color:rgba(80,226,238,.34)}
.fileQuick b{display:block;font-size:10px}.fileQuick small{font-size:8px;color:var(--muted)}
.regLayout{display:grid;grid-template-columns:310px 1fr 255px;gap:10px}
.health{display:flex;align-items:center;gap:14px}
.healthDot{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--orange) 0 63%,#142833 63%);position:relative}
.healthDot::after{content:"";position:absolute;inset:9px;border-radius:50%;background:#071923}
.healthDot b{position:relative;z-index:2;font-size:17px}
.metricLine{display:grid;grid-template-columns:1fr auto;gap:12px;padding:8px 0;border-top:1px solid rgba(255,255,255,.06)}
.metricLine:first-child{border-top:0}
.metricLine b{font-size:10px}.metricLine span{font-size:10px;color:var(--muted)}
.alertBox{padding:10px 12px;border-radius:12px;background:rgba(255,187,92,.07);border:1px solid rgba(255,187,92,.20);font-size:10px;line-height:1.45}
.revenueBox{padding:14px;border-radius:14px;background:linear-gradient(135deg,rgba(35,211,255,.08),rgba(82,229,165,.06));border:1px solid rgba(35,211,255,.18)}
.revenueBox .big{font-size:27px;font-weight:800;color:var(--cyan);margin:3px 0}
.tabs{display:flex;gap:6px;margin-bottom:10px}.tab{border:1px solid rgba(80,226,238,.15);background:#09212b;color:#bcd7df;padding:7px 10px;border-radius:9px;font-size:9px;cursor:pointer}.tab.active{border-color:rgba(80,226,238,.45);color:#fff;background:#103342}


.shortcut{cursor:pointer;transition:.16s ease}
.shortcut:hover{transform:translateY(-2px);border-color:rgba(80,226,238,.40);box-shadow:0 0 0 1px rgba(80,226,238,.08),0 16px 36px rgba(0,0,0,.26),0 0 24px rgba(35,211,255,.08)}
.shortcutHint{font-size:8px;color:var(--cyan);margin-top:5px}
.emptyThread{padding:14px;border:1px dashed rgba(80,226,238,.18);border-radius:12px;color:var(--muted);font-size:10px;line-height:1.45;background:rgba(4,18,26,.35)}
.dailyTask{display:grid;grid-template-columns:42px 1fr auto;gap:9px;padding:9px 0;border-top:1px solid rgba(255,255,255,.06);align-items:center}
.dailyTask:first-child{border-top:0}.dailyTask .time{font-size:9px;color:#7f9dad}.dailyTask b{font-size:10px}.dailyTask small{display:block;color:var(--muted);font-size:9px;margin-top:2px}


/* ===== V2.0 OPERATIONAL WORKSITE ===== */
.opsShell{display:none}
.opsShell.active{display:block}
.opsTop{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.opsTitle b{font-size:16px;display:block}.opsTitle small{font-size:9px;color:var(--muted)}
.opsActions{display:flex;gap:7px;align-items:center}
.roleSelect{border:1px solid rgba(80,226,238,.18);background:#071923;color:#eafcff;border-radius:10px;padding:8px 10px;font-size:10px}
.opsTabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.opsTab{border:1px solid rgba(80,226,238,.14);background:#09212b;color:#bdd6df;padding:8px 11px;border-radius:10px;font-size:9px;cursor:pointer}
.opsTab.active{border-color:rgba(80,226,238,.45);color:#fff;background:#103342;box-shadow:0 0 18px rgba(35,211,255,.07)}
.opsPane{display:none}.opsPane.active{display:block}
.todayGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}
.todayCard{padding:12px;border:1px solid rgba(80,226,238,.12);border-radius:14px;background:rgba(4,18,26,.72)}
.todayCard small{display:block;font-size:8px;letter-spacing:.07em;text-transform:uppercase;color:#7995a4}
.todayCard b{display:block;font-size:18px;margin-top:5px}
.actionCard{padding:12px;border:1px solid rgba(80,226,238,.12);border-radius:14px;background:rgba(4,18,26,.65)}
.actionCard h4{margin:0 0 8px;font-size:11px}
.actionRow{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid rgba(255,255,255,.06)}
.actionRow:first-child{border-top:0}.actionRow b{font-size:10px}.actionRow small{display:block;font-size:8px;color:var(--muted);margin-top:2px}
.opBtn{border:1px solid rgba(80,226,238,.18);background:#0b2732;color:#e9fcff;border-radius:9px;padding:7px 9px;font-size:8px;cursor:pointer}
.opBtn.primary{background:linear-gradient(135deg,#12c6d4,#1b8ec6);color:#031116;border:0;font-weight:800}
.opBtn.danger{background:rgba(255,116,109,.10);border-color:rgba(255,116,109,.25);color:#ffaaa5}
.opBtn.warn{background:rgba(255,187,92,.10);border-color:rgba(255,187,92,.25);color:#ffd49a}
.opBtn:disabled{opacity:.35;cursor:not-allowed}
.taskBoard{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.taskCard{padding:12px;border:1px solid rgba(80,226,238,.12);border-radius:14px;background:rgba(4,18,26,.72)}
.taskCard h4{margin:0;font-size:11px}.taskCard p{margin:5px 0;color:var(--muted);font-size:8px;line-height:1.4}
.taskMeta{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:8px}.taskMeta div{padding:6px;border-radius:8px;background:rgba(255,255,255,.025);font-size:8px}.taskMeta b{display:block;font-size:9px;margin-top:2px}
.crewTable{width:100%;border-collapse:collapse;font-size:9px}.crewTable th,.crewTable td{padding:8px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left}.crewTable th{font-size:8px;color:#7896a4;text-transform:uppercase;letter-spacing:.06em}
.photoGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.photoCard{height:125px;border-radius:12px;border:1px solid rgba(80,226,238,.12);background:linear-gradient(135deg,#0b2936,#07141c);padding:10px;display:flex;flex-direction:column;justify-content:flex-end}.photoCard b{font-size:9px}.photoCard small{font-size:8px;color:var(--muted);margin-top:3px}
.hysBox{padding:12px;border:1px solid rgba(255,116,109,.20);border-radius:14px;background:rgba(255,116,109,.05)}
.hysBox.clear{border-color:rgba(82,229,165,.20);background:rgba(82,229,165,.05)}
.certFlow{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.flowStep{padding:10px;border:1px solid rgba(80,226,238,.12);border-radius:12px;background:rgba(4,18,26,.65);text-align:center}.flowStep small{display:block;color:var(--muted);font-size:7px;text-transform:uppercase}.flowStep b{display:block;margin-top:4px;font-size:9px}.flowStep.done{border-color:rgba(82,229,165,.28);background:rgba(82,229,165,.06)}
.mobileOverlay{position:absolute;inset:0;z-index:55;background:rgba(1,7,11,.60);display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.mobileOverlay.open{display:flex}
.phone{width:340px;height:700px;border:10px solid #10161a;border-radius:36px;background:linear-gradient(180deg,#06131b,#031017);box-shadow:0 28px 80px rgba(0,0,0,.65);overflow:hidden;position:relative}
.phoneTop{padding:16px 14px 10px;border-bottom:1px solid rgba(80,226,238,.10)}.phoneTop b{font-size:15px}.phoneTop small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.phoneBody{padding:12px;overflow:auto;height:610px}.phoneCard{padding:11px;border:1px solid rgba(80,226,238,.12);border-radius:14px;background:#071923;margin-bottom:8px}.phoneCard b{font-size:10px}.phoneCard small{display:block;color:var(--muted);font-size:8px;margin-top:3px}
.phoneClose{position:absolute;right:12px;top:12px;border:0;background:transparent;color:#9fb7c2;font-size:18px;cursor:pointer}
.roleNote{padding:8px 10px;border-radius:10px;background:rgba(35,211,255,.05);border:1px solid rgba(35,211,255,.12);font-size:8px;color:#9fb7c2;margin-bottom:9px}
.roleHidden{display:none!important}


/* ===== V2.1 FLOW FIXES ===== */
.presenceCtl{display:flex;align-items:center;gap:6px}
.presenceToggle{border:1px solid rgba(80,226,238,.16);background:#071923;color:#cfe7ef;padding:5px 7px;border-radius:8px;font-size:8px;cursor:pointer}
.presenceToggle.active{background:rgba(82,229,165,.10);border-color:rgba(82,229,165,.28);color:#8af0bb}
.certStamp{display:inline-grid;place-items:center;min-width:118px;min-height:58px;border:3px double rgba(82,229,165,.70);color:#8af0bb;border-radius:8px;font-size:11px;font-weight:900;letter-spacing:.08em;transform:rotate(-4deg);padding:7px 10px;text-align:center}
.certStamp.pending{border-color:rgba(255,187,92,.45);color:#ffd08a;transform:none;font-size:9px}
.reviewBox{padding:10px;border:1px solid rgba(80,226,238,.12);border-radius:12px;background:rgba(4,18,26,.62);margin-top:9px}
.reviewBox textarea{width:100%;min-height:62px;resize:none;border:1px solid rgba(80,226,238,.14);border-radius:9px;background:#06141c;color:#eafcff;padding:8px;font-size:9px;outline:none}
.locationBox{padding:10px;border:1px solid rgba(80,226,238,.12);border-radius:12px;background:rgba(4,18,26,.62);margin-top:9px}
.locationState{font-size:9px;color:var(--muted);line-height:1.4}
.geoOk{color:#8af0bb}.geoBad{color:#ffaaa5}.geoWait{color:#ffd08a}
.capatazOnlyNote{font-size:8px;color:#7896a4;margin-top:6px}


/* ===== V2.2 ===== */
.weatherStrip{display:grid;grid-template-columns:185px repeat(6,1fr);gap:7px}
.weatherLead,.weatherDay{padding:10px;border:1px solid rgba(80,226,238,.16);border-radius:13px;background:rgba(5,20,29,.46);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.weatherLead b{font-size:11px}.weatherLead small,.weatherDay small{display:block;font-size:8px;color:var(--muted);margin-top:3px}
.weatherDay{text-align:center}.weatherDay b{display:block;font-size:14px;margin:3px 0}.rainHigh{border-color:rgba(255,187,92,.28);background:rgba(255,187,92,.06)}
.weatherAlert{padding:11px 12px;border:1px solid rgba(255,187,92,.22);border-radius:13px;background:rgba(255,187,92,.08);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);font-size:9px;line-height:1.45}
.weatherOk{padding:11px 12px;border:1px solid rgba(82,229,165,.20);border-radius:13px;background:rgba(82,229,165,.07);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);font-size:9px;line-height:1.45}
.taskGate{font-size:8px;margin-top:6px}.taskGate.ok{color:#8af0bb}.taskGate.bad{color:#ffaaa5}
.certRoleView{display:none}.certRoleView.active{display:block}
.qtyInput{width:72px;border:1px solid rgba(80,226,238,.16);border-radius:8px;background:#06141c;color:#fff;padding:6px 7px;font-size:9px;text-align:right}
.moneyCard{padding:11px;border:1px solid rgba(80,226,238,.16);border-radius:13px;background:rgba(5,20,29,.50);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.moneyCard small{display:block;color:var(--muted);font-size:8px}.moneyCard b{display:block;font-size:20px;margin-top:4px}
.modalOverlay{position:absolute;inset:0;z-index:70;background:rgba(1,7,11,.66);display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
.modalOverlay.open{display:flex}
.formModal{width:450px;border:1px solid rgba(80,226,238,.24);border-radius:18px;background:#071720;box-shadow:0 25px 70px rgba(0,0,0,.60);padding:16px}
.formModal h3{margin:0 0 12px;font-size:14px}
.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.field label{display:block;font-size:8px;color:#86a2b0;margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}
.field input{width:100%;border:1px solid rgba(80,226,238,.16);border-radius:9px;background:#06141c;color:#fff;padding:9px;font-size:10px;outline:none}
.geoWarning{display:none;padding:10px;margin-top:8px;border-radius:11px;border:1px solid rgba(255,116,109,.25);background:rgba(255,116,109,.07);color:#ffb1ac;font-size:9px;line-height:1.4}
.geoWarning.show{display:block}
.climateDecision{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.decisionBtn{padding:11px;border:1px solid rgba(80,226,238,.13);border-radius:12px;background:#071923;color:#dff8ff;cursor:pointer;font-size:9px}
.decisionBtn.active{border-color:rgba(255,187,92,.40);background:rgba(255,187,92,.08)}
.ackGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ack{padding:10px;border:1px solid rgba(80,226,238,.12);border-radius:12px;background:rgba(4,18,26,.26);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);text-align:center}.ack b{font-size:9px;display:block}.ack small{font-size:8px;color:var(--muted)}.ack.done{border-color:rgba(82,229,165,.30);background:rgba(82,229,165,.08)}
.ganttImpact{padding:8px 0;border-top:1px solid rgba(255,255,255,.06);display:grid;grid-template-columns:1fr auto;gap:10px}.ganttImpact:first-child{border-top:0}.ganttImpact b{font-size:9px}.ganttImpact small{display:block;font-size:8px;color:var(--muted);margin-top:2px}


/* ===== V2.3 ===== */
.rolePill{display:inline-block;padding:4px 7px;border-radius:999px;border:1px solid rgba(80,226,238,.15);font-size:8px;color:#bfe8ef;background:rgba(35,211,255,.04)}
.crewGroup{font-size:8px;color:#8faab7}
.checkLine{display:flex;align-items:center;gap:7px;padding:7px 0;border-top:1px solid rgba(255,255,255,.06);font-size:9px}
.checkLine:first-child{border-top:0}
.checkLine input{accent-color:#23D3FF}
.dailyAdvanceForm{display:grid;grid-template-columns:1fr 130px 130px;gap:9px;align-items:end}
.dailyAdvanceForm .field input{font-size:11px}
.dailyAdvanceResult{margin-top:9px;padding:9px 10px;border-radius:10px;border:1px solid rgba(82,229,165,.18);background:rgba(82,229,165,.05);font-size:9px}
.moneyBig{font-size:28px!important;color:var(--cyan);letter-spacing:-.03em}
.ownerMoneyGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.ownerMoneyGrid .moneyCard:nth-child(3){border-color:rgba(82,229,165,.22);background:rgba(82,229,165,.05)}
.certLabel{font-size:8px;color:#819eac;text-transform:uppercase;letter-spacing:.07em}
.certValue{font-size:21px;font-weight:800;margin-top:3px}
.certCompare{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.workClimateLayout{display:grid;grid-template-columns:300px 1fr;gap:10px}
.workRisk{display:flex;justify-content:space-between;gap:8px;align-items:center}
.workRisk b{font-size:10px}.workRisk small{display:block;color:var(--muted);font-size:8px;margin-top:2px}
.climateWorkStatus{padding:8px;border-radius:9px;background:rgba(255,255,255,.025);font-size:8px;color:#9fb7c2;margin-top:8px}




/* ===== V3.0 PRESUPUESTOS / BIBLIOTECA ===== */
.budgetHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.budgetHead h3{margin:0;font-size:17px}.budgetHead small{display:block;color:var(--muted);font-size:9px;margin-top:4px}
.budgetStatus{padding:5px 8px;border:1px solid rgba(80,226,238,.18);border-radius:999px;font-size:8px;white-space:nowrap}
.budgetTabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.budgetTab{border:1px solid rgba(80,226,238,.14);background:rgba(5,20,29,.48);color:#bfdbe4;padding:7px 10px;border-radius:9px;font-size:9px;cursor:pointer;backdrop-filter:blur(8px)}
.budgetTab.active{border-color:rgba(80,226,238,.50);background:rgba(16,51,66,.78);color:#fff}
.budgetPane{display:none}.budgetPane.active{display:block}
.budgetEditGrid{display:grid;grid-template-columns:275px 1fr;gap:10px}
.libraryQuick{display:flex;flex-direction:column;gap:7px}
.libraryQuickItem{padding:9px;border:1px solid rgba(80,226,238,.13);border-radius:11px;background:rgba(5,20,29,.45)}
.libraryQuickItem b{font-size:9px;display:block}.libraryQuickItem small{display:block;color:var(--muted);font-size:8px;margin-top:3px}
.libraryQuickItem button{margin-top:7px}
.budgetItems{width:100%;border-collapse:collapse;font-size:9px}
.budgetItems th{font-size:8px;color:#7695a5;text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:7px;border-bottom:1px solid rgba(255,255,255,.07)}
.budgetItems td{padding:7px;border-bottom:1px solid rgba(255,255,255,.055);vertical-align:middle}
.budgetItems input{width:66px;border:1px solid rgba(80,226,238,.13);border-radius:7px;background:rgba(2,12,18,.66);color:#fff;padding:5px 6px;font-size:9px}
.sourceBadge{display:inline-block;font-size:7px;padding:3px 5px;border-radius:999px;border:1px solid rgba(80,226,238,.14);color:#8edbe4}
.sourceBadge.manual{color:#ffd08a;border-color:rgba(255,187,92,.20)}
.indexGrid{display:flex;flex-direction:column;gap:6px}
.indexRow{display:grid;grid-template-columns:1fr 62px 50px 50px 85px;gap:7px;align-items:center;padding:7px 8px;border:1px solid rgba(80,226,238,.09);border-radius:10px;background:rgba(5,20,29,.38)}
.indexRow b{font-size:9px}.indexRow input[type=number]{width:58px;border:1px solid rgba(80,226,238,.13);border-radius:7px;background:#06141c;color:#fff;padding:5px;font-size:9px}
.indexRow label{font-size:8px;color:#9ab1bd;display:flex;gap:4px;align-items:center}
.indexAmt{text-align:right;font-size:9px;color:var(--cyan);font-weight:700}
.budgetTotals{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.totalBox{padding:10px;border:1px solid rgba(80,226,238,.13);border-radius:12px;background:rgba(5,20,29,.48);backdrop-filter:blur(8px)}
.totalBox small{display:block;font-size:8px;color:var(--muted)}.totalBox b{display:block;font-size:17px;margin-top:4px}
.analysisHero{display:grid;grid-template-columns:1.15fr .85fr;gap:10px}
.analysisStack{display:flex;flex-direction:column;gap:7px}
.analysisLine{display:grid;grid-template-columns:1fr auto;gap:12px;padding:8px 10px;border:1px solid rgba(255,255,255,.045);border-radius:10px;background:rgba(5,20,29,.42)}
.analysisLine span{font-size:9px;color:#9ab0bc}.analysisLine b{font-size:10px}
.profitHero{min-height:180px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
.profitHero .number{font-size:34px;font-weight:900;color:var(--green)}.profitHero small{font-size:9px;color:var(--muted);max-width:220px;line-height:1.45}
.clientPreview{max-width:720px;margin:0 auto}
.clientPrice{padding:16px;border:1px solid rgba(80,226,238,.23);border-radius:15px;background:rgba(5,20,29,.58);text-align:center}
.clientPrice small{display:block;color:var(--muted);font-size:9px}.clientPrice b{font-size:30px;color:#fff;display:block;margin-top:5px}
.versionCard{display:grid;grid-template-columns:75px 1fr auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid rgba(80,226,238,.10);border-radius:11px;background:rgba(5,20,29,.40);margin-top:7px}
.versionCard b{font-size:9px}.versionCard small{font-size:8px;color:var(--muted)}
.additionalFlag{padding:8px 10px;border-radius:11px;border:1px solid rgba(255,187,92,.24);background:rgba(255,187,92,.07);font-size:9px;line-height:1.45}
.libV3{display:grid;grid-template-columns:230px 300px 1fr;gap:10px}
.libTask{padding:9px 10px;border:1px solid rgba(80,226,238,.11);border-radius:10px;background:rgba(5,20,29,.42);cursor:pointer;margin-top:6px}
.libTask.active,.libTask:hover{border-color:rgba(80,226,238,.35);background:rgba(8,34,43,.58)}
.libTask b{display:block;font-size:9px}.libTask small{display:block;font-size:8px;color:var(--muted);margin-top:3px}
.taskDetailHero{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.taskDetailMetric{padding:9px;border-radius:10px;border:1px solid rgba(80,226,238,.10);background:rgba(5,20,29,.42)}
.taskDetailMetric small{display:block;color:var(--muted);font-size:7px;text-transform:uppercase}.taskDetailMetric b{display:block;font-size:12px;margin-top:4px}
.formSelect{width:100%;border:1px solid rgba(80,226,238,.16);border-radius:9px;background:#06141c;color:#fff;padding:9px;font-size:10px;outline:none}
.v3Notice{padding:9px 11px;border:1px solid rgba(35,211,255,.16);border-radius:11px;background:rgba(35,211,255,.045);font-size:9px;line-height:1.45}


/* ===== V3.1 FULLSCREEN SHELL / SLIDE MENU ===== */
.navDrawer{position:absolute;left:0;top:0;width:490px;height:936px;z-index:26;transform:translateX(-468px);transition:transform .24s ease;overflow:hidden;box-shadow:18px 0 38px rgba(0,0,0,.30)}
.navDrawer.open{transform:translateX(0)}
.navDrawerVisual{position:absolute;inset:0;background-image:url("../media/321988a535e8c42a.webp");background-size:1664px 936px;background-position:0 0;background-repeat:no-repeat;z-index:0}
.navDrawer .navzone{z-index:2}
.navDrawer .brandbar{z-index:3}
.menuEdge{position:absolute;left:0;top:0;width:24px;height:936px;z-index:28;cursor:pointer;background:linear-gradient(90deg,rgba(0,238,255,.18),rgba(0,238,255,.025));border-right:1px solid rgba(80,226,238,.30);display:flex;align-items:center;justify-content:center}
.menuEdge span{font-size:24px;color:rgba(190,249,255,.72);text-shadow:0 0 12px rgba(35,211,255,.55)}
.workspace{left:24px!important;padding-left:18px!important;background:linear-gradient(90deg,rgba(2,10,15,.88) 0,rgba(2,10,15,.69) 230px,rgba(3,12,18,.22) 520px,rgba(3,12,18,.10) 100%)!important}
.workspace::before{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}


/* ===== V3.1 PRESUPUESTO FULL SCREEN ===== */
.budgetFullscreen{min-height:720px}
.budgetFullscreen .card{overflow:visible}
.budgetEditorTop{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}
.budgetEditorTitle h2{font-size:19px;margin:0}.budgetEditorTitle small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.budgetTopActions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.indexBadge{padding:8px 12px;border-radius:11px;border:1px solid rgba(35,211,255,.28);background:rgba(4,30,39,.64);font-size:9px;white-space:nowrap}
.indexBadge b{font-size:16px;color:var(--cyan);margin-left:5px}
.editorLayout{display:grid;grid-template-columns:205px 1fr;gap:10px}
.editorSide{display:flex;flex-direction:column;gap:7px}
.editorSide .btn{width:100%;text-align:left}
.editorSideTitle{font-size:8px;color:#7f9ba9;text-transform:uppercase;letter-spacing:.09em;margin:4px 4px 0}
.viewToolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:9px}
.segmentGroup{display:flex;gap:5px;flex-wrap:wrap}
.segmentBtn{border:1px solid rgba(80,226,238,.14);background:rgba(4,20,29,.52);color:#bad5de;border-radius:9px;padding:7px 9px;font-size:8px;cursor:pointer}
.segmentBtn.active{border-color:rgba(80,226,238,.48);background:rgba(11,52,65,.78);color:#fff;box-shadow:0 0 15px rgba(35,211,255,.08)}
.crewFilter{display:flex;gap:6px;align-items:center}.crewFilter label{font-size:8px;color:#829eac;text-transform:uppercase}
.crewSelect{border:1px solid rgba(80,226,238,.16);border-radius:8px;background:#06141c;color:#fff;padding:7px;font-size:9px;min-width:180px}
.priceModeLegend{padding:8px 10px;border-radius:10px;border:1px solid rgba(80,226,238,.10);background:rgba(5,20,29,.38);font-size:8px;color:#8faab6;line-height:1.45;margin-bottom:8px}
.budgetV31Table{width:100%;border-collapse:collapse;font-size:9px}
.budgetV31Table th{font-size:7px;color:#7695a5;text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:7px 6px;border-bottom:1px solid rgba(255,255,255,.07);position:sticky;top:0;background:rgba(4,17,24,.92);z-index:2}
.budgetV31Table td{padding:7px 6px;border-bottom:1px solid rgba(255,255,255,.055);vertical-align:middle}
.budgetV31Table input,.budgetV31Table select{border:1px solid rgba(80,226,238,.13);border-radius:7px;background:#06141c;color:#fff;padding:5px 6px;font-size:8px}
.budgetV31Table .qty{width:62px}.budgetV31Table .crew{width:150px}.budgetV31Table .money{font-weight:700;white-space:nowrap}
.budgetTableWrap{max-height:500px;overflow:auto;border:1px solid rgba(80,226,238,.08);border-radius:12px}
.indexScreen{display:grid;grid-template-columns:1fr 310px;gap:10px}
.customIndexRow{display:grid;grid-template-columns:1.45fr 70px 55px 55px 50px;gap:7px;align-items:center;padding:7px 8px;border:1px solid rgba(80,226,238,.09);border-radius:10px;background:rgba(5,20,29,.38);margin-bottom:6px}
.customIndexRow input[type=text],.customIndexRow input[type=number]{width:100%;border:1px solid rgba(80,226,238,.13);border-radius:7px;background:#06141c;color:#fff;padding:6px;font-size:8px}
.customIndexRow label{font-size:8px;color:#96acb7;display:flex;gap:4px;align-items:center}
.bigIndex{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;min-height:210px}
.bigIndex small{font-size:9px;color:var(--muted)}.bigIndex b{font-size:48px;color:var(--cyan);letter-spacing:-.05em;margin:6px 0}.bigIndex p{font-size:9px;color:#9db3be;max-width:240px;line-height:1.45}
.materialOrderTable{width:100%;border-collapse:collapse;font-size:9px}.materialOrderTable th,.materialOrderTable td{padding:8px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left}
.prelimGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.prelimBox{padding:12px;border:1px solid rgba(80,226,238,.12);border-radius:12px;background:rgba(5,20,29,.44)}.prelimBox small{font-size:8px;color:var(--muted);display:block}.prelimBox b{display:block;font-size:18px;margin-top:4px}
.distributionBar{height:13px;display:flex;border-radius:999px;overflow:hidden;background:#142833;margin:10px 0}.distributionBar span{height:100%}
.taskPicker{width:900px;max-height:760px;overflow:hidden}.taskPickerBody{display:grid;grid-template-columns:220px 1fr;gap:10px;max-height:610px}.taskPickerRubros{overflow:auto}.taskPickerTasks{overflow:auto;padding-right:3px}
.taskCheck{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:9px;border:1px solid rgba(80,226,238,.09);border-radius:10px;background:rgba(5,20,29,.38);margin-bottom:6px}.taskCheck b{font-size:9px}.taskCheck small{display:block;color:var(--muted);font-size:8px;margin-top:2px}
.fileLedger{display:flex;flex-direction:column;gap:6px}.fileLedgerItem{padding:8px 9px;border:1px solid rgba(80,226,238,.10);border-radius:9px;background:rgba(5,20,29,.40);display:flex;justify-content:space-between;gap:10px}.fileLedgerItem b{font-size:9px}.fileLedgerItem small{font-size:8px;color:var(--muted)}
.whatsappStep{display:none}.whatsappStep.active{display:block}
@media print{
  body *{visibility:hidden!important}
  #budgetWorkspace,#budgetWorkspace *{visibility:visible!important}
  #budgetWorkspace{position:absolute!important;left:0!important;top:0!important;width:100%!important;background:white!important;color:black!important}
  #budgetWorkspace .btn,#budgetWorkspace .budgetTabs,#budgetWorkspace .editorSide,#budgetWorkspace .viewToolbar{display:none!important}
}


/* ===== V3.2 ===== */
.workspace{font-size:12px}
.table{font-size:12px}.table th{font-size:10px}.table td{font-size:11px}
.item b,.selItem b{font-size:12px}.item small,.selItem small{font-size:10px}
.btn{font-size:11px}.opBtn{font-size:9px}
.budgetV31Table{font-size:10px}.budgetV31Table th{font-size:8px}.budgetV31Table td{font-size:10px}
.segmentBtn{font-size:9px;padding:8px 10px}
.hideCostToggle{display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid rgba(80,226,238,.12);border-radius:9px;background:rgba(5,20,29,.42);font-size:9px}
.rubroHeader{background:rgba(20,70,82,.46);border-top:1px solid rgba(80,226,238,.20)}
.rubroHeader td{padding:9px 8px!important;font-weight:800;color:#e8fbff}
.rubroSubtotal{color:var(--cyan);font-weight:800}
.rubroIncidence{font-size:9px;color:#9ed9e0;white-space:nowrap}
.manualMaterialMode{display:flex;gap:6px;margin-top:7px}
.manualMaterialPane{display:none}.manualMaterialPane.active{display:block}
.insumoRow{display:grid;grid-template-columns:1fr 85px 90px 42px;gap:6px;align-items:center;padding:6px 0;border-top:1px solid rgba(255,255,255,.05)}
.insumoRow input{width:100%;border:1px solid rgba(80,226,238,.14);border-radius:7px;background:#06141c;color:#fff;padding:6px;font-size:9px}
.ganttGrid{display:grid;grid-template-columns:250px repeat(8,1fr);gap:1px;border:1px solid rgba(80,226,238,.10);border-radius:12px;overflow:hidden}
.ganttCell{min-height:34px;padding:6px;background:rgba(5,20,29,.40);font-size:8px}
.ganttHead{background:rgba(18,57,70,.68);text-align:center;color:#bfe7ed;font-weight:700}
.ganttTask{font-size:9px;font-weight:700}
.ganttBar{background:linear-gradient(90deg,rgba(35,211,255,.72),rgba(60,192,219,.48));border-radius:6px;height:22px}
.strategyCard{padding:10px;border:1px solid rgba(80,226,238,.12);border-radius:11px;background:rgba(5,20,29,.43);margin-bottom:7px}
.strategyCard b{font-size:10px}.strategyCard small{display:block;font-size:9px;color:var(--muted);margin-top:4px}
.curveBars{display:flex;align-items:flex-end;gap:10px;height:165px;padding:12px;border-bottom:1px solid rgba(255,255,255,.10)}
.curveBarWrap{flex:1;text-align:center;font-size:8px;color:var(--muted)}
.curveBar{width:100%;background:linear-gradient(180deg,rgba(35,211,255,.90),rgba(35,211,255,.18));border-radius:6px 6px 2px 2px;min-height:10px;margin-bottom:6px}
.reportPreview{background:#f4f6f7;color:#17242b;border-radius:12px;padding:24px;min-height:520px}
.reportPreview h1,.reportPreview h2,.reportPreview h3{color:#10242d}.reportPreview table{width:100%;border-collapse:collapse}.reportPreview th,.reportPreview td{border-bottom:1px solid #cfd7db;padding:7px;text-align:left;font-size:11px}
.reportHeader{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #234553;padding-bottom:12px;margin-bottom:14px}
.reportBrand{display:flex;gap:10px;align-items:center}.reportLogo{width:58px;height:58px;border:1px solid #9aabad;border-radius:8px;display:grid;place-items:center;font-size:9px;color:#46616b}
.devAlert{padding:9px 10px;border:1px solid rgba(255,187,92,.22);background:rgba(255,187,92,.07);border-radius:10px;font-size:9px}
.configCrewRow{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;padding:8px 0;border-top:1px solid rgba(255,255,255,.05)}
.configCrewRow input{border:1px solid rgba(80,226,238,.13);border-radius:8px;background:#06141c;color:#fff;padding:7px;font-size:9px}
.analysisExplain{padding:10px;border:1px solid rgba(82,229,165,.18);border-radius:11px;background:rgba(82,229,165,.05);font-size:9px;line-height:1.5}


/* ===== V3.3 ===== */
.crewProfile{padding:10px;border:1px solid rgba(80,226,238,.11);border-radius:11px;background:rgba(5,20,29,.40);margin-bottom:7px}
.crewProfileTop{display:grid;grid-template-columns:1.1fr 1fr auto;gap:7px;align-items:center}
.crewProfileTop input{border:1px solid rgba(80,226,238,.13);border-radius:8px;background:#06141c;color:#fff;padding:8px;font-size:10px}
.crewSkills{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.crewSkill{display:flex;align-items:center;gap:4px;font-size:9px;padding:5px 7px;border:1px solid rgba(80,226,238,.10);border-radius:8px;background:rgba(8,34,43,.44)}
.insumoPick{display:grid;grid-template-columns:1fr 85px 95px 42px;gap:6px;align-items:start;padding:7px 0;border-top:1px solid rgba(255,255,255,.05)}
.insumoPick select,.insumoPick input{width:100%;border:1px solid rgba(80,226,238,.14);border-radius:7px;background:#06141c;color:#fff;padding:7px;font-size:9px}
.insumoChooser{display:flex;flex-direction:column;gap:5px}
.insumoNew{display:none}.insumoNew.open{display:block}
.ganttControls{display:flex;gap:7px;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:10px}
.ganttScaleGroup{display:flex;gap:5px;flex-wrap:wrap}
.ganttEditorTable{width:100%;border-collapse:collapse;font-size:10px;margin-bottom:10px}
.ganttEditorTable th,.ganttEditorTable td{padding:7px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left}
.ganttEditorTable select,.ganttEditorTable input{border:1px solid rgba(80,226,238,.13);border-radius:7px;background:#06141c;color:#fff;padding:6px;font-size:9px}
.criticalTag{display:inline-block;padding:3px 6px;border-radius:999px;border:1px solid rgba(255,116,109,.35);color:#ffaaa5;font-size:7px;margin-left:6px}
.ganttTimeline{display:grid;gap:1px;border:1px solid rgba(80,226,238,.10);border-radius:12px;overflow:hidden}
.ganttCellV33{min-height:36px;padding:6px;background:rgba(5,20,29,.40);font-size:8px}
.ganttHeadV33{background:rgba(18,57,70,.70);text-align:center;color:#c9edf2;font-weight:700}
.ganttTaskV33{font-size:9px;font-weight:700}
.ganttBarV33{height:23px;border-radius:6px;background:linear-gradient(90deg,rgba(35,211,255,.80),rgba(51,178,207,.46))}
.ganttBarV33.critical{background:linear-gradient(90deg,rgba(255,123,113,.92),rgba(255,187,92,.62))}
.purchaseWindow{padding:11px;border:1px solid rgba(80,226,238,.13);border-radius:12px;background:rgba(5,20,29,.46);margin-bottom:8px}
.purchaseWindow h4{margin:0 0 6px;font-size:11px}.purchaseWindow small{color:var(--muted);font-size:9px}
.purchaseItems{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:7px}
.purchaseItem{padding:7px;border-radius:8px;background:rgba(2,13,20,.46);border:1px solid rgba(255,255,255,.05);font-size:9px}
.curveSvg{width:100%;height:235px;display:block}
.curveLegend{display:flex;justify-content:space-between;font-size:8px;color:var(--muted);margin-top:4px}
.reportPreview{background:
  radial-gradient(circle at 15% 0%,rgba(35,211,255,.10),transparent 28%),
  linear-gradient(180deg,#071923,#031019)!important;
  color:#d8ecf2!important;border:1px solid rgba(80,226,238,.24)!important}
.reportPreview h1,.reportPreview h2,.reportPreview h3{color:#eefcff!important}
.reportPreview table{color:#d8ecf2}.reportPreview th{color:#86cbd4;border-color:rgba(80,226,238,.15)!important}
.reportPreview td{border-color:rgba(255,255,255,.07)!important}
.reportHeader{border-color:rgba(80,226,238,.45)!important}
.reportLogo{border-color:rgba(80,226,238,.35)!important;color:#8fd8e1!important;background:rgba(6,28,38,.68)}
.pdfRubro{background:rgba(27,79,92,.48);font-weight:800;color:#f0feff}
.pdfRubro td{border-top:1px solid rgba(80,226,238,.24)}
.clientRubro{background:rgba(22,69,82,.44);font-weight:800}
.clientRubro td{color:#eefdff!important}
.appNotice{padding:10px;border:1px solid rgba(80,226,238,.14);border-radius:10px;background:rgba(35,211,255,.045);font-size:9px;line-height:1.45}


/* ===== V3.4 OBRAS / GANTT REAL / PRINT ===== */
.workStartBar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:11px;border:1px solid rgba(80,226,238,.15);border-radius:12px;background:rgba(5,20,29,.48);margin-bottom:10px}
.workStartBar .startGroup{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.workStartBar label{font-size:9px;color:#94adb8;text-transform:uppercase}
.workStartBar input,.workStartBar select{border:1px solid rgba(80,226,238,.16);border-radius:8px;background:#06141c;color:#fff;padding:8px;font-size:10px}
.workGanttEditor{width:100%;border-collapse:collapse;font-size:10px}
.workGanttEditor th,.workGanttEditor td{padding:7px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:middle}
.workGanttEditor th{font-size:8px;color:#7fa1ae;text-transform:uppercase}
.workGanttEditor input,.workGanttEditor select{border:1px solid rgba(80,226,238,.14);border-radius:7px;background:#06141c;color:#fff;padding:6px;font-size:9px}
.restrictWarn{display:inline-block;padding:4px 7px;border-radius:8px;border:1px solid rgba(255,116,109,.35);background:rgba(255,116,109,.07);color:#ffaaa5;font-size:8px;line-height:1.3}
.restrictOk{display:inline-block;padding:4px 7px;border-radius:8px;border:1px solid rgba(82,229,165,.25);color:#8af0bb;font-size:8px}
.startDateTag{font-size:8px;color:#a5c7cf;display:block;margin-top:3px}
.workTimeline{display:grid;gap:1px;border:1px solid rgba(80,226,238,.11);border-radius:12px;overflow:hidden;margin-top:10px}
.workTimelineCell{min-height:38px;padding:6px;background:rgba(5,20,29,.42);font-size:8px}
.workTimelineHead{background:rgba(19,61,74,.72);color:#caeef2;font-weight:800;text-align:center}
.workTimelineTask{font-size:9px;font-weight:700}
.workTimelineBar{height:24px;border-radius:6px;background:linear-gradient(90deg,rgba(35,211,255,.84),rgba(46,165,198,.48))}
.workTimelineBar.critical{background:linear-gradient(90deg,rgba(255,111,102,.94),rgba(255,180,89,.70))}
.workTimelineBar.restricted{box-shadow:0 0 0 2px rgba(255,88,80,.65) inset}
.opsGanttSummary{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:10px}
.opsGanttMetric{padding:9px;border:1px solid rgba(80,226,238,.11);border-radius:10px;background:rgba(5,20,29,.43)}
.opsGanttMetric small{display:block;color:var(--muted);font-size:8px}.opsGanttMetric b{display:block;font-size:15px;margin-top:4px}
.certCurveControls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.certCurveControls small{color:var(--muted);font-size:8px}
.certCurveWrap{padding:10px;border:1px solid rgba(80,226,238,.11);border-radius:12px;background:rgba(5,20,29,.40)}
.workCurveSvg{width:100%;height:260px;display:block}
.workCurveLegend{display:flex;justify-content:space-between;font-size:8px;color:var(--muted)}
.demoLongTag{display:inline-block;padding:4px 7px;border:1px solid rgba(255,187,92,.25);border-radius:999px;color:#ffd08a;font-size:8px}
.pdfCompanyLine{font-size:9px;color:#91adb6;letter-spacing:.08em;text-transform:uppercase}
.pdfFooter{margin-top:26px;padding-top:10px;border-top:1px solid rgba(80,226,238,.15);display:flex;justify-content:space-between;font-size:8px;color:#7f9da8}
.pdfTotalBox{margin-left:auto;margin-top:18px;width:290px;padding:13px;border:1px solid rgba(80,226,238,.18);border-radius:12px;background:rgba(3,17,24,.54)}
.pdfTotalBox div{display:flex;justify-content:space-between;gap:16px;padding:4px 0}.pdfTotalBox .grand{font-size:18px;color:#efffff;font-weight:900;border-top:1px solid rgba(80,226,238,.20);margin-top:5px;padding-top:9px}

@media print{
  @page{size:A4 portrait;margin:9mm}
  html,body{background:#06141c!important;width:auto!important;height:auto!important;overflow:visible!important}
  body *{visibility:hidden!important}
  #budgetWorkspace,#budgetWorkspace *{visibility:hidden!important;display:none!important}
  #pdfPreviewContent,#pdfPreviewContent *{visibility:visible!important}
  #pdfPreviewContent{display:block!important;position:absolute!important;left:0!important;top:0!important;width:190mm!important;margin:0!important;padding:0!important}
  #pdfPreviewContent .reportPreview{
    display:block!important;width:190mm!important;min-height:270mm!important;
    margin:0!important;padding:10mm!important;border-radius:0!important;box-shadow:none!important;
    background:#061923!important;color:#dceff4!important;border:1px solid #1a7282!important;
    -webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;
  }
  #pdfPreviewContent .reportPreview *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  #pdfPreviewContent table{width:100%!important;font-size:10pt!important}
  #pdfPreviewContent th,#pdfPreviewContent td{font-size:9pt!important;padding:5pt!important}
  #pdfPreviewContent h2{font-size:18pt!important}
  #pdfPreviewContent h3{font-size:13pt!important}
  .modalOverlay,.formModal{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important;overflow:visible!important}
}


/* ===== V3.5 REGISTRO ↔ GANTT / FULL-BLEED PRINT ===== */
.ganttRecordChip{display:inline-block;padding:2px 5px;margin:1px;border-radius:6px;border:1px solid rgba(255,187,92,.38);background:rgba(255,187,92,.10);color:#ffd08a;font-size:7px;cursor:pointer;white-space:nowrap}
.ganttRecordChip.progress{border-color:rgba(82,229,165,.28);background:rgba(82,229,165,.07);color:#91efbc}
.ganttRecordChip.suspension{border-color:rgba(255,116,109,.38);background:rgba(255,116,109,.08);color:#ffaaa5}
.ganttDayRecords{display:flex;gap:2px;flex-wrap:wrap;margin-top:3px}
.forecastTag{display:inline-block;padding:3px 6px;border-radius:7px;border:1px solid rgba(255,187,92,.28);color:#ffd08a;font-size:7px;margin-left:5px}
.monthlyImpact{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.monthImpactCard{padding:10px;border:1px solid rgba(80,226,238,.11);border-radius:10px;background:rgba(5,20,29,.42)}
.monthImpactCard small{display:block;color:var(--muted);font-size:8px}.monthImpactCard b{display:block;font-size:15px;margin-top:4px}.monthImpactCard span{font-size:8px;color:#9fc2ca}
.registerEventBox{padding:9px;border:1px solid rgba(80,226,238,.11);border-radius:10px;background:rgba(5,20,29,.40);margin-bottom:7px}
.registerEventBox b{font-size:10px}.registerEventBox small{display:block;color:var(--muted);font-size:8px;margin-top:3px}
.printFormatBar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.printFormatBar label{font-size:9px;color:#93adb7;text-transform:uppercase}
.printFormatBar select{border:1px solid rgba(80,226,238,.15);border-radius:8px;background:#06141c;color:#fff;padding:7px;font-size:9px}
#pdfPreviewContent{background:#061923}
#pdfPreviewContent .reportPreview{box-sizing:border-box}

@media print{
  @page{size:A4 portrait;margin:0}
  html,body{margin:0!important;padding:0!important;width:100%!important;height:auto!important;background:#061923!important}
  body *{visibility:hidden!important}
  #pdfPreviewContent,#pdfPreviewContent *{visibility:visible!important}
  #pdfPreviewContent{
    display:block!important;position:absolute!important;left:0!important;top:0!important;
    margin:0!important;padding:0!important;width:210mm!important;min-height:297mm!important;
    background:#061923!important;
  }
  #pdfPreviewContent .reportPreview{
    display:block!important;margin:0!important;width:210mm!important;min-height:297mm!important;
    padding:10mm!important;box-sizing:border-box!important;border:0!important;border-radius:0!important;
    background:#061923!important;color:#dceff4!important;
    -webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;
  }
  #pdfPreviewContent .reportPreview *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .modalOverlay,.formModal{padding:0!important;margin:0!important;border:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
}


/* ===== V3.6 GANTT SCROLL / TODAY / TRUE PRINT ROOT ===== */
.workTimelineScroller{width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:8px;scrollbar-color:rgba(35,211,255,.55) rgba(4,18,26,.55);scrollbar-width:thin}
.workTimelineScroller::-webkit-scrollbar{height:10px}.workTimelineScroller::-webkit-scrollbar-track{background:rgba(4,18,26,.55);border-radius:999px}.workTimelineScroller::-webkit-scrollbar-thumb{background:rgba(35,211,255,.42);border-radius:999px}
.workTimeline{position:relative;margin-top:0}
.todayLine{position:absolute;top:0;bottom:0;width:2px;background:rgba(35,211,255,.95);box-shadow:0 0 9px rgba(35,211,255,.72);z-index:8;pointer-events:none}
.todayLine::before{content:"HOY";position:absolute;top:2px;left:4px;padding:2px 5px;border-radius:5px;background:#052833;color:#cfffff;font-size:7px;font-weight:900;letter-spacing:.07em;border:1px solid rgba(35,211,255,.42);white-space:nowrap}
.todayOutside{padding:6px 8px;border:1px solid rgba(35,211,255,.14);border-radius:8px;background:rgba(35,211,255,.04);font-size:8px;color:#9bc8cf}
.pdfSavedState{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;margin-bottom:9px;border:1px solid rgba(82,229,165,.24);border-radius:10px;background:rgba(82,229,165,.07);color:#c7f7dc;font-size:9px}
.pdfSavedState b{color:#8ef0ba}
#printRoot{display:none}
@media print{
  @page{margin:0}
  html,body{margin:0!important;padding:0!important;background:#061923!important;width:auto!important;height:auto!important;overflow:visible!important}
  #viewport,#pdfPreviewModal{display:none!important}
  #printRoot{display:block!important;position:static!important;margin:0!important;padding:0!important;background:#061923!important}
  #printRoot .reportPreview{margin:0!important;padding:10mm!important;box-sizing:border-box!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#061923!important;color:#dceff4!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  #printRoot .reportPreview *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  #printRoot table{width:100%!important;border-collapse:collapse!important}
}


/* ===== V3.7 DOCUMENTO ORIGEN / ARCHIVO VISUAL / PRINT FIX ===== */
.originDocBtn{border-color:rgba(80,226,238,.28)!important;background:rgba(35,211,255,.07)!important}
.fileLedgerItem .fileActions{display:flex;gap:5px;align-items:center}
.archiveStamp{display:inline-block;padding:3px 6px;border-radius:999px;border:1px solid rgba(82,229,165,.28);color:#8ef0ba;font-size:7px}
.pdfPrintBg{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.reportPreview{position:relative;overflow:hidden}
.reportPreview> *:not(.pdfPrintBg){position:relative;z-index:1}
.savedArchiveView{padding:9px 11px;margin-bottom:10px;border:1px solid rgba(82,229,165,.25);border-radius:10px;background:rgba(82,229,165,.07);font-size:9px;color:#c9f5dc}
.originDocInfo{padding:9px 11px;margin-bottom:10px;border:1px solid rgba(35,211,255,.18);border-radius:10px;background:rgba(35,211,255,.05);font-size:9px;color:#b8dce3}

/* This final print rule intentionally overrides ALL older print blocks. */
@media print{
  @page{margin:0!important}
  html,body{margin:0!important;padding:0!important;background:#061923!important;width:auto!important;height:auto!important;overflow:visible!important}
  body *{visibility:hidden!important}
  #viewport,#pdfPreviewModal{display:none!important}
  #printRoot{display:block!important;visibility:visible!important;position:absolute!important;left:0!important;top:0!important;margin:0!important;padding:0!important;background:#061923!important;overflow:visible!important}
  #printRoot,#printRoot *{visibility:visible!important}
  #printRoot .reportPreview{
    display:block!important;visibility:visible!important;margin:0!important;
    box-sizing:border-box!important;border:0!important;border-radius:0!important;box-shadow:none!important;
    background:#061923!important;color:#dceff4!important;
    -webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;
  }
  #printRoot .reportPreview *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  #printRoot .pdfPrintBg{display:block!important;visibility:visible!important}
  #printRoot table{width:100%!important;border-collapse:collapse!important}
}


/* ===== V3.8 COLUMNAS PRESUPUESTO / MATERIALES VALORIZADOS ===== */
.budgetV31Table th,.budgetV31Table td{white-space:nowrap}
.budgetV31Table td:first-child,.budgetV31Table th:first-child{white-space:normal;min-width:180px}
.budgetV31Table .incCell{font-weight:800;color:#9ee6ed;text-align:center}
.budgetV31Table .unitTotal{font-weight:800;color:#dffbff}
.budgetV31Table .amountTotal{font-weight:900;color:var(--cyan)}
.budgetV31Table .zeroPart{color:#617985}
.budgetColumnNote{padding:7px 9px;border:1px solid rgba(80,226,238,.10);border-radius:9px;background:rgba(5,20,29,.36);font-size:8px;color:#9bb4be;margin-bottom:8px}
.materialValueSummary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:9px}
.materialValueBox{padding:9px;border:1px solid rgba(80,226,238,.11);border-radius:10px;background:rgba(5,20,29,.42)}
.materialValueBox small{display:block;color:var(--muted);font-size:8px}.materialValueBox b{display:block;font-size:15px;margin-top:4px}
.clientBudgetTable{width:100%;border-collapse:collapse;font-size:10px}
.clientBudgetTable th,.clientBudgetTable td{padding:7px;border-bottom:1px solid rgba(255,255,255,.06);text-align:right}
.clientBudgetTable th:first-child,.clientBudgetTable td:first-child{text-align:left}
.clientBudgetTable .clientRubro td{text-align:left}
.reportPreview.wideReport{font-size:10px}
.reportPreview.wideReport table{table-layout:auto}
.reportPreview.wideReport th,.reportPreview.wideReport td{font-size:8px;padding:5px 4px}
.reportPreview.wideReport th:first-child,.reportPreview.wideReport td:first-child{min-width:90px}
.materialClientTag{display:inline-block;padding:3px 6px;border-radius:999px;border:1px solid rgba(35,211,255,.22);color:#9beaf1;font-size:7px}


/* ===== V3.9 PRESUPUESTO ORIGEN DENTRO DE OBRA ===== */
.originPaneHero{display:grid;grid-template-columns:1.25fr .75fr;gap:10px;margin-bottom:10px}
.originIdentity{padding:13px;border:1px solid rgba(80,226,238,.16);border-radius:13px;background:rgba(5,20,29,.48)}
.originIdentity h3{margin:0;font-size:17px}.originIdentity small{display:block;color:var(--muted);font-size:9px;margin-top:4px}
.originFlow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:10px}
.originFlowStep{padding:5px 8px;border:1px solid rgba(80,226,238,.14);border-radius:999px;font-size:8px;color:#b7d9e0;background:rgba(4,24,33,.54)}
.originFlowArrow{color:var(--cyan);font-size:11px}
.originLocked{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;border:1px solid rgba(82,229,165,.22);background:rgba(82,229,165,.06);color:#9bedbe;font-size:8px}
.originSummary{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
.originSummaryBox{padding:10px;border:1px solid rgba(80,226,238,.11);border-radius:11px;background:rgba(5,20,29,.42)}
.originSummaryBox small{display:block;color:var(--muted);font-size:8px}.originSummaryBox b{display:block;font-size:16px;margin-top:4px}
.originBudgetTable{width:100%;border-collapse:collapse;font-size:10px}
.originBudgetTable th,.originBudgetTable td{padding:8px;border-bottom:1px solid rgba(255,255,255,.06);text-align:right}
.originBudgetTable th:first-child,.originBudgetTable td:first-child{text-align:left}
.originRubro td{background:rgba(20,70,82,.46);font-weight:800;color:#e9fdff;text-align:left!important;border-top:1px solid rgba(80,226,238,.18)}
.originNotice{padding:10px 11px;border:1px solid rgba(255,187,92,.18);border-radius:10px;background:rgba(255,187,92,.05);font-size:9px;line-height:1.45;color:#d7c39d}


/* ===== V3.10 ALINEACIÓN RUBROS / PRESUPUESTO ORIGEN COMPLETO ===== */
.rubroHeader .rubroNameCell,
.originRubro .rubroNameCell,
.clientRubro .rubroNameCell,
.pdfRubro .rubroNameCell{font-weight:900;text-align:left!important}
.rubroHeader .rubroAmountCell,
.originRubro .rubroAmountCell,
.clientRubro .rubroAmountCell,
.pdfRubro .rubroAmountCell{text-align:right!important;font-weight:900;color:#eaffff}
.rubroHeader .rubroIncidenceCell,
.originRubro .rubroIncidenceCell,
.clientRubro .rubroIncidenceCell,
.pdfRubro .rubroIncidenceCell{text-align:right!important;font-weight:800;color:#9ee6ed}
.rubroHeader .rubroActionCell{background:rgba(20,70,82,.46)}
.originViewToolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}
.originViewToolbar .segmentGroup{margin:0}
.originBudgetWrap{overflow-x:auto;padding-bottom:7px}
.originBudgetTable{min-width:1160px}
.originBudgetTable th,.originBudgetTable td{white-space:nowrap}
.originBudgetTable th:first-child,.originBudgetTable td:first-child{white-space:normal;min-width:190px}
.originBudgetTable .originUnitPrice{font-weight:700}
.originBudgetTable .originAmount{font-weight:900;color:var(--cyan)}
.originBudgetTable .originInc{font-weight:800;color:#9ee6ed}
.originReadOnlyNote{padding:8px 10px;border:1px solid rgba(82,229,165,.16);border-radius:9px;background:rgba(82,229,165,.045);font-size:8px;color:#a5d9bc}


/* ===== V3.12 REFERENCIAL / FINAL + MO ACORDADA INDEPENDIENTE ===== */
.priceLogicNote{padding:8px 10px;border:1px solid rgba(35,211,255,.13);border-radius:9px;background:rgba(35,211,255,.04);font-size:8px;color:#a7c6ce;line-height:1.45}
.agreedTotalBox{border-color:rgba(255,187,92,.22)!important;background:rgba(255,187,92,.055)!important}
.agreedTotalBox b{color:#ffd08a!important}


/* ===== V3.14 APARIENCIA / CUSTOMIZACIÓN ===== */
:root{
  --ui-bg:#02080d;
  --ui-panel:#071b26;
  --ui-panel-2:#05141d;
  --ui-text:#edfaff;
  --ui-muted:#8faab7;
  --ui-accent:#23D3FF;
  --ui-border:#2f7680;
  --ui-input:#06141c;
  --ui-nav-bg:#061018;
  --ui-nav-overlay:rgba(6,16,24,.10);

  --fs-xs:8px;
  --fs-sm:9px;
  --fs-md:10px;
  --fs-body:11px;
  --fs-lg:12px;
  --fs-title:27px;
}
.app.ui-font-small{
  --fs-xs:8px;--fs-sm:9px;--fs-md:10px;--fs-body:11px;--fs-lg:12px;--fs-title:27px;
}
.app.ui-font-medium{
  --fs-xs:9px;--fs-sm:10px;--fs-md:11px;--fs-body:12.5px;--fs-lg:14px;--fs-title:31px;
}
.app.ui-font-large{
  --fs-xs:10px;--fs-sm:11.5px;--fs-md:13px;--fs-body:14.5px;--fs-lg:16.5px;--fs-title:36px;
}

/* Main theme surfaces */
html,body,#viewport,.app{background:var(--ui-bg)!important;color:var(--ui-text)!important}
.workspace{
  background:linear-gradient(180deg,var(--ui-workspace-top,rgba(2,8,13,.72)),var(--ui-workspace-bottom,rgba(2,8,13,.58)))!important;
  color:var(--ui-text)!important;
}
.card,.item,.event,.datebox,.aibox,.selector,.libTask,.versionCard,.fileLedgerItem,
.strategyCard,.purchaseWindow,.registerEventBox,.originIdentity,.originSummaryBox,
.workStartBar,.monthImpactCard,.opsGanttMetric,.certCurveWrap,.analysisExplain,
.hideCostToggle,.priceLogicNote,.originReadOnlyNote,.originNotice,.appNotice{
  background:var(--ui-panel-rgba,rgba(7,27,38,.79))!important;
  border-color:var(--ui-border-rgba,rgba(47,118,128,.36))!important;
  color:var(--ui-text)!important;
}
input,select,textarea,.formSelect,.crewSelect,.budgetV31Table input,.budgetV31Table select,
.workGanttEditor input,.workGanttEditor select,.ganttEditorTable input,.ganttEditorTable select{
  background:var(--ui-input)!important;
  color:var(--ui-text)!important;
  border-color:var(--ui-border-rgba,rgba(47,118,128,.36))!important;
}
.table td,.budgetV31Table td,.originBudgetTable td,.clientBudgetTable td,.materialOrderTable td{
  color:var(--ui-text)!important;
}
.table th,.budgetV31Table th,.originBudgetTable th,.clientBudgetTable th,.materialOrderTable th,
.item small,.selItem small,.note,.startDateTag,.field label,.opsGanttMetric small,
.originSummaryBox small,.monthImpactCard small,.taskCheck small,.strategyCard small{
  color:var(--ui-muted)!important;
}
.eyebrow,.sectionTitle span,.indexBadge b,.rubroSubtotal,.amountTotal,.originAmount,
.budgetStatus,.originFlowArrow,.segmentBtn.active,.budgetTab.active,.opsTab.active{
  color:var(--ui-accent)!important;
}
.btn.primary,.segmentBtn.active,.budgetTab.active,.opsTab.active{
  border-color:var(--ui-accent-rgba,rgba(35,211,255,.52))!important;
}
.progress span,.ganttBar,.ganttBarV33,.workTimelineBar{
  background:linear-gradient(90deg,var(--ui-accent),color-mix(in srgb,var(--ui-accent) 65%,#52e5a5))!important;
}
.workTimelineBar.critical,.ganttBarV33.critical{
  background:linear-gradient(90deg,#ff746d,#ffbb5c)!important;
}
.todayLine{background:var(--ui-accent)!important;box-shadow:0 0 9px color-mix(in srgb,var(--ui-accent) 70%,transparent)!important}
.todayLine::before{border-color:var(--ui-accent)!important;color:var(--ui-text)!important;background:var(--ui-panel)!important}

/* Font sizing */
.titleblock h1{font-size:var(--fs-title)!important}
.titleblock p,.workspace{font-size:var(--fs-lg)!important}
.btn,.segmentBtn,.budgetTab,.opsTab{font-size:var(--fs-body)!important}
.table,.budgetV31Table,.originBudgetTable,.clientBudgetTable,.materialOrderTable{font-size:var(--fs-body)!important}
.table th,.budgetV31Table th,.originBudgetTable th,.clientBudgetTable th,.materialOrderTable th{font-size:var(--fs-sm)!important}
.item b,.selItem b,.sectionTitle h3,.sectionTitle h4{font-size:var(--fs-lg)!important}
.item small,.selItem small,.note,.field label,.startDateTag{font-size:var(--fs-sm)!important}
.eyebrow,.sectionTitle span,.status{font-size:var(--fs-md)!important}

/* Light mode: keep the approved radial left navigation dark, lighten the workspace */
.app.ui-light .bg{opacity:.26;filter:brightness(1.10) saturate(.75)}
.app.ui-light .workspace::before{
  background:linear-gradient(180deg,rgba(246,249,250,.26),rgba(246,249,250,.12))!important;
}
.app.ui-light .card,.app.ui-light .item,.app.ui-light .event,.app.ui-light .datebox,.app.ui-light .aibox{
  box-shadow:0 10px 25px rgba(20,40,50,.10),inset 0 1px 0 rgba(255,255,255,.35)!important;
}
.app.ui-light .table td,.app.ui-light .budgetV31Table td,.app.ui-light .originBudgetTable td{
  border-bottom-color:rgba(20,50,60,.10)!important;
}


/* Lateral navigation — versión con imagen nativa, sin placa superpuesta */
.navDrawer{
  background:transparent!important;
  border-right:1px solid color-mix(in srgb,var(--ui-accent) 16%,transparent);
  box-shadow:18px 0 38px rgba(0,0,0,.20)!important;
}
.navDrawerVisual{
  background-color:transparent!important;
  background-blend-mode:normal!important;
  transition:filter .22s ease,opacity .22s ease,background-color .22s ease;
}
.navDrawer::after{display:none!important}
.navDrawer .hit,.navDrawer .brandbar{z-index:12}
.navDrawer .brandbar{
  background:color-mix(in srgb,var(--ui-nav-bg) 24%,transparent)!important;
  border-color:color-mix(in srgb,var(--ui-accent) 18%,transparent)!important;
  color:var(--ui-text)!important;
  backdrop-filter:blur(6px);
}

/* Oscuro: se mantiene la imagen casi pura */
.app.ui-dark .navDrawer{
  box-shadow:18px 0 38px rgba(0,0,0,.18)!important;
}
.app.ui-dark .navDrawerVisual{
  filter:brightness(1.02) contrast(1.01) saturate(.98)!important;
  opacity:1!important;
}

/* Claro: misma imagen llevada a gris claro */
.app.ui-light .navDrawer{
  box-shadow:18px 0 38px rgba(25,35,40,.12)!important;
}
.app.ui-light .navDrawerVisual{
  filter:grayscale(1) brightness(1.72) contrast(.70)!important;
  opacity:.92!important;
}
.app.ui-light .navDrawer .brandbar{
  background:color-mix(in srgb,#ffffff 72%,transparent)!important;
  border-color:rgba(70,110,120,.18)!important;
  box-shadow:0 8px 20px rgba(30,42,48,.08)!important;
}

/* Settings UI */
.appearanceGrid{display:grid;grid-template-columns:1.05fr .95fr;gap:10px}
.appearancePanel{padding:14px}
.appearanceBlock{padding:11px;border:1px solid var(--ui-border-rgba,rgba(80,226,238,.12));border-radius:12px;background:color-mix(in srgb,var(--ui-panel) 88%,transparent);margin-top:9px}
.appearanceBlock:first-child{margin-top:0}
.appearanceBlock h4{margin:0 0 8px;font-size:var(--fs-lg)}
.themeChoice,.fontChoice{display:flex;gap:7px;flex-wrap:wrap}
.appearanceOption{flex:1;min-width:110px;padding:10px;border:1px solid var(--ui-border-rgba,rgba(80,226,238,.13));border-radius:10px;background:var(--ui-panel-2);color:var(--ui-text);cursor:pointer;text-align:center;font-size:var(--fs-body)}
.appearanceOption.active{border-color:var(--ui-accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--ui-accent) 35%,transparent) inset;color:var(--ui-accent)}
.colorSettings{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.colorField{display:grid;grid-template-columns:38px 1fr;gap:8px;align-items:center;padding:8px;border:1px solid var(--ui-border-rgba,rgba(80,226,238,.10));border-radius:10px;background:var(--ui-panel-2)}
.colorField input[type=color]{width:38px;height:34px;border:0;padding:0;background:transparent;cursor:pointer}
.colorField label{font-size:var(--fs-sm);color:var(--ui-muted)}
.colorField b{display:block;font-size:var(--fs-body);margin-top:2px}
.appearancePreview{min-height:355px;position:relative;overflow:hidden}
.previewStage{position:absolute;inset:12px;border-radius:14px;background:linear-gradient(145deg,var(--ui-bg),color-mix(in srgb,var(--ui-bg) 78%,var(--ui-accent)));border:1px solid var(--ui-border-rgba);padding:14px}
.previewTop{display:flex;justify-content:space-between;gap:8px;align-items:center}
.previewTitle b{display:block;font-size:var(--fs-title);line-height:1}.previewTitle small{color:var(--ui-muted);font-size:var(--fs-sm)}
.previewPill{padding:6px 9px;border:1px solid var(--ui-accent-rgba);border-radius:999px;color:var(--ui-accent);font-size:var(--fs-sm)}
.previewCards{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:16px}
.previewCard{padding:10px;border-radius:11px;border:1px solid var(--ui-border-rgba);background:var(--ui-panel-rgba)}
.previewCard small{display:block;color:var(--ui-muted);font-size:var(--fs-sm)}.previewCard b{display:block;font-size:var(--fs-lg);margin-top:4px}
.previewList{margin-top:10px;padding:10px;border-radius:11px;border:1px solid var(--ui-border-rgba);background:var(--ui-panel-rgba)}
.previewRow{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--ui-border-rgba);font-size:var(--fs-body)}.previewRow:last-child{border-bottom:0}.previewRow span{color:var(--ui-muted)}
.appearanceFooter{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:10px}
.appearanceSaved{font-size:var(--fs-sm);color:#8ef0ba;opacity:0;transition:.2s}.appearanceSaved.show{opacity:1}
@media(max-width:1000px){.appearanceGrid{grid-template-columns:1fr}}


/* ===== V3.18 PERFILES DE APARIENCIA ===== */
.appearanceProfileBar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.appearanceProfileBar .fieldish{padding:9px 10px;border:1px solid var(--ui-border-rgba);border-radius:10px;background:var(--ui-panel-2)}
.appearanceProfileBar label{display:block;font-size:var(--fs-sm);color:var(--ui-muted);margin-bottom:5px}
.appearanceProfileBar input,.appearanceProfileBar select{width:100%;border:1px solid var(--ui-border-rgba);border-radius:8px;padding:8px 9px;background:var(--ui-input);color:var(--ui-text)}
.profileActions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.defaultProfileBadge{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ui-accent) 28%,transparent);color:var(--ui-accent);font-size:var(--fs-sm);background:color-mix(in srgb,var(--ui-accent) 6%,transparent)}
.cloudProfileNote{margin-top:8px;padding:8px 10px;border-radius:9px;border:1px solid var(--ui-border-rgba);background:color-mix(in srgb,var(--ui-panel) 88%,transparent);color:var(--ui-muted);font-size:var(--fs-sm);line-height:1.45}

/* ===== V3.19 ESCALA TIPOGRÁFICA GLOBAL ===== */
/* La selección Chica / Media / Grande debe afectar TODA la aplicación */
.app{
  font-size:var(--fs-body)!important;
}
.app button,
.app input,
.app select,
.app textarea,
.app label,
.app p,
.app span,
.app div,
.app td,
.app th,
.app small,
.app b,
.app strong{
  font-size:inherit;
}

/* Base textual hierarchy */
.app .eyebrow{font-size:var(--fs-md)!important}
.app .titleblock h1{font-size:var(--fs-title)!important}
.app .titleblock p{font-size:var(--fs-lg)!important}

.app .sectionTitle h2,
.app .sectionTitle h3,
.app .sectionTitle h4{font-size:var(--fs-lg)!important}
.app .sectionTitle span{font-size:var(--fs-md)!important}

.app .btn,
.app .segmentBtn,
.app .budgetTab,
.app .opsTab,
.app .opBtn,
.app .appearanceOption,
.app .status{font-size:var(--fs-body)!important}

.app .table,
.app .budgetV31Table,
.app .originBudgetTable,
.app .clientBudgetTable,
.app .materialOrderTable,
.app .ganttEditorTable,
.app .workGanttEditor table,
.app .certTable,
.app .crewTable{
  font-size:var(--fs-body)!important;
}

.app .table th,
.app .budgetV31Table th,
.app .originBudgetTable th,
.app .clientBudgetTable th,
.app .materialOrderTable th,
.app .ganttEditorTable th,
.app .workGanttEditor th,
.app .certTable th,
.app .crewTable th{
  font-size:var(--fs-sm)!important;
}

.app .table td,
.app .budgetV31Table td,
.app .originBudgetTable td,
.app .clientBudgetTable td,
.app .materialOrderTable td,
.app .ganttEditorTable td,
.app .workGanttEditor td,
.app .certTable td,
.app .crewTable td{
  font-size:var(--fs-body)!important;
}

.app .item b,
.app .selItem b,
.app .libTask b,
.app .versionCard b,
.app .fileLedgerItem b,
.app .strategyCard b,
.app .purchaseWindow b,
.app .registerEventBox b,
.app .originIdentity b,
.app .originSummaryBox b{
  font-size:var(--fs-lg)!important;
}

.app .item small,
.app .selItem small,
.app .libTask small,
.app .versionCard small,
.app .fileLedgerItem small,
.app .strategyCard small,
.app .purchaseWindow small,
.app .registerEventBox small,
.app .originIdentity small,
.app .originSummaryBox small,
.app .note,
.app .field label,
.app .startDateTag,
.app .taskCheck small,
.app .opsGanttMetric small,
.app .monthImpactCard small,
.app .previewCard small,
.app .previewRow,
.app .priceLogicNote,
.app .originReadOnlyNote,
.app .originNotice,
.app .cloudProfileNote{
  font-size:var(--fs-sm)!important;
}

/* KPI / cards */
.app .kpi .label{font-size:var(--fs-sm)!important}
.app .kpi .value{font-size:calc(var(--fs-title) * .93)!important}
.app .kpi .sub{font-size:var(--fs-md)!important}

/* Budget specific */
.app .budgetEditorTitle h2{font-size:calc(var(--fs-lg) * 1.55)!important}
.app .budgetEditorTitle small{font-size:var(--fs-sm)!important}
.app .indexBadge{font-size:var(--fs-sm)!important}
.app .indexBadge b{font-size:calc(var(--fs-lg) * 1.25)!important}
.app .editorSideTitle{font-size:var(--fs-xs)!important}
.app .rubroHeader td,
.app .originRubro td,
.app .clientRubro td{font-size:var(--fs-body)!important}

/* Operational / Gantt / Registro */
.app .opsTop h2,
.app .opsHero h2,
.app .workHeader h2{font-size:calc(var(--fs-lg) * 1.45)!important}
.app .opsTop small,
.app .opsHero small,
.app .workHeader small{font-size:var(--fs-sm)!important}
.app .event .time{font-size:var(--fs-sm)!important}
.app .event b{font-size:var(--fs-body)!important}
.app .event small{font-size:var(--fs-sm)!important}

/* Drawers / user / nav labels */
.app .userInfo small{font-size:var(--fs-sm)!important}
.app .userInfo b{font-size:var(--fs-lg)!important}
.app .userInfo span{font-size:var(--fs-body)!important}
.app .logoBox{font-size:var(--fs-sm)!important}

/* Forms */
.app input,
.app select,
.app textarea{
  font-size:var(--fs-body)!important;
}
.app .field label{font-size:var(--fs-sm)!important}

/* Modals / drawers */
.app .modal h2,
.app .modal h3,
.app .settings h2,
.app .settings h3,
.app .rightDrawer h2,
.app .rightDrawer h3{
  font-size:calc(var(--fs-lg) * 1.35)!important;
}
.app .modal p,
.app .settings p,
.app .rightDrawer p{
  font-size:var(--fs-body)!important;
}

/* Ensure rows remain usable at Large */
.app.ui-font-large .canvas{line-height:1.35}
.app.ui-font-large .item{padding-top:12px;padding-bottom:12px}
.app.ui-font-large .table td,
.app.ui-font-large .budgetV31Table td,
.app.ui-font-large .originBudgetTable td,
.app.ui-font-large .clientBudgetTable td{padding-top:11px;padding-bottom:11px}


/* ===== V4.0 MATERIALES / COMPRAS / LOGÍSTICA ===== */
.matV4Tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.matV4Tab{border:1px solid var(--ui-border-rgba);background:var(--ui-panel-rgba);color:var(--ui-muted);border-radius:10px;padding:8px 11px;cursor:pointer;font-size:var(--fs-body)}
.matV4Tab.active{border-color:var(--ui-accent-rgba);color:var(--ui-accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ui-accent) 12%,transparent)}
.matV4Layout{display:grid;grid-template-columns:270px 1fr;gap:10px}
.matV4Side{min-height:610px}
.matV4Selector .selItem{cursor:pointer}
.matV4Selector .selItem.active{border-color:var(--ui-accent-rgba);background:color-mix(in srgb,var(--ui-accent) 6%,var(--ui-panel))}
.matV4Selector .matMiniStats{display:flex;gap:6px;margin-top:5px;flex-wrap:wrap}
.matV4Selector .matMiniStats span{font-size:var(--fs-xs);padding:3px 5px;border-radius:999px;border:1px solid var(--ui-border-rgba);color:var(--ui-muted)}
.matV4Kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.matV4Kpi{padding:11px;border:1px solid var(--ui-border-rgba);border-radius:13px;background:var(--ui-panel-rgba)}
.matV4Kpi small{display:block;color:var(--ui-muted);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em}
.matV4Kpi b{display:block;font-size:calc(var(--fs-lg)*1.45);margin-top:5px}
.matV4Kpi .sub{font-size:var(--fs-sm);color:var(--ui-muted);margin-top:3px}
.matStatus{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 7px;border:1px solid var(--ui-border-rgba);font-size:var(--fs-sm);white-space:nowrap}
.matStatus.critical{color:#ff958e;border-color:rgba(255,116,109,.30);background:rgba(255,116,109,.07)}
.matStatus.warn{color:#ffd08a;border-color:rgba(255,187,92,.30);background:rgba(255,187,92,.07)}
.matStatus.ok{color:#89f1bd;border-color:rgba(82,229,165,.26);background:rgba(82,229,165,.06)}
.matStatus.transit{color:var(--ui-accent);border-color:var(--ui-accent-rgba);background:color-mix(in srgb,var(--ui-accent) 6%,transparent)}
.matV4TableWrap{overflow:auto;border:1px solid var(--ui-border-rgba);border-radius:12px}
.matV4Table{width:100%;border-collapse:collapse;min-width:1050px;font-size:var(--fs-body)}
.matV4Table th{position:sticky;top:0;z-index:2;padding:8px;background:color-mix(in srgb,var(--ui-panel) 94%,var(--ui-bg));color:var(--ui-muted);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em;text-align:left;border-bottom:1px solid var(--ui-border-rgba)}
.matV4Table td{padding:9px 8px;border-bottom:1px solid color-mix(in srgb,var(--ui-border) 22%,transparent);vertical-align:middle}
.matV4Table tr:last-child td{border-bottom:0}
.matV4Table .num{text-align:right;font-variant-numeric:tabular-nums}
.matV4Table .taskOrigin small{display:block;color:var(--ui-muted);margin-top:2px}
.matV4NeedDate{font-weight:800}
.matV4NeedDate.critical{color:#ff958e}
.matV4NeedDate.warn{color:#ffd08a}
.matV4Split{display:grid;grid-template-columns:1.15fr .85fr;gap:10px;margin-top:10px}
.matV4Timeline{display:flex;flex-direction:column;gap:7px}
.matV4TimelineItem{display:grid;grid-template-columns:82px 1fr auto;gap:9px;align-items:center;padding:9px;border:1px solid var(--ui-border-rgba);border-radius:10px;background:var(--ui-panel-rgba)}
.matV4TimelineItem .date{font-weight:800;color:var(--ui-accent)}
.matV4TimelineItem small{display:block;color:var(--ui-muted);margin-top:2px}
.matV4PurchaseCard{padding:10px;border:1px solid var(--ui-border-rgba);border-radius:12px;background:var(--ui-panel-rgba);margin-top:7px}
.matV4PurchaseCard:first-child{margin-top:0}
.matV4PurchaseHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.matV4PurchaseHead small{display:block;color:var(--ui-muted);margin-top:2px}
.matV4PurchaseMeta{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.matV4PurchaseMeta div{padding:6px 7px;border-radius:8px;background:color-mix(in srgb,var(--ui-bg) 26%,transparent);font-size:var(--fs-sm)}
.matV4PurchaseMeta small{display:block;color:var(--ui-muted);margin-bottom:2px}
.matV4Progress{height:7px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--ui-bg) 45%,transparent);border:1px solid var(--ui-border-rgba)}
.matV4Progress span{display:block;height:100%;background:linear-gradient(90deg,var(--ui-accent),#52e5a5)}
.matV4Alert{padding:10px 12px;border-radius:11px;border:1px solid rgba(255,187,92,.22);background:rgba(255,187,92,.055);margin-bottom:10px;line-height:1.45}
.matV4Alert strong{color:#ffd08a}
.matV4Empty{padding:22px;text-align:center;color:var(--ui-muted);border:1px dashed var(--ui-border-rgba);border-radius:12px}
.matV4Badge{padding:4px 7px;border-radius:999px;border:1px solid var(--ui-border-rgba);color:var(--ui-muted);font-size:var(--fs-sm)}
.matV4Toolbar{display:flex;gap:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:10px}
.matV4Toolbar .left,.matV4Toolbar .right{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.matV4Source{color:var(--ui-muted);font-size:var(--fs-sm)}
.matV4Source b{color:var(--ui-text)}
.matV4ReceiptGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.matV4Receipt{padding:11px;border:1px solid var(--ui-border-rgba);border-radius:12px;background:var(--ui-panel-rgba)}
.matV4Receipt .top{display:flex;justify-content:space-between;gap:8px}
.matV4Receipt small{color:var(--ui-muted)}
.matV4StockGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.matV4StockCard{padding:11px;border:1px solid var(--ui-border-rgba);border-radius:12px;background:var(--ui-panel-rgba)}
.matV4StockCard small{display:block;color:var(--ui-muted);margin-top:2px}
.matV4StockCard .big{font-size:calc(var(--fs-lg)*1.45);font-weight:900;margin:6px 0}
.matV4Modal .modalCard{width:min(720px,92vw)}
.matV4Form{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.matV4Form .full{grid-column:1/-1}
.matV4Form label{display:block;color:var(--ui-muted);font-size:var(--fs-sm);margin-bottom:4px}
.matV4Form input,.matV4Form select,.matV4Form textarea{width:100%;padding:9px;border-radius:9px;border:1px solid var(--ui-border-rgba);background:var(--ui-input);color:var(--ui-text)}
.matV4ModalSummary{padding:9px 10px;border:1px solid var(--ui-border-rgba);border-radius:10px;background:var(--ui-panel-rgba);margin-bottom:9px}
.matV4LogItem{padding:8px 0;border-bottom:1px solid var(--ui-border-rgba)}
.matV4LogItem:last-child{border-bottom:0}
.matV4LogItem small{display:block;color:var(--ui-muted);margin-top:2px}
@media(max-width:1100px){
  .matV4Layout{grid-template-columns:1fr}
  .matV4Kpis{grid-template-columns:repeat(2,1fr)}
  .matV4Split{grid-template-columns:1fr}
}


/* ===== V4.1 COMPRA MÚLTIPLE POR PROVEEDOR ===== */
.supplierChips{display:flex;gap:4px;flex-wrap:wrap}
.supplierChip{display:inline-flex;align-items:center;padding:3px 6px;border-radius:999px;border:1px solid var(--ui-border-rgba);font-size:var(--fs-xs);color:var(--ui-muted);background:color-mix(in srgb,var(--ui-panel) 82%,transparent)}
.supplierChip.best{color:var(--ui-accent);border-color:var(--ui-accent-rgba)}
.bulkPurchaseHead{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}
.bulkPurchaseHead label{display:block;color:var(--ui-muted);font-size:var(--fs-sm);margin-bottom:4px}
.bulkPurchaseHead select,.bulkPurchaseHead input{width:100%;padding:9px;border-radius:9px;border:1px solid var(--ui-border-rgba);background:var(--ui-input);color:var(--ui-text)}
.bulkPurchaseTableWrap{max-height:350px;overflow:auto;border:1px solid var(--ui-border-rgba);border-radius:11px}
.bulkPurchaseTable{width:100%;border-collapse:collapse;min-width:820px}
.bulkPurchaseTable th{position:sticky;top:0;z-index:2;background:color-mix(in srgb,var(--ui-panel) 96%,var(--ui-bg));padding:8px;text-align:left;color:var(--ui-muted);font-size:var(--fs-sm);border-bottom:1px solid var(--ui-border-rgba)}
.bulkPurchaseTable td{padding:8px;border-bottom:1px solid var(--ui-border-rgba);vertical-align:middle}
.bulkPurchaseTable tr:last-child td{border-bottom:0}
.bulkPurchaseTable input[type=checkbox]{transform:scale(1.08)}
.bulkPurchaseTable input[type=number]{width:105px;padding:7px;border:1px solid var(--ui-border-rgba);border-radius:8px;background:var(--ui-input);color:var(--ui-text)}
.bulkPurchaseTable .dueSoon{color:#ffd08a;font-weight:800}
.bulkPurchaseTable .critical{color:#ff958e;font-weight:800}
.bulkPurchaseFooter{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:9px}
.bulkPurchaseTotals{padding:9px 10px;border:1px solid var(--ui-border-rgba);border-radius:10px;background:var(--ui-panel-rgba)}
.bulkPurchaseTotals .metricLine{padding:4px 0}
.logisticsHint{padding:9px 10px;border-radius:10px;border:1px solid rgba(82,229,242,.20);background:rgba(82,229,242,.045);margin:8px 0;color:var(--ui-muted)}
.logisticsHint b{color:var(--ui-accent)}
.purchaseItemsList{margin-top:7px;padding-top:7px;border-top:1px solid var(--ui-border-rgba)}
.purchaseItemsList div{display:grid;grid-template-columns:1fr auto;gap:8px;padding:3px 0;font-size:var(--fs-sm)}
.purchaseItemsList small{color:var(--ui-muted)}


/* ===== V4.2 OC / REMITO / RECEPCIÓN ===== */
.ocDocWrap{background:#f4f6f7;color:#132027;border-radius:12px;padding:20px;max-height:72vh;overflow:auto}
.ocDoc{background:white;border:1px solid #d5dde1;border-radius:10px;padding:22px;box-shadow:0 12px 32px rgba(0,0,0,.12)}
.ocDocHead{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start;padding-bottom:14px;border-bottom:2px solid #173944}
.ocDocBrand small{display:block;color:#58717c;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.ocDocBrand h2{margin:4px 0 0;font-size:24px;color:#102a34}
.ocDocNumber{text-align:right}.ocDocNumber small{display:block;color:#70848c}.ocDocNumber b{display:block;font-size:24px;color:#0b8793;margin-top:3px}
.ocDocInfo{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin:14px 0}
.ocDocInfo div{padding:9px;border:1px solid #dbe3e6;border-radius:8px;background:#fafcfc}
.ocDocInfo small{display:block;color:#71858d;margin-bottom:3px}.ocDocInfo b{color:#172a32}
.ocDocTable{width:100%;border-collapse:collapse;margin-top:12px}
.ocDocTable th{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#60747c;background:#edf3f4;padding:8px;border-bottom:1px solid #cbd6da;text-align:left}
.ocDocTable td{padding:9px 8px;border-bottom:1px solid #e2e8ea;vertical-align:top}
.ocDocTable .num{text-align:right}
.ocDocTotals{width:330px;margin:14px 0 0 auto}
.ocDocTotals div{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid #e3e8ea}
.ocDocTotals .total{font-size:17px;font-weight:900;border-top:2px solid #173944;border-bottom:0;margin-top:4px;padding-top:8px}
.ocDocNotes{margin-top:14px;padding:10px;border:1px solid #dbe3e6;border-radius:8px;background:#fafcfc}
.ocDocFoot{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:28px}
.ocSignLine{padding-top:30px;border-top:1px solid #82949b;text-align:center;color:#60747c;font-size:11px}
.ocDocStatus{display:inline-flex;padding:5px 8px;border-radius:999px;background:#e8f7f8;color:#087f8c;border:1px solid #b8e0e3;font-size:11px;font-weight:800}

.receiptGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}
.receiptGrid label{display:block;color:var(--ui-muted);font-size:var(--fs-sm);margin-bottom:4px}
.receiptGrid input,.receiptGrid select,.receiptGrid textarea{width:100%;padding:8px;border:1px solid var(--ui-border-rgba);border-radius:8px;background:var(--ui-input);color:var(--ui-text)}
.receiptGrid .full{grid-column:1/-1}
.receiptTableWrap{max-height:300px;overflow:auto;border:1px solid var(--ui-border-rgba);border-radius:10px}
.receiptTable{width:100%;border-collapse:collapse;min-width:820px}
.receiptTable th{position:sticky;top:0;background:color-mix(in srgb,var(--ui-panel) 95%,var(--ui-bg));z-index:2;padding:8px;color:var(--ui-muted);font-size:var(--fs-sm);text-align:left;border-bottom:1px solid var(--ui-border-rgba)}
.receiptTable td{padding:8px;border-bottom:1px solid var(--ui-border-rgba);vertical-align:middle}
.receiptTable input,.receiptTable select{width:100%;min-width:95px;padding:7px;border:1px solid var(--ui-border-rgba);border-radius:7px;background:var(--ui-input);color:var(--ui-text)}
.receiptPending{color:#ffd08a;font-weight:800}
.receiptMissing{color:#ff958e;font-weight:800}
.signatureBox{border:1px solid var(--ui-border-rgba);border-radius:10px;padding:8px;background:var(--ui-panel-rgba)}
.signatureBox .sigTop{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:6px}
.signaturePad{width:100%;height:130px;background:#fff;border-radius:8px;touch-action:none;cursor:crosshair}
.signatureHint{font-size:var(--fs-sm);color:var(--ui-muted);margin-top:5px}
.receiptSummary{padding:9px 10px;border:1px solid var(--ui-border-rgba);border-radius:10px;background:var(--ui-panel-rgba);margin-top:8px}
.receiptSummary strong{color:var(--ui-accent)}
.receiptLineItems{margin-top:8px;border-top:1px solid var(--ui-border-rgba);padding-top:6px}
.receiptLineItems div{display:grid;grid-template-columns:1fr auto;gap:8px;padding:3px 0}
.receiptLineItems small{color:var(--ui-muted)}
.pendingDeliveryAlert{margin-top:7px;padding:8px;border-radius:8px;border:1px solid rgba(255,116,109,.22);background:rgba(255,116,109,.055);color:#ffb2ad}
@media print{
  body *{visibility:hidden!important}
  #ocDocumentPrint,#ocDocumentPrint *{visibility:visible!important}
  #ocDocumentPrint{position:absolute!important;inset:0!important;background:white!important;padding:0!important;color:#111!important}
  #ocDocumentPrint .ocDoc{box-shadow:none!important;border:0!important}
}


/* ===== V4.3 FIX IMPRESIÓN OC — usa printRoot estable ===== */
@media print{
  @page{size:A4 portrait;margin:0!important}
  #printRoot.ocPrintMode{
    display:block!important;
    visibility:visible!important;
    position:absolute!important;
    left:0!important;top:0!important;
    width:210mm!important;
    min-height:297mm!important;
    margin:0!important;
    padding:0!important;
    background:#ffffff!important;
    color:#132027!important;
    overflow:visible!important;
  }
  #printRoot.ocPrintMode,
  #printRoot.ocPrintMode *{
    visibility:visible!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  #printRoot.ocPrintMode .ocDocPrintPage{
    width:210mm!important;
    min-height:297mm!important;
    box-sizing:border-box!important;
    padding:12mm!important;
    margin:0!important;
    background:#ffffff!important;
    color:#132027!important;
  }
  #printRoot.ocPrintMode .ocDoc{
    display:block!important;
    visibility:visible!important;
    width:100%!important;
    min-height:auto!important;
    margin:0!important;
    padding:0!important;
    background:#ffffff!important;
    color:#132027!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
  }
  #printRoot.ocPrintMode .ocDoc *{
    color:inherit;
  }
  #printRoot.ocPrintMode .ocDocBrand small,
  #printRoot.ocPrintMode .ocDocNumber small,
  #printRoot.ocPrintMode .ocDocInfo small,
  #printRoot.ocPrintMode .ocDocNotes small,
  #printRoot.ocPrintMode .ocSignLine{
    color:#60747c!important;
  }
  #printRoot.ocPrintMode .ocDocBrand h2,
  #printRoot.ocPrintMode .ocDocNumber b,
  #printRoot.ocPrintMode .ocDocInfo b{
    color:#132027!important;
  }
  #printRoot.ocPrintMode .ocDocNumber b{color:#0b8793!important}
  #printRoot.ocPrintMode .ocDocStatus{color:#087f8c!important}
  #printRoot.ocPrintMode .ocDocTable{
    width:100%!important;
    border-collapse:collapse!important;
  }
  #printRoot.ocPrintMode .ocDocTable th{
    color:#60747c!important;
    background:#edf3f4!important;
  }
}


/* ===== V4.4 PROVEEDORES / NOTIFICACIONES / CONFIRMACIÓN ===== */
.providerCard{padding:10px;border:1px solid var(--ui-border-rgba);border-radius:11px;background:var(--ui-panel-rgba);margin-bottom:9px}
.providerCardTop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.providerContacts{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.providerContact{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border-radius:999px;border:1px solid var(--ui-border-rgba);font-size:var(--fs-sm);color:var(--ui-muted)}
.providerContact.ready{color:var(--ui-accent);border-color:var(--ui-accent-rgba)}
.providerState{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:var(--fs-sm);border:1px solid var(--ui-border-rgba)}
.providerState.linked{color:#89f1bd;border-color:rgba(82,229,165,.28);background:rgba(82,229,165,.06)}
.providerState.manual{color:#ffd08a;border-color:rgba(255,187,92,.28);background:rgba(255,187,92,.06)}
.ocNotifyBox{padding:10px;border:1px solid var(--ui-border-rgba);border-radius:10px;background:var(--ui-panel-rgba);margin-top:8px}
.ocNotifyActions{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.ocConfirmBox{padding:9px 10px;border-radius:10px;border:1px solid var(--ui-border-rgba);background:var(--ui-panel-rgba);margin-top:8px}
.ocConfirmBox small{display:block;color:var(--ui-muted);margin-top:3px}
.providerModalGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.providerModalGrid .full{grid-column:1/-1}
.providerModalGrid label{display:block;color:var(--ui-muted);font-size:var(--fs-sm);margin-bottom:4px}
.providerModalGrid input,.providerModalGrid select{width:100%;padding:8px;border:1px solid var(--ui-border-rgba);border-radius:8px;background:var(--ui-input);color:var(--ui-text)}
.confirmTable{width:100%;border-collapse:collapse;margin-top:8px}
.confirmTable th,.confirmTable td{padding:7px;border-bottom:1px solid var(--ui-border-rgba);text-align:left}
.confirmTable th{color:var(--ui-muted);font-size:var(--fs-sm)}
.confirmTable select,.confirmTable input{width:100%;padding:6px;border:1px solid var(--ui-border-rgba);border-radius:7px;background:var(--ui-input);color:var(--ui-text)}


/* ===== V4.5 RECEPCIÓN MÓVIL DE REMITOS ===== */
.receiverProfileBtn{
  border:1px solid var(--ui-accent-rgba)!important;
  background:color-mix(in srgb,var(--ui-accent) 7%,var(--ui-panel))!important;
  color:var(--ui-text)!important;
  text-shadow:none!important;
}
.app.ui-light .receiverProfileBtn{
  background:color-mix(in srgb,var(--ui-accent) 10%,rgba(255,255,255,.94))!important;
  color:#27485b!important;
  border-color:rgba(35,211,255,.55)!important;
  box-shadow:0 4px 14px rgba(60,110,130,.08)!important;
}
.remitInbox{display:grid;gap:8px}
.remitOcCard{padding:11px;border:1px solid var(--ui-border-rgba);border-radius:12px;background:var(--ui-panel-rgba)}
.remitOcTop{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.remitOcTop small{display:block;color:var(--ui-muted);margin-top:2px}
.remitOcMeta{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}
.remitOcMeta div{padding:6px 7px;border-radius:8px;background:color-mix(in srgb,var(--ui-bg) 25%,transparent)}
.remitOcMeta small{display:block;color:var(--ui-muted);font-size:var(--fs-sm);margin-bottom:2px}
.remitPendingBadge{display:inline-flex;padding:4px 7px;border-radius:999px;border:1px solid rgba(255,187,92,.28);background:rgba(255,187,92,.06);color:#ffd08a;font-size:var(--fs-sm)}
.remitMobileShell{max-width:520px;margin:0 auto;padding:10px;border:1px solid var(--ui-border-rgba);border-radius:18px;background:color-mix(in srgb,var(--ui-panel) 94%,var(--ui-bg));box-shadow:0 18px 50px rgba(0,0,0,.28)}
.remitMobileHead{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:9px}
.remitMobileHead .who small{display:block;color:var(--ui-muted)}
.remitStep{padding:9px;border:1px solid var(--ui-border-rgba);border-radius:10px;background:var(--ui-panel-rgba);margin-bottom:8px}
.remitQuickOk{width:100%;padding:10px;border-radius:10px;border:1px solid rgba(82,229,165,.28);background:rgba(82,229,165,.07);color:#9cf0c4;font-weight:800;cursor:pointer;margin-bottom:8px}
.remitEntryTable{width:100%;border-collapse:collapse}
.remitEntryTable th,.remitEntryTable td{padding:7px;border-bottom:1px solid var(--ui-border-rgba);text-align:left}
.remitEntryTable th{font-size:var(--fs-sm);color:var(--ui-muted)}
.remitEntryTable input{width:92px;padding:7px;border:1px solid var(--ui-border-rgba);border-radius:8px;background:var(--ui-input);color:var(--ui-text)}
.remitEntryTable tr.shortRow{background:rgba(255,116,109,.055)}
.remitEntryTable tr.shortRow td:first-child b{color:#ffaaa5}
.remitAlert{margin-top:8px;padding:8px 9px;border-radius:9px;border:1px solid rgba(255,116,109,.25);background:rgba(255,116,109,.06);color:#ffb0aa}
.remitOk{margin-top:8px;padding:8px 9px;border-radius:9px;border:1px solid rgba(82,229,165,.24);background:rgba(82,229,165,.055);color:#9cf0c4}
.claimAlert{padding:8px 10px;border-radius:9px;border:1px solid rgba(255,116,109,.24);background:rgba(255,116,109,.055);margin-top:8px;color:#ffb0aa}
.claimAlert small{display:block;color:#dca7a4;margin-top:3px}
.remitUserPanel{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}
.remitUserChip{padding:6px 8px;border-radius:999px;border:1px solid var(--ui-border-rgba);color:var(--ui-muted);font-size:var(--fs-sm)}
.remitUserChip.active{color:var(--ui-accent);border-color:var(--ui-accent-rgba)}


/* ===== V4.6 ROLES / USUARIOS / VISTAS ===== */
.profilePreviewBar{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  padding:7px 9px;border:1px solid var(--ui-border-rgba);
  border-radius:13px;background:color-mix(in srgb,var(--ui-panel) 88%,transparent);
  backdrop-filter:blur(8px)
}
.profilePreviewBar .previewLabel{
  display:flex;flex-direction:column;margin-right:3px;min-width:138px
}
.profilePreviewBar .previewLabel b{font-size:var(--fs-sm);color:var(--ui-text)}
.profilePreviewBar .previewLabel small{font-size:var(--fs-xs);color:var(--ui-muted)}
.profileRoleBtn{
  border:1px solid var(--ui-border-rgba);background:var(--ui-panel-rgba);
  color:var(--ui-muted);border-radius:999px;padding:6px 9px;cursor:pointer;
  font-size:var(--fs-sm);white-space:nowrap
}
.profileRoleBtn.active{
  color:var(--ui-accent);border-color:var(--ui-accent-rgba);
  background:color-mix(in srgb,var(--ui-accent) 7%,var(--ui-panel))
}
.roleHiddenNav{display:none!important}
.rolePortalHero{
  padding:14px;border:1px solid var(--ui-border-rgba);border-radius:16px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--ui-accent) 8%,var(--ui-panel)),var(--ui-panel-rgba));
  margin-bottom:10px
}
.rolePortalHero .top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.rolePortalHero h2{margin:0;font-size:calc(var(--fs-lg)*1.55)}
.rolePortalHero p{margin:5px 0 0;color:var(--ui-muted);max-width:760px;line-height:1.45}
.roleTag{display:inline-flex;padding:5px 8px;border-radius:999px;border:1px solid var(--ui-accent-rgba);color:var(--ui-accent);font-size:var(--fs-sm)}
.roleModuleChips{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
.roleModuleChips span{padding:4px 7px;border-radius:999px;border:1px solid var(--ui-border-rgba);font-size:var(--fs-xs);color:var(--ui-muted)}
.roleActionGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.roleActionCard{
  padding:11px;border:1px solid var(--ui-border-rgba);border-radius:13px;
  background:var(--ui-panel-rgba);min-height:105px;display:flex;flex-direction:column;justify-content:space-between
}
.roleActionCard h4{margin:0;font-size:var(--fs-lg)}
.roleActionCard p{margin:5px 0;color:var(--ui-muted);font-size:var(--fs-sm);line-height:1.4}
.roleActionCard .foot{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:7px}
.roleActionCard .metric{font-size:calc(var(--fs-lg)*1.25);font-weight:900}
.rolePrivacyNote{
  padding:9px 10px;border-radius:10px;border:1px solid var(--ui-border-rgba);
  background:color-mix(in srgb,var(--ui-panel) 87%,transparent);color:var(--ui-muted);margin-top:9px
}
.rolePrivacyNote b{color:var(--ui-text)}
.roleAdminPanel{margin-top:10px}
.roleAdminGrid{display:grid;grid-template-columns:360px 1fr;gap:10px}
.roleUserList{display:grid;gap:6px}
.roleUserRow{
  padding:9px;border:1px solid var(--ui-border-rgba);border-radius:10px;
  background:var(--ui-panel-rgba);cursor:pointer
}
.roleUserRow.active{border-color:var(--ui-accent-rgba);background:color-mix(in srgb,var(--ui-accent) 6%,var(--ui-panel))}
.roleUserRow .top{display:flex;justify-content:space-between;gap:8px}
.roleUserRow small{display:block;color:var(--ui-muted);margin-top:3px}
.rolePresetGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.rolePresetCard{
  padding:9px;border:1px solid var(--ui-border-rgba);border-radius:10px;background:var(--ui-panel-rgba)
}
.rolePresetCard b{display:block}
.rolePresetCard small{display:block;color:var(--ui-muted);margin-top:3px;line-height:1.35}
.rolePermissionGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:8px}
.rolePermission{
  display:flex;gap:6px;align-items:flex-start;padding:6px 7px;border:1px solid var(--ui-border-rgba);
  border-radius:8px;background:color-mix(in srgb,var(--ui-bg) 20%,transparent)
}
.rolePermission small{display:block;color:var(--ui-muted);margin-top:1px}
.userDetailBox{margin-top:9px;padding:10px;border:1px solid var(--ui-border-rgba);border-radius:11px;background:var(--ui-panel-rgba)}
.userDetailHeader{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.userOverride{
  margin-top:7px;padding:7px 8px;border-radius:8px;border:1px solid rgba(255,187,92,.22);
  background:rgba(255,187,92,.055);color:#ffd08a
}
.userModalGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.userModalGrid .full{grid-column:1/-1}
.userModalGrid label{display:block;color:var(--ui-muted);font-size:var(--fs-sm);margin-bottom:4px}
.userModalGrid input,.userModalGrid select{
  width:100%;padding:8px;border:1px solid var(--ui-border-rgba);border-radius:8px;background:var(--ui-input);color:var(--ui-text)
}
.userPermChecks{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}
.userPermChecks label{
  display:flex!important;gap:6px;align-items:flex-start;padding:7px;border:1px solid var(--ui-border-rgba);
  border-radius:8px;background:var(--ui-panel-rgba);color:var(--ui-text)!important
}
.userPermChecks input{width:auto!important;margin-top:2px}
.supplierPortalGrid{display:grid;grid-template-columns:1.1fr .9fr;gap:9px}
.supplierOc{
  padding:10px;border:1px solid var(--ui-border-rgba);border-radius:11px;background:var(--ui-panel-rgba);margin-top:7px
}
.supplierOc:first-child{margin-top:0}
.supplierOcLine{display:grid;grid-template-columns:1fr auto;gap:8px;padding:4px 0;border-bottom:1px solid var(--ui-border-rgba)}
.supplierOcLine:last-child{border-bottom:0}
.clientProgress{height:10px;border-radius:999px;overflow:hidden;border:1px solid var(--ui-border-rgba);background:color-mix(in srgb,var(--ui-bg) 35%,transparent)}
.clientProgress span{display:block;height:100%;background:linear-gradient(90deg,var(--ui-accent),#52e5a5)}
.app.profile-supplier .navzone,.app.profile-client .navzone{display:none!important}
.app.profile-supplier .brandbar,.app.profile-client .brandbar{opacity:.98}
@media(max-width:1150px){
  .roleActionGrid{grid-template-columns:1fr 1fr}
  .roleAdminGrid,.supplierPortalGrid{grid-template-columns:1fr}
  .rolePresetGrid{grid-template-columns:1fr 1fr}
}


/* ===== V4.7 SIDEBARS DINÁMICAS POR PERFIL ===== */
.roleSideNav{
  position:absolute;left:0;top:0;right:0;bottom:112px;z-index:11;
  display:none;padding:28px 24px 18px 34px;overflow:auto
}
.app:not(.profile-owner) .roleSideNav{display:block}
.app:not(.profile-owner) .navzone{display:none!important}
.app.profile-owner .roleSideNav{display:none!important}
.app.profile-owner .navzone{display:block!important}

.roleSideHeader{padding:5px 4px 15px;border-bottom:1px solid rgba(160,220,228,.14);margin-bottom:12px}
.roleSideHeader small{display:block;color:#8ba9b6;font-size:10px;text-transform:uppercase;letter-spacing:.12em}
.roleSideHeader h3{margin:4px 0 3px;font-size:22px;color:#eefcff}
.roleSideHeader p{margin:0;color:#8eaab6;font-size:11px;line-height:1.35}
.roleSideContext{
  display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap
}
.roleSideContext span{
  font-size:9px;padding:4px 7px;border-radius:999px;
  border:1px solid rgba(69,217,230,.20);background:rgba(4,23,31,.42);
  color:#a6dce3;backdrop-filter:blur(5px)
}
.roleSideSection{margin-top:13px}
.roleSideSectionTitle{
  padding:0 5px 6px;color:#6f909d;font-size:9px;text-transform:uppercase;
  letter-spacing:.13em;font-weight:800
}
.roleSideMenu{display:grid;gap:5px}
.roleNavItem{
  width:100%;border:1px solid rgba(91,174,185,.13);
  background:rgba(4,18,26,.43);color:#dceff3;border-radius:11px;
  padding:9px 10px;display:grid;grid-template-columns:29px 1fr auto;
  align-items:center;gap:8px;text-align:left;cursor:pointer;
  backdrop-filter:blur(5px);transition:.16s
}
.roleNavItem:hover{
  border-color:rgba(35,211,255,.28);background:rgba(7,31,40,.60);
  transform:translateX(2px)
}
.roleNavItem.active{
  border-color:rgba(35,211,255,.40);
  background:linear-gradient(90deg,rgba(35,211,255,.11),rgba(5,23,31,.48));
  box-shadow:inset 3px 0 0 var(--ui-accent)
}
.roleNavItem.important{
  border-color:rgba(82,229,165,.24);
  background:linear-gradient(90deg,rgba(82,229,165,.08),rgba(5,23,31,.48))
}
.roleNavItem .ico{
  width:29px;height:29px;border-radius:9px;display:grid;place-items:center;
  border:1px solid rgba(80,226,238,.14);background:rgba(3,15,22,.56);
  color:#9feef4;font-size:14px
}
.roleNavItem.important .ico{color:#9cf0c4;border-color:rgba(82,229,165,.22)}
.roleNavItem .txt b{display:block;font-size:11px}
.roleNavItem .txt small{display:block;color:#7f9ca8;font-size:8px;margin-top:2px;line-height:1.25}
.roleNavBadge{
  min-width:22px;text-align:center;font-size:8px;font-weight:800;
  padding:3px 5px;border-radius:999px;background:rgba(35,211,255,.08);
  border:1px solid rgba(35,211,255,.16);color:#9feef4
}
.roleNavBadge.warn{background:rgba(255,187,92,.08);border-color:rgba(255,187,92,.18);color:#ffd08a}
.roleNavBadge.red{background:rgba(255,116,109,.08);border-color:rgba(255,116,109,.18);color:#ffaaa5}
.roleSideFooter{
  margin-top:14px;padding:9px 10px;border:1px solid rgba(80,226,238,.11);
  border-radius:10px;background:rgba(3,15,22,.38);color:#819eaa;font-size:8px;line-height:1.4
}
.roleSideFooter b{color:#c9eef2}

.app.profile-admin .roleSideHeader h3{color:#bfeff4}
.app.profile-jo .roleSideHeader h3{color:#c9f3ff}
.app.profile-capataz .roleNavItem{padding:11px 10px}
.app.profile-capataz .roleNavItem .txt b{font-size:12px}
.app.profile-supplier .roleSideHeader h3{color:#9cf0c4}
.app.profile-client .roleSideHeader h3{color:#c7e6ff}

/* In prototype, briefly open the drawer when changing profile. */
.navDrawer.rolePreviewOpen{transform:translateX(0)!important}

/* Show a clearer edge label for contextual sidebars */
.app:not(.profile-owner) .menuEdge{width:30px}
.app:not(.profile-owner) .menuEdge span{font-size:0}
.app:not(.profile-owner) .menuEdge span::after{
  content:"MENÚ";font-size:8px;letter-spacing:.12em;
  writing-mode:vertical-rl;transform:rotate(180deg);color:#a6e8ee
}


/* ===== V4.8 MENÚ RADIAL UNIFICADO POR PERFIL ===== */
.roleSideNav{display:none!important}
.navzone{display:none!important}

.roleWheelMenu{
  position:absolute;left:0;top:0;width:490px;height:815px;z-index:11;
}
.wheelCenter{
  position:absolute;left:92px;top:262px;width:220px;height:190px;border-radius:44%;
  border:1px solid rgba(74,228,237,.22);
  background:radial-gradient(circle at 50% 38%, rgba(20,45,57,.48), rgba(3,13,19,.22) 72%);
  box-shadow:inset 0 0 24px rgba(27,184,197,.06), 0 0 18px rgba(0,0,0,.16);
  display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(2px)
}
.wheelCenter:hover{
  border-color:rgba(74,228,237,.34);background:radial-gradient(circle at 50% 38%, rgba(22,51,64,.56), rgba(3,13,19,.30) 72%);
}
.wheelCenter .core{
  text-align:center;padding:12px 18px;border-radius:50%;
}
.wheelCenter small{
  display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#8ecdd5
}
.wheelCenter b{
  display:block;font-size:24px;letter-spacing:-.03em;color:#f1fcff;margin-top:5px
}
.wheelCenter em{
  display:block;font-style:normal;font-size:11px;color:#8eaab6;margin-top:5px
}

.wheelBtn{
  position:absolute;width:78px;height:78px;border-radius:50%;
  border:1px solid rgba(74,228,237,.20);
  background:linear-gradient(180deg, rgba(10,30,39,.72), rgba(4,17,24,.78));
  box-shadow:0 10px 22px rgba(0,0,0,.16), inset 0 0 12px rgba(35,211,255,.04);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:#dff9fc;cursor:pointer;backdrop-filter:blur(4px);transition:.16s;padding:6px;text-align:center
}
.wheelBtn:hover{
  transform:translateY(-2px) scale(1.02);
  border-color:rgba(74,228,237,.38);
  box-shadow:0 10px 22px rgba(0,0,0,.20), 0 0 18px rgba(35,211,255,.10)
}
.wheelBtn.active{
  border-color:rgba(74,228,237,.48);
  background:linear-gradient(180deg, rgba(16,45,57,.82), rgba(5,20,28,.82));
  box-shadow:0 0 0 1px rgba(35,211,255,.12), 0 0 20px rgba(35,211,255,.10)
}
.wheelBtn.special{
  border-color:rgba(82,229,165,.26);
  background:linear-gradient(180deg, rgba(17,41,40,.74), rgba(6,20,21,.80));
}
.wheelBtn .icon{
  width:28px;height:28px;border-radius:10px;border:1px solid rgba(74,228,237,.14);
  display:grid;place-items:center;font-size:14px;color:#9feef4;background:rgba(3,15,21,.44);margin-bottom:4px
}
.wheelBtn.special .icon{color:#9cf0c4;border-color:rgba(82,229,165,.18)}
.wheelBtn span{
  display:block;font-size:9px;line-height:1.16;font-weight:800;letter-spacing:.02em
}
.wheelBtn .badge{
  position:absolute;right:-3px;top:-3px;min-width:20px;height:20px;border-radius:999px;
  display:grid;place-items:center;padding:0 5px;font-size:8px;font-weight:900;
  background:rgba(35,211,255,.12);border:1px solid rgba(35,211,255,.25);color:#aef7fb
}
.wheelBtn .badge.warn{background:rgba(255,187,92,.13);border-color:rgba(255,187,92,.26);color:#ffd08a}
.wheelBtn .badge.red{background:rgba(255,116,109,.13);border-color:rgba(255,116,109,.26);color:#ffb0aa}

.wheelRoleTag{
  position:absolute;left:20px;top:18px;padding:8px 10px 8px 12px;border-radius:12px;
  border:1px solid rgba(74,228,237,.16);background:rgba(4,18,27,.44);
  color:#dff9fc;backdrop-filter:blur(6px)
}
.wheelRoleTag small{display:block;color:#86abb4;font-size:9px;text-transform:uppercase;letter-spacing:.14em}
.wheelRoleTag b{display:block;font-size:15px;margin-top:2px}
.wheelRoleTag span{display:block;color:#8eaab6;font-size:10px;margin-top:2px}

.wheelHint{
  position:absolute;left:20px;top:88px;width:214px;padding:9px 10px;border-radius:11px;
  border:1px solid rgba(74,228,237,.12);background:rgba(4,18,27,.34);backdrop-filter:blur(6px);
  color:#8eaab6;font-size:10px;line-height:1.35
}
.wheelHint b{color:#dff9fc}
.app.profile-owner .wheelRoleTag b{color:#dff9fc}
.app.profile-admin .wheelRoleTag b{color:#c8f7ff}
.app.profile-jo .wheelRoleTag b{color:#d7f2ff}
.app.profile-capataz .wheelRoleTag b{color:#e8fbff}
.app.profile-supplier .wheelRoleTag b{color:#bdf6d1}
.app.profile-client .wheelRoleTag b{color:#dbeeff}


/* ===== V4.9 SIDEBARS REALES POR PERFIL — sobre base V4.8 ===== */
.roleSideNav,.roleWheelMenu{display:none!important}
.navzone{display:none!important}
.profileSidebarLayer{position:absolute;left:0;top:0;width:490px;height:815px;z-index:10;pointer-events:none;overflow:hidden}
.profileSidebarFrame{position:absolute;left:50%;top:12px;height:772px;width:545px;transform:translateX(-50%);pointer-events:none}
.profileSidebarImg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 12px 24px rgba(0,0,0,.34));user-select:none;-webkit-user-drag:none;pointer-events:none}
.profileSidebarHotspots{position:absolute;inset:0;pointer-events:none}
.profileSidebarHit{position:absolute;border:0;background:transparent;cursor:pointer;pointer-events:auto;border-radius:18px;transition:.15s;outline:0}
.profileSidebarHit:hover{box-shadow:inset 0 0 0 2px rgba(255,255,255,.20),0 0 16px var(--ui-accent-rgba);background:color-mix(in srgb,var(--ui-accent) 5%,transparent)}
.profileSidebarHit.active{box-shadow:inset 0 0 0 2px rgba(255,255,255,.18),0 0 18px var(--ui-accent-rgba)}
.profileSidebarHit[data-key="home"]{border-radius:48%}
.profileSidebarHit::after{content:attr(aria-label);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none}
.profileSidebarRoleTag{position:absolute;left:18px;top:10px;z-index:11;padding:5px 8px;border-radius:999px;background:rgba(2,12,17,.72);border:1px solid var(--ui-border-rgba);color:var(--ui-muted);font-size:8px;letter-spacing:.08em;text-transform:uppercase;pointer-events:none;backdrop-filter:blur(5px)}


/* ===== V4.12.3 AJUSTE SIDEBAR / SELECTOR DE PRUEBA ===== */

/* Sidebar más chica, centrada y sin recorte */
.profileSidebarLayer{
  position:absolute!important;
  left:0!important;
  top:0!important;
  width:490px!important;
  height:815px!important;
  overflow:visible!important;
}
.profileSidebarFrame{
  position:absolute!important;
  left:50%!important;
  top:92px!important;
  width:410px!important;
  height:615px!important;
  transform:translateX(-50%)!important;
  overflow:visible!important;
}
.profileSidebarImg{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  filter:drop-shadow(0 9px 18px rgba(0,0,0,.26))!important;
}
.profileSidebarRoleTag{display:none!important}

/* Áreas clickeables más sutiles */
.profileSidebarHit{
  border-radius:13px!important;
}
.profileSidebarHit:hover{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.17),0 0 9px var(--ui-accent-rgba)!important;
  background:color-mix(in srgb,var(--ui-accent) 2.5%,transparent)!important;
}
.profileSidebarHit.active{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 0 10px var(--ui-accent-rgba)!important;
}
.profileSidebarHit[data-profile-key="home"]{border-radius:48%!important}

/* Selector de perfil solamente para la prueba del prototipo */
.prototypeProfilePicker{
  position:relative;
  min-width:156px;
  padding:6px 8px;
  border:1px solid var(--ui-border-rgba);
  border-radius:13px;
  background:color-mix(in srgb,var(--ui-panel) 90%,transparent);
  backdrop-filter:blur(8px);
}
.prototypeProfilePicker small{
  display:block;
  color:var(--ui-muted);
  font-size:var(--fs-xs);
  margin-bottom:3px;
  letter-spacing:.04em;
}
.prototypeProfilePicker select{
  width:100%;
  border:0;
  outline:0;
  padding:3px 20px 3px 0;
  background:transparent;
  color:var(--ui-text);
  font-size:var(--fs-sm);
  font-weight:800;
  cursor:pointer;
}
.prototypeProfilePicker select option{
  background:var(--ui-panel);
  color:var(--ui-text);
}

/* La vieja botonera de simulación deja de ocupar lugar */
.profilePreviewBar{display:none!important}


/* ===== V4.12.3 · sidebar radial limpia y anclada abajo izquierda ===== */
.menuEdge{display:none!important}
.navDrawer{
  position:absolute!important;
  left:18px!important;
  bottom:18px!important;
  top:auto!important;
  width:320px!important;
  height:640px!important;
  z-index:38!important;
  transform:none!important;
  transition:none!important;
  overflow:visible!important;
  box-shadow:none!important;
  pointer-events:none!important;
  background:none!important;
}
.navDrawer.open,.navDrawer.rolePreviewOpen{transform:none!important}
.navDrawerVisual,.navzone,.roleSideNav,.roleWheelMenu,.brandbar{display:none!important}
.profileSidebarLayer{
  position:absolute!important;
  left:0!important;
  right:auto!important;
  bottom:0!important;
  top:auto!important;
  width:320px!important;
  height:640px!important;
  overflow:visible!important;
  pointer-events:none!important;
}
.profileSidebarFrame{
  position:absolute!important;
  left:0!important;
  bottom:0!important;
  top:auto!important;
  width:320px!important;
  height:640px!important;
  transform:none!important;
  overflow:visible!important;
  pointer-events:none!important;
}
.profileSidebarImg{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:left bottom!important;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.28))!important;
}
.profileSidebarHotspots{position:absolute!important;inset:0!important;pointer-events:none!important}
.profileSidebarHit{border-radius:12px!important;pointer-events:auto!important}
.profileSidebarHit:hover{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 0 8px var(--ui-accent-rgba)!important;
  background:color-mix(in srgb,var(--ui-accent) 2%,transparent)!important;
}
.profileSidebarHit.active{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.13),0 0 9px var(--ui-accent-rgba)!important;
}
/* un poco más de aire para que la sidebar no tape el contenido */
.workspace{padding-left:360px!important}
/* el selector de prueba queda discreto */
.prototypeProfilePicker{min-width:148px!important}


/* ===== V4.12.3 · SIDEBAR OCULTABLE / COLOR DINÁMICO ===== */

/* La sidebar vuelve a comportarse como menú ocultable,
   pero conserva la posición inferior izquierda aprobada. */
.menuEdge{
  display:flex!important;
  position:absolute!important;
  left:0!important;
  bottom:0!important;
  top:auto!important;
  width:34px!important;
  height:34px!important;
  z-index:42!important;
  cursor:pointer!important;
  align-items:center!important;
  justify-content:center!important;
  border-right:1px solid var(--ui-accent-rgba)!important;
  background:linear-gradient(90deg,var(--ui-accent-rgba),transparent)!important;
  opacity:.58!important;
}
.menuEdge:hover{opacity:.95!important}
.menuEdge span{
  display:block!important;
  font-size:17px!important;
  color:var(--ui-accent)!important;
  writing-mode:initial!important;
  transform:none!important;
  text-shadow:0 0 10px var(--ui-accent-rgba)!important;
}
.menuEdge span::after{content:none!important}

.navDrawer{
  position:absolute!important;
  left:0!important;
  bottom:14px!important;
  top:auto!important;
  width:345px!important;
  height:500px!important;
  z-index:40!important;
  transform:translateX(-329px)!important;
  transition:transform .22s ease!important;
  overflow:visible!important;
  box-shadow:none!important;
  pointer-events:none!important;
  background:transparent!important;
}
.navDrawer.open,.navDrawer.rolePreviewOpen{
  transform:translateX(0)!important;
  pointer-events:auto!important;
}

/* No queda absolutamente nada de la sidebar vieja detrás. */
.navDrawerVisual,.navzone,.roleSideNav,.roleWheelMenu,.brandbar{
  display:none!important;
}

/* Sólo la imagen PNG/WebP del perfil. */
.profileSidebarLayer{
  position:absolute!important;
  left:0!important;
  bottom:0!important;
  top:auto!important;
  width:340px!important;
  height:480px!important;
  overflow:visible!important;
  pointer-events:none!important;
}
.profileSidebarFrame{
  position:absolute!important;
  left:12px!important;
  bottom:0!important;
  top:auto!important;
  width:320px!important;
  height:454px!important;
  transform:none!important;
  overflow:visible!important;
  pointer-events:none!important;
}
.profileSidebarImg{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:left bottom!important;
  filter:drop-shadow(0 10px 19px rgba(0,0,0,.27))!important;
  user-select:none!important;
  -webkit-user-drag:none!important;
  pointer-events:none!important;
}
.profileSidebarHotspots{
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;
}

/* Áreas reales y discretas: sin rectángulos gigantes. */
.profileSidebarHit{
  position:absolute!important;
  border:0!important;
  background:transparent!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  border-radius:10px!important;
  outline:0!important;
  transition:.12s!important;
}
.profileSidebarHit:hover{
  background:color-mix(in srgb,var(--ui-accent) 2%,transparent)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 0 7px var(--ui-accent-rgba)!important;
}
.profileSidebarHit.active{
  background:transparent!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),0 0 8px var(--ui-accent-rgba)!important;
}
.profileSidebarHit[data-profile-key="home"]{border-radius:45%!important}
.profileSidebarRoleTag{display:none!important}

/* Al estar oculta, no reservamos 360px de pantalla: la imagen aparece por encima,
   como el menú histórico de V4.8. */
.workspace{padding-left:0!important}

/* Selector únicamente de desarrollo */
.prototypeProfilePicker{
  min-width:150px!important;
  opacity:.88;
}
.prototypeProfilePicker:hover{opacity:1}


/* ===== V4.12.3 · PANEL GENERAL POR PERFIL + CONFIG PERSONAL ===== */
.roleDashboardTop{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  margin-bottom:10px;
}
.roleDashKpi{
  padding:12px;
  border:1px solid var(--ui-border-rgba);
  border-radius:13px;
  background:var(--ui-panel-rgba);
}
.roleDashKpi small{
  display:block;
  color:var(--ui-muted);
  font-size:var(--fs-sm);
  text-transform:uppercase;
  letter-spacing:.06em;
}
.roleDashKpi b{
  display:block;
  font-size:calc(var(--fs-lg)*1.35);
  margin-top:5px;
}
.roleDashKpi span{
  display:block;
  color:var(--ui-muted);
  font-size:var(--fs-sm);
  margin-top:4px;
}
.roleDashboardGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}
.roleDashboardCard{
  padding:12px;
  border:1px solid var(--ui-border-rgba);
  border-radius:13px;
  background:var(--ui-panel-rgba);
  min-height:122px;
  display:flex;
  flex-direction:column;
}
.roleDashboardCard .head{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:flex-start;
}
.roleDashboardCard h4{
  margin:0;
  font-size:var(--fs-lg);
}
.roleDashboardCard p{
  color:var(--ui-muted);
  font-size:var(--fs-sm);
  line-height:1.42;
  margin:6px 0 8px;
}
.roleDashboardCard .miniList{
  display:grid;
  gap:4px;
  margin-top:auto;
}
.roleDashboardCard .miniList div{
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding-top:4px;
  border-top:1px solid var(--ui-border-rgba);
  font-size:var(--fs-sm);
}
.roleDashboardCard .miniList span{color:var(--ui-muted)}
.roleDashboardCard .actions{
  display:flex;
  justify-content:flex-end;
  gap:6px;
  margin-top:8px;
}
.roleDashboardAlert{
  margin-top:9px;
  padding:9px 10px;
  border:1px solid rgba(255,187,92,.22);
  border-radius:10px;
  background:rgba(255,187,92,.055);
  color:#ffd08a;
}
.personalConfigIntro{
  padding:11px 12px;
  margin-bottom:10px;
  border:1px solid var(--ui-accent-rgba);
  border-radius:12px;
  background:color-mix(in srgb,var(--ui-accent) 5%,var(--ui-panel));
}
.personalConfigIntro .top{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.personalConfigIntro h3{margin:0;font-size:var(--fs-lg)}
.personalConfigIntro p{
  margin:5px 0 0;
  color:var(--ui-muted);
  font-size:var(--fs-sm);
  max-width:820px;
}
.personalConfigIntro .tag{
  padding:5px 8px;
  border-radius:999px;
  border:1px solid var(--ui-accent-rgba);
  color:var(--ui-accent);
  font-size:var(--fs-sm);
  white-space:nowrap;
}
.personalPreferenceStrip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin-top:9px;
}
.personalPreferenceStrip label{
  padding:8px 9px;
  border:1px solid var(--ui-border-rgba);
  border-radius:9px;
  background:var(--ui-panel-rgba);
  color:var(--ui-text);
  font-size:var(--fs-sm);
}
.personalPreferenceStrip small{
  display:block;
  color:var(--ui-muted);
  margin-top:2px;
}
.app:not(.profile-owner) .ownerOnlyConfig{display:none!important}
.app.profile-owner .ownerOnlyConfig{display:block}
@media(max-width:1200px){
  .roleDashboardTop{grid-template-columns:repeat(2,1fr)}
  .roleDashboardGrid{grid-template-columns:repeat(2,1fr)}
}


/* ===== V4.12.3 · FIX PERFIL DUEÑO ===== */

/* Los modales de Materiales/OC/Remitos no deben formar parte del flujo de página.
   Sólo aparecen cuando explícitamente reciben .open. */
.modal{
  position:absolute!important;
  inset:0!important;
  z-index:90!important;
  display:none!important;
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  background:rgba(1,7,11,.68)!important;
  backdrop-filter:blur(6px)!important;
  -webkit-backdrop-filter:blur(6px)!important;
}
.modal.open{display:flex!important}
.modal .modalCard{
  max-height:90%!important;
  overflow:auto!important;
  border:1px solid var(--ui-border-rgba)!important;
  border-radius:16px!important;
  background:var(--ui-panel)!important;
  box-shadow:0 25px 70px rgba(0,0,0,.55)!important;
  padding:14px!important;
}

/* El hotspot no agrega una placa visible sobre el PNG. */
.profileSidebarHit,
.profileSidebarHit:hover,
.profileSidebarHit.active{
  background:transparent!important;
}
.profileSidebarHit:hover{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.13),0 0 6px var(--ui-accent-rgba)!important;
}
.profileSidebarHit.active{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)!important;
}


/* ===== V4.12.3 · IDENTIDAD SIGUE 360 ===== */
.bg{
  background-image:url("../media/c76b344ec77a7079.jpg")!important;
  background-size:1664px 936px!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  filter:saturate(1.05) contrast(1.05)!important;
}
.bg::before{
  content:""!important;position:absolute!important;inset:0!important;
  background:linear-gradient(90deg,rgba(4,16,31,.20) 0%,rgba(4,16,31,.08) 38%,rgba(4,16,31,.20) 100%)!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;pointer-events:none!important;
}
.bg::after{
  content:""!important;position:absolute!important;inset:0!important;
  background:linear-gradient(180deg,rgba(3,13,27,.05),rgba(3,13,27,.13))!important;
  pointer-events:none!important;
}
.workspace{background:linear-gradient(180deg,rgba(6,20,38,.12),rgba(6,20,38,.08))!important}
.workspace::before{background:linear-gradient(180deg,rgba(5,18,34,.06),rgba(5,18,34,.03))!important}
.sigueBrandEyebrow{display:flex;align-items:center;gap:10px;height:22px}
.sigueBrandLogo{width:112px;height:auto;display:block;border-radius:5px;box-shadow:0 0 18px rgba(35,211,255,.08)}
.sigueBrandVersion{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ui-accent);white-space:nowrap}
.reportPlatformBrand{color:#23D3FF!important}


/* ===== V4.12.3 · FONDOS CLAROS SIGUE 360 =====
   Imágenes provistas por el usuario: escritorio + móvil.
   El modo oscuro conserva intacto el fondo anterior. */
.app.ui-light .bg{
  background-image:url("../media/eac1723d9a4e82df.webp")!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  opacity:1!important;
  filter:none!important;
}

/* En claro no se agrega ninguna placa/velo gris sobre la imagen. */
.app.ui-light .bg::before,
.app.ui-light .bg::after{
  content:""!important;
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.app.ui-light .workspace{
  background:transparent!important;
}
.app.ui-light .workspace::before{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* Vista móvil del prototipo: usa la imagen vertical elegida. */
.app.ui-light .mobileOverlay .phone{
  background-image:url("../media/d6e2e6cef9b1f6fb.webp")!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}
.app.ui-light .mobileOverlay .phone::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.08);
  pointer-events:none;
}
.app.ui-light .mobileOverlay .phoneTop,
.app.ui-light .mobileOverlay .phoneBody{
  position:relative;
  z-index:1;
}
.app.ui-light .mobileOverlay .phoneCard{
  background:rgba(255,255,255,.82)!important;
  color:var(--ui-text)!important;
  border-color:var(--ui-border-rgba)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
}

/* Preparado también para una futura maquetación móvil real. */
@media (max-width:700px), (orientation:portrait){
  .app.ui-light .bg{
    background-image:url("../media/d6e2e6cef9b1f6fb.webp")!important;
    background-position:center center!important;
  }
}


/* ===== V4.12.13 · SCROLL + NITIDEZ DE CONTROLES ===== */
.canvas{
  flex:1!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding-right:7px!important;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--ui-accent) 55%,transparent) color-mix(in srgb,var(--ui-panel) 30%,transparent);
  overscroll-behavior:contain;
}
.canvas::-webkit-scrollbar{width:9px}
.canvas::-webkit-scrollbar-track{background:color-mix(in srgb,var(--ui-panel) 28%,transparent);border-radius:999px}
.canvas::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ui-accent) 48%,transparent);border-radius:999px;border:2px solid transparent;background-clip:padding-box}

/* La capa del workspace no debe rasterizar/desenfocar controles ni texto. */
.workspace::before{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* Los controles de navegación deben ser siempre nítidos. */
.btn,.segmentBtn,.budgetTab,.opsTab,.opBtn,.appearanceOption,
.toolbar button,.topline button{
  filter:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  text-rendering:geometricPrecision;
  -webkit-font-smoothing:antialiased;
}

/* El encabezado queda fijo mientras se desplaza el contenido largo. */
.topline{flex:0 0 72px!important}


/* ===== V4.12.13 · FULL SCREEN + CABECERAS LIMPIAS ===== */

/* La aplicación ocupa todo el área útil del navegador.
   No se centra dentro de un lienzo 1664x936 ni deja bandas laterales. */
html,body{
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}
#viewport{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  display:block!important;
  overflow:hidden!important;
  margin:0!important;
  padding:0!important;
}
.app{
  position:absolute!important;
  inset:0!important;
  left:0!important;
  top:0!important;
  width:100vw!important;
  height:100vh!important;
  margin:0!important;
  zoom:1!important;
  transform:none!important;
}

/* El encabezado reserva altura suficiente para título + descripción.
   Evita que el primer bloque de cada módulo "pise" el subtítulo. */
.topline{
  height:88px!important;
  min-height:88px!important;
}
.titleblock{
  min-width:0;
  padding-bottom:8px;
}
.titleblock h1{
  line-height:1.08!important;
}
.titleblock p{
  line-height:1.35!important;
  max-width:760px;
}

/* Las pantallas contextuales de perfiles arrancan con un poco de aire. */
#rolePortal{
  padding-top:8px!important;
}
#rolePortal .rolePortalHero{
  margin-top:0!important;
}

/* Evita que controles o tarjetas de la primera fila suban visualmente
   sobre la descripción de la pantalla. */
.canvas{
  position:relative!important;
}
.page.active{
  position:relative!important;
}

/* La barra superior no debe recortar sus propios controles. */
.top-actions{
  flex-shrink:0!important;
}


/* ===== V4.12.13 · FONDOS ACTUALIZADOS ===== */
.sigueBrandTextLight{
  display:none;
  align-items:center;
  gap:4px;
  line-height:1;
  white-space:nowrap;
  font-weight:900;
  letter-spacing:-.045em;
  font-size:20px;
}
.sigueBrandTextLight .sigueWord{
  color:#0B2D5B;
}
.sigueBrandTextLight .sigue360{
  color:#23D3FF;
}
.app.ui-light .sigueBrandLogo{
  display:none!important;
}
.app.ui-light .sigueBrandTextLight{
  display:inline-flex!important;
}
.app.ui-light .sigueBrandEyebrow{
  background:transparent!important;
  box-shadow:none!important;
}


/* ===== V5.4 · Optimización inteligente + legajos de cuadrilla ===== */
.ganttActionBar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}
.ganttActionBar .btn.active{border-color:rgba(35,211,255,.62);box-shadow:0 0 0 1px rgba(35,211,255,.14) inset;background:rgba(35,211,255,.08)}
.ganttEditorShell{display:none}.ganttEditorShell.open{display:block}
.aiOptimizeShell{display:none}.aiOptimizeShell.open{display:block}
.aiStrategyHero{border:1px solid rgba(82,229,165,.25);background:linear-gradient(135deg,rgba(82,229,165,.08),rgba(35,211,255,.035));border-radius:14px;padding:13px}
.aiStrategyHero h3{margin:0 0 5px;font-size:13px}.aiStrategyHero p{margin:0;color:var(--muted);font-size:9px;line-height:1.45}
.strategyFlow{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:10px}.strategyStep{border:1px solid rgba(255,255,255,.08);border-radius:9px;padding:8px;text-align:center;font-size:8px;color:#7695a6}.strategyStep b{display:block;font-size:9px;margin-bottom:3px;color:#9ab5c1}.strategyStep.done{border-color:rgba(82,229,165,.35);background:rgba(82,229,165,.06)}.strategyStep.active{border-color:rgba(35,211,255,.45);background:rgba(35,211,255,.07)}
.strategyMetrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}.strategyMetric{border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:9px;background:rgba(2,12,18,.35)}.strategyMetric small{display:block;color:var(--muted);font-size:8px}.strategyMetric b{display:block;font-size:14px;margin-top:4px}.strategyMetric span{display:block;color:#7897a6;font-size:8px;margin-top:3px}
.strategyStatus{border-radius:10px;padding:9px 10px;margin-top:9px;border:1px solid rgba(255,255,255,.08);font-size:9px}.strategyStatus.simulated{border-color:rgba(35,211,255,.30);background:rgba(35,211,255,.06)}.strategyStatus.pending{border-color:rgba(255,187,92,.33);background:rgba(255,187,92,.06)}.strategyStatus.ready{border-color:rgba(82,229,165,.33);background:rgba(82,229,165,.06)}.strategyStatus.active{border-color:rgba(82,229,165,.50);background:rgba(82,229,165,.10)}
.strategyResourceGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:9px}.strategyResource{border:1px solid rgba(255,255,255,.08);border-radius:9px;padding:8px;display:flex;justify-content:space-between;gap:10px;align-items:center}.strategyResource b{font-size:9px}.strategyResource small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.docOk{color:#78eeb2}.docBad{color:#ff918c}
.workerNameBtn{border:0;background:none;color:#e8fbff;padding:0;cursor:pointer;text-align:left;font-weight:700;font-size:9px}.workerNameBtn:hover{text-decoration:underline}.docPill{display:inline-block;font-size:7px;padding:2px 5px;border-radius:99px;margin-top:3px;border:1px solid rgba(255,255,255,.10)}.docPill.ok{color:#7ef0b4;border-color:rgba(82,229,165,.30);background:rgba(82,229,165,.06)}.docPill.bad{color:#ff9b95;border-color:rgba(255,116,109,.28);background:rgba(255,116,109,.06)}
.workerProfileGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:9px}.workerProfileStat{border:1px solid rgba(255,255,255,.08);border-radius:9px;padding:8px}.workerProfileStat small{display:block;color:var(--muted);font-size:8px}.workerProfileStat b{display:block;font-size:11px;margin-top:3px}.workerDocList{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:8px}.workerDoc{border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:7px;font-size:8px}.workerDoc b{display:block;margin-bottom:2px}
.taskAssignGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}.taskAssignPerson{border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:7px;font-size:8px}.taskAssignPerson label{display:flex;gap:6px;align-items:flex-start}.taskAssignPerson small{display:block;color:var(--muted);margin-top:2px}.performanceHint{margin-top:8px;padding:8px;border-left:2px solid rgba(35,211,255,.35);background:rgba(35,211,255,.035);font-size:8px;color:#8ba9b5}
.clientTrendCard{border:1px solid rgba(35,211,255,.18);border-radius:12px;padding:11px;background:rgba(35,211,255,.04);margin:10px 0}.clientTrendGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.clientTrendGrid div{border:1px solid rgba(255,255,255,.07);border-radius:8px;padding:8px}.clientTrendGrid small{display:block;font-size:8px;color:var(--muted)}.clientTrendGrid b{display:block;margin-top:3px;font-size:12px}.internalOnlyNotice{font-size:8px;color:#7895a4;margin-top:6px}
@media(max-width:900px){.strategyMetrics,.clientTrendGrid{grid-template-columns:repeat(2,1fr)}.strategyFlow{grid-template-columns:1fr}.strategyResourceGrid,.workerProfileGrid,.workerDocList,.taskAssignGrid{grid-template-columns:1fr}}

