/* Tema PlaneaWeb — naranja coral #FC653C + azul oscuro #081E29 (colores reales de marca) */
:root{
  --brand-900:#081E29;--brand-800:#0C2733;--brand-700:#12384A;--brand-600:#E14A2B;--brand-500:#FC653C;
  --brand-400:#FD8A63;--brand-050:#FFEDE6;
  --growth:#16A34A;--growth-050:#E9F8EF;--danger:#DC2626;--danger-050:#FEECEC;--warn:#C2560B;
  --bg:#F4F5F7;--card:#fff;--text:#14232B;--muted:#64758B;--border:#E7E9EE;
  --shadow:0 1px 2px rgba(16,32,64,.04),0 8px 24px rgba(16,32,64,.06);--radius:16px;--sbw:280px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%;max-width:100%;overflow-x:hidden}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.hidden{display:none!important}.muted{color:var(--muted)}
/* Login */
.login{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--bg)}
.login-hero{background:linear-gradient(150deg,#081E29,#12384A);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login-hero::after{content:"";position:absolute;right:-120px;bottom:-120px;width:380px;height:380px;border-radius:50%;background:rgba(252,101,60,.12)}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;width:fit-content}
.hero-title{font-size:36px;line-height:1.15;font-weight:800;margin:24px 0 14px;max-width:16ch}
.hero-sub{font-size:16px;line-height:1.6;opacity:.9;max-width:44ch}
.hero-points{display:flex;flex-direction:column;gap:13px;margin-top:28px}
.hero-point{display:flex;align-items:center;gap:12px;font-size:15px;opacity:.95}
.hero-point .dot{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:16px}
.hero-motto{font-weight:700;font-size:15px;opacity:.95}
.login-panel{display:grid;place-items:center;padding:40px}
.login-card{width:100%;max-width:380px}
.login-logo{height:38px;margin-bottom:32px}
.login-card h2{font-size:24px;font-weight:800;margin-bottom:6px}
.login-card p.lead{color:var(--muted);margin-bottom:24px;font-size:15px}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:7px;color:#33415a}
.field input{width:100%;padding:13px 14px;border:1px solid var(--border);border-radius:11px;font-size:15px;font-family:inherit;background:#fff}
.field input:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-050)}
.btn{width:100%;padding:13px;border:none;border-radius:11px;background:var(--brand-500);color:#fff;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:.15s}
.btn:hover{background:var(--brand-600)}
.login-foot{margin-top:24px;font-size:13px;color:var(--muted);text-align:center}
.login-foot a{color:var(--brand-600);font-weight:600}
.alert{background:var(--danger-050);border:1px solid #f6c9c9;color:#a01818;padding:11px 13px;border-radius:11px;font-size:13.5px;margin-bottom:16px}
.demo-hint{margin-top:18px;background:var(--brand-050);border:1px dashed #F7C0A6;color:#B23A17;font-size:12.5px;padding:11px 13px;border-radius:11px;line-height:1.5}
/* Shell */
.sidebar{position:fixed;top:0;left:0;width:var(--sbw);height:100vh;overflow-y:auto;background:var(--brand-900);color:#c7d6ea;padding:20px 14px;display:flex;flex-direction:column;z-index:40}
.side-brand{display:flex;align-items:center;gap:10px;padding:4px 6px 18px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:10px}
.side-brand .logo-pill{background:#fff;border-radius:9px;padding:7px 9px}.side-brand .logo-pill img{height:20px}
.side-brand small{display:block;color:#8ea6c6;font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.side-brand b{font-size:14px;color:#fff}
.nav{display:flex;flex-direction:column;gap:3px}
.nav-label{font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#6d84a6;padding:15px 10px 6px}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:10px;font-size:14px;font-weight:500;color:#c7d6ea;cursor:pointer;transition:.15s}
.nav-item .nav-title{min-width:0;line-height:1.35}
.nav-item .emo{width:22px;height:22px;display:grid;place-items:center;flex:none}
.ui-icon{width:18px;height:18px;display:block}
.nav-item .ui-icon{width:17px;height:17px}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.nav-item.active{background:var(--brand-500);color:#fff;box-shadow:0 6px 16px rgba(252,101,60,.4)}
.side-help{margin-top:auto;background:rgba(255,255,255,.06);border-radius:14px;padding:15px;margin-top:18px}
.side-help b{color:#fff;font-size:13px}.side-help p{color:#9fb4d1;font-size:12px;margin:6px 0 11px;line-height:1.5}
.side-help a{display:block;text-align:center;background:#fff;color:var(--brand-600);font-weight:700;font-size:12.5px;padding:9px;border-radius:9px}
.main{margin-left:var(--sbw);min-width:0;min-height:100vh;display:flex;flex-direction:column}
html.portal-ready,html.portal-ready body{height:100%;overflow:hidden}
html.portal-ready .main{height:100vh;height:100dvh;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-gutter:stable;scrollbar-color:#aab5bd transparent;scrollbar-width:thin}
html.portal-ready .main::-webkit-scrollbar{width:8px}
html.portal-ready .main::-webkit-scrollbar-track{background:transparent}
html.portal-ready .main::-webkit-scrollbar-thumb{background:#aab5bd;border-radius:99px;border:2px solid transparent;background-clip:content-box}
html.portal-ready .main::-webkit-scrollbar-thumb:hover{background:#7d8c97;background-clip:content-box}
.topbar{background:#fff;border-bottom:1px solid var(--border);padding:13px 26px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:20}
.hamb{display:none;background:none;border:none;cursor:pointer;color:var(--text);line-height:1}.hamb svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.topbar h2{font-size:16px;font-weight:700}
.client-chip{display:flex;align-items:center;gap:11px;min-width:0}
.avatar{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,#FC653C,#E14A2B);color:#fff;display:grid;place-items:center;font-weight:800;font-size:15px;flex:none}
.client-chip .who small{color:var(--muted);font-size:12px;display:block}.client-chip .who b{font-size:15px;white-space:nowrap}
.plan-tag{background:linear-gradient(135deg,#081E29,#12384A);color:#fff;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;letter-spacing:.3px}
.spacer{flex:1}
.period{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:11px;padding:8px 12px;font-size:14px;font-weight:600;cursor:pointer;background:#fff;white-space:nowrap}
.icon-btn{width:40px;height:40px;border-radius:11px;border:1px solid var(--border);background:#fff;display:grid;place-items:center;cursor:pointer;position:relative;flex:none}
.icon-btn svg{width:19px;height:19px;stroke:#4a5b74}
.icon-btn .badge{position:absolute;top:-4px;right:-4px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
.me{display:flex;align-items:center;gap:10px}.me small{color:var(--muted);font-size:12px;display:block}.me b{font-size:14px}
.content{padding:26px;max-width:1200px;width:100%;margin:0 auto}
.page-head{margin-bottom:22px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.page-head h1{font-size:23px;font-weight:800}.page-head p{color:var(--muted);font-size:14.5px;margin-top:4px}
.section{display:none}.section.active{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel{padding:20px}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:10px}
.panel-head h3{font-size:16px;font-weight:700}.panel-head .hint{font-size:12.5px;color:var(--muted)}
.link{color:var(--brand-600);font-weight:600;cursor:pointer;font-size:13px}
.chart-box{position:relative;height:280px;width:100%}.chart-box.sm{height:220px}
.chart-box canvas{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.kpi{padding:18px}.kpi .top{display:flex;justify-content:space-between;align-items:center}
.kpi .label{color:var(--muted);font-size:13px;font-weight:600}.kpi .emo{font-size:20px}
.kpi .value{font-size:27px;font-weight:800;letter-spacing:-.5px;margin-top:8px}
.kpi .delta{display:inline-flex;align-items:center;gap:5px;margin-top:9px;font-size:12.5px;font-weight:700;padding:3px 9px;border-radius:999px}
.delta.up{background:var(--growth-050);color:var(--growth)}.delta.down{background:var(--danger-050);color:var(--danger)}
.kpi .foot{color:var(--muted);font-size:12px;margin-top:7px}
.grid-2{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin-bottom:20px}
.grid-2b{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.svc{padding:18px;cursor:pointer;transition:.15s}.svc:hover{transform:translateY(-3px);border-color:var(--brand-400);box-shadow:0 10px 26px rgba(252,101,60,.16)}
.svc .svc-top{display:flex;align-items:center;justify-content:space-between}
.service-card-icon{width:38px;height:38px;border-radius:11px;background:var(--brand-050);color:var(--brand-600);display:grid;place-items:center}.service-card-icon .ui-icon{width:20px;height:20px}
.svc h4{font-size:14.5px;font-weight:700;margin:13px 0 5px}.svc .m{font-size:13px;color:var(--muted);min-height:18px}
.st{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.st.done{background:var(--growth-050);color:var(--growth)}.st.prog{background:var(--brand-050);color:var(--brand-600);height:auto;overflow:visible;margin-top:0}
.st.info{background:#eef1f6;color:var(--muted)}.st.warn{background:#FFF3E6;color:var(--warn)}
.prog{height:8px;border-radius:6px;background:#eef1f6;overflow:hidden;margin-top:11px}
.prog span{display:block;height:100%;background:linear-gradient(90deg,var(--brand-500),var(--brand-400));border-radius:6px}
.steps{display:flex;margin:10px 0}.step{flex:1;text-align:center;position:relative}
.step::before{content:"";position:absolute;top:15px;left:-50%;width:100%;height:3px;background:var(--border);z-index:0}
.step:first-child::before{display:none}.step.done::before,.step.active::before{background:var(--brand-500)}
.step .dot{width:32px;height:32px;border-radius:50%;background:#fff;border:3px solid var(--border);display:grid;place-items:center;margin:0 auto 9px;position:relative;z-index:1;font-size:13px;font-weight:800;color:var(--muted)}
.step.done .dot{background:var(--growth);border-color:var(--growth);color:#fff}
.step.active .dot{background:var(--brand-500);border-color:var(--brand-500);color:#fff;box-shadow:0 0 0 5px var(--brand-050)}
.step .lbl{font-size:12.5px;font-weight:600;color:var(--muted)}.step.done .lbl,.step.active .lbl{color:var(--text)}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}
.tile{background:#f8fafd;border:1px solid var(--border);border-radius:12px;padding:14px}
.tile small{color:var(--muted);font-size:12px;font-weight:600;display:block;margin-bottom:5px}.tile b{font-size:14.5px}
.deliv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.deliv{padding:18px;display:flex;flex-direction:column;gap:4px}
.deliv .di{width:42px;height:42px;border-radius:11px;background:var(--brand-050);display:grid;place-items:center;font-size:20px;margin-bottom:8px}
.deliv h4{font-size:14.5px;font-weight:700}.deliv .fmt{font-size:12px;color:var(--muted);margin-bottom:12px}.deliv .dl{margin-top:auto}
.swatches{display:flex;gap:14px;flex-wrap:wrap}.sw2{text-align:center}
.sw2 .chip{width:66px;height:66px;border-radius:13px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.07)}
.sw2 small{display:block;margin-top:7px;font-size:11px;color:var(--muted);font-weight:700}
.dl{display:inline-flex;align-items:center;gap:8px;background:var(--brand-050);color:var(--brand-600);font-weight:700;font-size:13px;padding:9px 15px;border-radius:10px;border:none;cursor:pointer;transition:.15s;width:fit-content}
.dl:hover{background:var(--brand-500);color:#fff}
.tbl-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}
thead th{text-align:left;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:0 14px 12px;border-bottom:1px solid var(--border);white-space:nowrap}
tbody td{padding:13px 14px;border-bottom:1px solid #f0f3f8;vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafcff}
.kw{font-weight:600}.kw small{display:block;color:var(--muted);font-weight:400;font-size:12px;margin-top:2px}
.pos-pill{display:inline-grid;place-items:center;min-width:34px;height:30px;border-radius:9px;font-weight:800;font-size:14px;background:var(--brand-050);color:var(--brand-600)}
.pos-pill.top{background:var(--growth-050);color:var(--growth)}
.chg{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:13px}.chg.up{color:var(--growth)}.chg.down{color:var(--danger)}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}
.tag.contenido{background:#FFEDE6;color:#C2560B}.tag.tecnico{background:#F1EBFF;color:#6D28D9}
.tag.enlaces{background:#E9F8EF;color:#16A34A}.tag.local{background:#E0F2FE;color:#0369A1}
.tag.web{background:#E0F2FE;color:#0369A1}.tag.social{background:#EDE9FE;color:#6D28D9}.tag.ads{background:#FEF3C7;color:#B45309}
.plat{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 9px;border-radius:8px}
.plat.ig{background:#FCE7F3;color:#BE185D}.plat.fb{background:#E0ECFF;color:#1D4ED8}
.plat.gads{background:#E9F8EF;color:#137333}.plat.meta{background:#E7F0FF;color:#1877F2}
.work{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid #f0f3f8}.work:last-child{border-bottom:none}
.work .check{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none;font-size:14px;background:var(--brand-050)}
.work .body{flex:1;min-width:0}.work .body .t{font-weight:600;font-size:14px;margin-bottom:3px}
.work .body .d{color:var(--muted);font-size:12.5px;line-height:1.5}
.work .meta{display:flex;align-items:center;gap:9px;margin-top:7px;flex-wrap:wrap}
.list-plain{display:flex;flex-direction:column}
.li-row{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid #f0f3f8}.li-row:last-child{border-bottom:none}
.li-row .fic{width:40px;height:48px;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:11px;flex:none;background:var(--danger-050);color:var(--danger);border:1px solid #f6d4d4}
.li-row .grow{flex:1;min-width:0}.li-row .grow b{font-size:14px;font-weight:600}
.li-row .grow small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.callout{background:#FFF8EC;border:1px solid #F6E3B8;border-radius:14px;padding:18px}
.callout h4{font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:8px}
.callout ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.callout li{font-size:13.5px;display:flex;align-items:center;gap:9px}
.callout li .cdot{width:7px;height:7px;border-radius:50%;background:var(--warn);flex:none}
.preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:4px}
.mock{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}
.mock .top{height:96px;background:linear-gradient(135deg,var(--brand-500),var(--brand-700));position:relative}
.mock .top::after{content:"";position:absolute;left:14px;right:14px;bottom:12px;height:8px;background:rgba(255,255,255,.5);border-radius:4px}
.mock .bd{padding:12px}.mock .bd .ln{height:7px;background:#eef1f6;border-radius:4px;margin-bottom:7px}.mock .bd .ln.s{width:60%}
.mock .cap{font-size:12.5px;font-weight:600;padding:0 12px 12px;color:var(--muted)}
/* Admin extras */
.att{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #f0f3f8}.att:last-child{border-bottom:none}
.att .ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;font-size:15px}
.att .b{flex:1;min-width:0}.att .b .t{font-size:14px;font-weight:600}.att .b .s{font-size:12.5px;color:var(--muted);margin-top:2px}
.crow{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:13px;margin-bottom:10px;cursor:pointer;transition:.15s;background:#fff}
.crow:hover{border-color:var(--brand-400);box-shadow:0 8px 20px rgba(252,101,60,.12);transform:translateY(-1px)}
.crow .cav{width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,#12384A,#081E29);color:#fff;display:grid;place-items:center;font-weight:800;font-size:15px;flex:none}
.crow .cinfo{flex:1;min-width:0}.crow .cinfo b{font-size:15px}
.crow .chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.chip-mod{font-size:11px;font-weight:600;background:#eef1f6;color:#556579;padding:3px 8px;border-radius:6px}
.crow .cmeta{text-align:right;flex:none}.crow .cmeta small{display:block;color:var(--muted);font-size:12px;margin-top:5px}
.crow .arw{color:var(--muted);flex:none;font-size:20px}
.add-btn{background:var(--brand-500);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-weight:700;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.add-btn:hover{background:var(--brand-600)}
.mod-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid #f0f3f8}.mod-row:last-child{border-bottom:none}
.mod-row .ml{display:flex;align-items:center;gap:11px;font-size:14px;font-weight:500}.mod-row .ml .emo{width:20px;text-align:center}
.sw-toggle{position:relative;width:44px;height:25px;border-radius:999px;background:#cfd6e0;cursor:pointer;transition:.2s;flex:none}
.sw-toggle.on{background:var(--brand-500)}
.sw-toggle::after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.sw-toggle.on::after{left:22px}
.fld-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fld{margin-bottom:12px}.fld label{font-size:12.5px;font-weight:600;color:#33415a;display:block;margin-bottom:6px}
.fld input,.fld select,.fld textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-family:inherit;font-size:14px;background:#fff}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-050)}
.fld textarea{resize:vertical;min-height:64px}
.upload{border:2px dashed #d5dbe6;border-radius:12px;padding:22px;text-align:center;color:var(--muted);cursor:pointer;transition:.15s;font-size:13.5px}
.upload:hover{border-color:var(--brand-400);background:var(--brand-050);color:var(--brand-600)}.upload .big{font-size:24px;margin-bottom:6px}
.doc-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #f0f3f8}.doc-row:last-child{border-bottom:none}
.doc-row .fic{width:36px;height:44px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:10px;flex:none;background:var(--danger-050);color:var(--danger);border:1px solid #f6d4d4}
.doc-row .g{flex:1;min-width:0}.doc-row .g b{font-size:13.5px;font-weight:600}.doc-row .g small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.ghost{background:#fff;border:1px solid var(--border);color:var(--text);border-radius:10px;padding:9px 14px;font-weight:700;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.ghost:hover{border-color:var(--brand-400);color:var(--brand-600)}
.wact{background:#f4f5f7;border:1px solid var(--border);border-radius:8px;padding:4px 7px;cursor:pointer;font-size:13px;line-height:1}.wact:hover{border-color:var(--brand-400)}
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(30px);background:var(--brand-900);color:#fff;padding:13px 20px;border-radius:12px;font-size:14px;font-weight:600;box-shadow:0 12px 30px rgba(8,30,41,.4);opacity:0;pointer-events:none;transition:.3s;z-index:80}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.backdrop{position:fixed;inset:0;background:rgba(8,30,41,.5);z-index:35;opacity:0;pointer-events:none;transition:.25s}.backdrop.show{opacity:1;pointer-events:auto}
@media(max-width:1080px){.kpi-grid,.services,.tiles,.deliv-grid{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-2b,.preview-grid,.fld-row{grid-template-columns:1fr}}
@media(max-width:900px){.login{grid-template-columns:1fr}.login-hero{display:none}
  .sidebar{transform:translateX(-100%);transition:transform .25s;box-shadow:none}.sidebar.open{transform:none;box-shadow:0 0 40px rgba(0,0,0,.35)}.main{margin-left:0}.hamb{display:block}}
@media(max-width:560px){.kpi-grid,.services,.tiles,.deliv-grid{grid-template-columns:1fr}.content{padding:16px}}
.ghost:disabled{opacity:.45;cursor:default}
.traf-sel{display:flex;gap:6px}
.traf-btn{border:1px solid var(--border);background:#fff;border-radius:8px;padding:5px 10px;font-size:12.5px;font-weight:700;cursor:pointer;color:var(--muted)}
.traf-btn.on{background:var(--brand-050);border-color:var(--brand-400);color:var(--brand-600)}
.modal-bg{position:fixed;inset:0;background:rgba(8,30,41,.55);z-index:90;display:none;align-items:center;justify-content:center;padding:20px}
.modal-bg.show{display:flex}
.modal{background:#fff;border-radius:16px;width:100%;max-width:640px;padding:22px;box-shadow:0 20px 50px rgba(8,30,41,.4)}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.modal-head b{font-size:16px}
.modal-x{background:#f4f5f7;border:1px solid var(--border);border-radius:8px;width:32px;height:32px;cursor:pointer;display:grid;place-items:center}.modal-x svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.kw-modal{max-width:880px;height:min(780px,calc(100dvh - 40px));padding:0;display:flex;flex-direction:column;overflow:hidden}
.kw-modal-head{flex:none;margin:0;padding:17px 22px;border-bottom:1px solid var(--border);background:#fff}
.kw-modal-head>div{min-width:0}.kw-modal-head .eyebrow{display:block;margin-bottom:3px}.kw-modal-head b{display:block;max-width:760px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px}
.kw-modal-body{min-height:0;overflow-y:auto;padding:18px 22px 22px;scrollbar-gutter:stable}
.kw-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.kw-stat{border:1px solid var(--border);border-radius:12px;background:#f8fafb;padding:11px 13px}.kw-stat span{display:block;color:var(--muted);font-size:10.5px;font-weight:700;margin-bottom:4px}.kw-stat strong{font-size:20px;letter-spacing:-.3px}.kw-stat strong.textual{display:block;font-size:13px;line-height:1.35;letter-spacing:0}.kw-stat strong.up{color:var(--growth)}.kw-stat strong.down{color:var(--danger)}
.kw-chart-panel,.kw-detail-panel{border:1px solid #dfe4e8;border-radius:14px;background:#fff}
.kw-chart-panel{padding:15px 16px 12px}
.kw-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.kw-section-head h3{font-size:14px}.kw-section-head .eyebrow{font-size:9px}.kw-section-meta{color:var(--muted);font-size:10.5px;font-weight:700;white-space:nowrap}
.kw-chart-box{position:relative;height:190px;margin-top:7px}
.kw-chart-box canvas{position:absolute!important;inset:0;width:100%!important;height:100%!important}
.kw-chart-box.is-empty{height:82px}.kw-chart-box.is-empty canvas{display:none!important}.kw-chart-box.is-empty::after{content:"Sin histórico verificado";position:absolute;inset:0;display:grid;place-items:center;border-radius:10px;background:#f8fafb;color:var(--muted);font-size:12px}
.kw-modal-note{min-height:16px;color:var(--muted);font-size:11.5px;margin-top:6px}
.kw-detail-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:14px;margin-top:14px}
.kw-detail-panel{min-width:0;overflow:hidden}.kw-detail-panel>.kw-section-head{padding:12px 14px;border-bottom:1px solid var(--border);background:#f8fafb}
.kw-detail-scroll{height:210px;overflow-y:auto;padding:4px 12px;scrollbar-width:thin}
.kw-history-row,.kw-serp-row{display:flex;align-items:center;gap:10px;min-height:34px;border-bottom:1px solid #eef1f4;font-size:12px}.kw-history-row:last-child,.kw-serp-row:last-child{border-bottom:0}
.kw-history-row time{color:var(--muted);flex:1}.kw-history-row b{font-size:11.5px}
.kw-serp-row{padding:0 5px}.kw-serp-row>strong{width:20px;text-align:center;color:var(--muted)}.kw-serp-row>span:not(.st){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kw-serp-row.is-mine{background:var(--brand-050);border-radius:8px;border-bottom-color:transparent}.kw-serp-row.is-mine>strong{color:var(--brand-500)}
.kw-serp-notice{margin:7px 0;padding:8px 9px;border-radius:8px;background:#fff5f2;color:#a63d24;font-size:10.5px;line-height:1.4}.kw-serp-notice.found{background:var(--growth-050);color:#127137}
.kw-modal-empty{display:grid;place-items:center;height:100%;min-height:80px;color:var(--muted);font-size:12px;text-align:center;padding:16px}
@media(max-width:650px){.modal-bg{padding:8px}.kw-modal{height:calc(100dvh - 16px);border-radius:13px}.kw-modal-head{padding:14px 16px}.kw-modal-head b{font-size:16px}.kw-modal-body{padding:14px 14px 18px}.kw-summary-grid{grid-template-columns:1fr 1fr}.kw-chart-box{height:175px}.kw-detail-grid{grid-template-columns:1fr}.kw-detail-scroll{height:190px}}
.mini-sel{border:1px solid var(--border);border-radius:8px;padding:5px 8px;font-size:12.5px;font-weight:600;color:var(--text);background:#fff;font-family:inherit;cursor:pointer}
tbody tr[data-kw]:hover{background:var(--brand-050)}

/* Colaboración, aprobaciones y conexiones */
.nav-count,.bell-count{display:none;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--danger);color:#fff;font-size:10px;font-weight:800}
.nav-count{margin-left:auto}.bell-count{position:absolute;top:-5px;right:-5px}
.notification-btn{font-size:17px}
.collaboration-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}
.collaboration-grid{grid-template-columns:1fr 1fr;align-items:start}
.section-mini-head{display:flex;align-items:center;justify-content:space-between;margin:4px 0 12px}
.section-mini-head h2{font-size:17px}.section-mini-head span{color:var(--muted);font-size:12px;font-weight:700}
.approval-card,.thread-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:14px;box-shadow:var(--shadow)}
.approval-card .panel-head,.thread-card .panel-head{align-items:flex-start;margin-bottom:10px}
.approval-card p{font-size:13.5px;line-height:1.55;color:#44536a;margin:8px 0}
.eyebrow{display:block;color:var(--brand-600);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.approval-actions{border-top:1px solid var(--border);margin-top:13px;padding-top:13px}
.approval-actions textarea,.thread-reply textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;resize:vertical;min-height:62px;font-family:inherit;font-size:13.5px}
.approval-actions>div{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.approval-response{background:#f5f8fb;border-radius:10px;padding:10px 12px;margin-top:10px;font-size:13px}
.thread-messages{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;padding:2px}
.thread-message{max-width:88%;padding:10px 12px;border-radius:12px;background:#f1f4f8;font-size:13.5px;line-height:1.5}
.thread-message.from-client{align-self:flex-end;background:var(--brand-050);border-bottom-right-radius:4px}
.thread-message.from-agency{align-self:flex-start;border-bottom-left-radius:4px}
.message-meta{font-size:10.5px;font-weight:700;color:var(--muted);margin-bottom:3px}
.thread-reply{display:grid;grid-template-columns:1fr auto;align-items:end;gap:9px;border-top:1px solid var(--border);margin-top:12px;padding-top:12px}
.subform{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}
.ghost.compact{padding:6px 10px;font-size:11.5px}
.portal-preview{background:#EAF4FF;border:1px solid #BEDBFA;color:#245985;border-radius:12px;padding:11px 14px;font-size:13px;margin-bottom:18px}
.notification-row{display:flex;gap:11px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #f0f3f8}
.notification-row:last-child{border-bottom:none}.notification-row .grow{flex:1}
.notification-row b,.notification-row small{display:block}.notification-row b{font-size:13.5px}.notification-row small{color:var(--muted);font-size:11.5px;margin-top:3px}
.notification-dot{width:8px;height:8px;border-radius:50%;background:#ccd5df;margin-top:5px;flex:none}.notification-row.unread .notification-dot{background:var(--brand-500);box-shadow:0 0 0 4px var(--brand-050)}
.home-approval{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--brand-050);color:var(--brand-700);border-radius:10px;padding:11px 12px;margin-bottom:6px;cursor:pointer;font-size:13px}
.home-approval span{color:var(--brand-600);font-weight:700}
.connection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.connection-card{border:1px solid var(--border);border-radius:12px;padding:13px;background:#fafbfd}
.connection-card.connected{border-color:#B9E4C7;background:#F4FBF6}.connection-card.error{border-color:#F1BBBB;background:#FFF8F8}
.connection-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.connection-head b{font-size:13.5px}
.connection-status{font-size:10px;font-weight:800;color:var(--muted);background:#edf1f5;padding:3px 7px;border-radius:999px;white-space:nowrap}
.connection-card.connected .connection-status{background:#DDF5E5;color:#15803D}.connection-card.error .connection-status{background:#FDE8E8;color:#B42318}
.connection-card>small{display:block;color:var(--muted);font-size:10.5px;margin-top:5px}.connection-card p{font-size:12px;margin-top:9px;color:#44536a}
.connection-card.featured{grid-column:1/-1;padding:16px}
.connection-head small{display:block;color:var(--muted);font-size:10.5px;margin-top:3px}
.connection-config{display:flex;gap:10px;margin-top:13px}.connection-config .fld{margin-bottom:0}
.connection-actions{display:flex;align-items:center;gap:9px;margin-top:13px;flex-wrap:wrap}
.connection-warning{background:#FFF8EC;border:1px solid #F6E3B8;color:#805300;border-radius:9px;padding:9px 11px;font-size:11.5px;margin-top:11px}
.connection-scores{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:13px 0}
.connection-scores>div{background:#fff;border:1px solid var(--border);border-radius:9px;padding:9px;text-align:center}
.connection-scores b,.connection-scores small{display:block}.connection-scores b{font-size:18px}.connection-scores small{font-size:9px;color:var(--muted);margin-top:2px}
.web-performance{margin-top:20px}.web-performance.pending{border-style:dashed}
.web-score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.web-score{border:1px solid var(--border);border-radius:13px;padding:16px;text-align:center;background:#fafbfd}
.web-score b,.web-score small{display:block}.web-score b{font-size:30px;line-height:1}.web-score small{font-size:11px;color:var(--muted);font-weight:700;margin-top:7px}
.web-score.good{background:#F3FBF5;border-color:#C4E7CE}.web-score.good b{color:#15803D}
.web-score.medium{background:#FFF9EC;border-color:#F4D9A4}.web-score.medium b{color:#B45309}
.web-score.poor{background:#FFF5F5;border-color:#F2C5C5}.web-score.poor b{color:#B42318}
.web-metrics{margin-bottom:12px}
.performance-source{display:flex;justify-content:space-between;gap:12px;background:#f5f8fb;border-radius:10px;padding:11px 13px;font-size:12px}
.performance-source span{color:var(--muted);text-align:right}
.danger-text{color:var(--danger)!important}
@media(max-width:1080px){.collaboration-grid,.connection-grid{grid-template-columns:1fr}.collaboration-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.collaboration-summary,.web-score-grid,.connection-scores{grid-template-columns:1fr 1fr}.thread-reply,.connection-config{grid-template-columns:1fr;display:grid}.performance-source{flex-direction:column}.performance-source span{text-align:left}.notification-btn{margin-left:auto}.client-chip .plan-tag{display:none}}

/* Propuestas comerciales */
.proposal-form{margin-bottom:18px;border-top:3px solid var(--brand-500)}
.proposal-form .panel-head{align-items:flex-start}.proposal-form .panel-head p{margin-top:5px;font-size:12.5px}
.proposal-date{max-width:280px}
.proposal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.proposal-card{overflow:hidden}.proposal-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.proposal-card-head h3{font-size:18px;margin:3px 0 5px}.proposal-card-head p{color:var(--muted);font-size:12px;margin:0}
.proposal-company{font-size:10px;color:var(--brand-600);font-weight:800;text-transform:uppercase;letter-spacing:.55px}
.proposal-kpis{display:grid;grid-template-columns:.7fr .8fr 1.5fr;gap:8px;margin:16px 0}
.proposal-kpis>div{background:#f5f8fb;border:1px solid #e8edf3;border-radius:10px;padding:10px}
.proposal-kpis b,.proposal-kpis span{display:block}.proposal-kpis b{font-size:15px}.proposal-kpis span{font-size:9.5px;color:var(--muted);font-weight:700;margin-top:3px}
.proposal-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:14px}
.proposal-upload{position:relative;overflow:hidden;display:inline-flex;align-items:center;border:1px dashed var(--brand-400);background:var(--brand-050);color:var(--brand-700);border-radius:9px;padding:8px 11px;font-size:11.5px;font-weight:800;cursor:pointer}
.proposal-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
.proposal-version{font-size:10.5px;color:var(--muted)}
.proposal-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:13px}
.proposal-actions select{border:1px solid var(--border);border-radius:9px;padding:9px 10px;background:#fff;font:600 12px Inter,sans-serif;color:var(--text)}
.ghost.danger{color:var(--danger)}.ghost.danger:hover{border-color:var(--danger)}
.proposal-note{font-size:10.5px;color:var(--muted);margin:11px 0 0}
.proposal-tracking{border-top:1px solid var(--border);margin-top:15px;padding-top:12px}
.proposal-tracking summary{cursor:pointer;font-size:11.5px;font-weight:800;color:var(--brand-600)}
.proposal-event{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #eef1f5}
.proposal-event:last-child{border-bottom:0}.proposal-event>div:last-child{text-align:right}
.proposal-event b,.proposal-event small{display:block}.proposal-event b{font-size:11.5px}.proposal-event small{font-size:9.5px;color:var(--muted);margin-top:2px}
.proposal-empty{font-size:11.5px;margin-top:10px}.proposal-empty-state{grid-column:1/-1;text-align:center;padding:38px}
.proposal-empty-state>span{font-size:36px}.proposal-empty-state h3{margin:10px 0 6px}
@media(max-width:1080px){.proposal-grid{grid-template-columns:1fr}}
@media(max-width:560px){.proposal-card-head{flex-direction:column}.proposal-kpis{grid-template-columns:1fr 1fr}.proposal-kpis>div:last-child{grid-column:1/-1}.proposal-actions>*{flex:1;justify-content:center}.proposal-actions select{min-width:100%}}

/* Descubrimiento de servicios */
.nav-label-available{margin-top:14px!important}
.nav-item.inactive-service{display:grid;grid-template-columns:22px minmax(0,1fr);column-gap:11px;row-gap:3px;color:#91a0ad;opacity:.82}.nav-item.inactive-service:hover,.nav-item.inactive-service.active{opacity:1;color:#fff}
.nav-item.inactive-service .emo{grid-column:1;grid-row:1 / span 2}
.nav-item.inactive-service .nav-title{grid-column:2;grid-row:1}
.nav-available{grid-column:2;grid-row:2;margin:0;display:inline-flex;align-items:center;gap:5px;width:max-content;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:#b9c3cb}
.nav-available i{display:block;width:6px;height:6px;border-radius:50%;background:var(--brand-500);box-shadow:0 0 0 3px rgba(252,101,60,.14)}
.nav-item.inactive-service.active .nav-available,.nav-item.inactive-service:hover .nav-available{color:#fff}
.preview-badge{display:inline-flex;align-items:center;background:#eef1f4;color:#536675;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.35px}
.service-available-hero{display:grid;grid-template-columns:auto minmax(0,760px);align-items:start;gap:20px;margin-bottom:18px;padding:8px 2px 12px}
.service-available-icon{width:58px;height:58px;border-radius:16px;background:var(--brand-050);color:var(--brand-600);display:grid;place-items:center}
.service-available-icon .ui-icon{width:29px;height:29px}
.service-available-hero h1{font-size:29px;letter-spacing:-.5px;margin:10px 0 7px}.service-available-hero p{font-size:16px;line-height:1.65;color:#536677;max-width:720px}
.service-purpose{border:1px solid #dce2e7;background:#fff;margin-bottom:18px;padding:24px 26px}
.service-purpose h2,.service-detail-grid h2{font-size:20px;margin:4px 0 9px}.service-purpose p{font-size:14px;line-height:1.7;color:#506274;max-width:880px}
.seo-sync-state{display:inline-flex;align-items:center;gap:7px;border:1px solid #dce3e8;background:#fff;color:#64758b;border-radius:999px;padding:7px 11px;font-size:10.5px;font-weight:700;white-space:nowrap}
.seo-sync-state::before{content:"";width:7px;height:7px;border:2px solid #c5cfd6;border-top-color:var(--brand-500);border-radius:50%;animation:seo-spin .8s linear infinite}
.seo-sync-state.done{background:var(--growth-050);border-color:#ccebd7;color:var(--growth)}.seo-sync-state.done::before{border:0;background:var(--growth);animation:none}
.seo-sync-state.warn{background:#fff8ec;border-color:#f0dfbb;color:#8a5a00}.seo-sync-state.warn::before{border:0;background:#d89922;animation:none}
@keyframes seo-spin{to{transform:rotate(360deg)}}
.service-benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.service-benefit{padding:21px}.service-benefit>span{display:block;color:var(--brand-500);font-size:11px;font-weight:800;letter-spacing:.6px;margin-bottom:20px}
.service-benefit h3{font-size:16px;margin-bottom:7px}.service-benefit p{font-size:12.5px;line-height:1.6;color:var(--muted)}
.service-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.service-detail-grid .panel{padding:23px}
.service-list{list-style:none;display:flex;flex-direction:column;gap:12px;margin-top:18px}.service-list li{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.45;color:#425364}
.service-list .ui-icon{width:17px;height:17px;color:var(--growth);flex:none;margin-top:1px}
.service-preview-final{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:26px;background:var(--brand-900);border-color:var(--brand-900);color:#fff}
.service-preview-final .eyebrow{color:#fd9b79}.service-preview-final h2{font-size:21px;margin:4px 0 7px}.service-preview-final p{color:#b8c8d0;font-size:13px;line-height:1.55;max-width:680px}
.service-preview-final .add-btn{flex:none}
.home-opportunities{margin-top:20px;padding:22px;border:1px solid #dce3e8;border-radius:16px;background:linear-gradient(135deg,#f8fafb,#f1f4f6)}
.home-opportunities>.panel-head{margin-bottom:13px}.home-opportunities h3{font-size:17px;margin-top:3px}
.home-opportunities>div:last-child{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.home-opportunity{border:1px solid #dfe5e9;background:#fff;border-radius:12px;padding:13px;text-align:left;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;cursor:pointer;font-family:inherit;color:var(--text)}
.home-opportunity:hover{border-color:var(--brand-400);transform:translateY(-1px)}.home-opportunity>span{width:34px;height:34px;border-radius:9px;background:var(--brand-050);color:var(--brand-600);display:grid;place-items:center}.home-opportunity>span .ui-icon{width:18px;height:18px}
.home-opportunity b,.home-opportunity small{display:block}.home-opportunity b{font-size:12.5px}.home-opportunity small{font-size:9.5px;color:var(--muted);margin-top:2px}
.home-opportunity i{grid-column:2;font-size:10px;color:var(--brand-600);font-style:normal;font-weight:800}
.work .check .ui-icon,.li-row .fic .ui-icon{width:17px;height:17px}
.request-mark{width:auto!important;min-width:64px!important;height:auto!important;padding:6px 8px;border-radius:8px!important;background:#FFF8EC!important;color:#8a5a00!important;font-size:9px!important}
@media(max-width:900px){.service-benefit-grid,.home-opportunities>div:last-child{grid-template-columns:1fr}.service-detail-grid{grid-template-columns:1fr}}
@media(max-width:650px){.service-available-hero{grid-template-columns:1fr;gap:13px}.service-available-icon{width:48px;height:48px}.service-available-icon .ui-icon{width:24px;height:24px}.service-available-hero h1{font-size:25px}.service-preview-final{align-items:flex-start;flex-direction:column}.service-preview-final .add-btn{width:100%;justify-content:center}.home-opportunities{padding:16px}}
