/* Entrada de AJAW Corte. Mismo diseño del login de AJAW Engineering (etc_estudio_tiempos/opanalyzer/auth.py:
   AUTH_CSS + panel «D», el que está en vivo): formulario blanco a la derecha, panel índigo a la izquierda.
   Página aparte: NO carga corte.css. La usan /login y /cuenta/clave (corte/auth.py). */
@font-face{font-family:'Clash Display';font-style:normal;font-weight:500;font-display:block;src:url(fonts/ClashDisplay-500.woff2) format('woff2')}
@font-face{font-family:'Clash Display';font-style:normal;font-weight:600;font-display:block;src:url(fonts/ClashDisplay-600.woff2) format('woff2')}
@font-face{font-family:'Clash Display';font-style:normal;font-weight:700;font-display:block;src:url(fonts/ClashDisplay-700.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:block;src:url(fonts/Inter-var-latin.woff2) format('woff2');
 unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--acc:#5B4FE5;--acc-soft:#F1F0FE;--grad:linear-gradient(135deg,#6158E8,#251F95);--ink:#16133D;--ink2:#16133D;--mute:#67648C;--mute2:#67648C;--line:#E5E5EA;
--display:'Clash Display','Inter',system-ui,sans-serif;--ok:#15803D;--bad:#B91C1C}
*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}
body{font:15px/1.55 Inter,system-ui,-apple-system,sans-serif;color:var(--ink2);background:#fff;-webkit-font-smoothing:antialiased}
.lp{display:grid;grid-template-columns:1.2fr 1fr;min-height:100vh}
.world{position:relative;overflow:hidden;color:#fff}

/* ── formulario (derecha) ── */
.form{display:flex;overflow-y:auto;padding:40px 26px;background:#fff}
.fc-card{width:min(420px,100%);margin:auto;display:flex;flex-direction:column;animation:enter .5s cubic-bezier(.22,1,.36,1) both}
@keyframes enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.brand{display:flex;justify-content:center;margin-bottom:26px}.brand img{width:280px;max-width:80%;height:auto;filter:drop-shadow(0 10px 18px rgba(37,31,149,.20))}
.f-title{font:600 32px/1.15 var(--display);letter-spacing:.005em;word-spacing:.04em;color:var(--ink);text-align:center;margin-bottom:8px;text-wrap:balance}
.f-sub{font-size:14.5px;color:var(--mute);text-align:center;line-height:1.55;margin-bottom:22px}
.ws{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 auto 22px;padding:7px 14px;border-radius:999px;background:#F8FAFC;border:1px solid var(--line);font-size:13px;color:var(--mute)}
.ws b{color:var(--ink2);font-weight:600}.ws .lucide{width:15px;height:15px;color:var(--acc)}
form.auth{display:flex;flex-direction:column;gap:16px}.fg{display:flex;flex-direction:column;gap:6px}.fg label{font-size:13px;font-weight:600;color:var(--ink2)}
.fg input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font:15px Inter,system-ui;color:var(--ink);transition:border-color .18s,box-shadow .18s}
.fg input:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 4px rgba(91,79,229,.12)}
.fg small{font-size:12.5px;color:var(--mute)}.fg.pista{margin-top:-10px}
.pw{position:relative;display:flex;align-items:center}.pw input{padding-right:46px}
.pw button{position:absolute;right:6px;width:36px;height:36px;border:0;border-radius:9px;background:transparent;color:var(--mute2);cursor:pointer;display:grid;place-items:center}
.pw button:hover,.pw button[aria-pressed=true]{color:var(--acc)}.pw .lucide{width:18px;height:18px}
.help{font-size:13px;color:var(--mute);text-align:right;margin-top:-6px}
.help.centro{text-align:center;margin-top:10px}.help a{color:var(--acc)}
.go{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 0;border:0;border-radius:12px;background:var(--grad);color:#fff;font:600 15px Inter,system-ui;cursor:pointer;
 box-shadow:0 10px 24px rgba(91,79,229,.32);transition:transform .18s,box-shadow .18s}.go:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(91,79,229,.4)}
.go:focus-visible,.fg input:focus-visible,.pw button:focus-visible,.otra button:focus-visible,.help a:focus-visible{outline:3px solid #A5A0FB;outline-offset:2px}
.msg{padding:11px 14px;border-radius:12px;font-size:14px;line-height:1.45}.msg.bad{background:#FEF2F2;color:var(--bad)}.msg.ok{background:#F0FDF4;color:var(--ok)}
.msg.info{background:var(--acc-soft);color:#3730A3}
form.otra{margin-top:14px;text-align:center}.otra button{border:0;background:none;color:var(--mute);font:500 13px Inter,system-ui;cursor:pointer;padding:4px 8px;border-radius:8px}
.otra button:hover{color:var(--acc)}
.foot{margin-top:26px;text-align:center;font-size:12.5px;color:var(--mute2)}.foot a{color:inherit;text-decoration:none}.foot a:hover{color:var(--acc)}

/* ── panel (izquierda): tres pantallas de Corte como ejemplo (primero el trazo, con las piezas del «Trazo de prueba») ── */
.world.pd{background:linear-gradient(135deg,#6158E8 0%,#4B3FD6 45%,#251F95 100%);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:56px 7% 44px}
.pd .dk{position:relative;z-index:2;width:min(620px,100%)}
.pd .stage{position:relative;width:min(620px,100%,64vh);aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#16133D;border:1px solid rgba(201,197,255,.18)}
.pd .sl{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .45s cubic-bezier(.22,1,.36,1),visibility 0s .45s}
.pd .sl.on{opacity:1;visibility:visible;transition:opacity .45s cubic-bezier(.22,1,.36,1)}
.pd svg.vz{position:absolute;inset:0;width:100%;height:100%}
.pd .vz text{font:500 12px Inter;fill:#B8B5D9;font-variant-numeric:tabular-nums}
.pd .vz .ttl{font:600 15px Inter;fill:#fff}.pd .vz .ex{font:500 12px Inter;fill:#A9A6CF}
.pd .vz .val{font:600 12px Inter;fill:#fff}.pd .vz .val.b{fill:#16133D;font-weight:700}
.pd .vz .sob{fill:#D9D6FF}.pd .vz .osc{fill:#3F3A7A}
.pd .vz .num{font:600 24px var(--display);fill:#fff}
.pd .vz .axis{stroke:rgba(255,255,255,.42);stroke-width:1}
.pd .vz .caja{fill:rgba(255,255,255,.06);stroke:rgba(255,255,255,.14);stroke-width:1}
.pd .vz .une{fill:none;stroke:#C9C5FF;stroke-width:1.5;opacity:.7}
.pd .cap{margin-top:30px;min-height:172px;position:relative}
.pd .cap>div{position:absolute;inset:0 0 auto 0;opacity:0;transform:translateY(8px);transition:opacity .45s,transform .5s cubic-bezier(.22,1,.36,1);pointer-events:none}
.pd .cap>div.on{opacity:1;transform:none;position:relative}
.pd .cap .k{font:500 13px Inter;color:#C9C5FF;margin-bottom:10px;font-variant-numeric:tabular-nums}
.pd .cap h2{font:600 36px/1.1 var(--display);letter-spacing:.003em;color:#fff;margin-bottom:12px;text-wrap:balance}
.pd .cap h2 em{font-style:normal;color:#C9C5FF}
.pd .cap p{font-size:15px;line-height:1.65;color:#E4E2F7;max-width:54ch}
.pd .tabs{display:flex;gap:12px;margin-top:22px}
.pd .tabs button{flex:1;display:flex;flex-direction:column;gap:8px;padding:0;border:0;background:none;cursor:pointer;color:#C9C5FF;font:600 13px Inter;text-align:left}
.pd .tabs button i{display:block;height:2px;background:rgba(255,255,255,.22);overflow:hidden}
.pd .tabs button i:after{content:"";display:block;height:100%;width:0;background:#fff}
.pd .tabs button.on{color:#fff}.pd .tabs button.on i:after{animation:pdt var(--dur,7s) linear forwards}
.pd .tabs button.done i:after{width:100%}
.pd .tabs button:hover{color:#fff}
.pd .tabs button:focus-visible{outline:2px solid #fff;outline-offset:4px;border-radius:2px}
@keyframes pdt{to{width:100%}}

@media(max-width:1100px){.lp{grid-template-columns:1fr 1fr}.pd .cap h2{font-size:30px}.world.pd{padding:48px 6% 40px}}
@media(max-width:900px){.lp{grid-template-columns:1fr}.world,.world.pd{display:none}.form{padding:32px 18px}.f-title{font-size:28px}}
@media(max-height:820px){.pd .stage{width:min(620px,100%,56vh)}.pd .cap{margin-top:22px;min-height:156px}.pd .cap h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){.fc-card{animation:none}.pd .tabs button.on i:after{animation:none;width:100%}.pd .sl,.pd .cap>div,.go,.fg input{transition:none}}
