/* Halcira · shared styles for info/legal pages and the site footer */
:root{
  --cyan:#00D4E8; --deep:#2BC4D6; --petrol:#0B4F5C; --ink:#EEF3F5;
  --slate:#BCCCD2; --subtle:#93A7AF; --glacier:#0A1A20;
  --glass:rgba(255,255,255,.055); --line:rgba(255,255,255,.09);
  --shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 18px 46px rgba(0,0,0,.45);
  --sans:'Familjen Grotesk',-apple-system,'Segoe UI',sans-serif;
  --mono:'DM Mono',ui-monospace,Menlo,monospace;
}

/* ===== Legal page shell ===== */
body.lg{margin:0;font-family:var(--sans);color:var(--ink);background:#0A1A20;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.lg *{box-sizing:border-box}
body.lg a{color:inherit}
html{scroll-behavior:smooth}

.wallpaper{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(70px);will-change:transform}
.b1{width:60vw;height:60vw;top:-24vw;right:-14vw;background:radial-gradient(circle,rgba(0,212,232,.5) 0%,rgba(0,212,232,0) 68%);animation:drift1 26s ease-in-out infinite}
.b2{width:54vw;height:54vw;bottom:-22vw;left:-16vw;background:radial-gradient(circle,rgba(0,116,131,.28) 0%,rgba(0,116,131,0) 68%);animation:drift2 32s ease-in-out infinite}
.b4{width:32vw;height:32vw;top:6%;left:-8vw;background:radial-gradient(circle,rgba(170,226,236,.6) 0%,rgba(170,226,236,0) 70%);animation:drift2 44s ease-in-out infinite reverse}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(-8vw,10vh) scale(1.08)}66%{transform:translate(4vw,4vh) scale(.94)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(10vw,-8vh) scale(1.1)}66%{transform:translate(4vw,6vh) scale(.95)}}
.dots{position:absolute;inset:0;background-image:radial-gradient(rgba(0,0,0,.14) 1px,transparent 1.2px);background-size:22px 22px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 20%,#000 10%,transparent 70%);mask-image:radial-gradient(ellipse at 50% 20%,#000 10%,transparent 70%)}

.lg-nav{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:4px;padding:6px;white-space:nowrap;
  background:rgba(255,255,255,.05);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);
  border:1px solid rgba(255,255,255,.10);border-radius:999px;box-shadow:0 8px 32px rgba(0,0,0,.12),0 0 0 1px rgba(0,212,232,.08)}
.lg-brand{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 10px;font-weight:600;font-size:15px;border-right:1px solid var(--line);margin-right:4px;text-decoration:none}
.lg-nav .lnk{padding:8px 14px;border-radius:999px;font-size:14px;font-weight:500;color:var(--slate);text-decoration:none;transition:background .2s,color .2s}
.lg-nav .lnk:hover,.lg-nav .lnk[aria-current]{background:rgba(255,255,255,.05);color:var(--ink)}
.lg-dark{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff!important;border-radius:999px;font-weight:600;text-decoration:none;padding:9px 16px;font-size:14px;margin-left:4px;transition:background .2s}
.lg-dark:hover{background:var(--petrol)}
.lg-dark svg{width:15px;height:15px}

.lg-main{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:130px 24px 40px}
.lg-head{margin-bottom:36px}
.lg-eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--deep);text-transform:uppercase}
.lg-head h1{font-size:clamp(38px,6vw,68px);font-weight:500;letter-spacing:-.04em;line-height:1;margin:14px 0 16px}
.lg-lede{font-size:18px;color:var(--slate);line-height:1.55;max-width:680px;margin:0}
.lg-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.lg-chip{font-family:var(--mono);font-size:12px;color:var(--slate);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10);border-radius:999px;padding:5px 12px}

