:root{
  --bg:#09111f;
  --bg-soft:#0f1830;
  --surface:rgba(255,255,255,0.06);
  --surface-2:rgba(255,255,255,0.04);
  --border:rgba(255,255,255,0.12);
  --text:#eef3ff;
  --muted:#adc0e6;
  --primary:#7c9cff;
  --primary-2:#4ee3c1;
  --shadow:0 30px 80px rgba(0,0,0,0.35);
  --radius:24px;
  --container:min(1340px, calc(100% - 2rem));
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:radial-gradient(circle at top left, rgba(124,156,255,0.18), transparent 30%),linear-gradient(180deg,#09111f 0%,#0a1323 100%);color:var(--text);font-family:"Inter",system-ui,sans-serif;min-height:100%}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
.hidden{display:none !important}
.container{width:var(--container);margin-inline:auto}

.site-header{position:sticky;top:0;z-index:30;background:rgba(9,17,31,0.78);backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}
.nav-shell{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;min-height:84px}
.brand{display:flex;align-items:center;gap:0.9rem}
.brand-mark{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;font-weight:800;font-size:1.6rem;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:var(--shadow)}
.brand strong{display:block;font-size:1.15rem}
.brand small{display:block;color:var(--muted)}
.site-nav{display:flex;justify-content:center;gap:0.5rem;flex-wrap:wrap}
.site-nav a{padding:0.8rem 1rem;border-radius:14px;color:var(--muted)}
.site-nav a.active,.site-nav a:hover{background:var(--surface);color:var(--text)}
.nav-actions{display:flex;align-items:center;gap:0.75rem;justify-content:flex-end}
.user-chip{padding:0.65rem 0.85rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:0.9rem;color:var(--muted)}

.auth-shell{padding:3rem 0 4rem}
.auth-hero{display:grid;grid-template-columns:1fr minmax(360px,480px);gap:2rem;align-items:start}
.auth-copy h1,.vault-hero h1{font-size:clamp(2.4rem, 4vw, 4.4rem);line-height:1.02;margin:0.5rem 0 1rem;letter-spacing:-0.05em}
.auth-copy p,.vault-hero p{color:var(--muted);font-size:1.05rem;max-width:60ch}
.eyebrow{display:inline-flex;align-items:center;gap:0.5rem;color:#c7d5ff;background:rgba(124,156,255,0.12);border:1px solid rgba(124,156,255,0.2);padding:0.55rem 0.9rem;border-radius:999px;font-size:0.82rem;text-transform:uppercase;letter-spacing:0.08em}
.feature-list{display:flex;flex-wrap:wrap;gap:0.7rem;margin-top:1.5rem}
.feature-pill{padding:0.7rem 0.95rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--muted)}
.compact-list{justify-content:flex-end}

.auth-card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.auth-card{padding:1.2rem}
.tab-row{display:grid;grid-template-columns:1fr 1fr;gap:0.6rem;margin-bottom:1rem}
.tab-button{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);padding:0.9rem 1rem;border-radius:18px;cursor:pointer}
.tab-button.active{background:linear-gradient(135deg, rgba(124,156,255,0.18), rgba(78,227,193,0.12));color:var(--text);border-color:rgba(124,156,255,0.35)}
.tab-panel{display:none}
.tab-panel.active{
  display:block;
}
.auth-form{
  display:grid;
  gap:0.9rem;
  padding-bottom: 20px;
}
.input-wrap{display:grid;gap:0.45rem}
.input-wrap label{font-size:0.92rem;color:var(--muted)}
.input-wrap input,.input-wrap textarea{width:100%;border:1px solid var(--border);background:rgba(255,255,255,0.04);color:var(--text);border-radius:18px;padding:0.95rem 1rem;outline:none}
.input-wrap input:focus,.input-wrap textarea:focus{border-color:rgba(124,156,255,0.5);box-shadow:0 0 0 4px rgba(124,156,255,0.12)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;border-radius:18px;border:1px solid var(--border);padding:0.95rem 1.15rem;transition:0.25s ease;min-height:52px;cursor:pointer;color:var(--text);background:var(--surface)}
.btn:hover{transform:translateY(-2px)}
.btn-primary{
  border:none;
  color:white;
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  box-shadow:var(--shadow);
  padding-bottom: 10px;
}
.btn-ghost{background:var(--surface);color:var(--text)}
.btn-google{
  background:#fff;
  color:#111827;
}
.full{width:100%}
.small-btn{min-height:42px;padding:0.75rem 0.95rem;border-radius:14px}
.divider{display:flex;align-items:center;gap:0.7rem;margin:1rem 0;color:var(--muted)}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--border)}
.text-button{background:none;border:none;color:#c7d5ff;cursor:pointer;padding:0}
.utility-row{display:flex;justify-content:flex-end}
.status-box,.help-box{margin-top:1rem;padding:0.95rem 1rem;border-radius:18px;border:1px solid var(--border);background:rgba(255,255,255,0.04);color:var(--muted)}
.small-note{margin-top:0.9rem}
.panel h2{margin-top:0}

.vault-shell{padding:2.5rem 0 4rem}
.vault-hero{display:flex;justify-content:space-between;gap:2rem;align-items:flex-end;margin-bottom:2rem}
.vault-grid{display:grid;grid-template-columns:minmax(320px,420px) 1fr;gap:1.2rem;align-items:start}
.panel{padding:1.2rem}
.button-row{display:flex;gap:0.7rem;flex-wrap:wrap}
.private-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:0.9rem}
.private-card{overflow:hidden;border-radius:18px;border:1px solid var(--border);background:rgba(255,255,255,0.04)}
.private-thumb{display:block;width:100%;height:auto;aspect-ratio:auto}
.private-meta{padding:0.8rem}
.private-meta h3{margin:0 0 0.35rem;font-size:1rem}
.private-meta p{margin:0;color:var(--muted);font-size:0.88rem}

.vault-security{
  margin-top: 1.25rem;
}

.security-actions{
  margin-top: 1rem;
}

@media (max-width:980px){
  .auth-hero,.vault-grid,.nav-shell{grid-template-columns:1fr}
  .nav-shell{display:grid}
  .site-nav{justify-content:flex-start}
  .nav-actions{justify-content:flex-start}
  .compact-list{justify-content:flex-start}
  .vault-hero{flex-direction:column;align-items:flex-start}
}
