* {
  box-sizing: border-box;
}

:root{
  --bg1:#0a0f1b;
  --bg2:#0b1424;

  --card: rgba(20, 26, 36, .62);
  --stroke: rgba(255,255,255,.10);

  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.62);
  --muted2: rgba(255,255,255,.42);

  --accent: #6fb6ff;
  --accent-green: #7ad9d0;
  --accent-yellow: #ffd37b;
  --accent-red: #ff8b7a;
  --accent-rgb: 111,182,255;

  --shadow: 0 18px 60px rgba(0,0,0,.45);
  --r: 18px;
  --font-body: "IBM Plex Sans", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-display: "Space Grotesk", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

body{
  margin:0;
  font-family: var(--font-body);
  color: var(--text);
  background: radial-gradient(1200px 800px at 50% -10%, #1c2a52 0%, transparent 60%),
              linear-gradient(180deg, var(--bg2), var(--bg1));
}

.bg{
  position: fixed;
  inset:0;
  background:
    radial-gradient(900px 500px at 70% 15%, rgba(120,170,255,.22), transparent 60%),
    radial-gradient(700px 450px at 30% 20%, rgba(80,120,200,.18), transparent 60%),
    radial-gradient(700px 500px at 80% 80%, rgba(70,120,180,.16), transparent 60%),
    url("./assets/bg.png");
  background-size: cover;
  background-position: center 20%;
  background-repeat: no-repeat;
  filter: saturate(1.1) contrast(1.05);
  z-index:-3;
}
.bg-overlay{
  position: fixed;
  inset:0;
  background: linear-gradient(180deg, rgba(10,14,22,.55), rgba(8,10,16,.86));
  backdrop-filter: blur(2px);
  z-index:-2;
}

.top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 28px 28px 12px;
  gap: 16px;
  flex-wrap: wrap;
}

.top h1 {
  font-family: "Space Grotesk", sans-serif;
  font-size: 30px;
  margin: 6px 0 6px;
}

.eyebrow {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 11px;
  color: var(--muted);
}

.sub {
  margin: 0;
  color: var(--muted);
}

.top__right {
  display: flex;
  gap: 10px;
  align-items: center;
}

.chip{
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border: 1px solid var(--stroke);
  color: var(--text);
  text-decoration: none;
  font-size: 13px;
}

.chip--edit {
  cursor: pointer;
}

.chip--edit.is-active {
  background: rgba(124, 197, 255, 0.2);
  border-color: rgba(124, 197, 255, 0.5);
}

.chip--pulse {
  position: relative;
}

.chip--pulse::after {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 999px;
  border: 1px solid rgba(124, 197, 255, 0.5);
  animation: pulse 2.4s ease-in-out infinite;
}

@keyframes pulse {
  0% { opacity: 0.2; transform: scale(0.98); }
  50% { opacity: 0.6; transform: scale(1.02); }
  100% { opacity: 0.2; transform: scale(0.98); }
}

.layout {
  padding: 10px 28px 40px;
  display: grid;
  gap: 18px;
}

.card{
  background: var(--card);
  border: 1px solid var(--stroke);
  border-radius: var(--r);
  padding: 18px;
  box-shadow: var(--shadow);
  backdrop-filter: blur(10px);
  position: relative;
  overflow: hidden;
}

.card::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(255,255,255,.05), transparent 55%);
  pointer-events: none;
}

.card::after{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius: inherit;
  border: 1px solid transparent;
  pointer-events:none;
  opacity: .9;
}

.card--daily::after{
  border-color: rgba(111,182,255,.95);
  box-shadow: inset 0 0 0 1px rgba(111,182,255,.35), 0 0 40px rgba(111,182,255,.32);
}
.card--sport::after{
  border-color: rgba(255,139,122,.95);
  box-shadow: inset 0 0 0 1px rgba(255,139,122,.35), 0 0 40px rgba(255,139,122,.32);
}
.card--family::after{
  border-color: rgba(122,217,208,.95);
  box-shadow: inset 0 0 0 1px rgba(122,217,208,.35), 0 0 40px rgba(122,217,208,.32);
}
.card--couple::after{
  border-color: rgba(255,211,123,.95);
  box-shadow: inset 0 0 0 1px rgba(255,211,123,.35), 0 0 40px rgba(255,211,123,.32);
}
.card--friday::after{
  border-color: rgba(202,165,255,.95);
  box-shadow: inset 0 0 0 1px rgba(202,165,255,.35), 0 0 40px rgba(202,165,255,.32);
}
.card--special::after{
  border-color: rgba(255,162,102,.95);
  box-shadow: inset 0 0 0 1px rgba(255,162,102,.35), 0 0 40px rgba(255,162,102,.32);
}

