:root{--navy:#071a2d;--navy2:#0b253f;--blue:#0f6feb;--cyan:#00b8d9;--teal:#00b894;--purple:#7c4dff;--bg:#f4f8fc;--text:#13233a;--muted:#6e8098;--border:#e5edf5;--danger:#ef5350;--warn:#f6a623}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}.app{display:flex;min-height:100vh}.sidebar{width:252px;background:linear-gradient(180deg,var(--navy),#061522);color:#dce8f5;position:fixed;inset:0 auto 0 0;padding:22px 14px;overflow:auto}.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 26px}.brandmark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--cyan),var(--blue));display:grid;place-items:center;font-weight:900;font-size:22px;color:white;transform:skew(-8deg)}.brand h1{font-size:18px;margin:0;color:#fff;line-height:1.05}.brand small{font-size:11px;color:#91abc4}.menu-group{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#63809b;padding:18px 12px 7px}.nav-item{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:10px;margin:2px 0;font-size:14px}.nav-item:hover,.nav-item.active{background:linear-gradient(90deg,#1067d5,#0879e9);color:#fff;box-shadow:0 8px 18px #0568cc30}.nav-ico{width:22px;text-align:center}.side-footer{margin-top:30px;padding:14px 10px;border-top:1px solid #18344c;color:#7894ad;font-size:11px}.main{margin-left:252px;width:calc(100% - 252px)}.topbar{height:68px;background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:0 26px;position:sticky;top:0;z-index:20}.search{flex:1;max-width:440px;background:#f3f7fb;border:1px solid var(--border);border-radius:10px;padding:11px 14px;color:#496079}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:10px 14px;font-weight:700;cursor:pointer}.btn-primary{background:var(--blue);color:#fff}.btn-soft{background:#edf5ff;color:#0d68d7}.btn-danger{background:#fff0f0;color:#c23d3d}.content{padding:28px}.heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.heading h2{font-size:28px;margin:0 0 4px}.muted{color:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}.card{background:white;border:1px solid var(--border);border-radius:15px;box-shadow:0 6px 18px #18344d08}.kpi{padding:17px}.kpi-value{font-size:24px;font-weight:800}.kpi-label{font-size:13px;color:#425973}.kpi-foot{font-size:11px;color:var(--muted);margin-top:10px}.grid-3{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:15px;margin-top:15px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}.panel{padding:18px}.panel h3{font-size:15px;margin:0 0 16px}.bars{display:flex;align-items:end;height:170px;gap:18px;padding:10px 8px 0;border-bottom:1px solid #e9eff5}.bar-wrap{height:100%;flex:1;display:flex;align-items:end;justify-content:end;flex-direction:column;gap:5px}.bar{width:100%;background:linear-gradient(180deg,#48a7ff,#0f6feb);border-radius:6px 6px 0 0;min-height:15px}.bar-label{font-size:10px;color:var(--muted);text-align:center;width:100%}.ring{width:132px;height:132px;border-radius:50%;background:conic-gradient(var(--teal) 0 50%,var(--blue) 50% 75%,var(--purple) 75% 100%);margin:auto;position:relative}.ring:after{content:"4\A Proyectos";white-space:pre;position:absolute;inset:23px;background:white;border-radius:50%;display:grid;place-items:center;text-align:center;font-weight:800;font-size:13px}.list{display:flex;flex-direction:column;gap:10px}.list-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #eef3f7}.list-row:last-child{border-bottom:0}.grow{flex:1}.badge{font-size:10px;padding:5px 8px;border-radius:999px;font-weight:700;background:#edf5ff;color:#1967c9}.badge.green{background:#e9fbf5;color:#118b67}.badge.red{background:#fff0f0;color:#d94646}.badge.orange{background:#fff5e6;color:#b86c00}.progress{height:6px;background:#e8eef5;border-radius:10px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--blue)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#6f8296;text-align:left;padding:11px 12px;border-bottom:1px solid var(--border)}.table td{padding:13px 12px;border-bottom:1px solid #edf2f6;font-size:13px;vertical-align:middle}.table tr:hover td{background:#fbfdff}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.field label{display:block;font-size:12px;color:#52677d;margin-bottom:5px;font-weight:700}.input,.select,.textarea{width:100%;border:1px solid #dce6ef;border-radius:9px;padding:10px 11px;background:white;font:inherit}.textarea{min-height:90px}.modal-backdrop{position:fixed;inset:0;background:#001a2f80;display:none;align-items:center;justify-content:center;z-index:50;padding:20px}.modal-backdrop.show{display:flex}.modal{background:#fff;border-radius:16px;width:min(680px,100%);max-height:90vh;overflow:auto;padding:22px;box-shadow:0 25px 60px #001a2f40}.mobile-menu{display:none}.empty{padding:35px;text-align:center;color:var(--muted)}.login-page{min-height:100vh;background:linear-gradient(135deg,#061727,#0b3155);display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);background:white;border-radius:20px;padding:28px;box-shadow:0 30px 80px #0006}.login-logo{display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-card h2{margin:0 0 5px}.login-card .btn{width:100%;margin-top:14px}.alert{padding:11px 13px;border-radius:10px;margin-bottom:14px;font-size:13px}.alert.success{background:#e9fbf5;color:#167a5f}.alert.error{background:#fff0f0;color:#b63e3e}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s;z-index:60}.sidebar.open{transform:translateX(0)}.main{margin-left:0;width:100%}.mobile-menu{display:inline-flex}.content{padding:18px}.topbar{padding:0 14px}.search{max-width:none}.kpis{grid-template-columns:1fr 1fr}.heading{align-items:center}.heading h2{font-size:23px}.form-grid{grid-template-columns:1fr}.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:18px 18px 0 0;width:100%;max-height:86vh}.user-name{display:none}}
@media(max-width:460px){.kpis{grid-template-columns:1fr}.top-actions .btn-soft{display:none}}
.edit-card{margin-bottom:16px;border-left:4px solid var(--blue)}
.quote-items{margin:18px 0;padding-top:14px;border-top:1px solid var(--border)}
.quote-row{display:grid;grid-template-columns:1.1fr 1.7fr .55fr .8fr;gap:9px;margin-bottom:9px}
.table .btn{padding:7px 10px;font-size:12px}
@media(max-width:760px){.quote-row{grid-template-columns:1fr 1fr}.quote-row .item-desc{grid-column:1/-1}.edit-card{border-left:1px solid var(--border)}}
/* Evoluciona Control V1.2 — identidad corporativa negro + verde */
:root{--navy:#050a08;--navy2:#0a1510;--blue:#28e75b;--cyan:#7cff45;--teal:#18d84b;--purple:#7b4dff;--bg:#07100c;--text:#f2f7f3;--muted:#8ea39a;--border:#1b3025;--danger:#ff5c5c;--warn:#f5b942}
body{background:radial-gradient(circle at 78% 0,#0d321c 0,transparent 28%),#07100c;color:var(--text)}
.sidebar{background:linear-gradient(180deg,#050907 0%,#07120d 55%,#030806 100%);border-right:1px solid #173221;padding-top:12px}.brand{display:block;padding:0 6px 20px}.brand-logo{width:100%;height:118px;object-fit:cover;object-position:center;border-radius:14px}.control-name{text-align:center;margin-top:-6px}.control-name strong{display:block;color:#36f267;font-size:18px;letter-spacing:.16em}.control-name small{display:block;color:#d9e5dd;font-size:9px;letter-spacing:.24em;margin-top:4px}.menu-group{color:#567060}.nav-item{color:#c9d7cf}.nav-item:hover,.nav-item.active{background:linear-gradient(90deg,#063c1c,#0b742f);color:#fff;box-shadow:0 0 0 1px #25e85a,0 8px 22px #18e64b18}.side-footer{border-top-color:#173221;color:#6f8778}.main{background:transparent}.topbar{background:#07100dec;border-bottom:1px solid #173221;backdrop-filter:blur(14px)}.search{background:#0b1711;border-color:#20372a;color:#e7f1ea}.search::placeholder{color:#71877a}.card{background:linear-gradient(145deg,#0c1712,#0a130f);border-color:#1d3326;box-shadow:0 8px 24px #0005}.kpi-value{color:#fff}.kpi-label{color:#c0d0c6}.btn-primary{background:linear-gradient(135deg,#2cf35e,#13b942);color:#041007;box-shadow:0 5px 18px #22e95825}.btn-primary:hover{filter:brightness(1.08)}.btn-soft{background:#10251a;color:#65f587;border:1px solid #285d39}.btn-danger{background:#301313;color:#ff8989;border:1px solid #672525}.btn-pdf{background:#fff;color:#0a1710;border:1px solid #dce6df}.table th{color:#8ca197;border-color:#21382a}.table td{border-color:#17291f}.table tr:hover td{background:#102019}.input,.select,.textarea{background:#0b1711;border-color:#27402f;color:#f1f7f3}.input:focus,.select:focus,.textarea:focus{outline:2px solid #26df55;border-color:#26df55}.modal{background:#09130e;border:1px solid #25402f}.modal-backdrop{background:#000b}.progress{background:#1b2c22}.progress>span{background:linear-gradient(90deg,#20dc50,#70ff4c)}.bar{background:linear-gradient(180deg,#72ff52,#0dba3d);box-shadow:0 0 18px #20ed5540}.ring:after{background:#0a1510;color:#fff}.badge{background:#10251a;color:#67ef87}.badge.green{background:#0d311b;color:#57f37d}.badge.red{background:#361616;color:#ff7c7c}.badge.orange{background:#33260e;color:#ffc85a}.quote-items{border-color:#20382a}.edit-card{border-left-color:#29eb5b}.login-page{background:radial-gradient(circle at 65% 10%,#155729 0,transparent 35%),linear-gradient(135deg,#020604,#07140d)}.login-card{background:#08120d;border:1px solid #1d3a27;color:#fff}.login-logo{align-items:center}.login-logo img{width:155px;height:100px;object-fit:cover;border-radius:12px}.alert.success{background:#0c321a;color:#65f287}.alert.error{background:#361616;color:#ff9292}.muted{color:var(--muted)}
@media(max-width:760px){.brand-logo{height:100px}.topbar{background:#07100df5}}

/* V1.2.1 - Corrección profesional de marca */
.brand{display:flex;flex-direction:column;align-items:center;padding:14px 10px 24px;overflow:visible}.brand-icon{width:96px;height:86px;object-fit:contain;display:block;filter:drop-shadow(0 8px 18px #20ef5d28)}.brand-wordmark{margin-top:4px;color:#fff;font-size:19px;font-weight:850;letter-spacing:-.6px;line-height:1;white-space:nowrap}.brand-wordmark span{color:#36f267;margin-left:2px}.control-name{margin-top:10px}.control-name strong{font-size:17px}.control-name small{font-size:8px;letter-spacing:.3em}.login-logo.brand-lockup{display:flex;align-items:center;gap:18px}.login-logo.brand-lockup img{width:92px;height:82px;object-fit:contain;border-radius:0}.brand-copy{min-width:0}.brand-main{font-size:25px;font-weight:900;letter-spacing:-1px;line-height:1;color:#fff;white-space:nowrap}.brand-main span{color:#35ee61;margin-left:3px}.brand-sub{font-size:12px;font-weight:800;letter-spacing:.2em;color:#35ee61;margin-top:8px}.login-logo .muted{margin-top:6px}@media(max-width:760px){.brand-icon{width:82px;height:74px}.brand-wordmark{font-size:17px}}

/* V1.4.1 · Administración Landing / Demos */
.check{display:flex;align-items:center;gap:9px;color:#dbe8e1;font-size:13px;margin:8px 0}.check input{width:auto;accent-color:#25e76a}.edit-card code,.table code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:#8feaac;word-break:break-all}.field input[type=file]{padding:10px}.table td .btn{margin:2px}.content .grid-2>.card{min-width:0}

/* V1.4.2 · Acciones compactas */
.action-icons{display:flex;align-items:center;gap:7px;flex-wrap:nowrap}.inline-action{display:inline-flex;margin:0}.icon-action{width:38px!important;height:38px!important;min-width:38px!important;padding:0!important;display:inline-grid!important;place-items:center!important;border-radius:9px!important;font-size:17px!important;line-height:1!important}.icon-action:hover{transform:translateY(-1px)}
@media(max-width:720px){.action-icons{gap:5px}.icon-action{width:36px!important;height:36px!important;min-width:36px!important}}