.lg-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:28px;align-items:start}
.lg-grid>*{min-width:0}
.lg-toc{position:sticky;top:100px;font-size:13.5px}
.lg-toc .t{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--subtle);text-transform:uppercase;margin-bottom:10px}
.lg-toc ol{list-style:none;margin:0;padding:0;border-left:1px solid rgba(255,255,255,.1)}
.lg-toc a{display:block;padding:6px 0 6px 14px;margin-left:-1px;border-left:2px solid transparent;color:var(--subtle);text-decoration:none;line-height:1.35;transition:color .2s,border-color .2s}
.lg-toc a:hover{color:var(--ink)}
.lg-toc a.on{color:var(--ink);border-left-color:var(--deep);font-weight:600}

.lg-card{background:var(--glass);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid rgba(255,255,255,.10);border-radius:16px;box-shadow:var(--shadow);padding:40px 44px}
.prose{font-size:15.5px;line-height:1.7;color:var(--slate)}
.prose h2{font-size:22px;font-weight:600;letter-spacing:-.015em;color:var(--ink);margin:44px 0 12px;scroll-margin-top:100px;display:flex;gap:12px;align-items:baseline}
.prose h2:first-child{margin-top:0}
.prose h2 .n{font-family:var(--mono);font-size:12px;color:var(--deep);font-weight:400;letter-spacing:.08em}
.prose h3{font-size:16px;font-weight:600;color:var(--ink);margin:24px 0 8px}
.prose p{margin:0 0 14px}
.prose ul,.prose ol{margin:0 0 16px;padding-left:20px}
.prose li{margin:6px 0}
.prose li::marker{color:var(--deep)}
.prose strong{color:var(--ink);font-weight:600}
.prose a{color:var(--deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.prose code{font-family:var(--mono);font-size:13px;background:rgba(255,255,255,.05);padding:1px 6px;border-radius:4px;color:var(--ink)}
.prose .caps{text-transform:none;font-weight:500;color:var(--ink)}

.ph{background:rgba(0,212,232,.14);color:var(--petrol);border:1px dashed rgba(0,116,131,.45);border-radius:4px;padding:0 5px;font-family:var(--mono);font-size:.86em;overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.draft{display:flex;gap:12px;align-items:flex-start;margin-bottom:28px;padding:14px 16px;border-radius:12px;background:rgba(0,212,232,.08);border:1px solid rgba(0,116,131,.22);font-size:13.5px;line-height:1.5;color:var(--petrol)}
.draft svg{flex:none;width:18px;height:18px;margin-top:1px}

.callout{margin:18px 0 22px;padding:18px 20px;border-radius:12px;background:var(--ink);color:rgba(255,255,255,.82);font-size:14.5px;line-height:1.6}
.callout strong{color:#fff}
.callout.soft{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10);color:var(--slate)}
.callout.soft strong{color:var(--ink)}

.tbl{width:100%;overflow-x:auto;margin:6px 0 20px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.045)}
.tbl table{width:100%;border-collapse:collapse;min-width:560px;font-size:14px}
.tbl th{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.1em;color:var(--subtle);text-align:left;text-transform:uppercase;padding:12px 14px;background:rgba(255,255,255,.03)}
.tbl td{padding:12px 14px;border-top:1px solid rgba(255,255,255,.07);vertical-align:top;color:var(--slate)}
.tbl td:first-child{color:var(--ink);font-weight:600}
.tbl .mono{font-family:var(--mono);font-size:12.5px;font-weight:400}

.choice{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 22px}
.choice .opt{padding:18px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10);box-shadow:var(--shadow)}
.choice .opt b{display:block;color:var(--ink);font-size:15px;margin-bottom:4px}
.choice .opt p{font-size:13.5px;margin:0 0 12px;line-height:1.5}
.btn{font:inherit;font-size:14px;font-weight:600;cursor:pointer;border-radius:999px;padding:10px 16px;border:1px solid transparent;transition:background .2s}
.btn.dark{background:var(--ink);color:#fff}
.btn.dark:hover{background:var(--petrol)}
.btn.ghost{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);color:var(--ink)}
.btn.ghost:hover{background:var(--glacier)}
.status{font-family:var(--mono);font-size:12.5px;color:var(--deep);margin:-8px 0 20px}

.risk-list{list-style:none;padding:0!important;display:grid;gap:10px}
.risk-list li{margin:0;padding:16px 18px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10)}
.risk-list li b{display:block;color:var(--ink);margin-bottom:2px}