.card__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 12px;
}

.card h2 {
  margin: 0;
  font-size: 18px;
  font-family: "Space Grotesk", sans-serif;
}

.tag {
  font-size: 12px;
  color: var(--muted);
  border: 1px solid var(--line);
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
}

.tag--daily{
  color: #f0f7ff;
  border-color: rgba(111,182,255,.95);
  background: rgba(111,182,255,.45);
}
.tag--sport{
  color: #ffe6e1;
  border-color: rgba(255,139,122,.95);
  background: rgba(255,139,122,.45);
}
.tag--family{
  color: #ecfffb;
  border-color: rgba(122,217,208,.95);
  background: rgba(122,217,208,.45);
}
.tag--couple{
  color: #fff6da;
  border-color: rgba(255,211,123,.95);
  background: rgba(255,211,123,.45);
}
.tag--friday{
  color: #f6ecff;
  border-color: rgba(202,165,255,.95);
  background: rgba(202,165,255,.45);
}
.tag--special{
  color: #ffe5d6;
  border-color: rgba(255,162,102,.95);
  background: rgba(255,162,102,.45);
}

.grid {
  display: grid;
  gap: 12px;
}

.grid--two {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.field {
  display: grid;
  gap: 6px;
}

.field--wide {
  grid-column: 1 / -1;
}

label {
  font-size: 12px;
  letter-spacing: 0.02em;
  color: var(--muted);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

input,
textarea{
  width: 100%;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
  background: rgba(18,22,30,.9);
  color: var(--text);
  font-family: inherit;
  font-size: 14px;
}

input:disabled,
textarea:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

input:focus,
textarea:focus {
  outline: 2px solid rgba(111,182,255,0.35);
  border-color: rgba(111,182,255,0.6);
}

input:disabled,
textarea:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.auth-gate {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(6, 10, 16, 0.82);
  z-index: 5;
  padding: 20px;
}

.auth-gate.is-visible {
  display: flex;
}

.auth-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 20px;
  text-align: center;
  max-width: 360px;
}

.auth-title {
  font-family: "Space Grotesk", sans-serif;
  font-size: 18px;
  margin-bottom: 8px;
}

.auth-text {
  color: var(--muted);
  font-size: 14px;
  margin-bottom: 12px;
}

.vis-toggle {
  width: 20px;
  height: 20px;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(12,16,22,.85);
  box-shadow: 0 0 0 1px rgba(255,255,255,.06);
  cursor: pointer;
  display: inline-grid;
  place-items: center;
  padding: 0;
  pointer-events: auto;
}

.vis-toggle.is-active {
  border-color: rgba(111,182,255,.9);
  background: rgba(111,182,255,.35);
  box-shadow: 0 0 0 2px rgba(111,182,255,.25);
}

.vis-toggle i {
  width: 14px;
  height: 14px;
  color: rgba(255, 255, 255, 0.9);
}

.vis-toggle.is-active i {
  color: var(--text);
}

.auth-gate {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(6, 10, 16, 0.82);
  z-index: 5;
  padding: 20px;
}

.auth-gate.is-visible {
  display: flex;
}

.auth-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 20px;
  text-align: center;
  max-width: 360px;
}

.auth-title {
  font-family: "Space Grotesk", sans-serif;
  font-size: 18px;
  margin-bottom: 8px;
}

.auth-text {
  color: var(--muted);
  font-size: 14px;
  margin-bottom: 12px;
}

@media (max-width: 640px) {
  .top {
    padding: 22px 18px 6px;
  }
  .layout {
    padding: 8px 18px 30px;
  }
}
