/* ============================================================
   AIM LEX — Sistema de diseño "editorial jurídico de precisión"
   Tipografía: Fraunces (display) · Archivo (UI) · JetBrains Mono (datos)
   ============================================================ */
:root{
  --paper:#efe9dc; --paper-2:#e6dfce; --paper-card:#f4efe4;
  --ink:#15120d; --ink-2:#3a342b; --ink-soft:#6c6354;
  --line:rgba(21,18,13,.14); --line-2:rgba(21,18,13,.08);
  --night:#100f0b; --night-2:#181610; --night-ink:#efe9dc; --night-soft:#a99f8a;
  --green:#1f4d40; --green-bright:#3f9c7f; --green-glow:rgba(63,156,127,.16);
  --seal:#b78a2e; --seal-soft:rgba(183,138,46,.16);
  --red:#9c3a28; --amber:#b78a2e; --orange:#c2742e;
  --display:"Fraunces",Georgia,serif;
  --sans:"Archivo","Helvetica Neue",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --r:14px; --r-lg:22px; --maxw:1180px;
  --ease:cubic-bezier(.22,.61,.36,1); --ease-out:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.6;font-weight:400;letter-spacing:-.005em;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;display:flex;flex-direction:column}
@view-transition{navigation:auto}
body::before{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.04;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:inherit;text-decoration:none}
::selection{background:var(--green);color:var(--paper)}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,56px)}
.eyebrow{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--green);display:inline-flex;align-items:center;gap:.6em}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--green);display:inline-block}
.eyebrow.on-night{color:var(--green-bright)}.eyebrow.on-night::before{background:var(--green-bright)}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.04;letter-spacing:-.02em;font-optical-sizing:auto}
.mono{font-family:var(--mono)}

/* ---------- HEADER ---------- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:clamp(14px,2vw,20px) clamp(20px,5vw,56px);transition:background .4s var(--ease),backdrop-filter .4s,border-color .4s,padding .4s;border-bottom:1px solid transparent}
.hdr.scrolled{background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);border-bottom-color:var(--line);padding-top:12px;padding-bottom:12px}
.logo{font-family:var(--display);font-size:1.32rem;font-weight:500;letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem}
.logo .mark{width:24px;height:24px;border-radius:7px;background:var(--green);display:grid;place-items:center;color:var(--paper);font-family:var(--mono);font-size:.7rem;font-weight:500;box-shadow:0 0 0 4px var(--green-glow)}
.logo .badge{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green);border:1px solid var(--line);border-radius:100px;padding:.15em .6em;margin-left:.3rem;font-weight:500}
.hdr-nav{display:none;gap:2.2rem;font-size:.9rem;color:var(--ink-2)}
.hdr-nav a{position:relative;padding:.2rem 0;transition:color .3s}
.hdr-nav a::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;background:var(--green);transition:width .35s var(--ease)}
.hdr-nav a:hover{color:var(--ink)}.hdr-nav a:hover::after{width:100%}
@media(min-width:860px){.hdr-nav{display:flex}}
.hdr-right{display:flex;align-items:center;gap:1.2rem;font-size:.86rem;color:var(--ink-2)}
.hdr-user{display:none}@media(min-width:560px){.hdr-user{display:block}}
.hdr .logo,.hdr .hdr-nav a,.hdr .hdr-right{transition:color .4s var(--ease)}

/* header sobre hero oscuro (solo landing): texto claro mientras está arriba */
body.has-dark-hero .hdr:not(.scrolled) .logo{color:var(--night-ink)}
body.has-dark-hero .hdr:not(.scrolled) .hdr-nav{color:var(--night-soft)}
body.has-dark-hero .hdr:not(.scrolled) .hdr-nav a:hover{color:var(--night-ink)}
body.has-dark-hero .hdr:not(.scrolled) .hdr-right{color:var(--night-soft)}
body.has-dark-hero .hdr:not(.scrolled) .btn-ghost{color:var(--night-ink);border-color:rgba(239,233,220,.26)}
body.has-dark-hero .hdr:not(.scrolled) .btn-ghost::before{background:var(--paper)}
body.has-dark-hero .hdr:not(.scrolled) .btn-ghost:hover{color:var(--ink)}
body.has-dark-hero .hdr:not(.scrolled) .logo .badge{color:var(--green-bright);border-color:rgba(239,233,220,.26)}

/* ---------- BOTONES ---------- */
.btn{font-family:var(--sans);font-size:.9rem;font-weight:500;padding:.66rem 1.3rem;border-radius:100px;cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:var(--paper);position:relative;overflow:hidden;transition:color .4s var(--ease),transform .2s;display:inline-flex;align-items:center;gap:.5rem;text-align:center}
.btn::before{content:"";position:absolute;inset:0;background:var(--green);transform:translateY(101%);transition:transform .42s var(--ease-out);z-index:-1}
.btn:hover{transform:translateY(-2px)}.btn:hover::before{transform:translateY(0)}.btn:active{transform:translateY(0)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost::before{background:var(--ink)}.btn-ghost:hover{color:var(--paper);border-color:var(--ink)}
.btn .arr{transition:transform .3s var(--ease)}.btn:hover .arr{transform:translateX(3px)}
.btn[disabled]{opacity:.6;cursor:not-allowed}.btn[disabled]:hover{transform:none}

/* ---------- LAYOUT BASE ---------- */
.lex-main{flex:1 0 auto;width:100%}
.page{padding-top:clamp(120px,16vh,160px);padding-bottom:clamp(60px,10vh,110px)}

/* ---------- HERO (landing) ---------- */
.hero{position:relative;background:var(--night);color:var(--night-ink);padding:clamp(120px,16vh,180px) 0 clamp(64px,9vh,110px);overflow:hidden}
.hero::after{content:"";position:absolute;top:-10%;right:-5%;width:60vw;height:60vw;max-width:760px;max-height:760px;background:radial-gradient(circle at 60% 40%,var(--green-glow),transparent 62%);pointer-events:none;z-index:0}
.hero::before{content:"";position:absolute;inset:0;z-index:0;opacity:.5;pointer-events:none;background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);background-size:clamp(40px,6vw,72px) clamp(40px,6vw,72px);-webkit-mask-image:radial-gradient(ellipse 80% 70% at 30% 30%,#000,transparent 75%);mask-image:radial-gradient(ellipse 80% 70% at 30% 30%,#000,transparent 75%)}
.hero .wrap{position:relative;z-index:2}
.hero-grid{display:grid;grid-template-columns:1fr;gap:clamp(40px,6vw,72px);align-items:center}
@media(min-width:980px){.hero-grid{grid-template-columns:1.05fr .95fr}}
.hero h1{font-size:clamp(2.6rem,7vw,5rem);color:var(--night-ink);margin:1.4rem 0 1.5rem;font-variation-settings:"opsz" 140}
.hero h1 .ln{display:block;overflow:hidden}
.hero h1 .ln>span{display:block;transform:translateY(110%);will-change:transform}
.hero.reveal-in h1 .ln>span{animation:lineUp .9s var(--ease-out) forwards}
.hero h1 .ln:nth-child(1)>span{animation-delay:.12s}.hero h1 .ln:nth-child(2)>span{animation-delay:.24s}.hero h1 .ln:nth-child(3)>span{animation-delay:.36s}
.hero h1 em{font-style:normal;color:var(--green-bright);font-variation-settings:"wght" 500}
@keyframes lineUp{to{transform:translateY(0)}}
.hero-lead{font-size:clamp(1.02rem,1.6vw,1.22rem);color:var(--night-soft);max-width:46ch;opacity:0;transform:translateY(16px);animation:fadeUp .8s var(--ease-out) .5s forwards}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.2rem;opacity:0;transform:translateY(16px);animation:fadeUp .8s var(--ease-out) .64s forwards}
.hero .btn-ghost{color:var(--night-ink);border-color:rgba(239,233,220,.24)}.hero .btn-ghost::before{background:var(--paper)}.hero .btn-ghost:hover{color:var(--ink)}
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
.hero-meta{display:flex;gap:2.4rem;margin-top:clamp(40px,6vh,64px);flex-wrap:wrap;opacity:0;animation:fadeUp .8s var(--ease-out) .8s forwards}
.hero-meta .m-num{font-family:var(--display);font-size:1.9rem;color:var(--night-ink);font-variation-settings:"opsz" 40}
.hero-meta .m-lbl{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--night-soft);margin-top:.2rem}

