/* public.css — Personality Mosaic public marketing site.
 * Dark deep-violet/blue palette, carried from the under-development landing.
 * Used by the pre-account (public) pages via web/layout.php → render_public(). */

:root{
  --pm-bg-0:#070612;
  --pm-bg-1:#120e2e;
  --pm-bg-2:#0c1640;
  --pm-ink:#e9eaf2;
  --pm-violet:#b9a3ff;
  --pm-blue:#7dd3fc;
  --pm-silver:#c3c7d4;
  --pm-line:rgba(185,163,255,.16);
  --pm-panel:rgba(255,255,255,.035);
  --pm-panel-line:rgba(185,163,255,.14);
}
*{box-sizing:border-box}
html{height:100%}
body{
  margin:0;
  font:16px/1.6 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Inter,sans-serif;
  color:var(--pm-ink);
  background:
    radial-gradient(1100px 700px at 18% -8%, rgba(125,211,252,.14), transparent 60%),
    radial-gradient(1000px 800px at 92% 8%, rgba(185,163,255,.18), transparent 58%),
    linear-gradient(160deg, var(--pm-bg-1) 0%, var(--pm-bg-0) 42%, var(--pm-bg-2) 100%);
  background-attachment:fixed;
  min-height:100%;
  display:flex;
  flex-direction:column;
}
a{color:inherit}

/* ── header ─────────────────────────────────────────────── */
.pm-header{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;gap:1rem;
  padding:.85rem clamp(1rem,4vw,2.5rem);
  background:rgba(9,8,22,.72);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--pm-line);
}
.pm-brand{
  display:flex;align-items:center;text-decoration:none;white-space:nowrap;
}
.pm-brand .pm-logo-mark{flex-shrink:0}
.pm-brand .pm-logo-lockup{display:block;flex-shrink:0}
.pm-nav{display:flex;gap:.35rem;align-items:center;margin-left:auto;flex-wrap:wrap}
.pm-nav a{
  text-decoration:none;color:var(--pm-silver);
  font-size:.92rem;padding:.4rem .7rem;border-radius:8px;
  transition:background .15s,color .15s;
}
.pm-nav a:hover{color:var(--pm-ink);background:rgba(255,255,255,.05)}
.pm-nav a.active{color:var(--pm-ink);background:rgba(185,163,255,.12)}
.pm-nav .sep{width:1px;height:20px;background:var(--pm-line);margin:0 .35rem}
.pm-btn{
  text-decoration:none;font-size:.9rem;font-weight:600;
  padding:.45rem .95rem;border-radius:9px;white-space:nowrap;
}
.pm-btn.ghost{color:var(--pm-ink);border:1px solid var(--pm-line)}
.pm-btn.ghost:hover{background:rgba(255,255,255,.05)}
.pm-btn.solid{
  color:#0b0a1e;
  background:linear-gradient(100deg,var(--pm-violet),var(--pm-blue));
}
.pm-btn.solid:hover{filter:brightness(1.08)}

/* mobile nav toggle */
.pm-menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--pm-line);
  color:var(--pm-ink);border-radius:8px;padding:.4rem .6rem;cursor:pointer}
@media (max-width:820px){
  .pm-nav{
    order:3;width:100%;margin-left:0;flex-direction:column;align-items:stretch;
    gap:.15rem;padding-top:.6rem;display:none;
  }
  .pm-nav.open{display:flex}
  .pm-nav .sep{display:none}
  .pm-menu-btn{display:inline-flex}
  .pm-header{flex-wrap:wrap}
}

/* signed-in app nav: sections sit next to the brand, the account cluster
   (Upload / credits / Admin / Log out) is pushed to the right by the spacer.
   On mobile it inherits the base .pm-nav column collapse (hamburger). */
.pm-nav.app-nav{flex:1;margin-left:1.2rem}
.pm-nav.app-nav .sep{margin-left:auto;width:0;height:0;background:none;margin-right:0}
@media (max-width:820px){
  .pm-nav.app-nav{flex:none;margin-left:0}
}

