/* Acceso: dos bloques que caben en una pantalla. Si la ventana es muy baja, solo el formulario se desplaza. */
.auth { height:100dvh; min-height:0; max-height:none; overflow:hidden; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
.auth__hero { height:100dvh; min-height:0; padding:clamp(28px,4vw,72px); justify-content:center; overflow:hidden; }
.auth__overview { width:100%; max-width:640px; margin:auto; }
.auth__eyebrow { display:flex; align-items:center; gap:10px; font-size:.76rem; font-weight:700; letter-spacing:.14em; color:#a7d6ff; margin-bottom:clamp(14px,2.4vh,24px); }
.auth__eyebrow .material-symbols-rounded { font-size:20px; }
.auth__hero-title { font-size:clamp(2rem,2.8vw,3.4rem); line-height:1.1; letter-spacing:-.045em; margin:0 0 clamp(12px,2vh,20px); max-width:none; }
.auth__hero-title>span { color:#81e5ba; }
.auth__hero-sub { font-size:clamp(.95rem,1.05vw,1.1rem); line-height:1.6; color:#c5d5eb; max-width:520px; margin:0 0 clamp(22px,4vh,40px); }

/* Vista previa ilustrativa del sistema: resumen del día y dos avisos flotantes. */
.auth-vista { position:relative; max-width:560px; padding:0 0 42px 0; }
.auth-vista__panel { padding:clamp(16px,2.4vh,22px); border:1px solid rgba(255,255,255,.14); border-radius:20px; background:rgba(255,255,255,.07); backdrop-filter:blur(14px); box-shadow:0 24px 60px -20px rgba(2,8,23,.6); }
.auth-vista__head { display:flex; align-items:center; justify-content:space-between; font-size:.8rem; font-weight:650; color:#e2ecf8; }
.auth-vista__vivo { display:inline-flex; align-items:center; gap:6px; font-size:.7rem; font-weight:600; color:#81e5ba; }
.auth-vista__vivo::before { content:""; width:7px; height:7px; border-radius:50%; background:#34d399; box-shadow:0 0 0 4px rgba(52,211,153,.18); }
.auth-vista__kpis { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:10px; margin:clamp(12px,2vh,18px) 0; }
.auth-vista__kpis>div { min-width:0; }
.auth-vista__kpis small { display:block; font-size:.7rem; color:#a9bdd6; }
.auth-vista__kpis strong { display:block; margin-top:2px; font-size:clamp(1.05rem,1.5vw,1.45rem); letter-spacing:-.02em; color:#fff; white-space:nowrap; }
.auth-vista__kpis em { display:inline-block; margin-top:4px; padding:1px 7px; border-radius:999px; background:rgba(52,211,153,.16); color:#81e5ba; font-size:.66rem; font-style:normal; font-weight:650; }
.auth-vista__barras { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; align-items:end; height:clamp(70px,12vh,110px); }
.auth-vista__barras>span { display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:6px; height:100%; }
.auth-vista__barras i { display:block; width:100%; height:var(--alto); border-radius:6px 6px 3px 3px; background:rgba(158,215,255,.28); }
.auth-vista__barras .is-hoy i { background:linear-gradient(180deg,#81e5ba,#34d399); }
.auth-vista__barras b { font-size:.62rem; font-weight:600; color:#8fa6c2; }
.auth-vista__aviso { position:absolute; display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:14px; background:#fff; color:#0f172a; box-shadow:0 16px 40px -12px rgba(2,8,23,.55); font-size:.78rem; }
.auth-vista__aviso strong { display:block; font-size:.8rem; }
.auth-vista__aviso small { display:block; color:#64748b; font-size:.7rem; }
.auth-vista__aviso>.material-symbols-rounded { display:grid; place-items:center; width:32px; height:32px; border-radius:10px; font-size:20px; }
.auth-vista__aviso--factura { right:-18px; top:-22px; }
.auth-vista__aviso--factura>.material-symbols-rounded { background:#dcfce7; color:#15803d; }
.auth-vista__aviso--mesa { left:28px; bottom:0; }
.auth-vista__aviso--mesa>.material-symbols-rounded { background:#fef3c7; color:#b45309; }

/* Rubros: una línea que dice que se adapta al negocio (el detalle de módulos está en la web pública). */
.auth-rubros { margin-top:clamp(18px,3.5vh,34px); }
.auth-rubros__titulo { display:block; margin-bottom:10px; font-size:.74rem; font-weight:650; letter-spacing:.06em; text-transform:uppercase; color:#a7d6ff; }
.auth-rubros>div { display:flex; flex-wrap:wrap; gap:8px; }
.auth-rubros>div>span { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border:1px solid rgba(255,255,255,.14); border-radius:999px; background:rgba(255,255,255,.05); font-size:.78rem; color:#d6e3f3; }
.auth-rubros .material-symbols-rounded { font-size:17px; color:#9ed7ff; }

.auth__content { height:100dvh; min-height:0; padding:24px clamp(24px,4vw,72px); overflow-y:auto; align-items:flex-start; }
.auth__form-box { max-width:480px; padding:clamp(24px,4vh,36px) 36px; margin:auto; background:var(--g-surface); border:1px solid var(--g-border); border-radius:24px; box-shadow:0 12px 48px rgba(15,23,42,.045); }
.auth__header-logo { gap:12px; margin:0 auto clamp(16px,3vh,28px); max-width:100%; }
.auth__header-logo img:first-child { height:clamp(48px,7vh,64px); width:auto; }
.auth__header-logo img:last-child { height:clamp(30px,4.2vh,38px); width:auto; max-width:calc(100% - 90px); object-fit:contain; }
.auth__h { font-size:1.7rem; line-height:1.2; margin-bottom:8px; }
.auth__p { font-size:.93rem; line-height:1.55; margin:0 0 18px; color:var(--g-text-soft); overflow-wrap:anywhere; }
.auth-access-form { display:flex; flex-direction:column; gap:18px; margin:8px 0; }
.auth-access-form .g-input { width:100%; min-width:0; box-sizing:border-box; min-height:54px; }
.auth-access-form .g-field { margin:0; }
.auth-access-form>.g-btn { min-height:52px; }
.auth-access-code { letter-spacing:.3em!important; font-size:1.5rem!important; }
.auth__divider { margin:clamp(14px,2.4vh,22px) 0; }
.auth-demo-hook { padding:16px 18px; gap:10px; background:var(--g-surface-2); border:1px solid var(--g-border); }
.auth-demo-hook__badge { font-size:.85rem; text-transform:none; letter-spacing:0; color:var(--g-text-soft); }
.auth-demo-hook__btn { min-height:46px; font-size:.9rem; padding:11px; background:transparent; color:var(--g-primary); border:1px solid var(--g-primary); box-shadow:none; }
.auth-demo-hook__btn:hover { background:var(--g-primary-soft); box-shadow:none; transform:none; }
.auth__demo-caption { font-size:.78rem; color:var(--g-text-soft); text-align:center; }
.auth__link:focus-visible,.auth__header-logo:focus-visible { outline:3px solid var(--g-primary); outline-offset:3px; }
@media(min-width:1800px) { .auth__form-box { max-width:540px; padding:44px; } .auth__overview { max-width:720px; } .auth-vista { max-width:620px; } }
@media(max-width:1150px) and (min-width:881px) { .auth__hero { padding:32px 28px; } .auth-vista__aviso--factura { right:-8px; } .auth__content { padding:24px; } .auth__form-box { padding:28px; } }
@media(max-height:700px) and (min-width:881px) { .auth-rubros { display:none; } }
@media(max-width:880px) { .auth { grid-template-columns:minmax(0,1fr); height:auto; min-height:100dvh; overflow:visible; } .auth__hero { display:none; } .auth__content { height:auto; min-height:100dvh; padding:72px 20px 28px; overflow:visible; } .auth__form-box { max-width:460px; padding:32px; } }
@media(max-width:440px) { .auth__content { padding:72px 16px 24px; } .auth__form-box { border:0; box-shadow:none; padding:20px 8px; background:transparent; } .auth__header-logo { margin-bottom:24px; } .auth__header-logo img:first-child { height:60px; } .auth__header-logo img:last-child { height:36px; } .auth__h { font-size:1.6rem; } }

/* Demo: mismos campos y tarjetas que el acceso. */
/* Los tipos de negocio en dos filas para que el paso quepa sin desplazar. */
.demo-stepper-header{gap:12px}
.demo-stepper-title{font-size:.72rem}
.demo-badge-guarantee{border-radius:12px;padding:10px;line-height:1.5}

/* Selección de empresa compacta, con búsqueda y acceso confirmado. */
.auth-company-choice{display:grid;gap:20px;margin:24px 0 20px;min-width:0;text-align:left}
.auth-company-choice>.g-btn{min-height:52px}
.auth-company-choice>.g-search-select{margin-bottom:0}

/* Tipo de negocio en la demo: el elegido completo y «Cambiar» (la lista va en una ventana, por grupos). */
.demo-tipo{display:flex;align-items:center;gap:12px;width:100%;margin-top:6px;padding:10px 12px;border:1.5px solid var(--g-border);border-radius:14px;background:var(--g-surface);color:var(--g-text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.demo-tipo:hover{border-color:rgba(var(--g-primary-rgb),.5)}
.demo-tipo:focus-visible{outline:3px solid var(--g-primary);outline-offset:2px}
.demo-tipo__ico{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;background:var(--g-success-soft);color:#15803d}
.demo-tipo__ico .material-symbols-rounded{font-size:24px}
.demo-tipo__txt{display:grid;gap:2px;flex:1;min-width:0;line-height:1.3}
.demo-tipo__txt strong{font-size:.92rem}
.demo-tipo__txt small{color:var(--g-text-muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demo-tipo__cambiar{display:inline-flex;align-items:center;gap:2px;flex:none;padding:6px 8px 6px 12px;border-radius:999px;background:var(--g-primary-soft);color:var(--g-primary-text,var(--g-primary));font-size:.8rem;font-weight:700}
.demo-tipo__cambiar .material-symbols-rounded{font-size:18px}
.demo-tipos__ayuda{margin:0 0 6px;color:var(--g-text-soft);font-size:.86rem;line-height:1.45}
.demo-tipos__grupo{margin:16px 0 8px;color:var(--g-text-muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.demo-tipos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:8px}
.demo-tipos__opcion{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px;border:1.5px solid var(--g-border);border-radius:14px;background:var(--g-surface);color:var(--g-text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}
.demo-tipos__opcion:hover{border-color:rgba(var(--g-primary-rgb),.5);transform:translateY(-1px)}
.demo-tipos__opcion.is-active{border-color:#15803d;background:var(--g-success-soft)}
.demo-tipos__ico{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:11px;background:var(--g-surface-2);color:var(--g-primary)}
.demo-tipos__opcion.is-active .demo-tipos__ico{background:#fff;color:#15803d}
.demo-tipos__ico .material-symbols-rounded{font-size:22px}
.demo-tipos__txt{display:grid;gap:3px;min-width:0;line-height:1.3;padding-right:18px}
.demo-tipos__txt strong{font-size:.88rem}
.demo-tipos__txt small{color:var(--g-text-muted);font-size:.76rem}
.demo-tipos__check{position:absolute;top:10px;right:10px;color:#15803d;font-size:20px}
@media(max-width:440px){.demo-tipo__txt small{display:none}.demo-tipo__cambiar{padding:6px 8px}}
@media(max-width:520px){.demo-tipos{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.demo-tipos__opcion{flex-direction:column;align-items:flex-start;gap:6px;padding:10px}.demo-tipos__txt{padding-right:14px}.demo-tipos__txt strong{font-size:.8rem}.demo-tipos__txt small{display:none}.demo-tipos__ico{width:32px;height:32px}.demo-tipos__check{top:8px;right:8px;font-size:18px}.demo-tipos__grupo{margin:12px 0 6px}}