/* pieza: la cita que se verifica */
.proof{background:linear-gradient(165deg,var(--night-2),#1d1a13);border:1px solid rgba(239,233,220,.12);border-radius:var(--r-lg);padding:clamp(20px,3vw,30px);position:relative;box-shadow:0 40px 80px -40px rgba(0,0,0,.7);opacity:0;transform:translateY(26px) scale(.98);animation:fadeUp .9s var(--ease-out) .42s forwards}
.proof-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;gap:1rem}
.proof-q{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--night-soft)}.proof-q b{color:var(--green-bright);font-weight:500}
.proof-dot{width:8px;height:8px;border-radius:50%;background:var(--green-bright);flex:none;animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 var(--green-glow)}70%{box-shadow:0 0 0 12px transparent}100%{box-shadow:0 0 0 0 transparent}}
.proof-doc{font-family:var(--display);font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.62;color:#d9d2c0;font-variation-settings:"opsz" 24}
.proof-doc .art{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--seal);margin-bottom:.7rem}
.proof-doc mark{background:transparent;color:#d9d2c0;border-radius:3px;padding:.05em .15em}
.proof.lit mark{background:var(--green-glow);color:#fff;box-shadow:0 0 0 1px rgba(63,156,127,.4);transition:background .5s var(--ease),box-shadow .5s var(--ease)}
.proof-seal{display:flex;align-items:center;gap:.7rem;margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid rgba(239,233,220,.1);opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.proof.lit .proof-seal{opacity:1;transform:translateY(0);transition-delay:.45s}
.seal-badge{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--green);color:#fff;font-size:.95rem;box-shadow:0 0 0 5px var(--green-glow)}
.seal-txt{font-family:var(--mono);font-size:.72rem;line-height:1.4;color:var(--night-soft)}.seal-txt b{color:var(--night-ink);font-weight:500}

/* ---------- SECCIONES ---------- */
section{position:relative}
.band{padding:clamp(72px,12vh,140px) 0}
.sec-head{max-width:62ch;margin-bottom:clamp(40px,6vh,72px)}
.sec-head h2{font-size:clamp(2rem,4.5vw,3.4rem);margin:1.1rem 0;font-variation-settings:"opsz" 80}
.sec-head p{font-size:clamp(1rem,1.4vw,1.15rem);color:var(--ink-soft);max-width:52ch}
.r{opacity:1;transform:none}
html.js .r{opacity:0;transform:translateY(28px)}
html.js .r.in{opacity:1;transform:none;transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
html.js .r.d1.in{transition-delay:.08s}html.js .r.d2.in{transition-delay:.16s}html.js .r.d3.in{transition-delay:.24s}

.contrast{display:grid;grid-template-columns:1fr;gap:18px}
@media(min-width:780px){.contrast{grid-template-columns:1fr 1fr;gap:24px}}
.cmp{border-radius:var(--r-lg);padding:clamp(24px,3vw,34px);border:1px solid var(--line);position:relative;overflow:hidden}
.cmp h3{font-size:1.4rem;margin-bottom:.7rem;display:flex;align-items:center;gap:.6rem}
.cmp p{color:var(--ink-soft);font-size:.98rem}
.cmp .tag{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;padding:.3em .7em;border-radius:100px;display:inline-block;margin-bottom:1rem}
.cmp.bad{background:var(--paper-2)}.cmp.bad .tag{background:rgba(160,60,40,.1);color:var(--red)}.cmp.bad h3 .ic{color:var(--red)}
.cmp.good{background:var(--ink);color:var(--paper)}.cmp.good .tag{background:var(--green-glow);color:var(--green-bright)}.cmp.good p{color:var(--night-soft)}.cmp.good h3 .ic{color:var(--green-bright)}
.cmp.good::after{content:"";position:absolute;bottom:-30%;right:-20%;width:50%;height:80%;background:radial-gradient(circle,var(--green-glow),transparent 65%)}

.steps{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
@media(min-width:680px){.steps{grid-template-columns:1fr 1fr}}
@media(min-width:1040px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{background:var(--paper-card);padding:clamp(26px,3vw,36px);position:relative;transition:background .4s}
.step:hover{background:var(--paper)}
.step .n{font-family:var(--mono);font-size:.74rem;color:var(--green);letter-spacing:.1em}
.step h3{font-size:1.22rem;margin:1.4rem 0 .6rem;font-variation-settings:"opsz" 30}
.step p{font-size:.92rem;color:var(--ink-soft)}
.step .bar{height:2px;background:var(--green);width:0;margin-top:1.4rem;transition:width .6s var(--ease)}
.step:hover .bar{width:42px}

.honesty{background:var(--night);color:var(--night-ink);border-radius:var(--r-lg);padding:clamp(36px,5vw,68px);position:relative;overflow:hidden}
.honesty::before{content:"";position:absolute;inset:0;opacity:.5;background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 80% 20%,#000,transparent 70%);mask-image:radial-gradient(ellipse at 80% 20%,#000,transparent 70%)}
.honesty-grid{position:relative;display:grid;grid-template-columns:1fr;gap:clamp(32px,5vw,56px);align-items:center}
@media(min-width:880px){.honesty-grid{grid-template-columns:.9fr 1.1fr}}
.metric{font-family:var(--display);font-size:clamp(4rem,12vw,8rem);line-height:.9;color:var(--green-bright);font-variation-settings:"opsz" 144,"wght" 400}
.metric .pct{font-size:.42em;color:var(--night-soft)}
.metric-sub{font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--night-soft);margin-top:.8rem}
.honesty h2{color:var(--night-ink);font-size:clamp(1.8rem,3.6vw,2.8rem);margin-bottom:1.1rem;font-variation-settings:"opsz" 70}
.honesty p{color:var(--night-soft);max-width:48ch;margin-bottom:1rem}
.honesty .endpoint{font-family:var(--mono);font-size:.8rem;color:var(--green-bright);border:1px solid rgba(63,156,127,.3);border-radius:100px;padding:.4rem 1rem;display:inline-flex;gap:.5rem;align-items:center}

.cov{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:620px){.cov{grid-template-columns:1fr 1fr}}
@media(min-width:1040px){.cov{grid-template-columns:repeat(4,1fr)}}
.cov-card{border:1px solid var(--line);border-radius:var(--r);padding:clamp(20px,2.4vw,28px);background:var(--paper-card);position:relative;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s}
.cov-card:hover{transform:translateY(-4px);box-shadow:0 22px 40px -28px rgba(21,18,13,.4)}
.cov-card .lv{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--c)}
.cov-card h3{font-size:1.16rem;margin:.6rem 0;font-variation-settings:"opsz" 24}
.cov-card p{font-size:.86rem;color:var(--ink-soft)}
.cov-card .dot{position:absolute;top:clamp(20px,2.4vw,28px);right:clamp(20px,2.4vw,28px);width:9px;height:9px;border-radius:50%;background:var(--c)}
.cov-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c)}
.cov-alta{--c:#2e7d63}.cov-media{--c:#b78a2e}.cov-baja{--c:#c2742e}.cov-sin{--c:#9c3a28}

.cta{text-align:center;padding:clamp(80px,14vh,160px) 0}
.cta .eyebrow{justify-content:center;display:flex}
.cta h2{font-size:clamp(2.2rem,6vw,4.4rem);max-width:16ch;margin:1.2rem auto 1.4rem;font-variation-settings:"opsz" 100}
.cta p{color:var(--ink-soft);max-width:46ch;margin:0 auto 2.2rem;font-size:1.08rem}
.cta-note{font-family:var(--mono);font-size:.78rem;color:var(--ink-soft);margin-top:1.6rem}
.cta-note code{background:var(--paper-2);padding:.2em .5em;border-radius:6px;color:var(--green)}

/* ---------- FOOTER ---------- */
.ft{flex-shrink:0;border-top:1px solid var(--line);padding:clamp(40px,6vh,64px) 0 clamp(28px,4vh,40px);margin-top:auto}
.ft-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem;align-items:flex-start}
.ft-logo{font-family:var(--display);font-size:1.3rem;font-weight:500}
.ft-note{color:var(--ink-soft);font-size:.9rem;max-width:34ch;margin-top:.6rem}
.ft-meta{font-family:var(--mono);font-size:.74rem;color:var(--ink-soft);line-height:1.8;text-align:right}
.ft-meta a:hover{color:var(--green)}

/* ---------- LOGIN ---------- */
.auth-wrap{min-height:calc(100vh - 80px);display:grid;place-items:center;padding:clamp(100px,14vh,140px) 0 clamp(40px,8vh,80px);position:relative}
.auth-wrap::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(680px,90vw);height:380px;background:radial-gradient(ellipse at 50% 0,var(--green-glow),transparent 70%);pointer-events:none}
.auth-card{position:relative;width:min(440px,92vw);background:var(--paper-card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(30px,4vw,44px);box-shadow:0 40px 80px -50px rgba(21,18,13,.5)}
.auth-card h1{font-size:2rem;margin:1rem 0 .4rem;font-variation-settings:"opsz" 40}
.auth-card .sub{color:var(--ink-soft);font-size:.95rem;margin-bottom:1.8rem}
.field{margin-bottom:1rem}
.field label{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.5rem}
.field input{width:100%;font-family:var(--sans);font-size:1rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);color:var(--ink);transition:border-color .3s,box-shadow .3s}
.field input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-glow)}
.field input::placeholder{color:var(--ink-soft);opacity:.7}
.auth-card .btn{width:100%;justify-content:center;margin-top:.6rem;padding:.9rem}
.auth-note{margin-top:1.6rem;font-size:.85rem;color:var(--ink-soft);line-height:1.5;border-top:1px solid var(--line-2);padding-top:1.2rem}
.alert{background:rgba(160,60,40,.08);border:1px solid rgba(160,60,40,.25);color:var(--red);border-radius:var(--r);padding:.8rem 1rem;font-size:.88rem;margin-bottom:1.2rem}

