/* Paneles laterales: 2 o 3 columnas según el ancho */
main.wide{max-width:1560px}
.layout{display:grid;grid-template-columns:270px minmax(0,1fr) 300px;gap:16px;align-items:start}
.layout.two.b{grid-template-columns:330px minmax(0,1fr)}
.side .rings{gap:6px}.side .ring{width:47%}.side .ring svg{width:92px;height:92px}.side .ring b{font-size:13px}
.layout.two{grid-template-columns:270px minmax(0,1fr)}
.side{position:sticky;top:52px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 64px);overflow-y:auto;padding-right:2px}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 1px 3px rgba(20,40,80,.05)}
.panel h3{margin:0 0 10px;font-size:14px;text-transform:uppercase;letter-spacing:.5px;color:var(--mut);display:flex;justify-content:space-between;align-items:center}
.panel label{display:block;font-size:12px;color:var(--mut);margin:8px 0 3px}.panel select,.panel input:not([type=file]):not([type=checkbox]){width:100%}
.panel .btn,.panel button{margin-top:8px}
.panel details{border:0;padding:0;margin:0;background:none}.panel summary{font-weight:600;color:var(--brand)}
.center{min-width:0}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}
.kpis div{background:linear-gradient(135deg,#fff,#f3f7fd);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.kpis b{display:block;font-size:26px;color:var(--brand);line-height:1.1}.kpis small{color:var(--mut)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.tabs span{font-size:12px;color:var(--mut);margin-right:4px}
.tab{padding:6px 14px;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--brand);text-decoration:none;font-size:13px;font-weight:600}
.tab.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.chip{display:inline-flex;gap:6px;align-items:center;background:var(--info-bg);color:#175a9f;border-radius:99px;padding:4px 6px 4px 12px;font-size:13px;font-weight:600}
.chip a{background:#fff;border-radius:50%;width:18px;height:18px;line-height:17px;text-align:center;text-decoration:none;color:#175a9f}
.grp{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden;box-shadow:0 1px 3px rgba(20,40,80,.05)}
.grp>summary{display:flex;gap:12px;align-items:center;padding:12px 14px;cursor:pointer;background:linear-gradient(90deg,#f3f7fd,#fff);list-style:none}
.grp>summary::-webkit-details-marker{display:none}.grp>summary b{font-size:16px;color:var(--brand)}
.grp>summary .meta{margin-left:auto;display:flex;gap:10px;align-items:center;font-size:13px;color:var(--mut)}
.grp>summary:before{content:"▸";color:var(--brand2);transition:transform .15s}.grp[open]>summary:before{transform:rotate(90deg)}
.grp .body{padding:4px 12px 10px;overflow-x:auto}
.pill{background:#eaf1fb;color:var(--brand);border-radius:99px;padding:2px 10px;font-weight:700;font-size:12px}
.lrow{display:block;text-decoration:none;color:inherit;padding:6px 8px;border-radius:8px;margin:0 -8px}.lrow:hover{background:#f3f7fd}.lrow.on{background:var(--info-bg)}
.lrow .t{display:flex;justify-content:space-between;gap:8px;font-size:13px}.lrow .t span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lrow .t b{font-size:12px;white-space:nowrap}.lrow .bar{height:7px;margin-top:4px;min-width:0}
.scroll{max-height:340px;overflow-y:auto;margin-right:-6px;padding-right:6px}
.crit{color:var(--cr)}.warn{color:#b87500}
@media(max-width:1180px){.layout{grid-template-columns:260px minmax(0,1fr)}.layout>.side.right{grid-column:1/-1;position:static;max-height:none;flex-direction:row;flex-wrap:wrap}.layout>.side.right .panel{flex:1 1 300px}}
@media(max-width:800px){.layout,.layout.two{grid-template-columns:1fr}.side{position:static;max-height:none}}

[data-show="1"] .lc:not(.l1),[data-show="2"] .lc:not(.l2),[data-show="3"] .lc:not(.l3){display:none}
button.tab{font:inherit;font-size:13px;font-weight:600;cursor:pointer}

.layout.nopanel,.layout.two.b.nopanel{grid-template-columns:1fr}.layout.nopanel>.side{display:none}

nav.migas{position:static;box-shadow:none;border:0;background:none;padding:0;margin:0 0 8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;overflow:visible}
nav.migas a{padding:2px 4px;color:var(--brand2);font-weight:500;border-radius:6px}nav.migas a:hover{background:#e8f0fb}nav.migas .sep{color:#9aa3b5}nav.migas .act{color:var(--ink);font-weight:700}

.demo-banner{background:#fff3cd;color:#664d03;text-align:center;font-size:13px;padding:5px 10px;border-bottom:1px solid #ffe69c}
.login-demo{max-width:460px;margin:0 auto 40px}.login-demo table td{padding:5px 6px}.login-demo code{background:#f0f3f9;padding:2px 6px;border-radius:6px}
.cons{text-align:center;padding:50px 20px}.cons .ic{font-size:64px}.mods{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.mod{display:block;text-decoration:none;color:inherit;background:#fff;border:1px dashed #b9c2d3;border-radius:14px;padding:18px}.mod:hover{border-color:var(--brand2);background:#f8fbff}.mod b{display:block;font-size:17px;color:var(--brand);margin:6px 0}

/* ---- página de inicio ---- */
body.landing{background:#fff}
.lp-top{display:flex;justify-content:space-between;align-items:center;max-width:1180px;margin:0 auto;padding:16px}.lp-top b{font-size:22px;color:var(--brand);letter-spacing:.3px}
.hero{max-width:1180px;margin:0 auto;padding:30px 16px 50px;display:grid;grid-template-columns:1fr 1.15fr;gap:34px;align-items:center}
.hero h1{font-size:46px;line-height:1.08;margin:12px 0 14px;color:var(--brand)}.hero p{font-size:17px;color:#3b465c}
.pill-badge{display:inline-block;background:var(--info-bg);color:#175a9f;font-weight:700;font-size:13px;border-radius:99px;padding:5px 14px}
.btn.big{padding:13px 22px;font-size:16px;border-radius:12px}.hero-cta{margin:22px 0 10px}
.frame{border-radius:14px;overflow:hidden;box-shadow:0 18px 50px rgba(18,53,91,.28);border:1px solid #d6deec;background:#fff}
.frame img{display:block;width:100%;height:auto}.frame-bar{background:#e9eef7;padding:9px 12px;display:flex;gap:6px}.frame-bar i{width:10px;height:10px;border-radius:50%;background:#c3cde0}
.frame.placeholder{display:grid;place-items:center;height:300px;font-size:80px;background:linear-gradient(135deg,#eaf1fb,#fff)}
.lp-sec{max-width:1180px;margin:0 auto;padding:44px 16px}.lp-sec h2{text-align:center;font-size:30px;color:var(--brand);margin:0 0 26px}
.lp-sec.alt{max-width:none;background:linear-gradient(180deg,#f3f7fd,#fff)}.lp-sec.alt>*{max-width:1180px;margin-left:auto;margin-right:auto}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.feat>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 2px 8px rgba(20,40,80,.05)}
.feat span{font-size:32px;display:block;margin-bottom:6px}.feat b{display:block;font-size:17px;color:var(--brand);margin-bottom:4px}.feat p{margin:0;color:#4a5568;font-size:15px}
.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.roles>div{background:#fff;border:1px solid var(--line);border-left:5px solid var(--brand2);border-radius:12px;padding:16px}.roles b{display:block;color:var(--brand);font-size:17px}.roles span{color:#4a5568}
.lp-foot{text-align:center;color:var(--mut);font-size:13px;padding:26px 16px;border-top:1px solid var(--line)}
@media(max-width:860px){.hero{grid-template-columns:1fr;padding-top:10px}.hero h1{font-size:34px}}

header.lp-top{background:#fff;color:var(--brand);padding:16px}header.lp-top b{color:var(--brand);font-size:24px}
