/* Niccodome auth screen.
 *
 * Lifted out of an inline <style> in page-login.php's wp_head callback. The
 * SPA router builds its navigation payload from <main id="ncd-main"> plus the
 * list of *enqueued* stylesheets — an inline block in the document head is not
 * either of those, so it was discarded on every in-site navigation to /login/
 * and the page arrived with no styling at all. A hard refresh rendered the
 * full document and looked right, which is exactly the "only after refresh"
 * symptom. As a real file with an ncd- handle it now travels with the payload,
 * and the browser gets to cache it instead of re-downloading it inline on
 * every visit.
 */

/* Niccodome auth — modern refresh. Class names, markup, field names, nonces
   and every handler are untouched; this is presentation only. */
/* nc-login-page is a BODY class. It may only carry a background — giving the
   body display:flex turns the header, main and footer into flex columns and
   destroys the page. The layout belongs on .nc-auth, the page's own wrapper. */
.nc-login-page{background:radial-gradient(at 0% 0%,rgba(2,132,199,.09) 0,transparent 50%),radial-gradient(at 100% 100%,rgba(0,180,216,.09) 0,transparent 50%),radial-gradient(at 50% 50%,rgba(240,249,255,.6) 0,transparent 100%),#f8fafd}
.dark .nc-login-page{background:radial-gradient(at 0% 0%,rgba(2,132,199,.14) 0,transparent 50%),radial-gradient(at 100% 100%,rgba(0,180,216,.1) 0,transparent 50%),#0f111a}
.nc-auth{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:2.5rem 1rem}
.nc-inner{width:100%;max-width:64rem;margin:0 auto;display:grid;gap:1.5rem;align-items:stretch}
@media(min-width:1024px){.nc-inner{grid-template-columns:5fr 7fr;gap:2rem}}
.nc-brand{position:relative;overflow:hidden;border-radius:1.5rem;padding:1.75rem;color:#fff;display:flex;flex-direction:column;justify-content:space-between;
background:linear-gradient(135deg,#0c1b2e,#0f243d 55%,#122e4d);border:1px solid rgba(51,65,85,.5);box-shadow:0 24px 50px -24px rgba(2,23,54,.7)}
@media(min-width:640px){.nc-brand{padding:2.5rem}}
@media(max-width:1023px){.nc-brand{display:none}}
.nc-brand__glow{position:absolute;inset:0;pointer-events:none;
background:radial-gradient(circle at 30% 20%,rgba(14,165,233,.18),transparent 60%),radial-gradient(circle at 90% 10%,rgba(56,189,248,.22),transparent 55%)}
.nc-brand__inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:1.5rem}
.nc-brand__title{font-size:1.75rem;font-weight:900;letter-spacing:-.02em;line-height:1.1;margin:0}
@media(min-width:640px){.nc-brand__title{font-size:2rem}}
.nc-brand__copy{font-size:.8125rem;line-height:1.7;color:#cbd5e1;margin:0}
.nc-brand__list{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}
.nc-brand__list li{display:flex;align-items:center;gap:.65rem;font-size:.8125rem;color:#e2e8f0}
.nc-brand__list li::before{content:"";flex:none;width:1.4rem;height:1.4rem;border-radius:9999px;background:rgba(56,189,248,.18);border:1px solid rgba(125,211,252,.45)}
.nc-panel{display:flex;align-items:center}
.nc-card{width:100%;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
border:1px solid #e2e8f0;border-radius:1.5rem;padding:1.75rem;box-shadow:0 24px 50px -28px rgba(15,23,42,.35)}
.dark .nc-card{background:rgba(22,25,37,.96);border-color:#2a2e3f}
@media(min-width:640px){.nc-card{padding:2.5rem}}
.nc-title{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;color:#0f172a;margin:0 0 .35rem}
.dark .nc-title{color:#fff}
.nc-sub{font-size:.8125rem;color:#64748b;margin:0 0 1.5rem}
.nc-tabs{margin:0 0 1.5rem}
.nc-tabs__pill{display:inline-flex;padding:.25rem;border-radius:9999px;background:#f1f5f9;border:1px solid #e2e8f0}
.dark .nc-tabs__pill{background:#1e293b;border-color:#334155}
.nc-tab{padding:.45rem 1.15rem;border-radius:9999px;font-size:.75rem;font-weight:600;color:#64748b;background:none;border:0;cursor:pointer;transition:all .15s}
.nc-tab:hover{color:#0f172a}
.dark .nc-tab:hover{color:#fff}
.nc-tab.is-active,.nc-tab[aria-selected="true"]{background:#fff;color:#0f172a;font-weight:700;box-shadow:0 1px 3px rgba(15,23,42,.12)}
.dark .nc-tab.is-active,.dark .nc-tab[aria-selected="true"]{background:#0f172a;color:#fff}
.nc-form{display:grid;gap:1rem}
/* [hidden] must win. .nc-form{display:grid} was overriding the browser's own
   [hidden]{display:none}, which is why Sign in and Create account rendered
   stacked instead of as tabs. */
.nc-login-page [hidden],.nc-auth [hidden],[data-panel][hidden]{display:none!important}

.nc-field{display:grid;gap:.4rem}
.nc-field label,.nc-caps{font-size:.75rem;font-weight:700;color:#334155}
.dark .nc-field label,.dark .nc-caps{color:#cbd5e1}
.nc-input-wrap{position:relative;display:flex;align-items:center}
.nc-field input,.nc-code-input{width:100%;padding:.9rem 1rem;border-radius:1rem;background:#f8fafc;border:1px solid #e2e8f0;
font-size:.875rem;font-weight:500;color:#0f172a;transition:background-color .2s,border-color .2s,box-shadow .2s}
.dark .nc-field input,.dark .nc-code-input{background:#0f172a;border-color:#334155;color:#f1f5f9}
.nc-field input:focus,.nc-code-input:focus{outline:none;background:#fff;border-color:#0284c7;box-shadow:0 0 0 4px rgba(2,132,199,.13)}
.dark .nc-field input:focus{background:#0b1220}
.nc-field input::placeholder{color:#94a3b8}
.nc-eye{position:absolute;right:.5rem;display:grid;place-items:center;width:2.25rem;height:2.25rem;border:0;background:none;color:#94a3b8;cursor:pointer;border-radius:9999px}
.nc-eye:hover{color:#475569;background:#f1f5f9}
.dark .nc-eye:hover{background:#1e293b}
.nc-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.75rem}
.nc-check{display:inline-flex;align-items:center;gap:.55rem;font-size:.75rem;font-weight:500;color:#475569;cursor:pointer}
.dark .nc-check{color:#cbd5e1}
.nc-check--block{align-items:flex-start;line-height:1.5}
.nc-check input{width:1rem;height:1rem;accent-color:#0284c7}
.nc-link,.nc-forgot-email,.nc-resend{color:#0284c7;font-weight:600;text-decoration:none;font-size:.75rem;background:none;border:0;cursor:pointer;padding:0}
.nc-link:hover,.nc-forgot-email:hover,.nc-resend:hover{text-decoration:underline}
.nc-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.95rem 1.5rem;border-radius:1rem;
background:#0f172a;color:#fff;font-size:.8125rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border:0;cursor:pointer;
box-shadow:0 12px 24px -12px rgba(15,23,42,.6);transition:background-color .2s,transform .1s}
.nc-btn:hover{background:#1e293b}
.nc-btn:active{transform:scale(.99)}
.dark .nc-btn{background:#fff;color:#0f172a}
.nc-hint,.nc-legal,.nc-foot{font-size:.6875rem;color:#94a3b8;line-height:1.6}
.nc-foot{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #f1f5f9;text-align:center}
.dark .nc-foot{border-top-color:#1e293b}
.nc-alerts{display:grid;gap:.6rem;margin:0 0 1.25rem}
.nc-alert{padding:.85rem 1rem;border-radius:1rem;font-size:.8125rem;line-height:1.55;border:1px solid}
.nc-alert--err{background:#fff1f2;border-color:#fecdd3;color:#9f1239}
.nc-alert--ok{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.nc-meter{height:.35rem;border-radius:9999px;background:#e2e8f0;overflow:hidden;margin-top:.4rem}
.nc-meter>span{display:block;height:100%;background:#0284c7;transition:width .25s}
.nc-back{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;color:#64748b;text-decoration:none}
.nc-back:hover{color:#0f172a}
.nc-pot,.nc-sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.nc-code{display:flex;gap:.5rem;justify-content:center}
.nc-opt{display:grid;gap:.6rem}