/* ---------- PORTAL / CONSULTA ---------- */
.portal-head{max-width:60ch}
.portal-head .eyebrow{margin-bottom:1rem}
.portal-head h1{font-size:clamp(2.2rem,5vw,3.4rem);margin-bottom:1rem;font-variation-settings:"opsz" 80}
.portal-head p{color:var(--ink-soft);font-size:clamp(1rem,1.3vw,1.12rem);max-width:54ch}
.ask{margin:clamp(28px,4vh,44px) 0;background:var(--paper-card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(18px,2.5vw,26px);transition:border-color .3s,box-shadow .3s}
.ask:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--green-glow)}
.ask label{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.7rem}
.ask textarea{width:100%;min-height:120px;resize:vertical;font-family:var(--display);font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.5;border:none;background:transparent;color:var(--ink);font-variation-settings:"opsz" 28}
.ask textarea:focus{outline:none}.ask textarea::placeholder{color:var(--ink-soft);opacity:.65}
.ask-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;border-top:1px solid var(--line-2);padding-top:1.1rem}
.ask-hint{font-family:var(--mono);font-size:.7rem;color:var(--ink-soft)}
.spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:spin .7s linear infinite;vertical-align:-2px;margin-right:.5em}
@keyframes spin{to{transform:rotate(360deg)}}
.thinking{font-family:var(--mono);font-size:.82rem;color:var(--ink-soft);display:flex;align-items:center;gap:.6rem;padding:1rem 0}
.thinking .live{width:8px;height:8px;border-radius:50%;background:var(--green-bright);animation:pulse 1.8s infinite}

