/* Layout: sidebar de vidrio esmerilado + lienzo central; composer en 4 pasos con vista previa de correo a la derecha; módulo Admin con KPIs, tabla de campañas y bitácora. */
:root{
  --bg:#ededf4; --surface:#ffffff; --surface-2:#f6f6fb; --glass:rgba(255,255,255,.75);
  --fg:#16153d; --muted:#65658a; --line:#dcdcea;
  --navy:#26235e; --accent:#2626a5; --accent-soft:#e6f4ff; --accent-fg:#ffffff;
  --ok:#00ad6f; --warn:#ff7300; --bad:#d23f4f; --ok-soft:#dcf7e7; --warn-soft:#ffedd9; --bad-soft:#fbe6e9;
  --shadow:0 1px 2px rgba(38,35,94,.06),0 8px 28px rgba(38,35,94,.08);
  --font:"DM Sans",-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --display:"Bricolage Grotesque","DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#12112e; --surface:#1b1a45; --surface-2:#16153a; --glass:rgba(27,26,69,.75);
  --fg:#ececff; --muted:#9a9ac4; --line:#2e2c66;
  --navy:#b4bcff; --accent:#7f8cff; --accent-soft:#25236b; --accent-fg:#0d0c2a;
  --ok:#3ccf88; --warn:#ffa63b; --bad:#f0707d; --ok-soft:#0f3a2a; --warn-soft:#40290d; --bad-soft:#3a1a28;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 28px rgba(0,0,0,.35); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#12112e; --surface:#1b1a45; --surface-2:#16153a; --glass:rgba(27,26,69,.75);
  --fg:#ececff; --muted:#9a9ac4; --line:#2e2c66;
  --navy:#b4bcff; --accent:#7f8cff; --accent-soft:#25236b; --accent-fg:#0d0c2a;
  --ok:#3ccf88; --warn:#ffa63b; --bad:#f0707d; --ok-soft:#0f3a2a; --warn-soft:#40290d; --bad-soft:#3a1a28;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 28px rgba(0,0,0,.35); color-scheme:dark}

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.app{max-width:1380px;margin:0 auto;display:grid;grid-template-columns:232px minmax(0,1fr);gap:20px;align-items:start}
@media(max-width:900px){.app{grid-template-columns:minmax(0,1fr)}}

/* sidebar */
.side{position:sticky;top:20px;background:var(--glass);backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px);
  border:1px solid var(--line);border-radius:22px;padding:18px 12px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px}
@media(max-width:900px){.side{position:static;flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px}}
.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 14px}
@media(max-width:900px){.brand{padding:4px 10px;margin-right:auto}}
.logo{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--navy),var(--accent));display:grid;place-items:center;color:#fff;font-weight:700;font-size:16px;letter-spacing:-.02em;flex:none}
:root[data-theme="dark"] .logo{color:#0d0c2a}
.brand b{display:block;font-size:14px;letter-spacing:-.01em;line-height:1.15}
.brand span{font-size:11px;color:var(--muted)}
.nav{display:flex;flex-direction:column;gap:2px}
@media(max-width:900px){.nav{flex-direction:row;flex-wrap:wrap}}
.nav button{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;color:var(--muted);font-weight:500;transition:background .15s,color .15s}
.nav button:hover{background:var(--surface-2);color:var(--fg)}
.nav button[aria-current="page"]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.nav svg{width:18px;height:18px;flex:none}
.side-foot{margin-top:10px;padding:10px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
@media(max-width:900px){.side-foot{display:none}}
.quota{height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin:6px 0 4px}
.quota i{display:block;height:100%;background:var(--accent);border-radius:99px}

/* main */
main{min-width:0}
.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin:4px 2px 18px}
h1{font-size:30px;letter-spacing:-.03em;line-height:1.1;margin:0;text-wrap:balance;font-weight:700}
.sub{color:var(--muted);margin:6px 0 0}
.btn{cursor:pointer;border:1px solid var(--line);background:var(--surface);padding:9px 16px;border-radius:12px;font-weight:600;transition:transform .12s,box-shadow .15s,background .15s}
.btn:hover{box-shadow:var(--shadow)}
.btn:active{transform:scale(.98)}
.btn.primary{background:var(--accent);color:var(--accent-fg);border-color:transparent}
.btn.dark{background:var(--navy);color:var(--surface);border-color:transparent}
.btn.sm{padding:6px 12px;font-size:13px;border-radius:10px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:var(--shadow);min-width:0}
.card h2{margin:0 0 4px;font-size:16px;letter-spacing:-.01em}
.card p.hint{margin:0 0 14px;color:var(--muted);font-size:13px}
.view{display:none}.view.on{display:block;animation:rise .35s ease}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.view.on{animation:none}}

