:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f5f7fb;line-height:1.45}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid #d8deea;border-radius:10px;padding:.72rem .82rem;background:#fff;color:#172033;outline:none}input:focus,select:focus,textarea:focus{border-color:#2e66d1;box-shadow:0 0 0 3px rgba(46,102,209,.12)}textarea{min-height:90px;resize:vertical}label{display:block;font-size:.86rem;font-weight:700;margin:.7rem 0 .3rem}.shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#102348;color:#d9e6ff;padding:1.1rem;display:flex;flex-direction:column;gap:1rem}.brand{display:flex;align-items:center;gap:.7rem;padding:.35rem}.brand span:last-child{display:flex;flex-direction:column}.brand small{opacity:.7}.brand-mark{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#102348;font-weight:900;letter-spacing:.08em;border-radius:14px;padding:.65rem .8rem}.brand-mark.small{font-size:.75rem;padding:.48rem .56rem}.sidebar nav{display:flex;flex-direction:column;gap:.25rem;overflow:auto}.sidebar nav a{padding:.65rem .75rem;border-radius:9px;color:#d9e6ff}.sidebar nav a.active,.sidebar nav a:hover{background:rgba(255,255,255,.11);color:#fff}.nav-section{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;opacity:.55;margin:.8rem .7rem .2rem}.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.13);padding-top:.8rem}.sidebar-bottom small{opacity:.55}.user-name{font-weight:700;margin-bottom:.25rem}.content{padding:2rem;max-width:1500px;width:100%;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem}.page-head h1{margin:0;font-size:1.9rem}.page-head p{margin:.25rem 0 0;color:#69758b}.panel{background:#fff;border:1px solid #e6eaf2;border-radius:16px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 4px 20px rgba(18,36,72,.035)}.panel h2{margin:.1rem 0 .9rem;font-size:1.08rem}.panel-title{display:flex;justify-content:space-between;align-items:center}.stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.stat-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:1rem}.stat{background:#fff;border:1px solid #e6eaf2;border-radius:14px;padding:1rem}.stat span{display:block;color:#6d7890;font-size:.82rem}.stat strong{font-size:1.65rem}.progress{height:12px;background:#e9edf5;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,#245ac3,#4f82e7);border-radius:999px}.actions,.inline{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.actions{margin-top:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid #d6dce8;background:#fff;color:#24314a;border-radius:9px;padding:.62rem .88rem;font-weight:700;cursor:pointer}.btn:hover{filter:brightness(.98)}.btn.primary{background:#245ac3;border-color:#245ac3;color:#fff}.btn.danger{background:#b93838;border-color:#b93838;color:#fff}.btn.small{padding:.38rem .58rem;font-size:.8rem}.btn.wide{width:100%;margin-top:1rem}.btn:disabled{opacity:.45;cursor:not-allowed}.link-button{border:0;background:transparent;color:inherit;padding:.2rem 0;text-decoration:underline;cursor:pointer}.toolbar{display:flex;gap:.65rem;margin-bottom:1rem}.toolbar input{max-width:600px}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;min-width:760px}.table-wrap th,.table-wrap td{text-align:left;padding:.75rem .65rem;border-bottom:1px solid #edf0f5;vertical-align:top}.table-wrap th{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:#69758b}.details{max-width:420px;white-space:normal;word-break:break-word}.badge{display:inline-flex;align-items:center;border-radius:999px;background:#edf3ff;color:#245ac3;padding:.26rem .55rem;font-size:.76rem;font-weight:800}.empty,.page-loading{padding:2rem;text-align:center;color:#6d7890}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}.form-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:end}.span-2{grid-column:1/-1}.align-end{align-self:end}.check{display:flex;align-items:center;gap:.55rem;font-weight:600}.check input{width:auto}.alert{border-radius:10px;padding:.8rem 1rem;margin:.8rem 0}.alert.danger{background:#fff0f0;color:#8f2828;border:1px solid #ffd3d3}.alert.success{background:#eefaf2;color:#24643a;border:1px solid #cdeed8}.alert.warning{background:#fff8e8;color:#805b12;border:1px solid #f2d58a}.notice{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.1rem 1rem;padding:.8rem;border-bottom:1px solid #edf0f5}.notice strong,.notice span{grid-column:1}.notice small{grid-column:2;grid-row:1}.notice.read{opacity:.65}.asset-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.asset-card{display:flex;justify-content:space-between;gap:1rem;background:#fff;border:1px solid #e6eaf2;border-left:5px solid #d9dfeb;border-radius:14px;padding:1rem}.asset-card.done{border-left-color:#38a169}.asset-card h3{margin:.5rem 0 .25rem}.asset-card p{margin:.18rem 0;color:#536077}.asset-status{font-weight:800;white-space:nowrap}.equipment-hero{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-bottom:1rem}.equipment-hero>div{background:#102348;color:#fff;border-radius:14px;padding:1rem}.equipment-hero small{display:block;opacity:.65}.equipment-hero strong{display:block;margin-top:.25rem;font-size:1.1rem}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.action-card{background:#fff;border:1px solid #e6eaf2;border-radius:16px;padding:1.3rem;display:flex;flex-direction:column;gap:.35rem}.action-card strong{font-size:1.15rem;color:#245ac3}.action-card span{color:#69758b}.muted{color:#69758b}.auth-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#102348 0,#1c4eaa 50%,#eef3ff 50%,#f8faff 100%);padding:1rem}.auth-card{width:min(430px,100%);background:#fff;border-radius:20px;padding:2rem;box-shadow:0 30px 80px rgba(8,25,60,.28)}.auth-card h1{font-size:1.55rem;margin:1rem 0 .2rem}.auth-card .brand-mark{background:#102348;color:#fff}.field-validation-error{color:#a92f2f;font-size:.8rem}.validation-summary-valid{display:none}@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(3,1fr)}.card-grid.three{grid-template-columns:1fr}}@media(max-width:820px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar nav{display:grid;grid-template-columns:repeat(2,1fr)}.sidebar-bottom{display:none}.content{padding:1rem}.stat-grid,.stat-grid.compact,.asset-cards,.equipment-hero,.card-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}}@media(max-width:520px){.stat-grid,.stat-grid.compact,.asset-cards,.equipment-hero,.card-grid{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.page-head{flex-direction:column}.toolbar{flex-direction:column}.sidebar nav{grid-template-columns:1fr 1fr}.content{padding:.75rem}}

/* Gestión de usuarios */
.role-grid{display:flex;flex-wrap:wrap;gap:.65rem 1rem;margin-top:.35rem}.role-grid .check{margin:0}.page-head.compact{margin-bottom:.75rem}.actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}