/* ===== Site footer (shared) ===== */
.sf{position:relative;z-index:1;margin-top:80px;border-top:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-family:var(--sans)}
.sf-in{max-width:1180px;margin:0 auto;padding:48px 24px 28px;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
.sf-brand{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.sf-logo{display:flex;align-items:center;gap:8px;font-weight:600;font-size:16px;color:var(--ink);text-decoration:none}
.sf-brand p{margin:0;font-size:14px;line-height:1.55;color:var(--slate);max-width:300px}
.sf-ai{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--petrol);background:rgba(0,212,232,.12);border:1px solid rgba(0,116,131,.22);border-radius:999px;padding:5px 11px;text-decoration:none;transition:background .2s}
.sf-ai:hover{background:rgba(0,212,232,.22)}
.sf-ai svg{width:13px;height:13px}
.sf-col h4{margin:0 0 12px;font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--subtle)}
.sf-col a,.sf-col button{display:block;padding:5px 0;font:inherit;font-size:14px;color:var(--slate);text-decoration:none;background:none;border:none;cursor:pointer;text-align:left}
.sf-col a:hover,.sf-col button:hover{color:var(--ink)}
.sf-bottom{max-width:1180px;margin:0 auto;padding:18px 24px 30px;border-top:1px solid rgba(255,255,255,.07);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;color:var(--subtle);line-height:1.5}

/* Compact app footer (dashboard) */
.af{display:flex;justify-content:space-between;align-items:center;gap:12px 20px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;color:var(--subtle);padding:22px 4px 0}
.af nav{display:flex;gap:6px 16px;flex-wrap:wrap;position:static;transform:none;background:none;border:none;box-shadow:none;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none}
.af a,.af button{font:inherit;color:var(--subtle);text-decoration:none;background:none;border:none;cursor:pointer;padding:0}
.af a:hover,.af button:hover{color:var(--ink)}

/* ===== Responsive ===== */
@media (max-width:900px){
  .lg-grid{grid-template-columns:minmax(0,1fr)}
  .lg-toc{position:static;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);border-radius:12px;padding:14px 16px}
  .lg-card{padding:28px 22px}
  .sf-in{grid-template-columns:1fr 1fr}
  .sf-brand{grid-column:1/-1}
  .choice{grid-template-columns:1fr}
}
@media (max-width:640px){
  .lg-nav{left:12px;right:12px;transform:none;justify-content:space-between}
  .lg-nav .lnk{display:none}
  .lg-main{padding-top:100px}
}
@media (prefers-reduced-motion:reduce){
  .blob{animation:none!important}
  html{scroll-behavior:auto}
}
:focus-visible{outline:2px solid var(--deep);outline-offset:2px}
::selection{background:var(--cyan);color:var(--ink)}

/* ===== Auth pages (login, register, reset) ===== */
.au-main{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:120px 24px 60px;display:grid;grid-template-columns:1fr 440px;gap:56px;align-items:center;min-height:calc(100vh / var(--z,1))}
.au-intro h1{font-size:clamp(38px,5vw,60px);font-weight:500;letter-spacing:-.04em;line-height:1;margin:14px 0 16px}
.au-intro h1 em{font-style:normal;color:var(--deep)}
.au-intro .lg-lede{max-width:440px}
.au-points{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:14px}
.au-points li{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--slate);line-height:1.5}
.au-points b{display:block;color:var(--ink);font-weight:600}
.au-ico{flex:none;width:34px;height:34px;border-radius:10px;background:var(--ink);color:var(--cyan);display:grid;place-items:center}
.au-ico svg{width:17px;height:17px}

