:root{
  --gold-1:#5a2b73;
  --gold-2:#7b42a1;
  --gold-3:#45205a;
  --ink:#2c1438;
  --line:rgba(90,43,115,.35);
  --panel:linear-gradient(180deg, rgba(247,238,223,.97), rgba(238,221,193,.93));
  --panel-strong:linear-gradient(180deg, rgba(252,245,234,.9), rgba(245,231,209,.82));
  --panel-soft:linear-gradient(180deg, rgba(252,245,234,.84), rgba(245,231,209,.66));
  --bg:#e3ccaa;
  --bg-grad-1: radial-gradient(880px 520px at 50% -12%, rgba(248,218,166,.42), transparent 60%);
  --bg-grad-2: radial-gradient(760px 520px at 18% 12%, rgba(210,170,114,.26), transparent 58%);
  --bg-grad-3: radial-gradient(900px 620px at 85% 86%, rgba(158,117,66,.16), transparent 60%);
  --bg-grad-4: linear-gradient(180deg, #e3ccaa 0%, #d8b88a 48%, #cca36f 100%);
  --public-shadow:0 18px 42px rgba(0,0,0,.10);
  --public-shadow-soft:0 10px 24px rgba(0,0,0,.12);
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}

body.oo-public-page{
  background:var(--bg-grad-1),var(--bg-grad-2),var(--bg-grad-3),var(--bg-grad-4);
  color:var(--ink);
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

.oo-page-wrap{
  width:min(100% - 32px, 1120px);
  margin:0 auto;
}

.oo-auth-page{
  min-height:100vh;
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:22px 20px;
}

.oo-page-title{
  margin:0 0 8px;
  color:var(--gold-1);
  text-align:center;
  font-family:Cinzel,serif;
  font-size:clamp(38px,5.8vw,56px);
  line-height:1.05;
}

.oo-page-subtitle{
  margin:0 auto 18px;
  max-width:720px;
  color:var(--gold-2);
  text-align:center;
  font-size:clamp(18px,2.7vw,22px);
  line-height:1.4;
}

.oo-card-grid{
  display:grid;
  gap:16px;
}

.oo-card-grid.oo-grid-3{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.oo-card-grid.oo-grid-2{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.oo-page-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
}

.oo-card-title{
  margin:0 0 8px;
  color:var(--gold-1);
  font-size:clamp(26px,3vw,30px);
  line-height:1.15;
}

.oo-panel-surface{
  background:var(--panel-strong);
  border:1px solid rgba(90,43,115,.22);
  box-shadow:var(--public-shadow);
  backdrop-filter:blur(6px);
}

.oo-panel-soft{
  background:var(--panel-soft);
  border:1px solid rgba(90,43,115,.22);
  box-shadow:0 14px 28px rgba(0,0,0,.08);
  backdrop-filter:blur(4px);
}

.oo-auth-card{
  background:var(--panel-strong);
  border:1px solid rgba(90,43,115,.22);
  border-radius:22px;
  box-shadow:0 20px 44px rgba(0,0,0,.12);
  backdrop-filter:blur(6px);
  overflow:visible;
}

.oo-muted-note{
  color:var(--gold-2);
  font-size:15px;
  line-height:1.45;
}

.oo-stack-sm > * + *{
  margin-top:8px;
}

.oo-heading-cinzel{
  font-family:Cinzel,serif;
  letter-spacing:.6px;
}

.oo-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:12px 18px;
  border-radius:14px;
  border:1.5px solid rgba(90,43,115,.55);
  background:rgba(255,250,242,.28);
  color:var(--gold-1);
  font-family:Georgia,"Times New Roman",serif;
  font-size:18px;
  font-weight:700;
  text-decoration:none;
  text-align:center;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(0,0,0,.06);
  transition:border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.oo-btn:hover{
  border-color:var(--gold-2);
  background:rgba(123,66,161,.08);
  color:var(--gold-2);
  transform:translateY(-1px);
}

.oo-btn:disabled,
.oo-btn[aria-disabled="true"]{
  opacity:.58;
  cursor:not-allowed;
  transform:none;
}

.oo-btn-primary{
  background:linear-gradient(180deg,#844ab0,#5a2b73);
  border-color:#45205a;
  color:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.14);
}

.oo-btn-primary:hover{
  background:linear-gradient(180deg,#8b4fb8,#603078);
  color:#fff;
}

.oo-btn-secondary{
  background:transparent;
}

.oo-form-label{
  display:block;
  margin:8px 0 6px;
  font-weight:700;
  color:var(--gold-1);
}

.oo-input{
  width:100%;
  padding:14px 16px;
  border-radius:14px;
  border:1px solid rgba(90,43,115,.42);
  background:rgba(255,250,242,.26);
  color:var(--ink);
  font-size:16px;
  outline:none;
}

.oo-input:focus{
  border-color:var(--gold-2);
  box-shadow:0 0 0 3px rgba(123,66,161,.18);
}

.oo-helper{
  margin:6px 0 0;
  color:var(--gold-1);
  font-size:15px;
  line-height:1.45;
}

.oo-status{
  margin:0 0 12px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(90,43,115,.22);
  background:rgba(250,240,223,.82);
  color:var(--gold-1);
  font-weight:700;
  box-shadow:0 10px 20px rgba(0,0,0,.06);
}

.oo-status[hidden]{
  display:none!important;
}

.oo-status-success{
  background:rgba(233,248,239,.92);
  border-color:rgba(54,120,78,.28);
  color:#2d6a43;
}

.oo-status-error{
  background:rgba(255,239,242,.92);
  border-color:rgba(164,48,72,.24);
  color:#8e2f4a;
}

.oo-status-info{
  background:rgba(255,244,228,.9);
  border-color:rgba(90,43,115,.22);
  color:var(--gold-1);
}

.oo-corner-nav{
  position:fixed;
  top:18px;
  left:18px;
  z-index:20;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.oo-corner-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:10px 16px;
  border-radius:14px;
  border:1.5px solid rgba(90,43,115,.52);
  background:rgba(247,238,223,.92);
  color:var(--gold-1);
  font-family:Georgia,"Times New Roman",serif;
  font-size:16px;
  text-decoration:none;
  font-weight:700;
  box-shadow:var(--public-shadow-soft);
  white-space:nowrap;
}

.oo-corner-link:hover{
  border-color:var(--gold-2);
  background:rgba(123,66,161,.08);
  color:var(--gold-2);
}

@media (max-width:720px){
  .oo-page-wrap{width:min(100% - 24px, 1120px)}
  .oo-page-subtitle{margin-bottom:14px}
  .oo-card-grid.oo-grid-3,
  .oo-card-grid.oo-grid-2{grid-template-columns:1fr}
  .oo-corner-nav{top:12px;left:12px;gap:8px}
  .oo-corner-link{min-height:42px;padding:8px 12px}
  .oo-btn{min-height:44px;padding:11px 14px;font-size:17px}
  .oo-input{padding:12px 14px}
  .oo-helper{font-size:14px}
}