/* respuesta */
.answer{animation:fadeUp .6s var(--ease-out) both}
.answer-meta{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem}
.chip{font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;padding:.35em .8em;border-radius:100px;border:1px solid var(--line);color:var(--ink-2);display:inline-flex;align-items:center;gap:.4em}
.chip .pt{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.7}
.chip.cov-ALTA{color:#2e7d63;border-color:rgba(46,125,99,.35);background:rgba(46,125,99,.08)}
.chip.cov-MEDIA{color:#9a7420;border-color:rgba(183,138,46,.35);background:rgba(183,138,46,.08)}
.chip.cov-BAJA{color:var(--orange);border-color:rgba(194,116,46,.35);background:rgba(194,116,46,.08)}
.chip.cov-SIN{color:var(--red);border-color:rgba(160,60,40,.35);background:rgba(160,60,40,.08)}
.answer-body{font-size:1.06rem;line-height:1.72;color:var(--ink);white-space:pre-wrap;word-wrap:break-word}
.answer-body .src-line{font-family:var(--mono)}
.answer-card{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(22px,3vw,32px)}
.sources{margin-top:1.4rem;border-top:1px solid var(--line);padding-top:1.3rem}
.sources-h{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:.9rem;display:flex;align-items:center;gap:.5rem}
.sources-h::before{content:"✓";display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--green);color:#fff;font-size:.62rem}
.source-item{display:flex;gap:.7rem;align-items:baseline;padding:.5rem 0;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.source-item:last-child{border-bottom:none}
.source-item .s-label{font-size:.95rem;color:var(--ink)}
.source-item .s-ref{font-family:var(--mono);font-size:.74rem;color:var(--ink-soft);margin-left:auto;white-space:nowrap}
.source-item .s-fresc{font-family:var(--mono);font-size:.68rem;color:var(--green);flex-basis:100%;margin-top:.1rem;letter-spacing:.02em}
.recibo-row{margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--line-2);display:flex;justify-content:flex-start}
.recibo-btn{font-size:.84rem}
.premise-alert{border:1px solid #d8c08a;background:#faf4e4;border-left:3px solid #b8862e;border-radius:var(--r);padding:1rem 1.2rem;margin-bottom:1.3rem}
.premise-h{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:#8a651f;margin-bottom:.5rem}
.premise-body{font-size:1rem;color:var(--ink);line-height:1.6;margin-bottom:.5rem}
.premise-src{font-family:var(--mono);font-size:.76rem;color:var(--ink-soft);line-height:1.55}
.hist-list{margin-top:1rem;display:flex;flex-direction:column}
.hist-item{padding:.85rem 0;border-bottom:1px solid var(--line-2)}
.hist-item:last-child{border-bottom:none}
.hist-q{font-size:.98rem;color:var(--ink);line-height:1.45;margin-bottom:.35rem}
.hist-meta{font-size:.78rem;color:var(--ink-soft);display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}
.hist-cob{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;padding:.1rem .45rem;border-radius:100px;border:1px solid var(--line)}
.hist-cob-ALTA{color:#2e7d63;border-color:#9ecbb8}
.hist-cob-MEDIA{color:#9a7420;border-color:#d8c08a}
.hist-cob-BAJA{color:#c2742e;border-color:#e0b487}
.hist-cob-SIN{color:#9c3a28;border-color:#d8a99e}
.hist-recibo{color:var(--green);font-family:var(--mono);text-decoration:none;border-bottom:1px solid var(--green)}
.juris{margin-top:1.4rem;padding:1.2rem 1.3rem;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:var(--r);background:var(--paper-2)}
.juris-h{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-bottom:.6rem}
.juris-note{font-size:.92rem;color:var(--ink);line-height:1.55;margin-bottom:.9rem}
.juris-row{margin-bottom:.7rem}
.juris-k{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.25rem}
.juris-v{font-size:.95rem;color:var(--ink);line-height:1.5}
.juris-terms{display:flex;flex-wrap:wrap;gap:.4rem}
.juris-term{font-family:var(--mono);font-size:.82rem;background:var(--paper);border:1px solid var(--line);border-radius:100px;padding:.15rem .6rem;color:var(--ink)}
.juris-btn{margin-top:.5rem;font-size:.84rem}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.hero h1 .ln>span{transform:none}.r{opacity:1!important;transform:none!important}.hero-lead,.hero-cta,.hero-meta,.proof{opacity:1!important;transform:none!important}}

/* --- Revisor de documentos (F3.3) --- */
.rev-summary{margin:1.4rem 0 1rem;padding:1.2rem 1.4rem;background:var(--paper-card);border:1px solid var(--line);border-radius:14px}
.rev-counts{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:.7rem}
.rev-counts .rc{font-family:var(--mono);font-size:.74rem;font-weight:500;padding:.28rem .7rem;border-radius:999px;letter-spacing:.02em}
.rc-cumple{background:var(--green-glow);color:var(--green)}
.rc-falta{background:rgba(156,58,40,.12);color:var(--red)}
.rc-mejorable{background:rgba(183,138,46,.14);color:var(--amber)}
.rev-meta{font-size:.76rem;color:var(--ink-soft);margin-bottom:.5rem}
.rev-resumen{font-size:1rem;color:var(--ink-2);margin:0}
.hl-list{display:flex;flex-direction:column;gap:.7rem;margin-top:.4rem}
.hl-item{padding:.9rem 1.1rem;border:1px solid var(--line);border-left-width:3px;border-radius:10px;background:var(--paper-card)}
.hl-item.hl-falta{border-left-color:var(--red)}
.hl-item.hl-cumple{border-left-color:var(--green-bright)}
.hl-item.hl-mejorable{border-left-color:var(--amber)}
.hl-top{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.35rem}
.hl-badge{font-family:var(--mono);font-size:.64rem;font-weight:600;letter-spacing:.08em;padding:.18rem .5rem;border-radius:5px}
.hl-cumple{background:var(--green-glow);color:var(--green)}
.hl-falta{background:rgba(156,58,40,.12);color:var(--red)}
.hl-mejorable{background:rgba(183,138,46,.14);color:var(--amber)}
.hl-req{font-size:.96rem;font-weight:500;color:var(--ink)}
.hl-obs{font-size:.92rem;color:var(--ink-2);margin-bottom:.4rem}
.hl-base{font-size:.7rem;color:var(--ink-soft)}
.rev-disclaimer{font-size:.72rem;color:var(--ink-soft);margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--line-2)}

/* --- Redactor de documentos (F3.1+F3.2) --- */
.input-line{width:100%;padding:.7rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--paper-card);color:var(--ink);font-family:var(--sans);font-size:1rem}
.input-line:focus{outline:none;border-color:var(--green-bright);box-shadow:0 0 0 3px var(--green-glow)}
.doc-draft{display:flex;flex-direction:column;gap:.9rem;margin-top:1rem}
.doc-sec{padding:1.1rem 1.3rem;border:1px solid var(--line);border-radius:12px;background:var(--paper-card)}
.doc-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-bottom:.6rem}
.doc-sec-head h3{font-family:var(--serif);font-size:1.1rem;font-weight:500;margin:0;color:var(--ink)}
.sec-tag{font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.08em;padding:.18rem .5rem;border-radius:5px;white-space:nowrap}
.sec-obli{background:var(--green-glow);color:var(--green)}
.sec-reco{background:rgba(183,138,46,.14);color:var(--amber)}
.doc-sec-body{font-size:.95rem;color:var(--ink-2);line-height:1.7}
.completar{background:rgba(183,138,46,.16);color:var(--orange);font-family:var(--mono);font-size:.82em;padding:.05rem .35rem;border-radius:4px;font-weight:500}
.doc-sec-base{font-size:.7rem;color:var(--ink-soft);margin-top:.7rem;padding-top:.55rem;border-top:1px solid var(--line-2)}

/* --- Progreso de redacción asíncrona --- */
.gen-progress{margin:1.4rem 0;padding:1.4rem 1.5rem;background:var(--paper-card);border:1px solid var(--line);border-radius:14px}
.gen-bar{height:8px;background:var(--paper-2);border-radius:999px;overflow:hidden}
.gen-bar-fill{height:100%;background:var(--green-bright);border-radius:999px;transition:width .5s ease}
.gen-fase{margin-top:.8rem;font-size:.78rem;color:var(--ink-soft);display:flex;align-items:center;gap:.5rem}

/* --- Agente Vigía (F4.1) --- */
.vig-cols{display:grid;grid-template-columns:1fr 1.4fr;gap:1.5rem;margin-top:1.2rem}
@media(max-width:760px){.vig-cols{grid-template-columns:1fr}}
.vig-perfil,.vig-avisos{padding:1.3rem 1.4rem;border:1px solid var(--line);border-radius:14px;background:var(--paper-card)}
.vig-perfil h2,.vig-avisos h2{font-family:var(--serif);font-size:1.15rem;font-weight:500;margin:0 0 1rem;color:var(--ink)}
.vig-field{margin-bottom:1.1rem}
.vig-field label{display:block;font-size:.72rem;color:var(--ink-soft);margin-bottom:.5rem;letter-spacing:.02em}
.chip-group{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{font-family:var(--mono);font-size:.76rem;padding:.35rem .8rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-2);cursor:pointer;transition:all .15s}
.chip:hover{border-color:var(--green-bright)}
.chip-on{background:var(--green-glow);color:var(--green);border-color:var(--green-bright)}
.vig-empty{padding:1.5rem;text-align:center;color:var(--ink-soft);font-size:.82rem}
.aviso{padding:1rem 1.1rem;border:1px solid var(--line);border-left-width:3px;border-left-color:var(--line);border-radius:10px;margin-bottom:.8rem;background:var(--paper-2)}
.aviso-nuevo{border-left-color:var(--green-bright);background:var(--paper-card)}
.aviso-desc{opacity:.55}
.aviso-top{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.5rem}
.aviso-tag{font-family:var(--mono);font-size:.64rem;font-weight:600;letter-spacing:.06em;padding:.18rem .5rem;border-radius:5px;background:var(--green-glow);color:var(--green)}
.aviso-dom{font-size:.7rem;color:var(--ink-soft)}
.aviso-fecha{font-size:.7rem;color:var(--ink-soft);margin-left:auto}
.aviso-cuerpo{font-size:.95rem;color:var(--ink-2);line-height:1.6;margin-bottom:.4rem}
.aviso-base{font-size:.7rem;color:var(--ink-soft);margin-bottom:.7rem}
.aviso-acc{display:flex;gap:.5rem;flex-wrap:wrap}
.btn-s{font-size:.74rem;padding:.3rem .7rem}

/* --- Agente Cumplimiento (F4.2) --- */
.cmp-gen{margin:1.2rem 0;padding:1.2rem 1.4rem;border:1px solid var(--line);border-radius:14px;background:var(--paper-card)}
.cmp-gen label{display:block;font-size:.72rem;color:var(--ink-soft);margin-bottom:.6rem;letter-spacing:.02em}
.cmp-gen-row{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
.cmp-gen-row .input-line{flex:1;min-width:200px}
.cmp-grupo{margin-top:1.6rem}
.cmp-grupo h2{font-family:var(--serif);font-size:1.2rem;font-weight:500;margin:0 0 .8rem;color:var(--ink)}
.cmp-list{display:flex;flex-direction:column;gap:.7rem}
.ob{padding:1rem 1.1rem;border:1px solid var(--line);border-left-width:3px;border-left-color:var(--amber);border-radius:10px;background:var(--paper-card)}
.ob-cumplido{border-left-color:var(--green-bright)}
.ob-cumplido .ob-desc{color:var(--ink-soft)}
.ob-noaplica{opacity:.55;border-left-color:var(--line)}
.ob-desc{font-size:.95rem;color:var(--ink);line-height:1.55;margin-bottom:.4rem}
.ob-plazo{font-size:.72rem;color:var(--amber);margin-bottom:.25rem}
.ob-base{font-size:.7rem;color:var(--ink-soft);margin-bottom:.7rem}
.ob-acc{display:flex;gap:.5rem;flex-wrap:wrap}
.est-btn.est-on{background:var(--green-glow);color:var(--green);border-color:var(--green-bright)}

/* --- Jurisprudencia aportada (ADR-014 opción c) --- */
.jur-busca{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin:1rem 0;padding:.9rem 1.1rem;border:1px dashed var(--line);border-radius:12px;font-size:.8rem;color:var(--ink-soft)}
.jur-card{margin-top:1.4rem}
.jur-ids{display:flex;gap:.5rem;flex-wrap:wrap;margin:.3rem 0 .9rem}
.jur-id{font-size:.72rem;padding:.22rem .6rem;background:var(--green-glow);color:var(--green);border-radius:6px}
.jur-cita{font-style:italic;color:var(--ink-2);border-left:2px solid var(--line);padding-left:.7rem}

/* --- Cálculo de plazos (F4.3) --- */
.plz-card{margin:1.2rem 0;padding:1.3rem 1.4rem;border:1px solid var(--line);border-radius:14px;background:var(--paper-card)}
.plz-field{margin-bottom:1rem}
.plz-field label{display:block;font-size:.72rem;color:var(--ink-soft);margin-bottom:.5rem;letter-spacing:.02em}
.plz-grid{display:grid;grid-template-columns:1.6fr .8fr 1.2fr;gap:.9rem}
@media(max-width:620px){.plz-grid{grid-template-columns:1fr}}
.plz-result{margin-top:1.4rem;padding:1.6rem 1.5rem;border:1px solid var(--line);border-left:3px solid var(--green-bright);border-radius:14px;background:var(--paper-card)}
.plz-venc-k{font-size:.72rem;color:var(--ink-soft);letter-spacing:.06em}
.plz-venc{font-family:var(--serif);font-size:2.1rem;font-weight:500;color:var(--ink);margin:.2rem 0 .5rem;line-height:1.1}
.plz-detalle{font-size:.8rem;color:var(--ink-2);margin-bottom:.3rem}
.plz-precision{font-size:.74rem;color:var(--ink-soft);margin-bottom:.8rem}
.plz-aviso{font-size:.8rem;color:var(--amber);line-height:1.5;padding-top:.7rem;border-top:1px solid var(--line-2)}

/* --- Motor de Workflows (F4.4) --- */
.wf-lista{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.2rem}
@media(max-width:680px){.wf-lista{grid-template-columns:1fr}}
.wf-card{text-align:left;padding:1.3rem 1.4rem;border:1px solid var(--line);border-radius:14px;background:var(--paper-card);cursor:pointer;transition:all .15s;font:inherit}
.wf-card:hover{border-color:var(--green-bright);transform:translateY(-1px)}
.wf-card-h{font-family:var(--serif);font-size:1.2rem;font-weight:500;color:var(--ink);margin-bottom:.4rem}
.wf-card-d{font-size:.86rem;color:var(--ink-2);line-height:1.5;margin-bottom:.8rem}
.wf-card-n{font-size:.72rem;color:var(--green)}
.wf-volver{margin-bottom:1rem}
.wf-prog{display:flex;align-items:center;gap:.8rem;margin-bottom:1.4rem}
.wf-prog-bar{flex:1;height:6px;background:var(--paper-2);border-radius:999px;overflow:hidden}
.wf-prog-fill{height:100%;background:var(--green-bright);border-radius:999px;transition:width .4s}
.wf-prog-t{font-size:.72rem;color:var(--ink-soft);white-space:nowrap}
.wf-pasos{list-style:none;margin:0;padding:0;counter-reset:none}
.wf-paso{display:flex;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line-2)}
.wf-paso:last-child{border-bottom:none}
.wf-check{flex-shrink:0;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);background:transparent;color:var(--ink-soft);font-family:var(--mono);font-size:.82rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.wf-check:hover{border-color:var(--green-bright)}
.wf-paso-hecho .wf-check{background:var(--green-bright);border-color:var(--green-bright);color:#fff}
.wf-paso-hecho .wf-paso-t{color:var(--ink-soft)}
.wf-paso-body{flex:1}
.wf-paso-t{font-size:1rem;font-weight:600;color:var(--ink);margin-bottom:.3rem}
.wf-paso-d{font-size:.88rem;color:var(--ink-2);line-height:1.55;margin-bottom:.6rem}
.wf-paso-acc{display:inline-flex}

/* --- Memoria de expediente (F3.4) --- */
.exp-nuevo{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;margin:1.2rem 0;padding:1.1rem 1.2rem;border:1px dashed var(--line);border-radius:12px}
.exp-nuevo .input-line{flex:1;min-width:180px}
.exp-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:680px){.exp-cards{grid-template-columns:1fr}}
.exp-card{text-align:left;padding:1.2rem 1.3rem;border:1px solid var(--line);border-radius:14px;background:var(--paper-card);cursor:pointer;transition:all .15s;font:inherit}
.exp-card:hover{border-color:var(--green-bright);transform:translateY(-1px)}
.exp-card-cerrado{opacity:.6}
.exp-card-h{font-family:var(--serif);font-size:1.12rem;font-weight:500;color:var(--ink);margin-bottom:.3rem}
.exp-badge{font-size:.62rem;padding:.1rem .4rem;background:var(--paper-2);border-radius:4px;color:var(--ink-soft);vertical-align:middle}
.exp-card-cli{font-size:.78rem;color:var(--ink-2);margin-bottom:.5rem}
.exp-card-meta{font-size:.7rem;color:var(--ink-soft)}
.exp-volver{margin-bottom:1rem}
.exp-ctx{padding:1.2rem 1.3rem;border:1px solid var(--line);border-radius:14px;background:var(--paper-card);margin-bottom:1rem}
.exp-ctx label{display:block;font-size:.72rem;color:var(--ink-soft);margin-bottom:.5rem;letter-spacing:.02em}
.exp-addnota{display:flex;gap:.6rem;margin-bottom:1.4rem}
.exp-addnota .input-line{flex:1}
.exp-timeline{display:flex;flex-direction:column;gap:.7rem}
.exp-entrada{padding:.9rem 1.1rem;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;background:var(--paper-2)}
.exp-e-consulta{border-left-color:var(--green-bright)}
.exp-e-documento{border-left-color:var(--amber)}
.exp-e-hito{border-left-color:var(--green)}
.exp-e-top{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.35rem}
.exp-e-tag{font-size:.62rem;font-weight:600;letter-spacing:.05em;padding:.15rem .45rem;border-radius:4px;background:var(--paper-card);color:var(--ink-soft)}
.exp-e-tit{font-size:.9rem;font-weight:600;color:var(--ink)}
.exp-e-fecha{font-size:.68rem;color:var(--ink-soft);margin-left:auto}
.exp-e-cont{font-size:.88rem;color:var(--ink-2);line-height:1.55}

/* --- Guardar consulta en expediente (F3.4) --- */
.guardar-exp{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--line-2)}
.ge-k{font-size:.72rem;color:var(--ink-soft)}
.ge-sel{max-width:280px;font-size:.82rem;padding:.3rem .6rem}
.ge-hint{font-size:.76rem;color:var(--ink-soft)}
.ge-msg{font-size:.74rem;color:var(--green)}

/* --- Jurisprudencia en las citas (F5.2) --- */
.source-jur{border-left:2px solid var(--green-bright);padding-left:.6rem}
.s-jur-tag{font-size:.6rem;font-weight:600;letter-spacing:.06em;padding:.1rem .4rem;border-radius:4px;background:var(--green-glow);color:var(--green);margin-left:.4rem}
.jur-cautela{margin-top:.9rem;padding:.8rem 1rem;font-size:.76rem;color:var(--ink-2);line-height:1.5;background:var(--paper-2);border-radius:8px;border-left:2px solid var(--amber)}

/* --- Doctrina tributaria aportada (DGT/TEAC) — reutiliza estilos .jur-* --- */
.doc-fuente{display:flex;gap:.5rem;margin:1rem 0 .4rem}
.doc-tab{padding:.5rem 1.1rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-2);font:inherit;font-size:.84rem;cursor:pointer;transition:all .15s}
.doc-tab:hover{border-color:var(--green-bright)}
.doc-tab-on{background:var(--green-glow);border-color:var(--green-bright);color:var(--green);font-weight:600}

/* ============================================================
   LANDING v2 — renovación (Fase 2). Sobre la identidad existente.
   ============================================================ */

/* nav: enlaces nuevos del landing */
@media(min-width:900px){ .hdr-nav{display:flex} }

/* hero: la atmósfera canvas sustituye visualmente la rejilla estática */
.hero[data-atmosphere]::before{ display:none } /* el canvas hace el fondo */
.hero-grid{ grid-template-columns:1fr }
@media(min-width:980px){ .hero-grid{ grid-template-columns:1.04fr .96fr } }

/* CTA secundaria del hero: "Solicitar demostración" como enlace sobrio */
.hero-cta .btn-line{ background:transparent;border-color:rgba(239,233,220,.22);color:var(--night-ink) }
.hero-cta .btn-line::before{ background:var(--green) }
.hero-cta .btn-line:hover{ color:#fff;border-color:transparent }

/* ---------- Consola de operaciones en directo (hero) ---------- */
.console{ background:linear-gradient(168deg,var(--night-2),#1c1910);border:1px solid rgba(239,233,220,.12);border-radius:var(--r-lg);box-shadow:0 50px 100px -45px rgba(0,0,0,.75);overflow:hidden;opacity:0;transform:translateY(26px) scale(.985);animation:fadeUp .9s var(--ease-out) .4s forwards }
.console-bar{ display:flex;align-items:center;gap:.7rem;padding:.85rem 1.1rem;border-bottom:1px solid rgba(239,233,220,.09);background:rgba(0,0,0,.18) }
.console-bar .live{ width:8px;height:8px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 0 0 rgba(63,156,127,.5);animation:pulse 2.2s infinite }
.console-bar .ttl{ font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--night-soft) }
.console-bar .ttl b{ color:var(--green-bright);font-weight:500 }
.console-bar .clk{ margin-left:auto;font-family:var(--mono);font-size:.68rem;color:var(--night-soft) }
.console-feed{ padding:.9rem 1.1rem 1.1rem;min-height:248px;display:flex;flex-direction:column;justify-content:flex-end;gap:.55rem;font-family:var(--mono);font-size:.78rem;line-height:1.5 }
.op{ display:flex;align-items:flex-start;gap:.6rem;opacity:0;transform:translateY(6px);animation:opIn .42s var(--ease-out) forwards }
@keyframes opIn{ to{opacity:1;transform:none} }
.op .agent{ color:var(--seal);font-weight:500;flex:0 0 auto;min-width:96px }
.op .txt{ color:#cfc7b4;flex:1 }
.op .txt b{ color:var(--night-ink);font-weight:500 }
.op .chip{ flex:0 0 auto;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;padding:.12em .55em;border-radius:100px;align-self:center }
.op .chip.ok{ background:var(--green-glow);color:var(--green-bright);box-shadow:inset 0 0 0 1px rgba(63,156,127,.3) }
.op .chip.wait{ background:var(--seal-soft);color:var(--seal);box-shadow:inset 0 0 0 1px rgba(183,138,46,.3) }
.op .chip.work{ background:rgba(239,233,220,.06);color:var(--night-soft) }
.console-foot{ display:flex;align-items:center;gap:.6rem;padding:.8rem 1.1rem;border-top:1px solid rgba(239,233,220,.09);background:rgba(0,0,0,.18);font-family:var(--mono);font-size:.72rem;color:var(--night-soft) }
.console-foot .lock{ color:var(--green-bright) }

/* ---------- Tarjetas con micro-interacción premium (halo + borde) ---------- */
.tilt{ position:relative;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper-card);padding:clamp(22px,2.6vw,30px);overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s }
.tilt::after{ content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),var(--green-glow),transparent 60%) }
.tilt:hover{ transform:translateY(-5px);box-shadow:0 30px 60px -36px rgba(21,18,13,.45);border-color:rgba(63,156,127,.4) }
.tilt:hover::after{ opacity:1 }

/* ---------- Sección AGENTES (la protagonista) ---------- */
.agents{ display:grid;grid-template-columns:1fr;gap:16px }
@media(min-width:680px){ .agents{ grid-template-columns:1fr 1fr } }
@media(min-width:1020px){ .agents{ grid-template-columns:repeat(3,1fr) } }
.agent-card .ag-ic{ width:38px;height:38px;border-radius:10px;background:var(--green);display:grid;place-items:center;color:var(--paper);font-family:var(--mono);font-size:.9rem;box-shadow:0 0 0 5px var(--green-glow);margin-bottom:1rem }
.agent-card h3{ font-size:1.18rem;margin-bottom:.5rem;font-variation-settings:"opsz" 30 }
.agent-card p{ font-size:.92rem;color:var(--ink-soft) }
.agent-card .ag-tag{ display:inline-block;margin-top:.9rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green);border:1px solid var(--line);border-radius:100px;padding:.2em .6em }
.loop{ display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:clamp(28px,4vh,40px);font-family:var(--mono);font-size:.72rem;color:var(--ink-soft) }
.loop .stp{ background:var(--paper-card);border:1px solid var(--line);border-radius:100px;padding:.4em .9em;color:var(--ink-2) }
.loop .stp.exec{ border-color:rgba(183,138,46,.4);color:var(--seal) }
.loop .sep{ color:var(--green) }

/* ---------- Mosaico de CAPACIDADES (11 herramientas) ---------- */
.caps{ display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden }
@media(min-width:560px){ .caps{ grid-template-columns:1fr 1fr } }
@media(min-width:920px){ .caps{ grid-template-columns:repeat(3,1fr) } }
.cap{ background:var(--paper-card);padding:clamp(20px,2.4vw,26px);transition:background .35s;position:relative }
.cap:hover{ background:var(--paper) }
.cap .cap-k{ font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green) }
.cap h3{ font-size:1.08rem;margin:.7rem 0 .45rem;font-variation-settings:"opsz" 24 }
.cap p{ font-size:.875rem;color:var(--ink-soft) }
.cap::before{ content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--green);transition:width .35s var(--ease) }
.cap:hover::before{ width:3px }