.au-card{background:rgba(255,255,255,.06);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);border:1px solid rgba(255,255,255,.10);border-radius:20px;box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 24px 60px rgba(0,0,0,.12);padding:32px}
.au-card h2{font-size:22px;font-weight:600;letter-spacing:-.015em;margin:0 0 6px}
.au-card .sub{font-size:14px;color:var(--slate);margin:0 0 22px;line-height:1.5}
.au-card .sub a,.au-alt a,.au-row a{color:var(--deep);font-weight:600;text-decoration:none}
.au-card .sub a:hover,.au-alt a:hover,.au-row a:hover{text-decoration:underline}
.au-field{display:block;margin-bottom:16px}
.au-label{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:7px}
.au-label small{font-weight:400;color:var(--subtle);font-family:var(--mono);font-size:11.5px}
.au-input{position:relative;display:block}
.au-input input{display:block;width:100%;height:46px;padding:0 14px;font:inherit;font-size:15px;color:var(--ink);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:10px;outline:none;transition:border-color .2s,box-shadow .2s}
.au-input input::placeholder{color:#8A9AA1}
.au-input input:focus{border-color:var(--deep);box-shadow:0 0 0 3px rgba(0,116,131,.14)}
.au-input input[aria-invalid=true]{border-color:var(--slate);box-shadow:0 0 0 3px rgba(59,79,88,.12)}
.au-input.pw input{padding-right:48px}
.au-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:none;background:none;border-radius:8px;color:var(--subtle);cursor:pointer;display:grid;place-items:center}
.au-eye:hover{color:var(--ink);background:rgba(255,255,255,.05)}
.au-eye svg{width:18px;height:18px}
.au-hint{font-size:12.5px;color:var(--subtle);margin-top:6px;line-height:1.45}
.au-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:8px}
.au-meter i{height:4px;border-radius:4px;background:rgba(255,255,255,.1);transition:background .25s}
.au-meter[data-s="1"] i:nth-child(-n+1),.au-meter[data-s="2"] i:nth-child(-n+2),.au-meter[data-s="3"] i:nth-child(-n+3),.au-meter[data-s="4"] i{background:var(--deep)}
.au-meter[data-s="1"] i:nth-child(1){background:var(--slate)}
.au-rules{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.au-rules li{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--subtle);padding:4px 9px 4px 7px;border-radius:999px;background:rgba(255,255,255,.05);transition:background .2s,color .2s}
.au-rules li::before{content:"";width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(255,255,255,.3);box-sizing:border-box;flex:none;transition:all .2s}
.au-rules li.ok{color:var(--petrol);background:rgba(0,212,232,.12)}
.au-rules li.ok::before{border-color:var(--deep);background:var(--deep) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.2 5 8l4-4.2' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px no-repeat}
.au-check{display:flex;gap:11px;align-items:flex-start;font-size:13.5px;color:var(--slate);line-height:1.5;margin:0 0 12px;cursor:pointer}
.au-check input{appearance:none;-webkit-appearance:none;flex:none;width:20px;height:20px;margin:1px 0 0;border-radius:6px;border:1.5px solid rgba(255,255,255,.3);background:rgba(255,255,255,.05);display:grid;place-items:center;cursor:pointer;transition:background .15s,border-color .15s}
.au-check input::after{content:"";width:10px;height:6px;border:2px solid #fff;border-top:none;border-right:none;transform:rotate(-45deg) translate(1px,-1px);opacity:0}
.au-check input:checked{background:var(--ink);border-color:var(--ink)}
.au-check input:checked::after{opacity:1}
.au-check a{color:var(--deep);font-weight:600}
.au-row{display:flex;justify-content:space-between;align-items:center;margin:-4px 0 18px;font-size:13.5px}
.au-submit{width:100%;height:48px;border:none;border-radius:999px;background:var(--ink);color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;margin-top:6px;transition:background .2s,transform .15s}
.au-submit:hover{background:var(--petrol)}
.au-submit:active{transform:translateY(1px)}
.au-submit[disabled]{opacity:.55;cursor:not-allowed}
.au-spin{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:auspin .8s linear infinite;display:none}
.au-submit.busy .au-spin{display:block}
@keyframes auspin{to{transform:rotate(360deg)}}
.au-msg{display:none;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;font-size:13.5px;line-height:1.5;margin-bottom:16px}
.au-msg.show{display:flex}
.au-msg svg{flex:none;width:17px;height:17px;margin-top:1px}
.au-msg.err{background:rgba(59,79,88,.08);border:1px solid rgba(59,79,88,.25);color:var(--ink)}
.au-msg.ok{background:rgba(0,212,232,.1);border:1px solid rgba(0,116,131,.28);color:var(--petrol)}
.au-alt{text-align:center;font-size:14px;color:var(--slate);margin:20px 0 0}
.au-done{text-align:center;padding:10px 0 4px}
.au-done .au-ico{width:52px;height:52px;border-radius:14px;margin:0 auto 18px}
.au-done .au-ico svg{width:24px;height:24px}
.au-done h2{margin-bottom:8px}
.au-done p{font-size:14.5px;color:var(--slate);line-height:1.55;margin:0 0 6px}
.au-ts{margin:4px 0 14px;min-height:0}
.au-off{display:none}
.au-off.show{display:block}

@media (max-width:900px){
  .au-main{grid-template-columns:1fr;gap:28px;padding-top:100px;min-height:0}
  .au-intro .au-points{display:none}
  .au-intro h1{font-size:38px}
}
@media (max-width:480px){
  .au-card{padding:24px 20px;border-radius:18px}
}
@media (prefers-reduced-motion:reduce){.au-spin{animation-duration:2s}}

/* ===== Cursor (all pages): Ink arrow, Ink hand over clickable things, cyan hand while pressing ===== */
@media (hover:hover) and (pointer:fine){
  html,body{cursor:url("cursors/arrow.svg") 5 3,auto}
  a,button,[role=button],label,select,summary,.bookchip,.pl-chip,.tab,.subnav a{cursor:url("cursors/pointer.svg") 9 3,pointer}
  a:active,button:active,[role=button]:active,label:active,summary:active,.bookchip:active,.pl-chip:active,.tab:active{cursor:url("cursors/press.svg") 9 3,pointer}
  input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,[contenteditable]{cursor:text}
  button[disabled],.tab.soon,[aria-disabled=true]{cursor:not-allowed}
  svg.chart{cursor:crosshair}
}

/* Bigger on wide screens (Jorge, 2026-10-04): he was reading the site at 125% browser zoom, so desktops
   get that by default. Phones and tablets are unchanged, and the zoomed layout stays wider than the
   1080px breakpoint. JS that turns mouse or element positions into CSS lengths divides by App.zoom(). */
:root{--z:1}
@media (min-width:1280px){:root{--z:1.15}}
@media (min-width:1440px){:root{--z:1.25}}
html{zoom:var(--z)}

/* ===== Dark theme exceptions (components that used --ink as a surface) ===== */
body.lg{background:radial-gradient(130% 95% at 50% 0%,#11333d 0%,#0c232b 44%,#0A1A20 80%),#0A1A20}
.lg-nav{background:rgba(13,33,41,.72)}
.lg-dark,.btn.dark,.au-submit{background:var(--cyan);color:#0A1A20!important}
.lg-dark:hover,.btn.dark:hover,.au-submit:hover{background:#2BE0F2}
.lg-nav .lnk:hover,.lg-nav .lnk[aria-current]{background:rgba(255,255,255,.08);color:var(--ink)}
.callout{background:rgba(255,255,255,.05);color:var(--slate)}
.callout strong{color:var(--ink)}
.callout.soft{background:rgba(255,255,255,.05)}
.au-ico{background:rgba(0,212,232,.14);border:1px solid rgba(0,212,232,.25)}
.au-check input{background:rgba(255,255,255,.06)}
.au-check input:checked{background:var(--cyan);border-color:var(--cyan)}
.au-check input::after{border-color:#0A1A20}
.btn.ghost{background:rgba(255,255,255,.05);color:var(--ink)}
.btn.ghost:hover{background:rgba(255,255,255,.09)}
.au-input input{background:rgba(255,255,255,.05);color:var(--ink)}
.au-input input::placeholder{color:#93A7AF}
.au-eye:hover{background:rgba(255,255,255,.08)}
.tbl th{background:rgba(255,255,255,.04)}
.prose code{background:rgba(255,255,255,.07);color:var(--ink)}
.au-rules li{background:rgba(255,255,255,.05)}
.sf{background:rgba(13,33,41,.5)}
