:root{
  --violet-deep:#170a2e;
  --violet-mid:#3a1568;
  --blue:#2fd0ff;
  --pink:#ff3fa4;
  --violet:#9b4dff;
  --ink:#f4eeff;
  --ink-dim:#c9b8ea;
  --card:rgba(35,14,63,0.55);
  --card-border:rgba(155,77,255,0.35);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  min-height:100vh;
  font-family:'Trebuchet MS','Segoe UI',sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 20% 15%, rgba(47,208,255,0.18), transparent 45%),
    radial-gradient(circle at 85% 20%, rgba(255,63,164,0.16), transparent 45%),
    radial-gradient(circle at 50% 90%, rgba(155,77,255,0.22), transparent 50%),
    linear-gradient(160deg, #0c0518 0%, #170a2e 45%, #241040 100%);
  overflow-x:hidden;
  position:relative;
}
body::before{
  content:"";
  position:fixed; inset:0;
  background-image:radial-gradient(rgba(255,255,255,0.5) 1px, transparent 1px);
  background-size:60px 60px;
  opacity:.06;
  pointer-events:none;
}

.wrap{max-width:920px;margin:0 auto;padding:32px 20px 80px;position:relative;z-index:1;}

/* ---------- BRANDING ---------- */
.brand{
  text-align:center;
  margin-bottom:8px;
}
.brand h1{
  font-family:Georgia, 'Times New Roman', serif;
  font-weight:900;
  font-style:italic;
  letter-spacing:2px;
  font-size:clamp(30px,6vw,52px);
  margin:14px 0 4px;
  background:linear-gradient(90deg, var(--blue), var(--violet) 45%, var(--pink) 90%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  text-shadow:0 0 40px rgba(155,77,255,0.35);
}
.brand .tag{
  color:var(--ink-dim);
  letter-spacing:4px;
  text-transform:uppercase;
  font-size:12px;
}
.on-air{
  display:inline-flex;align-items:center;gap:6px;
  margin-top:14px;
  font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:#ffb3d6;
  border:1px solid rgba(255,63,164,0.5);
  padding:4px 12px;border-radius:20px;
  background:rgba(255,63,164,0.08);
}
.on-air .dot{width:7px;height:7px;border-radius:50%;background:#ff3f5c;box-shadow:0 0 8px #ff3f5c;animation:blink-dot 1.4s infinite;}
@keyframes blink-dot{0%,60%,100%{opacity:1;}30%{opacity:.25;}}

/* ---------- EYE ---------- */
.eye-stage{
  display:flex;justify-content:center;align-items:flex-end;
  margin:26px 0 0;
  position:relative;
  height:240px;
  overflow:visible;
}
.eye-sky{
  position:absolute;
  left:50%;top:0;
  width:420px;height:240px;
  transform:translateX(-50%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,0.5) 0px, transparent 2px),
    radial-gradient(circle at 70% 15%, rgba(255,255,255,0.4) 0px, transparent 2px),
    radial-gradient(circle at 50% 35%, rgba(255,255,255,0.4) 0px, transparent 2px),
    radial-gradient(circle at 85% 60%, rgba(255,255,255,0.35) 0px, transparent 2px),
    radial-gradient(circle at 15% 55%, rgba(255,255,255,0.35) 0px, transparent 2px),
    linear-gradient(180deg, #4a2f8f 0%, #6a3fb0 30%, #3fa8e0 65%, #2fd0ff 100%);
  box-shadow:inset 0 -20px 50px rgba(0,0,0,0.25);
  z-index:0;
}
.eye-halo{
  position:relative;
  z-index:3;
  filter:drop-shadow(0 0 40px rgba(47,208,255,0.45)) drop-shadow(0 0 70px rgba(255,255,255,0.25));
  animation:pulse-halo 4.5s ease-in-out infinite;
}
@keyframes pulse-halo{
  0%,100%{filter:drop-shadow(0 0 40px rgba(47,208,255,0.45)) drop-shadow(0 0 70px rgba(255,255,255,0.25));}
  50%{filter:drop-shadow(0 0 60px rgba(155,77,255,0.5)) drop-shadow(0 0 95px rgba(47,208,255,0.4));}
}
.eye-stage.small{margin:0;transform:scale(0.30);height:60px;}
.eye-stage.small .eye-sky{display:none;}
.eye-stage.small .eye-halo{filter:drop-shadow(0 0 20px rgba(47,208,255,0.4));}

/* ---------- CARDS / LAYOUT ---------- */
.card{
  background:var(--card);
  border:1px solid var(--card-border);
  border-radius:18px;
  padding:28px 26px;
  backdrop-filter:blur(6px);
  box-shadow:0 20px 60px rgba(0,0,0,0.35);
}
.center-card{max-width:420px;margin:34px auto 0;text-align:center;}
.center-card p.lead{color:var(--ink-dim);font-size:14px;margin:0 0 22px;line-height:1.5;}

label{display:block;text-align:left;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-dim);margin:0 0 6px;}
input[type=text], input[type=password], input[type=tel], textarea{
  width:100%;
  background:rgba(10,4,22,0.55);
  border:1px solid rgba(155,77,255,0.4);
  border-radius:10px;
  padding:12px 14px;
  color:var(--ink);
  font-size:15px;
  font-family:inherit;
  outline:none;
  transition:border-color .2s, box-shadow .2s;
}
input[type=text]:focus, input[type=password]:focus, input[type=tel]:focus, textarea:focus{
  border-color:var(--pink);
  box-shadow:0 0 0 3px rgba(255,63,164,0.18);
}
textarea{resize:vertical;min-height:100px;line-height:1.5;}

select{
  background:rgba(10,4,22,0.55);
  border:1px solid rgba(155,77,255,0.4);
  border-radius:10px;
  padding:10px 12px;
  color:var(--ink);
  font-size:14px;
  font-family:inherit;
  outline:none;
}
select:focus{
  border-color:var(--pink);
  box-shadow:0 0 0 3px rgba(255,63,164,0.18);
}

.field{margin-bottom:16px;}

.btn{
  appearance:none;border:none;cursor:pointer;
  font-family:inherit;font-weight:700;font-size:14px;letter-spacing:0.5px;
  padding:13px 22px;border-radius:10px;
  color:#0c0518;
  background:linear-gradient(90deg, var(--blue), var(--pink));
  box-shadow:0 8px 24px rgba(255,63,164,0.28);
  transition:transform .15s, box-shadow .15s;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(255,63,164,0.4);}
.btn:active{transform:translateY(0);}
.btn.full{width:100%;margin-top:16px;}
.btn.ghost{
  background:transparent;
  border:1px solid rgba(155,77,255,0.5);
  color:var(--ink);
  box-shadow:none;
}
.btn.ghost:hover{background:rgba(155,77,255,0.12);}
.btn.danger{
  background:linear-gradient(90deg, #ff5f6d, #ff3f5c);
  box-shadow:0 8px 24px rgba(255,63,92,0.28);
}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}

.error-msg{color:#ff8fb0;font-size:13px;margin-top:10px;min-height:16px;}
.hint-msg{color:var(--ink-dim);font-size:12.5px;margin-top:10px;line-height:1.5;}

/* ---------- DASHBOARD ---------- */
.top-bar{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:26px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(155,77,255,0.25);
  flex-wrap:wrap;gap:12px;
}
.top-bar .who{display:flex;align-items:center;gap:12px;}
.avatar{
  width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg, var(--blue), var(--violet), var(--pink));
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:15px;color:#0c0518;
}
.who .name{font-weight:700;}
.who .sub{font-size:11px;color:var(--ink-dim);letter-spacing:1px;text-transform:uppercase;}

.section-title{
  display:flex;align-items:center;gap:10px;
  font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--ink-dim);
  margin:34px 0 14px;
}
.section-title::after{content:"";flex:1;height:1px;background:linear-gradient(90deg, rgba(155,77,255,0.4), transparent);}

.char-count{font-size:11px;color:var(--ink-dim);text-align:right;margin-top:4px;}

.empty-state{
  text-align:center;color:var(--ink-dim);font-size:13.5px;
  padding:30px 10px;border:1px dashed rgba(155,77,255,0.3);border-radius:14px;
}

.logout-link{
  background:none;border:none;color:var(--ink-dim);font-size:12px;
  cursor:pointer;text-decoration:underline;letter-spacing:0.5px;
}
.logout-link:hover{color:#ffb3d6;}

.footer-note{
  text-align:center;margin-top:40px;font-size:11px;color:var(--ink-dim);letter-spacing:1px;
}

.hidden{display:none !important;}

::selection{background:rgba(255,63,164,0.35);}

@media(max-width:480px){
  .card{padding:22px 18px;}
}