/* ---------- COBERTURA / fuentes con datos + gráficos ---------- */
.cov2{ display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,48px);align-items:center }
@media(min-width:920px){ .cov2{ grid-template-columns:1.05fr .95fr } }
.cov2-figs{ display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:1.6rem }
.figc .fn{ font-family:var(--display);font-size:clamp(2rem,4vw,2.8rem);color:var(--green);line-height:1;font-variation-settings:"opsz" 40 }
.figc .fl{ font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-top:.4rem }
.src-list{ display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem }
.src-list .src{ font-family:var(--mono);font-size:.74rem;border:1px solid var(--line);border-radius:100px;padding:.35em .85em;color:var(--ink-2);background:var(--paper-card) }
.src-list .src b{ color:var(--green);font-weight:500 }
.cov-panel{ background:var(--paper-card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(24px,3vw,32px) }
.cov-panel .cap-k{ font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green);display:block;margin-bottom:1rem }

/* ---------- CORPUS VIVO ---------- */
.living{ display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin-top:1.5rem }
@media(min-width:760px){ .living{ grid-template-columns:repeat(3,1fr) } }
.living .lv{ background:var(--paper-card);padding:clamp(22px,2.6vw,30px) }
.living .lv .ln{ font-family:var(--mono);font-size:.7rem;color:var(--green);letter-spacing:.1em }
.living .lv h3{ font-size:1.1rem;margin:.7rem 0 .45rem }
.living .lv p{ font-size:.88rem;color:var(--ink-soft) }