/* SIVI v15 - Campañas y flujo de validación */
.badge.subtle{background:#f2f4f8;color:#58657a}.gap-sm{gap:.35rem}.campaign-check{margin:1rem 0}.department-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem .8rem;background:#f8faff;border:1px solid #e6eaf2;border-radius:12px;padding:1rem;margin:.8rem 0 1rem}.campaign-list{display:grid;gap:1rem}.campaign-card,.campaign-option{border:1px solid #e2e7f0;border-radius:15px;padding:1rem;background:#fbfcff}.campaign-card-head{display:flex;justify-content:space-between;gap:1rem}.campaign-card h3,.campaign-option h3{margin:.55rem 0 .2rem}.campaign-card p,.campaign-option p{margin:.25rem 0}.campaign-actions{display:flex;align-items:flex-start;gap:.5rem}.campaign-stats{margin-bottom:.45rem}.campaign-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.campaign-instructions{background:#eef4ff;border-left:4px solid #245ac3;border-radius:8px;padding:.65rem .8rem;margin:.8rem 0;color:#3d4a60}.workflow-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-bottom:1rem}.workflow-step{display:flex;align-items:center;gap:.75rem;border:1px solid #e1e6ef;background:#fff;border-radius:14px;padding:.85rem 1rem}.workflow-step>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e9edf5;font-weight:900}.workflow-step div{display:flex;flex-direction:column}.workflow-step small{color:#6d7890}.workflow-step.complete{border-color:#bfe3ca}.workflow-step.complete>span{background:#daf4e2;color:#25663a}.workflow-step.active{border-color:#9ab8ef;box-shadow:0 0 0 3px rgba(46,102,209,.08)}.workflow-step.active>span{background:#245ac3;color:#fff}.workflow-step.locked{opacity:.58}.quality-grid .stat strong{font-size:1.25rem}.gate-panel{text-align:center;padding:2rem}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.detail-grid>div{border:1px solid #e8ecf3;border-radius:11px;padding:.75rem;background:#fafcff}.detail-grid small{display:block;color:#6d7890}.detail-grid strong{display:block;margin-top:.15rem}.declaration-box{background:#f5f8ff;border:1px solid #dce7fb;border-radius:12px;padding:.8rem;margin-top:1rem}.validation-step{position:relative;padding-left:1.25rem}.step-number{position:absolute;right:1rem;top:1rem;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#102348;color:#fff;font-weight:900}.verification-value{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#f6f8fc;border:1px solid #e3e8f1;border-radius:10px;padding:.75rem .9rem;margin:.6rem 0}.verification-value span{color:#69758b}.verification-value strong{font-size:1.05rem}.equipment-hero.four{grid-template-columns:repeat(4,1fr)}.asset-card.issue{border-left-color:#d69e2e}.correction-fields{margin-top:.7rem;padding-top:.5rem;border-top:1px solid #edf0f5}.validation-nav{justify-content:flex-end}.validation-nav .btn:first-child{margin-right:auto}
@media(max-width:1000px){.department-picker{grid-template-columns:repeat(2,1fr)}.campaign-option-grid,.workflow-steps,.equipment-hero.four{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.department-picker,.campaign-option-grid,.workflow-steps,.equipment-hero.four,.detail-grid{grid-template-columns:1fr}.campaign-card-head{flex-direction:column}.campaign-actions{flex-wrap:wrap}}


/* SIVI v16 - Afinación UX de formularios de validación */
.validation-page-head .eyebrow,.eyebrow{display:block;font-size:.72rem;font-weight:900;letter-spacing:.11em;color:#245ac3;margin-bottom:.3rem}
.ux-intro{display:flex;gap:1rem;align-items:flex-start;background:#eef4ff;border:1px solid #d8e5ff;border-radius:15px;padding:1rem 1.15rem;margin-bottom:1rem}
.ux-intro-icon,.gate-icon{flex:0 0 auto;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#245ac3;color:#fff;font-weight:900}
.ux-intro strong{font-size:1rem}.ux-intro p{margin:.2rem 0 0;color:#56647b}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.9rem}
.section-heading h2{margin:.15rem 0 .15rem}.section-heading p{margin:0;color:#69758b}
.section-kicker{font-size:.7rem;font-weight:900;letter-spacing:.1em;color:#6b7890}
.reference-badge{display:inline-flex;white-space:nowrap;background:#f1f4f8;border:1px solid #e1e6ed;color:#69758b;border-radius:999px;padding:.35rem .65rem;font-size:.75rem;font-weight:800}
.reference-panel{background:#fcfdff}.site-reference-grid>div,.asset-reference .detail-grid>div{background:#f8faff}
.ux-step{padding:1.15rem 1.2rem}.ux-step-head{display:flex;align-items:flex-start;gap:.8rem;margin-bottom:.85rem}
.ux-step-head h2{margin:0 0 .15rem}.ux-step-head p{margin:0;color:#69758b}
.ux-step-number{width:32px;height:32px;flex:0 0 32px;border-radius:50%;display:grid;place-items:center;background:#102348;color:#fff;font-weight:900}
.choice-select{min-height:46px;background:#fff;font-weight:600}
.choice-select:invalid{color:#69758b}
.conditional-box{margin-top:.8rem;background:#f7f9fc;border:1px solid #e2e8f1;border-radius:12px;padding:.9rem}
.conditional-box p{margin:.2rem 0 .7rem;color:#68758a}
.warning-box{background:#fff9ec;border-color:#f1d99e}
.inline-help{margin:.7rem 0;padding:.7rem .8rem;border-radius:9px;background:#f4f7fb;color:#59667b;font-size:.86rem}
.verification-value.prominent{border-left:4px solid #245ac3}
.optional-label{display:inline-flex;background:#f0f2f6;color:#758096;border-radius:999px;padding:.1rem .4rem;font-size:.68rem;font-weight:800;vertical-align:middle}
.declaration-check{display:flex;align-items:flex-start;gap:.7rem}.declaration-check input{margin-top:.2rem}.declaration-check span{display:block}.declaration-check strong{display:block;margin-bottom:.1rem}
.sticky-actions{position:sticky;bottom:.6rem;z-index:8;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border:1px solid #dde4ef;box-shadow:0 10px 35px rgba(16,35,72,.12);border-radius:14px;padding:.8rem 1rem;margin-top:1rem}
.sticky-actions small{display:block;color:#69758b}.action-primary{min-height:44px}
.ux-error{position:sticky;top:.5rem;z-index:9;box-shadow:0 8px 24px rgba(143,40,40,.08)}
.progress-badge{min-width:62px;text-align:center;background:#eef4ff;color:#245ac3;border-radius:999px;padding:.45rem .7rem;font-weight:900}
.progress-percent{font-size:1.35rem;color:#245ac3}
.status-stat.ok{border-color:#cbe8d4;background:#f6fcf8}.status-stat.pending{border-color:#f0dfb0;background:#fffcf3}.status-stat.issue{border-color:#f0d5a8;background:#fff9ee}
.journey-actions .btn.primary{margin-left:auto}.submit-help{margin-top:.7rem}
.gate-panel .gate-icon{margin:0 auto .7rem}.gate-panel h2{margin:.2rem 0}.gate-panel p{margin:.3rem auto 1rem;max-width:650px}
.asset-toolbar{display:grid;gap:.75rem;margin:1rem 0}
.asset-search{position:relative}.asset-search span{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:#738097;font-size:1.2rem}.asset-search input{padding-left:2.3rem}
.filter-pills{display:flex;gap:.45rem;flex-wrap:wrap}
.filter-pill{border:1px solid #dce2ec;background:#fff;color:#536077;border-radius:999px;padding:.45rem .72rem;font-weight:800;cursor:pointer}
.filter-pill span{display:inline-flex;margin-left:.25rem;background:#eef1f5;border-radius:999px;padding:.05rem .35rem;font-size:.72rem}
.filter-pill.active{background:#102348;border-color:#102348;color:#fff}.filter-pill.active span{background:rgba(255,255,255,.17)}
.asset-card.interactive{transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.asset-card.interactive:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(18,36,72,.08);border-color:#cdd8ea}
.asset-main{min-width:0}.asset-identifiers{display:flex;gap:.8rem;flex-wrap:wrap;color:#637087;font-size:.86rem}.asset-identifiers strong{color:#24314a}
.asset-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:.8rem}.asset-action{font-size:.82rem;font-weight:800;color:#245ac3;white-space:nowrap}
.asset-status{padding:.25rem .5rem;border-radius:999px;font-size:.75rem}.status-pending{background:#f2f4f7;color:#59667b}.status-done{background:#e9f8ee;color:#277242}.status-issue{background:#fff2d9;color:#8a5a00}
.filtered-empty{background:#fafbfc;border:1px dashed #d8deea;border-radius:12px}
.sticky-asset-summary{position:sticky;top:.5rem;z-index:7;box-shadow:0 8px 26px rgba(16,35,72,.09)}
.option-check{display:flex;align-items:flex-start;gap:.65rem;border:1px solid #e1e6ef;border-radius:11px;padding:.75rem .85rem;background:#fbfcfe}.option-check input{margin-top:.2rem}.option-check span{display:flex;flex-direction:column}.option-check small{font-weight:500;color:#69758b}
.suggestion-btn{margin-top:.65rem}.contextual-panel{border-left:4px solid #d69e2e}.notes-panel{margin-bottom:2rem}.modern-nav{align-items:center}.modern-nav .btn:first-child{margin-right:auto}
@media(max-width:820px){.sticky-actions{position:static;flex-direction:column;align-items:stretch}.sticky-actions .btn{width:100%}.asset-side{align-items:flex-start}.asset-card.interactive{flex-direction:column}.journey-actions .btn.primary{margin-left:0}.sticky-asset-summary{position:static}}


/* SIVI v18 - Consolidación UX y operación */
.brand-image{display:flex;min-height:60px;padding:.25rem .35rem}.brand-image img{display:block;width:100%;max-width:196px;height:auto;object-fit:contain;object-position:left center}.connection-status{display:flex;align-items:center;gap:.45rem;margin-bottom:.65rem;font-size:.77rem;font-weight:800}.connection-dot{width:9px;height:9px;border-radius:50%;background:#45c47a;box-shadow:0 0 0 3px rgba(69,196,122,.13)}.connection-status.offline{color:#ffd6d6}.connection-status.offline .connection-dot{background:#ff7a7a;box-shadow:0 0 0 3px rgba(255,122,122,.14)}
.auth-card-brand{width:min(460px,100%);padding:2.2rem}.auth-logo{display:block;width:min(315px,90%);height:auto;margin:0 auto 1.35rem}.auth-heading{text-align:center;margin-bottom:1.15rem}.auth-heading h1{margin:.1rem 0 .25rem}.auth-heading p{margin:0;color:#69758b}.auth-remember{margin-top:.85rem}.auth-version{text-align:center;margin-top:1rem;color:#8993a6;font-size:.75rem}.auth-submit{min-height:46px}
.required-label{display:inline-flex;margin-left:.35rem;padding:.08rem .4rem;border-radius:999px;background:#eaf1ff;color:#245ac3;font-size:.67rem;font-weight:800;vertical-align:middle}.field-help{margin-top:.35rem;color:#69758b;font-size:.8rem;line-height:1.45}.short-answer-select{max-width:260px}.short-answer-select option{font-weight:700}
.validation-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:1rem 0}.validation-review-grid>div{padding:.8rem;border:1px solid #e4e9f1;border-radius:12px;background:#fafcff}.validation-review-grid span{display:block;color:#69758b;font-size:.78rem}.validation-review-grid strong{display:block;margin-top:.12rem;font-size:1.08rem}.validation-result{border-radius:14px;padding:1rem;margin-top:1rem;border:1px solid #dfe5ee}.validation-result.ok{background:#f3fbf6;border-color:#cbe8d4}.validation-result.issue{background:#fff9ec;border-color:#efd69c}.validation-result strong{display:block}.validation-result small{display:block;margin-top:.2rem;color:#667389}.submit-confirmation{border:2px solid #cbd8f0;box-shadow:0 12px 32px rgba(16,35,72,.08)}
.draft-state{display:flex;align-items:center;gap:.4rem;color:#627087;font-size:.78rem}.draft-state.saved{color:#287447}.draft-state.saving{color:#8a6415}.draft-state.error{color:#a33c3c}.draft-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.edit-lock{display:flex;align-items:flex-start;gap:.65rem;border:1px solid #efd2d2;background:#fff6f6;color:#873232;border-radius:12px;padding:.8rem 1rem;margin-bottom:1rem}.edit-lock strong{display:block}.edit-lock p{margin:.1rem 0 0}.validation-fieldset{border:0;padding:0;margin:0;min-width:0}.validation-fieldset:disabled{opacity:.7}.summary-card{border:1px solid #dce5f5;background:#f8fbff;border-radius:14px;padding:1rem}.summary-card h3{margin:.1rem 0 .6rem}.summary-line{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;border-bottom:1px solid #e8edf5}.summary-line:last-child{border-bottom:0}.summary-line span{color:#667389}.summary-line strong{text-align:right}.history-list{display:grid;gap:.6rem}.history-row{display:grid;grid-template-columns:minmax(140px,.7fr) minmax(0,2fr) minmax(120px,.6fr);gap:.8rem;align-items:start;border-bottom:1px solid #edf0f5;padding:.7rem 0}.history-row:last-child{border-bottom:0}.history-row small{display:block;color:#768299}.history-result{font-weight:800}.history-result.issue{color:#966000}.history-result.ok{color:#267342}
.attention-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.attention-card{appearance:none;text-align:left;border:1px solid #e1e6ef;background:#fff;border-radius:14px;padding:1rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;color:#172033}.attention-card:hover{transform:translateY(-1px);border-color:#c9d5e8;box-shadow:0 8px 22px rgba(18,36,72,.07)}.attention-card span{display:block;color:#69758b;font-size:.8rem}.attention-card strong{display:block;margin-top:.15rem;font-size:1.55rem}.attention-card.total{background:#102348;color:#fff;border-color:#102348}.attention-card.total span{color:#d8e4f9}.attention-list{display:grid}.attention-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(210px,1.2fr) minmax(220px,1.6fr) 145px auto;gap:.8rem;align-items:center;padding:.8rem 0;border-bottom:1px solid #edf0f5}.attention-row:last-child{border-bottom:0}.attention-row>div{min-width:0}.attention-row span:not(.badge):not(.asset-action){display:block;color:#6c7890;font-size:.8rem}.attention-type{display:grid;gap:.3rem}.attention-detail{color:#445168}.attention-date{color:#788398;font-size:.78rem;white-space:nowrap}
.review-actions{display:grid;gap:.5rem;min-width:240px}.review-actions input{min-width:220px}.additional-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.additional-summary>div{padding:.7rem;background:#f8faff;border:1px solid #e6ebf3;border-radius:10px}.additional-summary small{display:block;color:#6d7890}.additional-mini-list{display:grid;gap:.55rem;margin-top:.8rem}.additional-mini-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:1px solid #e5eaf2;border-radius:11px;padding:.7rem .8rem;background:#fff}.additional-mini-row small{display:block;color:#758096}.duplicate-check{margin-top:.5rem;border-radius:10px;padding:.65rem .75rem;font-size:.84rem}.duplicate-check.ok{background:#f1faf4;border:1px solid #cfe9d7;color:#2a7041}.duplicate-check.issue{background:#fff6e7;border:1px solid #edd39a;color:#845b0d}
.semaphore-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.semaphore-card{appearance:none;text-align:left;border:1px solid #e4e9f1;background:#fff;border-radius:12px;padding:.8rem;cursor:pointer;color:#172033}.semaphore-card span{display:block;color:#6c7890;font-size:.78rem}.semaphore-card strong{display:block;font-size:1.25rem}.semaphore-card.ok{background:#f5fcf7;border-color:#cae8d4}.semaphore-card.pending{background:#fffcf3;border-color:#eddcab}.semaphore-card.issue{background:#fff8eb;border-color:#efd4a0}.semaphore-card:disabled{cursor:default}
.offline-body{min-height:100vh;display:grid;place-items:center;background:#f5f7fb;padding:1rem}.offline-card{width:min(480px,100%);text-align:center;background:#fff;border:1px solid #e3e8f0;border-radius:20px;padding:2rem;box-shadow:0 18px 50px rgba(16,35,72,.10)}.offline-card img{width:120px;max-width:40%;height:auto;margin-bottom:.8rem}.offline-card h1{margin:.2rem 0 .5rem}.offline-card p{color:#667389}.offline-card .btn{margin-top:.6rem}
.mobile-action-bar{display:flex;gap:.6rem;align-items:center;justify-content:flex-end}.inline-link{margin-left:.25rem;color:#245ac3;font-weight:800}.session-additional-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.condition-chip{display:inline-flex;border-radius:999px;padding:.2rem .5rem;background:#eef2f8;color:#536077;font-size:.72rem;font-weight:800}
@media(max-width:1100px){.attention-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attention-row{grid-template-columns:1fr 1fr}.attention-detail,.attention-date,.attention-row .asset-action{grid-column:auto}.semaphore-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.brand-image{justify-content:center}.brand-image img{max-width:230px}.validation-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.history-row{grid-template-columns:1fr}.attention-row{grid-template-columns:1fr}.review-actions{min-width:0}.review-actions input{min-width:0}.additional-summary{grid-template-columns:1fr}.semaphore-grid{grid-template-columns:1fr 1fr}.mobile-action-bar{position:sticky;bottom:.5rem;z-index:8;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border:1px solid #dfe5ef;border-radius:13px;padding:.6rem;box-shadow:0 10px 30px rgba(16,35,72,.12)}.mobile-action-bar .btn{flex:1}}
@media(max-width:520px){.auth-card-brand{padding:1.4rem}.auth-logo{width:min(280px,95%)}.attention-grid,.validation-review-grid,.semaphore-grid{grid-template-columns:1fr}.summary-line{align-items:flex-start;flex-direction:column;gap:.15rem}.summary-line strong{text-align:left}.additional-mini-row{align-items:flex-start;flex-direction:column}.sticky-actions,.modern-nav{gap:.45rem}.modern-nav .btn{width:100%}.equipment-hero.four{grid-template-columns:1fr 1fr}.short-answer-select{max-width:none}}
/* SIVI v18 - detalles de componentes */
.quality-panel,.assets-panel,.additional-session-panel{overflow:hidden}.assets-heading{align-items:flex-start}.asset-filter-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.category-filter{max-width:260px}.current-step{border-color:#cad8ef;box-shadow:0 8px 24px rgba(36,90,195,.05)}.absence-flow{margin-top:1rem}.conditional-fields{margin-top:.5rem}.summary-step{border-top:4px solid #245ac3}.final-notes{margin-top:.75rem}.lock-alert{display:flex;gap:.45rem;align-items:flex-start}.compact-alert{padding:.6rem .75rem;font-size:.84rem}.result-card{grid-column:1/-1}.result-card.result-pending{background:#fff9ec;border-color:#efd69c}.mini-list{display:grid;gap:.55rem;margin-top:.8rem}.mini-list-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid #e5eaf2;border-radius:11px;padding:.75rem .85rem;background:#fff}.mini-list-row>div{min-width:0}.mini-list-row span:not(.badge){display:block;color:#758096;font-size:.78rem}.history-panel summary{cursor:pointer;font-weight:800;color:#34415a}.history-entry{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid #edf0f5}.history-entry:last-child{border-bottom:0}.history-entry>div{display:grid;gap:.1rem}.history-entry span{color:#738097;font-size:.8rem}.small-empty{padding:1rem}.connection-status.online{color:#cdebd8}.short-answer{max-width:240px}
@media(max-width:820px){.asset-filter-row{align-items:stretch;flex-direction:column}.category-filter{max-width:none}.history-entry,.mini-list-row{flex-direction:column;align-items:flex-start}.short-answer{max-width:none}}

/* SIVI v18.10 - Perfiles, permisos y cascadas territoriales/CAN */
.form-section-title{margin:1.25rem 0 .55rem;padding-top:.95rem;border-top:1px solid #e8ecf3;font-size:.83rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#536077}
.profile-list{display:grid;gap:.55rem}.profile-row{width:100%;appearance:none;border:1px solid #e2e7f0;background:#fff;border-radius:13px;padding:.85rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;text-align:left;cursor:pointer;color:#172033}.profile-row:hover{border-color:#bdccec;background:#f9fbff}.profile-row.selected{border-color:#6f98e6;background:#f3f7ff;box-shadow:0 0 0 3px rgba(36,90,195,.07)}.profile-row strong,.profile-row small{display:block}.profile-row small{margin-top:.15rem;color:#748096}.profile-meta{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.badge.success{background:#e9f8ee;color:#24703c}.badge.warning{background:#fff5dd;color:#805a0e}
.permission-group{margin-top:1rem;border:1px solid #e5eaf2;border-radius:13px;overflow:hidden}.permission-group h3{margin:0;padding:.7rem .9rem;background:#f6f8fc;color:#43516a;font-size:.86rem}.permission-matrix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid #e5eaf2}.permission-option{display:flex;align-items:flex-start;gap:.65rem;margin:0;padding:.8rem .9rem;border-bottom:1px solid #edf0f5}.permission-option:nth-child(odd){border-right:1px solid #edf0f5}.permission-option input{width:auto;margin-top:.2rem}.permission-option strong,.permission-option small{display:block}.permission-option small{color:#748096;margin-top:.1rem;font-weight:400}.effective-permissions{margin-top:1rem;background:#f8faff;border:1px solid #dfe7f5;border-radius:13px;padding:.9rem}.permission-chip-grid{display:flex;flex-wrap:wrap;gap:.4rem;margin:.55rem 0}.permission-chip{display:inline-flex;padding:.27rem .52rem;border-radius:999px;background:#eaf1ff;color:#245ac3;font-size:.75rem;font-weight:800}
.cascade-selector{display:grid;gap:.8rem}.choice-select:disabled,.cascade-selector select:disabled,.can-organization-selector select:disabled{background:#f3f5f8;color:#8b95a5;cursor:not-allowed}.conditional-box{margin-top:.8rem;border:1px solid #dce5f5;background:#f8fbff;border-radius:13px;padding:1rem}.can-organization-box{border-left:4px solid #245ac3}.section-heading.compact{margin-bottom:.5rem}.section-heading.compact h3{margin:.1rem 0 .2rem}.catalog-selected-site{margin-top:1rem}.catalog-selected-site>div{background:#f8fbff}.role-grid{padding:.65rem 0}.role-grid .check{border:1px solid #e4e9f1;border-radius:10px;padding:.55rem .7rem;background:#fff}.role-grid .check:has(input:checked){border-color:#9bb8eb;background:#f4f8ff}
@media(max-width:820px){.permission-matrix{grid-template-columns:1fr}.permission-option:nth-child(odd){border-right:0}.profile-row{align-items:flex-start;flex-direction:column}.profile-meta{justify-content:flex-start}}



/* SIVI VALIDACION 4 COLUMNAS 1.0.0 - INICIO */

/*
 * Distribucion adaptativa:
 * >=1500px   4 columnas
 * 1180-1499  3 columnas
 * 760-1179   2 columnas
 * <760       1 columna
 */
.validation-form-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 1rem 1.05rem !important;
    width: 100%;
    align-items: start;
}

.validation-form-grid > * {
    min-width: 0;
}

/* Cada control conserva jerarquia visual. */
.validation-form-grid > div {
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

/*
 * Elementos que necesitan lectura amplia.
 * Permanecen a todo lo ancho aunque existan 4 columnas.
 */
.validation-form-grid > div:has(textarea),
.validation-form-grid > div:has(.alert),
.validation-form-grid > div:has(.field-error),
.validation-form-grid > div:has(.validation-summary),
.validation-form-grid > div:has(.summary),
.validation-form-grid > .validation-conditional,
.validation-form-grid > .conditional-box,
.validation-form-grid > fieldset,
.validation-form-grid > section {
    grid-column: 1 / -1 !important;
}

/*
 * Clases opcionales para controlar ancho desde Razor cuando haga falta:
 * span-2 = dos columnas
 * span-3 = tres columnas
 * span-full = todas
 */
.validation-form-grid .span-2 {
    grid-column: span 2;
}

.validation-form-grid .span-3 {
    grid-column: span 3;
}

.validation-form-grid .span-full {
    grid-column: 1 / -1 !important;
}

/* Información de referencia y resúmenes compactos también aprovechan 4 columnas. */
.validation-reference-grid,
.validation-summary-grid,
.asset-reference-grid,
.asset-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    width: 100%;
}

/* Controles cómodos y consistentes. */
.validation-form-grid label {
    margin: 0;
    font-size: .9rem;
    font-weight: 650;
    line-height: 1.3;
}

.validation-form-grid input:not([type="checkbox"]):not([type="radio"]),
.validation-form-grid select,
.validation-form-grid textarea {
    width: 100%;
    min-height: 44px;
    padding: .62rem .72rem;
    border-radius: 9px;
    font-size: .94rem;
    line-height: 1.35;
}

.validation-form-grid textarea {
    min-height: 104px;
    resize: vertical;
}

.validation-form-grid input:focus,
.validation-form-grid select:focus,
.validation-form-grid textarea:focus {
    outline: 3px solid color-mix(in srgb, var(--primary, #315da8) 20%, transparent);
    outline-offset: 1px;
}

/* Bloques condicionales bien separados. */
.validation-conditional,
.validation-form-grid .conditional-box {
    grid-column: 1 / -1 !important;
    padding: 1rem 1.05rem;
    border-radius: 14px;
}

/* Acciones. */
.validation-actions {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem;
    margin-top: 1rem;
}

.validation-actions button,
.validation-actions .btn,
.validation-actions a.btn {
    min-height: 44px;
    min-width: 128px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.validation-actions > :first-child {
    margin-right: auto;
}

/* DESKTOP / PORTATIL MEDIO: 3 columnas */
@media (max-width: 1499px) {
    .validation-form-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .validation-reference-grid,
    .validation-summary-grid,
    .asset-reference-grid,
    .asset-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .validation-form-grid .span-3 {
        grid-column: 1 / -1;
    }
}

/* TABLET / PORTATIL PEQUEÑO: 2 columnas */
@media (max-width: 1179px) {
    .validation-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: .9rem !important;
    }

    .validation-reference-grid,
    .validation-summary-grid,
    .asset-reference-grid,
    .asset-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .validation-form-grid .span-2,
    .validation-form-grid .span-3 {
        grid-column: 1 / -1;
    }
}

/* MOVIL: 1 columna */
@media (max-width: 759px) {
    .validation-form-grid,
    .validation-reference-grid,
    .validation-summary-grid,
    .asset-reference-grid,
    .asset-summary-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: .78rem !important;
    }

    .validation-form-grid > *,
    .validation-form-grid .span-2,
    .validation-form-grid .span-3,
    .validation-form-grid .span-full {
        grid-column: 1 / -1 !important;
    }

    .validation-actions {
        display: grid !important;
        grid-template-columns: 1fr;
        width: 100%;
        gap: .6rem;
    }

    .validation-actions > * {
        width: 100%;
        margin: 0 !important;
    }

    .validation-actions button,
    .validation-actions .btn,
    .validation-actions a.btn {
        width: 100%;
        min-height: 48px;
    }

    .validation-form-grid input:not([type="checkbox"]):not([type="radio"]),
    .validation-form-grid select,
    .validation-form-grid textarea {
        font-size: 16px;
    }
}

/* SIVI VALIDACION 4 COLUMNAS 1.0.0 - FIN */

/* SIVI ACTIVOS SEDE 4 COLUMNAS 1.0.0 - INICIO */

/*
 * ACTIVO DE LA SEDE - PREGUNTAS
 * Pantalla grande: 4 columnas
 * Desktop/portatil: 3 columnas
 * Tablet: 2 columnas
 * Movil: 1 columna
 */
.asset-question-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 1rem 1.1rem !important;
    width: 100%;
    align-items: start;
}

.asset-question-grid > * {
    min-width: 0;
}

/* Los controles ocupan todo el ancho de su celda. */
.asset-question-grid input:not([type="checkbox"]):not([type="radio"]),
.asset-question-grid select,
.asset-question-grid textarea {
    width: 100%;
    box-sizing: border-box;
}

/* Preguntas largas y bloques que necesitan lectura completa. */
.asset-question-grid > .span-full,
.asset-question-grid > .full-width,
.asset-question-grid > .conditional-box,
.asset-question-grid > .validation-conditional,
.asset-question-grid > .alert,
.asset-question-grid > .inline-help,
.asset-question-grid > .validation-summary,
.asset-question-grid > div:has(textarea),
.asset-question-grid > fieldset,
.asset-question-grid > section {
    grid-column: 1 / -1 !important;
}

/* Clases auxiliares para usos futuros. */
.asset-question-grid .span-2 {
    grid-column: span 2;
}

.asset-question-grid .span-3 {
    grid-column: span 3;
}

.asset-question-grid .span-full {
    grid-column: 1 / -1 !important;
}

/* Etiquetas y controles compactos para aprovechar el ancho. */
.asset-question-grid label {
    display: block;
    margin-bottom: .35rem;
    line-height: 1.25;
}

.asset-question-grid input:not([type="checkbox"]):not([type="radio"]),
.asset-question-grid select {
    min-height: 44px;
}

.asset-question-grid textarea {
    min-height: 100px;
    resize: vertical;
}

/* Acciones del activo. */
.asset-validation-actions {
    display: flex !important;
    flex-wrap: wrap;
    gap: .65rem;
    align-items: center;
    justify-content: flex-end;
}

.asset-validation-actions button,
.asset-validation-actions .btn {
    min-height: 44px;
}

/* Desktop / portatil medio: 3 columnas */
@media (max-width: 1499px) {
    .asset-question-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .asset-question-grid .span-3 {
        grid-column: 1 / -1;
    }
}

/* Tablet / portatil pequeno: 2 columnas */
@media (max-width: 1179px) {
    .asset-question-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: .9rem !important;
    }

    .asset-question-grid .span-2,
    .asset-question-grid .span-3 {
        grid-column: 1 / -1;
    }
}

/* Movil: 1 columna */
@media (max-width: 759px) {
    .asset-question-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: .8rem !important;
    }

    .asset-question-grid > *,
    .asset-question-grid .span-2,
    .asset-question-grid .span-3,
    .asset-question-grid .span-full {
        grid-column: 1 / -1 !important;
    }

    .asset-question-grid input:not([type="checkbox"]):not([type="radio"]),
    .asset-question-grid select,
    .asset-question-grid textarea {
        font-size: 16px;
    }

    .asset-validation-actions {
        display: grid !important;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .asset-validation-actions > *,
    .asset-validation-actions button,
    .asset-validation-actions .btn {
        width: 100%;
        margin: 0 !important;
    }
}

/* SIVI ACTIVOS SEDE 4 COLUMNAS 1.0.0 - FIN */

/* SIVI VERSION GLOBAL PRODUCCION FINAL - INICIO */
.sivi-version-inline {
    display: block;
    margin-top: .65rem;
    text-align: center;
    font-size: .76rem;
    line-height: 1.3;
    font-weight: 600;
    opacity: .75;
}

.auth-version {
    font-weight: 600;
}

@media (max-width: 759px) {
    .sivi-version-inline {
        font-size: .73rem;
    }
}
/* SIVI VERSION GLOBAL PRODUCCION FINAL - FIN */

/* SIVI ERROR UX 1.0.0 - INICIO */
.sivi-error-body {
    min-height: 100vh;
    margin: 0;
    background: #f3f6fb;
    color: #13233f;
}

.sivi-error-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 2rem 1rem;
    box-sizing: border-box;
}

.sivi-error-card {
    width: min(760px, 100%);
    background: #fff;
    border: 1px solid #dde5f1;
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 18px 45px rgba(24, 48, 84, .10);
}

.sivi-error-brand {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    margin-bottom: 1.5rem;
}

.sivi-error-brand strong {
    font-size: 2rem;
    letter-spacing: .04em;
    color: #153d7a;
}

.sivi-error-brand span {
    color: #65758d;
    font-size: .9rem;
}

.sivi-error-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff3d7;
    border: 1px solid #f1d48e;
    color: #8a6200;
    font-size: 1.7rem;
    font-weight: 800;
    margin-bottom: 1rem;
}

.sivi-error-card h1 {
    margin: 0 0 .6rem;
    font-size: clamp(1.55rem, 3vw, 2rem);
}

.sivi-error-message {
    margin: 0 0 1.5rem;
    color: #526278;
    line-height: 1.6;
}

.sivi-error-reference {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin: 1.25rem 0;
}

.sivi-error-reference > div {
    padding: .85rem 1rem;
    border: 1px solid #dde5f1;
    border-radius: 12px;
    background: #f8faff;
    min-width: 0;
}

.sivi-error-reference span {
    display: block;
    margin-bottom: .25rem;
    color: #718096;
    font-size: .78rem;
}

.sivi-error-reference strong {
    display: block;
    overflow-wrap: anywhere;
}

.sivi-error-help {
    margin: 1.25rem 0;
    padding: 1rem;
    border-radius: 12px;
    background: #f5f7fb;
    color: #526278;
    line-height: 1.55;
}

.sivi-error-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.25rem;
}

.sivi-error-actions .btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.sivi-error-footer {
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid #e6ebf3;
    color: #78869a;
    text-align: center;
    font-size: .78rem;
    font-weight: 600;
}

@media (max-width: 640px) {
    .sivi-error-shell {
        padding: 1rem;
    }

    .sivi-error-card {
        padding: 1.3rem;
        border-radius: 16px;
    }

    .sivi-error-reference {
        grid-template-columns: 1fr;
    }

    .sivi-error-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .sivi-error-actions .btn,
    .sivi-error-actions button {
        width: 100%;
    }
}
/* SIVI ERROR UX 1.0.0 - FIN */

/* SIVI ROLE HOME + ACCOUNT 1.0.0 - INICIO */
:root {
    --sivi-page-bg: #f4f7fb;
    --sivi-surface: #ffffff;
    --sivi-surface-soft: #f8faff;
    --sivi-text: #17243a;
    --sivi-muted: #68778c;
    --sivi-border: #dce5f0;
    --sivi-accent: #174a87;
    --sivi-accent-soft: #eaf2fb;
    --sivi-ok: #147a55;
    --sivi-warning: #9a6800;
    --sivi-danger: #a93a3a;
    --sivi-home-gap: 1rem;
    --sivi-card-padding: 1.15rem;
}

html[data-sivi-theme="dark"] {
    --sivi-page-bg: #0d1524;
    --sivi-surface: #152033;
    --sivi-surface-soft: #1b2940;
    --sivi-text: #ecf2fa;
    --sivi-muted: #aab8cb;
    --sivi-border: #32435e;
    --sivi-accent: #83b9f4;
    --sivi-accent-soft: #1c3554;
    --sivi-ok: #73d4aa;
    --sivi-warning: #f0c66d;
    --sivi-danger: #ff9b9b;
}

html[data-sivi-density="compact"] {
    --sivi-home-gap: .7rem;
    --sivi-card-padding: .8rem;
}

html[data-sivi-theme="dark"] body,
html[data-sivi-theme="dark"] .content {
    background: var(--sivi-page-bg);
    color: var(--sivi-text);
}

html[data-sivi-theme="dark"] .panel,
html[data-sivi-theme="dark"] .card,
html[data-sivi-theme="dark"] .auth-card {
    background: var(--sivi-surface);
    border-color: var(--sivi-border);
    color: var(--sivi-text);
}

html[data-sivi-theme="dark"] input,
html[data-sivi-theme="dark"] select,
html[data-sivi-theme="dark"] textarea {
    background: var(--sivi-surface-soft);
    color: var(--sivi-text);
    border-color: var(--sivi-border);
}

html[data-sivi-theme="dark"] .muted,
html[data-sivi-theme="dark"] small {
    color: var(--sivi-muted);
}

.role-home,
.account-page {
    display: grid;
    gap: var(--sivi-home-gap);
    color: var(--sivi-text);
}

.role-home-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.role-home-header h1 {
    margin: .2rem 0;
}

.role-home-header p {
    margin: 0;
    color: var(--sivi-muted);
}

.role-user-summary {
    display: grid;
    min-width: 240px;
    gap: .18rem;
    padding: .8rem 1rem;
    border: 1px solid var(--sivi-border);
    border-radius: 14px;
    background: var(--sivi-surface);
    text-align: right;
}

.role-user-summary span,
.role-user-summary small {
    color: var(--sivi-muted);
}

.role-alert,
.role-primary-card,
.role-metric-card,
.role-quick-link,
.account-card {
    border: 1px solid var(--sivi-border);
    background: var(--sivi-surface);
}

.role-alert {
    padding: 1rem 1.15rem;
    border-radius: 14px;
}

.role-alert > div {
    display: grid;
    gap: .25rem;
}

.role-alert span {
    color: var(--sivi-muted);
}

.role-primary-card {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(240px, .7fr);
    gap: 1.3rem;
    align-items: center;
    padding: calc(var(--sivi-card-padding) + .25rem);
    border-radius: 18px;
    background:
        linear-gradient(
            135deg,
            var(--sivi-surface),
            var(--sivi-accent-soft));
}

.role-primary-copy h2 {
    margin: .25rem 0 .4rem;
}

.role-primary-copy p {
    color: var(--sivi-muted);
}

.role-main-action {
    margin-top: .65rem;
    min-height: 46px;
}

.role-progress {
    display: grid;
    gap: .55rem;
    text-align: center;
}

.role-progress-value {
    font-size: 2.15rem;
    font-weight: 800;
}

.role-progress-track {
    height: 11px;
    overflow: hidden;
    border-radius: 99px;
    background: var(--sivi-border);
}

.role-progress-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--sivi-accent);
}

.role-progress small {
    color: var(--sivi-muted);
}

.role-metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--sivi-home-gap);
}

.role-metric-card {
    display: grid;
    gap: .25rem;
    padding: var(--sivi-card-padding);
    border-radius: 14px;
    color: var(--sivi-text);
    text-decoration: none;
}

.role-metric-card:hover,
.role-quick-link:hover {
    border-color: var(--sivi-accent);
    transform: translateY(-1px);
}

.role-metric-card span,
.role-metric-card small {
    color: var(--sivi-muted);
}

.role-metric-card strong {
    font-size: 1.8rem;
}

.role-metric-card.ok {
    border-top: 3px solid var(--sivi-ok);
}

.role-metric-card.warning {
    border-top: 3px solid var(--sivi-warning);
}

.role-metric-card.attention {
    border-top: 3px solid var(--sivi-danger);
}

.role-home-columns {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: var(--sivi-home-gap);
}

.role-attention-panel,
.role-quick-panel,
.role-system-panel,
.account-card {
    padding: var(--sivi-card-padding);
}

.role-section-heading h2 {
    margin: .2rem 0 .8rem;
}

.role-attention-list {
    display: grid;
    gap: .5rem;
}

.role-attention-list a {
    display: flex;
    justify-content: space-between;
    gap: .8rem;
    padding: .72rem .8rem;
    border-radius: 10px;
    background: var(--sivi-surface-soft);
    color: var(--sivi-text);
    text-decoration: none;
}

.role-attention-list a:hover {
    outline: 1px solid var(--sivi-accent);
}

.role-empty-state {
    display: grid;
    gap: .2rem;
    padding: 1rem;
    border-radius: 12px;
    background: var(--sivi-surface-soft);
}

.role-empty-state span {
    color: var(--sivi-muted);
}

.role-quick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.role-quick-link {
    display: grid;
    gap: .25rem;
    min-height: 78px;
    padding: .85rem;
    border-radius: 12px;
    color: var(--sivi-text);
    text-decoration: none;
}

.role-quick-link span {
    color: var(--sivi-muted);
    font-size: .84rem;
}

.role-system-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
}

.role-system-grid > div {
    display: grid;
    gap: .25rem;
    padding: .9rem;
    border-radius: 12px;
    background: var(--sivi-surface-soft);
}

.role-system-grid span {
    color: var(--sivi-muted);
}

.system-ok {
    color: var(--sivi-ok);
}

.account-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--sivi-home-gap);
}

.account-card h2 {
    margin: .2rem 0 .8rem;
}

.account-details {
    display: grid;
    gap: .5rem;
    margin: 0;
}

.account-details > div {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);
    gap: .7rem;
    padding: .55rem 0;
    border-bottom: 1px solid var(--sivi-border);
}

.account-details dt {
    color: var(--sivi-muted);
}

.account-details dd {
    margin: 0;
    overflow-wrap: anywhere;
    font-weight: 600;
}

.visual-choice-group {
    display: grid;
    gap: .55rem;
    margin: .8rem 0 1.1rem;
}

.visual-choice-group.horizontal {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.visual-choice {
    display: flex;
    gap: .7rem;
    align-items: flex-start;
    padding: .75rem;
    border: 1px solid var(--sivi-border);
    border-radius: 11px;
    background: var(--sivi-surface-soft);
    cursor: pointer;
}

.visual-choice > span {
    display: grid;
    gap: .15rem;
}

.visual-choice small {
    color: var(--sivi-muted);
}

.account-password-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
    margin-bottom: 1rem;
}

html[data-sivi-density="compact"] .panel {
    padding-top: .8rem;
    padding-bottom: .8rem;
}

html[data-sivi-density="compact"] input,
html[data-sivi-density="compact"] select,
html[data-sivi-density="compact"] textarea,
html[data-sivi-density="compact"] .btn {
    min-height: 36px;
}

@media (max-width: 1180px) {
    .role-metrics-grid,
    .role-system-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .role-home-columns {
        grid-template-columns: 1fr;
    }

    .account-password-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 759px) {
    .role-home-header {
        display: grid;
    }

    .role-user-summary {
        min-width: 0;
        text-align: left;
    }

    .role-primary-card {
        grid-template-columns: 1fr;
    }

    .role-metrics-grid,
    .role-system-grid,
    .account-grid,
    .role-quick-grid,
    .visual-choice-group.horizontal {
        grid-template-columns: 1fr;
    }

    .role-main-action {
        width: 100%;
    }

    .account-details > div {
        grid-template-columns: 1fr;
        gap: .15rem;
    }
}
/* SIVI ROLE HOME + ACCOUNT 1.0.0 - FIN */

/* SIVI DARK GLOBAL FIX 1.0.0 - INICIO */

/*
 * Capa final de compatibilidad para componentes que aun conservan
 * colores claros heredados. No modifica el azul institucional del sidebar.
 */
html[data-sivi-theme="dark"] {
    color-scheme: dark;
    background: var(--sivi-page-bg, #0d1524);
}

html[data-sivi-theme="dark"] body,
html[data-sivi-theme="dark"] .shell,
html[data-sivi-theme="dark"] .content {
    background-color: var(--sivi-page-bg, #0d1524);
    color: var(--sivi-text, #ecf2fa);
}

html[data-sivi-theme="dark"] :is(
    .panel,
    .card,
    .stat,
    .asset-card,
    .action-card,
    .workflow-step,
    .detail-grid > div,
    .validation-review-grid > div,
    .summary-card,
    .attention-card,
    .semaphore-card,
    .additional-summary > div,
    .additional-mini-row,
    .mini-list-row,
    .profile-row,
    .permission-group,
    .role-grid .check,
    .campaign-card,
    .campaign-option,
    .conditional-box,
    .verification-value,
    .option-check,
    .reference-panel,
    .offline-card,
    .auth-card
) {
    background: var(--sivi-surface, #152033);
    border-color: var(--sivi-border, #32435e);
    color: var(--sivi-text, #ecf2fa);
}

html[data-sivi-theme="dark"] :is(
    .department-picker,
    .campaign-instructions,
    .declaration-box,
    .inline-help,
    .effective-permissions,
    .catalog-selected-site > div,
    .summary-card,
    .filtered-empty,
    .reference-panel,
    .site-reference-grid > div,
    .asset-reference .detail-grid > div
) {
    background: var(--sivi-surface-soft, #1b2940);
    border-color: var(--sivi-border, #32435e);
    color: var(--sivi-text, #ecf2fa);
}

html[data-sivi-theme="dark"] :is(
    input,
    select,
    textarea
) {
    background: #101a2b;
    color: var(--sivi-text, #ecf2fa);
    border-color: var(--sivi-border, #32435e);
}

html[data-sivi-theme="dark"] input::placeholder,
html[data-sivi-theme="dark"] textarea::placeholder {
    color: #8392a8;
}

html[data-sivi-theme="dark"] select option {
    background: #101a2b;
    color: var(--sivi-text, #ecf2fa);
}

html[data-sivi-theme="dark"] .btn:not(.primary):not(.danger) {
    background: var(--sivi-surface-soft, #1b2940);
    color: var(--sivi-text, #ecf2fa);
    border-color: var(--sivi-border, #32435e);
}

html[data-sivi-theme="dark"] :is(
    .page-head p,
    .muted,
    .field-help,
    .section-heading p,
    .ux-step-head p,
    .asset-card p,
    .action-card span,
    .table-wrap th,
    .empty,
    .page-loading,
    .verification-value span,
    .detail-grid small,
    .summary-line span,
    .history-row small,
    .attention-row span,
    .additional-mini-row small,
    .profile-row small,
    .permission-option small,
    .offline-card p
) {
    color: var(--sivi-muted, #aab8cb);
}

html[data-sivi-theme="dark"] .table-wrap th,
html[data-sivi-theme="dark"] .table-wrap td,
html[data-sivi-theme="dark"] .notice,
html[data-sivi-theme="dark"] .attention-row,
html[data-sivi-theme="dark"] .history-row,
html[data-sivi-theme="dark"] .summary-line,
html[data-sivi-theme="dark"] .mini-list-row,
html[data-sivi-theme="dark"] .history-entry {
    border-color: var(--sivi-border, #32435e);
}

html[data-sivi-theme="dark"] :is(
    .sticky-actions,
    .mobile-action-bar
) {
    background: rgba(21, 32, 51, .96);
    border-color: var(--sivi-border, #32435e);
    color: var(--sivi-text, #ecf2fa);
}

html[data-sivi-theme="dark"] .badge,
html[data-sivi-theme="dark"] .reference-badge,
html[data-sivi-theme="dark"] .filter-pill:not(.active),
html[data-sivi-theme="dark"] .condition-chip,
html[data-sivi-theme="dark"] .optional-label {
    background: var(--sivi-accent-soft, #1c3554);
    color: var(--sivi-accent, #83b9f4);
    border-color: var(--sivi-border, #32435e);
}

/* Estados semanticos conservan contraste propio. */
html[data-sivi-theme="dark"] .alert.success,
html[data-sivi-theme="dark"] .duplicate-check.ok {
    background: #10281f;
    color: #8be0b5;
    border-color: #295944;
}

html[data-sivi-theme="dark"] .alert.warning,
html[data-sivi-theme="dark"] .duplicate-check.issue,
html[data-sivi-theme="dark"] .warning-box {
    background: #2b2414;
    color: #f0cf83;
    border-color: #66552d;
}

html[data-sivi-theme="dark"] .alert.danger,
html[data-sivi-theme="dark"] .edit-lock {
    background: #321b20;
    color: #ffb4b4;
    border-color: #6f3a43;
}

/* Mantener identidad institucional del menu lateral. */
html[data-sivi-theme="dark"] .sidebar {
    background: #102348;
    color: #d9e6ff;
}

/* SIVI DARK GLOBAL FIX 1.0.0 - FIN */

/* SIVI HOME DASHBOARD MODERNO 1.0.0 - INICIO */

.home-dashboard {
    --home-role-accent: #245ac3;
    --home-role-accent-2: #4f82e7;
    --home-shadow: 0 16px 42px rgba(18, 36, 72, .08);
    --home-shadow-soft: 0 8px 24px rgba(18, 36, 72, .06);
    gap: 1.15rem;
}

.home-dashboard.home-role-superadmin {
    --home-role-accent: #245ac3;
    --home-role-accent-2: #5d8de8;
}

.home-dashboard.home-role-admin {
    --home-role-accent: #1f63b5;
    --home-role-accent-2: #4f8fd9;
}

.home-dashboard.home-role-can {
    --home-role-accent: #5a55b7;
    --home-role-accent-2: #827dd4;
}

.home-dashboard.home-role-formador {
    --home-role-accent: #147a6a;
    --home-role-accent-2: #3ea595;
}

.home-dashboard.home-role-registrador {
    --home-role-accent: #18734f;
    --home-role-accent-2: #3da276;
}

.home-dashboard.home-role-auditor {
    --home-role-accent: #94651a;
    --home-role-accent-2: #c18c35;
}

.home-dashboard.home-role-consulta {
    --home-role-accent: #526a88;
    --home-role-accent-2: #7890ad;
}

.home-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .7rem;
}

.home-loading-mark {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #245ac3;
    box-shadow: 0 0 0 6px rgba(36, 90, 195, .12);
}

.home-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(300px, .72fr);
    gap: 1.35rem;
    overflow: hidden;
    padding: clamp(1.35rem, 2vw, 2rem);
    border-radius: 24px;
    color: #fff;
    background:
        radial-gradient(circle at 84% 18%, rgba(255,255,255,.16), transparent 26%),
        radial-gradient(circle at 15% 110%, rgba(255,255,255,.10), transparent 34%),
        linear-gradient(135deg, #102348 0%, var(--home-role-accent) 66%, var(--home-role-accent-2) 100%);
    box-shadow: 0 20px 55px rgba(16, 35, 72, .18);
}

.home-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: 280px;
    height: 280px;
    right: -120px;
    bottom: -145px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 50%;
    box-shadow:
        0 0 0 36px rgba(255,255,255,.035),
        0 0 0 72px rgba(255,255,255,.025);
}

.home-hero-main {
    min-width: 0;
    align-self: center;
}

.home-hero-topline,
.home-section-kicker-row,
.home-focus-top,
.home-section-heading {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.home-hero-topline {
    flex-wrap: wrap;
    margin-bottom: .85rem;
}

.home-role-pill,
.home-session-pill,
.home-campaign-badge,
.home-updated-pill,
.home-health-pill,
.home-count-pill {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    width: fit-content;
    border-radius: 999px;
    font-size: .72rem;
    line-height: 1;
    font-weight: 850;
}

.home-role-pill {
    padding: .45rem .68rem;
    color: #fff;
    border: 1px solid rgba(255,255,255,.22);
    background: rgba(255,255,255,.12);
    letter-spacing: .06em;
    text-transform: uppercase;
}

.home-session-pill {
    padding: .45rem .68rem;
    color: #e7f8ef;
    background: rgba(12, 65, 45, .32);
    border: 1px solid rgba(145, 228, 187, .25);
}

.home-live-dot {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: #55d98d;
    box-shadow: 0 0 0 3px rgba(85,217,141,.15);
}

.home-hero h1 {
    max-width: 900px;
    margin: 0;
    color: #fff;
    font-size: clamp(1.85rem, 3vw, 2.65rem);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.home-hero-description {
    max-width: 780px;
    margin: .72rem 0 1.15rem;
    color: rgba(239, 246, 255, .86);
    font-size: 1rem;
    line-height: 1.55;
}

.home-context-row {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.home-context-item {
    display: grid;
    min-width: 150px;
    gap: .08rem;
    padding: .58rem .72rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 11px;
    background: rgba(255,255,255,.08);
    backdrop-filter: blur(5px);
}

.home-context-item span {
    color: rgba(228, 238, 252, .68);
    font-size: .66rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.home-context-item strong {
    overflow: hidden;
    color: #fff;
    font-size: .84rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-context-version {
    min-width: 125px;
}

.home-focus-card {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 1.15rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 18px;
    background: rgba(7, 24, 51, .28);
    backdrop-filter: blur(9px);
}

.home-focus-top {
    justify-content: space-between;
}

.home-card-kicker {
    color: var(--home-role-accent);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.home-focus-card .home-card-kicker {
    color: rgba(235, 244, 255, .76);
}

.home-focus-symbol {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    color: #fff;
    background: rgba(255,255,255,.13);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .04em;
}

.home-focus-card h2 {
    margin: .8rem 0 .3rem;
    color: #fff;
    font-size: 1.12rem;
    line-height: 1.25;
}

.home-focus-card p {
    flex: 1;
    margin: 0 0 1rem;
    color: rgba(236,244,255,.78);
    font-size: .86rem;
    line-height: 1.5;
}

.home-focus-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
    min-height: 43px;
    padding: .7rem .85rem;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 11px;
    color: #102348;
    background: #fff;
    font-weight: 850;
    cursor: pointer;
}

.home-focus-action:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(0,0,0,.13);
}

.home-no-campaign,
.home-campaign-card,
.home-panel,
.home-stat-card {
    border: 1px solid var(--sivi-border);
    background: var(--sivi-surface);
    box-shadow: var(--home-shadow-soft);
}

.home-no-campaign {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-radius: 16px;
}

.home-no-campaign-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 13px;
    color: var(--home-role-accent);
    background: color-mix(in srgb, var(--home-role-accent) 11%, var(--sivi-surface));
    font-weight: 900;
}

.home-no-campaign strong {
    display: block;
    margin-top: .15rem;
    color: var(--sivi-text);
}

.home-no-campaign p {
    margin: .15rem 0 0;
    color: var(--sivi-muted);
}

.home-campaign-card {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
    align-items: center;
    gap: 1.5rem;
    padding: clamp(1.15rem, 2vw, 1.55rem);
    border-radius: 20px;
}

.home-section-kicker-row {
    flex-wrap: wrap;
}

.home-campaign-badge {
    padding: .38rem .58rem;
    color: var(--home-role-accent);
    background: color-mix(in srgb, var(--home-role-accent) 10%, var(--sivi-surface));
    border: 1px solid color-mix(in srgb, var(--home-role-accent) 24%, var(--sivi-border));
}

.home-campaign-copy h2 {
    margin: .45rem 0 .3rem;
    color: var(--sivi-text);
    font-size: 1.45rem;
    letter-spacing: -.02em;
}

.home-campaign-copy p {
    max-width: 720px;
    margin: 0;
    color: var(--sivi-muted);
    line-height: 1.55;
}

.home-campaign-action {
    margin-top: .9rem;
    min-height: 44px;
    background: var(--home-role-accent) !important;
    border-color: var(--home-role-accent) !important;
}

.home-progress-zone {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    padding-left: 1.2rem;
    border-left: 1px solid var(--sivi-border);
}

.home-progress-ring {
    --home-progress: 0%;
    position: relative;
    display: grid;
    place-items: center;
    width: 112px;
    height: 112px;
    flex: 0 0 112px;
    border-radius: 50%;
    background:
        conic-gradient(
            var(--home-role-accent) 0 var(--home-progress),
            var(--sivi-border) var(--home-progress) 100%);
}

.home-progress-ring::after {
    content: "";
    position: absolute;
    inset: 10px;
    border-radius: 50%;
    background: var(--sivi-surface);
}

.home-progress-ring > div {
    position: relative;
    z-index: 1;
    display: grid;
    text-align: center;
}

.home-progress-ring strong {
    color: var(--sivi-text);
    font-size: 1.55rem;
    line-height: 1;
}

.home-progress-ring span {
    margin-top: .18rem;
    color: var(--sivi-muted);
    font-size: .7rem;
}

.home-progress-copy {
    display: grid;
    gap: .25rem;
    min-width: 0;
}

.home-progress-copy strong {
    color: var(--sivi-text);
    line-height: 1.35;
}

.home-progress-copy span {
    color: var(--sivi-muted);
    font-size: .82rem;
    line-height: 1.45;
}

.home-summary-section {
    display: grid;
    gap: .72rem;
}

.home-section-heading {
    justify-content: space-between;
    align-items: flex-end;
}

.home-section-heading.compact {
    align-items: center;
}

.home-section-heading h2 {
    margin: .18rem 0 0;
    color: var(--sivi-text);
    font-size: 1.08rem;
    letter-spacing: -.01em;
}

.home-updated-pill,
.home-health-pill,
.home-count-pill {
    padding: .4rem .62rem;
    color: var(--sivi-muted);
    border: 1px solid var(--sivi-border);
    background: var(--sivi-surface);
}

.home-health-pill {
    color: var(--sivi-ok);
}

.home-count-pill {
    min-width: 34px;
    justify-content: center;
    color: var(--home-role-accent);
    background: color-mix(in srgb, var(--home-role-accent) 9%, var(--sivi-surface));
}

.home-count-pill.subtle {
    color: var(--sivi-muted);
    background: var(--sivi-surface-soft);
}

.home-metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
}

.home-stat-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 156px;
    padding: 1rem;
    border-radius: 16px;
    color: var(--sivi-text);
    text-decoration: none;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.home-stat-card:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--home-role-accent) 50%, var(--sivi-border));
    box-shadow: var(--home-shadow);
}

.home-stat-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: .65rem;
}

.home-stat-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-width: 0;
    max-width: 100%;
    min-height: 30px;
    padding: .38rem .62rem;
    border-radius: 9px;
    color: var(--home-role-accent);
    background: color-mix(in srgb, var(--home-role-accent) 10%, var(--sivi-surface));
    font-size: .68rem;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .025em;
    white-space: nowrap;
}

.home-stat-arrow {
    color: var(--sivi-muted);
    font-size: .86rem;
}

.home-stat-card > strong {
    color: var(--sivi-text);
    font-size: clamp(1.7rem, 2.3vw, 2.15rem);
    line-height: 1;
    letter-spacing: -.035em;
}

.home-stat-card > span:not(.home-stat-top) {
    margin-top: .42rem;
    color: var(--sivi-text);
    font-size: .86rem;
    font-weight: 800;
}

.home-stat-card > small {
    margin-top: .18rem;
    color: var(--sivi-muted);
    font-size: .75rem;
    line-height: 1.4;
}

.home-stat-card::after {
    content: "";
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 0;
    height: 3px;
    border-radius: 99px 99px 0 0;
    background: var(--home-role-accent);
    opacity: .7;
}

.home-stat-card.success::after { background: var(--sivi-ok); }
.home-stat-card.warning::after { background: var(--sivi-warning); }
.home-stat-card.danger::after { background: var(--sivi-danger); }
.home-stat-card.info::after { background: var(--home-role-accent-2); }

.home-work-grid {
    display: grid;
    grid-template-columns: minmax(320px, .78fr) minmax(0, 1.22fr);
    gap: .9rem;
    align-items: start;
}

.home-panel {
    min-width: 0;
    padding: 1.1rem;
    border-radius: 18px;
}

.home-priority-list {
    display: grid;
    gap: .52rem;
    margin-top: .8rem;
}

.home-priority-list a {
    display: grid;
    grid-template-columns: 8px minmax(0, 1fr) auto;
    align-items: center;
    gap: .72rem;
    min-height: 62px;
    padding: .7rem .78rem;
    border: 1px solid transparent;
    border-radius: 12px;
    color: var(--sivi-text);
    background: var(--sivi-surface-soft);
    text-decoration: none;
    transition: border-color .15s ease, transform .15s ease;
}

.home-priority-list a:hover {
    transform: translateX(2px);
    border-color: var(--sivi-border);
}

.home-priority-marker {
    width: 8px;
    height: 34px;
    border-radius: 99px;
    background: var(--sivi-muted);
}

.home-priority-marker.warning { background: var(--sivi-warning); }
.home-priority-marker.danger { background: var(--sivi-danger); }
.home-priority-marker.info { background: var(--home-role-accent); }
.home-priority-marker.neutral { background: var(--sivi-muted); }

.home-priority-list a > div {
    min-width: 0;
}

.home-priority-list strong,
.home-priority-list small {
    display: block;
}

.home-priority-list strong {
    color: var(--sivi-text);
    font-size: .84rem;
}

.home-priority-list small {
    margin-top: .12rem;
    color: var(--sivi-muted);
    font-size: .74rem;
}

.home-priority-value {
    display: grid;
    place-items: center;
    min-width: 38px;
    height: 32px;
    padding: 0 .45rem;
    border-radius: 10px;
    color: var(--sivi-text);
    background: var(--sivi-surface);
    border: 1px solid var(--sivi-border);
    font-weight: 900;
}

.home-empty-state {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin-top: .8rem;
    padding: 1rem;
    border: 1px dashed color-mix(in srgb, var(--sivi-ok) 34%, var(--sivi-border));
    border-radius: 13px;
    background: color-mix(in srgb, var(--sivi-ok) 6%, var(--sivi-surface));
}

.home-empty-check {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: 50%;
    color: var(--sivi-ok);
    background: color-mix(in srgb, var(--sivi-ok) 12%, var(--sivi-surface));
    font-weight: 900;
}

.home-empty-state strong {
    color: var(--sivi-text);
}

.home-empty-state p {
    margin: .1rem 0 0;
    color: var(--sivi-muted);
    font-size: .8rem;
}

.home-quick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
    margin-top: .8rem;
}

.home-quick-link {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    min-height: 72px;
    padding: .68rem .72rem;
    border: 1px solid var(--sivi-border);
    border-radius: 13px;
    color: var(--sivi-text);
    background: var(--sivi-surface);
    text-decoration: none;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.home-quick-link:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--home-role-accent) 42%, var(--sivi-border));
    box-shadow: var(--home-shadow-soft);
}

.home-quick-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    color: var(--home-role-accent);
    background: color-mix(in srgb, var(--home-role-accent) 10%, var(--sivi-surface));
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .035em;
}

.home-quick-copy {
    min-width: 0;
}

.home-quick-copy strong,
.home-quick-copy small {
    display: block;
}

.home-quick-copy strong {
    color: var(--sivi-text);
    font-size: .83rem;
}

.home-quick-copy small {
    margin-top: .1rem;
    color: var(--sivi-muted);
    font-size: .72rem;
    line-height: 1.3;
}

.home-quick-arrow {
    color: var(--sivi-muted);
    font-weight: 800;
}

.home-system-panel {
    box-shadow: var(--home-shadow-soft);
}

.home-system-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    margin-top: .8rem;
}

.home-system-card {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-width: 0;
    padding: .85rem;
    border: 1px solid var(--sivi-border);
    border-radius: 13px;
    background: var(--sivi-surface-soft);
}

.home-system-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: 11px;
    color: var(--home-role-accent);
    background: color-mix(in srgb, var(--home-role-accent) 10%, var(--sivi-surface));
    font-size: .64rem;
    font-weight: 900;
}

.home-system-icon.ok {
    color: var(--sivi-ok);
    background: color-mix(in srgb, var(--sivi-ok) 11%, var(--sivi-surface));
}

.home-system-icon.warning {
    color: var(--sivi-warning);
    background: color-mix(in srgb, var(--sivi-warning) 11%, var(--sivi-surface));
}

.home-system-icon.info {
    color: var(--home-role-accent);
}

.home-system-card > div {
    min-width: 0;
}

.home-system-card span,
.home-system-card strong {
    display: block;
}

.home-system-card > div > span {
    color: var(--sivi-muted);
    font-size: .74rem;
}

.home-system-card strong {
    margin-top: .12rem;
    color: var(--sivi-text);
    font-size: 1rem;
}

.home-system-card .system-ok {
    color: var(--sivi-ok);
}

.home-section-link {
    color: var(--home-role-accent);
    font-size: .78rem;
    font-weight: 800;
    text-decoration: none;
}

.home-section-link:hover {
    text-decoration: underline;
}

/* Modo oscuro específico del Inicio. */
html[data-sivi-theme="dark"] .home-dashboard {
    --home-shadow: 0 18px 46px rgba(0, 0, 0, .22);
    --home-shadow-soft: 0 8px 24px rgba(0, 0, 0, .16);
}

html[data-sivi-theme="dark"] .home-hero {
    box-shadow: 0 20px 55px rgba(0,0,0,.28);
}

html[data-sivi-theme="dark"] .home-focus-action {
    color: #102348;
    background: #f4f8ff;
}

html[data-sivi-theme="dark"] .home-stat-card,
html[data-sivi-theme="dark"] .home-panel,
html[data-sivi-theme="dark"] .home-campaign-card,
html[data-sivi-theme="dark"] .home-no-campaign {
    background: var(--sivi-surface);
    border-color: var(--sivi-border);
}

html[data-sivi-theme="dark"] .home-progress-ring::after {
    background: var(--sivi-surface);
}

/* Densidad compacta: reduce espacio sin perder jerarquía. */
html[data-sivi-density="compact"] .home-dashboard {
    gap: .82rem;
}

html[data-sivi-density="compact"] .home-hero {
    padding: 1.2rem;
}

html[data-sivi-density="compact"] .home-stat-card {
    min-height: 136px;
    padding: .82rem;
}

html[data-sivi-density="compact"] .home-panel {
    padding: .9rem;
}

html[data-sivi-density="compact"] .home-quick-link {
    min-height: 62px;
}

/* Portátiles y tabletas. */
@media (max-width: 1200px) {
    .home-hero {
        grid-template-columns: minmax(0, 1.25fr) minmax(270px, .75fr);
    }

    .home-metrics-grid,
    .home-system-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-work-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .home-hero,
    .home-campaign-card {
        grid-template-columns: 1fr;
    }

    .home-progress-zone {
        justify-content: flex-start;
        padding: 1rem 0 0;
        border-left: 0;
        border-top: 1px solid var(--sivi-border);
    }

    .home-context-item {
        flex: 1 1 180px;
    }
}

@media (max-width: 640px) {
    .home-dashboard {
        gap: .82rem;
    }

    .home-hero {
        padding: 1.05rem;
        border-radius: 18px;
    }

    .home-hero h1 {
        font-size: 1.72rem;
    }

    .home-context-row {
        display: grid;
        grid-template-columns: 1fr;
    }

    .home-context-item {
        min-width: 0;
    }

    .home-metrics-grid,
    .home-system-grid,
    .home-quick-grid {
        grid-template-columns: 1fr;
    }

    .home-progress-zone {
        align-items: flex-start;
    }

    .home-progress-ring {
        width: 92px;
        height: 92px;
        flex-basis: 92px;
    }

    .home-progress-ring strong {
        font-size: 1.3rem;
    }

    .home-section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .45rem;
    }

    .home-section-heading.compact {
        align-items: flex-start;
    }

    .home-no-campaign {
        align-items: flex-start;
    }
}

/* SIVI HOME DASHBOARD MODERNO 1.0.0 - FIN */

