/* TOBOLIFE — mobil öncelikli temel stil */
:root {
  --bg: #0f1512;
  --card: #1a231e;
  --text: #eef4f0;
  --muted: #93a39a;
  --accent: #4ade80;
  --accent-dark: #22c55e;
  --error: #f87171;
  --radius: 14px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100dvh;
}

.container {
  max-width: 440px;
  margin: 0 auto;
  padding: 24px 16px calc(24px + env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-height: 100dvh;
}

.brand { text-align: center; padding-top: 12px; }
.brand h1 { letter-spacing: 3px; color: var(--accent); font-size: 1.9rem; }
.brand p { color: var(--muted); margin-top: 4px; }

.card {
  background: var(--card);
  border-radius: var(--radius);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tabs { display: flex; gap: 8px; }
.tab {
  flex: 1;
  padding: 10px;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: var(--muted);
  font-size: 1rem;
  cursor: pointer;
}
.tab.active { background: var(--bg); color: var(--accent); font-weight: 600; }

form { display: flex; flex-direction: column; gap: 14px; }
label { display: flex; flex-direction: column; gap: 6px; font-size: 0.95rem; }

input[type="email"], input[type="password"], input[type="number"], input[type="text"], select {
  padding: 12px;
  border-radius: 10px;
  border: 1px solid #2e3b33;
  background: var(--bg);
  color: var(--text);
  font-size: 1rem;
}
input:focus, select:focus { outline: 2px solid var(--accent-dark); border-color: transparent; }

.consents { display: flex; flex-direction: column; gap: 10px; font-size: 0.85rem; }
.check { flex-direction: row; align-items: flex-start; gap: 10px; color: var(--muted); }
.check input { margin-top: 3px; accent-color: var(--accent); width: 18px; height: 18px; flex-shrink: 0; }

.btn {
  padding: 14px;
  border: none;
  border-radius: 10px;
  background: var(--accent-dark);
  color: #06130b;
  font-size: 1.05rem;
  font-weight: 700;
  cursor: pointer;
}
.btn:active { transform: scale(0.98); }
.btn.secondary { background: transparent; color: var(--muted); border: 1px solid #2e3b33; }

.error { color: var(--error); font-size: 0.9rem; }
.muted { color: var(--muted); }
.small { font-size: 0.78rem; text-align: center; line-height: 1.5; padding: 0 8px; }
.hidden { display: none !important; }

footer { margin-top: auto; }

/* onboarding ek stiller */
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
fieldset { border: 1px solid #2e3b33; border-radius: 10px; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
legend { padding: 0 6px; font-size: 0.9rem; color: var(--muted); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { flex-direction: row; align-items: center; gap: 6px; background: var(--bg); border: 1px solid #2e3b33; border-radius: 999px; padding: 8px 14px; cursor: pointer; font-size: 0.9rem; }
.chip:has(input:checked) { border-color: var(--accent); color: var(--accent); }
.chip input { accent-color: var(--accent); }
.tiny { font-size: 0.75rem; line-height: 1.4; }
input[type="range"] { accent-color: var(--accent); width: 100%; }
.summary { display: flex; flex-direction: column; gap: 8px; }
.srow { display: flex; justify-content: space-between; padding: 10px 12px; background: var(--bg); border-radius: 10px; font-size: 0.95rem; }
.srow.strong { border: 1px solid var(--accent-dark); font-weight: 700; color: var(--accent); }

/* öğün ekranı */
.today-head { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; }
.today-head h3 { font-size: 1rem; color: var(--muted); }
.badge { background: var(--bg); border: 1px solid var(--accent-dark); color: var(--accent); border-radius: 999px; padding: 4px 12px; font-size: 0.78rem; }
.badge.warn { border-color: var(--error); color: var(--error); }
.pulse { animation: pulse 1.2s ease-in-out infinite; color: var(--accent); text-align: center; padding: 20px 0; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.4; } }
.food-row { display: flex; justify-content: space-between; gap: 8px; padding: 8px 12px; background: var(--bg); border-radius: 10px; font-size: 0.9rem; }
.food-row .muted { font-size: 0.8rem; }
.warnbox { border: 1px solid #eab308; color: #facc15; border-radius: 10px; padding: 10px 12px; font-size: 0.85rem; }
.tipbox { border: 1px solid #2e3b33; color: var(--muted); border-radius: 10px; padding: 10px 12px; font-size: 0.85rem; }

/* denge paneli + haftalık grafik + ayarlar */
.week-chart { display: flex; gap: 6px; align-items: flex-end; height: 90px; padding: 8px 4px 0; }
.wbar { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.wbar .bar { width: 100%; background: #2e3b33; border-radius: 6px 6px 0 0; min-height: 3px; transition: height .3s; }
.wbar.today .bar { background: var(--accent-dark); }
.wbar.over .bar { background: var(--error); }
.wbar span { font-size: 0.62rem; color: var(--muted); }
.progressbar { height: 14px; background: var(--bg); border-radius: 999px; overflow: hidden; border: 1px solid #2e3b33; }
.progressbar > div { height: 100%; background: var(--accent-dark); border-radius: 999px; transition: width .3s; }
.progressbar.over > div { background: var(--error); }
.settings { border: 1px solid #2e3b33; border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 10px; }
.settings summary { color: var(--muted); cursor: pointer; font-size: 0.9rem; }
.btn.danger { background: transparent; border: 1px solid var(--error); color: var(--error); }

/* kayıt butonları + sesli ekran */
.btnrow { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.btnrow.two { grid-template-columns: 1.4fr 1fr; }
.btnrow .btn { padding: 12px 6px; font-size: 0.92rem; }
textarea { padding: 12px; border-radius: 10px; border: 1px solid #2e3b33; background: var(--bg); color: var(--text); font-size: 1rem; font-family: inherit; resize: vertical; width: 100%; }
textarea:focus { outline: 2px solid var(--accent-dark); border-color: transparent; }
#btn-mic.recording { background: var(--error); color: #fff; animation: pulse 1.2s infinite; }

/* su + egzersiz + hatırlatma */
.btn.mini { padding: 8px 14px; font-size: 0.85rem; width: auto; }
.water-row { align-items: center; }
.remindbox { display: flex; flex-direction: column; gap: 10px; border-top: 1px solid #2e3b33; padding-top: 10px; }

/* uyku + oruç */
.sleepform { display: flex; gap: 10px; align-items: center; background: var(--bg); border-radius: 10px; padding: 10px 12px; }
.sleepform select { flex: 0 0 92px; }
.moods { display: flex; gap: 6px; flex: 1; justify-content: space-around; }
.moods button { background: transparent; border: none; font-size: 1.5rem; cursor: pointer; opacity: 0.55; transition: transform .15s, opacity .15s; }
.moods button:active, .moods button.sel { transform: scale(1.25); opacity: 1; }
.mini-select { width: auto; padding: 8px; border-radius: 8px; background: var(--bg); color: var(--text); border: 1px solid #2e3b33; }

/* tahlil */
.btnrow.four { grid-template-columns: 1fr 1fr; }
.lab-val { display: grid; grid-template-columns: 1.4fr 1fr auto; gap: 6px; padding: 8px 12px; background: var(--bg); border-radius: 10px; font-size: 0.88rem; align-items: center; }
.lab-val .st { font-weight: 700; padding: 2px 10px; border-radius: 999px; font-size: 0.75rem; text-align: center; }
.st.normal { color: var(--accent); border: 1px solid var(--accent-dark); }
.st.low, .st.high { color: #facc15; border: 1px solid #eab308; }
.st.unknown { color: var(--muted); border: 1px solid #2e3b33; }
.doctorbox { border: 2px solid var(--error); color: var(--error); border-radius: 10px; padding: 12px; font-weight: 600; }

/* haftalık plan */
details.dayacc { border: 1px solid #2e3b33; border-radius: 10px; padding: 10px 12px; }
details.dayacc summary { cursor: pointer; display: flex; justify-content: space-between; font-weight: 600; }
details.dayacc .food-row { margin-top: 8px; }
.shop-cat { font-weight: 700; color: var(--accent); margin-top: 6px; }
.shop-item { display: flex; justify-content: space-between; padding: 6px 12px; background: var(--bg); border-radius: 8px; font-size: 0.9rem; }

/* hizalama kamerası */
.cam-wrap { position: relative; border-radius: var(--radius); overflow: hidden; background: #000; aspect-ratio: 3/4; }
.cam-wrap video { width: 100%; height: 100%; object-fit: cover; display: block; }
.cam-wrap video.mirrored { transform: scaleX(-1); }
.cam-ghost { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
#cam-silhouette { opacity: 0.9; }
.cam-controls { position: absolute; left: 0; right: 0; bottom: 0; padding: 10px; display: flex; flex-direction: column; gap: 8px; background: linear-gradient(transparent, rgba(0,0,0,0.75)); }
.cam-op { flex-direction: row; align-items: center; gap: 8px; color: #fff; font-size: 0.8rem; }
.cam-btns { display: flex; gap: 8px; justify-content: space-between; align-items: center; }
.cam-btns .btn { flex: 1; }
.cam-btns .mini { flex: 0 0 52px; }

/* geri sayım + silme */
.cam-countdown { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 7rem; font-weight: 800; color: #fff; text-shadow: 0 0 30px rgba(0,0,0,0.8); pointer-events: none; }
.food-row .del { background: transparent; border: none; color: var(--error); font-size: 1.1rem; cursor: pointer; padding: 4px 8px; }

/* rozetler */
#badge-strip { font-size: 1.2rem; letter-spacing: 3px; }
.badge-toast { border: 1px solid var(--accent-dark); color: var(--accent); border-radius: 10px; padding: 10px 12px; font-size: 0.9rem; animation: pulse 1.2s 2; }

/* premium kutusu */
.prembox { display: flex; flex-direction: column; gap: 10px; border: 1px solid #eab30855; border-radius: 10px; padding: 12px; }
#ref-code { color: var(--accent); letter-spacing: 1px; }

/* ====== kozmetik tur: alt gezinme + sheet + sekmeler ====== */
.container { padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
.bottom-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  display: flex; justify-content: space-around; align-items: center;
  background: rgba(20, 28, 24, 0.97); border-top: 1px solid #2e3b33;
  padding: 8px 6px calc(8px + env(safe-area-inset-bottom)); backdrop-filter: blur(8px); }
.nav-btn { background: transparent; border: none; color: var(--muted); font-size: 1.25rem;
  display: flex; flex-direction: column; align-items: center; gap: 2px; cursor: pointer; padding: 4px 14px; border-radius: 12px; }
.nav-btn span { font-size: 0.62rem; }
.nav-btn.active { color: var(--accent); }
.nav-add { background: var(--accent-dark); color: #06130b; font-size: 1.5rem; font-weight: 800;
  border-radius: 999px; width: 54px; height: 54px; justify-content: center; margin-top: -22px;
  box-shadow: 0 4px 16px rgba(34, 197, 94, 0.4); }
.sheet-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.55); z-index: 60; }
.sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 61;
  background:
    radial-gradient(140% 70% at 30% 0%, rgba(255,255,255,0.07), transparent 45%),
    linear-gradient(165deg, rgba(40, 54, 46, 0.98), rgba(13, 18, 15, 0.99));
  border: 1px solid #34423a; border-bottom: none;
  border-radius: 20px 20px 0 0; padding: 10px 16px calc(20px + env(safe-area-inset-bottom));
  box-shadow: 0 -14px 40px rgba(0,0,0,0.55);
  animation: sheetup .22s ease-out; }
@keyframes sheetup { from { transform: translateY(100%); } to { transform: translateY(0); } }
.sheet-handle { width: 42px; height: 4px; background: #2e3b33; border-radius: 99px; margin: 6px auto 12px; }
.sheet h3 { font-size: 0.95rem; color: var(--muted); margin-bottom: 12px; text-align: center; }
.sheet-body { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
/* sekme kartlari: cam karolar */
#plans-cards, #track-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
#plans-cards .btn:first-child, #sheet-body .btn:first-child { grid-column: 1 / -1; }
#profile-cards .btn { width: 100%; }
.btn.tile { display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 8px; min-height: 96px; padding: 14px 8px;
  background: linear-gradient(160deg, rgba(255,255,255,0.05), transparent 45%), var(--bg);
  border: 1px solid #2e3b33; border-radius: 16px; color: var(--text);
  font-weight: 600; font-size: 0.9rem; }
.btn.tile:active { transform: scale(0.97); border-color: var(--accent-dark); }
.tile-ico { font-style: normal; font-size: 1.55rem; width: 52px; height: 52px;
  display: grid; place-items: center; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #24352b, #17231c);
  border: 1px solid #2e4436; }
.sheet .btn.tile { animation: tilein .3s ease backwards; }
.sheet .btn.tile:nth-child(2) { animation-delay: .06s; }
.sheet .btn.tile:nth-child(3) { animation-delay: .12s; }
@keyframes tilein { from { opacity: 0; transform: translateY(14px); } }
#profile-cards .settings { border: none; padding: 0; }
#profile-cards .settings summary { display: none; }

/* zil butonu */
.bell { position: fixed; top: calc(14px + env(safe-area-inset-top)); right: 14px; z-index: 40;
  background: var(--card); border: 1px solid #2e3b33; color: var(--text);
  border-radius: 999px; width: 44px; height: 44px; font-size: 1.2rem; cursor: pointer; }

/* su takibi (popup) */
.waterbox { display: flex; flex-direction: column; gap: 14px; }
.gauge-wrap { position: relative; width: 150px; height: 150px; margin: 0 auto; }
.gauge { width: 100%; height: 100%; transform: rotate(-90deg); }
.gauge-bg { fill: none; stroke: #17251d; stroke-width: 9; }
.gauge-ring { fill: none; stroke: #38bdf8; stroke-width: 9; stroke-linecap: round;
  transition: stroke-dashoffset .6s cubic-bezier(.22,1,.36,1), stroke .4s; }
.gauge-ring.done { stroke: #4ade80; }
.gauge-center { position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 2px; }
.gauge-center b { font-size: 1.8rem; color: #38bdf8; }
.water-add { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.water-add select { width: 100%; }

/* gösterge rayı (sağ üst, dikey tek kapsül) */
.rail { position: fixed; left: 12px; top: calc(60px + env(safe-area-inset-top)); z-index: 40;
  display: flex; flex-direction: column; align-items: center;
  background:
    radial-gradient(130% 60% at 30% 0%, rgba(255,255,255,0.08), transparent 50%),
    linear-gradient(170deg, rgba(38, 52, 44, 0.96), rgba(13, 18, 15, 0.98));
  border: 1px solid #34423a; border-radius: 999px; padding: 48px 6px 7px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.55), inset 0 1px 1px rgba(255,255,255,0.08);
  backdrop-filter: blur(10px); }
.rail-btn { position: relative; width: 44px; height: 44px; border: none; cursor: pointer;
  background: transparent; border-radius: 999px; display: flex; align-items: center; justify-content: center;
  transition: transform .16s cubic-bezier(.34,1.5,.64,1), background .16s; }
.rail-btn:active { transform: scale(0.86); background: rgba(var(--tone), 0.12); }
.rail-btn svg { width: 23px; height: 23px; filter: drop-shadow(0 0 4px rgba(var(--tone), 0.4)); }
.rail-sep { width: 22px; height: 1px; background: rgba(255,255,255,0.07); margin: 2px 0; }
.gauge-icon { position: relative; width: 23px; height: 23px; display: block; }
.gauge-icon > svg { position: absolute; inset: 0; }
.gauge-fill { position: absolute; inset: 0; overflow: hidden;
  clip-path: inset(calc(100% - var(--wfill, 0%)) 0 0 0); transition: clip-path .5s ease; }
.gauge-fill svg { position: absolute; inset: 0; opacity: 0.9; }
#rail-moon.done { fill: #a78bfa; fill-opacity: 0.85; }
.rail-dot { position: absolute; top: 7px; right: 7px; width: 7px; height: 7px; border-radius: 99px;
  background: #facc15; box-shadow: 0 0 6px rgba(250,204,21,0.8); }

.popup-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 70;
  animation: fadein .2s ease-out; }
@keyframes fadein { from { opacity: 0; } to { opacity: 1; } }
.popup { position: fixed; z-index: 71; left: 16px; right: 16px; top: 50%;
  transform: translateY(-50%); max-width: 420px; margin: 0 auto;
  /* yükseklik JS ile ölçülür (calibratePopup); --glow açık popup'a göre değişir */
  --glow: 148, 163, 184;
  display: flex; flex-direction: column; overflow: visible;
  background:
    radial-gradient(140% 80% at 25% 0%, rgba(255,255,255,0.09), transparent 40%),
    radial-gradient(120% 100% at 90% 110%, rgba(var(--glow), 0.10), transparent 55%),
    linear-gradient(165deg, rgba(40, 54, 46, 0.97), rgba(13, 18, 15, 0.99));
  border: 1px solid rgba(var(--glow), 0.35);
  border-radius: 22px; padding: 22px;
  box-shadow:
    0 24px 60px rgba(0, 0, 0, 0.65),
    0 0 34px rgba(var(--glow), 0.16),
    inset 0 1px 1px rgba(255, 255, 255, 0.09),
    inset 0 -14px 30px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(14px);
  animation: popin .28s cubic-bezier(.34,1.45,.64,1); }
.popup::after { content: ""; position: absolute; inset: 4px; border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.045); pointer-events: none; }
.popup[data-kind="pop-water"] { --glow: 56, 189, 248; }
.popup[data-kind="pop-sleep"] { --glow: 167, 139, 250; }
.popup[data-kind="pop-bell"]  { --glow: 250, 204, 21; }
.popup h3 { text-shadow: 0 0 14px rgba(var(--glow), 0.35); }
.popup-backdrop { backdrop-filter: blur(3px); }
.popup .pop-section { flex: 1; overflow-y: auto; scrollbar-width: none; }
.popup .pop-section::-webkit-scrollbar { display: none; }
@keyframes popin {
  from { opacity: 0; transform: translateY(-50%) scale(0.82); }
  to   { opacity: 1; transform: translateY(-50%) scale(1); } }
.popup-close { position: absolute; top: 10px; right: 12px; background: transparent;
  border: none; color: var(--muted); font-size: 1.1rem; cursor: pointer; padding: 6px; }
.pop-section { display: flex; flex-direction: column; gap: 12px; }
.pop-section h3 { font-size: 1.05rem; }
.pop-section .waterbox { border: none; padding: 10px 0; }

/* çark seçici (wheel picker) */
.water-add { grid-template-columns: 1fr 1fr; align-items: center; }
.wheel-wrap { position: relative; height: 132px; }
.wheel { height: 132px; overflow-y: auto; scroll-snap-type: y mandatory;
  scrollbar-width: none; -ms-overflow-style: none;
  mask-image: linear-gradient(transparent, #000 28%, #000 72%, transparent);
  -webkit-mask-image: linear-gradient(transparent, #000 28%, #000 72%, transparent); }
.wheel::-webkit-scrollbar { display: none; }
.wheel-item { height: 44px; display: flex; align-items: center; justify-content: center;
  scroll-snap-align: center; font-size: 1.05rem; color: var(--muted);
  transition: color .15s, transform .15s; }
.wheel-item.sel { color: #38bdf8; font-weight: 800; font-size: 1.25rem; }
.wheel-pad { height: 44px; }
.wheel-window { position: absolute; left: 4px; right: 4px; top: 44px; height: 44px;
  border-top: 1px solid rgba(56,189,248,0.45); border-bottom: 1px solid rgba(56,189,248,0.45);
  border-radius: 8px; pointer-events: none; background: rgba(56,189,248,0.06); }

/* uyku 7 gün grafiği */
.sleep-chart { display: flex; gap: 7px; align-items: flex-end; height: 110px; padding-top: 6px; }
.sbar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 3px; height: 100%; }
.sbar .mood-e { font-size: 0.8rem; height: 16px; line-height: 16px; }
.sbar .bar { width: 100%; background: linear-gradient(180deg, #a78bfa, #7c5cd6); border-radius: 6px 6px 3px 3px; min-height: 3px; transition: height .4s ease; }
.sbar.empty .bar { background: #232d27; }
.sbar .hrs { font-size: 0.6rem; color: #a78bfa; height: 12px; }
.sbar .dlabel { font-size: 0.58rem; color: var(--muted); }
.sbar.today .dlabel { color: #a78bfa; font-weight: 700; }
@keyframes shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-6px)} 75%{transform:translateX(6px)} }
.moods.shake { animation: shake .25s 2; }
/* uyku kaydet: sakin, kucuk, tema renginde */
.sleep-save { align-self: center; width: auto; padding: 9px 26px; font-size: 0.9rem; font-weight: 600;
  background: transparent; color: #a78bfa; border: 1px solid rgba(167,139,250,0.5); }
.sleep-save:active { background: rgba(167,139,250,0.12); }
.sleep-edit { background: transparent; border: 1px solid rgba(167,139,250,0.4); color: #a78bfa;
  border-radius: 8px; padding: 5px 12px; font-size: 0.78rem; cursor: pointer; }

/* hatırlatma popup: anahtar + segment + saat çarkları */
.switch-row { display: flex; justify-content: space-between; align-items: center; }
.switch { position: relative; width: 52px; height: 30px; flex-shrink: 0; }
.switch input { opacity: 0; width: 0; height: 0; }
.switch .knob { position: absolute; inset: 0; border-radius: 99px; background: #232d27;
  border: 1px solid #34413a; transition: background .2s, border-color .2s; cursor: pointer; }
.switch .knob::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px;
  border-radius: 99px; background: #8a988f; transition: transform .2s cubic-bezier(.34,1.4,.64,1), background .2s; }
.switch input:checked + .knob { background: rgba(250,204,21,0.25); border-color: rgba(250,204,21,0.6); }
.switch input:checked + .knob::after { transform: translateX(22px); background: #facc15;
  box-shadow: 0 0 10px rgba(250,204,21,0.6); }
.seg-label { font-size: 0.78rem; color: var(--muted); margin: 10px 0 6px; }
.seg { display: grid; grid-template-columns: repeat(4, 1fr); background: #17251d;
  border: 1px solid #2e3b33; border-radius: 12px; padding: 3px; gap: 3px; }
.seg button { border: none; background: transparent; color: var(--muted); padding: 9px 0;
  border-radius: 9px; font-size: 0.9rem; cursor: pointer; transition: all .15s; }
.seg button.sel { background: rgba(250,204,21,0.16); color: #facc15; font-weight: 700; }
.hourwheels { display: flex; align-items: center; gap: 10px; justify-content: center; }
.hourwheels .dash { color: var(--muted); font-size: 1.2rem; }
.wheel-wrap.small { height: 108px; flex: 1; max-width: 120px; }
.wheel.small { height: 108px; }
.wheel.small .wheel-item { height: 36px; font-size: 0.95rem; }
.wheel.small .wheel-pad { height: 36px; }
.wheel-wrap.small .wheel-window { top: 36px; height: 36px; }
.wheel-window.amber { border-color: rgba(250,204,21,0.45); background: rgba(250,204,21,0.06); }
.wheel.small .wheel-item.sel { color: #facc15; font-size: 1.05rem; }
.bell-test { margin-top: 12px; background: transparent; color: #facc15;
  border: 1px solid rgba(250,204,21,0.5); font-weight: 600; }
#rem-detail.off { opacity: 0.35; pointer-events: none; transition: opacity .25s; }
/* etiket, çarkın görünür (ortadaki) satırına sıklık etiketi kadar yaklaşsın:
   çarkın üst 36px'i boş kaydırma payı (maskeli) — etiketi o bölgeye sarkıt */
.hours-label { margin: 26px 0 -24px; line-height: 1.35; position: relative; z-index: 2; }
.hourwheels { margin-top: 0; }

/* marka: dümen rozeti + altın yazı */
.brand { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.brand-badge { width: 64px; height: 64px; border-radius: 999px;
  box-shadow: 0 4px 18px rgba(0,0,0,0.5), 0 0 22px rgba(217,180,95,0.18); }
.brand h1 { color: var(--accent); letter-spacing: 3px; font-size: 1.9rem; }
.auth-logo { width: min(78%, 300px); margin: 4px auto 6px; border-radius: 16px;
  box-shadow: 0 10px 36px rgba(0,0,0,0.55); }
/* giriş ekranında küçük marka gizlenir (tam logo zaten orada) */
body.authing .brand { display: none; }
/* giriş ekranı: tam logo, zemine erimiş */
#view-auth { background:
    radial-gradient(120% 90% at 50% 0%, rgba(255,255,255,0.045), transparent 55%),
    #0f1015; border: 1px solid #23262e; }
.auth-logo2 { width: min(86%, 330px); margin: 0 auto; display: block;
  filter: drop-shadow(0 6px 22px rgba(0,0,0,0.5)); }

/* ===== Bugün gövdesi (kozmetik tur) ===== */
.brand { position: relative; }
.brand-wheel { position: absolute; left: -10px; top: 0; width: 50px;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,0.45)); }
.brand-word { width: min(60%, 230px); display: block; margin: 0 auto;
  filter: drop-shadow(0 3px 10px rgba(0,0,0,0.45)); }
main:has(#view-auth:not(.hidden)) .brand { display: none; } /* girişte çift logo olmasın */

/* kalori dümeni */
.cal-helm { display: flex; flex-direction: column; gap: 14px; padding: 18px 14px 12px;
  background: linear-gradient(180deg, rgba(74,222,128,0.07), rgba(74,222,128,0.015)), var(--bg);
  border: 1px solid #263a2e; border-radius: var(--radius); }
.helm-wrap { position: relative; width: 176px; height: 176px; margin: 0 auto; }
.helm-ticks { fill: none; stroke: #2b4034; stroke-width: 6; stroke-linecap: round;
  stroke-dasharray: 3 41.77; } /* 8 kulplu dümen izi */
.helm-bg { fill: none; stroke: #17251d; stroke-width: 10; }
.helm-ring { fill: none; stroke: var(--accent); stroke-width: 10; stroke-linecap: round;
  transition: stroke-dashoffset .6s ease;
  filter: drop-shadow(0 0 7px rgba(74,222,128,0.45)); }
.cal-helm.over .helm-ring { stroke: var(--error); filter: drop-shadow(0 0 7px rgba(248,113,113,0.45)); }
.cal-helm .gauge-center b { font-size: 2.15rem; color: var(--accent); }
.cal-helm.over .gauge-center b { color: var(--error); }
.stat-trio { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.stat-trio > div { background: var(--card); border: 1px solid #263a2e; border-radius: 10px;
  padding: 8px 4px; text-align: center; display: flex; flex-direction: column; gap: 2px; }
.stat-trio span { font-size: 0.68rem; color: var(--muted); letter-spacing: 0.4px; }
.stat-trio b { font-size: 0.98rem; }
.helm-note { text-align: center; }

/* haftalık grafik: hedef çizgisi + bugün vurgusu */
.week-chart { position: relative; }
.wk-target { position: absolute; left: 0; right: 0; border-top: 1px dashed #3d5747; pointer-events: none; }
.wk-target::after { content: attr(data-l); position: absolute; right: 2px; top: -13px;
  font-size: 0.58rem; color: var(--muted); }
.wbar .bar { background: #243328; }
.wbar.today .bar { background: linear-gradient(180deg, var(--accent), var(--accent-dark));
  box-shadow: 0 0 10px rgba(74,222,128,0.35); }
.wbar.over .bar { background: linear-gradient(180deg, #f87171, #b91c1c); box-shadow: none; }

/* öğün kartları */
.meal-card { display: flex; gap: 10px; align-items: center; padding: 10px 12px;
  background: var(--bg); border: 1px solid #263a2e; border-radius: 12px; }
.meal-ico { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center;
  background: radial-gradient(circle at 35% 30%, #24352b, #17231c);
  border: 1px solid #2e4436; border-radius: 50%; font-size: 1.12rem; }
.meal-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.meal-info b { font-size: 0.92rem; }
.meal-info .muted { font-size: 0.78rem; display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden; }
.kcal-chip { flex: 0 0 auto; font-size: 0.78rem; color: var(--accent);
  border: 1px solid var(--accent-dark); border-radius: 999px; padding: 4px 10px;
  background: rgba(34,197,94,0.08); white-space: nowrap; }
.meal-total { display: flex; justify-content: space-between; align-items: center;
  padding: 10px 12px; border-radius: 12px; border: 1px solid var(--accent-dark);
  color: var(--accent); font-weight: 700; background: rgba(34,197,94,0.06); }

/* ray tepe arması: dümen yarı dışarıda */
.rail-crest { position: absolute; top: -24px; left: 50%; transform: translateX(-50%);
  width: 48px; z-index: 2; cursor: pointer;
  animation: crest-glow 2.6s ease-in-out infinite; }
.rail-crest:active { transform: translateX(-50%) scale(0.88); }
@keyframes crest-glow {
  0%, 100% { filter: drop-shadow(0 4px 10px rgba(0,0,0,0.6)) drop-shadow(0 0 3px rgba(74,222,128,0.2)); }
  50%      { filter: drop-shadow(0 4px 10px rgba(0,0,0,0.6)) drop-shadow(0 0 13px rgba(74,222,128,0.8)); }
}
/* dümene basınca ray kapanır: ikonlar yukarı emilerek kaybolur, arma yerinde */
.rail { transition: background .35s ease, box-shadow .35s ease, border-color .35s ease; }
.rail-btn, .rail-sep { transition: opacity .22s ease, transform .3s cubic-bezier(.4, 1.5, .4, 1); }
.rail .rail-btn:nth-of-type(2) { transition-delay: .06s; }
.rail .rail-btn:nth-of-type(3) { transition-delay: .12s; }
.rail.collapsed { background: none; border-color: transparent; box-shadow: none; backdrop-filter: none; }
.rail.collapsed .rail-btn, .rail.collapsed .rail-sep {
  opacity: 0; transform: translateY(-16px) scale(0.4); pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
  .rail-crest { animation: none; }
  .rail-btn, .rail-sep { transition: none; }
}

/* arma altı ipucu oku: açıkken ▴ (kapat), kapalıyken ▾ (aç) */
.rail-hint { position: absolute; top: 31px; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center;
  pointer-events: none; z-index: 3;
  animation: hint-bob 1.8s ease-in-out infinite; transition: transform .3s ease; }
.rail-hint i { display: block; width: 8px; height: 8px; margin: -5px 0 0;
  border-right: 2px solid var(--accent); border-bottom: 2px solid var(--accent);
  border-radius: 1px; transform: rotate(-135deg);
  filter: drop-shadow(0 0 4px rgba(74,222,128,0.55)); }
.rail-hint i:first-child { margin-top: 0; }
.rail.collapsed .rail-hint { transform: translateX(-50%) rotate(180deg); }
@keyframes hint-bob { 0%, 100% { margin-top: 0; } 50% { margin-top: 2px; } }
@media (prefers-reduced-motion: reduce) { .rail-hint { animation: none; } }