/* ---------- FAQ ---------- */
.faq{ max-width:860px;margin:0 auto;border-top:1px solid var(--line) }
.faq details{ border-bottom:1px solid var(--line) }
.faq summary{ cursor:pointer;list-style:none;padding:1.3rem 0;font-family:var(--display);font-size:clamp(1.1rem,1.8vw,1.35rem);display:flex;align-items:center;justify-content:space-between;gap:1rem;font-variation-settings:"opsz" 30 }
.faq summary::-webkit-details-marker{ display:none }
.faq summary .pl{ flex:0 0 auto;width:22px;height:22px;position:relative;transition:transform .3s }
.faq summary .pl::before,.faq summary .pl::after{ content:"";position:absolute;background:var(--green);border-radius:2px }
.faq summary .pl::before{ left:50%;top:2px;bottom:2px;width:2px;transform:translateX(-50%);transition:opacity .3s }
.faq summary .pl::after{ top:50%;left:2px;right:2px;height:2px;transform:translateY(-50%) }
.faq details[open] summary .pl::before{ opacity:0 }
.faq details[open] summary .pl{ transform:rotate(180deg) }
.faq .ans{ padding:0 0 1.4rem;color:var(--ink-soft);font-size:.98rem;max-width:70ch;line-height:1.7 }
.faq .ans code{ background:var(--paper-2);padding:.15em .45em;border-radius:5px;color:var(--green);font-size:.86em }

