.auth-page::before {
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    opacity:.16;
    background-image:
        linear-gradient(rgba(34, 103, 145, .09) 1px, transparent 1px),
        linear-gradient(90deg, rgba(34, 103, 145, .09) 1px, transparent 1px);
    background-size:34px 34px;
    mask-image:linear-gradient(to bottom, rgba(0,0,0,.45), transparent 72%);
}
.auth-hero { text-align:center; margin:12px 0 30px; }
.auth-hero .tec-logo { margin:0 auto 14px; width:220px; }
.auth-panel { padding:20px; }
.auth-field { display:block; margin-top:14px; }
.auth-field span { display:block; color:var(--tec-muted); font-size:.78rem; margin:0 0 7px 4px; letter-spacing:.08em; text-transform:uppercase; }
.auth-input { width:100%; min-height:54px; border-radius:14px; border:1px solid var(--tec-line); background:#06131f; color:var(--tec-text); padding:0 15px; outline:none; transition:.18s ease; }
.auth-input:focus { border-color:rgba(22,191,244,.65); box-shadow:0 0 0 3px rgba(22,191,244,.08); }
.auth-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:14px 2px 18px; color:var(--tec-muted); font-size:.9rem; }
.auth-check { display:flex; align-items:center; gap:8px; }
.auth-divider { display:flex; align-items:center; gap:12px; color:var(--tec-muted-2); margin:20px 0; font-size:.78rem; }
.auth-divider::before, .auth-divider::after { content:""; height:1px; background:var(--tec-line); flex:1; }
.auth-register { text-align:center; }
.auth-register p { color:var(--tec-muted); margin:0 0 10px; }
.auth-security { display:flex; justify-content:center; gap:8px; color:var(--tec-muted-2); font-size:.78rem; margin-top:20px; text-align:center; }
.stepper { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:24px 0 30px; }
.step { position:relative; text-align:center; color:var(--tec-muted-2); font-size:.75rem; }
.step:not(:last-child)::after { content:""; position:absolute; height:1px; top:14px; left:58%; right:-42%; background:var(--tec-line); }
.step-dot { width:30px; height:30px; border-radius:50%; margin:0 auto 7px; border:1px solid var(--tec-line); background:var(--tec-bg-soft); display:grid; place-items:center; font-weight:800; position:relative; z-index:2; }
.step.active { color:var(--tec-gold-light); }
.step.active .step-dot { background:var(--tec-gold); color:#09131d; border-color:var(--tec-gold-light); box-shadow:0 0 20px rgba(214,166,59,.2); }
.product-list { display:grid; gap:10px; }
.product-card { position:relative; padding:15px 16px; display:grid; grid-template-columns:44px minmax(0,1fr) auto 20px; gap:12px; align-items:center; cursor:pointer; box-shadow:none; transition:.16s ease; }
.product-card:hover { transform:translateY(-1px); border-color:rgba(132,186,223,.34); }
.product-card.selected { border-color:rgba(214,166,59,.66); box-shadow:var(--tec-glow-gold); }
.product-radio { width:20px; height:20px; border-radius:50%; border:1px solid #63809a; position:relative; }
.product-card.selected .product-radio::after { content:""; position:absolute; inset:4px; border-radius:50%; background:var(--tec-gold-light); }
.product-icon { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; font-weight:900; font-size:1.1rem; background:#06131f; color:var(--tec-gold-light); border:1px solid rgba(214,166,59,.14); }
.product-card[data-accent="cyan"] .product-icon { color:var(--tec-cyan); border-color:rgba(22,191,244,.15); }
.product-copy strong { display:block; font-size:1rem; margin-bottom:4px; }
.product-copy small { display:block; color:var(--tec-muted); line-height:1.35; }
.product-price { text-align:right; font-weight:850; white-space:nowrap; }
.legacy-box { margin-top:16px; padding:18px; border:1px solid rgba(214,166,59,.42); background:linear-gradient(135deg, rgba(214,166,59,.08), rgba(8,22,34,.93) 42%); }
.legacy-box h3 { margin:0 0 6px; color:var(--tec-gold-light); }
.legacy-box p { margin:0 0 15px; color:var(--tec-muted); line-height:1.45; }
.legacy-list { display:grid; gap:10px; margin:16px 0 20px; padding:0; list-style:none; }
.legacy-list li { display:flex; gap:10px; align-items:flex-start; color:var(--tec-muted); }
.legacy-list li::before { content:"✓"; color:var(--tec-cyan); font-weight:900; }
.legacy-form { display:grid; gap:12px; }
.choice-helper { margin-top:12px; padding:14px 16px; display:flex; justify-content:space-between; align-items:center; gap:10px; color:var(--tec-muted); font-size:.88rem; }
.choice-helper strong { color:var(--tec-text); }
.register-actions { margin-top:16px; }
@media (max-width: 390px) {
    .product-card { grid-template-columns:38px minmax(0,1fr) 20px; }
    .product-price { grid-column:2; grid-row:2; text-align:left; font-size:.9rem; }
    .product-radio { grid-column:3; grid-row:1 / 3; align-self:center; }
    .product-icon { width:38px; height:38px; }
}

/* 0.6 — Autenticación real */
.tec-alert {
    margin:0 0 14px;
    padding:13px 14px;
    border-radius:14px;
    border:1px solid var(--tec-line);
    background:rgba(8,27,42,.88);
    color:var(--tec-muted);
    font-size:.88rem;
    line-height:1.5;
}
.tec-alert--success { border-color:rgba(32,224,173,.34); color:#a6f3df; background:rgba(32,224,173,.06); }
.tec-alert--error { border-color:rgba(255,101,118,.38); color:#ffb1bb; background:rgba(255,101,118,.06); }
.tec-alert--warning { border-color:rgba(214,166,59,.42); color:#f1cf72; background:rgba(214,166,59,.07); }
.tec-alert--info { border-color:rgba(22,191,244,.38); color:#a9e7fa; background:rgba(22,191,244,.06); }
.tec-error-list { margin:8px 0 0; padding-left:18px; }
.tec-error-list li + li { margin-top:4px; }
.tec-flash-stack { display:grid; gap:8px; margin-bottom:12px; }
.tec-flash-stack .tec-alert { margin:0; }
.auth-message-copy { margin:0; line-height:1.65; }
.auth-field em { color:var(--tec-muted-2); font-style:normal; text-transform:none; letter-spacing:0; font-weight:500; }
.auth-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.auth-consent { display:flex; align-items:flex-start; gap:10px; margin:18px 2px; color:var(--tec-muted); font-size:.83rem; line-height:1.45; }
.auth-consent input { margin-top:3px; flex:0 0 auto; }
.registration-form { margin-top:14px; padding:18px; }
.selected-product-summary { margin-top:18px; padding:15px 16px; display:flex; justify-content:space-between; align-items:center; gap:14px; }
.selected-product-summary span { display:block; color:var(--tec-muted-2); font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; }
.selected-product-summary strong { display:block; margin-top:4px; font-size:1rem; }
.selected-product-summary small { display:block; margin-top:4px; color:var(--tec-muted); }
.tec-back-link { display:block; margin-top:14px; color:var(--tec-cyan); font-size:.84rem; font-weight:700; text-align:center; }
.step.complete { color:var(--tec-success); }
.step.complete .step-dot { border-color:rgba(32,224,173,.52); background:rgba(32,224,173,.12); color:var(--tec-success); }
.product-card {
    width:100%;
    color:var(--tec-text);
    font:inherit;
    text-align:left;
}
button.product-card { appearance:none; -webkit-appearance:none; }
select.auth-input { appearance:auto; }

@media (max-width: 430px) {
    .auth-grid-2 { grid-template-columns:1fr; gap:0; }
    .selected-product-summary { align-items:flex-start; }
}


/* 0.6.1 — Identidad pública y validación de recomendador */
.username-input-wrap { position:relative; }
.username-prefix {
    position:absolute;
    left:15px;
    top:50%;
    transform:translateY(-50%);
    z-index:2;
    color:var(--tec-cyan)!important;
    font-size:1rem!important;
    letter-spacing:0!important;
    text-transform:none!important;
    margin:0!important;
    pointer-events:none;
}
.username-input { padding-left:34px; }
.field-help {
    display:block;
    margin:7px 4px 0;
    color:var(--tec-muted-2);
    font-size:.72rem;
    line-height:1.4;
}
.field-status {
    min-height:19px;
    margin:6px 4px 0;
    color:var(--tec-muted-2);
    font-size:.72rem;
    line-height:1.4;
}
.field-status.is-loading { color:#8edfff; }
.field-status.is-success { color:var(--tec-success); }
.field-status.is-error { color:#ff9fac; }