/* ── main ───────────────────────────────────────────────── */
.pm-main{flex:1;width:100%;max-width:64rem;margin:0 auto;padding:clamp(1.5rem,5vw,3.5rem) clamp(1rem,4vw,2rem)}
.pm-back{display:inline-block;color:var(--pm-silver);text-decoration:none;font-size:.9rem;margin-bottom:1rem}
.pm-back:hover{color:var(--pm-ink)}
.pm-eyebrow{
  display:inline-block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--pm-violet);border:1px solid var(--pm-line);
  background:rgba(185,163,255,.06);border-radius:999px;padding:.3rem .8rem;margin-bottom:1.1rem;
}
.pm-main h1{
  margin:0 0 .6rem;font-size:clamp(1.9rem,5vw,2.9rem);font-weight:700;
  letter-spacing:-.015em;line-height:1.18;padding-bottom:.08em;
  background:linear-gradient(100deg,var(--pm-violet),var(--pm-silver) 45%,var(--pm-blue));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.pm-lede{color:var(--pm-silver);font-size:clamp(1.02rem,2.2vw,1.18rem);max-width:44rem;margin:0 0 2rem}
.pm-main h2{font-size:1.35rem;margin:2.2rem 0 .8rem;color:var(--pm-ink)}
.pm-main p{color:rgba(233,234,242,.82);max-width:46rem}
.pm-hero-lockup{margin-bottom:1.6rem}
.pm-hero-lockup img{height:157px;width:auto;max-width:100%}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.pm-points{list-style:none;margin:1.5rem 0 0;padding:0;color:rgba(233,234,242,.82);font-size:1rem;max-width:44rem}
.pm-points li{position:relative;margin:.5rem 0;padding-left:1.4rem}
.pm-points li::before{content:"◆";position:absolute;left:0;top:.05em;font-size:.72em;color:var(--pm-violet)}

/* placeholder panel */
.pm-panel{
  background:var(--pm-panel);border:1px solid var(--pm-panel-line);
  border-radius:14px;padding:1.4rem 1.5rem;margin:1rem 0;
}
.pm-panel .stub{
  display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;
  color:var(--pm-violet);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.7rem;
}
.pm-panel .stub::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pm-violet)}
.pm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:1.2rem 0}
.pm-card{
  background:var(--pm-panel);border:1px solid var(--pm-panel-line);
  border-radius:14px;padding:1.2rem 1.3rem;
}
.pm-card h3{margin:0 0 .4rem;font-size:1.05rem;color:var(--pm-ink)}
.pm-card p{margin:0;font-size:.92rem;color:rgba(233,234,242,.72)}

/* simple auth form scaffold */
.pm-form{max-width:24rem;background:var(--pm-panel);border:1px solid var(--pm-panel-line);
  border-radius:16px;padding:1.6rem;margin-top:1rem}
.pm-field{margin-bottom:1rem}
.pm-field label{display:block;font-size:.85rem;color:var(--pm-silver);margin-bottom:.35rem}
.pm-field input{width:100%;padding:.7rem .8rem;border-radius:9px;border:1px solid var(--pm-line);
  background:rgba(0,0,0,.25);color:var(--pm-ink);font-size:.95rem}
.pm-field input:focus{outline:none;border-color:var(--pm-violet)}
.pm-form .pm-btn.solid{display:block;text-align:center;width:100%;margin-top:.4rem}
.pm-form .pm-alt{font-size:.85rem;color:var(--pm-silver);margin-top:1rem;text-align:center}
.pm-form .pm-alt a{color:var(--pm-blue);text-decoration:none}
/* sign-in feedback */
.pm-formerr,.pm-formok{max-width:24rem;border-radius:10px;padding:.6rem .8rem;
  font-size:.88rem;margin:.2rem 0 0}
.pm-formerr{background:rgba(220,80,80,.12);border:1px solid rgba(220,80,80,.4);color:#f4b4b4}
.pm-formok{background:rgba(80,200,140,.12);border:1px solid rgba(80,200,140,.4);color:#a6e6c6}

/* pricing */
.pm-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:1.4rem 0}
.pm-tier{background:var(--pm-panel);border:1px solid var(--pm-panel-line);border-radius:16px;padding:1.5rem}
.pm-tier.feature{border-color:var(--pm-violet);box-shadow:0 0 0 1px rgba(185,163,255,.25)}
.pm-tier .price{font-size:1.8rem;font-weight:700;color:var(--pm-ink);margin:.3rem 0}
.pm-tier .price small{font-size:.85rem;color:var(--pm-silver);font-weight:400}
.pm-tier ul{padding-left:1.1rem;margin:.9rem 0 0;color:rgba(233,234,242,.78);font-size:.9rem}

/* ── footer ─────────────────────────────────────────────── */
.pm-footer{
  border-top:1px solid var(--pm-line);
  padding:2rem clamp(1rem,4vw,2.5rem);
  margin-top:2rem;
  display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;
  color:rgba(195,199,212,.6);font-size:.85rem;
}
.pm-footer .links{display:flex;flex-wrap:wrap;gap:.2rem 1rem;margin-left:auto}
.pm-footer a{color:rgba(195,199,212,.75);text-decoration:none}
.pm-footer a:hover{color:var(--pm-ink)}
.pm-note{color:rgba(195,199,212,.55);font-size:.82rem}