/* ---------- listado exhaustivo de capacidades ---------- */
.allcaps{ columns:2;column-gap:2.4rem;max-width:920px }
@media(max-width:640px){ .allcaps{ columns:1 } }
.allcaps .ac{ break-inside:avoid;display:flex;gap:.6rem;padding:.5rem 0;font-size:.9rem;color:var(--ink-2) }
.allcaps .ac::before{ content:"›";color:var(--green);font-family:var(--mono) }
.allcaps .ac small{ color:var(--ink-soft) }

/* ============================================================
   PORTAL — Cuadro de mando (Fase 3)
   ============================================================ */
.dash-head{ margin-bottom:clamp(24px,3vh,36px) }
.dash-head h1{ font-size:clamp(2rem,4.5vw,3rem);margin:.6rem 0 .5rem;font-variation-settings:"opsz" 60 }
.dash-head p{ color:var(--ink-soft);font-size:1.05rem;max-width:54ch }

.dash-panel{ margin-bottom:clamp(28px,4vh,40px) }
.dash-figs{ display:flex;flex-wrap:wrap;gap:clamp(24px,4vw,52px);margin-bottom:1.8rem }
.dash-figs .figc .fn{ font-family:var(--display);font-size:clamp(2rem,4vw,2.8rem);color:var(--green);line-height:1;font-variation-settings:"opsz" 40 }
.dash-figs .figc .fl{ font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-top:.4rem }
.dash-charts{ display:grid;grid-template-columns:1fr;gap:16px }
@media(min-width:720px){ .dash-charts{ grid-template-columns:1fr 1fr } }
.dash-card{ background:var(--paper-card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(20px,2.6vw,28px) }
.dash-card-wide{ grid-column:1 / -1 }
.dash-k{ display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-bottom:1rem }

/* Accesos rápidos */
.quick{ display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin:clamp(24px,3.5vh,40px) 0 }
@media(min-width:640px){ .quick{ grid-template-columns:repeat(4,1fr) } }
.qx{ background:var(--paper-card);padding:clamp(16px,2vw,22px);display:flex;flex-direction:column;gap:.25rem;transition:background .3s;position:relative }
.qx:hover{ background:var(--paper) }
.qx .qx-i{ font-family:var(--mono);color:var(--green);font-size:1.1rem;margin-bottom:.3rem }
.qx b{ font-size:.98rem;font-weight:500 }
.qx small{ color:var(--ink-soft);font-size:.8rem }
.qx::before{ content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--green);transition:width .3s var(--ease) }
.qx:hover::before{ width:3px }

/* ---------- Nav de la app: menú escalable (no se desborda) ---------- */
.appnav{ display:flex;align-items:center;gap:.5rem }
.appnav .menu-btn{ display:inline-flex;align-items:center;gap:.5rem;cursor:pointer }
.appnav-sheet{ position:fixed;inset:0;z-index:200;background:color-mix(in srgb,var(--ink) 38%,transparent);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .3s }
.appnav-sheet.open{ opacity:1;pointer-events:auto }
.appnav-panel{ position:absolute;top:0;right:0;height:100%;width:min(360px,86vw);background:var(--paper);border-left:1px solid var(--line);box-shadow:-40px 0 80px -40px rgba(21,18,13,.5);transform:translateX(100%);transition:transform .42s var(--ease-out);padding:clamp(24px,4vw,36px);overflow-y:auto }
.appnav-sheet.open .appnav-panel{ transform:none }
.appnav-panel h3{ font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 1rem }
.appnav-panel .grp{ display:flex;flex-direction:column;gap:.1rem;margin-bottom:1.6rem }
.appnav-panel a{ padding:.7rem .9rem;border-radius:var(--r);color:var(--ink-2);display:flex;align-items:center;gap:.7rem;transition:background .25s,color .25s }
.appnav-panel a:hover{ background:var(--paper-card);color:var(--ink) }
.appnav-panel a .ix{ font-family:var(--mono);color:var(--green);width:1.2em;text-align:center }
.appnav-panel a.cur{ background:var(--green-glow);color:var(--green) }
.appnav-close{ position:absolute;top:18px;right:18px;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--paper-card);cursor:pointer;display:grid;place-items:center;color:var(--ink-2) }
.link-hist{ background:none;border:none;color:var(--green);font-family:var(--sans);font-size:.95rem;cursor:pointer;padding:0;margin-left:.4rem;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line) }
.link-hist:hover{ text-decoration-color:var(--green) }

/* Cumplimiento: resumen con donut */
.cmp-summary{ display:flex;align-items:center;gap:clamp(20px,4vw,48px);flex-wrap:wrap;margin:1.4rem 0;padding:clamp(18px,2.4vw,24px);background:var(--paper-card);border:1px solid var(--line);border-radius:var(--r-lg) }
.cmp-counts{ display:flex;flex-direction:column;gap:.6rem }
.cmp-counts .rc{ font-family:var(--mono);font-size:.92rem;padding-left:1.2em;position:relative }
.cmp-counts .rc::before{ content:"";position:absolute;left:0;top:.45em;width:9px;height:9px;border-radius:2px }
.cmp-counts .rc-falta::before{ background:var(--seal) }
.cmp-counts .rc-cumple::before{ background:var(--green-bright) }
.cmp-counts .rc-mejorable::before{ background:var(--ink-soft) }
.cmp-donut{ flex:0 0 auto }

