/* ============================================================ vistas secundarias, ventanas y pantallas de entrada ============================================================ */
[data-theme=light] .brand .logo-dark,[data-glass][data-theme=light] .brand .logo-dark{display:none}
[data-theme=light] .brand .logo-light,[data-glass][data-theme=light] .brand .logo-light{display:block}
.link{border:0;background:transparent;color:var(--accent);padding:0;font:inherit;text-align:left;cursor:pointer}.link:hover{text-decoration:underline}
.center{text-align:center;justify-self:center}
.note{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--accent-soft);color:var(--text-2);font-size:13px;margin:10px 0}.note .ico{margin-top:1px;color:var(--accent)}
.note.warn{background:var(--warn-soft)}.note.warn .ico{color:var(--warn)}
.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--line-2);border-top-color:var(--accent);animation:spin .8s linear infinite;margin:14px auto}@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- entrada ---------- */
.login{min-height:100%;display:grid;place-items:center;padding:24px;position:relative;overflow:auto}
.login__bg{position:fixed;inset:0;background:radial-gradient(900px 600px at 15% 0%,rgba(124,207,169,.22),transparent 60%),radial-gradient(800px 600px at 100% 100%,rgba(169,139,217,.16),transparent 60%);pointer-events:none}
.login__card{position:relative;width:min(420px,100%);padding:30px 28px 26px;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-2);display:grid;gap:12px}
.login__card h1{font-size:24px;margin-top:6px}
.login__logo{height:30px;width:auto;justify-self:start;margin-bottom:6px}
[data-theme=light] .login__logo,[data-glass][data-theme=light] .login__logo{filter:invert(1) hue-rotate(180deg) brightness(.35)}
.login__err{color:var(--danger);font-size:13px;min-height:0;margin:0}.login__err:empty{display:none}
.gbtn{background:var(--surface-3)}
.or{display:flex;align-items:center;gap:12px;color:var(--text-4);font-size:12px}.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.login form{display:grid;gap:10px}
.busy{opacity:.7;pointer-events:none}

