:root{
  --navy-950:#06172d;--navy-900:#082746;--navy-800:#0b355d;--blue:#1265ad;--teal:#0e9992;
  --amber:#eda521;--red:#e94c4c;--green:#25955a;--purple:#7653c8;--ink:#10233f;--muted:#6a788b;
  --line:#dce4ed;--soft:#f4f7fa;--white:#fff;--shadow:0 8px 30px rgba(13,40,70,.08)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#f7f9fb;color:var(--ink)}body{font-family:Arial,Helvetica,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{color:inherit}a{color:inherit}.hidden{display:none!important}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(500px,.95fr);background:#f4f7fa}
.login-brand-panel{padding:clamp(34px,6vw,82px);color:#fff;background:radial-gradient(circle at 15% 15%,rgba(16,153,146,.35),transparent 34%),linear-gradient(145deg,#061a31 0%,#0a355d 56%,#087f7b 130%);display:flex;flex-direction:column;justify-content:space-between;gap:48px}
.logo{display:flex;align-items:center;gap:12px}.logo-mark{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#0c345a,#0a8490);box-shadow:0 5px 14px rgba(8,58,91,.25);font-size:24px}.logo strong{display:block;font-family:Georgia,serif;font-size:24px;letter-spacing:.04em}.logo small{color:#c8d8e7}.login-copy{max-width:680px}.eyebrow{margin:0;color:var(--teal);text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:800}.login-brand-panel .eyebrow{color:#65d4cd}.login-copy h1{margin:12px 0 18px;font-family:Georgia,serif;font-size:clamp(34px,4.6vw,63px);line-height:1.02;letter-spacing:-.025em}.login-copy>p:last-child{margin:0;color:#cfdae7;font-size:15px;line-height:1.7}
.login-security-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.login-security-grid article{min-height:104px;padding:17px;border:1px solid rgba(255,255,255,.15);border-radius:12px;background:rgba(255,255,255,.07);display:flex;gap:12px;align-items:flex-start}.login-security-grid .icon{font-size:22px}.login-security-grid span{display:grid;gap:7px}.login-security-grid b{font-size:12px}.login-security-grid small{color:#bfd0df;font-size:10px;line-height:1.45}
.login-card{align-self:center;justify-self:center;width:min(680px,calc(100% - 52px));max-height:calc(100vh - 42px);overflow:auto;padding:28px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 26px 70px rgba(8,39,70,.16)}.login-card-head{display:flex;align-items:center;gap:13px;margin-bottom:22px}.login-card-head h2{margin:3px 0 0;font-family:Georgia,serif;font-size:28px;color:var(--navy-900)}.login-lock{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#0b4f91,#087f7b);font-size:23px}
.field{display:grid;gap:6px}.field>span{font-size:10px;font-weight:700;color:#4c6178}.field input,.field select,.field textarea{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;padding:9px 11px;outline:none;background:#fff;color:var(--ink)}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#75a8ce;box-shadow:0 0 0 3px rgba(18,101,173,.08)}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.login-form{display:grid;gap:14px}.auth-error{margin:0;padding:10px 12px;border-radius:7px;color:#9b2b2b;background:#fff0f0;font-size:11px}.primary,.secondary,.danger,.ghost{min-height:40px;padding:0 15px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:12px;cursor:pointer}.primary{color:#fff;border:1px solid #073f77;background:linear-gradient(180deg,#0d568f,#093c70);box-shadow:0 4px 10px rgba(8,55,99,.16)}.secondary{color:#0a596d;border:1px solid #6bb1b6;background:#fff}.danger{color:#a32c2c;border:1px solid #e7a6a6;background:#fff4f4}.ghost{border:0;background:transparent}.primary:hover,.secondary:hover,.danger:hover{filter:brightness(1.04)}button:disabled{opacity:.5;cursor:not-allowed}.login-submit{width:100%;min-height:47px}
.demo-access{margin-top:22px;padding-top:19px;border-top:1px solid var(--line)}.demo-access-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.demo-access-head span{display:grid;gap:5px}.demo-access-head b{color:var(--navy-900)}.demo-access-head small{color:var(--muted);font-size:10px}.demo-access code{padding:2px 5px;border-radius:4px;color:#0b596a;background:#e8f6f5;font-family:Consolas,monospace;font-size:9px}.demo-user-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.demo-user-list button{min-height:72px;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff;display:grid;grid-template-columns:34px 1fr 16px;gap:9px;align-items:center;text-align:left;cursor:pointer}.demo-user-list button:hover{border-color:#77a8c8;background:#f8fbfd;transform:translateY(-1px)}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--navy-900);font-family:Georgia,serif;font-size:11px}.demo-user-list button>span:nth-child(2){min-width:0;display:grid;gap:2px}.demo-user-list b{font-size:9px}.demo-user-list small{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.auth-note{margin:16px 0 0;padding:10px 12px;border-radius:8px;display:flex;gap:8px;color:#426b5d;background:#f0f8f4;font-size:9px;line-height:1.5}
.app-shell{min-height:100vh;padding-top:76px;padding-left:248px}.topbar{height:76px;position:fixed;z-index:50;inset:0 0 auto 0;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;gap:24px}.brand{display:flex;align-items:center;gap:11px;min-width:350px;border:0;background:none;text-align:left;cursor:pointer}.brand .logo-mark{width:42px;height:42px;font-size:20px}.brand strong{display:block;font-family:Georgia,serif;font-size:21px;color:#09284a}.brand small{font-size:11px;color:#637185}.global-search{height:42px;max-width:520px;flex:1;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:9px;padding:0 12px;color:#8190a3}.global-search input{width:100%;border:0;outline:0;background:transparent}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.profile{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;padding-left:15px;border:0;border-left:1px solid var(--line);background:none;text-align:left;cursor:pointer}.profile span:nth-child(2){display:grid;gap:2px}.profile b{font-size:12px}.profile small{color:var(--muted);font-size:10px}.icon-btn{width:36px;height:36px;border:0;border-radius:8px;background:transparent;display:grid;place-items:center;cursor:pointer}.icon-btn:hover{background:var(--soft)}
.sidebar{position:fixed;z-index:40;inset:76px auto 0 0;width:248px;color:#eef6ff;background:linear-gradient(180deg,#092d51 0%,#061c34 100%);padding:24px 10px 12px;display:flex;flex-direction:column}.sidebar-title{padding:0 15px 12px;font-size:10px;color:#9eb5ce;font-weight:700;letter-spacing:.11em}.sidebar nav{display:grid;gap:4px}.sidebar nav button{min-height:44px;border:0;border-radius:7px;background:transparent;color:#dbe8f5;display:flex;align-items:center;gap:12px;padding:0 13px;cursor:pointer;text-align:left}.sidebar nav button:hover{background:rgba(255,255,255,.07)}.sidebar nav button.active{background:rgba(255,255,255,.11);color:#fff;box-shadow:inset 3px 0 0 var(--amber)}.sidebar nav .count{margin-left:auto;min-width:20px;height:20px;border-radius:10px;background:var(--red);display:grid;place-items:center;font-size:10px}.sidebar-callout{margin:auto 6px 14px;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.07)}.sidebar-callout b{font-size:11px}.sidebar-callout p{margin:5px 0 10px;color:#b7c9dc;font-size:10px;line-height:1.45}.sidebar-callout button{width:100%;min-height:32px;border:1px solid rgba(255,255,255,.17);border-radius:6px;color:#fff;background:rgba(255,255,255,.07);cursor:pointer}.sidebar-user{padding:10px;border:1px solid rgba(255,255,255,.16);border-radius:9px;background:rgba(255,255,255,.04);display:grid;grid-template-columns:36px 1fr;gap:9px;align-items:center}.sidebar-user span:last-child{display:grid;gap:2px}.sidebar-user b{font-size:11px}.sidebar-user small{color:#b9cade;font-size:9px}
.content{padding:26px 32px 44px;max-width:1750px;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.page-head h1{font-family:Georgia,serif;font-size:32px;margin:3px 0 5px;color:#0b2a4e}.page-head p:last-child{margin:0;color:var(--muted);font-size:12px}.page-actions{display:flex;gap:9px;flex-wrap:wrap}.panel{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow)}.panel-heading{min-height:60px;padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #e6ebf0}.panel-heading h2{margin:0 0 4px;font-family:Georgia,serif;font-size:18px;color:#0b2a4e}.panel-heading p{margin:0;color:var(--muted);font-size:9px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.kpi-card{min-height:112px;padding:17px;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:var(--shadow);display:grid;grid-template-columns:52px 1fr;gap:13px;align-items:center}.kpi-icon{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font-size:22px}.kpi-card .value{font-family:Georgia,serif;font-size:28px;line-height:1;color:#0b2443}.kpi-card span:last-child{display:grid;gap:2px}.kpi-card b{font-size:12px}.kpi-card small{color:var(--muted);font-size:10px;margin-top:3px}.blue-bg{background:#eaf2fb;color:var(--blue)}.teal-bg{background:#e5f6f4;color:var(--teal)}.red-bg{background:#ffeded;color:var(--red)}.amber-bg{background:#fff5e1;color:var(--amber)}.purple-bg{background:#f2edff;color:var(--purple)}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.right-column{display:grid;gap:13px}.toolbar{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}.segmented{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.segmented button{min-height:34px;padding:0 12px;border:0;border-right:1px solid var(--line);background:#fff;font-size:9px;cursor:pointer}.segmented button:last-child{border-right:0}.segmented button.active{color:#fff;background:var(--navy-800)}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:850px}.data-table th{padding:10px 12px;color:#6d7b8e;background:#f8fafc;font-size:8px;text-align:left;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.data-table td{padding:12px;border-top:1px solid #e7ecf1;vertical-align:middle;font-size:9px}.data-table td b{display:block;font-size:10px}.data-table td small{display:block;margin-top:4px;color:var(--muted);font-size:8px}.progress-label{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px;font-size:8px}.progress-track{height:7px;border-radius:5px;background:#e7edf3;overflow:hidden}.progress-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--teal),#30b9b2);transition:width .35s}.progress-fill.high{background:linear-gradient(90deg,#db3f3f,#f27373)}.progress-fill.done{background:linear-gradient(90deg,#22894f,#42b471)}.pill{display:inline-flex;align-items:center;min-height:23px;padding:0 8px;border-radius:12px;font-size:8px;font-weight:700;white-space:nowrap}.pill.red{color:#a12c2c;background:#ffeded}.pill.amber{color:#875907;background:#fff3d8}.pill.green{color:#176a3d;background:#e9f8ef}.pill.blue{color:#0e558f;background:#eaf3fb}.pill.teal{color:#08706c;background:#e5f6f4}.pill.purple{color:#5d3fb4;background:#f0ebff}.risk-panel{padding-bottom:14px}.risk-content{padding:18px;display:flex;align-items:center;justify-content:center;gap:20px}.donut{width:138px;height:138px;border-radius:50%;background:conic-gradient(var(--red) 0 21%,var(--amber) 21% 63%,var(--green) 63% 92%,#c7d0d9 92% 100%);display:grid;place-items:center;position:relative}.donut:after{content:"";width:82px;height:82px;border-radius:50%;background:#fff;position:absolute}.donut span{z-index:1;display:grid;text-align:center;font-size:9px;color:var(--muted)}.donut b{font-family:Georgia,serif;font-size:25px;color:var(--navy-900)}.legend{display:grid;gap:8px}.legend span{display:grid;grid-template-columns:9px 1fr auto;gap:7px;align-items:center;font-size:8px}.legend i{width:8px;height:8px;border-radius:50%}.legend .r{background:var(--red)}.legend .a{background:var(--amber)}.legend .g{background:var(--green)}.legend .x{background:#c7d0d9}.action-list{display:grid}.action-list button{min-height:65px;padding:10px 14px;border:0;border-top:1px solid var(--line);background:#fff;display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center;text-align:left;cursor:pointer}.action-list button:hover{background:#fafcfd}.action-list button span:nth-child(2){display:grid;gap:3px}.action-list b{font-size:9px}.action-list small,.action-list time{color:var(--muted);font-size:8px}
.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.project-card,.group-card,.company-card{padding:15px;display:grid;gap:11px}.project-card header,.group-card header,.company-card header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.project-card h3,.group-card h3,.company-card h3{margin:0;font-size:12px;line-height:1.35}.project-card p,.group-card p,.company-card p{margin:0;color:var(--muted);font-size:9px;line-height:1.5}.metrics-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.metric-box{padding:9px;border:1px solid var(--line);border-radius:7px;display:grid;gap:3px}.metric-box small{color:var(--muted);font-size:7px}.metric-box b{font-size:10px}.card-footer{padding-top:9px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;align-items:center}.card-footer small{color:var(--muted);font-size:8px}
.engineering-hero{padding:24px;border-radius:11px;color:#fff;background:radial-gradient(circle at 85% 15%,rgba(24,190,178,.35),transparent 28%),linear-gradient(130deg,#071d35,#0b4774 65%,#087f7b);display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:16px}.engineering-hero h2{margin:8px 0 9px;font-family:Georgia,serif;font-size:28px}.engineering-hero p{margin:0;color:#d3e1ed;font-size:11px;line-height:1.5}.engineering-hero-progress{width:240px;padding-left:25px;border-left:1px solid rgba(255,255,255,.22)}.engineering-hero-progress .big{font-family:Georgia,serif;font-size:46px}.engineering-hero-progress small{display:block;color:#c7d9e7;font-size:9px;margin-top:6px}.tabs{display:flex;gap:7px;overflow:auto;padding-bottom:10px;margin-bottom:8px}.tabs button{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:9px;white-space:nowrap;cursor:pointer}.tabs button.active{color:#fff;background:var(--navy-800);border-color:var(--navy-800)}.engineering-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:15px;align-items:start}.engineering-projects{padding:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.eng-card{padding:13px;border:1px solid var(--line);border-radius:9px;display:grid;gap:10px;cursor:pointer}.eng-card.selected{border-color:#3e96ba;box-shadow:0 0 0 2px rgba(62,150,186,.12)}.eng-card header{display:flex;justify-content:space-between;gap:8px}.eng-card header span{display:grid;gap:4px}.eng-card header small{color:var(--teal);font-size:8px;font-weight:700}.eng-card h3{margin:0;font-size:10px;line-height:1.35}.dual-progress{display:grid;gap:8px}.eng-meta{padding-top:8px;border-top:1px solid var(--line);display:grid;gap:5px}.eng-meta span{display:grid;grid-template-columns:78px 1fr;gap:7px}.eng-meta small{color:var(--muted);font-size:8px}.eng-meta b{font-size:8px}.fact-grid{padding:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.fact{min-height:82px;padding:11px;border:1px solid var(--line);border-radius:8px;display:grid;align-content:start;gap:5px}.fact small{color:var(--muted);font-size:8px;text-transform:uppercase}.fact b{font-size:10px}.fact span{color:#78879a;font-size:8px;line-height:1.4}.form-body{padding:16px;display:grid;gap:13px}.budget-summary{padding:15px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:28px;align-items:center}.budget-summary span{display:grid;gap:4px;text-align:right}.budget-summary small{color:var(--muted);font-size:8px}.budget-summary b{font-family:Georgia,serif;font-size:16px}.budget-summary .total{padding-left:22px;border-left:1px solid var(--line)}.budget-summary .total b{color:#07537f;font-size:21px}.schedule-list{display:grid}.schedule-row{min-height:68px;padding:10px 15px;border-top:1px solid var(--line);display:grid;grid-template-columns:1.2fr 1fr 100px;gap:14px;align-items:center}.schedule-row:first-child{border-top:0}.schedule-row>span{display:grid;gap:3px}.schedule-row b{font-size:9px}.schedule-row small,.schedule-row time{color:var(--muted);font-size:8px}.control-form{padding:15px;display:grid;gap:12px}.approval-list{padding:14px;display:grid;gap:10px}.approval-card{padding:13px;border:1px solid var(--line);border-radius:9px;display:grid;grid-template-columns:36px 1fr 145px;gap:12px;align-items:start}.approval-card.approved{background:#f3fbf6;border-color:#a9dbbd}.approval-step{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--navy-900);font-weight:700}.approval-card.approved .approval-step{background:var(--green)}.approval-card h3{margin:0 0 5px;font-size:11px}.approval-card p{margin:0;color:var(--muted);font-size:8px;line-height:1.45}.approval-actions{display:grid;gap:7px}.approval-actions .primary,.approval-actions .secondary{min-height:34px;padding:0 8px;font-size:8px}.risk-list{padding:12px;display:grid;gap:8px}.risk-item{padding:10px;border:1px solid var(--line);border-radius:7px;display:grid;grid-template-columns:1fr auto;gap:8px}.risk-item b{font-size:9px}.risk-item small{grid-column:1/-1;color:var(--muted);font-size:8px}.bars-chart{padding:15px;display:grid;gap:11px}.bar-row{display:grid;grid-template-columns:160px 1fr 42px;gap:10px;align-items:center}.bar-row span{font-size:8px}.bar-track{height:12px;border-radius:7px;background:#e9eef3;overflow:hidden}.bar-fill{height:100%;border-radius:7px;background:linear-gradient(90deg,var(--blue),var(--teal))}.bar-row b{font-size:8px;text-align:right}
.users-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:15px}.users-kpis article{min-height:96px;padding:14px;display:flex;gap:11px;align-items:center}.users-kpis .num{font-family:Georgia,serif;font-size:24px}.users-kpis div{display:grid;gap:2px}.users-kpis small{color:var(--muted);font-size:8px}.user-cell{display:flex;align-items:center;gap:8px}.user-cell span:last-child{display:grid;gap:2px}.matrix-grid{padding:14px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.matrix-card{padding:12px;border:1px solid var(--line);border-radius:8px;display:grid;gap:7px}.matrix-card h3{margin:0;font-size:10px}.matrix-card p{margin:0;color:var(--muted);font-size:8px;line-height:1.45}.modal-layer{position:fixed;z-index:100;inset:0;background:rgba(4,19,35,.55);display:grid;place-items:center;padding:18px}.modal{width:min(760px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:13px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.modal-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}.modal-head h2{margin:4px 0 0;font-family:Georgia,serif}.modal-body{padding:18px;display:grid;gap:13px}.modal-foot{padding:13px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}.toast{position:fixed;z-index:120;right:20px;bottom:20px;max-width:390px;padding:13px 16px;border-radius:9px;color:#fff;background:#123a5d;box-shadow:0 14px 40px rgba(0,0,0,.22);font-size:11px}.empty{padding:38px;text-align:center;color:var(--muted)}.audit-list{display:grid}.audit-row{padding:12px 15px;border-top:1px solid var(--line);display:grid;grid-template-columns:125px 180px 1fr 120px;gap:12px;align-items:center}.audit-row:first-child{border-top:0}.audit-row time,.audit-row small{color:var(--muted);font-size:8px}.audit-row b{font-size:9px}.document-drop{padding:22px;border:2px dashed #b7c6d4;border-radius:9px;text-align:center;background:#fbfcfd}.document-drop input{max-width:100%}.norm-list{padding:12px;display:grid;gap:9px}.norm-item{padding:12px;border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:1fr auto;gap:8px}.norm-item b{font-size:10px}.norm-item p{margin:5px 0 0;color:var(--muted);font-size:8px;line-height:1.45}.print-only{display:none}
@media(max-width:1280px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.engineering-grid{grid-template-columns:1fr}.engineering-projects{grid-template-columns:1fr 1fr}.cards-grid{grid-template-columns:1fr 1fr}.matrix-grid{grid-template-columns:1fr 1fr}}
@media(max-width:980px){.app-shell{padding-left:0}.sidebar{transform:translateX(-100%)}.brand{min-width:auto}.brand small{display:none}.global-search{display:none}.content{padding:20px}.topbar{padding:0 14px}.profile span:nth-child(2){display:none}.page-head{align-items:flex-start;flex-direction:column}.login-shell{grid-template-columns:1fr}.login-brand-panel{padding:34px;gap:28px}.login-card{margin:26px auto;max-height:none}.users-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.login-security-grid,.demo-user-list,.engineering-projects,.cards-grid,.fact-grid{grid-template-columns:1fr}.login-card{width:calc(100% - 24px);padding:20px}.login-brand-panel{padding:25px}.two-fields{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr}.users-kpis{grid-template-columns:1fr}.schedule-row{grid-template-columns:1fr}.approval-card{grid-template-columns:34px 1fr}.approval-actions{grid-column:2}.audit-row{grid-template-columns:1fr}.budget-summary{display:grid;grid-template-columns:1fr 1fr}.budget-summary .total{grid-column:1/-1;padding:10px 0 0;border-left:0;border-top:1px solid var(--line)}.matrix-grid{grid-template-columns:1fr}.engineering-hero{display:grid}.engineering-hero-progress{width:100%;padding:16px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.22)}}
@media print{body{background:#fff}.topbar,.sidebar,.page-head,.tabs,.no-print{display:none!important}.app-shell{padding:0}.content{padding:0}.panel{box-shadow:none;border:0}.print-only{display:block}}


/* SIGII V4 HVAC: archivos multiformato y validación técnica */
.file-actions{display:flex;gap:6px;flex-wrap:wrap}.file-actions .secondary{padding:7px 10px;font-size:12px}.muted{color:var(--muted)}
.validation-banner{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;background:linear-gradient(135deg,#fff4db,#fff);border:1px solid #efc36d;border-left:6px solid #d98b00;border-radius:16px;padding:22px;margin-bottom:15px}.validation-banner h2{margin:5px 0 8px;color:#8a4f00}.validation-banner p{max-width:980px;margin:0;line-height:1.55}
.check-list{display:grid;gap:9px;padding:0 20px 20px}.check-list>div{display:flex;gap:10px;align-items:flex-start;background:#f7fbfd;border:1px solid #dbe8ee;border-radius:10px;padding:11px}.check-list span{display:grid;place-items:center;min-width:24px;height:24px;border-radius:50%;background:#dff5ed;color:#087b61;font-weight:900}.check-list p{margin:2px 0 0}.compact{margin-top:6px}.validation-table{display:grid;gap:0;padding:0 20px 22px}.validation-table>div{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:11px 0;border-bottom:1px solid #e3eaee}.validation-table b{color:#113b5d}.pending-list{margin:0;padding:0 28px 24px 42px}.pending-list li{padding:7px 0;line-height:1.45}.toolbar small{color:var(--muted);margin-top:3px}
@media(max-width:760px){.validation-banner{display:block}.validation-table>div{grid-template-columns:1fr}.file-actions{min-width:150px}}

/* SIGII V4.2 - decisiones de aprobación */
.pill.gray{background:#eef1f4;color:#556273}.danger{min-height:34px;padding:0 10px;border:1px solid #b42318;border-radius:6px;background:#b42318;color:#fff;font-weight:700;cursor:pointer}.danger:hover{background:#8f1b13}.danger:disabled,.primary:disabled,.secondary:disabled{opacity:.48;cursor:not-allowed}.approval-card.rejected{background:#fff5f4;border-color:#e7a59f}.approval-card.rejected .approval-step{background:#b42318}.decision-meta,.permission-note{display:block;margin-top:7px;font-size:8px;line-height:1.4}.decision-meta{color:#4c6075}.permission-note{padding:7px;border-radius:5px;background:#fff7e6;color:#8a5a00}.decision-history{padding:12px;display:grid;gap:8px}.decision-history article{padding:10px;border:1px solid var(--line);border-radius:7px;display:grid;grid-template-columns:1fr auto;gap:5px}.decision-history article b{font-size:9px}.decision-history article small,.decision-history article p{grid-column:1/-1;margin:0;color:var(--muted);font-size:8px;line-height:1.45}.approval-actions .danger{font-size:8px}


/* SIGII V4.3 - reproductor de video integrado y diagnóstico de códec */
.video-preview-shell{display:grid;gap:12px}.video-preview-shell video{display:block;width:100%;max-height:62vh;background:#050505;border-radius:10px;box-shadow:0 8px 25px rgba(0,0,0,.16)}.video-status,.video-help{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#f7fafc}.video-status b,.video-help b{font-size:11px}.video-status span,.video-help span{font-size:9px;line-height:1.5;color:var(--muted)}.video-status.ok{border-color:#93d7b0;background:#f1fbf5}.video-status.error{border-color:#e4a3a3;background:#fff4f4}.video-status.error b{color:#9b1c1c}.video-status.ok b{color:#19653a}@media(max-width:760px){.video-preview-shell video{max-height:48vh}}

/* SIGII V4.4 - cronograma editable, automatico e integrado */
.schedule-hero{margin-bottom:14px;padding:18px 20px;border-radius:12px;color:#fff;background:linear-gradient(125deg,#082746,#0b4f79 58%,#0e8581);display:flex;align-items:center;justify-content:space-between;gap:18px}.schedule-hero h2{margin:4px 0 6px;font-family:Georgia,serif;font-size:24px}.schedule-hero p{margin:0;color:#d7e5f0;font-size:10px}.schedule-toolbar{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.schedule-toolbar .secondary{border-color:rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.08)}.schedule-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.schedule-kpis article{min-height:83px;padding:14px;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:var(--shadow);display:grid;align-content:center;gap:6px}.schedule-kpis small{color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.07em}.schedule-kpis b{font-family:Georgia,serif;font-size:24px;color:var(--navy-900)}.schedule-panel{margin-bottom:14px}.schedule-alerts{margin-bottom:14px}.schedule-alerts>div:last-child{padding:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.schedule-alerts article{padding:10px;border:1px solid #ecd2a2;border-radius:8px;background:#fffaf0;display:flex;align-items:center;justify-content:space-between;gap:10px}.schedule-alerts article span{display:flex;align-items:center;gap:8px}.schedule-alerts article b{font-size:9px}.schedule-alerts article small{color:var(--muted);font-size:8px}.gantt{overflow:auto}.gantt-head,.gantt-row{min-width:1000px;display:grid;grid-template-columns:270px 1fr}.gantt-head{position:sticky;top:0;z-index:2;background:#f2f6f9;border-bottom:1px solid var(--line);font-size:8px;font-weight:700}.gantt-head>div:first-child{padding:10px}.gantt-axis{height:38px;position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(90deg,transparent 0,transparent calc(8.333% - 1px),#dfe7ee calc(8.333% - 1px),#dfe7ee 8.333%)}.gantt-axis span{position:absolute;top:0;height:100%;padding:11px 4px;border-left:1px solid #cfd9e2;text-align:center;white-space:nowrap;overflow:hidden}.gantt-row{min-height:48px;border-bottom:1px solid #edf1f4}.gantt-row>div:first-child{padding:8px 10px;display:grid;gap:3px}.gantt-row b{font-size:8px}.gantt-row small{color:var(--muted);font-size:7px}.gantt-track{position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(90deg,#fff 0,#fff calc(8.333% - 1px),#edf2f6 calc(8.333% - 1px),#edf2f6 8.333%)}.gantt-bar{position:absolute;top:14px;height:20px;min-width:20px;border-radius:5px;background:#c7d8e8;overflow:hidden;box-shadow:0 2px 5px rgba(0,0,0,.08)}.gantt-bar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#1265ad,#0e9992)}.gantt-bar em{position:absolute;z-index:1;inset:0;display:grid;place-items:center;color:#fff;font-style:normal;font-size:7px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.5)}.gantt-bar.vencido{background:#e9b2b2}.gantt-bar.vencido i,.gantt-bar.rechazado i{background:#c0392b}.gantt-bar.por-vencer{background:#f4d99e}.gantt-bar.bloqueado{background:#cfd5dc}.gantt-bar.bloqueado i{background:#7b8794}.gantt-bar.completado i{background:#25955a}.schedule-table-wrap{max-height:680px}.schedule-table{min-width:1450px}.schedule-table thead{position:sticky;top:0;z-index:3}.schedule-table th:nth-child(1){width:290px}.schedule-table th:nth-child(2){width:220px}.schedule-table th:nth-child(3){width:205px}.schedule-table th:nth-child(4){width:220px}.schedule-table th:nth-child(5){width:170px}.schedule-table th:nth-child(6){width:210px}.schedule-table th:nth-child(7){width:250px}.phase-row td{padding:9px 12px!important;color:#fff;background:#0b355d!important}.phase-row td{display:flex;justify-content:space-between;align-items:center}.phase-row .ghost{min-height:28px;color:#fff}.subtask-row td:first-child{padding-left:28px}.schedule-actions{display:flex;flex-wrap:wrap;gap:4px}.schedule-actions button{min-height:28px;padding:0 7px;font-size:7px}.schedule-history{padding:12px;display:grid;gap:8px}.schedule-history article{padding:11px;border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:1fr auto;gap:5px}.schedule-history article span{display:grid;gap:3px}.schedule-history article b{font-size:9px}.schedule-history article small,.schedule-history article p{grid-column:1/-1;margin:0;color:var(--muted);font-size:8px;line-height:1.5}.deliverables-list{display:grid;gap:8px}.deliverables-list label{padding:10px;border:1px solid var(--line);border-radius:8px;display:flex;align-items:flex-start;gap:9px}.deliverables-list label span{display:grid;gap:4px}.deliverables-list b{font-size:9px}.deliverables-list small{color:var(--muted);font-size:8px}.three-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.warning-check{padding:10px;border:1px solid #efcf8d;border-radius:7px;background:#fff9e9;color:#725111;font-size:9px;line-height:1.45}.warning-check input{margin-right:7px}
@media(max-width:1150px){.schedule-kpis{grid-template-columns:repeat(3,1fr)}.schedule-hero{align-items:flex-start;flex-direction:column}.schedule-toolbar{justify-content:flex-start}.schedule-alerts>div:last-child{grid-template-columns:1fr}}
@media(max-width:720px){.schedule-kpis{grid-template-columns:1fr 1fr}.three-fields{grid-template-columns:1fr}.schedule-hero h2{font-size:20px}.schedule-toolbar{width:100%}.schedule-toolbar button{flex:1}.schedule-kpis article:last-child{grid-column:1/-1}}

/* SIGII V4.7 - empresas, semilleros, gestión comercial e importación inteligente */
.entity-card{display:grid;align-content:start;gap:10px}.entity-logo{width:100%;height:118px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#f7fafc;padding:8px}.entity-logo.large{width:190px;height:110px}.entity-editor{display:grid;grid-template-columns:210px 1fr;gap:18px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fbfd}.card-actions,.workflow-actions{display:flex;gap:8px;flex-wrap:wrap}.card-actions button,.workflow-actions button,.button-link{min-height:34px}.button-link{display:inline-flex;align-items:center;padding:0 12px;border:1px solid var(--line);border-radius:6px;text-decoration:none;color:var(--navy-900);background:#fff;font-weight:700;font-size:9px}.button-link:hover{background:#eef5f8}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-grid label{display:flex;gap:8px;align-items:flex-start;padding:9px;border:1px solid var(--line);border-radius:7px;background:#f8fbfd;font-size:9px}.check-grid small{display:block;color:var(--muted)}.relation-row,.trash-row{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:10px;border-bottom:1px solid var(--line)}.relation-row span,.trash-row small{color:var(--muted);font-size:8px}.trash-box{margin:14px;border:1px solid #e1b4b0;border-radius:8px;background:#fff8f7}.trash-box summary{padding:11px 13px;font-weight:700;color:#8f251d;cursor:pointer}.commercial-hero{display:flex;justify-content:space-between;gap:25px;align-items:center;margin-bottom:14px;padding:20px;border-radius:13px;color:#fff;background:linear-gradient(125deg,#17324d,#0c6983 60%,#15907f)}.commercial-hero h2{margin:4px 0 8px;font-family:Georgia,serif}.commercial-hero p{margin:0;color:#dfeff2}.compact-select{min-width:420px}.compact-select span{color:#fff}.compact-select select{background:#fff}.status-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px}.status-strip>span{display:grid;gap:5px;padding:11px;border:1px solid var(--line);border-radius:8px;background:#f8fbfd}.status-strip small{color:var(--muted);text-transform:uppercase;font-size:7px}.legal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px}.legal-grid>.panel{box-shadow:none}.summary-lines{display:grid;gap:7px;padding:12px}.summary-lines span{display:flex;justify-content:space-between;gap:14px;padding-bottom:7px;border-bottom:1px dashed #d8e0e6}.summary-lines .grand{font-size:13px;color:var(--navy-900);border-top:2px solid var(--navy-900);padding-top:10px}.legal-note{font-size:8px;line-height:1.55;color:var(--muted);padding:10px}.legal-warning{margin:12px;padding:12px;border:1px solid #e0b856;border-left:5px solid #d18a00;border-radius:8px;background:#fff8df;color:#684b08;font-size:9px;line-height:1.5}.locked-box{margin:16px;padding:22px;border:1px dashed #bd7770;border-radius:10px;background:#fff7f6;text-align:center}.locked-box b{color:#9a2c22;font-size:13px}.document-choice{padding:18px;border:1px solid var(--line);border-radius:9px;background:#f7fbfd}.document-choice b{font-size:17px;color:var(--navy-900)}.modal-table{max-height:55vh}.modal-table table{min-width:900px}
@media(max-width:900px){.entity-editor,.legal-grid{grid-template-columns:1fr}.compact-select{min-width:0;width:100%}.commercial-hero{align-items:flex-start;flex-direction:column}.status-strip{grid-template-columns:1fr 1fr}.check-grid{grid-template-columns:1fr}}
@media(max-width:600px){.status-strip{grid-template-columns:1fr}.entity-logo.large{width:100%}}

/* SIGII V4.7 - importador inteligente de Excel y normalización BOM */
.import-status{padding-top:0}.import-observations{margin:0 12px 12px;border:1px solid #b9d6df;border-radius:8px;background:#f4fbfc}.import-observations summary{padding:11px 13px;color:#0a5a6d;font-size:10px;font-weight:800;cursor:pointer}.import-observations ul{margin:0;padding:0 28px 13px;color:#466171;font-size:9px;line-height:1.55}.import-preview-summary{margin-bottom:10px;padding:12px 14px;border:1px solid #a9d7cf;border-radius:9px;background:#f1fbf8}.import-preview-summary b{color:#0b625d;font-size:11px}.import-preview-summary p{margin:4px 0 0;color:var(--muted);font-size:9px}.mapping-details{margin-bottom:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.mapping-details summary{padding:10px 12px;font-size:9px;font-weight:800;color:var(--navy-900);cursor:pointer}.mapping-details .data-table{min-width:620px}.error-warning{border-color:#e1a6a1;border-left-color:#b8322a;background:#fff4f3;color:#7d201a}

/* SIGII V4.7 */
.avatar{object-fit:cover}.avatar.large{width:84px;height:84px;font-size:24px}.profile .avatar{width:34px;height:34px}.decision-summary{margin-top:16px;border:1px solid #d5e3ec;border-left:5px solid #0b7f88;background:#f5fafb;border-radius:14px;padding:14px}.decision-summary h3{margin:0 0 8px;color:#082746}.decision-summary p{margin:0 0 12px;color:#24425a}.file-actions{display:flex;gap:6px;flex-wrap:wrap}.muted{color:#6b7c8d;font-size:12px}.brand img.brand-logo-small{height:40px;width:auto}.logo-img{max-height:54px}

/* SIGII V4.8 - identidad, perfiles, manuales, activos empresariales y presentaciones */
.corporate-login-logo{display:flex;align-items:center;gap:12px}.corporate-login-logo img{width:230px;max-height:80px;object-fit:contain}
.brand-logo-small{width:104px;height:38px;object-fit:contain}.brand .logo-mark{display:none}
.profile-center{display:flex;align-items:center;gap:18px;padding:12px}.profile-center .avatar.large{width:96px;height:96px;font-size:28px}
.manual-current{display:flex;align-items:center;gap:16px;padding:14px;border:1px solid #d5e2eb;border-radius:12px;background:#f8fbfd}.manual-current img{width:180px;max-height:62px;object-fit:contain}.manual-current span{display:grid;gap:3px}.manual-current strong{color:#062947}
.asset-list{display:grid;gap:9px;margin:12px 0}.asset-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px;border:1px solid #d8e3ea;border-radius:10px;background:#fff}.asset-row span{display:grid;gap:3px;min-width:0}.asset-row b,.asset-row small{overflow-wrap:anywhere}.asset-row small{color:#61788a}.asset-upload-box{padding:13px;border:1px dashed #9eb7c7;border-radius:10px;background:#f6fafc}
.presentation-option{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid #cbdbe5;border-radius:11px;background:#fff;cursor:pointer}.presentation-option span{display:grid;gap:4px}.presentation-option small{color:#61788a}.disabled-option{opacity:.55;cursor:not-allowed}
.file-actions{display:flex;gap:6px;flex-wrap:wrap}.avatar.large{width:92px;height:92px}.avatar:is(img){object-fit:cover}.logo-img{max-width:100%;object-fit:contain}
@media(max-width:720px){.corporate-login-logo img{width:170px}.manual-current{align-items:flex-start;flex-direction:column}.asset-row{align-items:flex-start;flex-direction:column}}


/* V4.8.1 - estado del lector XLSX */
.xlsx-reader-state{display:flex;align-items:center;gap:12px;margin:0 12px 12px;padding:10px 14px;border-radius:10px;border:1px solid #b8d9c8;background:#eefaf4;color:#155b37;font-size:12px}.xlsx-reader-state span{color:#42665a}.xlsx-reader-state.missing{border-color:#e6b7b1;background:#fff3f2;color:#a52a21}.xlsx-reader-state.missing span{color:#7a4b47}