/* ============================================================
   SIDEBAR del portal (navegación fija a la izquierda)
   ============================================================ */
:root{ --sb-w:264px }

.sidebar{
  position:fixed; top:0; left:0; bottom:0; width:var(--sb-w); z-index:120;
  background:var(--night); color:var(--night-ink);
  display:flex; flex-direction:column; border-right:1px solid rgba(239,233,220,.08);
}
.sb-top{ display:flex; align-items:center; justify-content:space-between; padding:1.3rem 1.3rem 1rem }
.sb-logo{ display:flex; align-items:center; gap:.6rem; font-family:var(--display); font-size:1.2rem; font-weight:500; color:var(--night-ink) }
.sb-logo .mark{ width:26px; height:26px; border-radius:7px; background:var(--green); display:grid; place-items:center; color:var(--paper); font-family:var(--mono); font-size:.74rem; box-shadow:0 0 0 4px var(--green-glow) }
.sb-close{ display:none; background:none; border:none; color:var(--night-soft); font-size:1.1rem; cursor:pointer; padding:.2rem }

.sb-nav{ flex:1 1 auto; overflow-y:auto; padding:.5rem .8rem 1rem }
.sb-grp{ margin-bottom:1.5rem }
.sb-grp-t{ display:block; font-family:var(--mono); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--night-soft); padding:0 .7rem; margin-bottom:.5rem }
.sb-a{ display:flex; align-items:center; gap:.7rem; padding:.62rem .7rem; border-radius:10px; color:#cfc7b4; font-size:.92rem; transition:background .22s, color .22s; margin-bottom:.1rem; position:relative }
.sb-a:hover{ background:rgba(239,233,220,.06); color:var(--night-ink) }
.sb-a .sb-i{ font-family:var(--mono); width:1.25em; text-align:center; color:var(--night-soft); transition:color .22s; font-size:.95em }
.sb-a:hover .sb-i{ color:var(--green-bright) }
.sb-a.on{ background:linear-gradient(90deg,var(--green-glow),transparent); color:var(--night-ink) }
.sb-a.on .sb-i{ color:var(--green-bright) }
.sb-a.on::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:3px; height:60%; background:var(--green-bright); border-radius:0 3px 3px 0 }

.sb-foot{ border-top:1px solid rgba(239,233,220,.08); padding:1rem .9rem 1.1rem }
.sb-user{ display:flex; align-items:center; gap:.65rem; padding:.4rem .5rem .7rem }
.sb-ava{ width:34px; height:34px; border-radius:50%; background:var(--green); color:var(--paper); display:grid; place-items:center; font-family:var(--display); font-size:1rem; flex:0 0 auto }
.sb-user-tx{ display:flex; flex-direction:column; line-height:1.25; overflow:hidden }
.sb-user-tx b{ font-size:.88rem; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.sb-user-tx small{ font-family:var(--mono); font-size:.7rem; color:var(--night-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.sb-out{ display:flex; align-items:center; gap:.7rem; padding:.55rem .7rem; border-radius:10px; color:var(--night-soft); font-size:.88rem; transition:background .22s,color .22s }
.sb-out:hover{ background:rgba(160,60,40,.14); color:#e0a99a }
.sb-out .sb-i{ font-family:var(--mono); width:1.25em; text-align:center }

.sb-scrim{ display:none }

/* Cuando hay sidebar, el contenido del portal se desplaza y la cabecera se oculta */
body.has-sidebar .hdr{ display:none }
body.has-sidebar .lex-main{ margin-left:var(--sb-w) }
body.has-sidebar .page{ padding-top:clamp(28px,4vh,44px) }
body.has-sidebar .ft{ margin-left:var(--sb-w) }

/* Barra superior móvil (solo aparece en móvil para abrir la sidebar) */
.mobilebar{ display:none }

@media(max-width:900px){
  .sidebar{ transform:translateX(-100%); transition:transform .34s var(--ease-out); box-shadow:30px 0 80px -40px rgba(0,0,0,.6) }
  .sidebar.open{ transform:none }
  .sb-close{ display:block }
  body.has-sidebar .lex-main{ margin-left:0 }
  body.has-sidebar .ft{ margin-left:0 }
  body.has-sidebar .page{ padding-top:76px }
  .sb-scrim.show{ display:block; position:fixed; inset:0; z-index:110; background:color-mix(in srgb,var(--ink) 45%,transparent); backdrop-filter:blur(3px) }
  .mobilebar{ display:flex; align-items:center; gap:.8rem; position:fixed; top:0; left:0; right:0; z-index:100; height:60px; padding:0 1rem; background:color-mix(in srgb,var(--paper) 88%,transparent); backdrop-filter:blur(14px); border-bottom:1px solid var(--line) }
  .mobilebar .mb-btn{ background:none; border:1px solid var(--line); border-radius:10px; width:40px; height:40px; display:grid; place-items:center; cursor:pointer; color:var(--ink); font-size:1.1rem }
  .mobilebar .mb-logo{ font-family:var(--display); font-size:1.1rem; font-weight:500 }
}

/* ============================================================
   Zona de subida de archivos (Revisar, Jurisprudencia, Doctrina)
   ============================================================ */
.sr-only{ position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0 }
.dropzone{ border:1.5px dashed var(--line); border-radius:var(--r-lg); padding:clamp(20px,3vw,30px); text-align:center; cursor:pointer; transition:border-color .25s, background .25s; background:color-mix(in srgb,var(--paper-card) 60%,transparent); margin-bottom:.9rem }
.dropzone:hover{ border-color:var(--green-bright); background:var(--paper-card) }
.dropzone:focus-visible{ outline:none; border-color:var(--green); box-shadow:0 0 0 3px var(--green-glow) }
.dropzone.drag{ border-color:var(--green); background:var(--green-glow) }
.dropzone.has-file{ border-style:solid; border-color:rgba(63,156,127,.5) }
.dz-idle{ display:flex; flex-direction:column; align-items:center; gap:.35rem }
.dz-ic{ font-size:1.7rem; color:var(--green); line-height:1 }
.dz-main{ font-size:.96rem; color:var(--ink-2) }
.dz-main b{ color:var(--green); font-weight:500 }
.dz-sub{ font-family:var(--mono); font-size:.72rem; color:var(--ink-soft) }
.dz-busy{ display:flex; align-items:center; justify-content:center; gap:.6rem; font-family:var(--mono); font-size:.85rem; color:var(--ink-2) }
.dz-busy .live{ width:8px; height:8px; border-radius:50%; background:var(--green-bright); animation:pulse 1.4s infinite }
.dz-done{ display:flex; align-items:center; justify-content:center; gap:.9rem; flex-wrap:wrap }
.dz-file{ font-family:var(--mono); font-size:.85rem; color:var(--green); display:inline-flex; align-items:center; gap:.5rem }
.dz-file::before{ content:"✓"; color:var(--green-bright) }
.dz-clear{ background:none; border:1px solid var(--line); border-radius:100px; padding:.2em .8em; font-family:var(--mono); font-size:.72rem; color:var(--ink-soft); cursor:pointer; transition:border-color .2s,color .2s }
.dz-clear:hover{ border-color:var(--ink-2); color:var(--ink) }
.dz-or{ display:flex; align-items:center; gap:1rem; margin:.3rem 0 .9rem; color:var(--ink-soft) }
.dz-or::before,.dz-or::after{ content:""; flex:1; height:1px; background:var(--line-2) }
.dz-or span{ font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase }

/* Acciones del borrador (descargar Word / copiar) */
.doc-actions{ display:flex; gap:.8rem; flex-wrap:wrap; margin:1.4rem 0 .4rem }
.doc-actions .btn .arr{ font-size:.9em }