/* ---------- bienvenida ---------- */
.welcome{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;background:var(--bg);transition:opacity .4s,transform .4s}
.welcome::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 600px at 20% 10%,rgba(124,207,169,.25),transparent 60%),radial-gradient(800px 600px at 90% 90%,rgba(169,139,217,.2),transparent 60%),radial-gradient(600px 400px at 60% 40%,rgba(196,131,91,.12),transparent 70%)}
.welcome.out{opacity:0;transform:scale(1.02)}
.welcome__card{position:relative;display:grid;gap:14px;justify-items:center;text-align:center;padding:24px;width:min(720px,100%)}
.welcome__logo{width:min(380px,70vw)}.welcome__logo svg{width:100%;height:auto;overflow:visible}
.welcome__logo svg > g > path{fill:transparent;stroke:var(--accent);stroke-width:14;stroke-linejoin:round;stroke-linecap:round}
.welcome__logo svg > g > path.draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:wdraw 1.5s cubic-bezier(.6,.05,.2,1) forwards,wfill .8s 1.25s ease forwards}
.welcome__logo svg > g > circle{opacity:0;transform-box:fill-box;transform-origin:center;animation:wpop .7s 1.15s var(--ease) forwards}@keyframes wpop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}
@keyframes wdraw{to{stroke-dashoffset:0}}@keyframes wfill{to{fill:var(--text);stroke-width:0}}
.welcome__word{font:800 56px var(--display);color:var(--accent)}
.welcome__hi{font-size:clamp(26px,5vw,40px);font-weight:800;opacity:0;transform:translateY(14px);animation:wup .7s 1.1s var(--ease) forwards}
.welcome__hi span{color:var(--accent)}
.welcome__date::first-letter{text-transform:uppercase}.welcome__date{color:var(--text-3);opacity:0;animation:wup .7s 1.25s var(--ease) forwards;margin-top:-6px}
.wstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;width:100%;margin-top:14px}
.wstat{display:grid;gap:2px;justify-items:center;padding:16px 10px;border-radius:18px;background:var(--surface);border:1px solid var(--line);opacity:0;animation:wup .6s var(--ease) forwards;animation-delay:calc(1.4s + var(--i)*.12s)}
.wstat .ico{color:var(--accent)}.wstat b{font:800 38px/1.1 var(--display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.wstat span{color:var(--text-3);font-size:12.5px}
.welcome__go{margin-top:16px;opacity:0;animation:wup .6s 2.2s var(--ease) forwards}
.welcome__skip{position:absolute;right:18px;top:16px;border:0;background:transparent;color:var(--text-3);font-size:13px}.welcome__skip:hover{color:var(--text)}
.welcome.static *{animation:none!important;opacity:1!important;transform:none!important}.welcome.static .welcome__logo svg > g > path{fill:var(--text);stroke-width:0;stroke-dasharray:none}
@keyframes wup{to{opacity:1;transform:none}}

/* ---------- buscador rápido ---------- */
.palette{position:fixed;inset:0;z-index:950;display:grid;justify-items:center;align-content:start;padding-top:12vh;background:var(--overlay);opacity:0;transition:opacity .12s}
.palette.in{opacity:1}.palette.out{opacity:0}
.palette__card{width:min(640px,calc(100vw - 24px));background:var(--surface-3);border:1px solid var(--line-2);border-radius:18px;box-shadow:var(--shadow-2);overflow:hidden}
[data-theme=dark] .palette__card{background:#173027}[data-theme=light] .palette__card{background:#fff}
.palette__top{display:flex;align-items:center;gap:12px;padding:0 16px;height:54px;border-bottom:1px solid var(--line)}.palette__top .ico{color:var(--text-3)}
.palette__in{flex:1;min-width:0;border:0;background:transparent;font-size:16px;outline:0;color:var(--text)}.palette__in::placeholder{color:var(--text-4)}
.palette__list{max-height:min(420px,60vh);overflow:auto;padding:6px}
.pitem{display:flex;align-items:center;gap:12px;width:100%;padding:9px 12px;border:0;border-radius:10px;background:transparent;text-align:left;color:var(--text)}.pitem.on{background:var(--accent-soft)}
.pitem__t{flex:1;min-width:0;display:grid}.pitem__t b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- pop-ups de aviso ---------- */
.rpops{position:fixed;right:18px;bottom:18px;z-index:970;display:grid;gap:10px;width:min(400px,calc(100vw - 24px))}
.rpop{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;padding:14px 14px 12px;border-radius:18px;background:var(--surface-3);border:1px solid var(--accent-line);box-shadow:var(--shadow-2),0 0 0 4px var(--accent-soft);animation:rin .4s var(--ease)}
[data-theme=dark] .rpop{background:#183328}[data-theme=light] .rpop{background:#fff}
.rpop.out{opacity:0;transform:translateX(30px);transition:all .2s}
@keyframes rin{from{opacity:0;transform:translateY(24px) scale(.96)}}
.rpop__ico{width:38px;height:38px;border-radius:12px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;animation:ring 1.2s .3s ease 2}
@keyframes ring{0%,100%{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-5deg)}}
.rpop__body{display:grid;gap:1px;min-width:0}.rpop__when{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.rpop__body b{font-size:15px}
.rpop__acts{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.rpop__more{border:0;border-radius:12px;background:var(--surface-3);padding:8px;color:var(--text-2);font-size:12.5px}

/* ---------- Hoy / Agenda ---------- */
.aday{margin-bottom:22px}.aday h3::first-letter{text-transform:uppercase}.aday h3{color:var(--text-2);margin-bottom:8px;font-size:14px}.aday.late h3{color:var(--warn)}
.aitem{display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;margin-bottom:6px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-align:left;color:var(--text)}
.aitem .t{font:700 14px var(--display);min-width:46px;font-variant-numeric:tabular-nums}.aitem .ico{color:var(--accent)}.aitem.meet .ico{color:var(--st-meeting)}.aitem > div,.aitem .link{flex:1;min-width:0;display:grid}
button.aitem:hover{border-color:var(--line-2);background:var(--surface-2)}

/* ---------- panel ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.kpi{padding:14px 16px;display:grid;gap:2px;border-radius:var(--r-lg)}.kpi span{color:var(--text-3);font-size:12.5px}.kpi b{font:800 30px/1.1 var(--display);letter-spacing:-.03em}.kpi small{color:var(--text-3)}
.kpi.warn b{color:var(--warn)}
.card.pad{padding:18px}.card.pad h3{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--text-2)}
.dgrid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px}
.funnel{display:grid;gap:10px}.frow2{display:grid;grid-template-columns:150px 1fr 34px 38px;align-items:center;gap:10px;font-size:13px}.frow2 span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar{height:10px;border-radius:99px;background:var(--hover);overflow:hidden}.bar i{display:block;height:100%;border-radius:99px;transition:width .6s var(--ease)}.frow2 b{text-align:right;font-variant-numeric:tabular-nums}
.mini{display:flex;gap:22px}.mini div{display:grid}.mini b{font:800 26px/1.1 var(--display)}.mini span{color:var(--text-3);font-size:12px}
.mini-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.mini-table th:first-child{width:34%}.mini-table th{white-space:nowrap;font:600 10px var(--body);letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);text-align:right;padding:4px 8px}.mini-table th:first-child,.mini-table td:first-child{text-align:left}.mini-table td{padding:8px;text-align:right;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}

/* ---------- ajustes ---------- */
.settings{display:grid;gap:12px}.sset h3{margin-bottom:14px}
.themes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.themecard{border:2px solid var(--line);border-radius:16px;padding:8px;background:transparent;display:grid;gap:8px;color:var(--text);transition:border-color var(--dur)}.themecard:hover{border-color:var(--text-4)}.themecard[aria-pressed=true]{border-color:var(--accent)}
.themecard__prev{height:70px;border-radius:10px;display:block;border:1px solid var(--line)}.themecard__lbl{display:flex;align-items:center;gap:8px;font-weight:600;justify-content:center}
.t-light .themecard__prev{background:linear-gradient(135deg,#EDF3EF 50%,#fff 50%)}.t-dark .themecard__prev{background:linear-gradient(135deg,#0B1511 50%,#173028 50%)}.t-glass .themecard__prev{background:radial-gradient(60px 40px at 20% 20%,#7CCFA9,transparent),radial-gradient(60px 50px at 90% 30%,#A98BD9,transparent),radial-gradient(60px 50px at 50% 100%,#C4835B,transparent),#0A1713}
.ulist{display:grid;margin:8px 0}.urow{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.urow > div{flex:1;display:grid;min-width:0}
.uadd{display:grid;grid-template-columns:110px 1fr 1.4fr auto;gap:8px;margin-top:8px}
.keys{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:0}.keys dt{display:flex;gap:4px;align-items:center}.keys dd{margin:0;color:var(--text-2)}
.settings .center{padding:14px 0}.sset .field + .field,.sset .grid2 + .field{margin-top:14px}

/* ---------- duplicados y fusión ---------- */
.dupes{display:grid;gap:12px}.dupgroup{padding:14px 16px;display:grid;gap:12px}.dupgroup__head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dupgroup__cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.dcard{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);text-align:left;color:var(--text)}.dcard:hover{border-color:var(--line-2)}
.mergegrid{display:grid;grid-template-columns:110px repeat(var(--n,2),minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.mg{background:var(--surface-2);padding:9px 12px;font-size:13px;min-width:0;overflow-wrap:anywhere}.mg.lbl{color:var(--text-3);font-size:12px;font-weight:600}.mg.keep{background:color-mix(in srgb,var(--accent) 9%,var(--surface-2))}
.mg.head{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;cursor:pointer;align-items:center}.mg.head span{grid-column:2;color:var(--text-3)}.mg.head.keep span{color:var(--accent)}

/* ---------- agendar reunión, contrato, importar ---------- */
.sched{display:grid;gap:14px}.sched__pane{display:grid;gap:12px}
.seg-tabs{display:inline-flex;padding:3px;border-radius:12px;background:var(--hover);border:1px solid var(--line);justify-self:start}.seg-tabs button{border:0;background:transparent;color:var(--text-3);height:30px;padding:0 14px;border-radius:9px;font-weight:600;font-size:13px}.seg-tabs button.on{background:var(--surface-3);color:var(--text);box-shadow:var(--shadow-1)}
.cal-embed{min-height:520px;border:1px solid var(--line);border-radius:14px;overflow:auto;background:var(--surface)}.cal-loading{display:grid;place-items:center;gap:8px;padding:80px;color:var(--text-3)}
.confirm{border:1px solid var(--st-meeting);background:var(--info-soft);border-radius:16px;padding:16px;display:grid;gap:12px}
.confirm__when{display:flex;align-items:center;gap:14px}.confirm__when .ico{color:var(--st-meeting)}.confirm__when div{display:grid}.confirm__when b{display:block;font:700 18px var(--display)}
.confirm__rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 18px;font-size:13px}.confirm__rows div{display:grid}
.drop{display:grid;justify-items:center;gap:6px;padding:34px 18px;border:2px dashed var(--line-2);border-radius:18px;text-align:center;cursor:pointer;color:var(--text-3);transition:all var(--dur)}.drop:hover,.drop.over{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.drop.has{border-style:solid;border-color:var(--accent-line);background:var(--accent-soft)}.drop b{color:var(--text)}
.maptable-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;margin:10px 0}.maptable{border-collapse:collapse;width:100%;font-size:12.5px}.maptable th,.maptable td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;min-width:150px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.maphead{font-weight:700;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis}
.reviewlist{margin-top:14px;display:grid;gap:6px;max-height:260px;overflow:auto}.reviewrow{display:flex;align-items:center;gap:10px;font-size:13px;padding:6px 0;border-top:1px solid var(--line)}
.import .kpis{margin-bottom:14px}

/* ---------- móvil ---------- */
@media (max-width:640px){
  .uadd{grid-template-columns:1fr}.themes{grid-template-columns:1fr}.frow2{grid-template-columns:100px 1fr 28px}.frow2 small{display:none}
  .modal{padding:0;align-items:end}.modal__card{max-height:94vh;border-radius:22px 22px 0 0;width:100%!important}
  .toasts{bottom:12px}.rpops{right:8px;left:8px;width:auto;bottom:8px}
}