/* stepper */
.steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.step{display:flex;align-items:center;gap:8px;padding:7px 14px 7px 8px;border-radius:99px;background:var(--surface);border:1px solid var(--line);color:var(--muted);font-weight:500;cursor:pointer}
.step i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);font-size:12px;font-weight:600}
.step.on{color:var(--fg);border-color:var(--accent)}
.step.on i{background:var(--accent);color:var(--accent-fg);border-color:transparent}
.step.done i{background:var(--ok-soft);color:var(--ok);border-color:transparent}

.compose{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:18px;align-items:start}
@media(max-width:1100px){.compose{grid-template-columns:minmax(0,1fr)}}
.preview-wrap{position:sticky;top:20px}
@media(max-width:1100px){.preview-wrap{position:static}}
.pv-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px;flex-wrap:wrap}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:2px}
.seg button{all:unset;cursor:pointer;padding:4px 12px;border-radius:8px;font-size:12px;font-weight:600;color:var(--muted)}
.seg button.on{background:var(--surface);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.inbox{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:10px;max-height:78vh;overflow:auto}
.inbox .meta{padding:6px 8px 10px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:10px}
.inbox .meta b{color:var(--fg)}
.email{background:#eef1f6;padding:14px;border-radius:12px;display:flex;justify-content:center}
.email.mobile .mail{max-width:300px}
.mail{width:100%;max-width:600px;background:#fff;color:#1b2536;font-family:Arial,Helvetica,sans-serif;border-radius:10px;overflow:hidden;font-size:14px;line-height:1.55}
.mail img{display:block;width:100%;height:auto}

/* templates */
.tpls{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.tpl{cursor:pointer;border:2px solid var(--line);border-radius:16px;background:var(--surface-2);padding:10px;text-align:left;transition:border-color .15s,transform .15s}
.tpl:hover{transform:translateY(-2px)}
.tpl.on{border-color:var(--accent);background:var(--accent-soft)}
.thumb{height:112px;border-radius:10px;background:#fff;border:1px solid var(--line);overflow:hidden;margin-bottom:10px;position:relative}
.tpl b{display:block;font-size:13.5px}
.tpl span{font-size:12px;color:var(--muted)}

/* forms */
.f{display:grid;gap:14px}
.f.two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:620px){.f.two{grid-template-columns:minmax(0,1fr)}}
label.l{display:grid;gap:5px;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.02em;min-width:0}
input[type=text],input[type=url],input[type=datetime-local],select,textarea{width:100%;border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:10px 12px;font-weight:400;color:var(--fg)}
textarea{resize:vertical;min-height:110px;line-height:1.5}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{cursor:pointer;border:1px dashed var(--line);background:var(--surface-2);border-radius:99px;padding:3px 10px;font-size:12px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.drop{display:block;border:1.5px dashed var(--line);border-radius:14px;padding:16px;text-align:center;color:var(--muted);background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s}
.drop:hover,.drop.over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.files{display:grid;gap:8px;margin-top:10px}
.file{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.file img{width:40px;height:40px;object-fit:cover;border-radius:8px}
.file .ic{width:40px;height:40px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}
.file div{min-width:0;flex:1}
.file b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.file small{color:var(--muted)}
.x{all:unset;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:8px}
.x:hover{background:var(--bad-soft);color:var(--bad)}
.nav-bar{display:flex;justify-content:space-between;gap:10px;margin-top:18px;flex-wrap:wrap}

/* tables */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:14px}
table{border-collapse:collapse;width:100%;min-width:640px}
th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:10px 14px;background:var(--surface-2);font-weight:600;white-space:nowrap}
td{padding:11px 14px;border-top:1px solid var(--line);white-space:nowrap}
td.wrap{white-space:normal;min-width:230px}
tbody tr{cursor:default}
tbody tr:hover td{background:var(--surface-2)}
.num{font-variant-numeric:tabular-nums;text-align:right}
th.num{text-align:right}
.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.bad{background:var(--bad-soft);color:var(--bad)}
.pill.mute{background:var(--surface-2);color:var(--muted)}
.bar{height:6px;border-radius:99px;background:var(--line);min-width:70px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent)}

/* kpis */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px 18px;box-shadow:var(--shadow)}
.kpi small{color:var(--muted);font-weight:600;font-size:12px}
.kpi b{display:block;font-size:30px;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.15;margin-top:2px}
.kpi em{font-style:normal;font-size:12px;color:var(--ok);font-weight:600}
.grid2{display:grid;align-items:stretch;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px}
@media(max-width:1000px){.grid2{grid-template-columns:minmax(0,1fr)}}
.log{display:grid;gap:0;max-height:430px;overflow:auto}
.ev{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:11px 2px;border-top:1px solid var(--line)}
.ev:first-child{border-top:0}
.dot{width:10px;height:10px;border-radius:50%;background:var(--accent);margin-top:6px}
.dot.warn{background:var(--warn)}.dot.bad{background:var(--bad)}.dot.mute{background:var(--muted)}
.ev b{font-weight:600}.ev small{color:var(--muted);display:block}
.spark{display:flex;align-items:flex-end;gap:8px;height:230px;padding-top:8px}
.spark div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%}
.spark i{display:block;width:100%;max-width:34px;background:linear-gradient(var(--accent),var(--navy));border-radius:8px 8px 4px 4px;opacity:.9}
.spark span{font-size:11px;color:var(--muted)}
.spark em{font-style:normal;font-size:11px;font-variant-numeric:tabular-nums;font-weight:600}

/* modal & toast */
.scrim{position:fixed;inset:0;background:rgba(5,12,24,.5);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:16px;z-index:50}
.scrim.on{display:flex}
.modal{background:var(--surface);border-radius:24px;border:1px solid var(--line);padding:24px;width:min(520px,100%);box-shadow:0 30px 80px rgba(0,0,0,.35);max-height:90vh;overflow:auto}
.modal h2{margin:0 0 6px;font-size:20px;letter-spacing:-.02em}
.prog{height:10px;border-radius:99px;background:var(--line);overflow:hidden;margin:16px 0 8px}
.prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--navy));transition:width .2s}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,30px);background:var(--navy);color:var(--surface);padding:10px 18px;border-radius:99px;font-weight:600;opacity:0;transition:.25s;z-index:60;pointer-events:none;max-width:90vw}
.toast.on{opacity:1;transform:translate(-50%,0)}
.check{display:grid;gap:8px}
.check div{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--surface-2)}
.check .s{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700}
.check .ok .s{background:var(--ok-soft);color:var(--ok)}.check .warn .s{background:var(--warn-soft);color:var(--warn)}
.sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px}
.sum div{background:var(--surface-2);border-radius:14px;padding:12px 14px}
.sum small{color:var(--muted);display:block;font-size:12px}.sum b{font-size:18px;letter-spacing:-.02em}
.mt{margin-top:16px}.ag{display:grid;gap:16px;padding-top:6px}.ag .bar{margin-top:6px}
.theme{all:unset;cursor:pointer;padding:6px 10px;border-radius:10px;color:var(--muted);font-size:12px}
.theme:hover{background:var(--surface-2)}
[hidden]{display:none!important}
#login{position:relative;isolation:isolate;min-height:calc(100vh - 40px);border-radius:28px;overflow:hidden;display:grid;place-items:center;padding:24px 16px;background:linear-gradient(135deg,#26235e 0%,#2626a5 55%,#3636dd 100%)}
#login::before,#login::after{content:"";position:absolute;border-radius:50%;filter:blur(70px);z-index:-1;opacity:.5}
#login::before{width:420px;height:420px;background:#0082f7;top:-120px;right:-80px}
#login::after{width:360px;height:360px;background:#ff3dcd;bottom:-120px;left:-80px}
.lg{width:min(420px,100%);background:var(--surface);color:var(--fg);border-radius:26px;padding:32px 28px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.lg .logo{width:48px;height:48px;border-radius:14px;font-size:22px;margin-bottom:16px}
.lg h1{font-size:24px}
.lg .f{margin-top:20px}
.pwrow{position:relative}
.pwrow input{padding-right:70px}
.pwrow button{all:unset;cursor:pointer;position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:600;color:var(--accent);padding:4px 6px;border-radius:8px}
.err{min-height:20px;color:var(--bad);font-size:13px;font-weight:500}
.demo{margin-top:16px;padding:12px 14px;border-radius:14px;background:var(--surface-2);font-size:12px;color:var(--muted);line-height:1.6}
.demo code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--fg);cursor:pointer}
.me{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:14px;background:var(--surface-2);margin-bottom:8px}
.av{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
.me div{min-width:0;line-height:1.25}.me b{display:block;font-size:13px;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me small{font-size:11px;color:var(--muted)}
.cred{background:var(--surface-2);border:1px dashed var(--accent);border-radius:14px;padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.7;word-break:break-all;margin:14px 0}
.rl{display:grid;gap:10px}.rl div{padding:10px 12px;border-radius:12px;background:var(--surface-2)}.rl b{display:block}.rl small{color:var(--muted)}
.tpls{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.tpl{position:relative;display:block;width:100%;border:1px solid var(--line);border-radius:22px;padding:10px;background:var(--surface);box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s,border-color .2s;cursor:pointer;text-align:left}
.tpl:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(11,37,69,.16)}
.tpl.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow);background:var(--surface)}
.thumb{height:210px;border-radius:14px;background:var(--surface-2);border:0;overflow:hidden;position:relative;margin:0 0 10px}
.thumb .sc{position:absolute;left:0;top:0;width:600px;transform-origin:0 0;pointer-events:none;border:0;background:#fff}
.tm{padding:0 6px 4px}.tm b{display:block;font-size:14px}.tm span{font-size:12px;color:var(--muted)}
.tick{position:absolute;top:18px;right:18px;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-fg);display:grid;place-items:center;font-style:normal;font-size:13px;font-weight:700;z-index:2}
.tag{position:absolute;top:18px;left:18px;font-style:normal;font-size:11px;font-weight:700;background:var(--navy);color:var(--surface);padding:2px 9px;border-radius:99px;z-index:2}
.upl{margin-top:24px;padding:20px;border-radius:20px;background:linear-gradient(135deg,var(--accent-soft),var(--surface-2));border:1px dashed var(--accent)}
.upl h3{margin:0 0 4px;font-size:15px}
.chk{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--line);border-radius:99px;background:var(--surface-2);cursor:pointer;font-size:13px;font-weight:500;color:var(--fg)}
.ctpv{margin-top:14px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#eef1f6}
.ctpv iframe{display:block;width:100%;height:380px;border:0;background:#fff}
.vars{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.vars span{font-size:12px;padding:3px 10px;border-radius:99px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.vars .y{background:var(--ok-soft);color:var(--ok)}.vars .n{background:var(--surface-2);color:var(--muted)}
.lcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.lc{all:unset;box-sizing:border-box;cursor:pointer;position:relative;display:grid;gap:6px;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:var(--surface-2);transition:border-color .15s,transform .15s,box-shadow .15s}
.lc:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.lc.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}
.lc:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lc .lt{display:flex;justify-content:space-between;align-items:center;gap:8px}
.lc small{color:var(--muted);font-size:12px;line-height:1.4}
.lc .ck{position:absolute;right:12px;bottom:12px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:var(--accent-fg);display:grid;place-items:center;font-size:11px;font-weight:700}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.lcard{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow);display:grid;gap:10px;align-content:start;min-width:0}
.lcard .row{gap:6px}
.lcard small{color:var(--muted)}
.lstat{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lstat div{background:var(--surface-2);border-radius:12px;padding:8px 12px}.lstat b{font-size:20px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;display:block;line-height:1.2}.lstat small{font-size:11px}
h1,.brand b,.modal h2,.card h2{font-family:var(--display);font-weight:800;letter-spacing:-.02em}
.card h2{font-family:var(--font);font-weight:700}
.mailbox{margin-top:16px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.mh{background:var(--surface-2);padding:8px 12px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.mb{padding:12px 14px;font-size:13px;line-height:1.6}.mb .code{font-size:28px;font-weight:800;letter-spacing:.3em;color:var(--accent);margin:6px 0}
.grp{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);overflow:hidden}
.grp:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.grp input{border:0!important;background:transparent!important;border-radius:0!important;min-width:0;flex:1;box-shadow:none!important}
.grp i{font-style:normal;padding:0 12px;color:var(--muted);font-weight:500;white-space:nowrap}
.fmt{border:1px solid var(--line);border-radius:16px;background:var(--accent-soft);padding:14px 16px;display:grid;gap:10px}
.fh{display:grid;gap:2px}.fh span{color:var(--muted);font-size:12px}
.fcols{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:6px}
.fcols span{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:12px;font-weight:600;text-align:center}
.fcols em{font-style:normal;color:var(--accent);font-weight:700}
.fex{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--fg);overflow-x:auto;white-space:pre}
/* --- añadidos del front real --- */
.ro{background:var(--bg2,#f3f4fa);color:var(--muted);cursor:not-allowed}
.lgnote{margin:10px 0 0;color:var(--muted);font-size:12px;text-align:center}
.date-in{width:150px}
#adFilters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
#adFilters input,#adFilters select{width:auto;min-width:0}
#adFilters #q{width:200px}

.blocks{display:grid;gap:12px}
.blk{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface-2);display:grid;gap:10px}
.blk .bh{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.blk .x:disabled{opacity:.35;cursor:default}
.addb{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
details.upl>summary{cursor:pointer;color:var(--muted)}
