/* WeBank Core · app.css · Siacros */
@font-face{font-family:Inter;font-weight:400;src:url(../fonts/inter-latin-400-normal.woff2)}
@font-face{font-family:Inter;font-weight:500;src:url(../fonts/inter-latin-500-normal.woff2)}
@font-face{font-family:Inter;font-weight:600;src:url(../fonts/inter-latin-600-normal.woff2)}
@font-face{font-family:Inter;font-weight:700;src:url(../fonts/inter-latin-700-normal.woff2)}
:root{
  --navy:#1B1D2E; --navy-2:#2A2D40; --navy-3:#3A3D52;
  --cyan:#2EAFFE; --cyan-d:#0A8FE0; --cyan-50:#EAF6FF; --cyan-100:#CDEBFF;
  --violet:#720EEC; --violet-d:#5E0BC4; --violet-50:#F2E9FE; --violet-100:#E2CFFC;
  --grad:linear-gradient(100deg,#720EEC 0%,#4B5CF5 65%,#2EAFFE 130%);
  --bg:#F4F4F4; --surface:#FFFFFF; --line:#E5E5EA; --line-2:#EFEFF3;
  --ink:#1B1D2E; --ink-2:#4A4D60; --ink-3:#85889A;
  --ok:#1E9E6A; --ok-50:#E7F6EF; --warn:#C98A0B; --warn-50:#FDF4E1; --bad:#D14343; --bad-50:#FCECEC;
  --r:10px; --r-lg:14px;
  --sh:0 1px 2px rgba(27,29,46,.04),0 2px 8px rgba(27,29,46,.04);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1,"cv11" 1}
svg.i{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* logo */
.logo img{display:block;height:30px;width:auto}
/* layout */
.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.side{background:#fff;border-right:1px solid var(--line);color:var(--ink-2);padding:22px 14px;display:flex;flex-direction:column;gap:24px}
.side .logo{padding:2px 10px 0}
.side .sub{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding:0 12px;margin-bottom:6px;font-weight:600}
.nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:8px;color:var(--ink-2);text-decoration:none;font-weight:500;font-size:13px}
.nav a+a{margin-top:2px}
.nav a.on{background:var(--violet-50);color:var(--violet);font-weight:600}
.nav a.on svg{color:var(--violet)}
.nav a svg{color:var(--ink-3)}
.nav a .cnt{margin-left:auto;font-size:11px;background:var(--bg);padding:1px 7px;border-radius:20px;color:var(--ink-3)}
.side .foot{margin-top:auto;border-top:1px solid var(--line);padding:14px 12px 0;font-size:11.5px;color:var(--ink-3)}
.side .foot b{color:var(--ink-2);font-weight:600}

.main{display:flex;flex-direction:column;min-width:0}
.top{height:64px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 28px}
.search{flex:0 1 420px;display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 12px;color:var(--ink-3)}
.search span{flex:1}
.kbd{font-size:11px;border:1px solid var(--line);background:#fff;border-radius:5px;padding:1px 6px;color:var(--ink-3)}
.top .sp{flex:1}
.pill{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;padding:6px 11px;border-radius:20px;border:1px solid var(--line);color:var(--ink-2);background:#fff}
.dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-50)}
.user{display:flex;align-items:center;gap:10px;padding-left:18px;border-left:1px solid var(--line)}
.av{width:34px;height:34px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:600;font-size:13px}
.user .n{font-weight:600;font-size:13px;line-height:1.2}
.user .r{font-size:11.5px;color:var(--ink-3)}
.content{padding:26px 28px 32px}

/* common */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh)}
.h1{font-size:22px;font-weight:700;letter-spacing:-.02em}
.muted{color:var(--ink-3)}
.btn{display:inline-flex;align-items:center;gap:8px;font:inherit;font-weight:600;font-size:13px;padding:9px 15px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.btn.pri{background:var(--grad);border-color:transparent;color:#fff}
.btn.ghost-bad{color:var(--bad);border-color:#F1CFCD}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:20px}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.b-ok{background:var(--ok-50);color:var(--ok)}
.b-warn{background:var(--warn-50);color:var(--warn)}
.b-off{background:#EEF1F5;color:#6B778C}
.tag{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:6px;border:1px solid var(--line);color:var(--ink-2);background:var(--bg)}
.tag.int{color:var(--violet);background:var(--violet-50);border-color:var(--violet-100)}
.tag.plus{color:var(--cyan-d);background:var(--cyan-50);border-color:var(--cyan-100)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"DejaVu Sans Mono",monospace;font-size:12.5px;letter-spacing:-.01em}
/* fixes */
.search{flex:0 0 400px;white-space:nowrap}
.search .kbd{flex:none}
.tag,.badge,.pill,.nav a,.meta span,.tab,.nhc,.ch,.lg span,th,td,.btn,.sel,.chip{white-space:nowrap}

/* ===== componentes ===== */
.crumb{font-size:12.5px;color:var(--ink-3);display:flex;align-items:center;gap:6px;margin-bottom:14px}
.crumb svg{width:13px;height:13px}
.crumb b{color:var(--ink-2);font-weight:600}
.hero{display:flex;align-items:center;gap:20px;padding:20px 22px}
.photo{width:76px;height:76px;border-radius:14px;background:linear-gradient(135deg,#EDE3FC,#D6ECFF);display:grid;place-items:center;color:#8C7FC2;flex:none}
.photo svg{width:28px;height:28px}
.hero .id{flex:1}
.hero .nhc{font-size:24px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:12px}
.meta{display:flex;gap:16px;margin-top:8px;font-size:12.5px;color:var(--ink-2);align-items:center}
.meta span{display:flex;align-items:center;gap:6px}
.meta svg{width:15px;height:15px;color:var(--ink-3)}
.sel{display:inline-flex;align-items:center;gap:8px;border:1px solid #BFE3D2;background:var(--ok-50);color:var(--ok);font-weight:600;font-size:12.5px;padding:4px 8px 4px 10px;border-radius:9px}
.sel svg{width:15px;height:15px}
.acts{display:flex;gap:10px}
.stats{display:flex;border-top:1px solid var(--line-2)}
.st{flex:1;padding:14px 20px}
.st+.st{border-left:1px solid var(--line-2)}
.st .l{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600}
.st .v{font-size:18px;font-weight:700;margin-top:3px;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:22px 0 20px}
.tab{padding:11px 12px;font-weight:600;font-size:13px;color:var(--ink-3);display:flex;align-items:center;gap:8px;border-bottom:2px solid transparent;margin-bottom:-1px}
.tab svg{width:16px;height:16px}
.tab.on{color:var(--violet);border-color:var(--violet)}
.tab.on svg{color:var(--violet)}
.tab .c{font-size:11px;background:#EEF1F5;color:var(--ink-3);padding:1px 7px;border-radius:10px}

.cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.sec{padding:20px 22px 22px}
.sec+.sec{margin-top:16px}
.sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.sh h3{font-size:15px;font-weight:700}
.sh .n{font-size:12px;color:var(--ink-3)}
.fg{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 16px}
.fg.c3{grid-template-columns:repeat(3,1fr)}
.fld label{display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.fld label code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;color:#A3ADBF;font-weight:400}
.in{border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:13.5px;display:flex;align-items:center;justify-content:space-between;background:#fff;min-height:38px}
.in svg{width:15px;height:15px;color:var(--ink-3)}
.in.ro{background:var(--bg);color:var(--ink-2)}
.in.focus{border-color:var(--cyan);box-shadow:0 0 0 3px var(--cyan-50)}

.seg{display:flex;border:1px solid var(--line);border-radius:9px;padding:3px;background:var(--bg);gap:3px}
.seg span{flex:1;text-align:center;padding:7px 8px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--ink-3)}
.seg span.on{background:#fff;color:var(--violet);box-shadow:var(--sh);outline:1px solid var(--line)}
.sw{width:36px;height:20px;border-radius:20px;background:#CBD3DF;position:relative;flex:none}
.sw::after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:2px;left:2px;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.sw.on{background:var(--cyan)} .sw.on::after{left:18px}
.chanrow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.chan{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between}
.chan .nm{font-weight:600;font-size:13px}
.chan .sb{font-size:11.5px;color:var(--ink-3)}
.chan.off{background:#FAFAFB}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tcg{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;align-items:center;gap:12px}
.tcg .ic{width:34px;height:34px;border-radius:9px;background:var(--violet-50);color:var(--violet);display:grid;place-items:center}

.side-c .sec{padding:18px 18px 18px}
.lot{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line-2);font-size:13px}
.lot:first-of-type{border-top:0}
.lot .p{font-weight:600}
.lot .d{font-size:11.5px;color:var(--ink-3)}
.lot .q{font-weight:700;text-align:right}
.big{font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1}
.doc{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font-size:13px}
.doc+.doc{margin-top:8px}
.doc .ic{width:30px;height:30px;border-radius:7px;background:var(--bad-50);color:var(--bad);display:grid;place-items:center;font-size:9.5px;font-weight:700}
.doc .ok{margin-left:auto;color:var(--ok)}
.doc .ok svg{width:16px;height:16px;stroke-width:2.2}
.doc.miss{border-style:dashed;color:var(--ink-3)}
.doc.miss .ic{background:#EEF1F5;color:var(--ink-3)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:12px;font-weight:600;padding:4px 9px;border-radius:6px;background:var(--cyan-50);color:var(--cyan-d)}
.chip.more{background:#EEF1F5;color:var(--ink-2)}
.pr{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line-2);font-size:13px}
.pr b{font-weight:700}
.savebar{margin-top:18px;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--navy);border-radius:12px;color:#C9CBD6;font-size:13px}
.savebar b{color:#fff}

/* tables */
.ch-h{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line-2)}
.ch-h h3{font-size:15px;font-weight:700}
.ch-h a{font-size:12.5px;color:var(--cyan-d);font-weight:600;display:flex;align-items:center;gap:4px}
.ch-h a svg{width:14px;height:14px}
table{width:100%;border-collapse:collapse}
th{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600;text-align:left;padding:10px 14px;background:#FAFAFB;border-bottom:1px solid var(--line-2)}
td{padding:10px 14px;border-bottom:1px solid var(--line-2);font-size:13px;vertical-align:middle}
tr:last-child td{border-bottom:0}
.nhc{font-weight:600;color:var(--navy)}
.who{display:flex;align-items:center;gap:10px}
.ph{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#ECE6F7,#DCEBF7);flex:none}
.cc{font-size:12px;color:var(--ink-2)}
.eb{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2)}
.eb svg{width:15px;height:15px}
.num{text-align:right}

/* ---- shared extras ---- */
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}
.pagehead p{margin-top:4px}
.row-actions{display:flex;gap:10px}
.cb{width:17px;height:17px;border-radius:5px;border:1.5px solid #C9CAD3;background:#fff;display:inline-grid;place-items:center;flex:none;vertical-align:middle}
.cb.on{background:var(--violet);border-color:var(--violet);color:#fff}
.cb.on::after{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.cb.mid{background:var(--violet);border-color:var(--violet)}
.cb.mid::after{content:"";width:8px;height:2px;background:#fff;border-radius:1px}
.ta{border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.55;color:var(--ink);background:#fff;min-height:74px}
.ta.focus{border-color:var(--cyan);box-shadow:0 0 0 3px var(--cyan-50)}
.hint{font-size:11.5px;color:var(--ink-3);margin-top:5px;display:flex;justify-content:space-between}
.dz{border:1.5px dashed #C9CAD8;border-radius:12px;background:#FAFAFC;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--ink-3);font-size:12.5px;text-align:center;padding:18px}
.dz .ic{width:40px;height:40px;border-radius:10px;background:var(--violet-50);color:var(--violet);display:grid;place-items:center}
.dz b{color:var(--violet);font-weight:600}
.acc{display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid var(--line);border-radius:10px;background:#fff}
.acc+.acc{margin-top:8px}
.acc .t{font-weight:600;font-size:13.5px}
.acc .s{font-size:12px;color:var(--ink-3)}
.acc .r{margin-left:auto;display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:12px}
.acc.open{border-color:var(--violet-100);box-shadow:0 0 0 3px var(--violet-50)}
.acc-body{border:1px solid var(--violet-100);border-top:0;border-radius:0 0 10px 10px;padding:16px;margin-top:-10px;padding-top:24px;background:#fff}
.av2{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--violet-50);color:var(--violet);font-weight:700;font-size:12px;flex:none}
.av2.b{background:var(--cyan-50);color:var(--cyan-d)}
.av2.g{background:#EFEFF3;color:var(--ink-3)}
.prog{height:6px;background:var(--line-2);border-radius:4px;overflow:hidden}
.prog i{display:block;height:100%;background:var(--grad);border-radius:4px}
.mini{display:grid;gap:14px}
.mini .card{padding:16px 18px}
.mini .l{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600}
.mini .v{font-size:24px;font-weight:700;letter-spacing:-.02em;margin-top:4px}
.mini .v small{font-size:13px;color:var(--ink-3);font-weight:500}
.filters{display:flex;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line-2)}
.fsel{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:12.5px;color:var(--ink-2);background:#fff;white-space:nowrap}
.fsel svg{width:14px;height:14px;color:var(--ink-3)}
.fsel b{color:var(--ink);font-weight:600}
.fsel.on{border-color:var(--violet-100);background:var(--violet-50);color:var(--violet)}
.fsel.on b{color:var(--violet)}
.fsearch{flex:1;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:12.5px;color:var(--ink-3);background:#fff}
.fsearch svg{width:15px;height:15px}
.pager{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--line-2);font-size:12.5px;color:var(--ink-3)}
.pager .pg{display:flex;gap:4px}
.pager .pg span{min-width:30px;height:30px;border-radius:7px;display:grid;place-items:center;border:1px solid var(--line);color:var(--ink-2);font-weight:600;padding:0 8px}
.pager .pg span.on{background:var(--violet);border-color:var(--violet);color:#fff}
.flag{display:inline-grid;place-items:center;min-width:26px;height:20px;border-radius:5px;font-size:10.5px;font-weight:700;letter-spacing:.02em;padding:0 5px}
.flag.on{background:var(--cyan-50);color:var(--cyan-d)}
.flag.off{background:#F1F1F4;color:#B3B5C2;text-decoration:line-through}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;background:#F6F6F9;border:1px solid var(--line);border-radius:7px;padding:8px 10px;color:var(--ink-2);display:flex;align-items:center;justify-content:space-between;gap:10px}
.code svg{width:15px;height:15px;color:var(--ink-3)}
.ibtn{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);display:inline-grid;place-items:center;color:var(--ink-2);background:#fff}
.ibtn svg{width:15px;height:15px}
.st-ok{color:var(--ok);font-weight:600}
.st-bad{color:var(--bad);font-weight:600}
.st-warn{color:var(--warn);font-weight:600}
.b-res{background:var(--cyan-50);color:var(--cyan-d)}
.b-vio{background:var(--violet-50);color:var(--violet)}

/* ===== login ===== */
body.p-login{background:linear-gradient(125deg,#5A0BC9 0%,#720EEC 30%,#4B5CF5 65%,#2EAFFE 100%);min-height:100vh;display:grid;place-items:center;position:relative;overflow:hidden}
.p-login .bg1,.p-login .bg2{position:absolute;border-radius:50%}
.p-login .bg1{width:780px;height:780px;left:-260px;bottom:-360px;background:radial-gradient(circle at 60% 40%,rgba(46,175,254,.45),rgba(46,175,254,0) 65%)}
.p-login .bg2{width:620px;height:620px;right:-180px;top:-240px;border:1px solid rgba(255,255,255,.14);box-shadow:0 0 0 70px rgba(255,255,255,.04),0 0 0 140px rgba(255,255,255,.03)}
.p-login .grid{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(180deg,transparent,#000 40%,transparent)}
.p-login .wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:22px}
.p-login .box{width:440px;background:#fff;border-radius:18px;padding:40px 40px 32px;box-shadow:0 30px 70px -20px rgba(40,10,110,.55),0 0 0 1px rgba(255,255,255,.04)}
.p-login .box .logo{display:flex;justify-content:center;margin-bottom:26px}
.p-login .box .logo img{height:44px}
.p-login h1{font-size:20px;font-weight:700;text-align:center;letter-spacing:-.015em}
.p-login .lead{text-align:center;color:var(--ink-3);font-size:13.5px;margin:6px 0 28px}
.p-login label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:7px}
.p-login .f{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--ink-3);margin-bottom:18px;background:#fff}
.p-login .f.focus{border-color:var(--violet);box-shadow:0 0 0 4px var(--violet-50);color:var(--violet)}
.p-login .f .v{flex:1;color:var(--ink);font-size:14px}
.p-login .f .pw{letter-spacing:.28em;font-size:15px}
.p-login .row{display:flex;justify-content:space-between;align-items:center;margin:-4px 0 24px;font-size:13px}
.p-login .chk{display:flex;align-items:center;gap:8px;color:var(--ink-2)}
.p-login .chk i{width:17px;height:17px;border-radius:5px;background:var(--violet);display:grid;place-items:center;color:#fff}
.p-login .chk i svg{width:12px;height:12px;stroke-width:3}
.p-login a.lnk{color:var(--cyan-d);font-weight:600;text-decoration:none}
.p-login .cta{width:100%;justify-content:center;padding:13px;font-size:14.5px;border-radius:10px;box-shadow:0 10px 22px -10px rgba(114,14,236,.8)}
.p-login .sec{margin-top:26px;padding-top:18px;border-top:1px solid var(--line-2);display:flex;justify-content:center;gap:18px;font-size:12px;color:var(--ink-3)}
.p-login .sec span{display:flex;align-items:center;gap:6px}
.p-login .sec svg{width:15px;height:15px;color:var(--ok)}
.p-login .foot{color:rgba(255,255,255,.8);font-size:12px;text-align:center}
.p-login .foot b{color:#fff;font-weight:600}
/* ===== recuperar ===== */
body.p-recuperar{background:linear-gradient(125deg,#5A0BC9 0%,#720EEC 30%,#4B5CF5 65%,#2EAFFE 100%);min-height:100vh;display:grid;place-items:center;position:relative;overflow:hidden}
.p-recuperar .bg1,.p-recuperar .bg2{position:absolute;border-radius:50%}
.p-recuperar .bg1{width:780px;height:780px;left:-260px;bottom:-360px;background:radial-gradient(circle at 60% 40%,rgba(46,175,254,.45),rgba(46,175,254,0) 65%)}
.p-recuperar .bg2{width:620px;height:620px;right:-180px;top:-240px;border:1px solid rgba(255,255,255,.14);box-shadow:0 0 0 70px rgba(255,255,255,.04),0 0 0 140px rgba(255,255,255,.03)}
.p-recuperar .grid{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(180deg,transparent,#000 40%,transparent)}
.p-recuperar .wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:22px}
.p-recuperar .box{width:440px;background:#fff;border-radius:18px;padding:40px 40px 32px;box-shadow:0 30px 70px -20px rgba(40,10,110,.55),0 0 0 1px rgba(255,255,255,.04)}
.p-recuperar .box .logo{display:flex;justify-content:center;margin-bottom:26px}
.p-recuperar .box .logo img{height:44px}
.p-recuperar h1{font-size:20px;font-weight:700;text-align:center;letter-spacing:-.015em}
.p-recuperar .lead{text-align:center;color:var(--ink-3);font-size:13.5px;margin:6px 0 28px}
.p-recuperar label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:7px}
.p-recuperar .f{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--ink-3);margin-bottom:18px;background:#fff}
.p-recuperar .f.focus{border-color:var(--violet);box-shadow:0 0 0 4px var(--violet-50);color:var(--violet)}
.p-recuperar .f .v{flex:1;color:var(--ink);font-size:14px}
.p-recuperar .f .pw{letter-spacing:.28em;font-size:15px}
.p-recuperar .row{display:flex;justify-content:space-between;align-items:center;margin:-4px 0 24px;font-size:13px}
.p-recuperar .chk{display:flex;align-items:center;gap:8px;color:var(--ink-2)}
.p-recuperar .chk i{width:17px;height:17px;border-radius:5px;background:var(--violet);display:grid;place-items:center;color:#fff}
.p-recuperar .chk i svg{width:12px;height:12px;stroke-width:3}
.p-recuperar a.lnk{color:var(--cyan-d);font-weight:600;text-decoration:none}
.p-recuperar .cta{width:100%;justify-content:center;padding:13px;font-size:14.5px;border-radius:10px;box-shadow:0 10px 22px -10px rgba(114,14,236,.8)}
.p-recuperar .sec{margin-top:26px;padding-top:18px;border-top:1px solid var(--line-2);display:flex;justify-content:center;gap:18px;font-size:12px;color:var(--ink-3)}
.p-recuperar .sec span{display:flex;align-items:center;gap:6px}
.p-recuperar .sec svg{width:15px;height:15px;color:var(--ok)}
.p-recuperar .foot{color:rgba(255,255,255,.8);font-size:12px;text-align:center}
.p-recuperar .foot b{color:#fff;font-weight:600}
.p-recuperar .pair{position:relative;display:flex;gap:28px;align-items:flex-start}
.p-recuperar .stp{color:rgba(255,255,255,.85);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.p-recuperar .stp b{width:22px;height:22px;border-radius:50%;background:#fff;color:var(--violet);display:grid;place-items:center;font-size:11px}
.p-recuperar .box{width:420px}
.p-recuperar .ok{display:flex;gap:10px;background:var(--ok-50);border-radius:10px;padding:12px 14px;font-size:12.5px;color:#17734F;margin-top:18px}
.p-recuperar .ok svg{color:var(--ok);width:18px;height:18px;flex:none}
.p-recuperar .meter{display:flex;gap:4px;margin:-8px 0 8px}
.p-recuperar .meter i{flex:1;height:5px;border-radius:3px;background:var(--line)}
.p-recuperar .meter i.on{background:var(--ok)}
.p-recuperar .req{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:12px;color:var(--ink-2);margin:10px 0 22px}
.p-recuperar .req span{display:flex;align-items:center;gap:6px}
.p-recuperar .req svg{width:14px;height:14px;color:var(--ok);stroke-width:2.4}
.p-recuperar .req span.no{color:var(--ink-3)}
.p-recuperar .req span.no svg{color:#C9CAD3}
.p-recuperar .back{display:flex;justify-content:center;gap:6px;align-items:center;margin-top:18px;font-size:13px;font-weight:600;color:var(--cyan-d)}
/* ===== dashboard ===== */
.p-dashboard .head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}
.p-dashboard .head p{margin-top:4px}
.p-dashboard .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}
.p-dashboard .kpi{padding:18px 20px 16px}
.p-dashboard .kpi .t{display:flex;align-items:center;justify-content:space-between;color:var(--ink-2);font-weight:600;font-size:12.5px}
.p-dashboard .kpi .ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--cyan-50);color:var(--cyan-d)}
.p-dashboard .kpi .ic.n{background:var(--violet-50);color:var(--violet)}
.p-dashboard .kpi .v{font-size:32px;font-weight:700;letter-spacing:-.03em;margin:8px 0 6px;line-height:1}
.p-dashboard .kpi .v small{font-size:15px;color:var(--ink-3);font-weight:500;letter-spacing:0}
.p-dashboard .kpi .d{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:6px}
.p-dashboard .up{color:var(--ok);font-weight:600;display:inline-flex;align-items:center}
.p-dashboard .up svg{width:14px;height:14px;stroke-width:2.4}
.p-dashboard .bar{display:flex;height:6px;border-radius:4px;overflow:hidden;gap:2px;margin:10px 0 7px}
.p-dashboard .lg{display:flex;gap:12px;font-size:11.5px;color:var(--ink-3)}
.p-dashboard .lg i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}
.p-dashboard .chans{display:flex;gap:6px;margin:12px 0 8px}
.p-dashboard .ch{flex:1;border:1px solid var(--line);border-radius:8px;padding:6px 7px;font-size:11.5px;font-weight:600;display:flex;align-items:center;gap:6px}
.p-dashboard .ch .dot{width:6px;height:6px;box-shadow:0 0 0 2px var(--ok-50)}
.p-dashboard .spark{display:flex;align-items:flex-end;gap:3px;height:30px;margin:8px 0 6px}
.p-dashboard .spark i{flex:1;background:var(--cyan-100);border-radius:2px}
.p-dashboard .spark i.hi{background:var(--grad)}
.p-dashboard .row2{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}
.p-dashboard .ch-h{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line-2)}
.p-dashboard .ch-h h3{font-size:15px;font-weight:700}
.p-dashboard .ch-h a{font-size:12.5px;color:var(--cyan-d);font-weight:600;display:flex;align-items:center;gap:4px}
.p-dashboard .ch-h a svg{width:14px;height:14px}
.p-dashboard table{width:100%;border-collapse:collapse}
.p-dashboard th{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600;text-align:left;padding:10px 14px;background:#FAFAFB;border-bottom:1px solid var(--line-2)}
.p-dashboard td{padding:10px 14px;border-bottom:1px solid var(--line-2);font-size:13px;vertical-align:middle}
.p-dashboard tr:last-child td{border-bottom:0}
.p-dashboard .nhc{font-weight:600;color:var(--navy)}
.p-dashboard .who{display:flex;align-items:center;gap:10px}
.p-dashboard .ph{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#ECE6F7,#DCEBF7);flex:none}
.p-dashboard .cc{font-size:12px;color:var(--ink-2)}
.p-dashboard .eb{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2)}
.p-dashboard .eb svg{width:15px;height:15px}
.p-dashboard .num{text-align:right}
.p-dashboard .al{padding:6px 8px 10px}
.p-dashboard .a{display:flex;gap:12px;padding:12px;border-radius:10px}
.p-dashboard .a+.a{border-top:1px solid var(--line-2);border-radius:0}
.p-dashboard .a .ic{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;flex:none}
.p-dashboard .a .ic svg{width:16px;height:16px}
.p-dashboard .a.crit .ic{background:var(--bad-50);color:var(--bad)}
.p-dashboard .a.warn .ic{background:var(--warn-50);color:var(--warn)}
.p-dashboard .a .tt{font-weight:600;font-size:13px;display:flex;justify-content:space-between;gap:8px}
.p-dashboard .a .ss{font-size:12px;color:var(--ink-3);margin-top:2px}
.p-dashboard .meter{height:5px;background:var(--line-2);border-radius:3px;margin-top:8px;overflow:hidden}
.p-dashboard .meter i{display:block;height:100%;border-radius:3px}
.p-dashboard .a.crit .meter i{background:var(--bad)}
.p-dashboard .a.warn .meter i{background:var(--warn)}
.p-dashboard .left{font-size:12px;font-weight:700;white-space:nowrap}
.p-dashboard .a.crit .left{color:var(--bad)}
.p-dashboard .a.warn .left{color:var(--warn)}
/* ===== lotes ===== */
.t-lotes .mini{grid-template-columns:repeat(4,1fr);margin-bottom:16px}
.t-lotes .newlot{padding:18px 20px;margin-bottom:16px;border-color:var(--violet-100);box-shadow:0 0 0 3px var(--violet-50)}
.t-lotes .newlot .fg{grid-template-columns:1.1fr 1fr .8fr 1.6fr auto;align-items:end}
.t-lotes .calc{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2);margin-top:12px;padding:10px 12px;background:var(--cyan-50);border-radius:8px}
.t-lotes .calc svg{width:16px;height:16px;color:var(--cyan-d)}
.t-lotes .calc b{color:var(--ink)}
.t-lotes .bar2{display:flex;height:8px;border-radius:5px;overflow:hidden;gap:2px;width:120px}
.t-lotes .cols2{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;margin-top:16px;align-items:start}
.t-lotes .mv{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line-2);font-size:12.5px}
.t-lotes .mv:first-of-type{border-top:0;padding-top:4px}
.t-lotes .mv .ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none}
.t-lotes .mv .ic svg{width:15px;height:15px}
.t-lotes .mv .t{font-weight:600;font-size:13px}
.t-lotes .mv .s{color:var(--ink-3);font-size:12px;margin-top:1px}
.t-lotes .mv .n{margin-left:auto;font-weight:700;white-space:nowrap}
/* ===== historial ===== */
.t-historial .lay{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;align-items:start}
.t-historial .subnav{padding:10px}
.t-historial .subnav a{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-radius:8px;font-size:13px;font-weight:500;color:var(--ink-2)}
.t-historial .subnav a span{font-size:11px;color:var(--ink-3);background:var(--bg);border-radius:10px;padding:1px 7px}
.t-historial .subnav a.on{background:var(--violet-50);color:var(--violet);font-weight:600}
.t-historial .subnav a.on span{background:#fff;color:var(--violet)}
.t-historial .subnav .sep{height:1px;background:var(--line-2);margin:8px 4px}
.t-historial .fam{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.t-historial .fam .acc{margin-top:0!important}
.t-historial .acc .rel{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#A3A5B5}
.t-historial .acc svg{width:16px;height:16px}
.t-historial .gen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:22px}
.t-historial .gi{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line-2);font-size:12.5px;color:var(--ink-2)}
.t-historial .gi .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t-historial .gi .nm i{font-style:normal;color:#A3A5B5;font-size:11px;margin-right:6px;font-variant-numeric:tabular-nums}
.t-historial .yn{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;flex:none;font-size:11px;font-weight:600}
.t-historial .yn span{padding:3px 8px;color:#A3A5B5}
.t-historial .yn span.no{background:#F1F1F4;color:var(--ink-2)}
.t-historial .yn span.yes{background:var(--warn-50);color:var(--warn)}
.t-historial .gi.hit{color:var(--ink);font-weight:600}
.t-historial .cyc td,.t-historial .cyc th{padding:9px 14px}
/* ===== faqs ===== */
.t-faqs .langbar{display:flex;align-items:center;gap:10px;padding:12px 16px;margin-bottom:16px}
.t-faqs .langbar .lb{font-size:12.5px;font-weight:600;color:var(--ink-2);margin-right:4px}
.t-faqs .lt{display:inline-flex;align-items:center;gap:8px;padding:6px 11px;border-radius:8px;border:1px solid var(--line);font-size:12.5px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.t-faqs .lt small{font-weight:500;color:var(--ink-3);font-size:11.5px}
.t-faqs .lt.on{background:var(--violet);border-color:var(--violet);color:#fff}
.t-faqs .lt.on small{color:#E5D5FC}
.t-faqs .lt .pc{font-size:11px;padding:1px 6px;border-radius:10px;background:var(--warn-50);color:var(--warn)}
.t-faqs .lt .ok{font-size:11px;padding:1px 6px;border-radius:10px;background:var(--ok-50);color:var(--ok)}
.t-faqs .faqs{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.t-faqs .faqs .ta{min-height:84px}
.t-faqs .bio-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-top:14px}
.t-faqs .bi{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;font-size:12.5px;color:var(--ink-2)}
.t-faqs .bi code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;color:#A3A5B5;margin-left:auto}
.t-faqs .bi .d{width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none}
.t-faqs .bi.empty .d{background:#fff;border:1.5px solid #C9CAD3}
.t-faqs .bi.empty{color:var(--ink-3);border-style:dashed}
.t-faqs .pdf{border:1px solid var(--line);border-radius:10px;padding:14px}
.t-faqs .pdf+.pdf{margin-top:10px}
.t-faqs .pdf .top{display:flex;align-items:center;gap:12px}
.t-faqs .pdf .ic{width:38px;height:44px;border-radius:6px;background:var(--bad-50);color:var(--bad);display:grid;place-items:center;font-size:10px;font-weight:700;flex:none;position:relative}
.t-faqs .pdf .nm{font-weight:600;font-size:13px}
.t-faqs .pdf .mt{font-size:11.5px;color:var(--ink-3);margin-top:2px}
.t-faqs .pdf .code{margin-top:10px}
/* ===== multimedia ===== */
.t-multimedia .mm{display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px;align-items:start}
.t-multimedia .pv{border-radius:12px;display:grid;place-items:center;color:rgba(114,14,236,.35);position:relative;overflow:hidden}
.t-multimedia .pv svg{width:30px;height:30px}
.t-multimedia .g1{background:linear-gradient(135deg,#EDE3FC,#D6ECFF)}
.t-multimedia .g2{background:linear-gradient(135deg,#E0F1FF,#F1E8FD)}
.t-multimedia .g3{background:linear-gradient(160deg,#F4EDFD,#E3F2FF)}
.t-multimedia .g4{background:linear-gradient(120deg,#DDEBFA,#EFE4FC)}
.t-multimedia .main-img{height:380px}
.t-multimedia .main-img .lbl{position:absolute;left:12px;top:12px;background:#fff;border-radius:7px;padding:4px 9px;font-size:11.5px;font-weight:700;color:var(--violet);display:flex;align-items:center;gap:5px;box-shadow:var(--sh)}
.t-multimedia .main-img .lbl svg{width:13px;height:13px;color:var(--violet)}
.t-multimedia .gal{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.t-multimedia .th{aspect-ratio:1/1}
.t-multimedia .th .n{position:absolute;left:8px;top:8px;background:rgba(255,255,255,.92);border-radius:6px;padding:1px 7px;font-size:11px;font-weight:700;color:var(--ink-2)}
.t-multimedia .th .dr{position:absolute;right:6px;top:6px;width:24px;height:24px;border-radius:6px;background:rgba(255,255,255,.92);display:grid;place-items:center;color:var(--ink-3)}
.t-multimedia .th .dr svg{width:14px;height:14px}
.t-multimedia .th .tg{position:absolute;left:8px;bottom:8px;right:8px;background:rgba(27,29,46,.78);color:#fff;border-radius:6px;padding:3px 7px;font-size:10.5px;font-weight:600;display:flex;align-items:center;gap:5px}
.t-multimedia .th .tg svg{width:12px;height:12px}
.t-multimedia .th.sel{outline:2px solid var(--violet);outline-offset:2px}
.t-multimedia .vids{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.t-multimedia .vid{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.t-multimedia .vid .pv{height:150px;border-radius:0}
.t-multimedia .vid .pl{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.95);display:grid;place-items:center;color:var(--violet);box-shadow:0 6px 16px -6px rgba(114,14,236,.5)}
.t-multimedia .vid .pl svg{width:18px;height:18px;fill:var(--violet)}
.t-multimedia .vid .dur{position:absolute;right:10px;bottom:10px;background:rgba(27,29,46,.8);color:#fff;border-radius:5px;padding:2px 6px;font-size:11px;font-weight:600}
.t-multimedia .vid .b{padding:12px 14px}
.t-multimedia .vid .nm{font-weight:600;font-size:13px}
.t-multimedia .vid .mt{font-size:11.5px;color:var(--ink-3);margin-top:2px;display:flex;gap:6px;align-items:center}
.t-multimedia .detail{padding:16px 18px}
.t-multimedia .detail .row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-top:1px solid var(--line-2);font-size:12.5px}
.t-multimedia .detail .row:first-of-type{border-top:0}
/* ===== comercial ===== */
.t-comercial .top3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.t-comercial .pt td{padding:11px 10px}
.t-comercial .pt th{padding:10px 10px}
.t-comercial .cur{display:inline-block;font-size:11px;font-weight:700;padding:2px 6px;border-radius:5px;background:#F1F1F4;color:var(--ink-2);margin-right:6px}
.t-comercial .pin{border:1px solid var(--line);border-radius:7px;padding:6px 10px;font-weight:600;display:inline-flex;min-width:84px;justify-content:flex-end}
.t-comercial .reg{border:1px solid var(--line);border-radius:10px;margin-top:8px;overflow:hidden}
.t-comercial .reg .h{display:flex;align-items:center;gap:12px;padding:11px 14px;font-size:13px}
.t-comercial .reg .h b{font-weight:600}
.t-comercial .reg .h .c{margin-left:auto;font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:8px}
.t-comercial .reg .h svg{width:16px;height:16px}
.t-comercial .reg.open{border-color:var(--violet-100)}
.t-comercial .reg.open .h{background:var(--violet-50)}
.t-comercial .cgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px 12px;padding:12px 14px}
.t-comercial .ci{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:5px 0;color:var(--ink-2)}
.t-comercial .ci.off{color:var(--ink-3)}
.t-comercial .sum .big{font-size:34px}
.t-comercial .chmap{display:grid;gap:8px;margin-top:12px}
.t-comercial .chm{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font-size:12.5px}
.t-comercial .chm b{font-weight:600}
.t-comercial .chm .r{margin-left:auto}
/* ===== webs ===== */
.p-webs .stores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 170px;gap:14px;margin-bottom:16px}
.p-webs .store{padding:16px 18px}
.p-webs .store.pick{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-50)}
.p-webs .store .hd{display:flex;align-items:center;gap:10px}
.p-webs .store .fl{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:12px;background:var(--cyan-50);color:var(--cyan-d)}
.p-webs .store.pick .fl{background:var(--violet-50);color:var(--violet)}
.p-webs .store .nm{font-weight:700;font-size:14px}
.p-webs .store .dm{font-size:12px;color:var(--ink-3)}
.p-webs .store .kv{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-2)}
.p-webs .store .kv .l{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:600}
.p-webs .store .kv .v{font-weight:700;font-size:14px;margin-top:2px}
.p-webs .addst{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1.5px dashed #C9CAD8;border-radius:14px;color:var(--violet);font-weight:600;font-size:13px}
.p-webs .addst .ic{width:36px;height:36px;border-radius:50%;background:var(--violet-50);display:grid;place-items:center}
.p-webs .g2{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:start}
.p-webs .cred{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.p-webs .cred .code{font-size:12px}
.p-webs .key-actions{display:flex;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line-2);align-items:center}
.p-webs .mx th,.p-webs .mx td{padding:8px 14px}
.p-webs .mx th.c,.p-webs .mx td.c{text-align:center;width:90px}
.p-webs .mx tr.grp td{background:#FAFAFB;font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);padding:8px 14px}
.p-webs .mx td code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;color:#A3A5B5;margin-left:8px}
.p-webs .mx tr.hid td:first-child{color:var(--ink)}
.p-webs .eye{display:inline-grid;place-items:center;width:28px;height:24px;border-radius:6px}
.p-webs .eye svg{width:15px;height:15px}
.p-webs .eye.on{background:var(--cyan-50);color:var(--cyan-d)}
.p-webs .eye.off{background:var(--bad-50);color:var(--bad)}
.p-webs .log{font-size:12px}
.p-webs .lg-r{display:grid;grid-template-columns:62px 1fr auto;gap:10px;padding:10px 18px;border-top:1px solid var(--line-2);align-items:center}
.p-webs .lg-r:first-child{border-top:0}
.p-webs .lg-r .t{color:var(--ink-3);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}
.p-webs .lg-r .e{font-weight:600;font-size:12.5px}
.p-webs .lg-r .s{color:var(--ink-3);font-size:11.5px}
.p-webs .code200{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:700;padding:2px 6px;border-radius:5px;background:var(--ok-50);color:var(--ok)}
.p-webs .code409{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:700;padding:2px 6px;border-radius:5px;background:var(--warn-50);color:var(--warn)}
.p-webs .code500{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:700;padding:2px 6px;border-radius:5px;background:var(--bad-50);color:var(--bad)}
.p-webs .res{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font-size:12.5px}
.p-webs .res+.res{margin-top:8px}
.p-webs .tm{margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:700;color:var(--cyan-d)}
/* ===== traducciones ===== */
.p-traducciones .langs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) 130px;gap:12px;margin-bottom:16px}
.p-traducciones .lc{padding:14px 16px}
.p-traducciones .lc.pick{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-50)}
.p-traducciones .lc .hd{display:flex;align-items:center;justify-content:space-between}
.p-traducciones .lc .cd{font-weight:700;font-size:14px}
.p-traducciones .lc .nm{font-size:12px;color:var(--ink-3);margin:2px 0 10px}
.p-traducciones .lc .pc{font-size:12px;font-weight:700}
.p-traducciones .addl{border:1.5px dashed #C9CAD8;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--violet);font-weight:600;font-size:13px}
.p-traducciones .g2{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.p-traducciones .subtabs{display:flex;gap:4px;padding:0 16px;border-bottom:1px solid var(--line-2)}
.p-traducciones .subtabs span{padding:13px 12px;font-weight:600;font-size:13px;color:var(--ink-3);border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;gap:7px;align-items:center}
.p-traducciones .subtabs span.on{color:var(--violet);border-color:var(--violet)}
.p-traducciones .subtabs span i{font-style:normal;font-size:11px;background:var(--bg);border-radius:10px;padding:1px 7px;color:var(--ink-3)}
.p-traducciones .tt td{padding:7px 14px;vertical-align:middle}
.p-traducciones .tt th{padding:10px 14px}
.p-traducciones .tt tr.grp td{background:#FAFAFB;padding:9px 14px}
.p-traducciones .tt tr.grp b{font-size:12.5px}
.p-traducciones .tt tr.grp code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;color:#A3A5B5;margin-left:8px}
.p-traducciones .key{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;color:var(--ink-3)}
.p-traducciones .cell{border:1px solid var(--line);border-radius:7px;padding:6px 9px;font-size:13px;background:#fff;min-width:130px}
.p-traducciones .cell.ro{background:transparent;border-color:transparent;padding-left:0;color:var(--ink-2)}
.p-traducciones .cell.empty{border-style:dashed;border-color:#E3C48A;background:var(--warn-50);color:#B7924A;font-style:italic}
.p-traducciones .cell.focus{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-50)}
.p-traducciones .cell.auto{border-color:var(--cyan-100);background:var(--cyan-50)}
.p-traducciones .cell.auto small{color:var(--cyan-d);font-size:10.5px;font-weight:600;margin-left:6px}
.p-traducciones .ep{padding:16px 18px}
.p-traducciones .ep+.ep{margin-top:16px}
.p-traducciones .ep .code{margin-top:8px;font-size:11.5px}
.p-traducciones .method{font-weight:700;color:var(--ok)}
/* ===== catalogo ===== */
.p-catalogo .thumb{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#ECE6F7,#DCEBF7);flex:none}
.p-catalogo .tabs2{display:flex;gap:6px;margin-bottom:14px}
.p-catalogo .tabs2 span{padding:7px 12px;border-radius:8px;font-size:13px;font-weight:600;color:var(--ink-2);display:flex;gap:7px;align-items:center}
.p-catalogo .tabs2 span i{font-style:normal;font-size:11px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 7px;color:var(--ink-3)}
.p-catalogo .tabs2 span.on{background:#fff;color:var(--violet);box-shadow:var(--sh);outline:1px solid var(--line)}
.p-catalogo .tabs2 span.on i{background:var(--violet-50);border-color:var(--violet-100);color:var(--violet)}
.p-catalogo .bulk{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--violet-50);border-bottom:1px solid var(--violet-100);font-size:12.5px;color:var(--violet)}
.p-catalogo .bulk b{font-weight:700}
.p-catalogo .bulk .btn{padding:6px 11px;font-size:12px}
.p-catalogo table td{padding:10px 12px}
.p-catalogo table th{padding:10px 12px}
.p-catalogo tr.rsel td{background:#FBF8FF}
.p-catalogo .flag{margin-right:-2px}
/* ===== usuarios ===== */
.p-usuarios .lay{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}
.p-usuarios .subnav{padding:10px}
.p-usuarios .subnav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;font-size:13px;font-weight:500;color:var(--ink-2)}
.p-usuarios .subnav a svg{width:16px;height:16px;color:var(--ink-3)}
.p-usuarios .subnav a.on{background:var(--violet-50);color:var(--violet);font-weight:600}
.p-usuarios .subnav a.on svg{color:var(--violet)}
.p-usuarios table td,.p-usuarios table th{padding:11px 12px}
.p-usuarios .u{display:flex;align-items:center;gap:10px}
.p-usuarios .u .n{font-weight:600}
.p-usuarios .u .e{font-size:12px;color:var(--ink-3)}
.p-usuarios .av3{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12px;color:#fff;flex:none}
.p-usuarios .role{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;border:1px solid var(--line);border-radius:7px;padding:4px 9px;white-space:nowrap}
.p-usuarios .role svg{width:13px;height:13px;color:var(--ink-3)}
.p-usuarios .g2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;margin-top:16px;align-items:start}
.p-usuarios .pm th,.p-usuarios .pm td{padding:8px 10px;font-size:12.5px}
.p-usuarios .pm th.c,.p-usuarios .pm td.c{text-align:center}
.p-usuarios .srow{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line-2)}
.p-usuarios .srow:first-of-type{border-top:0;padding-top:0}
.p-usuarios .srow .t{font-weight:600;font-size:13px}
.p-usuarios .srow .s{font-size:12px;color:var(--ink-3)}
.p-usuarios .srow .r{margin-left:auto}
.p-usuarios .srow .in{min-height:32px;padding:6px 10px;font-size:12.5px;min-width:130px;gap:8px}
/* ===== punciones ===== */
.p-punciones .mini{grid-template-columns:repeat(4,1fr);margin-bottom:16px}
.p-punciones .lay{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:16px;align-items:start}
.p-punciones table td,.p-punciones table th{padding:10px 12px}
.p-punciones tr.rnew td{background:#FBF8FF}
.p-punciones .drawer{padding:20px;border-color:var(--violet-100);box-shadow:0 0 0 3px var(--violet-50),var(--sh)}
.p-punciones .drawer .fld{margin-bottom:12px}
.p-punciones .pickd{display:flex;align-items:center;gap:10px;border:1px solid var(--violet);box-shadow:0 0 0 3px var(--violet-50);border-radius:9px;padding:8px 10px}
.p-punciones .pickd .th{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,#ECE6F7,#DCEBF7)}
.p-punciones .calc{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2);padding:10px 12px;background:var(--cyan-50);border-radius:8px;margin:4px 0 14px}
.p-punciones .calc svg{width:16px;height:16px;color:var(--cyan-d)}
/* ===== controles de formulario reales ===== */
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
input.in,select.in,textarea.ta{font:inherit;font-size:13.5px;color:var(--ink);width:100%;outline:none;display:block}
input.in:focus,select.in:focus,textarea.ta:focus,.in:focus-within{border-color:var(--cyan);box-shadow:0 0 0 3px var(--cyan-50)}
input.in[readonly],input.in:disabled,select.in:disabled,textarea.ta:disabled{background:var(--bg);color:var(--ink-2)}
select.in{appearance:none;-webkit-appearance:none;padding-right:32px;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2385889A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center}
textarea.ta{resize:vertical;font-size:13px}
.in input,.in select{border:0;outline:0;background:transparent;font:inherit;color:inherit;flex:1;min-width:0;padding:0}
.in.icon{gap:8px;justify-content:flex-start}
.in.icon svg{flex:none}
.in .suffix{color:var(--ink-3);font-size:12px;white-space:nowrap}
input.mono-in{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
.fld label{cursor:default}
.req-star{color:var(--bad);margin-left:2px}
.invalid{border-color:var(--bad)!important;box-shadow:0 0 0 3px var(--bad-50)!important}
.err{color:var(--bad);font-size:11.5px;margin-top:4px}

/* switch */
label.sw{cursor:pointer;display:inline-block}
label.sw input{position:absolute;opacity:0;width:0;height:0}
label.sw::after{transition:left .15s}
label.sw:has(input:checked){background:var(--cyan)}
label.sw:has(input:checked)::after{left:18px}
label.sw:has(input:focus-visible){box-shadow:0 0 0 3px var(--cyan-50)}

/* segmented */
.seg label{flex:1;display:flex}
.seg input{position:absolute;opacity:0;width:0;height:0}
.seg label span{flex:1;cursor:pointer}
.seg input:checked+span{background:#fff;color:var(--violet);box-shadow:var(--sh);outline:1px solid var(--line)}

/* checkbox */
label.cbx{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
label.cbx input{position:absolute;opacity:0;width:0;height:0}
label.cbx input:checked+.cb{background:var(--violet);border-color:var(--violet)}
label.cbx input:checked+.cb::after{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
label.cbx input:indeterminate+.cb{background:var(--violet);border-color:var(--violet)}
label.cbx input:indeterminate+.cb::after{content:"";width:8px;height:2px;background:#fff;border-radius:1px;transform:none;border:0}
label.cbx input:focus-visible+.cb{box-shadow:0 0 0 3px var(--violet-50)}

/* yes/no del historial genético */
.yn label{display:flex;cursor:pointer}
.yn input{position:absolute;opacity:0;width:0;height:0}
.yn .n input:checked+span{background:#F1F1F4;color:var(--ink-2)}
.yn .y input:checked+span{background:var(--warn-50);color:var(--warn)}

/* ojo de visibilidad (matriz de exclusión) */
label.eye{cursor:pointer;position:relative}
label.eye input{position:absolute;opacity:0;width:0;height:0}
label.eye .v-on,label.eye .v-off{display:none}
label.eye:has(input:checked){background:var(--cyan-50);color:var(--cyan-d)}
label.eye:has(input:checked) .v-on{display:block}
label.eye:not(:has(input:checked)){background:var(--bad-50);color:var(--bad)}
label.eye:not(:has(input:checked)) .v-off{display:block}

/* pestañas de la ficha */
.tabs a.tab{cursor:pointer}
.tab-panel{display:none}
.tab-panel.on{display:block}

/* acordeones con details/summary */
details>summary{list-style:none;cursor:pointer}
details>summary::-webkit-details-marker{display:none}
details.accd{margin-top:8px}
details.accd>summary.acc{margin:0}
details.accd[open]>summary.acc{border-color:var(--violet-100);box-shadow:0 0 0 3px var(--violet-50);border-radius:10px 10px 0 0}
details.accd[open]>summary .r svg{transform:rotate(180deg)}
details.accd>.acc-body{margin-top:0;border-radius:0 0 10px 10px;padding-top:16px}
.fam details.accd{margin-top:0}
details.reg>summary.h{display:flex}
details.reg[open]{border-color:var(--violet-100)}
details.reg[open]>summary.h{background:var(--violet-50)}
details.reg[open]>summary .c svg{transform:rotate(180deg)}

/* barra de cambios sin guardar */
.savebar{position:sticky;bottom:16px;z-index:20;display:none!important}
.savebar.show{display:flex!important}

/* toast */
.toasts{position:fixed;right:22px;bottom:22px;display:grid;gap:8px;z-index:100}
.toast{background:var(--navy);color:#fff;border-radius:10px;padding:11px 14px;font-size:13px;display:flex;align-items:center;gap:10px;box-shadow:0 12px 30px -10px rgba(27,29,46,.5);animation:tin .2s ease-out}
.toast svg{color:#6EE7B7}
.toast.bad svg{color:#FCA5A5}
@keyframes tin{from{transform:translateY(8px);opacity:0}}

/* modal */
.modal{position:fixed;inset:0;background:rgba(27,29,46,.45);display:none;align-items:center;justify-content:center;z-index:90;padding:20px}
.modal.show{display:flex}
.modal .dlg{background:#fff;border-radius:16px;width:min(520px,100%);box-shadow:0 30px 70px -20px rgba(27,29,46,.5)}
.modal .dlg-h{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line-2)}
.modal .dlg-h h3{font-size:16px;font-weight:700}
.modal .dlg-b{padding:20px 22px;display:grid;gap:14px}
.modal .dlg-f{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--line-2)}
.ibtn{cursor:pointer}

/* utilidades */
.hidden{display:none!important}
.clickable{cursor:pointer}
tr.clickable:hover td{background:#FAFAFC}
.copy{cursor:pointer}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.search input{border:0;background:transparent;outline:0;font:inherit;color:var(--ink);flex:1;min-width:0}
.fsearch input{border:0;background:transparent;outline:0;font:inherit;color:var(--ink);flex:1;min-width:0}
.dz{cursor:pointer;position:relative}
.dz.over{border-color:var(--violet);background:var(--violet-50)}
.dz input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.pv img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.nav a:hover:not(.on){background:#F7F7F9}
.btn:hover{filter:brightness(.98)}
.btn.pri:hover{filter:brightness(1.06)}
.subnav a{cursor:pointer}
.tabs2 span{cursor:pointer}
.fsel{cursor:pointer}
select.fsel{appearance:none;-webkit-appearance:none;font:inherit;font-size:12.5px;padding-right:28px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2385889A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 9px center;outline:none}

/* ===== ajustes del prototipo funcional ===== */
.p-login .f:focus-within,.p-recuperar .f:focus-within{border-color:var(--violet);box-shadow:0 0 0 4px var(--violet-50);color:var(--violet)}
.p-login .f input::placeholder,.p-recuperar .f input::placeholder{color:#A9ABB8}
.p-login .f.invalid,.p-recuperar .f.invalid{border-color:var(--bad);box-shadow:0 0 0 4px var(--bad-50)}
.p-login .logo,.p-recuperar .logo{display:flex;justify-content:center}
.p-recuperar .meter i.on{background:var(--ok)}
.p-recuperar .meter.weak i.on{background:var(--bad)}
.p-recuperar .meter.mid i.on{background:var(--warn)}
.p-recuperar .req span.ok-rule{color:var(--ink-2)}
.p-recuperar .req span.ok-rule svg{color:var(--ok)}
.crumb a:hover{color:var(--violet)}
.status-sel{padding-right:26px!important;background:var(--ok-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231E9E6A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 8px center!important}
.status-sel.st-suspended{background-color:var(--warn-50)!important;color:var(--warn)!important;border-color:#F0D9A8!important}
.status-sel.st-inactive{background-color:#EEF1F5!important;color:#6B778C!important;border-color:var(--line)!important}
.p-donante .chan{cursor:default}
.p-donante .t-historial .qgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:22px;row-gap:4px}
.p-donante .qgrid .fld{padding:6px 0}
.p-donante .qgrid .q-long{grid-column:1/-1}
.p-donante .qgrid .gi{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line-2);font-size:12.5px;color:var(--ink-2)}
.p-donante .yn{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;flex:none;font-size:11px;font-weight:600}
.p-donante .yn span{padding:3px 8px;color:#A3A5B5;display:block}
.p-donante .calc-note{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2);padding:10px 12px;background:#F6F6F9;border-radius:8px;margin-bottom:12px}
.p-donante .calc-note svg{width:16px;height:16px;color:var(--warn)}
.p-donante .cyc td,.p-donante .cyc th{padding:7px 12px}
.p-donante .cyc input:disabled,.p-donante .cyc select:disabled{opacity:.5}
.p-donante .t-faqs .bio-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-top:4px}
.p-donante .bio-item.wide{grid-column:1/-1}
.p-donante .bio-item[open]{grid-column:1/-1}
.p-donante .bio-item>summary{margin:0}
.p-donante .bio-item[open]>summary{border-color:var(--violet-100);background:var(--violet-50);color:var(--violet)}
.p-donante .bio-item .ta{margin-top:6px}
.p-donante .langsw{display:flex;gap:10px}
.p-donante .langsw input{position:absolute;opacity:0;width:0;height:0}
.p-donante .langsw .lt{cursor:pointer}
.p-donante .langsw input:checked+.lt{background:var(--violet);border-color:var(--violet);color:#fff}
.p-donante .langsw input:checked+.lt small{color:#E5D5FC}
.p-donante .t-faqs .lt{display:inline-flex;align-items:center;gap:8px;padding:6px 11px;border-radius:8px;border:1px solid var(--line);font-size:12.5px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.p-donante .t-faqs .lt small{font-weight:500;color:var(--ink-3);font-size:11.5px}
.p-donante .t-faqs .lt .pc{font-size:11px;padding:1px 6px;border-radius:10px;background:var(--warn-50);color:var(--warn)}
.p-donante .t-faqs .lt .ok{font-size:11px;padding:1px 6px;border-radius:10px;background:var(--ok-50);color:var(--ok)}
.p-donante .t-faqs .dz{padding:22px}
.p-donante .t-multimedia .th{cursor:grab}
.p-donante .t-multimedia .th.dragging{opacity:.4}
.p-donante .t-multimedia .th.over{outline:2px dashed var(--violet);outline-offset:2px}
.p-donante .t-multimedia .detail .row .sw{margin-left:auto}
.p-donante .t-comercial .reg .h .cbx{margin-right:0}
.p-donante .t-comercial .ci.hidden-by-search{display:none}
.p-donante .t-comercial .ci:has(input:not(:checked)){color:var(--ink-3)}
.p-donante .t-comercial .in.icon .cur{flex:none}
.p-donante .t-comercial .in.icon input{font-weight:500}
.p-donante .t-lotes tr.new td{background:#FBF8FF;animation:tin .3s}
.p-donante .t-lotes .mv.new{animation:tin .3s}
.p-donante .t-general .fld code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;color:#A3ADBF;font-weight:400}
.p-catalogo tr.rsel td,.p-catalogo tr:has([data-row-check]:checked) td{background:#FBF8FF}
.p-catalogo .tabs2 span{user-select:none}
.p-webs .store{cursor:pointer}
.p-webs .store:focus-visible,.p-traducciones .lc:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
.p-traducciones .lc{cursor:pointer}
.p-traducciones input.cell{font:inherit;font-size:13px;outline:none;width:100%;color:var(--ink)}
.p-traducciones input.cell:focus{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-50);background:#fff;font-style:normal;color:var(--ink)}
.p-traducciones input.cell.empty::placeholder{color:#B7924A;font-style:italic}
.p-traducciones .seg{margin:0}
.p-usuarios .srow select.in{min-height:32px;padding:6px 30px 6px 10px;font-size:12.5px;min-width:140px}
.p-punciones .drawer .in.icon{gap:8px}
.p-punciones .drawer .in.icon input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
.p-punciones tr.new td{background:#FBF8FF}
.p-dashboard a.a{color:inherit}
.p-dashboard a.a:hover{background:#FAFAFC}

html:has(body.p-login),html:has(body.p-recuperar){overflow:hidden;background:#5A0BC9}
body.p-login,body.p-recuperar{background-attachment:fixed;height:100vh;overflow:auto}

/* ===== fase 1 · acceso, usuarios y permisos ===== */
.btn:disabled,.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none!important;filter:grayscale(.35)}
.alert{display:flex;gap:10px;align-items:flex-start;border-radius:10px;padding:11px 13px;font-size:12.5px;line-height:1.45;margin:0 0 16px;text-align:left}
.alert svg{width:17px;height:17px;flex:none;margin-top:1px}
.alert.bad{background:var(--bad-50);color:#A33232}
.alert.ok{background:var(--ok-50);color:#17734F}
.alert.info{background:var(--cyan-50);color:#0A6FAF}
.p-login .lead b{color:var(--ink)}
.p-login .f .code{border:0;outline:0;background:transparent;flex:1;min-width:0;font:600 22px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.45em;text-align:center;color:var(--ink)}
.p-login .resend{margin-top:18px;text-align:center;font-size:13px}
.p-login button.lnk{border:0;background:none;font:inherit;color:var(--cyan-d);font-weight:600;cursor:pointer;padding:0}
.p-login .back,.p-recuperar .back{display:flex;justify-content:center;margin-top:14px;font-size:13px;font-weight:600;color:var(--cyan-d)}
.p-login a.cta,.p-recuperar a.cta{display:flex}
.user .logout{display:inline-flex;margin-left:6px}
.user .logout button{border:0;background:none;color:var(--ink-3);cursor:pointer;display:grid;padding:2px}
.user .logout button:hover{color:var(--violet)}
.p-usuarios .subnav a{cursor:pointer}
.p-usuarios tr[data-href]{cursor:pointer}
.p-usuarios .pm tr.grp td{background:var(--bg);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);padding:6px 10px}
.p-usuarios .pm input:disabled+.cb{opacity:.5}
.p-usuarios .lnk{color:var(--cyan-d);font-weight:600;font-size:12.5px}
.t-historial .subnav a span svg{width:11px;height:11px;vertical-align:-1px}
.p-usuarios .stack{display:grid;gap:16px;margin-top:16px}
.p-usuarios .stack .pm th.c{white-space:normal;line-height:1.25;min-width:84px}
.p-usuarios .g2>.sec+.sec{margin-top:0}

/* ===== fase 1.1 · sin scroll horizontal en portátiles (1280–1500 px) ===== */
.app{grid-template-columns:248px minmax(0,1fr)}
.top{min-width:0}
.search{flex:0 1 400px;min-width:170px}
.search input{min-width:0;width:100%}
.card:has(> table),.card:has(> div > table){overflow-x:auto}   /* último recurso: la tabla se desplaza dentro de su tarjeta, nunca la página */
.p-usuarios .pm td:first-child{white-space:normal}
@media (max-width:1500px){
  .app{grid-template-columns:224px minmax(0,1fr)}
  .content{padding:22px 20px 28px}
  .top{padding:0 20px;gap:12px}
  th,td{padding-left:10px;padding-right:10px}
  .p-catalogo table td,.p-catalogo table th{padding-left:8px;padding-right:8px}
  .tab{padding:11px 8px;gap:6px}
  [data-sync-pill]>span:last-child{display:none}              /* solo el punto de estado; el texto queda en el title */
  .p-usuarios .lay{grid-template-columns:200px minmax(0,1fr)}
  .p-usuarios .stack .pm th.c{min-width:70px}
}
@media (max-width:1340px){
  .tab svg{display:none}
  .p-catalogo table td,.p-catalogo table th{padding-left:6px;padding-right:6px}
  .top .pill{padding:6px 9px}
}
/* Acceso: el fondo decorativo no genera scroll; si la ventana es baja, la tarjeta se compacta */
.p-login .bg1,.p-login .bg2,.p-login .grid,.p-recuperar .bg1,.p-recuperar .bg2,.p-recuperar .grid{position:fixed}
body.p-login,body.p-recuperar{display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}
.p-login .wrap,.p-recuperar .wrap{margin:auto;padding:16px 0}
@media (max-height:760px){
  .p-login .box,.p-recuperar .box{padding:26px 36px 22px}
  .p-login .box .logo,.p-recuperar .box .logo{margin-bottom:14px}
  .p-login .box .logo img,.p-recuperar .box .logo img{height:38px}
  .p-login .lead,.p-recuperar .lead{margin:4px 0 16px}
  .p-login .f,.p-recuperar .f{margin-bottom:12px;padding:10px 14px}
  .p-login .sec,.p-recuperar .sec{margin-top:16px;padding-top:12px}
  .p-login .wrap,.p-recuperar .wrap{gap:12px}
}
@media (max-width:1500px){
  .nav a{gap:10px}
  .nav a .cnt{margin-left:auto}
}
@media (max-width:1340px){
  .p-dashboard .row2{grid-template-columns:minmax(0,1fr) 290px}
  .p-punciones .lay{grid-template-columns:minmax(0,1fr) 300px}
  .p-traducciones .g2{grid-template-columns:minmax(0,1fr) 270px}
  td .thumb{display:none}                                       /* miniaturas decorativas de las tablas */
}
@media (max-width:1440px){
  td{white-space:normal}                                        /* los textos largos pasan a dos líneas; badges, NHC y botones siguen en una */
  td .mono,td time{white-space:nowrap}
}
@media (max-width:1500px){
  .app{grid-template-columns:236px minmax(0,1fr)}
  .nav a{padding:10px 10px}
}
@media (max-width:1440px){
  .p-punciones table td,.p-punciones table th,.p-dashboard table td,.p-dashboard table th{padding-left:8px;padding-right:8px}
  .p-punciones .prog{width:56px!important}
  .p-dashboard .row2{grid-template-columns:minmax(0,1fr) 270px}
  .p-traducciones .g2{grid-template-columns:minmax(0,1fr) 250px}
}
@media (max-width:1340px){
  .p-traducciones .g2{grid-template-columns:minmax(0,1fr) 230px}
  .p-traducciones table td,.p-traducciones table th{padding-left:8px;padding-right:8px}
}
@media (max-width:1500px){
  .side{padding:22px 12px}
  .nav a .cnt{padding:1px 6px}
}
/* Ventana de confirmación (app.js · wbConfirm) */
.modal .dlg.dlg-confirm{width:min(440px,100%)}
.dlg-confirm .dlg-b p{color:var(--ink-2);font-size:13.5px;line-height:1.55}
.btn.pri.danger{background:var(--bad);border-color:var(--bad);box-shadow:none}
.p-login .chk.trust{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;font-weight:500;color:var(--ink-2);margin:-2px 0 18px;cursor:pointer;line-height:1.4}
.p-login .chk.trust input{accent-color:#720EEC;width:16px;height:16px;flex:none;margin-top:1px}

/* ===== fase 2 · botones, tooltips, paginación y diccionario de campos ===== */
.btn.sm{padding:6px 12px;font-size:12.5px;gap:6px}
.btn.sm svg{width:15px;height:15px}
.b-bad{background:var(--bad-50);color:var(--bad)}
/* Tooltip corporativo (app.js sustituye el title nativo) */
.wb-tip{position:fixed;z-index:200;max-width:280px;padding:7px 11px;border-radius:8px;background:var(--navy);color:#fff;font-size:12px;font-weight:500;line-height:1.4;
  box-shadow:0 10px 28px -8px rgba(27,29,46,.45);pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity .12s,transform .12s;white-space:normal}
.wb-tip::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;border-radius:8px 8px 0 0;background:var(--grad);opacity:.9}
.wb-tip::after{content:"";position:absolute;left:var(--ax,50%);bottom:-5px;width:10px;height:10px;margin-left:-5px;background:var(--navy);transform:rotate(45deg);border-radius:2px}
.wb-tip.below::after{bottom:auto;top:-5px}
.wb-tip.show{opacity:1;transform:none}
/* Paginación numerada (helper pager()) */
.pager .pg{align-items:center}
.pager .pg a,.pager .pg span{min-width:30px;height:30px;border-radius:7px;display:grid;place-items:center;border:1px solid var(--line);color:var(--ink-2);font-weight:600;padding:0 8px;background:#fff}
.pager .pg a:hover{border-color:var(--violet-100);background:var(--violet-50);color:var(--violet)}
.pager .pg span.on{background:var(--violet);border-color:var(--violet);color:#fff}
.pager .pg span.gap{border:0;background:none;min-width:16px;padding:0}
.pager .pg span.dis{opacity:.4}
.pager .pg svg{width:14px;height:14px}
/* Filtros: rango de fechas y enlace para quitar filtros */
.filters{flex-wrap:wrap}
.filters .range{display:inline-flex;align-items:center;gap:6px}
.filters .range[hidden]{display:none}
.filters input.fsel{font:inherit;font-size:12.5px;color:var(--ink);outline:none;height:33px}
.filters .lnk{font-size:12.5px;font-weight:600;color:var(--cyan-d)}
/* Usuarios: tabla sin scroll horizontal en portátiles */
.p-usuarios #usersTable td,.p-usuarios #usersTable th{padding-left:10px;padding-right:10px}
.p-usuarios #usersTable .u .e{word-break:break-all}
.p-usuarios #usersTable td:last-child{width:1%;padding-left:4px}
@media (max-width:1440px){
  .p-usuarios #usersTable td,.p-usuarios #usersTable th{padding-left:8px;padding-right:8px}
  .p-usuarios #usersTable .av3{width:30px;height:30px;font-size:11px}
  .p-usuarios #usersTable .role{padding:3px 7px}
}
/* Ficha de donante: los botones nunca se salen de la tarjeta */
.hero .id{min-width:0}
.hero .nhc{flex-wrap:wrap;row-gap:4px}
.hero .meta{flex-wrap:wrap;row-gap:4px}
.acts{flex:none}
/* ===== fase 2.1 · Diccionarios ===== */
.p-masters .mcol{min-width:0;display:grid;gap:14px;align-content:start}
.p-masters .mtabs{margin:0;overflow-x:auto;scrollbar-width:none}
.p-masters .mtabs .tab{padding:9px 12px}
.p-masters .mt td{vertical-align:middle}
.p-masters .mt .n{font-weight:600}
.p-masters .mt td>code,.p-masters .mt td .n+code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;color:var(--ink-3);margin-top:1px}
.p-masters code.val{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;background:var(--bg);border:1px solid var(--line-2);border-radius:5px;padding:1px 6px;color:var(--ink)}
.p-masters .mt tr.grp td{background:var(--bg);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);padding:7px 12px}
.p-masters .mt tr.off td{color:var(--ink-3)}
.p-masters .mt tr.off .n{font-weight:500}
.p-masters .mt td>svg.i{width:16px;height:16px;color:var(--ok)}
.p-masters .trs{display:grid;gap:2px;font-size:12.5px;color:var(--ink-2)}
.p-masters .trs .lc{display:inline-block;min-width:24px;font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--cyan-d);margin-right:6px}
.p-masters .trs .miss{color:#B7924A;font-style:italic;font-size:12px}
.p-masters .racts{display:flex;gap:6px;justify-content:flex-end}
.p-masters .mt td:last-child{width:1%;white-space:nowrap}
.p-masters .mt .sub{font-size:12px;color:var(--ink-3);margin-top:1px}
.p-masters code.val.sm{font-size:11px;padding:0 5px;margin-top:3px}
.p-masters .racts form{display:inline-flex}
.p-masters .racts svg.i{color:var(--ink-2)}
.ibtn.bad{color:var(--bad);border-color:#F1CFCD}
.ibtn.bad svg.i{color:var(--bad)!important}
.ibtn:hover{border-color:var(--violet-100);color:var(--violet)}
.p-masters .set{display:flex;width:max-content;align-items:center;gap:5px;font-size:11.5px;color:var(--violet);margin-top:3px;font-weight:600}
.p-masters .set svg{width:12px;height:12px}
.p-masters .note{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--ink-2);padding:12px 16px;border-top:1px solid var(--line-2);background:#FCFCFD;border-radius:0 0 var(--r-lg) var(--r-lg)}
.p-masters .note svg{width:15px;height:15px;color:var(--warn);flex:none;margin-top:1px}
.p-masters .osplit{display:grid;grid-template-columns:230px minmax(0,1fr);gap:14px;align-items:start}
.p-masters .osets{padding:8px;display:grid;gap:1px}
.p-masters .osets a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;font-size:13px;color:var(--ink-2);font-weight:500}
.p-masters .osets a:hover{background:#F7F7F9}
.p-masters .osets a.on{background:var(--violet-50);color:var(--violet);font-weight:600}
.p-masters .osets .cnt{font-size:11px;background:var(--bg);padding:1px 7px;border-radius:20px;color:var(--ink-3)}
.p-masters .ch-h code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}
.p-masters .bar{display:inline-block;width:70px;height:6px;border-radius:4px;background:var(--line-2);overflow:hidden;vertical-align:middle;margin-right:6px}
.p-masters .bar i{display:block;height:100%;background:var(--grad)}
.modal .three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.modal .two{gap:14px}
.modal .chks{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding-bottom:8px}
.modal .hint{display:block;font-size:11.5px;color:var(--ink-3);margin-top:5px}
.modal .hint[hidden],.modal [data-new][hidden],.modal [data-edit-only][hidden]{display:none}
.modal .in.locked{background:var(--bg);color:var(--ink-2);cursor:not-allowed}
.modal .trbox{border:1px solid var(--line-2);border-radius:10px;padding:12px 14px;display:grid;gap:10px;background:#FCFCFD}
.modal .trh{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--ink-2)}
.modal .trh svg{width:15px;height:15px;color:var(--cyan-d)}
.modal .trh .muted{font-weight:500}
.modal h3 code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--ink-3);font-weight:500}
@media (max-width:1340px){.p-masters .osplit{grid-template-columns:190px minmax(0,1fr)}}
.p-masters .modal .dlg{width:min(600px,100%)}
.p-masters .modal .dlg-b{max-height:calc(100vh - 190px);overflow-y:auto}
.modal [hidden]{display:none!important}

/* ---------- fase 3: catálogo y ficha de donante ---------- */
.p-catalogo .tabs2{flex-wrap:wrap}
.p-catalogo .tabs2 a{padding:7px 12px;border-radius:8px;font-size:13px;font-weight:600;color:var(--ink-2);display:flex;gap:7px;align-items:center;text-decoration:none;user-select:none}
.p-catalogo .tabs2 a i{font-style:normal;font-size:11px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 7px;color:var(--ink-3)}
.p-catalogo .tabs2 a:hover{color:var(--violet)}
.p-catalogo .tabs2 a.on{background:#fff;color:var(--violet);box-shadow:var(--sh);outline:1px solid var(--line)}
.p-catalogo .tabs2 a.on i{background:var(--violet-50);border-color:var(--violet-100);color:var(--violet)}
.p-catalogo .bulk{flex-wrap:wrap}
.p-catalogo .bulk-acts{display:flex;gap:8px;margin-left:8px;flex-wrap:wrap}
.p-catalogo .bulk-acts form{display:contents}
.p-catalogo .bulk-clear{margin-left:auto;background:transparent;border:0;color:var(--violet);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.p-catalogo .bulk.hidden{display:none}
.tscroll{overflow-x:auto}
th a.sortl{color:inherit;text-decoration:none}
th a.sortl:hover,th a.sortl.on{color:var(--violet)}
.p-catalogo a.nhc{color:var(--ink);font-weight:600;text-decoration:none}
.p-catalogo a.nhc:hover{color:var(--violet)}
.p-catalogo td.webs{white-space:nowrap}
.nopub{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:700;color:var(--warn);background:var(--warn-50);border-radius:5px;padding:2px 6px;vertical-align:middle}
.p-catalogo td.empty-row{padding:26px;text-align:center;white-space:normal}
.p-catalogo td.empty-row .lnk,.lnk-s{color:var(--cyan-d);font-weight:600;font-size:12.5px;text-decoration:none}
.optcard{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:11px 13px;cursor:pointer}
.optcard+.optcard{margin-top:8px}
.optcard input{margin-top:3px;accent-color:var(--violet)}
.optcard span{display:flex;flex-direction:column;gap:2px;font-size:13px}
.optcard small{color:var(--ink-3);font-size:12px;line-height:1.4}
.optcard:has(input:checked){border-color:var(--violet-100);background:var(--violet-50)}
fieldset.plain{border:0;padding:0;margin:0;min-width:0}
.proto-note{margin-bottom:14px}
.tab.dis{opacity:.45;cursor:not-allowed}
.site-h{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin:4px 0 7px}
.site-h svg{width:13px;height:13px}
.fhelp{display:block;font-size:11.5px;color:var(--ink-3);margin-top:5px;line-height:1.4}
.ferr{display:block;font-size:11.5px;color:var(--bad);margin-top:5px;font-weight:500;line-height:1.35}
.fhint{display:block;font-size:11.5px;color:var(--ink-3);margin-top:4px}
.seg.invalid{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-50)}
.errlist{margin:4px 0 0 16px;padding:0}
.errlist li{margin:1px 0}
.hero .hnhc{font-size:23px;letter-spacing:-.02em;word-break:break-all}
.hero .meta .nopub-meta{color:var(--warn);font-weight:600}
.side-c .fld+.fld,.side-c .doclink+.fld{margin-top:10px}
.doclink{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--cyan-d);margin-top:5px;text-decoration:none}
.doclink svg{width:13px;height:13px}
.act-i{padding:9px 0;border-top:1px solid var(--line-2);font-size:12.5px}
.act-i:first-of-type{border-top:0;padding-top:0}
.act-i .t{font-weight:600}
.act-i .s{color:var(--ink-3);font-size:11.5px}
.act-i .d{color:var(--ink-2);font-size:11.5px;margin-top:2px;word-break:break-word}
.btn.danger{background:var(--bad);color:#fff;border-color:var(--bad)}
.btn.danger:disabled{opacity:.45;cursor:not-allowed}
.btn.busy{opacity:.6;pointer-events:none}
.status-sel:disabled{cursor:default!important;opacity:1}
fieldset:disabled .in,fieldset:disabled .seg,fieldset:disabled select{background-color:#FAFAFB}
fieldset.plain:disabled .sw{opacity:.6}
.chan .sw input:disabled+span,.chan:has(input:disabled){opacity:.7}
@media (max-width:1500px){.p-catalogo table td,.p-catalogo table th{padding:9px 9px}}
@media (max-width:1340px){.p-catalogo td .thumb{display:none}.p-catalogo .filters .fsel{padding-left:8px}}
.p-catalogo .filters .fsearch{flex:1 1 220px}
.p-catalogo td.webs .nopub{display:block;margin:4px 0 0;width:max-content}
@media (max-width:1440px){.p-catalogo .tag{font-size:11px;padding:3px 6px}.p-catalogo table th{font-size:10.5px}}
.tag[hidden]{display:none}
/* fase 3: selector de estado de la cabecera sin la flecha nativa del navegador; la flecha toma el color del estado */
.status-sel{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;outline:0}
.status-sel::-ms-expand{display:none}
.status-sel.st-suspended{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23C98A0B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")!important}
.status-sel.st-inactive{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236B778C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")!important}
.status-sel:disabled{background-image:none!important;padding-right:10px!important}

/* ---------- fase 4: pestaña «Historial familiar y genético» conectada ---------- */
.t-historial .fam>details[hidden]{display:none}
.t-historial .acc .r .badge{font-size:11px}
.t-historial .subnav a span{white-space:nowrap;flex:none;margin-left:8px}
.t-historial .sync-note{display:flex;gap:6px;align-items:center;margin:0 0 12px;color:var(--ink-2)}
.t-historial .sync-note svg{width:14px;height:14px;flex:none;color:var(--cyan-d)}
.t-historial .member-f{display:flex;justify-content:flex-end;margin-top:12px}
.t-historial .add-sib{width:100%;justify-content:center;margin-top:10px;border-style:dashed;color:var(--violet)}
.t-historial .add-sib[hidden]{display:none}
.t-historial .gi.has-err .yn{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-50)}
.t-historial .cyc .in{width:100px;margin-left:auto;text-align:right}
.t-historial .cyc select.in{text-align:left}
.t-historial .cyc td:first-child{color:var(--ink-2);font-size:13px}
.t-historial .cyc .in:disabled{background:#F6F6F9;color:var(--ink-3)}
.t-historial .calc-note a{font-weight:600}
@media (max-width:1440px){.t-historial .lay{grid-template-columns:200px minmax(0,1fr)}.t-historial .fg{grid-template-columns:repeat(3,minmax(0,1fr))}.t-historial .gen,.p-donante .t-historial .qgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1340px){.t-historial .fam{grid-template-columns:minmax(0,1fr)}}
/* ---------- fase 5: lotes, punciones y stock ---------- */
.nav a .cnt.warn{background:var(--warn-50);color:var(--warn);font-weight:700}
.p-catalogo .tabs2 a i.warn,.p-catalogo .tabs2 a.on i.warn{background:var(--warn-50);border-color:#F1DDB0;color:var(--warn)}
.stk{font-weight:700}
.stk.low{display:inline-block;background:var(--warn-50);color:var(--warn);border-radius:6px;padding:1px 7px}
.stk.none{display:inline-block;background:#EEF1F5;color:#6B778C;border-radius:6px;padding:1px 7px}
.stk-b{font-size:11px;vertical-align:middle;margin-left:4px}
.st .v .badge{font-size:11px}
.lnote{display:inline-grid;place-items:center;vertical-align:middle;color:var(--ink-3);cursor:help}
.lnote svg{width:13px;height:13px}
.ibtn.dis{opacity:.4;cursor:not-allowed}
.racts{display:flex;gap:6px;justify-content:flex-end}
.t-lotes td.neg{color:var(--bad)}
.t-lotes .newlot .fg{align-items:start}
.t-lotes .newlot .fg .btn{margin-top:0}
.t-lotes .newlot .alert{margin-bottom:12px}
.t-lotes table td,.t-lotes table th{padding-left:10px;padding-right:10px}
.t-lotes .cols2 .sec{padding:18px 20px}
.lg{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}
.rules{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:9px;font-size:12.5px;color:var(--ink-2);line-height:1.45}
.rules li{display:flex;gap:8px;align-items:flex-start}
.rules svg{width:15px;height:15px;flex:none;margin-top:1px;color:var(--violet)}
.resv{display:flex;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line-2);font-size:12.5px}
.resv:first-of-type{border-top:0;padding-top:0}
.resv>div{flex:1;min-width:0}
.resv .t{font-weight:600;overflow-wrap:anywhere}
.resv .s{color:var(--ink-3);font-size:11.5px;margin-top:1px}
.p-punciones .lay>div{display:flex;flex-direction:column;gap:16px;min-width:0}
.p-punciones .rules-card{padding:20px}
.p-punciones .rules-card .fld{margin-bottom:12px}
.p-punciones .rules-card .in.icon input{border:0;outline:0;background:transparent;font:inherit;width:70px;min-width:0}
.p-punciones .rules-card fieldset:disabled .in{background:#FAFAFB}
.p-punciones .drawer .alert{margin-bottom:12px}
.p-punciones .filters .chip{display:inline-flex;align-items:center;gap:6px}
.p-punciones .filters .chip a{display:inline-grid;place-items:center;color:inherit}
.p-punciones .filters .chip svg{width:12px;height:12px}
.p-punciones .filters .fsearch{flex:1 1 200px}
.p-punciones a.dlink{color:var(--violet);font-weight:600;text-decoration:none}
.p-punciones .alert.info{margin-bottom:16px}
.modal .calc{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2);padding:10px 12px;background:var(--cyan-50);border-radius:8px}
.modal .calc svg{width:16px;height:16px;color:var(--cyan-d)}
.modal .fhelp svg{width:13px;height:13px;vertical-align:-2px;color:var(--warn)}
@media (max-width:1440px){.t-lotes .newlot .fg{grid-template-columns:1fr 1fr .8fr 1.4fr auto}.t-lotes .cols2{grid-template-columns:minmax(0,1fr) 300px}}
@media (max-width:1340px){.t-lotes .newlot .fg{grid-template-columns:repeat(3,minmax(0,1fr))}.t-lotes .mini{grid-template-columns:repeat(2,1fr)}.t-lotes .bar2{width:80px}}
@media (max-width:1500px){.p-punciones .lay{grid-template-columns:minmax(0,1fr) 300px}.p-punciones .racts .ibtn,.t-lotes .racts .ibtn{width:28px;height:28px}.p-punciones .racts,.t-lotes .racts{gap:4px}}
@media (max-width:1440px){.p-punciones .col-bar{display:none}.p-punciones .filters .fsearch{flex:1 1 150px}}
@media (max-width:1340px){.p-punciones .col-mix{display:none}.t-lotes .col-bar{display:none}}

/* ---------- fase 7: multimedia y documentos PDF ---------- */
.t-general .fg{grid-template-columns:repeat(4,minmax(0,1fr))}
.fg .fld.f-wide{grid-column:span 2}
.photo.has-img{background:#F1EEF8;overflow:hidden}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.p-catalogo .thumb{position:relative;overflow:hidden}
.p-catalogo .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.t-multimedia .mm-side,.t-multimedia .mm-main{min-width:0}
.t-multimedia .gal{grid-template-columns:repeat(5,minmax(0,1fr))}
.t-multimedia .vids{grid-template-columns:repeat(3,minmax(0,1fr))}
.t-multimedia .mm-main{display:flex;flex-direction:column;gap:16px}
.t-multimedia .mm-main>.card.sec{margin:0}
.t-multimedia .pv{background:linear-gradient(135deg,#F3EEFB,#E8F3FC)}
.t-multimedia .main-img{width:100%;border:0;padding:0;font:inherit;cursor:pointer;display:block}
.t-multimedia .main-img.empty{cursor:default;display:flex;flex-direction:column;align-items:center;justify-content:center;height:260px}
.t-multimedia .main-img.sel{outline:2px solid var(--violet);outline-offset:2px}
.t-multimedia .tags{position:absolute;left:8px;right:8px;bottom:8px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;pointer-events:none}
.t-multimedia .tags .tg{position:static;background:rgba(27,29,46,.78);color:#fff;border-radius:6px;padding:3px 7px;font-size:10.5px;font-weight:600;display:inline-flex;align-items:center;gap:5px;max-width:100%}
.t-multimedia .tags .tg svg{width:12px;height:12px}
.t-multimedia .tags .tg.hid{background:rgba(201,138,11,.92)}
.t-multimedia .th.gone{opacity:.5}
.t-multimedia .th:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.t-multimedia .dz.add{grid-column:span 2;aspect-ratio:auto;min-height:120px}
.t-multimedia .mm-note{margin-bottom:12px}
.t-multimedia .upl{margin-top:12px}
.t-multimedia .upl-t,.modal .upl-t{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-2);margin-bottom:6px}
.t-multimedia .upl-err{margin:10px 0 0;padding:10px 12px 10px 28px;background:var(--bad-50);color:var(--bad);border-radius:8px;font-size:12px}
.t-multimedia .upl-err[hidden],.t-multimedia .upl[hidden],.modal .upl[hidden]{display:none}
.t-multimedia .detail[hidden]{display:none}
.t-multimedia .detail .sh .ibtn{width:28px;height:28px}
.t-multimedia .detail .d-webs{margin-top:6px;border-top:1px solid var(--line-2);padding-top:8px}
.t-multimedia .detail .d-wh{font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:4px}
.t-multimedia .detail .d-webs .site-h{margin:8px 0 2px;font-size:10.5px}
.t-multimedia .detail .d-webs .row{padding:6px 0}
.t-multimedia .detail .d-meta{display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--ink-3);margin-top:10px}
.t-multimedia .detail .d-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.t-multimedia .detail .d-acts [hidden]{display:none}
.t-multimedia .detail .fhelp[hidden]{display:none}
.t-multimedia .perweb .pw-r{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:12.5px;border-top:1px solid var(--line-2)}
.t-multimedia .perweb .site-h+.pw-r{border-top:0}
.t-multimedia .perweb .pw-r .v{color:var(--ink-2);text-align:right;white-space:nowrap;font-size:12px}
.t-multimedia .perweb .pw-r .nm{min-width:0}
.t-multimedia .perweb .pw-r .nm small{display:block;font-size:11px;color:var(--warn)}
.t-multimedia .perweb .pw-r.off .nm,.t-multimedia .perweb .pw-r.off .v{color:var(--ink-3)}
.t-multimedia .vid{display:flex;flex-direction:column;background:#fff}
.t-multimedia .vid .pv video{width:100%;height:100%;object-fit:contain;background:#14151F;display:block}
.t-multimedia .vid a.pv{text-decoration:none}
.t-multimedia .vid .nm{display:flex;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis}
.t-multimedia .vid .vn{background:var(--violet-50);color:var(--violet);border-radius:6px;padding:0 6px;font-size:11px;font-weight:700;flex:none}
.t-multimedia .vid .vt{display:flex;align-items:center;gap:8px;margin-top:10px}
.t-multimedia .vid .vt .fsel{padding:5px 8px;font-size:12px}
.t-multimedia .vid .vt .dr{margin-left:auto;color:var(--ink-3);cursor:grab;display:inline-grid}
.t-multimedia .vid .vt .dr svg{width:16px;height:16px}
.t-multimedia .vid.sel{outline:2px solid var(--violet);outline-offset:2px}
.t-multimedia .vid.dragging{opacity:.4}
.t-multimedia .vid.over{outline:2px dashed var(--violet);outline-offset:2px}
.t-multimedia .vadd{height:auto;min-height:150px;font:inherit}
.side-c .pdfd{border-top:1px solid var(--line-2);padding-top:12px;margin-top:12px}
.side-c .sh+.pdfd{border-top:0;padding-top:0;margin-top:0}
.side-c .pdfd-h{display:flex;align-items:center;gap:9px;font-size:13px}
.side-c .pdfd-h .ic{width:26px;height:30px;border-radius:5px;background:var(--bad-50);color:var(--bad);display:grid;place-items:center;font-size:8.5px;font-weight:700;flex:none}
.side-c .pdfd .fld{margin-top:8px}
.side-c .docf{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:8px}
.side-c .docf.busy{opacity:.55;pointer-events:none}
.side-c .docf-m{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);min-width:0}
.side-c .docf-m svg{width:14px;height:14px;flex:none;color:var(--ok)}
.side-c .docf-m.none svg{color:var(--ink-3)}
.side-c .docf-a{display:flex;gap:6px}
.side-c .docf-a .fsel{padding:5px 9px;font-size:12px}
.side-c .docf-a .fsel.del{color:var(--bad)}
.side-c .docf-a .fsel.del svg{color:var(--bad)}
.p-webs .extp{margin-bottom:16px}
.p-webs .extp .site-h{margin:10px 0 2px}
.p-webs .extp-r{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:7px 0;border-top:1px solid var(--line-2);font-size:13px}
.p-webs .extp .site-h+.extp-r{border-top:0}
.p-webs .extp-r .muted{font-size:12px}
@media (max-width:1500px){.t-multimedia .gal{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1440px){.t-multimedia .mm{grid-template-columns:290px minmax(0,1fr)}.t-multimedia .vids{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- fase 8: FAQs y biografía multidioma, Extended Profile generado y vídeo ampliado ---------- */
.t-faqs .langbar{flex-wrap:wrap}
.t-faqs .tx-tools{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.t-faqs .tx-tools .fsel{padding:6px 8px;font-size:12.5px}
.t-faqs [data-tx-pane][hidden]{display:none}
.t-faqs .cols{grid-template-columns:minmax(0,1fr) 340px}
.t-faqs .faqs{grid-template-columns:repeat(2,minmax(0,1fr))}
.t-faqs .tx{min-width:0}
.t-faqs .tx-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.t-faqs .tx-h label{font-size:12.5px;font-weight:600;color:var(--ink-2);min-width:0}
.t-faqs .bio-item .tx-h{margin-top:8px}
.t-faqs .bio-item .tx-h label{color:var(--ink-3);font-weight:500}
.t-faqs .tx-st{padding:4px 8px;font-size:11.5px;font-weight:600;flex:none;border-radius:7px}
.t-faqs .tx-st.st-pending{background:var(--warn-50);color:var(--warn);border-color:#F0D9A8}
.t-faqs .tx-st.st-translated{background:#EAF4FF;color:#1D6FB8;border-color:#C9E2FA}
.t-faqs .tx-st.st-approved{background:var(--ok-50);color:var(--ok);border-color:#BFE6D3}
.t-faqs .tx-empty{display:none;font-size:11.5px;color:var(--ink-3)}
.t-faqs .tx.empty .tx-st{display:none}
.t-faqs .tx.empty .tx-empty{display:inline}
.t-faqs .tx .ta{width:100%;resize:vertical}
.t-faqs .tx .hint{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--ink-3);margin-top:4px}
.t-faqs .tx .ferr{color:var(--bad);font-size:12px;margin-top:4px}
.t-faqs .tx.has-err .ta{border-color:var(--bad)}
.t-faqs .bi .bl{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t-faqs .bi .bs{margin-left:auto;font-size:11px;font-weight:600;color:var(--ink-3);flex:none}
.t-faqs .d,.tx-legend .d{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}
.t-faqs .d.st-approved,.tx-legend .d.st-approved{background:var(--ok)}
.t-faqs .d.st-translated,.tx-legend .d.st-translated{background:#3B8FD9}
.t-faqs .d.st-pending,.tx-legend .d.st-pending{background:var(--warn)}
.t-faqs .d.st-none{background:#fff;border:1.5px solid #C9CAD3}
.t-faqs .bio-item.empty .bi{color:var(--ink-3);border-style:dashed}
.t-faqs .tx-stats{display:grid;gap:14px;font-size:12.5px}
.t-faqs .tx-stats .tr{display:flex;justify-content:space-between;margin-bottom:6px}
.t-faqs .tx-stats .tr-d{font-size:11px;color:var(--ink-3);margin-top:5px}
.t-faqs .tx-stats .st-approved{color:var(--ok)}
.t-faqs .tx-stats .st-pending{color:var(--warn)}
.t-faqs .tx-legend{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:12px;color:var(--ink-2)}
.t-faqs .tx-legend li{display:flex;gap:8px;align-items:baseline;line-height:1.45}
.t-faqs .tx-legend .d{position:relative;top:-1px}
.t-faqs .pdfgen .sh{flex-wrap:wrap;gap:8px}
.t-faqs .pdfgen.busy{opacity:.55;pointer-events:none}
.t-faqs .pdfgen .site-h{margin:12px 0 2px;font-size:10.5px}
.t-faqs .pdfgen .pg-r{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--line-2)}
.t-faqs .pdfgen .site-h+.pg-r{border-top:0}
.t-faqs .pdfgen .pg-m{min-width:0;display:flex;flex-direction:column;gap:2px}
.t-faqs .pdfgen .pg-m .nm{font-size:12.5px;font-weight:600}
.t-faqs .pdfgen .pg-m .mt{font-size:11.5px;color:var(--ink-3);line-height:1.4}
.t-faqs .pdfgen .pg-r.uses .pg-m .mt b{color:var(--violet)}
.t-faqs .pdfgen .pg-a{display:flex;gap:6px;align-items:center;flex:none}
.t-faqs .pdfgen .pg-a .fsel{padding:5px 9px;font-size:12px}
.t-faqs .pdfgen .pg-a .ibtn{width:30px;height:30px}
.t-faqs .st-warn{color:var(--warn)}
.t-faqs .st-bad{color:var(--bad)}
.t-multimedia .vid .pv{height:300px}
.t-multimedia .vid .vplay{width:100%;border:0;padding:0;font:inherit;cursor:pointer;display:grid;place-items:center;background:#14151F}
.t-multimedia .vid .vplay.g4{background:linear-gradient(120deg,#DDEBFA,#EFE4FC)}
.t-multimedia .vid .vplay video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.t-multimedia .vid .vplay .pl{position:relative;z-index:1}
.t-multimedia .vid .vplay .prov{position:absolute;left:10px;bottom:10px;background:rgba(27,29,46,.78);color:#fff;border-radius:6px;padding:2px 7px;font-size:11px;font-weight:600}
.t-multimedia .vid .vplay:hover .pl{transform:scale(1.08)}
.t-multimedia .vid .vplay:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
.modal.vview .dlg{width:min(960px,100%)}
.modal.vview.vertical .dlg{width:min(520px,100%)}
.modal.vview .vv-b{background:#14151F;border-radius:0 0 16px 16px;overflow:hidden;display:flex;justify-content:center}
.modal.vview video{display:block;width:100%;max-height:calc(100vh - 150px);background:#14151F}
.modal.vview iframe{display:block;width:100%;aspect-ratio:16/9;max-height:calc(100vh - 150px);border:0}
@media (max-width:1440px){.t-faqs .cols{grid-template-columns:minmax(0,1fr) 300px}.t-multimedia .vid .pv{height:260px}}
/* ---------- fase 9: comercial (precios por web, reglas, disponibilidad y simulador), masiva de precios y miniaturas del catálogo ---------- */
.alert.warn{background:var(--warn-50);color:#8A5F06}
.alert[hidden]{display:none}
.t-comercial .pt{width:100%}
.t-comercial .pt th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:600}
.t-comercial .pt th.num,.t-comercial .pt td.num{text-align:right}
.t-comercial .pt td{vertical-align:middle;border-top:1px solid var(--line-2);font-size:13px}
.t-comercial .pt tr.site-r td{background:var(--bg);font-size:12px;font-weight:600;color:var(--ink-2);padding:7px 12px}
.t-comercial .pt tr.site-r svg{width:13px;height:13px;margin-right:6px;vertical-align:-2px;color:var(--ink-3)}
.t-comercial .sm{font-size:11.5px}
.t-comercial .wn{font-size:12px;color:var(--ink-2)}
.t-comercial .pin{min-width:0;align-items:center;gap:2px;padding:4px 8px;background:#fff}
.t-comercial .pin .cur{margin-right:4px}
.t-comercial .pin input{border:0;outline:0;font:inherit;font-weight:600;text-align:right;width:92px;min-width:0;background:transparent;color:var(--ink)}
.t-comercial .pin input::placeholder{color:var(--ink-3);font-weight:500}
.t-comercial .pin:focus-within{border-color:var(--cyan);box-shadow:0 0 0 3px var(--cyan-50)}
.t-comercial .prules .pin input{width:70px}
.t-comercial .sm-in{min-height:32px;padding:5px 28px 5px 9px;font-size:12.5px}
.t-comercial input.sm-in.prio{width:64px;padding-right:6px;text-align:right}
.t-comercial .tag.consult{color:var(--warn);background:var(--warn-50);border-color:#F2DDB0}
.t-comercial tr.rl.del td{opacity:.5}
.t-comercial tr.rl.del td.ra{opacity:1}
.t-comercial tr.rl.del b{text-decoration:line-through}
.t-comercial tr.rl.new td{background:#FBF8FF}
.t-comercial tr.rerr td{border-top:0;padding-top:0}
.t-comercial tr.has-err .pin{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-50)}
.t-comercial td.ra{width:44px;text-align:right}
.t-comercial tr.empty-r td{font-size:12.5px;padding:16px 12px}
.t-comercial .pager span{white-space:normal}
.t-comercial .pager span+span{text-align:right}
.t-comercial .ctools{display:flex;gap:8px;margin-bottom:6px;align-items:center}
.t-comercial .ctools .fsel svg{width:14px;height:14px}
.t-comercial fieldset:disabled .pin{background:#FAFAFB}
.t-comercial .simbox{background:var(--violet-50);border-radius:10px;padding:12px 14px}
.t-comercial .simp{font-size:24px;font-weight:700;color:var(--violet);letter-spacing:-.02em}
.t-comercial .simp.off{color:var(--ink-3)}
.t-comercial .simw{margin-top:8px;font-size:11.5px;color:#8A5F06;background:var(--warn-50);border-radius:7px;padding:6px 8px}
.t-comercial .chm .sm{line-height:1.35}
.bp-prev{background:var(--violet-50);border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.6;color:var(--ink-2)}
@media (max-width:1440px){
  .t-comercial .pt td,.t-comercial .pt th{padding-left:7px;padding-right:7px}
  .t-comercial .pin input{width:78px}
  .t-comercial .prules .pin input{width:58px}
  .t-comercial .wn{display:none}                               /* la web va en el título de la bandera */
}
/* Catálogo: la miniatura es la foto principal (no decorativa): se ve siempre; más pequeña en portátiles */
.p-catalogo td .thumb{display:block}
@media (max-width:1340px){.p-catalogo td .thumb{display:block;width:26px;height:26px;border-radius:7px}.p-catalogo .who{gap:8px}}
/* ---------- fase 9.2: reglas de precio de la web (pantalla propia y bloque de la ficha) ---------- */
.t-comercial .webr{border-top:1px solid var(--line-2);padding:12px 16px}
.t-comercial .webr-h{display:flex;align-items:center;gap:6px;font-size:12.5px;flex-wrap:wrap}
.t-comercial .webr-h .lnk-s{margin-left:auto;display:inline-flex;align-items:center;gap:4px}
.t-comercial .webr-h .lnk-s svg{width:13px;height:13px}
.t-comercial .webr-r{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12.5px;flex-wrap:wrap}
.t-comercial .webr-r .wn2{color:var(--ink-2);min-width:150px}
.t-comercial .webr-r .chips{display:flex;gap:6px;flex-wrap:wrap}
.p-precios .howto{margin:0;padding-left:18px;font-size:12.5px;color:var(--ink-2);line-height:1.6}
.p-precios .mk{display:flex;justify-content:space-between;font-size:12.5px;padding:6px 0;border-top:1px solid var(--line-2)}
.p-precios .mk:first-of-type{border-top:0}

/* ---------- fase 10: Traducciones ---------- */
.p-traducciones a.lc{color:inherit;text-decoration:none;display:block}
.p-traducciones a.lc:hover{border-color:var(--violet-100)}
.p-traducciones .lc .prog{margin:0 0 6px}
.p-traducciones .lc .hint{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-3)}
.p-traducciones .subtabs{flex-wrap:wrap}
.p-traducciones .subtabs a{padding:13px 12px;font-weight:600;font-size:13px;color:var(--ink-3);border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;gap:7px;align-items:center;text-decoration:none;white-space:nowrap}
.p-traducciones .subtabs a:hover{color:var(--ink)}
.p-traducciones .subtabs a.on{color:var(--violet);border-color:var(--violet)}
.p-traducciones .subtabs a i{font-style:normal;font-size:11px;background:var(--bg);border-radius:10px;padding:1px 7px;color:var(--ink-3)}
.p-traducciones .subtabs .i{width:15px;height:15px}
.p-traducciones .tt-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);background:#FAFAFB}
.p-traducciones .tt-save{display:flex;align-items:center;gap:10px;font-size:12px;white-space:nowrap}
.p-traducciones .tt{width:100%}
.p-traducciones .tt .cell{width:100%;box-sizing:border-box}
.p-traducciones .tt .cell.ro{white-space:normal;overflow-wrap:anywhere}
.p-traducciones .tt .cell.none{color:var(--ink-3);font-style:italic}
.p-traducciones .tt td.key{width:190px;min-width:150px;overflow-wrap:anywhere;word-break:break-word}
.p-traducciones .tt tr.off td{opacity:.55}
.p-traducciones .tt tr.has-err .cell{border-color:var(--bad)}
.p-traducciones .acc{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--cyan-100);background:var(--cyan-50);color:var(--cyan-d);border-radius:8px;padding:4px 9px;font-size:12px;font-weight:600;cursor:pointer}
.p-traducciones .acc input{position:absolute;opacity:0;pointer-events:none}
.p-traducciones .acc .i{width:14px;height:14px}
.p-traducciones .acc.on{background:var(--ok-50);border-color:var(--ok);color:var(--ok)}
.p-traducciones .kv{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;margin-top:6px}
.p-traducciones .ep .sh{display:flex;align-items:center;justify-content:space-between}
.p-traducciones .dtx td.pick,.p-traducciones .dtx th.pick{background:var(--violet-50)}
.p-traducciones .dtx .dtx-n{font-size:12px;margin-bottom:5px;white-space:nowrap}
.p-traducciones .dtx .prog{height:5px}
.p-traducciones .filters{padding:12px 16px}
.p-txedit .pagehead .lnk{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;margin-bottom:4px}
@media (max-width:1340px){
  .p-traducciones .g2{grid-template-columns:minmax(0,1fr) 270px}
  .p-traducciones .langs{gap:8px}
  .p-traducciones .tt td,.p-traducciones .tt th{padding-left:9px;padding-right:9px}
}

/* fase 10.1: campos de texto libre traducibles (pestaña FAQs, biografía y PDF y editor de Traducciones) */
.t-faqs .ftx-card .ftx-sec{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ink-3);margin:18px 0 8px;padding-top:12px;border-top:1px solid var(--line-2)}
.t-faqs .ftx-card .ftx-sec:first-of-type{margin-top:4px;padding-top:0;border-top:0}
.t-faqs .ftx-card .alert{margin-bottom:12px}
.t-faqs .ftx+.ftx{margin-top:14px}
.t-faqs .ftx-o{font-size:12.5px;line-height:1.5;color:var(--ink-2);background:var(--bg);border-radius:8px;padding:8px 11px;margin-bottom:6px;overflow-wrap:anywhere}
.t-faqs .ftx-o span{display:block;font-size:10.5px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}
.t-faqs .ftx .fin{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 12px;font:inherit;font-size:13px;color:var(--ink);background:#fff}
.t-faqs .ftx .ta{min-height:56px}
.t-faqs .ftx .fin:disabled,.t-faqs .ftx .ta:disabled{background:#FAFAFB;color:var(--ink-2)}
.t-faqs .ftx.has-err .fin{border-color:var(--bad)}
.t-faqs .ftx .warn{color:var(--warn);font-weight:600}
.t-faqs .ftx.stale .ftx-o{outline:1px dashed #F0D9A8}
.t-faqs .ftx.is-src{display:grid;grid-template-columns:minmax(140px,34%) 1fr;gap:12px;font-size:13px;padding:7px 0;border-top:1px solid var(--line-2)}
.t-faqs .ftx.is-src+.ftx.is-src{margin-top:0}
.t-faqs .ftx.is-src .ftx-l{color:var(--ink-3);font-weight:500}
.t-faqs .ftx.is-src .ftx-v{overflow-wrap:anywhere}
.t-faqs #txSrc{width:100%;margin-top:6px}
.t-faqs .flbl{display:block;font-size:12px;font-weight:600;color:var(--ink-2)}
.dtx .dtx-f{font-size:11.5px;color:var(--ink-3);margin-top:6px}
.dtx .dtx-f b{color:var(--ink-2)}

/* fase 11: Webs consumidoras (webs, sitios y credenciales, matriz de campos) */
.p-webs .card{margin-bottom:16px}
.p-webs .once{border-color:#F0D9A8;box-shadow:0 0 0 3px var(--warn-50)}
.p-webs .once h3,.p-webs .site h3{display:flex;align-items:center;gap:8px}
.p-webs .once .two{grid-template-columns:1fr}
.p-webs .once .code{cursor:pointer}
.p-webs .once .code span{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;word-break:break-all;white-space:normal;font-size:13px;user-select:all}
.p-webs .once .code svg{flex:none}
.p-webs .wtab td,.p-webs .wtab th{white-space:nowrap}
.p-webs .wtab th.r,.p-webs .wtab td.r{text-align:right}
.p-webs .wtab td.ra{text-align:right;width:52px}
.p-webs .wtab code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;color:var(--ink-2)}
.p-webs .wtab tr.off td{color:var(--ink-3)}
.p-webs .sites{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;margin-bottom:16px;align-items:start}
.p-webs .sites .card{margin-bottom:0}
.p-webs .site .chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.p-webs .site .chip.off{background:#EEF1F5;color:var(--ink-3);text-decoration:line-through}
.p-webs .kv2{display:grid;gap:8px;font-size:12.5px}
.p-webs .kv2 .l{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:600;margin-bottom:2px}
.p-webs .kv2 code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}
.p-webs .kv2.ro{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-2)}
.p-webs .key-actions{flex-wrap:wrap}
.p-webs .sitef{margin-top:14px;padding-top:14px;border-top:1px solid var(--line-2);display:grid;gap:12px}
.p-webs .sitef .two{gap:12px}
.p-webs .sitef .in,.p-webs .sitef .ta{width:100%}
.p-webs .sitef .ta{min-height:58px}
.p-webs .has-err .in,.p-webs .has-err .ta{border-color:var(--bad)}
.p-webs .mx{width:100%}
.p-webs .mx thead th{position:sticky;top:0;z-index:1;line-height:1.3;vertical-align:bottom}
.p-webs .mx th.c b{display:block;font-size:12.5px;color:var(--ink)}
.p-webs .mx th.c .st{display:block;font-size:9.5px;letter-spacing:.04em}
.p-webs .mx th:first-child,.p-webs .mx td:first-child{min-width:300px}
.p-webs .mx .gt{white-space:nowrap}
.p-webs .mx th .hc{display:block;font-size:10.5px;color:var(--bad);font-weight:700;min-height:14px;text-transform:none;letter-spacing:0}
.p-webs .mx th.c,.p-webs .mx td.c{width:74px;padding-left:4px;padding-right:4px}
.p-webs .mxg:not(.open) tr.fr{display:none}
.p-webs .mxg tr.fr[hidden]{display:none}
.p-webs .mx .gt{display:flex;align-items:center;gap:6px;border:0;background:none;font:inherit;font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);cursor:pointer;padding:0}
.p-webs .mx .gt svg{width:14px;height:14px;transition:transform .15s}
.p-webs .mxg.open .gt svg{transform:rotate(90deg)}
.p-webs .mx .gt .muted{text-transform:none;letter-spacing:0;font-weight:500}
.p-webs .mx label.geye.mixed{background:var(--warn-50);color:var(--warn)}
.p-webs .mx label.eye:has(input:disabled){cursor:default;opacity:.85}
.p-webs .fhelp svg{width:14px;height:14px;vertical-align:-2px}
.p-webs .modal .dlg.wide{width:min(640px,100%)}
.p-webs .modal .three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.p-webs .modal .dlg-b>*+*{margin-top:12px}
.p-webs .modal .in{width:100%}

/* fase 12: API (resumen en Webs consumidoras y registro de llamadas) */
.p-webs .apis{grid-template-columns:minmax(0,1fr) 380px;padding:0;margin:0}
.p-webs #api .apis{padding:0 0 4px}
.p-webs #api .apires{padding:14px 18px;border-left:1px solid var(--line-2)}
.p-webs .tm{display:inline-flex;align-items:center;gap:4px}
.p-webs .tm svg{width:13px;height:13px}
.p-webs .wtab td code{white-space:nowrap}
.p-webs .filters .in{min-width:170px}
.p-webs .apitop{grid-template-columns:1fr 1fr;margin-bottom:16px}
.p-webs .filters .in{width:auto;flex:0 0 210px;min-width:0}
.p-webs .apitop .card{margin:0}

/* ---------- fase 12.1 · webhooks ---------- */
.p-webs .whsites{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:16px;margin-bottom:16px}
.p-webs .whsites .card{margin:0}
.p-webs .whsites h3{display:flex;align-items:center;gap:8px}
.p-webs .whurl{font-size:11.5px;margin:0 0 6px;overflow-wrap:anywhere}
.p-webs .whact{flex-wrap:wrap;gap:8px;margin-top:12px}
.p-webs .whact form{margin:0}
.p-webs .whdet{font-size:11.5px;max-width:320px;overflow-wrap:anywhere}

/* ===== Fase 13 · Dashboard con datos reales ===== */
.p-dashboard .row2+.row2{margin-top:16px}
.p-dashboard .chans{flex-wrap:wrap}
.p-dashboard .ch{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p-dashboard .ch.off{color:var(--ink-3)}
.p-dashboard .ch.off .dot{background:#C9D1DD;box-shadow:0 0 0 2px #F1F1F4}
.p-dashboard .lg{flex-wrap:wrap;row-gap:4px}
.p-dashboard .down{color:var(--bad);font-weight:600;display:inline-flex;align-items:center}
.p-dashboard .down svg{width:14px;height:14px;stroke-width:2.4;transform:rotate(90deg)}
.p-dashboard .sys td:first-child{font-weight:600;color:var(--navy);white-space:nowrap}
.p-dashboard .sys td:nth-child(2){width:1%}
/* Dashboard · últimas donantes: foto principal como en el catálogo */
.p-dashboard td .thumb{display:block;width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#ECE6F7,#DCEBF7);flex:none;position:relative;overflow:hidden}
.p-dashboard td .thumb img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:1340px){.p-dashboard td .thumb{width:26px;height:26px;border-radius:7px}.p-dashboard .who{gap:8px}}
/* Pie del menú: enlace a la documentación de la API */
.side .foot .api-doc{display:inline-flex;align-items:center;gap:4px;color:var(--ink-2);font-weight:600;text-decoration:none}
.side .foot .api-doc:hover{color:var(--pri,#2EAFFE)}
.side .foot .api-doc svg{width:12px;height:12px}
/* Pie del menú: manual y API en líneas propias */
.side .foot .api-doc{margin-bottom:3px}
/* Barra superior: píldora con el estado real de los avisos a las tiendas */
a.pill.sync{text-decoration:none}
a.pill.sync:hover{border-color:var(--violet);color:var(--violet)}
.pill.sync.s-warn .dot{background:var(--warn);box-shadow:0 0 0 3px var(--warn-50)}
.pill.sync.s-bad{color:var(--bad);border-color:#F2C4C4}
.pill.sync.s-bad .dot{background:var(--bad);box-shadow:0 0 0 3px var(--bad-50)}
.pill.sync.s-off .dot{background:#C9D1DD;box-shadow:0 0 0 3px #F1F1F4}
@media (max-width:1500px){[data-sync-pill]>span:last-child{display:inline}}    /* ya no comparte la barra con el idioma y la campana */
@media (max-width:1100px){.pill.sync.s-ok>span:last-child{display:none}}        /* en estrecho, solo el punto si todo va bien */
