:root{
  --grad:linear-gradient(135deg,#7c3aed,#9333ea);
  --grad-soft:linear-gradient(135deg,#8b5cf6,#7c3aed);
  --purple:#7c3aed;
  --purple-ink:#6d28d9;
  --ink:#14142b;
  --muted:#6b6b87;
  --muted2:#9090aa;
  --bg:#f1f0fa;
  --line:#ecebf6;
  --gold:#f5b301;
  --gold2:#f59e0b;
  --green:#16b86a;
  --red:#f43f5e;
}
*{margin:0;padding:0;box-sizing:border-box;font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;overflow:hidden;}
body{background:#e7e6f3;color:var(--ink);font-size:14px;line-height:1.4;overscroll-behavior-y:none;}

/* ===== APP SHELL (phone frame on desktop, fullscreen on mobile) ===== */
.app{
  position:relative;max-width:480px;margin:0 auto;height:100vh;height:100dvh;
  background:var(--bg);overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 0 60px rgba(20,20,60,.12);
}
.screen{display:none;flex:1;min-height:0;flex-direction:column;animation:fade .25s ease;}
.screen.active{display:flex;}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* scrollable content area; leaves room for tabbar */
.scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;padding:0 16px calc(94px + env(safe-area-inset-bottom));}
body.logged-out .scroll{padding-bottom:24px;}
.screen.auth .scroll{display:flex;flex-direction:column;}

/* ===== GENERIC ===== */
.muted{color:var(--muted);}
.row{display:flex;align-items:center;}
.between{justify-content:space-between;}
.gap8{gap:8px;}.gap12{gap:12px;}
.section-title{font-size:16px;font-weight:800;margin:18px 2px 10px;display:flex;align-items:center;justify-content:space-between;}
.section-title .link{font-size:12.5px;font-weight:700;color:var(--purple);cursor:pointer;}
.card{background:#fff;border-radius:18px;padding:14px;box-shadow:0 4px 18px rgba(20,20,60,.05);}

/* ===== TOP HEADER (home) ===== */
.home-head{display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 14px) 16px 6px;}
.home-head-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.home-greet{display:flex;align-items:center;gap:12px;min-width:0;}
.home-greet-text{min-width:0;}
.home-head .hi{font-size:13px;color:var(--muted);}
.home-head h1{font-size:21px;font-weight:800;margin-top:1px;display:flex;align-items:center;gap:6px;}
.home-clinic{display:inline-flex;align-items:center;gap:6px;margin-top:7px;font-size:12px;font-weight:700;color:var(--purple);background:#f1e7ff;padding:4px 11px;border-radius:20px;}
.home-clinic i{font-size:10.5px;}
.family-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;color:#fff;background:linear-gradient(135deg,#7c3aed,#9333ea);padding:3px 11px;border-radius:20px;box-shadow:0 3px 9px rgba(124,58,237,.28);cursor:pointer;}
.family-badge i{font-size:10px;}
.family-badge:active{transform:scale(.96);}

/* Ailem paneli: üye kartları */
.fam-member{display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;margin-bottom:9px;}
.fam-member--head{border-color:rgba(124,58,237,.3);background:#faf7ff;}
.fam-ava{width:42px;height:42px;border-radius:50%;background:#f1e7ff;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.fam-info{flex:1;min-width:0;}
.fam-info strong{display:block;font-size:14px;font-weight:800;}
.fam-you{font-size:10px;font-weight:700;color:#fff;background:var(--purple);border-radius:10px;padding:1px 7px;vertical-align:middle;margin-left:3px;}
.fam-rel{font-size:11.5px;color:var(--muted);}
.fam-dob{font-size:11.5px;font-weight:700;color:var(--purple-ink);text-align:right;white-space:nowrap;display:flex;align-items:center;gap:5px;flex-shrink:0;}
.fam-dob i{color:#ec4899;font-size:11px;}

/* Davet / kayıt ekranı (giriş yapmamış ziyaretçi) */
.invite-clinic-card{background:linear-gradient(135deg,#7c3aed,#9333ea);color:#fff;border-radius:18px;padding:18px;text-align:center;margin-bottom:16px;box-shadow:0 10px 26px rgba(124,58,237,.3);}
.invite-clinic-card .ic-hosp{width:52px;height:52px;border-radius:15px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:24px;margin:0 auto 9px;}
.invite-clinic-card .ic-name{font-size:18px;font-weight:800;}
.invite-clinic-card .ic-by{font-size:13px;opacity:.95;margin-top:3px;}
.invite-ok-ic{font-size:50px;}

/* Dil seçici */
.plang-cur{margin-left:auto;font-weight:700;color:var(--purple);font-size:13px;}
.plang-list{display:flex;flex-direction:column;gap:7px;}
.plang-opt{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;font-size:15px;font-weight:600;color:var(--ink);}
.plang-opt .plang-flag{font-size:20px;line-height:1;}
.plang-opt .plang-label{flex:1;text-align:left;}
.plang-opt .plang-check{color:var(--purple);opacity:0;}
.plang-opt.active{border-color:var(--purple);background:#faf7ff;}
.plang-opt.active .plang-check{opacity:1;}
/* RTL (Arapça) temel destek — dir=rtl çoğu hizalamayı otomatik çevirir */
body.rtl .plang-cur{margin-left:0;margin-right:auto;}
body.rtl .plang-opt .plang-label{text-align:right;}
body.rtl .home-clinic,body.rtl .auth-note{text-align:right;}
.home-head .family-badge{margin-top:6px;}
.profile-top .family-badge{margin-top:6px;}
.head-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex-shrink:0;max-width:58%;}
.head-icons{display:flex;align-items:center;gap:10px;}
.home-chips{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;margin-top:11px;}
.home-chips .family-badge{margin-top:0;flex-shrink:0;}
.home-clinic-tag{position:relative;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:#7c3aed;background:#fff;border:1px solid #ece4fb;padding:6px 12px;border-radius:20px;box-shadow:0 2px 8px rgba(76,29,149,.07);line-height:1.25;min-width:0;}
.home-clinic-tag i{font-size:11px;color:#9333ea;flex-shrink:0;}
.home-clinic-tag .js-clinic-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
/* Buton etrafında yavaşça dönen mor çizgi (comet) */
@property --clinic-ang{syntax:'<angle>';initial-value:0deg;inherits:false;}
.home-clinic-tag::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:conic-gradient(from var(--clinic-ang),rgba(124,58,237,0) 0 52%,rgba(124,58,237,.2) 68%,rgba(124,58,237,.5) 82%,rgba(124,58,237,.85) 93%,#7c3aed 99%,#a78bfa 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:clinicSpin 6s linear infinite;pointer-events:none;}
@keyframes clinicSpin{to{--clinic-ang:360deg;}}
.bell{position:relative;width:42px;height:42px;border-radius:14px;background:#fff;border:none;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--ink);box-shadow:0 4px 14px rgba(20,20,60,.06);cursor:pointer;}
.bell .dot{position:absolute;top:8px;right:9px;width:9px;height:9px;background:var(--red);border-radius:50%;border:2px solid #fff;}
.head-avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 4px 14px rgba(20,20,60,.12);}

/* ===== SUBPAGE HEADER ===== */
.subhead{display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top) + 12px) 16px 12px;}
.subhead h2{font-size:18px;font-weight:800;flex:1;text-align:center;}
.iconbtn{width:42px;height:42px;border-radius:14px;background:#fff;border:none;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--ink);box-shadow:0 4px 14px rgba(20,20,60,.06);cursor:pointer;flex-shrink:0;}
.pts-chip{display:inline-flex;align-items:center;gap:6px;background:var(--grad);color:#fff;font-weight:800;font-size:13px;padding:9px 13px;border-radius:14px;box-shadow:0 6px 16px rgba(124,58,237,.35);flex-shrink:0;}
.pts-chip i{color:#ffe08a;}
.subhead .iconbtn.ghost{visibility:hidden;}

/* ===== POINTS HERO ===== */
.patient-passive-banner{display:flex;align-items:flex-start;gap:10px;background:linear-gradient(90deg,#fff1f2,#ffe4e6);border:1px solid #fecdd3;color:#9f1239;border-radius:16px;padding:13px 15px;margin-bottom:14px;font-size:12.5px;font-weight:600;line-height:1.45;}
.patient-passive-banner i{font-size:17px;color:#e11d48;flex-shrink:0;margin-top:1px;}
.hero{background:var(--grad);border-radius:24px;padding:20px;color:#fff;position:relative;overflow:hidden;box-shadow:0 14px 30px rgba(124,58,237,.32);}
.hero:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.10);top:-60px;right:-40px;}
.hero:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.07);bottom:-50px;left:-30px;}
.hero .top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1;}
.hero .lbl{font-size:12.5px;opacity:.9;}
.hero .pts{font-size:40px;font-weight:800;line-height:1.05;margin:4px 0 0;display:flex;align-items:center;gap:8px;}
.hero .pts .coin{font-size:22px;}
.hero .pts-sub{font-size:13px;opacity:.9;}
.medal{width:84px;height:84px;flex-shrink:0;border-radius:20px;background:linear-gradient(135deg,#ffd24d,#f59e0b);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(245,158,11,.45);position:relative;}
.medal .crown{font-size:30px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.15));}
.medal .mtxt{font-size:9.5px;font-weight:800;color:#7a4b00;margin-top:3px;letter-spacing:.3px;text-transform:uppercase;}
.hero .next{position:relative;z-index:1;margin-top:18px;}
.hero .next .small{font-size:12px;opacity:.9;}
.hero .next .remain{font-size:18px;font-weight:800;margin-top:1px;}
.progress{position:relative;margin-top:14px;}
.progress .track{height:10px;background:rgba(255,255,255,.28);border-radius:20px;overflow:hidden;}
.progress .fill{height:100%;width:0;background:linear-gradient(90deg,#ffd24d,#f59e0b);border-radius:20px;transition:width .8s cubic-bezier(.34,1.2,.64,1);}
.progress .bubble{position:absolute;top:-24px;transform:translateX(-50%);background:#fff;color:var(--purple);font-size:11px;font-weight:800;padding:2px 8px;border-radius:20px;box-shadow:0 4px 10px rgba(0,0,0,.15);transition:left .8s cubic-bezier(.34,1.2,.64,1);}
.progress .ends{display:flex;justify-content:space-between;font-size:11px;opacity:.9;margin-top:7px;}
.hero{cursor:pointer;}
.hero-cta{position:relative;z-index:1;margin-top:14px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12.5px;font-weight:700;background:rgba(255,255,255,.16);border-radius:14px;padding:9px;}
.hero-cta .fa-chevron-right{font-size:10px;opacity:.8;}

/* ===== SEVİYELERİM EKRANI ===== */
#levels-next{margin-bottom:4px;}
.lv-next{border-radius:22px;padding:18px;color:#fff;box-shadow:0 12px 28px rgba(124,58,237,.3);position:relative;overflow:hidden;}
.lv-next:before{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.12);top:-55px;right:-35px;}
.lv-next-top{display:flex;align-items:center;gap:13px;position:relative;z-index:1;}
.lv-next-ic{width:54px;height:54px;flex-shrink:0;border-radius:17px;background:rgba(255,255,255,.2);border:1.5px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-size:27px;}
.lv-next-h{font-size:16.5px;font-weight:800;}
.lv-next-s{font-size:13px;opacity:.95;margin-top:2px;}
.lv-next-s b{font-weight:800;}
.lv-next-bar{height:9px;background:rgba(255,255,255,.28);border-radius:20px;overflow:hidden;margin:15px 0 13px;position:relative;z-index:1;}
.lv-next-fill{height:100%;background:linear-gradient(90deg,#ffd24d,#fbbf24);border-radius:20px;transition:width .8s cubic-bezier(.34,1.2,.64,1);}
.lv-next-unlock{font-size:12px;font-weight:700;opacity:.95;margin-bottom:8px;position:relative;z-index:1;}
.lv-next-benefits{display:flex;flex-direction:column;gap:6px;position:relative;z-index:1;}
.lv-nb{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;background:rgba(255,255,255,.16);border-radius:10px;padding:8px 11px;}
.lv-nb i{font-size:11px;opacity:.95;}

.lv-card{background:#fff;border-radius:18px;overflow:hidden;margin-bottom:12px;box-shadow:0 4px 16px rgba(20,20,60,.06);border:1px solid var(--line);}
.lv-card--cur{border:2px solid var(--purple);box-shadow:0 8px 22px rgba(124,58,237,.18);}
.lv-card--locked{opacity:.94;}
.lv-card-hd{display:flex;align-items:center;gap:11px;padding:13px 14px;color:#fff;}
.lv-card-ic{width:42px;height:42px;flex-shrink:0;border-radius:13px;background:rgba(255,255,255,.22);border:1.5px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-size:21px;}
.lv-card-ti{flex:1;min-width:0;}
.lv-card-ti strong{display:block;font-size:15px;font-weight:800;text-shadow:0 1px 3px rgba(0,0,0,.18);}
.lv-card-ti span{font-size:11px;opacity:.92;}
.lv-badge{font-size:10px;font-weight:800;padding:5px 9px;border-radius:20px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;}
.lv-badge--cur{background:#fff;color:var(--purple-ink);}
.lv-badge--done{background:rgba(255,255,255,.25);color:#fff;}
.lv-badge--lock{background:rgba(0,0,0,.2);color:#fff;}
.lv-card-bd{padding:12px 14px;display:flex;flex-direction:column;gap:8px;}
.lv-b{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;}
.lv-b i{font-size:13px;flex-shrink:0;}
.lv-b.on{color:var(--ink);}
.lv-b.on i{color:var(--green);}
.lv-b.off{color:var(--muted2);}
.lv-b.off i{color:#c4c4d6;font-size:11px;}

/* ===== QUICK ACTIONS ===== */
.quick{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:16px;}
.quick .q{position:relative;background:#fff;border-radius:16px;padding:11px 3px;text-align:center;cursor:pointer;box-shadow:0 4px 14px rgba(20,20,60,.05);transition:transform .15s;}
.quick .q:active{transform:scale(.95);}
.q .qi{width:40px;height:40px;border-radius:13px;margin:0 auto 7px;display:flex;align-items:center;justify-content:center;font-size:16px;}
.q .qt{font-size:10px;font-weight:700;color:var(--ink);}
.q.q-ortho{border:1.5px dashed rgba(124,58,237,.45);}
.q-new{position:absolute;top:-6px;right:-3px;background:var(--purple);color:#fff;font-size:8px;font-weight:800;padding:1.5px 6px;border-radius:9px;letter-spacing:.2px;box-shadow:0 2px 6px rgba(124,58,237,.4);}
.bg-purple{background:#f1e7ff;color:#8b3dff;}
.bg-pink{background:#ffe8f2;color:#ec4899;}
.bg-blue{background:#e6f0ff;color:#2563eb;}
.bg-green{background:#e3fbef;color:#16b86a;}
.bg-orange{background:#fff2dc;color:#f59e0b;}
.bg-red{background:#ffeef0;color:#f43f5e;}
.bg-teal{background:#e0f7f5;color:#0d9488;}

/* ===== APPOINTMENT CARD ===== */
.appt{display:flex;align-items:center;gap:12px;cursor:pointer;}
.appt .ai{width:52px;height:52px;border-radius:16px;background:#f1e7ff;color:#8b3dff;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.appt .info{flex:1;min-width:0;}
.appt .info strong{font-size:14px;font-weight:800;display:block;}
.appt .info .doc{font-size:12px;color:var(--muted);margin-top:1px;}
.appt .info .dt{font-size:12px;color:var(--purple);font-weight:700;margin-top:4px;display:flex;align-items:center;gap:5px;}
.tag{font-size:10.5px;font-weight:800;padding:4px 9px;border-radius:20px;white-space:nowrap;}
.tag-green{background:#e3fbef;color:#16b86a;}
.tag-orange{background:#fff2dc;color:#f59e0b;}
.tag-blue{background:#e0edff;color:#2563eb;}
.tag-grey{background:#f0f0f6;color:#9090aa;}
.tag-purple{background:#f1e7ff;color:#8b3dff;}
/* Davet listesi — arkadaşın tedavileri */
.invite-entry{align-items:flex-start;}
.invite-txns{margin-top:7px;display:flex;flex-direction:column;gap:4px;}
.invite-txn-row{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--text);}
.itxn-name{color:var(--muted2);display:flex;align-items:center;gap:5px;}
.itxn-name small{font-size:10px;color:var(--muted2);opacity:.7;}
.itxn-bonus{font-weight:800;color:#16b86a;font-size:11.5px;white-space:nowrap;}
.itxn-more{font-size:10.5px;color:var(--muted2);margin-top:2px;}

/* ===== TRANSACTION / LIST ROWS ===== */
.list{display:flex;flex-direction:column;}
.txn{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.txn:last-child{border-bottom:none;}
.txn .ti{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;overflow:hidden;}
.txn .ti .ti-photo{width:100%;height:100%;object-fit:cover;display:block;}
.txn .tc{flex:1;min-width:0;}
.txn .tc strong{font-size:13.5px;font-weight:700;display:block;}
.txn .tc .sub{font-size:11.5px;color:var(--muted2);margin-top:1px;}
.txn .amt{font-weight:800;font-size:14px;white-space:nowrap;}
.txn .amt .when{display:block;font-size:10.5px;color:var(--muted2);font-weight:600;text-align:right;margin-top:2px;}
.plus{color:var(--green);}
.minus{color:var(--red);}
/* Ana sayfa "Son İşlemler" — yumuşak satır kartları + tutar hap rozeti */
#home-txns{padding:8px;}
#home-txns .txn{border-bottom:none;padding:9px 9px;border-radius:16px;transition:background .15s ease;}
#home-txns .txn:active{background:#f6f3fe;}
#home-txns .txn .ti{width:48px;height:48px;border-radius:16px;box-shadow:0 5px 12px rgba(20,20,60,.10);}
#home-txns .txn .tc strong{font-size:13.5px;}
#home-txns .txn .tc .sub{margin-top:2.5px;}
.sub-dot{color:#cfcadf;font-size:9px;vertical-align:1px;}
.amt-pill{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:12.5px;padding:6px 11px;border-radius:999px;white-space:nowrap;flex-shrink:0;}
.amt-pill.plus{color:#0d9b54;background:linear-gradient(135deg,#e9faf1,#d7f5e4);}
.amt-pill.minus{color:#dc2626;background:linear-gradient(135deg,#feeeee,#fde3e3);}
.amt-pill .amt-star{font-size:9px;opacity:.75;}

/* ===== CAMPAIGN BANNER ===== */
.promo{background:linear-gradient(135deg,#efe7ff,#f7f1ff);border-radius:22px;padding:18px;position:relative;overflow:hidden;margin-top:6px;}
.promo .eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.6px;color:var(--purple);text-transform:uppercase;}
.promo h3{font-size:17px;font-weight:800;margin:6px 0;max-width:62%;}
.promo p{font-size:12px;color:var(--muted);max-width:62%;}
.promo .tooth{position:absolute;right:-6px;bottom:-6px;font-size:78px;filter:drop-shadow(0 6px 10px rgba(124,58,237,.25));}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;cursor:pointer;font-weight:800;border-radius:14px;transition:transform .15s,opacity .2s,filter .15s;}
.btn:active{transform:scale(.97);}
.btn-primary:active{filter:brightness(.8) saturate(1.3);}
/* Giriş bekleme katmanı: ortada dönen halka */
.login-loading{position:fixed;inset:0;background:rgba(250,249,255,.78);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;z-index:320;}
.login-loading.show{display:flex;}
/* Açılışta oturum varsa: giriş ekranı yerine boot spinner (login flash önlenir) */
body.booting .login-loading{display:flex;}
.ll-box{display:flex;flex-direction:column;align-items:center;gap:14px;}
.ll-spinner{width:56px;height:56px;border-radius:50%;border:5px solid #ede7ff;border-top-color:var(--purple);animation:llspin .75s linear infinite;box-shadow:0 10px 26px rgba(124,58,237,.18);}
@keyframes llspin{to{transform:rotate(360deg)}}
.ll-text{font-size:13.5px;font-weight:700;color:var(--purple-ink);}

/* ── SOĞUK AÇILIŞ SPLASH'I (body.booting) ──────────────────────────────
   Native splash (mor #7c3aed) kapanınca beyaz ekran yerine AYNI mor zemin +
   beyaz logo görünür → kesintisiz geçiş. Marka bloğu sadece boot'ta çıkar;
   manuel giriş bindirmesinde (.show) gizli kalır (giriş ekranı arkada durur). */
.ll-brand{display:none;text-align:center;margin-bottom:10px;}
body.booting .login-loading{background:#7c3aed;backdrop-filter:none;-webkit-backdrop-filter:none;}
body.booting .ll-brand{display:block;}
body.booting .ll-box{animation:llfade .45s ease both;}
@keyframes llfade{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.ll-brand .badge{position:relative;width:82px;height:82px;border-radius:24px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:38px;color:#fff;margin:0 auto 16px;box-shadow:0 14px 34px rgba(0,0,0,.20);overflow:hidden;}
.ll-brand .badge::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 30% 25%,rgba(255,255,255,.35),transparent);}
.ll-brand .badge::after{content:"\f005";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;top:15px;right:17px;font-size:13px;color:#fde047;}
.ll-brand .badge i{position:relative;z-index:1;}
.ll-brand h1{font-size:24px;font-weight:800;letter-spacing:.02em;color:#fff;}
.ll-brand h1 span{color:#e9d5ff;letter-spacing:.05em;}
body.booting .ll-spinner{border-color:rgba(255,255,255,.28);border-top-color:#fff;box-shadow:0 10px 26px rgba(0,0,0,.18);}
body.booting .ll-text{color:rgba(255,255,255,.92);}
.btn-primary{background:var(--grad);color:#fff;font-size:13px;padding:11px 16px;box-shadow:0 8px 18px rgba(124,58,237,.32);}
.btn-block{width:100%;padding:14px;font-size:14px;border-radius:16px;}
.btn-ghost{background:#fff;color:var(--purple);border:1.5px solid #e3d8ff;font-size:13px;padding:10px 14px;}
.btn-wa{background:linear-gradient(135deg,#25d366,#1ebe57);color:#fff;}
.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none;}
.promo .btn{margin-top:12px;}

/* ===== KAYDIRMALI KAMPANYALAR ===== */
.camp-carousel{position:relative;margin-top:6px;}
.camp-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px;}
.camp-track::-webkit-scrollbar{display:none;}
.camp-slide{flex:0 0 100%;scroll-snap-align:center;border-radius:22px;padding:18px;position:relative;overflow:hidden;min-height:128px;box-sizing:border-box;}
.camp-slide .eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.6px;color:var(--purple);text-transform:uppercase;}
.camp-slide h3{font-size:17px;font-weight:800;margin:6px 0;max-width:66%;line-height:1.25;}
.camp-slide p{font-size:12px;color:var(--muted);max-width:66%;}
.camp-slide .tag-soon{display:inline-block;margin-top:10px;background:#fff;color:var(--purple);font-size:10.5px;font-weight:800;padding:5px 11px;border-radius:999px;box-shadow:0 4px 10px rgba(124,58,237,.14);}
.camp-emoji{position:absolute;right:-4px;bottom:-8px;font-size:74px;filter:drop-shadow(0 6px 10px rgba(124,58,237,.22));}
.camp-emoji .camp-ico-img{height:96px;width:auto;object-fit:contain;display:block;}
.camp-dots{display:flex;justify-content:center;gap:6px;margin-top:11px;}
.camp-dot{width:7px;height:7px;border-radius:50%;background:#d9cffb;transition:width .25s,background .25s;cursor:pointer;}
.camp-dot.on{width:20px;background:var(--purple);}

/* ===== FILTER TABS ===== */
.tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 2px;scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tab{flex-shrink:0;padding:9px 16px;border-radius:20px;border:none;background:#fff;color:var(--muted);font-size:12.5px;font-weight:700;cursor:pointer;box-shadow:0 2px 8px rgba(20,20,60,.04);}
.tab.active{background:var(--grad);color:#fff;box-shadow:0 6px 14px rgba(124,58,237,.3);}

/* ===== REWARD CARDS ===== */
.reward{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
.reward .rimg{width:62px;height:62px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:30px;flex-shrink:0;}
.reward .rimg .camp-ico-img{width:54px;height:54px;object-fit:contain;display:block;}
.reward .rc{flex:1;min-width:0;}
.reward .rc h4{font-size:14px;font-weight:800;line-height:1.25;}
.reward .rc .cost{font-size:13px;font-weight:800;color:var(--purple);margin-top:5px;display:flex;align-items:center;gap:5px;}
.reward .rc .cost i{color:var(--gold);}
.reward .ral{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.btn-al{background:var(--grad);color:#fff;font-size:12.5px;font-weight:800;padding:9px 18px;border-radius:13px;border:none;cursor:pointer;box-shadow:0 6px 14px rgba(124,58,237,.3);}
.btn-al[disabled]{opacity:.4;box-shadow:none;cursor:not-allowed;}
.btn-al.insufficient{opacity:.5;box-shadow:none;cursor:pointer;}
/* Randevular: tek liste bölüm başlığı (Yaklaşan / Geçmiş) */
.appt-sec{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.6px;text-transform:uppercase;margin:2px 4px 10px;}
.appt + .appt-sec{margin-top:16px;}
/* Ödül talebi durumları */
.reward-state{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;padding:5px 10px;border-radius:999px;white-space:nowrap;}
.reward-state.pending{background:#fff4e0;color:#b45309;}
.reward-state.approved{background:#e7f7ee;color:#15803d;}
.btn-withdraw{background:#fff;color:#dc2626;border:1.5px solid #fecaca;box-shadow:none;}
.btn-withdraw[disabled]{opacity:.5;cursor:not-allowed;}
.chev{color:var(--muted2);font-size:14px;}
.hint-row{display:flex;align-items:center;gap:12px;background:#fff;border-radius:18px;padding:14px;margin-top:6px;cursor:pointer;box-shadow:0 4px 14px rgba(20,20,60,.05);}
.hint-row .hi{width:42px;height:42px;border-radius:50%;background:#f1e7ff;color:#8b3dff;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;}
.hint-row p{flex:1;font-size:12.5px;color:var(--muted);}

/* ===== TOTAL POINTS SUMMARY ===== */
.pts-summary{background:var(--grad);border-radius:22px;padding:18px 20px;color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 12px 26px rgba(124,58,237,.3);position:relative;overflow:hidden;}
.pts-summary:after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.1);right:-40px;top:-40px;}
.pts-summary .lbl{font-size:12.5px;opacity:.9;}
.pts-summary .big{font-size:34px;font-weight:800;margin-top:2px;}
.pts-summary .ic{font-size:40px;position:relative;z-index:1;}
.mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
.mini{background:#fff;border-radius:16px;padding:13px;box-shadow:0 4px 14px rgba(20,20,60,.05);}
.mini .v{font-size:19px;font-weight:800;}
.mini .v.green{color:var(--green);}
.mini .v.red{color:var(--red);}
.mini .l{font-size:11px;color:var(--muted2);margin-top:2px;}

/* ===== INVITE ===== */
/* ===== DAVET ET — yenilenmiş tasarım ===== */
.invite-hero{position:relative;overflow:hidden;text-align:center;background:linear-gradient(150deg,#7c3aed,#9333ea 58%,#a855f7);border-radius:22px;padding:16px 18px;margin-top:6px;color:#fff;box-shadow:0 10px 24px rgba(124,58,237,.28);}
.invite-hero::before{content:"";position:absolute;top:-46px;right:-34px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.10);}
.invite-hero::after{content:"";position:absolute;bottom:-54px;left:-34px;width:132px;height:132px;border-radius:50%;background:rgba(255,255,255,.07);}
.ih-icon{position:relative;width:48px;height:48px;margin:0 auto 8px;border-radius:14px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 5px 13px rgba(0,0,0,.10);}
.invite-hero h3{position:relative;font-size:16px;font-weight:800;}
.ih-reward{position:relative;display:inline-flex;align-items:center;gap:7px;margin-top:9px;background:#fff;color:var(--purple-ink);font-weight:900;font-size:19px;line-height:1;padding:6px 14px;border-radius:13px;box-shadow:0 6px 14px rgba(0,0,0,.15);}
.ih-reward i{color:var(--gold);font-size:15px;}
.ih-reward span{font-size:10px;font-weight:800;letter-spacing:1px;opacity:.65;}
.invite-hero p{position:relative;font-size:11.5px;opacity:.92;margin-top:8px;padding:0 4px;line-height:1.45;}
.invite-hero p strong{font-weight:800;}

.qr-card{background:#fff;border-radius:22px;padding:18px;text-align:center;box-shadow:0 8px 24px rgba(20,20,60,.07);margin-top:14px;}
.qr-holder{width:150px;height:150px;margin:0 auto;border-radius:16px;overflow:hidden;border:3px solid #f1edfd;padding:9px;background:#fff;box-shadow:0 4px 14px rgba(124,58,237,.10);}
.qr-card .qr-name{font-size:15px;font-weight:800;margin-top:14px;}
.invite-code-pill{display:inline-flex;align-items:center;gap:8px;margin-top:9px;background:#f5f1ff;border:1.5px dashed #d4c7f4;border-radius:13px;padding:7px 15px;}
.invite-code-pill .icp-lbl{font-size:11.5px;color:var(--muted2);font-weight:600;}
.invite-code-pill #invite-code-val{font-size:15px;font-weight:800;color:var(--purple-ink);letter-spacing:1.5px;}
.link-box{display:flex;align-items:center;gap:8px;background:#f7f6fc;border:1.5px solid #ece8f8;border-radius:14px;padding:7px 7px 7px 14px;margin-top:14px;}
.link-box .lk{flex:1;min-width:0;font-size:12.5px;color:var(--purple-ink);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.link-box button{border:none;background:var(--grad);color:#fff;width:40px;height:40px;border-radius:12px;cursor:pointer;font-size:15px;flex-shrink:0;box-shadow:0 4px 10px rgba(124,58,237,.25);}
.steps{margin-top:4px;position:relative;}
.step{display:flex;align-items:flex-start;gap:14px;padding:9px 0;position:relative;}
.steps .step:not(:last-child)::before{content:"";position:absolute;left:16px;top:38px;bottom:-2px;width:2px;background:linear-gradient(#dccff7,#f0ebfb);}
.step .n{width:34px;height:34px;border-radius:12px;background:var(--grad);color:#fff;font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 10px rgba(124,58,237,.25);position:relative;z-index:1;}
.step p{font-size:13px;padding-top:7px;}
.step p strong{font-weight:800;}

/* ===== EMPTY / GENERIC INFO ROWS ===== */
.info-row{display:flex;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid var(--line);}
.info-row:last-child{border-bottom:none;}
.info-row .ii{width:38px;height:38px;border-radius:12px;background:#f4f2fc;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.info-row .ic{flex:1;min-width:0;}
.info-row .ic .k{font-size:11px;color:var(--muted2);}
.info-row .ic .vv{font-size:13.5px;font-weight:700;margin-top:1px;}
.name-edit-input{font-size:13.5px;font-weight:700;margin-top:1px;width:100%;border:none;border-bottom:2px solid var(--purple);background:transparent;outline:none;padding:0 0 2px;color:inherit;font-family:inherit;}

/* ===== PROFILE ===== */
.profile-card{background:var(--grad);border-radius:24px;padding:18px;color:#fff;box-shadow:0 14px 30px rgba(124,58,237,.32);position:relative;overflow:hidden;}
.profile-card:before{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.1);top:-70px;right:-40px;}
.profile-top{display:flex;align-items:center;gap:14px;position:relative;z-index:1;}
.profile-top .pav{position:relative;flex-shrink:0;}
.profile-top .pav img{width:64px;height:64px;border-radius:50%;border:3px solid rgba(255,255,255,.5);object-fit:cover;}
.profile-top .pav .cam{position:absolute;bottom:-2px;right:-2px;width:24px;height:24px;border-radius:50%;background:#fff;color:var(--purple);border:none;font-size:11px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.2);}
.profile-top h3{font-size:18px;font-weight:800;}
.profile-top .mem{font-size:12.5px;opacity:.95;margin-top:3px;display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.18);padding:3px 10px;border-radius:20px;font-weight:700;}
.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:16px;background:rgba(255,255,255,.18);border-radius:16px;overflow:hidden;position:relative;z-index:1;}
.profile-stats .ps{background:transparent;padding:12px 4px;text-align:center;}
.profile-stats .ps .v{font-size:16px;font-weight:800;}
.profile-stats .ps .l{font-size:9.5px;opacity:.9;margin-top:2px;}
.qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.qa{display:flex;align-items:center;gap:10px;background:#fff;border-radius:16px;padding:13px;cursor:pointer;box-shadow:0 4px 14px rgba(20,20,60,.05);transition:transform .15s;}
.qa:active{transform:scale(.97);}
.qa .qai{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.qa .qat{font-size:12.5px;font-weight:700;}
.menu-card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 4px 14px rgba(20,20,60,.05);}
.menu-item{display:flex;align-items:center;gap:13px;padding:15px 16px;border-bottom:1px solid var(--line);cursor:pointer;}
.menu-item:last-child{border-bottom:none;}
.menu-item .mi{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.menu-item .mt{flex:1;font-size:14px;font-weight:600;}
.menu-item .chev{color:var(--muted2);}
.menu-item.danger .mt{color:var(--red);}

/* notification toggles */
.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);}
.toggle-row:last-child{border-bottom:none;}
.toggle-row .tl strong{font-size:13.5px;display:block;}
.toggle-row .tl span{font-size:11px;color:var(--muted2);}
.switch{width:44px;height:26px;background:#e0def0;border-radius:20px;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0;}
.switch.on{background:var(--grad);}
.switch:after{content:"";position:absolute;width:20px;height:20px;background:#fff;border-radius:50%;top:3px;left:3px;transition:left .2s;box-shadow:0 1px 4px rgba(0,0,0,.2);}
.switch.on:after{left:21px;}

/* ===== BOTTOM TABBAR ===== */
.tabbar{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:480px;background:#fff;display:flex;justify-content:space-around;
  padding:8px 6px calc(8px + env(safe-area-inset-bottom));
  box-shadow:0 -6px 24px rgba(20,20,60,.08);border-top:1px solid #f0eff8;z-index:50;
}
body.logged-out .tabbar{display:none;}
.tabbar .t{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;cursor:pointer;color:var(--muted2);font-size:10px;font-weight:700;padding:6px 0;}
.tabbar .t i{font-size:18px;}
.tabbar .t.active{color:var(--purple);}
/* Merkez "Davet Et" — yükseltilmiş yuvarlak mor diş butonu */
.tabbar .t-invite{color:var(--purple);}
.tabbar .t-invite i{
  width:52px;height:52px;border-radius:50%;background:var(--grad);color:#fff;font-size:21px;
  display:flex;align-items:center;justify-content:center;margin-top:-26px;margin-bottom:2px;
  box-shadow:0 8px 18px rgba(124,58,237,.45);border:4px solid #fff;transition:transform .12s;
}
.tabbar .t-invite.active i{background:var(--grad);}
.tabbar .t-invite:active i{transform:scale(.93);}

/* ===== LOGIN ===== */
.auth .scroll{justify-content:center;padding:24px;}
.auth-logo{text-align:center;margin-bottom:22px;}
.auth-logo .badge{position:relative;width:78px;height:78px;border-radius:22px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:36px;color:#fff;margin:0 auto 14px;box-shadow:0 12px 26px rgba(124,58,237,.35);overflow:hidden;}
.auth-logo .badge::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 30% 25%,rgba(255,255,255,.4),transparent);}
.auth-logo .badge::after{content:"\f005";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;top:14px;right:16px;font-size:13px;color:#fde047;}
.auth-logo .badge i{position:relative;z-index:1;}
.auth-logo h1{font-size:23px;font-weight:800;letter-spacing:-.01em;}
.auth-logo h1 span{color:var(--purple);letter-spacing:.04em;}
.auth-logo p{font-size:13px;color:var(--muted);margin-top:6px;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:12.5px;font-weight:700;color:#4b4b6b;margin-bottom:6px;}
.field .inp{display:flex;align-items:center;gap:9px;background:#fff;border:1.5px solid #e8e6f4;border-radius:14px;padding:13px 14px;transition:border-color .2s;}
.field .inp:focus-within{border-color:var(--purple);}
.field .inp i{color:var(--muted2);font-size:14px;}
.field .inp input{border:none;outline:none;font-size:14px;width:100%;background:none;color:var(--ink);}
/* Giriş telefon alanı: örnek numara çok silik görünsün */
#login-phone::placeholder{color:#dcd9ec;opacity:.45;}
#login-phone::-webkit-input-placeholder{color:#dcd9ec;opacity:.45;}
.field .inp .pass-toggle{flex-shrink:0;background:none;border:none;padding:0 2px;cursor:pointer;color:var(--muted2);display:flex;align-items:center;}
.field .inp .pass-toggle:hover{color:var(--purple);}
.field .inp .pass-toggle i{font-size:15px;}
.auth-row{display:flex;justify-content:flex-end;margin:-4px 0 16px;}
.auth-row a{font-size:12.5px;color:var(--purple);font-weight:700;cursor:pointer;}
.auth-note{margin-top:20px;background:#f3f0fc;border-radius:14px;padding:13px 14px;font-size:12px;color:var(--muted);display:flex;gap:10px;align-items:flex-start;}
.auth-note i{color:var(--purple);font-size:15px;margin-top:1px;}

/* ===== TOAST ===== */
.toast{
  position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom));transform:translate(-50%,80px);
  background:#130d35;color:#fff;padding:12px 18px;border-radius:14px;font-size:13px;font-weight:700;
  display:flex;align-items:center;gap:9px;box-shadow:0 10px 30px rgba(20,20,60,.3);
  opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .3s;z-index:200;pointer-events:none;max-width:90%;
}
.toast.show{transform:translate(-50%,0);opacity:1;}
.toast i{color:#a855f7;}
.toast.err i{color:#fb7185;}

/* ===== SHEET (detail popups) ===== */
.sheet-overlay{position:fixed;inset:0;background:rgba(9,8,32,.5);display:none;align-items:flex-end;justify-content:center;z-index:150;}
.sheet-overlay.open{display:flex;}
.sheet{background:#fff;width:100%;max-width:480px;border-radius:24px 24px 0 0;padding:8px 18px calc(22px + env(safe-area-inset-bottom));animation:sheetUp .3s cubic-bezier(.34,1.4,.64,1);max-height:84vh;overflow-y:auto;}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.sheet .grip{width:44px;height:5px;border-radius:5px;background:#e0def0;margin:6px auto 14px;}
.bday-selects{display:grid;grid-template-columns:1fr 1.4fr 1.1fr;gap:10px;}
.bday-selects label{display:block;font-size:11px;color:var(--muted2);margin-bottom:6px;font-weight:700;}
.bday-select{width:100%;padding:13px 12px;border:1.5px solid var(--line);border-radius:14px;font-size:16px;font-weight:700;background:#fff;color:#1a1830;font-family:inherit;cursor:pointer;}
.bday-select:focus{border-color:var(--purple);outline:none;}
.refer-label{display:block;font-size:11px;color:var(--muted2);margin:14px 0 6px;font-weight:700;}
.refer-input{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:14px;font-size:16px;font-weight:600;background:#fff;color:#1a1830;font-family:inherit;}
.refer-input:focus{border-color:var(--purple);outline:none;}
.sheet h3{font-size:17px;font-weight:800;margin-bottom:4px;}
.sheet-icon{width:64px;height:64px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 10px;overflow:hidden;}
.sheet-icon .camp-ico-img{height:44px;width:auto;object-fit:contain;}
/* notifications */
.notif-head{display:flex;align-items:center;justify-content:space-between;margin:2px 0 10px;}
.notif-head .mark{font-size:11.5px;font-weight:700;color:var(--purple);cursor:pointer;flex-shrink:0;}
.notif-empty{text-align:center;color:var(--muted2);font-size:13px;padding:26px 0;}
.notif{display:flex;gap:12px;align-items:flex-start;padding:13px 2px;border-bottom:1px solid var(--line);position:relative;}
.notif:last-child{border-bottom:none;}
.notif .ni{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.notif .nc{flex:1;min-width:0;}
.notif .nc strong{font-size:13.5px;display:block;margin-bottom:2px;}
.notif .nc p{font-size:12px;color:var(--muted);line-height:1.45;}
.notif .nt{font-size:10.5px;color:var(--muted2);margin-top:4px;display:block;}
.notif.unread:after{content:"";position:absolute;right:2px;top:19px;width:8px;height:8px;border-radius:50%;background:var(--purple);}

@media(min-width:481px){
  body{padding:0;}
  .app{margin-top:0;height:100vh;height:100dvh;border-radius:0;}
}

/* ===== GOOGLE İŞLETME / DEĞERLENDİRME ===== */
.google-card{padding:0;overflow:hidden;}
.google-card .google-map{display:block;width:100%;height:160px;border:0;}
.google-card .google-map-link{display:flex;align-items:center;justify-content:center;gap:8px;height:96px;text-decoration:none;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#4285F4,#34a853);}
.google-card .google-map-link i{font-size:18px;}
.google-card .google-body{padding:14px;}
.google-head{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink);}
.google-head i{color:#4285F4;font-size:16px;}
.google-desc{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 12px;}
.google-desc strong{color:var(--gold2);}
.btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:11px;padding:12px;font-size:13px;font-weight:700;color:#fff;background:var(--grad);cursor:pointer;}
.btn-google:active{transform:scale(.98);}
.btn-google i{font-size:14px;}
.google-done{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--green);background:#e6f9f0;border-radius:10px;padding:11px 12px;line-height:1.4;}
.google-done i{font-size:15px;}

/* ===== İLK GİRİŞ ZORUNLU ŞİFRE DEĞİŞTİRME ===== */
.patient-setpass-overlay{position:fixed;inset:0;z-index:9998;display:none;align-items:center;justify-content:center;background:linear-gradient(135deg,#2d2d4e,#4c1d95);padding:24px;}
.patient-setpass-overlay.show{display:flex;}
.setpass-card{width:100%;max-width:340px;background:#fff;border-radius:20px;padding:28px 24px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.35);}
.setpass-icon{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,#9333ea,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 14px;}
.setpass-card h2{font-size:18px;color:#2d2d4e;margin-bottom:6px;}
.setpass-card p{font-size:12.5px;color:#8a8aa6;line-height:1.5;margin-bottom:16px;}
.setpass-card input{width:100%;padding:12px 14px;border:1px solid #e5e7f3;border-radius:11px;font-size:14px;color:#14142b;outline:none;margin-bottom:10px;}
.setpass-card input:focus{border-color:#9333ea;}
.setpass-card .sp-error{min-height:16px;font-size:12px;color:#e11d48;font-weight:600;margin-bottom:8px;}

/* Destek & Yardım — SSS (faq) */
.faq-item{padding:11px 2px;border-bottom:1px solid #f0f0f4;}
.faq-item:last-child{border-bottom:none;}
.faq-item summary{cursor:pointer;font-weight:600;font-size:13px;color:#14142b;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:8px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:17px;color:#9090aa;font-weight:700;line-height:1;}
.faq-item[open] summary::after{content:"–";}
.faq-item p{margin-top:8px;font-size:12.5px;line-height:1.55;}

/* ===== Randevu Talebi (Randevularım) ===== */
.appt-req-top{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;border:none;cursor:pointer;
  background:var(--grad);color:#fff;font-size:12.5px;font-weight:700;padding:10px 13px;border-radius:14px;
  box-shadow:0 6px 14px rgba(124,58,237,.3);white-space:nowrap;}
.appt-req-top:active{filter:brightness(.92);}
.appt-req-top i{font-size:12px;}
.ar-banner{display:flex;align-items:center;gap:11px;background:#eef9f1;border:1px solid #c9efd6;
  border-radius:16px;padding:12px 13px;margin-bottom:14px;}
.ar-banner .ar-ic{width:34px;height:34px;border-radius:11px;background:#16b86a;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.ar-banner .ar-tx{flex:1;display:flex;flex-direction:column;line-height:1.3;}
.ar-banner .ar-tx strong{font-size:13px;color:#0f7a45;}
.ar-banner .ar-tx span{font-size:11.5px;color:#3d7a59;margin-top:1px;}
.ar-banner .ar-cancel{flex-shrink:0;border:none;background:#fff;color:#0f7a45;font-size:11.5px;font-weight:700;
  padding:7px 11px;border-radius:11px;cursor:pointer;box-shadow:0 2px 6px rgba(16,122,69,.12);}
.ar-field{margin-bottom:13px;}
.ar-field label{display:block;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:6px;}
.ar-field .ar-opt{font-weight:500;color:var(--muted);font-size:11.5px;}
.ar-field input,.ar-field textarea{width:100%;border:1.5px solid #e3d8ff;border-radius:13px;
  background:#faf8ff;padding:11px 13px;font-size:13.5px;color:var(--ink);font-family:inherit;outline:none;
  box-sizing:border-box;resize:none;}
.ar-field input:focus,.ar-field textarea:focus{border-color:var(--purple);background:#fff;}
.ar-field input::placeholder,.ar-field textarea::placeholder{color:#a9a4c0;}
.ar-datetime{display:flex;gap:10px;}
.ar-dt-col{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0;}
.ar-dt-cap{font-size:11px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:5px;}
.ar-dt-cap i{color:var(--purple);font-size:11px;}
.ar-datetime input{width:100%;border:1.5px solid #e3d8ff;border-radius:13px;background:#faf8ff;
  padding:11px 12px;font-size:14px;color:var(--ink);font-family:inherit;outline:none;box-sizing:border-box;
  -webkit-appearance:none;appearance:none;min-height:46px;}
.ar-datetime input:focus{border-color:var(--purple);background:#fff;}
.ar-datetime input::-webkit-date-and-time-value{text-align:left;}
.ar-datetime input::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer;}

/* ============ ORTODONTİ ============ */
.ortho-intro{font-size:12.5px;color:var(--muted);margin:2px 2px 14px;line-height:1.5;}
/* İlerleme kartı (hero üzerine) */
.ortho-prog{margin-top:2px;}
.op-top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1;}
.op-lbl{font-size:11px;font-weight:700;letter-spacing:.5px;opacity:.85;}
.op-months{font-size:34px;font-weight:800;line-height:1.05;margin-top:6px;}
.op-months span{font-size:16px;font-weight:700;opacity:.9;}
.op-done{font-size:13px;opacity:.9;margin-top:2px;}
.op-braces{font-size:40px;opacity:.95;position:relative;z-index:1;}
.op-braces.op-braces-photo{font-size:0;opacity:1;align-self:center;}
.ortho-prog .op-top{align-items:center;}
.op-braces-photo img{width:166px;max-width:50vw;max-height:120px;object-fit:contain;display:block;filter:drop-shadow(0 5px 10px rgba(15,6,40,.32));}
.oj-hero .oj-hero-top{align-items:center;}
.oj-hero .op-braces-photo img{width:122px;max-height:100px;}
.op-seg{display:flex;gap:3px;margin-top:16px;position:relative;z-index:1;}
.op-seg span{flex:1;height:11px;border-radius:3px;background:rgba(255,255,255,.22);}
.op-seg span.on{background:#fff;}
.op-foot{display:flex;align-items:center;gap:10px;margin-top:13px;position:relative;z-index:1;flex-wrap:wrap;}
.op-pct{background:rgba(255,255,255,.22);font-size:14px;font-weight:800;padding:4px 13px;border-radius:20px;}
.op-end{font-size:11.5px;opacity:.92;display:flex;align-items:center;gap:6px;}
.op-rozet{display:flex;align-items:center;gap:11px;margin-top:16px;background:rgba(0,0,0,.18);border-radius:16px;padding:11px 14px;position:relative;z-index:1;}
.op-rozet>i{font-size:22px;}
.op-rozet small{display:block;font-size:11px;opacity:.85;}
.op-rozet strong{font-size:14px;font-weight:800;}
/* Hızlı görev ikonları */
.ortho-qrow{display:flex;gap:5px;margin-top:14px;padding:14px 8px;}
.oq{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;}
.oq-ic{width:44px;height:44px;border-radius:50%;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:16px;}
.oq-ic.ghost{background:#f3f2f9;color:#9ca3af;}
.oq-t{font-size:9.5px;font-weight:700;color:var(--ink);line-height:1.2;}
.oq-s{font-size:8px;color:var(--muted);line-height:1.2;}
.oq-ck{font-size:14px;color:#d6d3e0;margin-top:auto;padding-top:5px;}
.oq-ck.on{color:var(--green);}
.oq-ck.arrow{font-size:11px;color:#c4b5fd;}
/* Tedavi yolculuğu timeline */
.ortho-timeline{display:flex;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;}
.otl{flex:0 0 86px;text-align:center;position:relative;}
.otl:not(:last-child):after{content:"";position:absolute;top:18px;left:50%;width:100%;height:3px;background:#ece9f7;z-index:0;}
.otl.done:not(:last-child):after{background:var(--purple);}
.otl-dot{width:38px;height:38px;border-radius:50%;background:#ece9f7;color:#b3a9d6;display:flex;align-items:center;justify-content:center;font-size:15px;margin:0 auto 8px;position:relative;z-index:1;}
.otl.done .otl-dot{background:var(--grad);color:#fff;}
.otl-t{font-size:10px;font-weight:700;color:var(--ink);line-height:1.2;padding:0 4px;}
.otl-d{font-size:9px;color:var(--muted);margin-top:2px;}
/* Bölümler (telefon: tek sütun, tam genişlik) */
.ortho-2col{display:grid;grid-template-columns:1fr;gap:14px;margin-top:14px;}
.ortho-2col>.card{min-width:0;}
/* Fotoğraflar */
.ortho-photos{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.oph{flex:0 0 auto;width:64px;text-align:center;}
.oph-img{position:relative;overflow:hidden;width:64px;height:72px;border-radius:13px;background:linear-gradient(135deg,#ede9fe,#f5f3ff);color:#a78bfa;display:flex;align-items:center;justify-content:center;font-size:24px;}
.oph-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.oph.add .oph-img{background:#faf8ff;border:1.5px dashed #d6c9f5;color:var(--purple);font-size:18px;}
.oph-t{font-size:9.5px;font-weight:700;margin-top:6px;}
.oph-d{font-size:8.5px;color:var(--muted);}
/* Puan kartı */
.op-points{font-size:30px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:8px;}
.op-points i{color:var(--purple);font-size:19px;}
.op-points-sub{font-size:11.5px;color:var(--muted);margin-top:-1px;}
.op-bar{height:8px;border-radius:6px;background:#ece9f7;margin-top:12px;overflow:hidden;}
.op-bar-fill{height:100%;border-radius:6px;background:var(--grad);}
.op-bar-ends{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:5px;}
.op-next{font-size:11px;color:var(--muted);margin-top:13px;line-height:1.6;}
.op-next i{color:#9ca3af;margin-right:3px;}
.op-next b{color:var(--ink);}
.op-next span{color:var(--purple);font-weight:700;}
/* Günlük görevler */
.otask{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);}
.otask:last-of-type{border-bottom:0;}
.otask-ic{width:32px;height:32px;border-radius:10px;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.otask-c{flex:1;min-width:0;}
.otask-c strong{font-size:12px;font-weight:700;display:block;line-height:1.25;}
.otask-c span{font-size:10px;color:var(--muted);}
.otask>i{font-size:18px;color:#d6d3e0;flex-shrink:0;}
.otask.done>i{color:var(--green);}
.ortho-allbtn{width:100%;margin-top:12px;border:0;background:var(--grad);color:#fff;font-weight:800;font-size:12.5px;padding:11px;border-radius:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;font-family:inherit;}
.ortho-allbtn i{font-size:10px;}
/* Rozetler */
.ortho-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:11px 4px;}
.obadge{text-align:center;}
.ob-ic{width:44px;height:44px;border-radius:13px;margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;box-shadow:0 4px 10px rgba(20,20,60,.13);}
.obadge.locked .ob-ic{background:#eceaf3;color:#b8b3c9;box-shadow:none;}
.ob-t{font-size:9px;font-weight:700;line-height:1.2;color:var(--ink);}
.obadge.locked .ob-t{color:#a09bb3;}
.ob-d{font-size:8px;color:var(--muted);margin-top:1px;}
/* Motivasyon */
.ortho-motiv{margin-top:14px;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#f3effe,#ece7fd);}
.om-txt{flex:1;font-size:12px;color:var(--ink);line-height:1.5;}
.om-txt b{color:var(--purple-ink);}
.om-btn{margin-top:11px;border:0;background:#fff;color:var(--purple);font-weight:800;font-size:11.5px;padding:8px 15px;border-radius:20px;cursor:pointer;font-family:inherit;box-shadow:0 3px 9px rgba(124,58,237,.16);}
.om-ill{font-size:38px;color:#a78bfa;flex-shrink:0;}
/* Ortodonti — programda değil (gating) */
.ortho-ne{text-align:center;padding:48px 22px;}
.ortho-ne-ic{width:84px;height:84px;border-radius:26px;margin:0 auto 18px;background:linear-gradient(135deg,#ede9fe,#f5f3ff);color:#a78bfa;display:flex;align-items:center;justify-content:center;font-size:38px;}
.ortho-ne h3{font-size:18px;font-weight:800;color:var(--ink);margin:0 0 10px;}
.ortho-ne p{font-size:13px;color:var(--muted);line-height:1.6;margin:0 auto 20px;max-width:300px;}
.ortho-ne-btn{border:0;background:var(--grad);color:#fff;font-weight:800;font-size:13px;padding:12px 22px;border-radius:14px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:8px;}
/* Ortodonti — önizleme/kilit uyarı banner'ı (programda olmayan hasta) */
.ortho-lock-banner{display:flex;align-items:flex-start;gap:11px;background:linear-gradient(135deg,#fff4e0,#fff8ec);border:1px solid #fde4b8;border-radius:14px;padding:13px 15px;margin:2px 0 14px;}
.ortho-lock-banner>i{color:#f59e0b;font-size:18px;margin-top:1px;flex-shrink:0;}
.ortho-lock-banner strong{display:block;font-size:13px;color:#92560a;font-weight:800;margin-bottom:2px;}
.ortho-lock-banner span{font-size:11.5px;color:#a16207;line-height:1.45;}
/* Ortodonti — sonraki kontrol kartı (occ): normal / yaklaşan (soon) / geciken (late) */
.occ{margin-top:14px;}
.occ-row{display:flex;align-items:center;gap:12px;}
.occ-ic{width:44px;height:44px;border-radius:13px;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:18px;flex:none;}
.occ-c{flex:1;min-width:0;}
.occ-lbl{font-size:10.5px;font-weight:800;letter-spacing:.6px;color:var(--muted2);}
.occ-lbl span{font-weight:600;letter-spacing:0;}
.occ-c strong{display:block;font-size:15px;color:var(--ink);margin-top:2px;}
.occ-sub{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.4;}
.occ-badge{flex:none;font-size:11px;font-weight:800;padding:5px 11px;border-radius:999px;background:#ede9fe;color:var(--purple);white-space:nowrap;}
.occ.occ-soon .occ-ic{background:#fff2dc;color:var(--gold2);}
.occ.occ-soon .occ-badge{background:#fff2dc;color:#b45309;}
.occ.occ-late .occ-ic{background:#ffe4e6;color:#dc2626;}
.occ.occ-late .occ-badge{background:#ffe4e6;color:#dc2626;}
.occ-btn{width:100%;margin-top:12px;border:0;border-radius:13px;padding:12px;font-weight:800;font-size:13px;cursor:pointer;font-family:inherit;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;}
.occ.occ-late .occ-btn{background:linear-gradient(135deg,#ef4444,#dc2626);}
.occ-btn:active{transform:scale(.98);}
.occ-appt{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12.5px;font-weight:700;color:var(--green);cursor:pointer;}
/* Ortodonti — plak (aligner) takibi kartı */
.oal-bar{height:8px;border-radius:999px;background:#efeafd;margin-top:12px;overflow:hidden;}
.oal-bar>div{height:100%;border-radius:999px;background:var(--grad);}
.oal-confirm{display:flex;align-items:center;gap:8px;margin-top:12px;}
.oal-confirm span{flex:1;font-size:12.5px;font-weight:700;color:var(--ink);}
.oal-confirm button{border:0;border-radius:11px;padding:10px 14px;font-weight:800;font-size:12.5px;cursor:pointer;font-family:inherit;}
.oal-confirm .yes{background:var(--grad);color:#fff;}
.oal-confirm .no{background:#f1f0fa;color:var(--muted);}
/* Ortodonti — aşamaya kilitli görev kartı */
.ot-task.locked{opacity:.72;}
.ot-task.locked .ot-ic{filter:grayscale(.35);}
.ot-lock-pill{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;padding:5px 10px;border-radius:999px;background:#f1f0fa;color:var(--muted);white-space:nowrap;}
/* ═══ ÖDEMELER (hasta) ═══ */
.pay-card{display:flex;align-items:center;gap:12px;margin-bottom:12px;cursor:pointer;border:1.5px solid #e4d6ff;}
.pay-card:active{transform:scale(.995);}
.pay-ic{width:44px;height:44px;border-radius:13px;background:#f3ecff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:18px;flex:none;}
.pay-c{flex:1;min-width:0;}
.pay-c strong{display:block;font-size:13.5px;color:var(--ink);}
.pay-c span{font-size:11.5px;color:var(--muted);}
.pay-amt{text-align:right;flex:none;}
.pay-amt b{display:block;font-size:15px;font-weight:800;color:var(--purple);}
.pay-amt small{font-size:11px;color:var(--muted2);font-weight:700;}
.pay-sh-box{background:#faf9ff;border:1.5px solid var(--line);border-radius:14px;padding:4px 14px;}
.pay-sh-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #f0eef9;font-size:13px;}
.pay-sh-row:last-child{border-bottom:0;}
.pay-sh-row span{color:var(--muted);}
.pay-sh-row b{color:var(--ink);text-align:right;}
.pay-sh-row.total b{font-size:18px;color:var(--purple);}
.pay-sh-secure{display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;color:var(--muted2);margin-top:12px;text-align:center;}
/* Ödeme v2 — borç kartı (tasarım: başlık + toplam + kalan + vade + Şimdi Öde) */
.debt-card{display:flex;align-items:center;gap:12px;margin-bottom:12px;cursor:pointer;border:1.5px solid #e4d6ff;}
.debt-card.paid{border-color:var(--line);cursor:default;opacity:.92;}
.debt-card:active{transform:scale(.995);}
.debt-l{flex:1;min-width:0;}
.debt-l strong{display:block;font-size:13.5px;color:var(--ink);margin-bottom:3px;}
.debt-amt{font-size:19px;font-weight:800;color:var(--ink);}
.debt-amt small{font-size:11px;font-weight:700;color:var(--muted2);}
.debt-rem{font-size:12px;font-weight:700;color:#b45309;margin-top:2px;}
.debt-pay{flex:none;border:0;border-radius:12px;padding:10px 16px;font-weight:800;font-size:12.5px;cursor:pointer;font-family:inherit;background:var(--grad);color:#fff;}
.debt-pay:active{transform:scale(.97);}
.pay-due{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;margin-top:6px;padding:3px 9px;border-radius:999px;background:#f1f0fa;color:var(--muted);}
.pay-due.soon{background:#fff2dc;color:#b45309;}
.pay-due.late{background:#ffe4e6;color:#dc2626;}
.pay-due.ok{background:#e3fbef;color:#16a34a;}
/* Toplam bekleyen borç özeti */
.pay-sum{display:flex;align-items:center;gap:12px;background:#f3ecff;border:1.5px solid #e4d6ff;margin-bottom:12px;}
.pay-sum-l{flex:1;}
.pay-sum-l strong{font-size:12.5px;color:var(--purple-ink);}
.pay-sum-amt{font-size:20px;font-weight:800;color:var(--purple);}
.pay-sum-amt small{font-size:11px;color:var(--muted2);}
.pay-sum-ic{width:40px;height:40px;border-radius:12px;background:#fff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:16px;}
/* Ödeme sheet v2: tutar + yöntem + 3D */
.pay-amt-row{display:flex;gap:8px;align-items:center;margin-bottom:6px;}
.pay-amt-row .refer-input{font-size:20px;font-weight:800;color:var(--purple);}
.pay-amt-max{flex:none;border:1.5px solid #d6c9f5;background:#faf8ff;color:var(--purple);border-radius:11px;padding:11px 13px;font-weight:800;font-size:12px;cursor:pointer;font-family:inherit;}
.pay-amt-hint{font-size:11px;color:var(--muted);margin-bottom:12px;}
.pay-method{display:flex;align-items:center;gap:10px;border:1.5px solid var(--purple);background:#faf8ff;border-radius:13px;padding:12px 13px;margin-top:12px;}
.pm-radio{color:var(--purple);font-size:15px;}
.pm-txt{flex:1;}
.pm-txt strong{display:block;font-size:13px;color:var(--ink);}
.pm-txt small{font-size:10.5px;color:var(--muted);}
.pm-cards{font-size:16px;}
.pay-3d{display:flex;align-items:flex-start;gap:8px;font-size:10.5px;color:#4c5aa8;background:#eef2ff;border-radius:11px;padding:10px 12px;margin-top:10px;line-height:1.5;}
.pay-3d i{margin-top:1px;}
.rcpt-badge{display:inline-flex;align-items:center;gap:6px;background:#e3fbef;color:#16a34a;font-weight:800;font-size:12px;padding:6px 13px;border-radius:999px;}
.payh-chev{color:var(--muted2);font-size:11px;flex:none;}
/* Ödemelerim ekranı — geçmiş satırları */
.payh-row{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.payh-row.cancelled{opacity:.65;}
.payh-ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:16px;flex:none;}
.payh-ic.ok{background:#e3fbef;color:#16a34a;}
.payh-ic.no{background:#f1f0fa;color:var(--muted2);}
.payh-c{flex:1;min-width:0;}
.payh-c strong{display:block;font-size:13px;color:var(--ink);}
.payh-c span{font-size:11px;color:var(--muted);}
.payh-test{display:inline-block;font-size:9px;font-weight:800;background:#fff2dc;color:#b45309;padding:2px 7px;border-radius:8px;vertical-align:middle;margin-left:4px;}
.payh-amt{font-size:14px;font-weight:800;color:#16a34a;flex:none;}
.payh-amt.muted{color:var(--muted2);text-decoration:line-through;}
.payh-empty{text-align:center;padding:56px 24px;color:var(--muted);}
.payh-empty i{font-size:38px;color:#d6c9f5;margin-bottom:14px;display:block;}
.payh-empty p{font-size:13px;line-height:1.6;margin:0;}
.payh-note{display:flex;align-items:flex-start;gap:8px;font-size:11px;color:var(--muted2);margin:16px 2px 0;line-height:1.5;}
.payh-note i{margin-top:1px;}
/* Ortodonti — tedavi tamamlandı kutlaması (5d) */
.ortho-complete{background:linear-gradient(135deg,#16a34a,#22c55e);border-radius:20px;padding:20px 18px;margin:2px 0 14px;color:#fff;box-shadow:0 12px 30px rgba(22,163,74,.28);}
.ocp-hero{text-align:center;margin-bottom:16px;}
.ocp-emoji{font-size:40px;line-height:1;margin-bottom:8px;}
.ocp-hero strong{display:block;font-size:20px;font-weight:800;margin-bottom:5px;}
.ocp-hero span{font-size:12.5px;opacity:.94;line-height:1.5;display:block;max-width:280px;margin:0 auto;}
.ocp-stats{display:flex;gap:9px;margin-bottom:14px;}
.ocp-stat{flex:1;background:rgba(255,255,255,.16);border-radius:13px;padding:11px 6px;text-align:center;}
.ocp-stat b{display:block;font-size:19px;font-weight:800;}
.ocp-stat small{font-size:10px;opacity:.9;}
.ocp-retainer{display:flex;gap:11px;background:rgba(255,255,255,.14);border-radius:14px;padding:13px;margin-bottom:14px;}
.ocp-ret-ic{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;font-size:16px;flex:none;}
.ocp-ret-c strong{display:block;font-size:13px;margin-bottom:3px;}
.ocp-ret-c span{font-size:11.5px;opacity:.94;line-height:1.5;}
.ocp-actions{display:flex;gap:9px;}
.ocp-btn{flex:1;border:0;border-radius:12px;padding:12px;font-weight:800;font-size:12.5px;cursor:pointer;font-family:inherit;background:#fff;color:#0f9d58;display:flex;align-items:center;justify-content:center;gap:7px;}
.ocp-btn.ghost{background:rgba(255,255,255,.2);color:#fff;}
.ocp-btn:active{transform:scale(.98);}
/* Ortodonti — ana ekran gezinme kartları (Bakım / Önce-Sonra) */
.ortho-nav-card{display:flex;align-items:center;gap:11px;padding:14px 13px;cursor:pointer;font-family:inherit;text-align:left;border:0;width:100%;}
.onc-ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:17px;flex:none;}
.onc-tx{flex:1;min-width:0;}
.onc-tx strong{display:block;font-size:13.5px;color:var(--ink);}
.onc-tx small{font-size:11px;color:var(--muted);}
.onc-ck{color:var(--muted2);font-size:13px;}
/* Bakım rehberi (care) */
.care-intro{display:flex;align-items:center;gap:12px;background:var(--grad);border-radius:16px;padding:15px;margin:2px 0 14px;color:#fff;}
.care-intro-ic{width:44px;height:44px;border-radius:13px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:19px;flex:none;}
.care-intro strong{display:block;font-size:15px;}
.care-intro span{font-size:12px;opacity:.92;}
.care-card{margin-bottom:12px;}
.care-h{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.care-ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex:none;}
.care-h strong{font-size:14px;color:var(--ink);}
.care-list{margin:0;padding-left:18px;}
.care-list li{font-size:12.5px;line-height:1.55;color:var(--muted);margin-bottom:7px;}
.care-list li:last-child{margin-bottom:0;}
.care-foot{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:#a16207;background:#fff8ec;border:1px solid #fde4b8;border-radius:12px;padding:11px 13px;margin-top:4px;}
.care-foot i{margin-top:1px;}
/* Önce / Sonra (compare) */
.cmp-empty{text-align:center;padding:50px 20px;color:var(--muted);}
.cmp-empty i{font-size:40px;color:#d6c9f5;margin-bottom:14px;}
.cmp-empty p{font-size:13px;line-height:1.6;margin:0 0 18px;}
.cmp-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:2px 0 12px;}
.cmp-fig{position:relative;margin:0;border-radius:16px;overflow:hidden;background:#f4f2fc;}
.cmp-fig img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;}
.cmp-tag{position:absolute;top:10px;left:10px;font-size:10.5px;font-weight:800;letter-spacing:.5px;color:#fff;padding:4px 10px;border-radius:20px;}
.cmp-tag.before{background:rgba(20,20,45,.6);}
.cmp-tag.after{background:linear-gradient(135deg,#16a34a,#22c55e);}
.cmp-fig figcaption{font-size:11px;color:var(--ink);font-weight:700;text-align:center;padding:8px 4px;background:#fff;}
.cmp-gap{text-align:center;font-size:12.5px;color:var(--purple-ink);background:#f3ecff;border-radius:12px;padding:11px;margin-bottom:16px;}
.cmp-gap b{font-weight:800;}
.cmp-strip-lbl{font-size:11.5px;font-weight:700;color:var(--muted2);margin:0 2px 9px;}
.cmp-strip{display:flex;gap:9px;overflow-x:auto;padding-bottom:6px;}
.cmp-thumb{flex:none;width:66px;border:0;background:none;padding:0;cursor:pointer;font-family:inherit;}
.cmp-thumb img{width:66px;height:80px;object-fit:cover;border-radius:11px;border:2.5px solid transparent;display:block;}
.cmp-thumb.from img{border-color:#9090aa;}
.cmp-thumb.to img{border-color:#16a34a;}
.cmp-thumb span{display:block;font-size:9.5px;color:var(--muted);margin-top:4px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* Ortodonti — "Sorun Bildir" butonu (ana ekran) */
.ortho-issue-btn{width:100%;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #ffe0d6;border-radius:15px;padding:13px 15px;margin:0 0 14px;cursor:pointer;font-family:inherit;text-align:left;}
.ortho-issue-btn:active{transform:scale(.995);}
.oib-ic{width:40px;height:40px;border-radius:12px;background:#fff1ec;color:#f2683c;display:flex;align-items:center;justify-content:center;font-size:17px;flex:none;}
.oib-tx{flex:1;min-width:0;}
.oib-tx strong{display:block;font-size:13.5px;color:var(--ink);}
.oib-tx small{font-size:11.5px;color:var(--muted);}
.oib-ck{color:#d6a08c;font-size:13px;}
/* Açık sorun bilgi şeridi */
.ortho-issue-open{display:flex;align-items:center;gap:11px;background:linear-gradient(135deg,#fff4e0,#fff8ec);border:1px solid #fde4b8;border-radius:14px;padding:12px 14px;margin:0 0 14px;}
.ortho-issue-open .oio-ic{width:34px;height:34px;border-radius:10px;background:#fff;color:#f59e0b;display:flex;align-items:center;justify-content:center;font-size:15px;flex:none;}
.ortho-issue-open .oio-c{flex:1;min-width:0;}
.ortho-issue-open strong{display:block;font-size:12.5px;color:#92560a;font-weight:800;}
.ortho-issue-open span{font-size:11px;color:#a16207;}
/* Sorun bildir modalı */
.oim-box{text-align:left;max-width:360px;}
.oim-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.oim-head-ic{width:46px;height:46px;border-radius:14px;background:#fff1ec;color:#f2683c;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;}
.oim-head h3{margin:0 0 2px;font-size:17px;font-weight:800;color:var(--ink);}
.oim-head p{margin:0;font-size:12px;color:var(--muted);}
.oim-label{font-size:12px;font-weight:800;color:var(--muted2);letter-spacing:.4px;margin-bottom:9px;}
.oim-kinds{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.oim-kind{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:11px;border:1.5px solid var(--line);background:#faf9ff;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;font-family:inherit;}
.oim-kind.on{background:#fff1ec;border-color:#f9b79e;color:#d8552b;}
.oim-tip{font-size:11.5px;line-height:1.5;color:#8a5a2b;background:#fff8f1;border:1px solid #ffe6d5;border-radius:11px;padding:10px 12px;margin-bottom:12px;}
.oim-tip b{color:#c2410c;}
.oim-note{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:11px 12px;font-family:inherit;font-size:13px;color:var(--ink);resize:vertical;margin-bottom:10px;box-sizing:border-box;}
.oim-note:focus{outline:none;border-color:var(--purple);}
.oim-photo{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:1.5px dashed #d6c9f5;background:#faf8ff;color:var(--purple);border-radius:12px;padding:11px;font-weight:700;font-size:12.5px;cursor:pointer;font-family:inherit;margin-bottom:14px;}
.oim-photo.has{border-style:solid;border-color:#16b86a;color:#0f9d58;background:#f0fdf6;}
/* Ortodonti — foto açı seçim modalı (oam) */
.oam-prev{width:100%;height:170px;border-radius:16px;overflow:hidden;background:#f4f2fc;margin-bottom:14px;}
.oam-prev img{width:100%;height:100%;object-fit:cover;display:block;}
.oam-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 18px;}
.oam-chip{padding:8px 15px;border-radius:999px;border:1.5px solid var(--line);background:#faf9ff;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;}
.oam-chip.on{background:var(--purple);border-color:var(--purple);color:#fff;}
/* Ortodonti — foto sayfası hero istatistikleri (sahte grafik yerine gerçek veri) */
.ophz-stats{display:flex;gap:8px;margin-top:14px;}
.ophz-stat{flex:1;background:rgba(255,255,255,.16);border-radius:12px;padding:9px 6px;text-align:center;min-width:0;}
.ophz-stat b{display:block;font-size:14px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ophz-stat span{font-size:10px;color:rgba(255,255,255,.85);}
/* Ortodonti — foto açı filtresi boş durumu */
.ophz-empty{text-align:center;color:var(--muted);font-size:12.5px;padding:26px 0;}
.ophz-empty i{display:block;font-size:22px;margin-bottom:8px;color:var(--muted2);}
/* Genel ekran-ortası uyarı modalı (toast(isErr) + ortodonti uyarıları) */
.app-alert-overlay{position:fixed;inset:0;z-index:99999;background:rgba(24,16,46,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:28px;animation:owFade .18s ease;}
.app-alert-box{background:#fff;border-radius:24px;padding:30px 24px 22px;max-width:330px;width:100%;text-align:center;box-shadow:0 24px 64px rgba(24,16,46,.4);animation:owPop .28s cubic-bezier(.2,.9,.3,1.25);}
.app-alert-ic{width:82px;height:82px;border-radius:26px;margin:0 auto 18px;background:linear-gradient(135deg,#ede9fe,#f5f3ff);color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:36px;}
.app-alert-ic.success{background:linear-gradient(135deg,#e3fbef,#f0fdf4);color:var(--green);}
.app-alert-box.compact{padding-bottom:30px;}
.app-alert-box.compact p{margin-bottom:2px;}
.app-alert-box h3{font-size:18px;font-weight:800;color:var(--ink);margin:0 0 10px;line-height:1.3;}
.app-alert-box p{font-size:13px;color:var(--muted);line-height:1.55;margin:0 0 22px;white-space:pre-line;}
.app-alert-btn{width:100%;border:0;background:var(--grad);color:#fff;font-weight:800;font-size:14px;padding:14px;border-radius:15px;cursor:pointer;font-family:inherit;}
.app-alert-btn:active{transform:scale(.98);}
.app-alert-link{width:100%;border:0;background:none;color:var(--purple);font-weight:700;font-size:12.5px;padding:12px 0 2px;cursor:pointer;font-family:inherit;}
@keyframes owFade{from{opacity:0}to{opacity:1}}
@keyframes owPop{from{opacity:0;transform:scale(.9) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* ===== Ortodonti alt sayfa ortak: filtre pill'leri ===== */
.ortho-filters{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 4px;margin-top:14px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.ortho-filters::-webkit-scrollbar{display:none;}
.of-pill{flex:0 0 auto;font-size:12.5px;font-weight:700;color:#6b7280;background:#fff;border-radius:20px;padding:9px 15px;white-space:nowrap;cursor:pointer;box-shadow:0 2px 8px rgba(20,20,60,.05);display:inline-flex;align-items:center;gap:6px;}
.of-pill.active{background:var(--grad);color:#fff;box-shadow:0 4px 12px rgba(124,58,237,.3);}
.of-pill i{font-size:11px;}
.ot-empty{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:13px;font-weight:600;padding:34px 16px;text-align:center;}
.ot-empty i{font-size:16px;color:#c4b5fd;}
.oj-lbl{font-size:13px;opacity:.9;}

/* ===== TEDAVİ YOLCULUĞUM ===== */
.oj-hero{margin-top:2px;}
.oj-hero-top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1;}
.oj-bar-row{display:flex;align-items:center;gap:12px;margin-top:14px;position:relative;z-index:1;}
.oj-bar-row .op-seg{flex:1;margin-top:0;}
.oj-pct{font-size:24px;font-weight:800;flex-shrink:0;}
.oj-end{display:flex;align-items:center;gap:11px;margin-top:15px;position:relative;z-index:1;}
.oj-end>i{font-size:18px;opacity:.9;}
.oj-end small{display:block;font-size:11px;opacity:.85;}
.oj-end strong{font-size:14px;font-weight:800;}
.oj-timeline{position:relative;}
.oj-timeline:before{content:"";position:absolute;left:17px;top:16px;bottom:34px;width:2px;background:#e4def5;}
.ojt{display:flex;gap:13px;margin-bottom:12px;position:relative;}
.ojt-node{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;background:#ece9f7;color:#b3a9d6;position:relative;z-index:1;margin-top:14px;}
.ojt.done .ojt-node{background:var(--grad);color:#fff;}
.ojt.current .ojt-node{background:#fff;color:var(--purple);border:3px solid var(--purple);}
.ojt-card{flex:1;min-width:0;display:flex;align-items:center;gap:11px;padding:13px;}
.ojt-card.cur{flex-direction:column;align-items:stretch;gap:0;border:1.5px solid #e3d8ff;}
.ojt-row{display:flex;align-items:center;gap:11px;}
.ojt-ic{width:40px;height:40px;border-radius:12px;background:#f3f1fb;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.ojt-body{flex:1;min-width:0;}
.ojt-body strong{font-size:14px;font-weight:800;display:block;}
.ojt-body span{font-size:11.5px;color:var(--muted);}
.ojt-right{text-align:right;flex-shrink:0;}
.ojt-date{font-size:11px;color:var(--muted);margin-bottom:5px;white-space:nowrap;}
.ojt.current .ojt-date{margin-bottom:0;margin-top:3px;}
.ojt-cur{font-size:12px;font-weight:800;color:var(--purple);white-space:nowrap;}
.ojt-soon{font-size:11px;font-weight:700;color:#9ca3af;}
.ojt.future .ojt-card{opacity:.7;}
.ojt-tip{background:#f5f2ff;border-radius:13px;padding:11px 13px;margin-top:12px;}
.ojt-tip-h{font-size:12px;font-weight:800;color:var(--purple);display:flex;align-items:center;gap:6px;}
.ojt-tip p{font-size:11.5px;color:#6b7280;line-height:1.5;margin:6px 0 0;}
.oj-goal{display:flex;align-items:center;gap:13px;margin-top:6px;background:linear-gradient(135deg,#f3effe,#ece7fd);}
.oj-goal-ic{width:54px;height:54px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.oj-goal-txt{flex:1;min-width:0;}
.oj-goal-txt strong{font-size:13.5px;font-weight:800;color:var(--ink);display:block;}
.oj-goal-txt span{font-size:11.5px;color:#6b7280;line-height:1.45;}
.oj-goal-days{text-align:center;flex-shrink:0;background:#fff;border-radius:14px;padding:8px 13px;box-shadow:0 3px 8px rgba(124,58,237,.12);}
.oj-goal-days b{font-size:24px;font-weight:800;color:var(--purple);display:block;line-height:1;}
.oj-goal-days small{font-size:10px;color:var(--muted);font-weight:700;}

/* ===== SON FOTOĞRAFLARIM ===== */
.ophz-intro{display:flex;align-items:center;gap:12px;margin:2px 2px 14px;}
.ophz-intro p{flex:1;font-size:12px;color:var(--muted);line-height:1.5;margin:0;}
.ophz-addbtn{border:0;background:var(--grad);color:#fff;font-weight:800;font-size:12px;padding:10px 14px;border-radius:12px;cursor:pointer;font-family:inherit;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:6px;}
.ophz-addbtn.outline{background:#fff;color:var(--purple);border:1.5px solid #e3d8ff;}
.ophz-hero{margin-top:0;}
.ophz-hero-top{display:flex;align-items:center;gap:14px;position:relative;z-index:1;}
.ophz-ring{position:relative;width:78px;height:78px;flex-shrink:0;}
.ophz-ring svg{width:100%;height:100%;}
.ophz-ring span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;}
.ophz-hero-txt strong{font-size:16px;font-weight:800;display:block;}
.ophz-hero-txt span{font-size:12px;opacity:.92;line-height:1.45;}
.ophz-chart{margin-top:14px;position:relative;z-index:1;}
.ophz-chart svg{width:100%;height:58px;display:block;}
.ophz-chart-x{display:flex;justify-content:space-between;font-size:9.5px;opacity:.85;margin-top:4px;}
.ophz-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;}
.ophz-card{padding:0;overflow:hidden;}
.ophz-img{position:relative;aspect-ratio:1/1.05;background:linear-gradient(135deg,#ede9fe,#f5f3ff);display:flex;align-items:center;justify-content:center;color:#c4b5fd;font-size:52px;}
.ophz-card.locked .ophz-img>i{filter:blur(4px);opacity:.6;}
.ophz-badge{position:absolute;z-index:2;top:8px;left:8px;background:rgba(124,58,237,.92);color:#fff;font-size:10px;font-weight:800;padding:3px 9px;border-radius:10px;}
.ophz-menu{position:absolute;z-index:2;top:7px;right:7px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#6b7280;cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;}
/* fotoğraf silme onayı (kart üstü) */
.ophz-del{position:absolute;inset:0;z-index:4;background:rgba(17,12,34,.66);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:10px;text-align:center;}
.ophz-del p{color:#fff;font-size:12px;font-weight:700;margin:0;line-height:1.35;}
.ophz-del-row{display:flex;gap:8px;}
.ophz-del button{border:0;border-radius:10px;padding:7px 14px;font-size:12px;font-weight:800;font-family:inherit;cursor:pointer;}
.ophz-del .yes{background:#ef4444;color:#fff;}
.ophz-del .no{background:rgba(255,255,255,.94);color:#374151;}
.ophz-lock{position:absolute;top:7px;right:7px;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.92);color:#9ca3af;display:flex;align-items:center;justify-content:center;font-size:12px;}
.ophz-foot{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;gap:6px;}
.ophz-foot>span:first-child{font-size:10.5px;color:var(--muted);}
.ophz-tag{font-size:10px;font-weight:700;color:var(--purple);background:#f1e7ff;padding:3px 8px;border-radius:10px;white-space:nowrap;}
.ophz-motiv{display:flex;align-items:center;gap:12px;margin-top:16px;background:#f5f2ff;}
.ophz-motiv-ic{width:48px;height:48px;border-radius:13px;background:#fff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;box-shadow:0 3px 8px rgba(124,58,237,.1);}
.ophz-motiv-txt{flex:1;min-width:0;}
.ophz-motiv-txt strong{font-size:13px;font-weight:800;display:block;color:var(--ink);}
.ophz-motiv-txt span{font-size:11px;color:#6b7280;line-height:1.45;}
.ophz-tips{margin-top:14px;}
.ophz-tip{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--line);}
.ophz-tip:last-child{border-bottom:0;}
.ophz-tip-ic{width:34px;height:34px;border-radius:10px;background:#f3f1fb;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.ophz-tip span{font-size:12px;color:#4b5563;}

/* ===== TÜM GÖREVLER ===== */
.ot-hero{margin-top:2px;display:flex;justify-content:space-between;align-items:flex-start;}
.ot-hero-left{position:relative;z-index:1;}
.ot-seg{display:flex;gap:5px;margin-top:14px;max-width:230px;}
.ot-seg span{flex:1;height:8px;border-radius:4px;background:rgba(255,255,255,.25);}
.ot-seg span.on{background:#46d39a;}
.ot-hero-sub{font-size:13px;margin-top:12px;opacity:.95;position:relative;z-index:1;}
.ot-task{margin-top:12px;}
.ot-top{display:flex;align-items:flex-start;gap:12px;}
.ot-ic{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.ot-body{flex:1;min-width:0;}
.ot-body strong{font-size:14px;font-weight:800;display:block;}
.ot-body>span{font-size:11.5px;color:var(--muted);line-height:1.4;display:block;margin-top:2px;}
.ot-when{font-size:11px;color:#9ca3af;margin-top:6px;display:flex;align-items:center;gap:5px;}
.ot-right{text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:64px;}
.ot-pts{font-size:13px;font-weight:800;color:var(--green);white-space:nowrap;}
.ot-check{font-size:24px;color:var(--green);}
.ot-arrow{font-size:14px;color:var(--purple);background:#f1e7ff;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.ot-meta{font-size:10px;color:var(--muted);line-height:1.3;}
.ot-lock{width:30px;height:30px;border-radius:50%;background:#eceaf3;color:#b8b3c9;display:flex;align-items:center;justify-content:center;font-size:13px;}
.ot-task.locked{opacity:.82;}
.ot-chips{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.ot-chip{display:inline-flex;align-items:center;gap:6px;background:#f5f3fb;border-radius:20px;padding:6px 11px;font-size:11px;font-weight:700;color:#4b5563;}
.ot-chip i{color:var(--green);font-size:13px;}
.ot-badgebanner{display:flex;align-items:center;gap:12px;margin-top:16px;background:linear-gradient(135deg,#f3effe,#ece7fd);}
.ot-bb-ic{width:48px;height:48px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.ot-bb-txt{flex:1;min-width:0;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.4;}
.ot-bb-btn{flex-shrink:0;border:1.5px solid #e3d8ff;background:#fff;color:var(--purple);font-weight:800;font-size:11.5px;padding:9px 13px;border-radius:20px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}

/* ===== Görevler: hasta self-check vs klinik (salt-okunur) ===== */
.ot-sec{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 2px 12px;}
.ot-sec-h{display:flex;align-items:center;gap:9px;font-size:15.5px;font-weight:800;color:var(--ink);}
.ot-sec-ic{width:28px;height:28px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;flex-shrink:0;}
.ot-sec-ic.self{background:var(--grad);}
.ot-sec-ic.clinic{background:linear-gradient(135deg,#2563eb,#60a5fa);}
.ot-sec-note{font-size:10.5px;font-weight:800;padding:5px 11px;border-radius:20px;white-space:nowrap;flex-shrink:0;}
.ot-sec-note.self{color:var(--purple);background:#f1e7ff;}
.ot-sec-note.clinic{color:#2563eb;background:#e6f0ff;}
.ot-clinic-note{font-size:11px;color:#6b7280;background:#f5f6fa;border-radius:11px;padding:9px 12px;margin-bottom:10px;display:flex;align-items:center;gap:8px;line-height:1.4;}
.ot-clinic-note i{color:#9ca3af;flex-shrink:0;}
/* dokunmatik checkbox (hasta görevi) */
.ot-checkbox{width:30px;height:30px;border-radius:50%;border:2px solid #d8d4e4;display:flex;align-items:center;justify-content:center;color:transparent;font-size:13px;flex-shrink:0;transition:background .15s,border-color .15s,color .15s;}
.ot-task.done .ot-checkbox{background:var(--green);border-color:var(--green);color:#fff;}
.ot-task[onclick]{cursor:pointer;}
.ot-task[onclick]:active{transform:scale(.992);}
/* chip on/off (tıklanabilir) */
.ot-chip{cursor:pointer;user-select:none;transition:background .15s;}
.ot-chip i{color:#cdd3dd;}
.ot-chip.on{background:#e3fbef;color:#0f9d58;}
.ot-chip.on i{color:var(--green);}
/* klinik durum rozeti (salt-okunur) */
.ot-clinic-pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;padding:6px 11px;border-radius:20px;background:#edeaf2;color:#8b87a0;white-space:nowrap;}
.ot-clinic-pill.done{background:#e3fbef;color:#0f9d58;}
.ot-task.clinic .ot-right{gap:8px;}

/* yüklenen tedavi fotoğrafı + giriş animasyonu */
.ophz-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.ophz-badge,.ophz-menu,.ophz-lock{z-index:2;}
.ophz-new{animation:ophzPop .35s ease;}
@keyframes ophzPop{from{opacity:0;transform:scale(.92);}to{opacity:1;transform:scale(1);}}

/* ===== AĞIZ SAĞLIĞIM (Kişisel Ağız Sağlığı — test modülü, Faz 1) ===== */
.oc-home-card{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#efe7ff,#f7f1ff);border:1.5px dashed rgba(124,58,237,.35);border-radius:18px;padding:14px;margin-top:14px;cursor:pointer;transition:transform .15s;}
.oc-home-card:active{transform:scale(.98);}
.oc-home-ic{width:46px;height:46px;flex-shrink:0;border-radius:15px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 4px 12px rgba(124,58,237,.14);}
.oc-home-tx{flex:1;min-width:0;}
.oc-home-tx strong{font-size:13.5px;font-weight:800;display:flex;align-items:center;}
.oc-home-tx .sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.oc-new-inline{position:static;margin-left:5px;}
.oc-home-score{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;border-radius:13px;background:var(--grad);color:#fff;font-size:13px;font-weight:800;padding:0 8px;box-shadow:0 5px 12px rgba(124,58,237,.3);flex-shrink:0;}
.oc-home-chev{color:var(--purple);font-size:12px;}

/* Skor hero */
.oc-hero{background:var(--grad);border-radius:22px;padding:18px;color:#fff;position:relative;overflow:hidden;box-shadow:0 12px 28px rgba(124,58,237,.3);margin-top:10px;}
.oc-hero:before{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.12);top:-55px;right:-35px;}
.oc-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:relative;z-index:1;}
.oc-hero .lbl{font-size:12px;font-weight:600;opacity:.9;}
.oc-hero-score{font-size:34px;font-weight:800;line-height:1.15;margin-top:3px;}
.oc-hero-max{font-size:15px;font-weight:700;opacity:.75;margin-left:2px;}
.oc-hero-msg{font-size:12px;font-weight:600;opacity:.92;margin-top:4px;}
.oc-streak{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:1px;background:rgba(255,255,255,.16);border:1.5px solid rgba(255,255,255,.3);border-radius:16px;padding:9px 13px;}
.oc-streak-fire{font-size:18px;}
.oc-streak-n{font-size:17px;font-weight:800;}
.oc-streak-t{font-size:9.5px;font-weight:700;opacity:.85;white-space:nowrap;}
.oc-hero-bar{height:9px;background:rgba(255,255,255,.28);border-radius:20px;overflow:hidden;margin-top:14px;position:relative;z-index:1;}
.oc-hero-fill{height:100%;width:0;background:linear-gradient(90deg,#ffd24d,#fbbf24);border-radius:20px;transition:width .8s cubic-bezier(.34,1.2,.64,1);}

/* Görev kartları */
.oc-task{display:flex;align-items:center;gap:12px;margin-bottom:10px;cursor:pointer;border:1.5px solid transparent;transition:border-color .2s,background .2s,transform .12s;}
.oc-task:active{transform:scale(.98);}
.oc-task .ti{width:46px;height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.oc-task-tx{flex:1;min-width:0;}
.oc-task-tx strong{font-size:13.5px;font-weight:700;}
.oc-task-tx .sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.oc-task-w{font-size:11px;font-weight:800;color:var(--purple);background:#f1e7ff;border-radius:999px;padding:4px 9px;flex-shrink:0;}
.oc-check{width:26px;height:26px;flex-shrink:0;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent;transition:all .2s;}
.oc-task.done{border-color:rgba(22,184,106,.4);background:#f4fdf8;}
.oc-task.done .oc-check{background:var(--green);border-color:var(--green);color:#fff;}
.oc-task.done .oc-task-w{color:var(--green);background:#e3fbef;}

/* Kısayollar */
.oc-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;}
.oc-link{background:#fff;border-radius:16px;padding:13px 8px;text-align:center;cursor:pointer;box-shadow:0 4px 14px rgba(20,20,60,.05);transition:transform .15s;}
.oc-link:active{transform:scale(.95);}
.oc-link .qi{width:40px;height:40px;border-radius:13px;margin:0 auto 7px;display:flex;align-items:center;justify-content:center;font-size:16px;}
.oc-link .qt{font-size:11.5px;font-weight:700;}

/* Haftalık rapor ızgarası */
.oc-grid-card{padding:12px 8px;overflow-x:auto;}
.oc-grid{width:100%;border-collapse:collapse;font-size:11px;}
.oc-grid th{font-size:10px;font-weight:800;color:var(--muted2);padding:4px 2px;text-align:center;}
.oc-grid th.today{color:var(--purple);}
.oc-grid td{padding:4px 2px;text-align:center;}
.oc-grid-task{text-align:left!important;font-weight:700;font-size:10.5px;color:var(--ink);white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis;}
.oc-cell{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:8px;background:var(--line);color:transparent;font-size:9px;}
.oc-cell.on{background:#e3fbef;color:var(--green);}
.oc-grid-total td{border-top:1px solid var(--line);padding-top:7px;}
.oc-grid-score{font-weight:800;color:var(--purple);font-size:10.5px;}
.oc-habit{display:flex;align-items:center;gap:12px;padding:8px 2px;}
.oc-habit .ti{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}

/* Günlük (notlar) */
.oc-diary-form{margin-top:10px;padding:16px;}
.oc-diary-q{font-size:14px;font-weight:800;margin-bottom:11px;}
.oc-moods{display:flex;gap:8px;margin-bottom:12px;}
.oc-mood{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:10px 6px;border-radius:13px;border:1.5px solid var(--line);background:#fff;font-size:12px;font-weight:700;color:var(--ink);cursor:pointer;transition:all .15s;}
.oc-mood.on{border-color:var(--purple);background:#f1e7ff;color:var(--purple-ink);}
.oc-diary-note{width:100%;border:1.5px solid var(--line);border-radius:13px;padding:11px 12px;font-size:13px;resize:none;margin-bottom:12px;outline:none;background:#fafaff;color:var(--ink);}
.oc-diary-note:focus{border-color:var(--purple);}
.oc-empty{text-align:center;color:var(--muted);font-size:12.5px;font-weight:600;padding:22px 14px;}

/* ===== MİSAFİR ANA SAYFA (guest home — test modülü, Faz 1) ===== */
/* Misafir tabbar yalnız guest-mode'da görünür; ana tabbar gizlenir */
.guest-tabbar{display:none;}
body.guest-mode .tabbar:not(.guest-tabbar){display:none;}
body.guest-mode .guest-tabbar{display:flex;}
body.logged-out .guest-tabbar{display:none;}

.gh-guest-btn{margin-top:14px;}

/* ---- Yakınındaki Klinikler: premium keşfet bölümü (yatay slider) ---- */
/* Bölüm container'ı: büyük beyaz rounded kart */
.gh-clinic-discovery{background:#fff;border-radius:24px;padding:16px;box-shadow:0 8px 28px rgba(20,20,60,.08);margin-top:18px;}
.gh-clinic-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.gh-clinic-title{font-size:15.5px;font-weight:800;}
.gh-clinic-head .link{font-size:12.5px;font-weight:700;color:var(--purple);cursor:pointer;display:inline-flex;align-items:center;gap:4px;}

/* Filtre chip'leri — yatay kaydırılabilir */
.gh-clinic-filters{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 12px;-webkit-overflow-scrolling:touch;}
.gh-clinic-filters::-webkit-scrollbar{display:none;}
.gh-clinic-chip{flex-shrink:0;padding:10px 14px;border-radius:999px;border:1px solid #ecebf6;background:#fff;color:var(--ink);font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap;}
.gh-clinic-chip.on{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(124,58,237,.3);}
.gh-clinic-chip:active{transform:scale(.95);}

/* Yatay kart slider'ı — DİKEY LİSTE DEĞİL (ilk ekranda 3 kart + 4.'ün ucu) */
.gh-clinic-slider{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  /* container padding'ine taşarak 3 tam kart + 4.'ün ucu görünür */
  margin:0 -16px;padding:0 12px 8px;scroll-padding-left:12px;}
.gh-clinic-slider::-webkit-scrollbar{display:none;}
.gh-clinic-empty{flex:0 0 100%;text-align:center;color:var(--muted);font-size:12.5px;font-weight:600;padding:22px 10px;}

/* Klinik kartı (kompakt) */
/* Not: 135px hedeflendi; 480px kabukta 3 tam kart + 4.'ün ucu için 124px gerekiyor */
.gh-clinic-card{min-width:124px;max-width:124px;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 8px 24px rgba(20,20,60,.08);scroll-snap-align:start;cursor:pointer;transition:transform .15s;}
.gh-clinic-card:active{transform:scale(.97);}

/* Kart görseli — mor/lila gradyan + cam klinik hissi (fotoğraf placeholder'ı) */
.gh-clinic-image{position:relative;height:78px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.gh-clinic-image::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,.06) 38%,transparent 55%,rgba(255,255,255,.14) 80%,rgba(255,255,255,.02) 100%);}
.gh-clinic-image::after{content:"";position:absolute;left:0;right:0;bottom:0;height:32px;background:linear-gradient(180deg,transparent,rgba(20,20,60,.20));}
.gh-clinic-emoji{font-size:30px;position:relative;z-index:1;filter:drop-shadow(0 6px 12px rgba(0,0,0,.18));}

/* Favori — beyaz yuvarlak kalp (kompakt) */
.gh-clinic-fav{position:absolute;top:7px;right:7px;z-index:2;width:27px;height:27px;border-radius:50%;border:none;background:rgba(255,255,255,.94);color:var(--muted2);font-size:11px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.14);transition:transform .12s,color .15s;}
.gh-clinic-fav:active{transform:scale(.85);}
.gh-clinic-fav.on{color:var(--red);}

/* Kart içeriği (kompakt) */
.gh-clinic-content{padding:9px;}
.gh-clinic-name{display:block;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gh-clinic-rate{font-size:11px;font-weight:800;color:var(--ink);margin-top:3px;}
.gh-clinic-rev{color:var(--muted2);font-weight:700;}
.gh-clinic-meta{font-size:11px;font-weight:600;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gh-clinic-btn{display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:7px 10px;border:none;border-radius:12px;background:var(--grad);color:#fff;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 5px 12px rgba(124,58,237,.28);transition:transform .12s,filter .15s;}
.gh-clinic-btn:active{transform:scale(.95);filter:brightness(.9);}
.gh-clinic-btn i{font-size:10px;}

/* Klinik detay ekranının kullandığı ortak parçalar */
.gh-cc-emoji{font-size:42px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.18));position:relative;z-index:1;}
.gh-cc-fade{position:absolute;left:0;right:0;bottom:0;height:34px;background:linear-gradient(180deg,transparent,rgba(20,20,60,.22));z-index:1;}
.gh-cc-fav{position:absolute;top:8px;right:8px;z-index:2;width:30px;height:30px;border-radius:50%;border:none;background:rgba(255,255,255,.92);color:var(--muted2);font-size:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 8px rgba(0,0,0,.12);transition:transform .12s,color .15s;}
.gh-cc-fav:active{transform:scale(.85);}
.gh-cc-fav.on{color:var(--red);}
.gh-cc-rate{font-size:11.5px;font-weight:800;color:var(--ink);margin-top:4px;}
.gh-cc-star{color:var(--gold2);}
.gh-cc-rev{color:var(--muted2);font-weight:700;}

/* Klinik detay ekranı */
.gh-dt-cover{position:relative;height:170px;border-radius:22px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-top:8px;box-shadow:0 12px 26px rgba(124,58,237,.18);}
.gh-dt-cover::before{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.15);top:-60px;left:-40px;}
.gh-dt-cover::after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.1);bottom:-45px;right:-25px;}
.gh-dt-cover .gh-cc-fav{width:38px;height:38px;font-size:16px;top:12px;right:12px;}
.gh-dt-card{margin-top:12px;padding:16px;}
.gh-dt-name{font-size:18px;font-weight:800;}
.gh-dt-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.gh-dt-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--purple-ink);background:#f1e7ff;border-radius:999px;padding:6px 11px;}
.gh-dt-pill i{font-size:10px;}
.gh-dt-sec{font-size:13px;font-weight:800;margin-bottom:7px;}
.gh-dt-about{font-size:12.5px;color:var(--muted);line-height:1.55;}
#gh-detail-body > .btn-block{margin-top:16px;}

/* Şehir seçim penceresi seçenekleri */
.gh-city-opt{margin-bottom:8px;}
.gh-city-opt.on{border-color:var(--purple);background:#f7f2ff;}

/* ===== PREMIUM TAKİP KARTLARI (şeker / su / ilaç — misafir ana sayfa, Faz 1) ===== */
.gt-card{background:#fff;border-radius:20px;padding:16px;box-shadow:0 4px 18px rgba(20,20,60,.05);margin-top:16px;}
.gt-head{display:flex;align-items:center;gap:12px;}
.gt-ic{width:44px;height:44px;flex-shrink:0;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:20px;}
.gt-ic-pink{background:#ffe8f2;}
.gt-ic-blue{background:#e6f0ff;}
.gt-ic-purple{background:#f1e7ff;}
.gt-tx{flex:1;min-width:0;}
.gt-tx strong{font-size:13.5px;font-weight:800;display:block;}
.gt-tx .sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.gt-val{font-size:14px;font-weight:800;color:var(--purple);flex-shrink:0;}
.gt-bar{height:8px;background:var(--line);border-radius:20px;overflow:hidden;margin-top:12px;}
.gt-fill{height:100%;width:0;border-radius:20px;transition:width .5s cubic-bezier(.34,1.2,.64,1);}
.gt-fill-pink{background:linear-gradient(90deg,#f472b6,#ec4899);}
.gt-fill-blue{background:linear-gradient(90deg,#7dd3fc,#0ea5e9);}
.gt-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;}
.gt-status{font-size:11.5px;font-weight:700;color:var(--muted);}
.gt-status.ok{color:var(--green);}
.gt-status.warn{color:var(--gold2);}
.gt-status.bad{color:var(--red);}
.gt-btns{display:flex;gap:8px;flex-shrink:0;}
.gt-btn{width:34px;height:34px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-size:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s,background .15s;}
.gt-btn:active{transform:scale(.88);}
.gt-btn-plus{background:var(--grad);color:#fff;border:none;box-shadow:0 5px 12px rgba(124,58,237,.28);}

/* İlaç listesi */
.gt-med{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line);cursor:pointer;}
.gt-med:last-child{border-bottom:none;padding-bottom:2px;}
.gt-med:first-child{margin-top:6px;}
.gt-med-time{font-size:11.5px;font-weight:800;color:var(--purple);background:#f1e7ff;border-radius:9px;padding:4px 8px;flex-shrink:0;}
.gt-med-name{flex:1;min-width:0;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gt-med-bell{font-size:10px;color:var(--muted2);margin-left:3px;}
.gt-med-del{border:none;background:none;color:var(--muted2);font-size:12px;padding:6px;cursor:pointer;flex-shrink:0;}
.gt-med-check{width:24px;height:24px;flex-shrink:0;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:10px;color:transparent;transition:all .2s;}
.gt-med.done .gt-med-check{background:var(--green);border-color:var(--green);color:#fff;}
.gt-med.done .gt-med-name{text-decoration:line-through;color:var(--muted);}
.gt-med-empty{text-align:center;color:var(--muted);font-size:12px;font-weight:600;padding:16px 4px 6px;}

/* İlaç ekleme penceresi girişleri */
.gt-inp{width:100%;border:1.5px solid var(--line);border-radius:13px;padding:11px 12px;font-size:13px;margin-bottom:10px;outline:none;background:#fafaff;color:var(--ink);}
.gt-inp:focus{border-color:var(--purple);}
.gt-remind{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;margin:2px 2px 14px;cursor:pointer;}
.gt-remind input{width:17px;height:17px;accent-color:var(--purple);}

/* ---- Takip kartları: kompakt düzen ---- */
.gt-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;}
.gt-row .gt-card{margin-top:0;}
.gt-mini{padding:12px;border-radius:18px;}
.gt-mini-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.gt-mini .gt-ic{width:32px;height:32px;border-radius:11px;font-size:15px;}
.gt-mini .gt-val{font-size:12.5px;}
.gt-mini-title{display:block;font-size:12.5px;font-weight:800;margin-top:8px;}
.gt-mini .gt-bar{height:5px;margin-top:8px;}
.gt-mini .gt-foot{margin-top:9px;gap:6px;}
.gt-mini .gt-status{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gt-mini .gt-btns{gap:6px;}
.gt-mini .gt-btn{width:26px;height:26px;border-radius:9px;font-size:11px;}

/* İlaç kartı: kompakt */
.gt-med-card{padding:13px 16px;}
.gt-med-card .gt-ic{width:38px;height:38px;border-radius:12px;font-size:17px;}
.gt-med-card .gt-tx strong{font-size:13px;}
.gt-med-card .gt-tx .sub{font-size:11px;}
.gt-med-card .gt-btn{width:30px;height:30px;border-radius:10px;font-size:12px;}
.gt-med{padding:8px 2px;}
.gt-med-time{font-size:11px;padding:3px 7px;}
.gt-med-name{font-size:12.5px;}
.gt-med-check{width:22px;height:22px;font-size:9px;}
.gt-med-more{text-align:center;padding-top:8px;}
.gt-med-more .link{font-size:12px;font-weight:700;color:var(--purple);cursor:pointer;}

/* ---- Öne çıkan klinik + fotoğraflı kartlar ---- */
.gh-star{color:var(--gold2);font-size:10px;}
.gh-clinic-image{background-size:cover;background-position:center;}
.gh-dt-cover{background-size:cover;background-position:center;}

.gh-feat{margin-top:18px;}
.gh-feat-title{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:800;margin-bottom:12px;}
.gh-feat-title i{color:var(--gold2);}
.gh-feat-body{display:flex;gap:13px;align-items:stretch;}
.gh-feat-img{flex:0 0 42%;min-height:150px;border-radius:18px;background-size:cover;background-position:center;cursor:pointer;box-shadow:0 6px 18px rgba(20,20,60,.12);}
.gh-feat-info{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.gh-feat-badge{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;font-weight:800;letter-spacing:.04em;color:var(--purple-ink);background:#f1e7ff;border-radius:999px;padding:5px 10px;}
.gh-feat-badge i{font-size:8px;}
.gh-feat-name{font-size:19px;font-weight:800;letter-spacing:-.01em;}
.gh-feat-specs{display:flex;flex-wrap:wrap;gap:5px;}
.gh-feat-spec{font-size:10px;font-weight:700;color:var(--purple-ink);background:#f4edff;border-radius:999px;padding:4px 9px;}
.gh-feat-perk{display:flex;align-items:flex-start;gap:8px;margin-top:2px;}
.gh-feat-gift{width:28px;height:28px;flex-shrink:0;border-radius:9px;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:12px;}
.gh-feat-perk strong{font-size:12px;font-weight:800;display:block;}
.gh-feat-perk .sub{font-size:11px;color:var(--muted);margin-top:1px;}
.gh-feat-btn{margin-top:6px;padding:10px 18px;border-radius:14px;font-size:12.5px;align-self:flex-start;}

/* Filtre chip'leri bölüm dışında (beyaz kart görünümlü) */
#gh-clinic-filters{margin-top:12px;padding-bottom:2px;}
#gh-clinic-filters .gh-clinic-chip{box-shadow:0 2px 8px rgba(20,20,60,.04);padding:10px 15px;border-radius:16px;display:inline-flex;align-items:center;gap:7px;}
#gh-clinic-filters .gh-clinic-chip i{font-size:12px;color:var(--purple);}
#gh-clinic-filters .gh-clinic-chip.on i{color:#fff;}

/* Dar ekranda öne çıkan kart dikey akar */
@media (max-width:420px){
  .gh-feat-body{flex-direction:column;}
  .gh-feat-img{flex:none;height:130px;min-height:0;}
}

/* ---- Aranabilir şehir seçimi + öneri penceresi ---- */
.gh-city-search{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);border-radius:13px;padding:10px 12px;margin-bottom:12px;background:#fafaff;}
.gh-city-search i{color:var(--muted2);font-size:13px;}
.gh-city-search input{flex:1;border:none;outline:none;background:none;font-size:14px;color:var(--ink);}
.gh-city-list{max-height:44vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.gh-city-opt{margin-bottom:8px;display:flex;align-items:center;gap:10px;}
.gh-city-opt.on{border-color:var(--purple);background:#f7f2ff;}
.gh-city-badge{font-size:9.5px;font-weight:800;color:var(--green);background:#e3fbef;border-radius:999px;padding:3px 8px;margin-left:6px;}
.gh-city-tick{margin-left:auto;color:var(--green);}
.gh-city-empty{text-align:center;color:var(--muted);font-size:13px;padding:20px 4px;}
.gh-suggest-kinds{display:flex;gap:8px;margin-bottom:12px;}
.gh-suggest-kinds .oim-kind{flex:1;}

/* ===== KLİNİKLER SAYFASI (misafir — mock harita + liste) ===== */
.gcl-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(env(safe-area-inset-top) + 16px) 16px 10px;}
.gcl-head-tx h1{font-size:24px;font-weight:800;letter-spacing:-.01em;}
.gcl-head-tx p{font-size:12.5px;color:var(--muted);margin-top:3px;}
.gcl-map-btn{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1.5px solid #e3d8ff;color:var(--purple);font-size:13px;font-weight:800;border-radius:14px;padding:10px 15px;cursor:pointer;box-shadow:0 4px 12px rgba(20,20,60,.05);}
.gcl-search-row{display:flex;gap:10px;margin-top:6px;}
.gcl-search{flex:1;display:flex;align-items:center;gap:9px;background:#fff;border-radius:15px;padding:12px 14px;box-shadow:0 4px 14px rgba(20,20,60,.05);}
.gcl-search i{color:var(--muted2);font-size:13px;}
.gcl-search input{flex:1;border:none;outline:none;background:none;font-size:13px;color:var(--ink);}
.gcl-filter-btn{width:44px;height:44px;flex-shrink:0;border-radius:15px;border:none;background:#fff;color:var(--purple);font-size:15px;cursor:pointer;box-shadow:0 4px 14px rgba(20,20,60,.05);}
#gcl-filters{margin-top:12px;}

/* Harita (SVG mock) */
.gcl-map{position:relative;border-radius:20px;overflow:hidden;margin-top:4px;box-shadow:0 6px 18px rgba(20,20,60,.07);height:200px;}
.gcl-map svg{position:absolute;inset:0;width:100%;height:100%;}
.gcl-pin{position:absolute;transform:translate(-50%,-50%);background:var(--grad);color:#fff;font-size:11.5px;font-weight:800;border:2px solid #fff;border-radius:999px;padding:6px 11px;box-shadow:0 5px 12px rgba(124,58,237,.35);cursor:pointer;white-space:nowrap;}
.gcl-pin-more{background:#fff;color:var(--ink);border-color:#eceaf6;box-shadow:0 4px 10px rgba(20,20,60,.12);}
.gcl-map-search{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;background:#fff;border:none;border-radius:13px;padding:10px 14px;font-size:12px;font-weight:800;color:var(--ink);cursor:pointer;box-shadow:0 5px 14px rgba(20,20,60,.14);}
.gcl-map-search i{color:var(--purple);}

/* Sıralama satırı */
.gcl-sort-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 0 4px;}
.gcl-sort-right{display:flex;gap:8px;}
.gcl-sort{display:inline-flex;align-items:center;gap:6px;background:#fff;border:none;border-radius:13px;padding:9px 13px;font-size:12px;font-weight:700;color:var(--ink);cursor:pointer;box-shadow:0 2px 8px rgba(20,20,60,.04);}
.gcl-sort i{font-size:10px;color:var(--purple);}
.gcl-sort-lbl{color:var(--muted);font-weight:600;}

/* Klinik kartları (dikey liste) */
.gcl-card{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 6px 20px rgba(20,20,60,.06);margin-top:14px;cursor:pointer;}
.gcl-card-top{display:flex;gap:13px;padding:13px;}
.gcl-img{position:relative;flex:0 0 118px;width:118px;height:118px;align-self:flex-start;border-radius:16px;background-size:cover;background-position:center;overflow:hidden;}
.gcl-img .gh-clinic-fav{top:7px;right:7px;width:28px;height:28px;font-size:12px;}
.gcl-featured{position:absolute;top:7px;left:7px;display:inline-flex;align-items:center;gap:4px;background:var(--grad);color:#fff;font-size:9px;font-weight:800;border-radius:999px;padding:4px 8px;box-shadow:0 3px 8px rgba(124,58,237,.35);}
.gcl-featured i{font-size:8px;}
.gcl-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;}
.gcl-name{font-size:15.5px;font-weight:800;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.gcl-verified{color:var(--purple);font-size:13px;margin-left:2px;}
.gcl-tags{display:flex;flex-wrap:wrap;gap:5px;}
.gcl-tag{font-size:10px;font-weight:700;color:var(--purple-ink);background:#f4edff;border-radius:999px;padding:3.5px 9px;}
.gcl-meta{font-size:11.5px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:5px;}
.gcl-meta strong{color:var(--ink);font-weight:800;}
.gcl-open{color:var(--muted);}
.gcl-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0;}
.gcl-card-foot{display:flex;align-items:center;gap:10px;padding:0 13px 13px;}
.gcl-prices{flex:1;display:flex;gap:6px;background:#f7f7fc;border-radius:14px;padding:9px 11px;overflow:hidden;}
.gcl-price{flex:1;min-width:0;}
.gcl-price-l{font-size:9.5px;font-weight:600;color:var(--muted2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gcl-price-v{font-size:11.5px;font-weight:800;color:var(--ink);margin-top:2px;white-space:nowrap;}
.gcl-price-v span{font-size:9px;font-weight:600;color:var(--muted2);}
.gcl-detail-btn{flex-shrink:0;padding:10px 13px;font-size:11.5px;}

/* Fırsat bandı */
.gcl-promo{display:flex;align-items:center;gap:11px;background:linear-gradient(135deg,#efe7ff,#f7f1ff);border-radius:20px;padding:14px;margin-top:16px;}
.gcl-promo-ic{width:42px;height:42px;flex-shrink:0;border-radius:14px;background:#fff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 4px 10px rgba(124,58,237,.12);}
.gcl-promo-tx{flex:1;min-width:0;}
.gcl-promo-tx strong{font-size:13px;font-weight:800;display:block;}
.gcl-promo-tx .sub{font-size:11px;color:var(--muted);margin-top:2px;}
.gcl-promo-btn{flex-shrink:0;font-size:11.5px;padding:10px 13px;}

/* ===== Bugünkü Bakım Görevleri — gruplu premium kart ===== */
.oc-tasks-card{background:#fff;border-radius:22px;padding:6px 15px;box-shadow:0 6px 20px rgba(20,20,60,.06);margin-top:4px;}
.oc-tasks-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 2px 13px;border-bottom:1px solid var(--line);}
.oc-tasks-head-l{flex:1;min-width:0;}
.oc-tasks-count{font-size:12.5px;font-weight:600;color:var(--muted);}
.oc-tasks-count b{font-size:19px;font-weight:800;color:var(--purple);}
.oc-tasks-count span{font-weight:600;}
.oc-tasks-seg{display:flex;gap:5px;margin-top:9px;}
.oc-seg{flex:1;height:6px;border-radius:20px;background:var(--line);transition:background .35s ease;}
.oc-seg.on{background:linear-gradient(90deg,#8b5cf6,#7c3aed);}
.oc-tasks-badge{width:46px;height:46px;flex-shrink:0;border-radius:15px;background:#f1e7ff;color:var(--purple-ink);font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;transition:background .3s,color .3s;}
.oc-tasks-badge.full{background:var(--green);color:#fff;font-size:17px;box-shadow:0 6px 14px rgba(22,184,106,.32);}

/* Görev satırları (kart içinde, ayraçlı) — eski .oc-task kart stilini geçersiz kılar */
.oc-tasks-card .oc-task{display:flex;align-items:center;gap:12px;margin:0;padding:12px 4px;border:none;border-bottom:1px solid var(--line);border-radius:12px;background:transparent;cursor:pointer;transition:background .18s;}
.oc-tasks-card .oc-task:last-child{border-bottom:none;}
.oc-tasks-card .oc-task:active{background:#faf9ff;}
.oc-tasks-card .oc-task .ti{width:46px;height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0;transition:transform .18s;}
.oc-tasks-card .oc-task-tx{flex:1;min-width:0;}
.oc-tasks-card .oc-task-tx strong{font-size:13.5px;font-weight:700;transition:color .18s;}
.oc-tasks-card .oc-task-tx .sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.oc-tasks-card .oc-task-w{font-size:11px;font-weight:800;color:var(--purple);background:#f1e7ff;border-radius:999px;padding:5px 10px;flex-shrink:0;transition:all .18s;}
.oc-tasks-card .oc-check{width:27px;height:27px;flex-shrink:0;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent;transition:all .2s;}
.oc-tasks-card .oc-task.done .oc-check{background:var(--green);border-color:var(--green);color:#fff;transform:scale(1.06);}
.oc-tasks-card .oc-task.done .oc-task-w{color:var(--green);background:#e3fbef;}
.oc-tasks-card .oc-task.done .oc-task-tx strong{color:var(--muted2);}
.oc-tasks-card .oc-task.done .ti{transform:scale(.94);opacity:.85;}

/* ===== Bugün boş randevu saatleri (misafir ana sayfa — mock) ===== */
.gh-slots-card{background:#fff;border-radius:20px;padding:16px;box-shadow:0 6px 20px rgba(20,20,60,.06);margin-top:16px;}
.gh-slots-head{display:flex;align-items:center;gap:12px;margin-bottom:13px;}
.gh-slots-ic{width:44px;height:44px;flex-shrink:0;border-radius:14px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 6px 14px rgba(124,58,237,.28);}
.gh-slots-tx{flex:1;min-width:0;}
.gh-slots-tx strong{font-size:14px;font-weight:800;display:block;}
.gh-slots-tx .sub{font-size:12px;color:var(--green);font-weight:700;margin-top:2px;}
.gh-slots-row{display:flex;flex-wrap:wrap;gap:8px;}
.gh-slot{flex:0 0 calc(25% - 6px);padding:11px 0;border:1.5px solid #e3d8ff;border-radius:13px;background:#faf7ff;color:var(--purple-ink);font-size:13px;font-weight:800;cursor:pointer;transition:all .15s;}
.gh-slot:active{transform:scale(.94);background:var(--grad);color:#fff;border-color:transparent;}

/* ===== Klinik detay: randevu saatleri + iletişim ===== */
.gh-dt-sec-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.gh-dt-free{font-size:11px;font-weight:800;color:var(--green);background:#e3fbef;border-radius:999px;padding:4px 10px;}
.gh-dt-slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;}
.gh-dt-slot{flex:0 0 calc(25% - 6px);padding:11px 0;border:1.5px solid #e3d8ff;border-radius:12px;background:#faf7ff;color:var(--purple-ink);font-size:13px;font-weight:800;cursor:pointer;transition:all .15s;}
.gh-dt-slot:active{transform:scale(.94);background:var(--grad);color:#fff;border-color:transparent;}
.gh-dt-slot.full{background:#f4f4f8;border-color:#ececf4;color:#b9b9c8;cursor:not-allowed;text-decoration:line-through;}
.gh-contact{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);}
.gh-contact-last{border-bottom:none;}
.gh-contact-ic{width:38px;height:38px;flex-shrink:0;border-radius:12px;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:14px;}
.gh-contact-tx{flex:1;min-width:0;padding-top:1px;}
.gh-contact-lbl{font-size:10.5px;font-weight:700;color:var(--muted2);text-transform:uppercase;letter-spacing:.03em;}
.gh-contact-val{display:block;font-size:13px;font-weight:700;color:var(--ink);margin-top:2px;word-break:break-word;text-decoration:none;}
a.gh-contact-val{color:var(--purple-ink);}
.gh-contact-actions{display:flex;gap:10px;margin-top:14px;}
.gh-ca-btn{flex:1;text-decoration:none;font-size:13px;padding:12px;}

/* Giriş ekranı: misafir modda sol üst geri butonu */
.login-guest-back{position:absolute;top:calc(env(safe-area-inset-top) + 14px);left:16px;z-index:5;}

/* ===== Günün ipucu + fırça sayacı + kontrol hatırlatıcısı (misafir ana sayfa) ===== */
.gh-tip{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#fff7e6,#fffaf0);border:1px solid #fdecc8;border-radius:14px;padding:8px 12px;margin-top:12px;}
.gh-tip-ic{width:26px;height:26px;flex-shrink:0;border-radius:9px;background:#fff;color:var(--gold2);display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 2px 6px rgba(245,158,11,.14);}
.gh-tip-tx{flex:1;min-width:0;}
.gh-tip-lbl{font-size:9px;font-weight:800;color:var(--gold2);text-transform:uppercase;letter-spacing:.05em;}
.gh-tip-body{font-size:11.5px;font-weight:600;color:var(--ink);line-height:1.35;margin-top:1px;}

.gh-mini-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;}
.gh-care-card{background:#fff;border-radius:18px;padding:14px;box-shadow:0 4px 18px rgba(20,20,60,.05);display:flex;flex-direction:column;align-items:flex-start;transition:border-color .2s;border:1.5px solid transparent;}
.gh-care-card.warn{border-color:#fecdd3;background:#fff7f8;}
.gh-care-ic{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:15px;margin-bottom:9px;}
.gh-care-ic-pink{background:#ffe8f2;color:#ec4899;}
.gh-care-ic-blue{background:#e6f0ff;color:#2563eb;}
.gh-care-title{font-size:12px;font-weight:700;color:var(--muted);}
.gh-care-big{font-size:20px;font-weight:800;color:var(--ink);margin-top:2px;line-height:1.15;}
.gh-care-card.warn .gh-care-big{color:var(--red);}
.gh-care-sub{font-size:11px;font-weight:600;color:var(--muted);margin-top:3px;min-height:15px;}
.gh-care-btn{margin-top:11px;width:100%;padding:9px;border:none;border-radius:11px;background:#f1e7ff;color:var(--purple-ink);font-size:11.5px;font-weight:800;cursor:pointer;transition:all .15s;}
.gh-care-btn:active{background:var(--grad);color:#fff;}
.gh-care-card.warn .gh-care-btn{background:var(--grad);color:#fff;box-shadow:0 5px 12px rgba(124,58,237,.28);}

/* ===== Acil / nöbetçi klinik kartı ===== */
.gh-sos{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#fff1f2,#ffe9ec);border:1px solid #fecdd3;border-radius:18px;padding:14px;margin-top:16px;cursor:pointer;transition:transform .15s;}
.gh-sos:active{transform:scale(.98);}
.gh-sos-ic{width:44px;height:44px;flex-shrink:0;border-radius:14px;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;box-shadow:0 6px 14px rgba(244,63,94,.3);}
.gh-sos-tx{flex:1;min-width:0;}
.gh-sos-tx strong{font-size:13.5px;font-weight:800;display:block;color:#9f1239;}
.gh-sos-tx .sub{font-size:11.5px;font-weight:700;color:#be123c;margin-top:2px;}
.gh-sos-btn{width:34px;height:34px;flex-shrink:0;border-radius:12px;background:#fff;color:var(--red);display:flex;align-items:center;justify-content:center;font-size:13px;box-shadow:0 3px 8px rgba(244,63,94,.18);}

/* ===== Ağız sağlığı mini testi ===== */
.gh-test-card{display:flex;align-items:center;gap:12px;background:#fff;border-radius:18px;padding:14px;box-shadow:0 4px 18px rgba(20,20,60,.05);margin-top:16px;}
.gh-test-ic{width:44px;height:44px;flex-shrink:0;border-radius:14px;background:#e0f7f5;color:#0d9488;display:flex;align-items:center;justify-content:center;font-size:17px;}
.gh-test-tx{flex:1;min-width:0;}
.gh-test-tx strong{font-size:13.5px;font-weight:800;display:block;}
.gh-test-tx .sub{font-size:11.5px;font-weight:600;color:var(--muted);margin-top:2px;}
.gh-test-btn{flex-shrink:0;font-size:11.5px;padding:10px 14px;}

/* Test penceresi: sorular */
.gh-tq{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);text-align:left;}
.gh-tq-q{flex:1;min-width:0;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.4;}
.gh-tq-btns{display:flex;gap:6px;flex-shrink:0;}
.gh-tq-btn{padding:8px 13px;border-radius:11px;border:1.5px solid var(--line);background:#fff;font-size:11.5px;font-weight:800;color:var(--muted);cursor:pointer;transition:all .15s;font-family:inherit;}
.gh-tq-btn.yes.on{background:#fff1f2;border-color:#fda4af;color:var(--red);}
.gh-tq-btn.no.on{background:#e3fbef;border-color:#6ee7b7;color:var(--green);}
#gh-test-submit{margin-top:14px;}
#gh-test-submit:disabled{opacity:.45;cursor:not-allowed;}

/* Test sonucu */
.gh-tr{border-radius:16px;padding:16px;text-align:center;margin-top:4px;}
.gh-tr.ok{background:#e3fbef;}
.gh-tr.warn{background:#fff6e0;}
.gh-tr.bad{background:#fff1f2;}
.gh-tr-emoji{font-size:30px;}
.gh-tr-label{font-size:16px;font-weight:800;margin-top:5px;}
.gh-tr.ok .gh-tr-label{color:#047857;}
.gh-tr.warn .gh-tr-label{color:#b45309;}
.gh-tr.bad .gh-tr-label{color:#be123c;}
.gh-tr-score{font-size:11.5px;font-weight:700;color:var(--muted);margin-top:3px;}
.gh-tr-advice{font-size:12.5px;font-weight:600;color:var(--muted);line-height:1.55;margin:12px 2px 2px;text-align:center;}

/* ===== Su & şeker haftalık mini trend (gruplu çubuk grafik) ===== */
.gt-trend .gt-head{margin-bottom:14px;}
.gt-trend-legend{display:flex;flex-direction:column;gap:5px;flex-shrink:0;}
.gt-lg{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--muted);}
.gt-lg-dot{width:9px;height:9px;border-radius:3px;}
.gt-lg-water{background:#0ea5e9;}
.gt-lg-sugar{background:#ec4899;}
.gt-chart{display:flex;gap:6px;align-items:flex-end;padding:2px 2px 0;}
.gt-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;}
.gt-col-bars{display:flex;align-items:flex-end;gap:2px;height:56px;width:100%;justify-content:center;
  border-bottom:1.5px solid var(--line);padding:0 3px;}
.gt-bar-w,.gt-bar-s{width:9px;border-radius:4px 4px 0 0;position:relative;transition:height .4s cubic-bezier(.34,1.2,.64,1);}
.gt-bar-w{background:#0ea5e9;}
.gt-bar-s{background:#ec4899;}
.gt-bar-num{position:absolute;top:-15px;left:50%;transform:translateX(-50%);font-size:9px;font-weight:800;color:var(--ink);}
.gt-col-lbl{font-size:9.5px;font-weight:700;color:var(--muted2);}
.gt-col.today .gt-col-lbl{color:var(--purple);font-weight:800;}
.gt-col.today .gt-col-bars{background:linear-gradient(180deg,transparent,#f7f2ff);border-radius:8px 8px 0 0;}
.gt-today-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;padding-top:13px;border-top:1px solid var(--line);}
.gt-today{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.gt-today-lbl{font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap;}
.gt-today .gt-btns{display:flex;align-items:center;gap:7px;}
.gt-today .gt-btn{width:27px;height:27px;border-radius:9px;font-size:11px;}
.gt-today-val{min-width:18px;text-align:center;font-size:14px;font-weight:800;color:var(--purple);}

/* Diş fırçası geri sayım çubuğu */
.gh-care-prog{width:100%;height:5px;background:var(--line);border-radius:20px;overflow:hidden;margin-top:9px;}
.gh-care-prog-fill{height:100%;width:100%;background:linear-gradient(90deg,#f472b6,#ec4899);border-radius:20px;transition:width .5s cubic-bezier(.34,1.2,.64,1);}
.gh-care-card.warn .gh-care-prog-fill{background:var(--red);}

/* ===== Tedavi Rehberi (mock — bilgilendirme) ===== */
/* Ana sayfa yatay kartları */
.tg-row{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;}
.tg-row::-webkit-scrollbar{display:none;}
.tg-card{min-width:132px;max-width:132px;background:#fff;border-radius:18px;padding:13px;box-shadow:0 4px 16px rgba(20,20,60,.05);cursor:pointer;scroll-snap-align:start;transition:transform .15s;}
.tg-card:active{transform:scale(.96);}
.tg-card-ic{width:40px;height:40px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:17px;margin-bottom:9px;}
.tg-card-name{font-size:13px;font-weight:800;}
.tg-card-tag{font-size:10.5px;font-weight:600;color:var(--muted);margin-top:3px;line-height:1.35;}

/* Rehber liste ekranı */
.tg-intro{font-size:12.5px;color:var(--muted);line-height:1.55;margin:6px 2px 14px;}
.tg-item{display:flex;align-items:center;gap:12px;margin-bottom:10px;cursor:pointer;transition:transform .12s;}
.tg-item:active{transform:scale(.98);}
.tg-item .tg-card-ic{margin-bottom:0;flex-shrink:0;}
.tg-item-tx{flex:1;min-width:0;}
.tg-item-tx strong{font-size:14px;font-weight:800;}
.tg-item-tx .sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.tg-item-chev{color:var(--muted2);font-size:12px;}
.tg-note{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:var(--muted);line-height:1.5;background:#f7f7fc;border-radius:14px;padding:12px 13px;margin-top:14px;}
.tg-note i{color:var(--purple);margin-top:1px;}

/* Detay ekranı */
.tg-hero{display:flex;align-items:center;gap:13px;background:var(--grad);border-radius:20px;padding:16px;color:#fff;margin-top:6px;box-shadow:0 10px 24px rgba(124,58,237,.28);}
.tg-hero-ic{width:50px;height:50px;flex-shrink:0;border-radius:15px;background:rgba(255,255,255,.2);border:1.5px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-size:22px;}
.tg-hero-tx strong{font-size:18px;font-weight:800;display:block;}
.tg-hero-tx div{font-size:12px;opacity:.92;margin-top:2px;}
.tg-sec{margin-top:12px;padding:15px 16px;}
.tg-sec-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.tg-sec-ic{width:34px;height:34px;flex-shrink:0;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:14px;}
.tg-sec-head strong{font-size:14px;font-weight:800;}
.tg-p{font-size:12.5px;color:var(--ink);line-height:1.6;}
.tg-steps{margin:0;padding-left:20px;}
.tg-steps li{font-size:12.5px;color:var(--ink);line-height:1.55;margin-bottom:8px;padding-left:3px;}
.tg-steps li::marker{color:var(--purple);font-weight:800;}
#tg-detail-body > .btn-block{margin-top:14px;}

/* ===== Kayıtlı kullanıcı (registered) — Faz 1 simülasyon ===== */
/* Bekleyen bağlantı talebi kartı */
.gh-pend{display:flex;align-items:flex-start;gap:12px;background:linear-gradient(135deg,#fff8e6,#fff3d6);border:1px solid #fde68a;border-radius:18px;padding:14px;margin:10px 0 4px;}
.gh-pend-ic{width:42px;height:42px;flex-shrink:0;border-radius:13px;background:#fff;color:var(--gold2);display:flex;align-items:center;justify-content:center;font-size:17px;box-shadow:0 4px 10px rgba(245,158,11,.18);}
.gh-pend-tx{flex:1;min-width:0;}
.gh-pend-tx strong{font-size:13.5px;font-weight:800;color:#92400e;display:block;}
.gh-pend-tx .sub{font-size:11.5px;color:#a16207;line-height:1.5;margin-top:3px;}
.gh-pend-btns{display:flex;gap:8px;margin-top:10px;}
.gh-pend-btn{font-size:11.5px;padding:9px 12px;}

/* "Kliniğine Bağlanınca" bölümü */
.gh-cp{background:linear-gradient(135deg,#efe7ff,#f7f1ff);border-radius:20px;padding:16px;margin-top:16px;}
.gh-cp-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;margin-bottom:12px;}
.gh-cp-title i{color:var(--purple);}
.gh-cp-item{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;color:var(--ink);padding:6px 0;}
.gh-cp-ic{width:30px;height:30px;flex-shrink:0;border-radius:10px;background:#fff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 3px 8px rgba(124,58,237,.1);}
.gh-cp-btn{margin-top:12px;}

/* Kilitli özellik önizleme kartları — sıcak, aksiyona yönlendiren */
.gh-lock-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.gh-lock-card{background:#fff;border-radius:18px;padding:13px;box-shadow:0 4px 16px rgba(20,20,60,.05);display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.gh-lock-ic{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:15px;}
.gh-lock-card strong{font-size:12.5px;font-weight:800;}
.gh-lock-card .sub{font-size:10.5px;color:var(--muted);line-height:1.4;}
.gh-lock-btn{margin-top:auto;display:inline-flex;align-items:center;gap:5px;border:none;background:#f1e7ff;color:var(--purple-ink);font-size:10.5px;font-weight:800;border-radius:10px;padding:7px 10px;cursor:pointer;}
.gh-lock-btn i{font-size:9px;}

/* Profil */
.gh-pr-card{margin-top:12px;padding:16px;}
.gh-pr-ava{width:74px;height:74px;border-radius:50%;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 14px;}
.gh-pr-pref{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:700;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer;}
.gh-pr-pref:last-child{border-bottom:none;}
.gh-pr-pref input{width:18px;height:18px;accent-color:var(--purple);}
.gh-pr-conn{font-size:12.5px;font-weight:700;}
.gh-dt-pending{display:flex;align-items:center;gap:9px;background:#fff8e6;border:1px solid #fde68a;color:#92400e;font-size:12.5px;font-weight:700;border-radius:14px;padding:12px 14px;margin-top:16px;}

/* Demo test paneli (yalnız #demo) */
#gh-demo-panel{position:fixed;left:12px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:200;}
#gh-demo-toggle{width:40px;height:40px;border-radius:50%;border:none;background:#14142b;color:#fff;font-size:14px;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.3);opacity:.85;}
#gh-demo-opts{position:absolute;left:0;bottom:48px;background:#14142b;border-radius:14px;padding:10px;width:210px;box-shadow:0 10px 26px rgba(0,0,0,.35);}
.gh-demo-title{font-size:9.5px;font-weight:800;color:#9090aa;letter-spacing:.06em;margin-bottom:7px;}
#gh-demo-opts button{display:block;width:100%;text-align:left;background:none;border:none;color:#fff;font-size:12px;font-weight:700;padding:8px 9px;border-radius:9px;cursor:pointer;}
#gh-demo-opts button:hover,#gh-demo-opts button:active{background:rgba(255,255,255,.12);}

:root{
  --grad:linear-gradient(135deg,#7c3aed,#9333ea);
  --grad-soft:linear-gradient(135deg,#8b5cf6,#7c3aed);
  --purple:#7c3aed;
  --purple-ink:#6d28d9;
  --ink:#14142b;
  --muted:#6b6b87;
  --muted2:#9090aa;
  --bg:#f1f0fa;
  --line:#ecebf6;
  --gold:#f5b301;
  --gold2:#f59e0b;
  --green:#16b86a;
  --red:#f43f5e;
}
*{margin:0;padding:0;box-sizing:border-box;font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;overflow:hidden;}
body{background:#e7e6f3;color:var(--ink);font-size:14px;line-height:1.4;overscroll-behavior-y:none;}

/* ===== APP SHELL (phone frame on desktop, fullscreen on mobile) ===== */
.app{
  position:relative;max-width:480px;margin:0 auto;height:100vh;height:100dvh;
  background:var(--bg);overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 0 60px rgba(20,20,60,.12);
}
.screen{display:none;flex:1;min-height:0;flex-direction:column;animation:fade .25s ease;}
.screen.active{display:flex;}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* scrollable content area; leaves room for tabbar */
.scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;padding:0 16px calc(94px + env(safe-area-inset-bottom));}
body.logged-out .scroll{padding-bottom:24px;}
.screen.auth .scroll{display:flex;flex-direction:column;}

/* ===== GENERIC ===== */
.muted{color:var(--muted);}
.row{display:flex;align-items:center;}
.between{justify-content:space-between;}
.gap8{gap:8px;}.gap12{gap:12px;}
.section-title{font-size:16px;font-weight:800;margin:18px 2px 10px;display:flex;align-items:center;justify-content:space-between;}
.section-title .link{font-size:12.5px;font-weight:700;color:var(--purple);cursor:pointer;}
.card{background:#fff;border-radius:18px;padding:14px;box-shadow:0 4px 18px rgba(20,20,60,.05);}

/* ===== TOP HEADER (home) ===== */
.home-head{display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 14px) 16px 6px;}
.home-head-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.home-greet{display:flex;align-items:center;gap:12px;min-width:0;}
.home-greet-text{min-width:0;}
.home-head .hi{font-size:13px;color:var(--muted);}
.home-head h1{font-size:21px;font-weight:800;margin-top:1px;display:flex;align-items:center;gap:6px;}
.home-clinic{display:inline-flex;align-items:center;gap:6px;margin-top:7px;font-size:12px;font-weight:700;color:var(--purple);background:#f1e7ff;padding:4px 11px;border-radius:20px;}
.home-clinic i{font-size:10.5px;}
.family-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;color:#fff;background:linear-gradient(135deg,#7c3aed,#9333ea);padding:3px 11px;border-radius:20px;box-shadow:0 3px 9px rgba(124,58,237,.28);cursor:pointer;}
.family-badge i{font-size:10px;}
.family-badge:active{transform:scale(.96);}

/* Ailem paneli: üye kartları */
.fam-member{display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;margin-bottom:9px;}
.fam-member--head{border-color:rgba(124,58,237,.3);background:#faf7ff;}
.fam-ava{width:42px;height:42px;border-radius:50%;background:#f1e7ff;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.fam-info{flex:1;min-width:0;}
.fam-info strong{display:block;font-size:14px;font-weight:800;}
.fam-you{font-size:10px;font-weight:700;color:#fff;background:var(--purple);border-radius:10px;padding:1px 7px;vertical-align:middle;margin-left:3px;}
.fam-rel{font-size:11.5px;color:var(--muted);}
.fam-dob{font-size:11.5px;font-weight:700;color:var(--purple-ink);text-align:right;white-space:nowrap;display:flex;align-items:center;gap:5px;flex-shrink:0;}
.fam-dob i{color:#ec4899;font-size:11px;}

/* Davet / kayıt ekranı (giriş yapmamış ziyaretçi) */
.invite-clinic-card{background:linear-gradient(135deg,#7c3aed,#9333ea);color:#fff;border-radius:18px;padding:18px;text-align:center;margin-bottom:16px;box-shadow:0 10px 26px rgba(124,58,237,.3);}
.invite-clinic-card .ic-hosp{width:52px;height:52px;border-radius:15px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:24px;margin:0 auto 9px;}
.invite-clinic-card .ic-name{font-size:18px;font-weight:800;}
.invite-clinic-card .ic-by{font-size:13px;opacity:.95;margin-top:3px;}
.invite-ok-ic{font-size:50px;}

/* Dil seçici */
.plang-cur{margin-left:auto;font-weight:700;color:var(--purple);font-size:13px;}
.plang-list{display:flex;flex-direction:column;gap:7px;}
.plang-opt{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;font-size:15px;font-weight:600;color:var(--ink);}
.plang-opt .plang-flag{font-size:20px;line-height:1;}
.plang-opt .plang-label{flex:1;text-align:left;}
.plang-opt .plang-check{color:var(--purple);opacity:0;}
.plang-opt.active{border-color:var(--purple);background:#faf7ff;}
.plang-opt.active .plang-check{opacity:1;}
/* RTL (Arapça) temel destek — dir=rtl çoğu hizalamayı otomatik çevirir */
body.rtl .plang-cur{margin-left:0;margin-right:auto;}
body.rtl .plang-opt .plang-label{text-align:right;}
body.rtl .home-clinic,body.rtl .auth-note{text-align:right;}
.home-head .family-badge{margin-top:6px;}
.profile-top .family-badge{margin-top:6px;}
.head-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex-shrink:0;max-width:58%;}
.head-icons{display:flex;align-items:center;gap:10px;}
.home-chips{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;margin-top:11px;}
.home-chips .family-badge{margin-top:0;flex-shrink:0;}
.home-clinic-tag{position:relative;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:#7c3aed;background:#fff;border:1px solid #ece4fb;padding:6px 12px;border-radius:20px;box-shadow:0 2px 8px rgba(76,29,149,.07);line-height:1.25;min-width:0;}
.home-clinic-tag i{font-size:11px;color:#9333ea;flex-shrink:0;}
.home-clinic-tag .js-clinic-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
/* Buton etrafında yavaşça dönen mor çizgi (comet) */
@property --clinic-ang{syntax:'<angle>';initial-value:0deg;inherits:false;}
.home-clinic-tag::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:conic-gradient(from var(--clinic-ang),rgba(124,58,237,0) 0 52%,rgba(124,58,237,.2) 68%,rgba(124,58,237,.5) 82%,rgba(124,58,237,.85) 93%,#7c3aed 99%,#a78bfa 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:clinicSpin 6s linear infinite;pointer-events:none;}
@keyframes clinicSpin{to{--clinic-ang:360deg;}}
.bell{position:relative;width:42px;height:42px;border-radius:14px;background:#fff;border:none;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--ink);box-shadow:0 4px 14px rgba(20,20,60,.06);cursor:pointer;}
.bell .dot{position:absolute;top:8px;right:9px;width:9px;height:9px;background:var(--red);border-radius:50%;border:2px solid #fff;}
.head-avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 4px 14px rgba(20,20,60,.12);}

/* ===== SUBPAGE HEADER ===== */
.subhead{display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top) + 12px) 16px 12px;}
.subhead h2{font-size:18px;font-weight:800;flex:1;text-align:center;}
.iconbtn{width:42px;height:42px;border-radius:14px;background:#fff;border:none;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--ink);box-shadow:0 4px 14px rgba(20,20,60,.06);cursor:pointer;flex-shrink:0;}
.pts-chip{display:inline-flex;align-items:center;gap:6px;background:var(--grad);color:#fff;font-weight:800;font-size:13px;padding:9px 13px;border-radius:14px;box-shadow:0 6px 16px rgba(124,58,237,.35);flex-shrink:0;}
.pts-chip i{color:#ffe08a;}
.subhead .iconbtn.ghost{visibility:hidden;}

/* ===== POINTS HERO ===== */
.patient-passive-banner{display:flex;align-items:flex-start;gap:10px;background:linear-gradient(90deg,#fff1f2,#ffe4e6);border:1px solid #fecdd3;color:#9f1239;border-radius:16px;padding:13px 15px;margin-bottom:14px;font-size:12.5px;font-weight:600;line-height:1.45;}
.patient-passive-banner i{font-size:17px;color:#e11d48;flex-shrink:0;margin-top:1px;}
.hero{background:var(--grad);border-radius:24px;padding:20px;color:#fff;position:relative;overflow:hidden;box-shadow:0 14px 30px rgba(124,58,237,.32);}
.hero:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.10);top:-60px;right:-40px;}
.hero:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.07);bottom:-50px;left:-30px;}
.hero .top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1;}
.hero .lbl{font-size:12.5px;opacity:.9;}
.hero .pts{font-size:40px;font-weight:800;line-height:1.05;margin:4px 0 0;display:flex;align-items:center;gap:8px;}
.hero .pts .coin{font-size:22px;}
.hero .pts-sub{font-size:13px;opacity:.9;}
.medal{width:84px;height:84px;flex-shrink:0;border-radius:20px;background:linear-gradient(135deg,#ffd24d,#f59e0b);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(245,158,11,.45);position:relative;}
.medal .crown{font-size:30px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.15));}
.medal .mtxt{font-size:9.5px;font-weight:800;color:#7a4b00;margin-top:3px;letter-spacing:.3px;text-transform:uppercase;}
.hero .next{position:relative;z-index:1;margin-top:18px;}
.hero .next .small{font-size:12px;opacity:.9;}
.hero .next .remain{font-size:18px;font-weight:800;margin-top:1px;}
.progress{position:relative;margin-top:14px;}
.progress .track{height:10px;background:rgba(255,255,255,.28);border-radius:20px;overflow:hidden;}
.progress .fill{height:100%;width:0;background:linear-gradient(90deg,#ffd24d,#f59e0b);border-radius:20px;transition:width .8s cubic-bezier(.34,1.2,.64,1);}
.progress .bubble{position:absolute;top:-24px;transform:translateX(-50%);background:#fff;color:var(--purple);font-size:11px;font-weight:800;padding:2px 8px;border-radius:20px;box-shadow:0 4px 10px rgba(0,0,0,.15);transition:left .8s cubic-bezier(.34,1.2,.64,1);}
.progress .ends{display:flex;justify-content:space-between;font-size:11px;opacity:.9;margin-top:7px;}
.hero{cursor:pointer;}
.hero-cta{position:relative;z-index:1;margin-top:14px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12.5px;font-weight:700;background:rgba(255,255,255,.16);border-radius:14px;padding:9px;}
.hero-cta .fa-chevron-right{font-size:10px;opacity:.8;}

/* ===== SEVİYELERİM EKRANI ===== */
#levels-next{margin-bottom:4px;}
.lv-next{border-radius:22px;padding:18px;color:#fff;box-shadow:0 12px 28px rgba(124,58,237,.3);position:relative;overflow:hidden;}
.lv-next:before{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.12);top:-55px;right:-35px;}
.lv-next-top{display:flex;align-items:center;gap:13px;position:relative;z-index:1;}
.lv-next-ic{width:54px;height:54px;flex-shrink:0;border-radius:17px;background:rgba(255,255,255,.2);border:1.5px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-size:27px;}
.lv-next-h{font-size:16.5px;font-weight:800;}
.lv-next-s{font-size:13px;opacity:.95;margin-top:2px;}
.lv-next-s b{font-weight:800;}
.lv-next-bar{height:9px;background:rgba(255,255,255,.28);border-radius:20px;overflow:hidden;margin:15px 0 13px;position:relative;z-index:1;}
.lv-next-fill{height:100%;background:linear-gradient(90deg,#ffd24d,#fbbf24);border-radius:20px;transition:width .8s cubic-bezier(.34,1.2,.64,1);}
.lv-next-unlock{font-size:12px;font-weight:700;opacity:.95;margin-bottom:8px;position:relative;z-index:1;}
.lv-next-benefits{display:flex;flex-direction:column;gap:6px;position:relative;z-index:1;}
.lv-nb{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;background:rgba(255,255,255,.16);border-radius:10px;padding:8px 11px;}
.lv-nb i{font-size:11px;opacity:.95;}

.lv-card{background:#fff;border-radius:18px;overflow:hidden;margin-bottom:12px;box-shadow:0 4px 16px rgba(20,20,60,.06);border:1px solid var(--line);}
.lv-card--cur{border:2px solid var(--purple);box-shadow:0 8px 22px rgba(124,58,237,.18);}
.lv-card--locked{opacity:.94;}
.lv-card-hd{display:flex;align-items:center;gap:11px;padding:13px 14px;color:#fff;}
.lv-card-ic{width:42px;height:42px;flex-shrink:0;border-radius:13px;background:rgba(255,255,255,.22);border:1.5px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-size:21px;}
.lv-card-ti{flex:1;min-width:0;}
.lv-card-ti strong{display:block;font-size:15px;font-weight:800;text-shadow:0 1px 3px rgba(0,0,0,.18);}
.lv-card-ti span{font-size:11px;opacity:.92;}
.lv-badge{font-size:10px;font-weight:800;padding:5px 9px;border-radius:20px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;}
.lv-badge--cur{background:#fff;color:var(--purple-ink);}
.lv-badge--done{background:rgba(255,255,255,.25);color:#fff;}
.lv-badge--lock{background:rgba(0,0,0,.2);color:#fff;}
.lv-card-bd{padding:12px 14px;display:flex;flex-direction:column;gap:8px;}
.lv-b{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;}
.lv-b i{font-size:13px;flex-shrink:0;}
.lv-b.on{color:var(--ink);}
.lv-b.on i{color:var(--green);}
.lv-b.off{color:var(--muted2);}
.lv-b.off i{color:#c4c4d6;font-size:11px;}

/* ===== QUICK ACTIONS ===== */
.quick{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:16px;}
.quick .q{position:relative;background:#fff;border-radius:16px;padding:11px 3px;text-align:center;cursor:pointer;box-shadow:0 4px 14px rgba(20,20,60,.05);transition:transform .15s;}
.quick .q:active{transform:scale(.95);}
.q .qi{width:40px;height:40px;border-radius:13px;margin:0 auto 7px;display:flex;align-items:center;justify-content:center;font-size:16px;}
.q .qt{font-size:10px;font-weight:700;color:var(--ink);}
.q.q-ortho{border:1.5px dashed rgba(124,58,237,.45);}
.q-new{position:absolute;top:-6px;right:-3px;background:var(--purple);color:#fff;font-size:8px;font-weight:800;padding:1.5px 6px;border-radius:9px;letter-spacing:.2px;box-shadow:0 2px 6px rgba(124,58,237,.4);}
.bg-purple{background:#f1e7ff;color:#8b3dff;}
.bg-pink{background:#ffe8f2;color:#ec4899;}
.bg-blue{background:#e6f0ff;color:#2563eb;}
.bg-green{background:#e3fbef;color:#16b86a;}
.bg-orange{background:#fff2dc;color:#f59e0b;}
.bg-red{background:#ffeef0;color:#f43f5e;}
.bg-teal{background:#e0f7f5;color:#0d9488;}

/* ===== APPOINTMENT CARD ===== */
.appt{display:flex;align-items:center;gap:12px;cursor:pointer;}
.appt .ai{width:52px;height:52px;border-radius:16px;background:#f1e7ff;color:#8b3dff;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.appt .info{flex:1;min-width:0;}
.appt .info strong{font-size:14px;font-weight:800;display:block;}
.appt .info .doc{font-size:12px;color:var(--muted);margin-top:1px;}
.appt .info .dt{font-size:12px;color:var(--purple);font-weight:700;margin-top:4px;display:flex;align-items:center;gap:5px;}
.tag{font-size:10.5px;font-weight:800;padding:4px 9px;border-radius:20px;white-space:nowrap;}
.tag-green{background:#e3fbef;color:#16b86a;}
.tag-orange{background:#fff2dc;color:#f59e0b;}
.tag-blue{background:#e0edff;color:#2563eb;}
.tag-grey{background:#f0f0f6;color:#9090aa;}
.tag-purple{background:#f1e7ff;color:#8b3dff;}
/* Davet listesi — arkadaşın tedavileri */
.invite-entry{align-items:flex-start;}
.invite-txns{margin-top:7px;display:flex;flex-direction:column;gap:4px;}
.invite-txn-row{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--text);}
.itxn-name{color:var(--muted2);display:flex;align-items:center;gap:5px;}
.itxn-name small{font-size:10px;color:var(--muted2);opacity:.7;}
.itxn-bonus{font-weight:800;color:#16b86a;font-size:11.5px;white-space:nowrap;}
.itxn-more{font-size:10.5px;color:var(--muted2);margin-top:2px;}

/* ===== TRANSACTION / LIST ROWS ===== */
.list{display:flex;flex-direction:column;}
.txn{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.txn:last-child{border-bottom:none;}
.txn .ti{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;overflow:hidden;}
.txn .ti .ti-photo{width:100%;height:100%;object-fit:cover;display:block;}
.txn .tc{flex:1;min-width:0;}
.txn .tc strong{font-size:13.5px;font-weight:700;display:block;}
.txn .tc .sub{font-size:11.5px;color:var(--muted2);margin-top:1px;}
.txn .amt{font-weight:800;font-size:14px;white-space:nowrap;}
.txn .amt .when{display:block;font-size:10.5px;color:var(--muted2);font-weight:600;text-align:right;margin-top:2px;}
.plus{color:var(--green);}
.minus{color:var(--red);}
/* Ana sayfa "Son İşlemler" — yumuşak satır kartları + tutar hap rozeti */
#home-txns{padding:8px;}
#home-txns .txn{border-bottom:none;padding:9px 9px;border-radius:16px;transition:background .15s ease;}
#home-txns .txn:active{background:#f6f3fe;}
#home-txns .txn .ti{width:48px;height:48px;border-radius:16px;box-shadow:0 5px 12px rgba(20,20,60,.10);}
#home-txns .txn .tc strong{font-size:13.5px;}
#home-txns .txn .tc .sub{margin-top:2.5px;}
.sub-dot{color:#cfcadf;font-size:9px;vertical-align:1px;}
.amt-pill{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:12.5px;padding:6px 11px;border-radius:999px;white-space:nowrap;flex-shrink:0;}
.amt-pill.plus{color:#0d9b54;background:linear-gradient(135deg,#e9faf1,#d7f5e4);}
.amt-pill.minus{color:#dc2626;background:linear-gradient(135deg,#feeeee,#fde3e3);}
.amt-pill .amt-star{font-size:9px;opacity:.75;}

/* ===== CAMPAIGN BANNER ===== */
.promo{background:linear-gradient(135deg,#efe7ff,#f7f1ff);border-radius:22px;padding:18px;position:relative;overflow:hidden;margin-top:6px;}
.promo .eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.6px;color:var(--purple);text-transform:uppercase;}
.promo h3{font-size:17px;font-weight:800;margin:6px 0;max-width:62%;}
.promo p{font-size:12px;color:var(--muted);max-width:62%;}
.promo .tooth{position:absolute;right:-6px;bottom:-6px;font-size:78px;filter:drop-shadow(0 6px 10px rgba(124,58,237,.25));}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;cursor:pointer;font-weight:800;border-radius:14px;transition:transform .15s,opacity .2s,filter .15s;}
.btn:active{transform:scale(.97);}
.btn-primary:active{filter:brightness(.8) saturate(1.3);}
/* Giriş bekleme katmanı: ortada dönen halka */
.login-loading{position:fixed;inset:0;background:rgba(250,249,255,.78);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;z-index:320;}
.login-loading.show{display:flex;}
/* Açılışta oturum varsa: giriş ekranı yerine boot spinner (login flash önlenir) */
body.booting .login-loading{display:flex;}
.ll-box{display:flex;flex-direction:column;align-items:center;gap:14px;}
.ll-spinner{width:56px;height:56px;border-radius:50%;border:5px solid #ede7ff;border-top-color:var(--purple);animation:llspin .75s linear infinite;box-shadow:0 10px 26px rgba(124,58,237,.18);}
@keyframes llspin{to{transform:rotate(360deg)}}
.ll-text{font-size:13.5px;font-weight:700;color:var(--purple-ink);}

/* ── SOĞUK AÇILIŞ SPLASH'I (body.booting) ──────────────────────────────
   Native splash (mor #7c3aed) kapanınca beyaz ekran yerine AYNI mor zemin +
   beyaz logo görünür → kesintisiz geçiş. Marka bloğu sadece boot'ta çıkar;
   manuel giriş bindirmesinde (.show) gizli kalır (giriş ekranı arkada durur). */
.ll-brand{display:none;text-align:center;margin-bottom:10px;}
body.booting .login-loading{background:#7c3aed;backdrop-filter:none;-webkit-backdrop-filter:none;}
body.booting .ll-brand{display:block;}
body.booting .ll-box{animation:llfade .45s ease both;}
@keyframes llfade{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.ll-brand .badge{position:relative;width:82px;height:82px;border-radius:24px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:38px;color:#fff;margin:0 auto 16px;box-shadow:0 14px 34px rgba(0,0,0,.20);overflow:hidden;}
.ll-brand .badge::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 30% 25%,rgba(255,255,255,.35),transparent);}
.ll-brand .badge::after{content:"\f005";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;top:15px;right:17px;font-size:13px;color:#fde047;}
.ll-brand .badge i{position:relative;z-index:1;}
.ll-brand h1{font-size:24px;font-weight:800;letter-spacing:.02em;color:#fff;}
.ll-brand h1 span{color:#e9d5ff;letter-spacing:.05em;}
body.booting .ll-spinner{border-color:rgba(255,255,255,.28);border-top-color:#fff;box-shadow:0 10px 26px rgba(0,0,0,.18);}
body.booting .ll-text{color:rgba(255,255,255,.92);}
.btn-primary{background:var(--grad);color:#fff;font-size:13px;padding:11px 16px;box-shadow:0 8px 18px rgba(124,58,237,.32);}
.btn-block{width:100%;padding:14px;font-size:14px;border-radius:16px;}
.btn-ghost{background:#fff;color:var(--purple);border:1.5px solid #e3d8ff;font-size:13px;padding:10px 14px;}
.btn-wa{background:linear-gradient(135deg,#25d366,#1ebe57);color:#fff;}
.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none;}
.promo .btn{margin-top:12px;}

/* ===== KAYDIRMALI KAMPANYALAR ===== */
.camp-carousel{position:relative;margin-top:6px;}
.camp-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px;}
.camp-track::-webkit-scrollbar{display:none;}
.camp-slide{flex:0 0 100%;scroll-snap-align:center;border-radius:22px;padding:18px;position:relative;overflow:hidden;min-height:128px;box-sizing:border-box;}
.camp-slide .eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.6px;color:var(--purple);text-transform:uppercase;}
.camp-slide h3{font-size:17px;font-weight:800;margin:6px 0;max-width:66%;line-height:1.25;}
.camp-slide p{font-size:12px;color:var(--muted);max-width:66%;}
.camp-slide .tag-soon{display:inline-block;margin-top:10px;background:#fff;color:var(--purple);font-size:10.5px;font-weight:800;padding:5px 11px;border-radius:999px;box-shadow:0 4px 10px rgba(124,58,237,.14);}
.camp-emoji{position:absolute;right:-4px;bottom:-8px;font-size:74px;filter:drop-shadow(0 6px 10px rgba(124,58,237,.22));}
.camp-emoji .camp-ico-img{height:96px;width:auto;object-fit:contain;display:block;}
.camp-dots{display:flex;justify-content:center;gap:6px;margin-top:11px;}
.camp-dot{width:7px;height:7px;border-radius:50%;background:#d9cffb;transition:width .25s,background .25s;cursor:pointer;}
.camp-dot.on{width:20px;background:var(--purple);}

/* ===== FILTER TABS ===== */
.tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 2px;scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tab{flex-shrink:0;padding:9px 16px;border-radius:20px;border:none;background:#fff;color:var(--muted);font-size:12.5px;font-weight:700;cursor:pointer;box-shadow:0 2px 8px rgba(20,20,60,.04);}
.tab.active{background:var(--grad);color:#fff;box-shadow:0 6px 14px rgba(124,58,237,.3);}

/* ===== REWARD CARDS ===== */
.reward{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
.reward .rimg{width:62px;height:62px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:30px;flex-shrink:0;}
.reward .rimg .camp-ico-img{width:54px;height:54px;object-fit:contain;display:block;}
.reward .rc{flex:1;min-width:0;}
.reward .rc h4{font-size:14px;font-weight:800;line-height:1.25;}
.reward .rc .cost{font-size:13px;font-weight:800;color:var(--purple);margin-top:5px;display:flex;align-items:center;gap:5px;}
.reward .rc .cost i{color:var(--gold);}
.reward .ral{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.btn-al{background:var(--grad);color:#fff;font-size:12.5px;font-weight:800;padding:9px 18px;border-radius:13px;border:none;cursor:pointer;box-shadow:0 6px 14px rgba(124,58,237,.3);}
.btn-al[disabled]{opacity:.4;box-shadow:none;cursor:not-allowed;}
.btn-al.insufficient{opacity:.5;box-shadow:none;cursor:pointer;}
/* Randevular: tek liste bölüm başlığı (Yaklaşan / Geçmiş) */
.appt-sec{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.6px;text-transform:uppercase;margin:2px 4px 10px;}
.appt + .appt-sec{margin-top:16px;}
/* Ödül talebi durumları */
.reward-state{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;padding:5px 10px;border-radius:999px;white-space:nowrap;}
.reward-state.pending{background:#fff4e0;color:#b45309;}
.reward-state.approved{background:#e7f7ee;color:#15803d;}
.btn-withdraw{background:#fff;color:#dc2626;border:1.5px solid #fecaca;box-shadow:none;}
.btn-withdraw[disabled]{opacity:.5;cursor:not-allowed;}
.chev{color:var(--muted2);font-size:14px;}
.hint-row{display:flex;align-items:center;gap:12px;background:#fff;border-radius:18px;padding:14px;margin-top:6px;cursor:pointer;box-shadow:0 4px 14px rgba(20,20,60,.05);}
.hint-row .hi{width:42px;height:42px;border-radius:50%;background:#f1e7ff;color:#8b3dff;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;}
.hint-row p{flex:1;font-size:12.5px;color:var(--muted);}

/* ===== TOTAL POINTS SUMMARY ===== */
.pts-summary{background:var(--grad);border-radius:22px;padding:18px 20px;color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 12px 26px rgba(124,58,237,.3);position:relative;overflow:hidden;}
.pts-summary:after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.1);right:-40px;top:-40px;}
.pts-summary .lbl{font-size:12.5px;opacity:.9;}
.pts-summary .big{font-size:34px;font-weight:800;margin-top:2px;}
.pts-summary .ic{font-size:40px;position:relative;z-index:1;}
.mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
.mini{background:#fff;border-radius:16px;padding:13px;box-shadow:0 4px 14px rgba(20,20,60,.05);}
.mini .v{font-size:19px;font-weight:800;}
.mini .v.green{color:var(--green);}
.mini .v.red{color:var(--red);}
.mini .l{font-size:11px;color:var(--muted2);margin-top:2px;}

/* ===== INVITE ===== */
/* ===== DAVET ET — yenilenmiş tasarım ===== */
.invite-hero{position:relative;overflow:hidden;text-align:center;background:linear-gradient(150deg,#7c3aed,#9333ea 58%,#a855f7);border-radius:22px;padding:16px 18px;margin-top:6px;color:#fff;box-shadow:0 10px 24px rgba(124,58,237,.28);}
.invite-hero::before{content:"";position:absolute;top:-46px;right:-34px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.10);}
.invite-hero::after{content:"";position:absolute;bottom:-54px;left:-34px;width:132px;height:132px;border-radius:50%;background:rgba(255,255,255,.07);}
.ih-icon{position:relative;width:48px;height:48px;margin:0 auto 8px;border-radius:14px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 5px 13px rgba(0,0,0,.10);}
.invite-hero h3{position:relative;font-size:16px;font-weight:800;}
.ih-reward{position:relative;display:inline-flex;align-items:center;gap:7px;margin-top:9px;background:#fff;color:var(--purple-ink);font-weight:900;font-size:19px;line-height:1;padding:6px 14px;border-radius:13px;box-shadow:0 6px 14px rgba(0,0,0,.15);}
.ih-reward i{color:var(--gold);font-size:15px;}
.ih-reward span{font-size:10px;font-weight:800;letter-spacing:1px;opacity:.65;}
.invite-hero p{position:relative;font-size:11.5px;opacity:.92;margin-top:8px;padding:0 4px;line-height:1.45;}
.invite-hero p strong{font-weight:800;}

.qr-card{background:#fff;border-radius:22px;padding:18px;text-align:center;box-shadow:0 8px 24px rgba(20,20,60,.07);margin-top:14px;}
.qr-holder{width:150px;height:150px;margin:0 auto;border-radius:16px;overflow:hidden;border:3px solid #f1edfd;padding:9px;background:#fff;box-shadow:0 4px 14px rgba(124,58,237,.10);}
.qr-card .qr-name{font-size:15px;font-weight:800;margin-top:14px;}
.invite-code-pill{display:inline-flex;align-items:center;gap:8px;margin-top:9px;background:#f5f1ff;border:1.5px dashed #d4c7f4;border-radius:13px;padding:7px 15px;}
.invite-code-pill .icp-lbl{font-size:11.5px;color:var(--muted2);font-weight:600;}
.invite-code-pill #invite-code-val{font-size:15px;font-weight:800;color:var(--purple-ink);letter-spacing:1.5px;}
.link-box{display:flex;align-items:center;gap:8px;background:#f7f6fc;border:1.5px solid #ece8f8;border-radius:14px;padding:7px 7px 7px 14px;margin-top:14px;}
.link-box .lk{flex:1;min-width:0;font-size:12.5px;color:var(--purple-ink);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.link-box button{border:none;background:var(--grad);color:#fff;width:40px;height:40px;border-radius:12px;cursor:pointer;font-size:15px;flex-shrink:0;box-shadow:0 4px 10px rgba(124,58,237,.25);}
.steps{margin-top:4px;position:relative;}
.step{display:flex;align-items:flex-start;gap:14px;padding:9px 0;position:relative;}
.steps .step:not(:last-child)::before{content:"";position:absolute;left:16px;top:38px;bottom:-2px;width:2px;background:linear-gradient(#dccff7,#f0ebfb);}
.step .n{width:34px;height:34px;border-radius:12px;background:var(--grad);color:#fff;font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 10px rgba(124,58,237,.25);position:relative;z-index:1;}
.step p{font-size:13px;padding-top:7px;}
.step p strong{font-weight:800;}

/* ===== EMPTY / GENERIC INFO ROWS ===== */
.info-row{display:flex;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid var(--line);}
.info-row:last-child{border-bottom:none;}
.info-row .ii{width:38px;height:38px;border-radius:12px;background:#f4f2fc;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.info-row .ic{flex:1;min-width:0;}
.info-row .ic .k{font-size:11px;color:var(--muted2);}
.info-row .ic .vv{font-size:13.5px;font-weight:700;margin-top:1px;}
.name-edit-input{font-size:13.5px;font-weight:700;margin-top:1px;width:100%;border:none;border-bottom:2px solid var(--purple);background:transparent;outline:none;padding:0 0 2px;color:inherit;font-family:inherit;}

/* ===== PROFILE ===== */
.profile-card{background:var(--grad);border-radius:24px;padding:18px;color:#fff;box-shadow:0 14px 30px rgba(124,58,237,.32);position:relative;overflow:hidden;}
.profile-card:before{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.1);top:-70px;right:-40px;}
.profile-top{display:flex;align-items:center;gap:14px;position:relative;z-index:1;}
.profile-top .pav{position:relative;flex-shrink:0;}
.profile-top .pav img{width:64px;height:64px;border-radius:50%;border:3px solid rgba(255,255,255,.5);object-fit:cover;}
.profile-top .pav .cam{position:absolute;bottom:-2px;right:-2px;width:24px;height:24px;border-radius:50%;background:#fff;color:var(--purple);border:none;font-size:11px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.2);}
.profile-top h3{font-size:18px;font-weight:800;}
.profile-top .mem{font-size:12.5px;opacity:.95;margin-top:3px;display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.18);padding:3px 10px;border-radius:20px;font-weight:700;}
.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:16px;background:rgba(255,255,255,.18);border-radius:16px;overflow:hidden;position:relative;z-index:1;}
.profile-stats .ps{background:transparent;padding:12px 4px;text-align:center;}
.profile-stats .ps .v{font-size:16px;font-weight:800;}
.profile-stats .ps .l{font-size:9.5px;opacity:.9;margin-top:2px;}
.qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.qa{display:flex;align-items:center;gap:10px;background:#fff;border-radius:16px;padding:13px;cursor:pointer;box-shadow:0 4px 14px rgba(20,20,60,.05);transition:transform .15s;}
.qa:active{transform:scale(.97);}
.qa .qai{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.qa .qat{font-size:12.5px;font-weight:700;}
.menu-card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 4px 14px rgba(20,20,60,.05);}
.menu-item{display:flex;align-items:center;gap:13px;padding:15px 16px;border-bottom:1px solid var(--line);cursor:pointer;}
.menu-item:last-child{border-bottom:none;}
.menu-item .mi{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.menu-item .mt{flex:1;font-size:14px;font-weight:600;}
.menu-item .chev{color:var(--muted2);}
.menu-item.danger .mt{color:var(--red);}

/* notification toggles */
.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);}
.toggle-row:last-child{border-bottom:none;}
.toggle-row .tl strong{font-size:13.5px;display:block;}
.toggle-row .tl span{font-size:11px;color:var(--muted2);}
.switch{width:44px;height:26px;background:#e0def0;border-radius:20px;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0;}
.switch.on{background:var(--grad);}
.switch:after{content:"";position:absolute;width:20px;height:20px;background:#fff;border-radius:50%;top:3px;left:3px;transition:left .2s;box-shadow:0 1px 4px rgba(0,0,0,.2);}
.switch.on:after{left:21px;}

/* ===== BOTTOM TABBAR ===== */
.tabbar{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:480px;background:#fff;display:flex;justify-content:space-around;
  padding:8px 6px calc(8px + env(safe-area-inset-bottom));
  box-shadow:0 -6px 24px rgba(20,20,60,.08);border-top:1px solid #f0eff8;z-index:50;
}
body.logged-out .tabbar{display:none;}
.tabbar .t{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;cursor:pointer;color:var(--muted2);font-size:10px;font-weight:700;padding:6px 0;}
.tabbar .t i{font-size:18px;}
.tabbar .t.active{color:var(--purple);}
/* Merkez "Davet Et" — yükseltilmiş yuvarlak mor diş butonu */
.tabbar .t-invite{color:var(--purple);}
.tabbar .t-invite i{
  width:52px;height:52px;border-radius:50%;background:var(--grad);color:#fff;font-size:21px;
  display:flex;align-items:center;justify-content:center;margin-top:-26px;margin-bottom:2px;
  box-shadow:0 8px 18px rgba(124,58,237,.45);border:4px solid #fff;transition:transform .12s;
}
.tabbar .t-invite.active i{background:var(--grad);}
.tabbar .t-invite:active i{transform:scale(.93);}

/* ===== LOGIN ===== */
.auth .scroll{justify-content:center;padding:24px;}
.auth-logo{text-align:center;margin-bottom:22px;}
.auth-logo .badge{position:relative;width:78px;height:78px;border-radius:22px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:36px;color:#fff;margin:0 auto 14px;box-shadow:0 12px 26px rgba(124,58,237,.35);overflow:hidden;}
.auth-logo .badge::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 30% 25%,rgba(255,255,255,.4),transparent);}
.auth-logo .badge::after{content:"\f005";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;top:14px;right:16px;font-size:13px;color:#fde047;}
.auth-logo .badge i{position:relative;z-index:1;}
.auth-logo h1{font-size:23px;font-weight:800;letter-spacing:-.01em;}
.auth-logo h1 span{color:var(--purple);letter-spacing:.04em;}
.auth-logo p{font-size:13px;color:var(--muted);margin-top:6px;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:12.5px;font-weight:700;color:#4b4b6b;margin-bottom:6px;}
.field .inp{display:flex;align-items:center;gap:9px;background:#fff;border:1.5px solid #e8e6f4;border-radius:14px;padding:13px 14px;transition:border-color .2s;}
.field .inp:focus-within{border-color:var(--purple);}
.field .inp i{color:var(--muted2);font-size:14px;}
.field .inp input{border:none;outline:none;font-size:14px;width:100%;background:none;color:var(--ink);}
/* Giriş telefon alanı: örnek numara çok silik görünsün */
#login-phone::placeholder{color:#dcd9ec;opacity:.45;}
#login-phone::-webkit-input-placeholder{color:#dcd9ec;opacity:.45;}
.field .inp .pass-toggle{flex-shrink:0;background:none;border:none;padding:0 2px;cursor:pointer;color:var(--muted2);display:flex;align-items:center;}
.field .inp .pass-toggle:hover{color:var(--purple);}
.field .inp .pass-toggle i{font-size:15px;}
.auth-row{display:flex;justify-content:flex-end;margin:-4px 0 16px;}
.auth-row a{font-size:12.5px;color:var(--purple);font-weight:700;cursor:pointer;}
.auth-note{margin-top:20px;background:#f3f0fc;border-radius:14px;padding:13px 14px;font-size:12px;color:var(--muted);display:flex;gap:10px;align-items:flex-start;}
.auth-note i{color:var(--purple);font-size:15px;margin-top:1px;}

/* ===== TOAST ===== */
.toast{
  position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom));transform:translate(-50%,80px);
  background:#130d35;color:#fff;padding:12px 18px;border-radius:14px;font-size:13px;font-weight:700;
  display:flex;align-items:center;gap:9px;box-shadow:0 10px 30px rgba(20,20,60,.3);
  opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .3s;z-index:200;pointer-events:none;max-width:90%;
}
.toast.show{transform:translate(-50%,0);opacity:1;}
.toast i{color:#a855f7;}
.toast.err i{color:#fb7185;}

/* ===== SHEET (detail popups) ===== */
.sheet-overlay{position:fixed;inset:0;background:rgba(9,8,32,.5);display:none;align-items:flex-end;justify-content:center;z-index:150;}
.sheet-overlay.open{display:flex;}
.sheet{background:#fff;width:100%;max-width:480px;border-radius:24px 24px 0 0;padding:8px 18px calc(22px + env(safe-area-inset-bottom));animation:sheetUp .3s cubic-bezier(.34,1.4,.64,1);max-height:84vh;overflow-y:auto;}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.sheet .grip{width:44px;height:5px;border-radius:5px;background:#e0def0;margin:6px auto 14px;}
.bday-selects{display:grid;grid-template-columns:1fr 1.4fr 1.1fr;gap:10px;}
.bday-selects label{display:block;font-size:11px;color:var(--muted2);margin-bottom:6px;font-weight:700;}
.bday-select{width:100%;padding:13px 12px;border:1.5px solid var(--line);border-radius:14px;font-size:16px;font-weight:700;background:#fff;color:#1a1830;font-family:inherit;cursor:pointer;}
.bday-select:focus{border-color:var(--purple);outline:none;}
.refer-label{display:block;font-size:11px;color:var(--muted2);margin:14px 0 6px;font-weight:700;}
.refer-input{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:14px;font-size:16px;font-weight:600;background:#fff;color:#1a1830;font-family:inherit;}
.refer-input:focus{border-color:var(--purple);outline:none;}
.sheet h3{font-size:17px;font-weight:800;margin-bottom:4px;}
.sheet-icon{width:64px;height:64px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 10px;overflow:hidden;}
.sheet-icon .camp-ico-img{height:44px;width:auto;object-fit:contain;}
/* notifications */
.notif-head{display:flex;align-items:center;justify-content:space-between;margin:2px 0 10px;}
.notif-head .mark{font-size:11.5px;font-weight:700;color:var(--purple);cursor:pointer;flex-shrink:0;}
.notif-empty{text-align:center;color:var(--muted2);font-size:13px;padding:26px 0;}
.notif{display:flex;gap:12px;align-items:flex-start;padding:13px 2px;border-bottom:1px solid var(--line);position:relative;}
.notif:last-child{border-bottom:none;}
.notif .ni{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.notif .nc{flex:1;min-width:0;}
.notif .nc strong{font-size:13.5px;display:block;margin-bottom:2px;}
.notif .nc p{font-size:12px;color:var(--muted);line-height:1.45;}
.notif .nt{font-size:10.5px;color:var(--muted2);margin-top:4px;display:block;}
.notif.unread:after{content:"";position:absolute;right:2px;top:19px;width:8px;height:8px;border-radius:50%;background:var(--purple);}

@media(min-width:481px){
  body{padding:0;}
  .app{margin-top:0;height:100vh;height:100dvh;border-radius:0;}
}

/* ===== GOOGLE İŞLETME / DEĞERLENDİRME ===== */
.google-card{padding:0;overflow:hidden;}
.google-card .google-map{display:block;width:100%;height:160px;border:0;}
.google-card .google-map-link{display:flex;align-items:center;justify-content:center;gap:8px;height:96px;text-decoration:none;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#4285F4,#34a853);}
.google-card .google-map-link i{font-size:18px;}
.google-card .google-body{padding:14px;}
.google-head{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink);}
.google-head i{color:#4285F4;font-size:16px;}
.google-desc{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 12px;}
.google-desc strong{color:var(--gold2);}
.btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:11px;padding:12px;font-size:13px;font-weight:700;color:#fff;background:var(--grad);cursor:pointer;}
.btn-google:active{transform:scale(.98);}
.btn-google i{font-size:14px;}
.google-done{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--green);background:#e6f9f0;border-radius:10px;padding:11px 12px;line-height:1.4;}
.google-done i{font-size:15px;}

/* ===== İLK GİRİŞ ZORUNLU ŞİFRE DEĞİŞTİRME ===== */
.patient-setpass-overlay{position:fixed;inset:0;z-index:9998;display:none;align-items:center;justify-content:center;background:linear-gradient(135deg,#2d2d4e,#4c1d95);padding:24px;}
.patient-setpass-overlay.show{display:flex;}
.setpass-card{width:100%;max-width:340px;background:#fff;border-radius:20px;padding:28px 24px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.35);}
.setpass-icon{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,#9333ea,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 14px;}
.setpass-card h2{font-size:18px;color:#2d2d4e;margin-bottom:6px;}
.setpass-card p{font-size:12.5px;color:#8a8aa6;line-height:1.5;margin-bottom:16px;}
.setpass-card input{width:100%;padding:12px 14px;border:1px solid #e5e7f3;border-radius:11px;font-size:14px;color:#14142b;outline:none;margin-bottom:10px;}
.setpass-card input:focus{border-color:#9333ea;}
.setpass-card .sp-error{min-height:16px;font-size:12px;color:#e11d48;font-weight:600;margin-bottom:8px;}

/* Destek & Yardım — SSS (faq) */
.faq-item{padding:11px 2px;border-bottom:1px solid #f0f0f4;}
.faq-item:last-child{border-bottom:none;}
.faq-item summary{cursor:pointer;font-weight:600;font-size:13px;color:#14142b;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:8px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:17px;color:#9090aa;font-weight:700;line-height:1;}
.faq-item[open] summary::after{content:"–";}
.faq-item p{margin-top:8px;font-size:12.5px;line-height:1.55;}

/* ===== Randevu Talebi (Randevularım) ===== */
.appt-req-top{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;border:none;cursor:pointer;
  background:var(--grad);color:#fff;font-size:12.5px;font-weight:700;padding:10px 13px;border-radius:14px;
  box-shadow:0 6px 14px rgba(124,58,237,.3);white-space:nowrap;}
.appt-req-top:active{filter:brightness(.92);}
.appt-req-top i{font-size:12px;}
.ar-banner{display:flex;align-items:center;gap:11px;background:#eef9f1;border:1px solid #c9efd6;
  border-radius:16px;padding:12px 13px;margin-bottom:14px;}
.ar-banner .ar-ic{width:34px;height:34px;border-radius:11px;background:#16b86a;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.ar-banner .ar-tx{flex:1;display:flex;flex-direction:column;line-height:1.3;}
.ar-banner .ar-tx strong{font-size:13px;color:#0f7a45;}
.ar-banner .ar-tx span{font-size:11.5px;color:#3d7a59;margin-top:1px;}
.ar-banner .ar-cancel{flex-shrink:0;border:none;background:#fff;color:#0f7a45;font-size:11.5px;font-weight:700;
  padding:7px 11px;border-radius:11px;cursor:pointer;box-shadow:0 2px 6px rgba(16,122,69,.12);}
.ar-field{margin-bottom:13px;}
.ar-field label{display:block;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:6px;}
.ar-field .ar-opt{font-weight:500;color:var(--muted);font-size:11.5px;}
.ar-field input,.ar-field textarea{width:100%;border:1.5px solid #e3d8ff;border-radius:13px;
  background:#faf8ff;padding:11px 13px;font-size:13.5px;color:var(--ink);font-family:inherit;outline:none;
  box-sizing:border-box;resize:none;}
.ar-field input:focus,.ar-field textarea:focus{border-color:var(--purple);background:#fff;}
.ar-field input::placeholder,.ar-field textarea::placeholder{color:#a9a4c0;}
.ar-datetime{display:flex;gap:10px;}
.ar-dt-col{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0;}
.ar-dt-cap{font-size:11px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:5px;}
.ar-dt-cap i{color:var(--purple);font-size:11px;}
.ar-datetime input{width:100%;border:1.5px solid #e3d8ff;border-radius:13px;background:#faf8ff;
  padding:11px 12px;font-size:14px;color:var(--ink);font-family:inherit;outline:none;box-sizing:border-box;
  -webkit-appearance:none;appearance:none;min-height:46px;}
.ar-datetime input:focus{border-color:var(--purple);background:#fff;}
.ar-datetime input::-webkit-date-and-time-value{text-align:left;}
.ar-datetime input::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer;}

/* ============ ORTODONTİ ============ */
.ortho-intro{font-size:12.5px;color:var(--muted);margin:2px 2px 14px;line-height:1.5;}
/* İlerleme kartı (hero üzerine) */
.ortho-prog{margin-top:2px;}
.op-top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1;}
.op-lbl{font-size:11px;font-weight:700;letter-spacing:.5px;opacity:.85;}
.op-months{font-size:34px;font-weight:800;line-height:1.05;margin-top:6px;}
.op-months span{font-size:16px;font-weight:700;opacity:.9;}
.op-done{font-size:13px;opacity:.9;margin-top:2px;}
.op-braces{font-size:40px;opacity:.95;position:relative;z-index:1;}
.op-braces.op-braces-photo{font-size:0;opacity:1;align-self:center;}
.ortho-prog .op-top{align-items:center;}
.op-braces-photo img{width:166px;max-width:50vw;max-height:120px;object-fit:contain;display:block;filter:drop-shadow(0 5px 10px rgba(15,6,40,.32));}
.oj-hero .oj-hero-top{align-items:center;}
.oj-hero .op-braces-photo img{width:122px;max-height:100px;}
.op-seg{display:flex;gap:3px;margin-top:16px;position:relative;z-index:1;}
.op-seg span{flex:1;height:11px;border-radius:3px;background:rgba(255,255,255,.22);}
.op-seg span.on{background:#fff;}
.op-foot{display:flex;align-items:center;gap:10px;margin-top:13px;position:relative;z-index:1;flex-wrap:wrap;}
.op-pct{background:rgba(255,255,255,.22);font-size:14px;font-weight:800;padding:4px 13px;border-radius:20px;}
.op-end{font-size:11.5px;opacity:.92;display:flex;align-items:center;gap:6px;}
.op-rozet{display:flex;align-items:center;gap:11px;margin-top:16px;background:rgba(0,0,0,.18);border-radius:16px;padding:11px 14px;position:relative;z-index:1;}
.op-rozet>i{font-size:22px;}
.op-rozet small{display:block;font-size:11px;opacity:.85;}
.op-rozet strong{font-size:14px;font-weight:800;}
/* Hızlı görev ikonları */
.ortho-qrow{display:flex;gap:5px;margin-top:14px;padding:14px 8px;}
.oq{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;}
.oq-ic{width:44px;height:44px;border-radius:50%;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:16px;}
.oq-ic.ghost{background:#f3f2f9;color:#9ca3af;}
.oq-t{font-size:9.5px;font-weight:700;color:var(--ink);line-height:1.2;}
.oq-s{font-size:8px;color:var(--muted);line-height:1.2;}
.oq-ck{font-size:14px;color:#d6d3e0;margin-top:auto;padding-top:5px;}
.oq-ck.on{color:var(--green);}
.oq-ck.arrow{font-size:11px;color:#c4b5fd;}
/* Tedavi yolculuğu timeline */
.ortho-timeline{display:flex;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;}
.otl{flex:0 0 86px;text-align:center;position:relative;}
.otl:not(:last-child):after{content:"";position:absolute;top:18px;left:50%;width:100%;height:3px;background:#ece9f7;z-index:0;}
.otl.done:not(:last-child):after{background:var(--purple);}
.otl-dot{width:38px;height:38px;border-radius:50%;background:#ece9f7;color:#b3a9d6;display:flex;align-items:center;justify-content:center;font-size:15px;margin:0 auto 8px;position:relative;z-index:1;}
.otl.done .otl-dot{background:var(--grad);color:#fff;}
.otl-t{font-size:10px;font-weight:700;color:var(--ink);line-height:1.2;padding:0 4px;}
.otl-d{font-size:9px;color:var(--muted);margin-top:2px;}
/* Bölümler (telefon: tek sütun, tam genişlik) */
.ortho-2col{display:grid;grid-template-columns:1fr;gap:14px;margin-top:14px;}
.ortho-2col>.card{min-width:0;}
/* Fotoğraflar */
.ortho-photos{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.oph{flex:0 0 auto;width:64px;text-align:center;}
.oph-img{position:relative;overflow:hidden;width:64px;height:72px;border-radius:13px;background:linear-gradient(135deg,#ede9fe,#f5f3ff);color:#a78bfa;display:flex;align-items:center;justify-content:center;font-size:24px;}
.oph-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.oph.add .oph-img{background:#faf8ff;border:1.5px dashed #d6c9f5;color:var(--purple);font-size:18px;}
.oph-t{font-size:9.5px;font-weight:700;margin-top:6px;}
.oph-d{font-size:8.5px;color:var(--muted);}
/* Puan kartı */
.op-points{font-size:30px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:8px;}
.op-points i{color:var(--purple);font-size:19px;}
.op-points-sub{font-size:11.5px;color:var(--muted);margin-top:-1px;}
.op-bar{height:8px;border-radius:6px;background:#ece9f7;margin-top:12px;overflow:hidden;}
.op-bar-fill{height:100%;border-radius:6px;background:var(--grad);}
.op-bar-ends{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:5px;}
.op-next{font-size:11px;color:var(--muted);margin-top:13px;line-height:1.6;}
.op-next i{color:#9ca3af;margin-right:3px;}
.op-next b{color:var(--ink);}
.op-next span{color:var(--purple);font-weight:700;}
/* Günlük görevler */
.otask{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);}
.otask:last-of-type{border-bottom:0;}
.otask-ic{width:32px;height:32px;border-radius:10px;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.otask-c{flex:1;min-width:0;}
.otask-c strong{font-size:12px;font-weight:700;display:block;line-height:1.25;}
.otask-c span{font-size:10px;color:var(--muted);}
.otask>i{font-size:18px;color:#d6d3e0;flex-shrink:0;}
.otask.done>i{color:var(--green);}
.ortho-allbtn{width:100%;margin-top:12px;border:0;background:var(--grad);color:#fff;font-weight:800;font-size:12.5px;padding:11px;border-radius:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;font-family:inherit;}
.ortho-allbtn i{font-size:10px;}
/* Rozetler */
.ortho-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:11px 4px;}
.obadge{text-align:center;}
.ob-ic{width:44px;height:44px;border-radius:13px;margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;box-shadow:0 4px 10px rgba(20,20,60,.13);}
.obadge.locked .ob-ic{background:#eceaf3;color:#b8b3c9;box-shadow:none;}
.ob-t{font-size:9px;font-weight:700;line-height:1.2;color:var(--ink);}
.obadge.locked .ob-t{color:#a09bb3;}
.ob-d{font-size:8px;color:var(--muted);margin-top:1px;}
/* Motivasyon */
.ortho-motiv{margin-top:14px;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#f3effe,#ece7fd);}
.om-txt{flex:1;font-size:12px;color:var(--ink);line-height:1.5;}
.om-txt b{color:var(--purple-ink);}
.om-btn{margin-top:11px;border:0;background:#fff;color:var(--purple);font-weight:800;font-size:11.5px;padding:8px 15px;border-radius:20px;cursor:pointer;font-family:inherit;box-shadow:0 3px 9px rgba(124,58,237,.16);}
.om-ill{font-size:38px;color:#a78bfa;flex-shrink:0;}
/* Ortodonti — programda değil (gating) */
.ortho-ne{text-align:center;padding:48px 22px;}
.ortho-ne-ic{width:84px;height:84px;border-radius:26px;margin:0 auto 18px;background:linear-gradient(135deg,#ede9fe,#f5f3ff);color:#a78bfa;display:flex;align-items:center;justify-content:center;font-size:38px;}
.ortho-ne h3{font-size:18px;font-weight:800;color:var(--ink);margin:0 0 10px;}
.ortho-ne p{font-size:13px;color:var(--muted);line-height:1.6;margin:0 auto 20px;max-width:300px;}
.ortho-ne-btn{border:0;background:var(--grad);color:#fff;font-weight:800;font-size:13px;padding:12px 22px;border-radius:14px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:8px;}
/* Ortodonti — önizleme/kilit uyarı banner'ı (programda olmayan hasta) */
.ortho-lock-banner{display:flex;align-items:flex-start;gap:11px;background:linear-gradient(135deg,#fff4e0,#fff8ec);border:1px solid #fde4b8;border-radius:14px;padding:13px 15px;margin:2px 0 14px;}
.ortho-lock-banner>i{color:#f59e0b;font-size:18px;margin-top:1px;flex-shrink:0;}
.ortho-lock-banner strong{display:block;font-size:13px;color:#92560a;font-weight:800;margin-bottom:2px;}
.ortho-lock-banner span{font-size:11.5px;color:#a16207;line-height:1.45;}
/* Ortodonti — sonraki kontrol kartı (occ): normal / yaklaşan (soon) / geciken (late) */
.occ{margin-top:14px;}
.occ-row{display:flex;align-items:center;gap:12px;}
.occ-ic{width:44px;height:44px;border-radius:13px;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:18px;flex:none;}
.occ-c{flex:1;min-width:0;}
.occ-lbl{font-size:10.5px;font-weight:800;letter-spacing:.6px;color:var(--muted2);}
.occ-lbl span{font-weight:600;letter-spacing:0;}
.occ-c strong{display:block;font-size:15px;color:var(--ink);margin-top:2px;}
.occ-sub{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.4;}
.occ-badge{flex:none;font-size:11px;font-weight:800;padding:5px 11px;border-radius:999px;background:#ede9fe;color:var(--purple);white-space:nowrap;}
.occ.occ-soon .occ-ic{background:#fff2dc;color:var(--gold2);}
.occ.occ-soon .occ-badge{background:#fff2dc;color:#b45309;}
.occ.occ-late .occ-ic{background:#ffe4e6;color:#dc2626;}
.occ.occ-late .occ-badge{background:#ffe4e6;color:#dc2626;}
.occ-btn{width:100%;margin-top:12px;border:0;border-radius:13px;padding:12px;font-weight:800;font-size:13px;cursor:pointer;font-family:inherit;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;}
.occ.occ-late .occ-btn{background:linear-gradient(135deg,#ef4444,#dc2626);}
.occ-btn:active{transform:scale(.98);}
.occ-appt{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12.5px;font-weight:700;color:var(--green);cursor:pointer;}
/* Ortodonti — plak (aligner) takibi kartı */
.oal-bar{height:8px;border-radius:999px;background:#efeafd;margin-top:12px;overflow:hidden;}
.oal-bar>div{height:100%;border-radius:999px;background:var(--grad);}
.oal-confirm{display:flex;align-items:center;gap:8px;margin-top:12px;}
.oal-confirm span{flex:1;font-size:12.5px;font-weight:700;color:var(--ink);}
.oal-confirm button{border:0;border-radius:11px;padding:10px 14px;font-weight:800;font-size:12.5px;cursor:pointer;font-family:inherit;}
.oal-confirm .yes{background:var(--grad);color:#fff;}
.oal-confirm .no{background:#f1f0fa;color:var(--muted);}
/* Ortodonti — aşamaya kilitli görev kartı */
.ot-task.locked{opacity:.72;}
.ot-task.locked .ot-ic{filter:grayscale(.35);}
.ot-lock-pill{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;padding:5px 10px;border-radius:999px;background:#f1f0fa;color:var(--muted);white-space:nowrap;}
/* ═══ ÖDEMELER (hasta) ═══ */
.pay-card{display:flex;align-items:center;gap:12px;margin-bottom:12px;cursor:pointer;border:1.5px solid #e4d6ff;}
.pay-card:active{transform:scale(.995);}
.pay-ic{width:44px;height:44px;border-radius:13px;background:#f3ecff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:18px;flex:none;}
.pay-c{flex:1;min-width:0;}
.pay-c strong{display:block;font-size:13.5px;color:var(--ink);}
.pay-c span{font-size:11.5px;color:var(--muted);}
.pay-amt{text-align:right;flex:none;}
.pay-amt b{display:block;font-size:15px;font-weight:800;color:var(--purple);}
.pay-amt small{font-size:11px;color:var(--muted2);font-weight:700;}
.pay-sh-box{background:#faf9ff;border:1.5px solid var(--line);border-radius:14px;padding:4px 14px;}
.pay-sh-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #f0eef9;font-size:13px;}
.pay-sh-row:last-child{border-bottom:0;}
.pay-sh-row span{color:var(--muted);}
.pay-sh-row b{color:var(--ink);text-align:right;}
.pay-sh-row.total b{font-size:18px;color:var(--purple);}
.pay-sh-secure{display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;color:var(--muted2);margin-top:12px;text-align:center;}
/* Ödeme v2 — borç kartı (tasarım: başlık + toplam + kalan + vade + Şimdi Öde) */
.debt-card{display:flex;align-items:center;gap:12px;margin-bottom:12px;cursor:pointer;border:1.5px solid #e4d6ff;}
.debt-card.paid{border-color:var(--line);cursor:default;opacity:.92;}
.debt-card:active{transform:scale(.995);}
.debt-l{flex:1;min-width:0;}
.debt-l strong{display:block;font-size:13.5px;color:var(--ink);margin-bottom:3px;}
.debt-amt{font-size:19px;font-weight:800;color:var(--ink);}
.debt-amt small{font-size:11px;font-weight:700;color:var(--muted2);}
.debt-rem{font-size:12px;font-weight:700;color:#b45309;margin-top:2px;}
.debt-pay{flex:none;border:0;border-radius:12px;padding:10px 16px;font-weight:800;font-size:12.5px;cursor:pointer;font-family:inherit;background:var(--grad);color:#fff;}
.debt-pay:active{transform:scale(.97);}
.pay-due{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;margin-top:6px;padding:3px 9px;border-radius:999px;background:#f1f0fa;color:var(--muted);}
.pay-due.soon{background:#fff2dc;color:#b45309;}
.pay-due.late{background:#ffe4e6;color:#dc2626;}
.pay-due.ok{background:#e3fbef;color:#16a34a;}
/* Toplam bekleyen borç özeti */
.pay-sum{display:flex;align-items:center;gap:12px;background:#f3ecff;border:1.5px solid #e4d6ff;margin-bottom:12px;}
.pay-sum-l{flex:1;}
.pay-sum-l strong{font-size:12.5px;color:var(--purple-ink);}
.pay-sum-amt{font-size:20px;font-weight:800;color:var(--purple);}
.pay-sum-amt small{font-size:11px;color:var(--muted2);}
.pay-sum-ic{width:40px;height:40px;border-radius:12px;background:#fff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:16px;}
/* Ödeme sheet v2: tutar + yöntem + 3D */
.pay-amt-row{display:flex;gap:8px;align-items:center;margin-bottom:6px;}
.pay-amt-row .refer-input{font-size:20px;font-weight:800;color:var(--purple);}
.pay-amt-max{flex:none;border:1.5px solid #d6c9f5;background:#faf8ff;color:var(--purple);border-radius:11px;padding:11px 13px;font-weight:800;font-size:12px;cursor:pointer;font-family:inherit;}
.pay-amt-hint{font-size:11px;color:var(--muted);margin-bottom:12px;}
.pay-method{display:flex;align-items:center;gap:10px;border:1.5px solid var(--purple);background:#faf8ff;border-radius:13px;padding:12px 13px;margin-top:12px;}
.pm-radio{color:var(--purple);font-size:15px;}
.pm-txt{flex:1;}
.pm-txt strong{display:block;font-size:13px;color:var(--ink);}
.pm-txt small{font-size:10.5px;color:var(--muted);}
.pm-cards{font-size:16px;}
.pay-3d{display:flex;align-items:flex-start;gap:8px;font-size:10.5px;color:#4c5aa8;background:#eef2ff;border-radius:11px;padding:10px 12px;margin-top:10px;line-height:1.5;}
.pay-3d i{margin-top:1px;}
.rcpt-badge{display:inline-flex;align-items:center;gap:6px;background:#e3fbef;color:#16a34a;font-weight:800;font-size:12px;padding:6px 13px;border-radius:999px;}
.payh-chev{color:var(--muted2);font-size:11px;flex:none;}
/* Ödemelerim ekranı — geçmiş satırları */
.payh-row{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.payh-row.cancelled{opacity:.65;}
.payh-ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:16px;flex:none;}
.payh-ic.ok{background:#e3fbef;color:#16a34a;}
.payh-ic.no{background:#f1f0fa;color:var(--muted2);}
.payh-c{flex:1;min-width:0;}
.payh-c strong{display:block;font-size:13px;color:var(--ink);}
.payh-c span{font-size:11px;color:var(--muted);}
.payh-test{display:inline-block;font-size:9px;font-weight:800;background:#fff2dc;color:#b45309;padding:2px 7px;border-radius:8px;vertical-align:middle;margin-left:4px;}
.payh-amt{font-size:14px;font-weight:800;color:#16a34a;flex:none;}
.payh-amt.muted{color:var(--muted2);text-decoration:line-through;}
.payh-empty{text-align:center;padding:56px 24px;color:var(--muted);}
.payh-empty i{font-size:38px;color:#d6c9f5;margin-bottom:14px;display:block;}
.payh-empty p{font-size:13px;line-height:1.6;margin:0;}
.payh-note{display:flex;align-items:flex-start;gap:8px;font-size:11px;color:var(--muted2);margin:16px 2px 0;line-height:1.5;}
.payh-note i{margin-top:1px;}
/* Ortodonti — tedavi tamamlandı kutlaması (5d) */
.ortho-complete{background:linear-gradient(135deg,#16a34a,#22c55e);border-radius:20px;padding:20px 18px;margin:2px 0 14px;color:#fff;box-shadow:0 12px 30px rgba(22,163,74,.28);}
.ocp-hero{text-align:center;margin-bottom:16px;}
.ocp-emoji{font-size:40px;line-height:1;margin-bottom:8px;}
.ocp-hero strong{display:block;font-size:20px;font-weight:800;margin-bottom:5px;}
.ocp-hero span{font-size:12.5px;opacity:.94;line-height:1.5;display:block;max-width:280px;margin:0 auto;}
.ocp-stats{display:flex;gap:9px;margin-bottom:14px;}
.ocp-stat{flex:1;background:rgba(255,255,255,.16);border-radius:13px;padding:11px 6px;text-align:center;}
.ocp-stat b{display:block;font-size:19px;font-weight:800;}
.ocp-stat small{font-size:10px;opacity:.9;}
.ocp-retainer{display:flex;gap:11px;background:rgba(255,255,255,.14);border-radius:14px;padding:13px;margin-bottom:14px;}
.ocp-ret-ic{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;font-size:16px;flex:none;}
.ocp-ret-c strong{display:block;font-size:13px;margin-bottom:3px;}
.ocp-ret-c span{font-size:11.5px;opacity:.94;line-height:1.5;}
.ocp-actions{display:flex;gap:9px;}
.ocp-btn{flex:1;border:0;border-radius:12px;padding:12px;font-weight:800;font-size:12.5px;cursor:pointer;font-family:inherit;background:#fff;color:#0f9d58;display:flex;align-items:center;justify-content:center;gap:7px;}
.ocp-btn.ghost{background:rgba(255,255,255,.2);color:#fff;}
.ocp-btn:active{transform:scale(.98);}
/* Ortodonti — ana ekran gezinme kartları (Bakım / Önce-Sonra) */
.ortho-nav-card{display:flex;align-items:center;gap:11px;padding:14px 13px;cursor:pointer;font-family:inherit;text-align:left;border:0;width:100%;}
.onc-ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:17px;flex:none;}
.onc-tx{flex:1;min-width:0;}
.onc-tx strong{display:block;font-size:13.5px;color:var(--ink);}
.onc-tx small{font-size:11px;color:var(--muted);}
.onc-ck{color:var(--muted2);font-size:13px;}
/* Bakım rehberi (care) */
.care-intro{display:flex;align-items:center;gap:12px;background:var(--grad);border-radius:16px;padding:15px;margin:2px 0 14px;color:#fff;}
.care-intro-ic{width:44px;height:44px;border-radius:13px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:19px;flex:none;}
.care-intro strong{display:block;font-size:15px;}
.care-intro span{font-size:12px;opacity:.92;}
.care-card{margin-bottom:12px;}
.care-h{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.care-ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex:none;}
.care-h strong{font-size:14px;color:var(--ink);}
.care-list{margin:0;padding-left:18px;}
.care-list li{font-size:12.5px;line-height:1.55;color:var(--muted);margin-bottom:7px;}
.care-list li:last-child{margin-bottom:0;}
.care-foot{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:#a16207;background:#fff8ec;border:1px solid #fde4b8;border-radius:12px;padding:11px 13px;margin-top:4px;}
.care-foot i{margin-top:1px;}
/* Önce / Sonra (compare) */
.cmp-empty{text-align:center;padding:50px 20px;color:var(--muted);}
.cmp-empty i{font-size:40px;color:#d6c9f5;margin-bottom:14px;}
.cmp-empty p{font-size:13px;line-height:1.6;margin:0 0 18px;}
.cmp-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:2px 0 12px;}
.cmp-fig{position:relative;margin:0;border-radius:16px;overflow:hidden;background:#f4f2fc;}
.cmp-fig img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;}
.cmp-tag{position:absolute;top:10px;left:10px;font-size:10.5px;font-weight:800;letter-spacing:.5px;color:#fff;padding:4px 10px;border-radius:20px;}
.cmp-tag.before{background:rgba(20,20,45,.6);}
.cmp-tag.after{background:linear-gradient(135deg,#16a34a,#22c55e);}
.cmp-fig figcaption{font-size:11px;color:var(--ink);font-weight:700;text-align:center;padding:8px 4px;background:#fff;}
.cmp-gap{text-align:center;font-size:12.5px;color:var(--purple-ink);background:#f3ecff;border-radius:12px;padding:11px;margin-bottom:16px;}
.cmp-gap b{font-weight:800;}
.cmp-strip-lbl{font-size:11.5px;font-weight:700;color:var(--muted2);margin:0 2px 9px;}
.cmp-strip{display:flex;gap:9px;overflow-x:auto;padding-bottom:6px;}
.cmp-thumb{flex:none;width:66px;border:0;background:none;padding:0;cursor:pointer;font-family:inherit;}
.cmp-thumb img{width:66px;height:80px;object-fit:cover;border-radius:11px;border:2.5px solid transparent;display:block;}
.cmp-thumb.from img{border-color:#9090aa;}
.cmp-thumb.to img{border-color:#16a34a;}
.cmp-thumb span{display:block;font-size:9.5px;color:var(--muted);margin-top:4px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* Ortodonti — "Sorun Bildir" butonu (ana ekran) */
.ortho-issue-btn{width:100%;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #ffe0d6;border-radius:15px;padding:13px 15px;margin:0 0 14px;cursor:pointer;font-family:inherit;text-align:left;}
.ortho-issue-btn:active{transform:scale(.995);}
.oib-ic{width:40px;height:40px;border-radius:12px;background:#fff1ec;color:#f2683c;display:flex;align-items:center;justify-content:center;font-size:17px;flex:none;}
.oib-tx{flex:1;min-width:0;}
.oib-tx strong{display:block;font-size:13.5px;color:var(--ink);}
.oib-tx small{font-size:11.5px;color:var(--muted);}
.oib-ck{color:#d6a08c;font-size:13px;}
/* Açık sorun bilgi şeridi */
.ortho-issue-open{display:flex;align-items:center;gap:11px;background:linear-gradient(135deg,#fff4e0,#fff8ec);border:1px solid #fde4b8;border-radius:14px;padding:12px 14px;margin:0 0 14px;}
.ortho-issue-open .oio-ic{width:34px;height:34px;border-radius:10px;background:#fff;color:#f59e0b;display:flex;align-items:center;justify-content:center;font-size:15px;flex:none;}
.ortho-issue-open .oio-c{flex:1;min-width:0;}
.ortho-issue-open strong{display:block;font-size:12.5px;color:#92560a;font-weight:800;}
.ortho-issue-open span{font-size:11px;color:#a16207;}
/* Sorun bildir modalı */
.oim-box{text-align:left;max-width:360px;}
.oim-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.oim-head-ic{width:46px;height:46px;border-radius:14px;background:#fff1ec;color:#f2683c;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;}
.oim-head h3{margin:0 0 2px;font-size:17px;font-weight:800;color:var(--ink);}
.oim-head p{margin:0;font-size:12px;color:var(--muted);}
.oim-label{font-size:12px;font-weight:800;color:var(--muted2);letter-spacing:.4px;margin-bottom:9px;}
.oim-kinds{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.oim-kind{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:11px;border:1.5px solid var(--line);background:#faf9ff;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;font-family:inherit;}
.oim-kind.on{background:#fff1ec;border-color:#f9b79e;color:#d8552b;}
.oim-tip{font-size:11.5px;line-height:1.5;color:#8a5a2b;background:#fff8f1;border:1px solid #ffe6d5;border-radius:11px;padding:10px 12px;margin-bottom:12px;}
.oim-tip b{color:#c2410c;}
.oim-note{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:11px 12px;font-family:inherit;font-size:13px;color:var(--ink);resize:vertical;margin-bottom:10px;box-sizing:border-box;}
.oim-note:focus{outline:none;border-color:var(--purple);}
.oim-photo{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:1.5px dashed #d6c9f5;background:#faf8ff;color:var(--purple);border-radius:12px;padding:11px;font-weight:700;font-size:12.5px;cursor:pointer;font-family:inherit;margin-bottom:14px;}
.oim-photo.has{border-style:solid;border-color:#16b86a;color:#0f9d58;background:#f0fdf6;}
/* Ortodonti — foto açı seçim modalı (oam) */
.oam-prev{width:100%;height:170px;border-radius:16px;overflow:hidden;background:#f4f2fc;margin-bottom:14px;}
.oam-prev img{width:100%;height:100%;object-fit:cover;display:block;}
.oam-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 18px;}
.oam-chip{padding:8px 15px;border-radius:999px;border:1.5px solid var(--line);background:#faf9ff;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;}
.oam-chip.on{background:var(--purple);border-color:var(--purple);color:#fff;}
/* Ortodonti — foto sayfası hero istatistikleri (sahte grafik yerine gerçek veri) */
.ophz-stats{display:flex;gap:8px;margin-top:14px;}
.ophz-stat{flex:1;background:rgba(255,255,255,.16);border-radius:12px;padding:9px 6px;text-align:center;min-width:0;}
.ophz-stat b{display:block;font-size:14px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ophz-stat span{font-size:10px;color:rgba(255,255,255,.85);}
/* Ortodonti — foto açı filtresi boş durumu */
.ophz-empty{text-align:center;color:var(--muted);font-size:12.5px;padding:26px 0;}
.ophz-empty i{display:block;font-size:22px;margin-bottom:8px;color:var(--muted2);}
/* Genel ekran-ortası uyarı modalı (toast(isErr) + ortodonti uyarıları) */
.app-alert-overlay{position:fixed;inset:0;z-index:99999;background:rgba(24,16,46,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:28px;animation:owFade .18s ease;}
.app-alert-box{background:#fff;border-radius:24px;padding:30px 24px 22px;max-width:330px;width:100%;text-align:center;box-shadow:0 24px 64px rgba(24,16,46,.4);animation:owPop .28s cubic-bezier(.2,.9,.3,1.25);}
.app-alert-ic{width:82px;height:82px;border-radius:26px;margin:0 auto 18px;background:linear-gradient(135deg,#ede9fe,#f5f3ff);color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:36px;}
.app-alert-ic.success{background:linear-gradient(135deg,#e3fbef,#f0fdf4);color:var(--green);}
.app-alert-box.compact{padding-bottom:30px;}
.app-alert-box.compact p{margin-bottom:2px;}
.app-alert-box h3{font-size:18px;font-weight:800;color:var(--ink);margin:0 0 10px;line-height:1.3;}
.app-alert-box p{font-size:13px;color:var(--muted);line-height:1.55;margin:0 0 22px;white-space:pre-line;}
.app-alert-btn{width:100%;border:0;background:var(--grad);color:#fff;font-weight:800;font-size:14px;padding:14px;border-radius:15px;cursor:pointer;font-family:inherit;}
.app-alert-btn:active{transform:scale(.98);}
.app-alert-link{width:100%;border:0;background:none;color:var(--purple);font-weight:700;font-size:12.5px;padding:12px 0 2px;cursor:pointer;font-family:inherit;}
@keyframes owFade{from{opacity:0}to{opacity:1}}
@keyframes owPop{from{opacity:0;transform:scale(.9) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* ===== Ortodonti alt sayfa ortak: filtre pill'leri ===== */
.ortho-filters{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 4px;margin-top:14px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.ortho-filters::-webkit-scrollbar{display:none;}
.of-pill{flex:0 0 auto;font-size:12.5px;font-weight:700;color:#6b7280;background:#fff;border-radius:20px;padding:9px 15px;white-space:nowrap;cursor:pointer;box-shadow:0 2px 8px rgba(20,20,60,.05);display:inline-flex;align-items:center;gap:6px;}
.of-pill.active{background:var(--grad);color:#fff;box-shadow:0 4px 12px rgba(124,58,237,.3);}
.of-pill i{font-size:11px;}
.ot-empty{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:13px;font-weight:600;padding:34px 16px;text-align:center;}
.ot-empty i{font-size:16px;color:#c4b5fd;}
.oj-lbl{font-size:13px;opacity:.9;}

/* ===== TEDAVİ YOLCULUĞUM ===== */
.oj-hero{margin-top:2px;}
.oj-hero-top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1;}
.oj-bar-row{display:flex;align-items:center;gap:12px;margin-top:14px;position:relative;z-index:1;}
.oj-bar-row .op-seg{flex:1;margin-top:0;}
.oj-pct{font-size:24px;font-weight:800;flex-shrink:0;}
.oj-end{display:flex;align-items:center;gap:11px;margin-top:15px;position:relative;z-index:1;}
.oj-end>i{font-size:18px;opacity:.9;}
.oj-end small{display:block;font-size:11px;opacity:.85;}
.oj-end strong{font-size:14px;font-weight:800;}
.oj-timeline{position:relative;}
.oj-timeline:before{content:"";position:absolute;left:17px;top:16px;bottom:34px;width:2px;background:#e4def5;}
.ojt{display:flex;gap:13px;margin-bottom:12px;position:relative;}
.ojt-node{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;background:#ece9f7;color:#b3a9d6;position:relative;z-index:1;margin-top:14px;}
.ojt.done .ojt-node{background:var(--grad);color:#fff;}
.ojt.current .ojt-node{background:#fff;color:var(--purple);border:3px solid var(--purple);}
.ojt-card{flex:1;min-width:0;display:flex;align-items:center;gap:11px;padding:13px;}
.ojt-card.cur{flex-direction:column;align-items:stretch;gap:0;border:1.5px solid #e3d8ff;}
.ojt-row{display:flex;align-items:center;gap:11px;}
.ojt-ic{width:40px;height:40px;border-radius:12px;background:#f3f1fb;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.ojt-body{flex:1;min-width:0;}
.ojt-body strong{font-size:14px;font-weight:800;display:block;}
.ojt-body span{font-size:11.5px;color:var(--muted);}
.ojt-right{text-align:right;flex-shrink:0;}
.ojt-date{font-size:11px;color:var(--muted);margin-bottom:5px;white-space:nowrap;}
.ojt.current .ojt-date{margin-bottom:0;margin-top:3px;}
.ojt-cur{font-size:12px;font-weight:800;color:var(--purple);white-space:nowrap;}
.ojt-soon{font-size:11px;font-weight:700;color:#9ca3af;}
.ojt.future .ojt-card{opacity:.7;}
.ojt-tip{background:#f5f2ff;border-radius:13px;padding:11px 13px;margin-top:12px;}
.ojt-tip-h{font-size:12px;font-weight:800;color:var(--purple);display:flex;align-items:center;gap:6px;}
.ojt-tip p{font-size:11.5px;color:#6b7280;line-height:1.5;margin:6px 0 0;}
.oj-goal{display:flex;align-items:center;gap:13px;margin-top:6px;background:linear-gradient(135deg,#f3effe,#ece7fd);}
.oj-goal-ic{width:54px;height:54px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.oj-goal-txt{flex:1;min-width:0;}
.oj-goal-txt strong{font-size:13.5px;font-weight:800;color:var(--ink);display:block;}
.oj-goal-txt span{font-size:11.5px;color:#6b7280;line-height:1.45;}
.oj-goal-days{text-align:center;flex-shrink:0;background:#fff;border-radius:14px;padding:8px 13px;box-shadow:0 3px 8px rgba(124,58,237,.12);}
.oj-goal-days b{font-size:24px;font-weight:800;color:var(--purple);display:block;line-height:1;}
.oj-goal-days small{font-size:10px;color:var(--muted);font-weight:700;}

/* ===== SON FOTOĞRAFLARIM ===== */
.ophz-intro{display:flex;align-items:center;gap:12px;margin:2px 2px 14px;}
.ophz-intro p{flex:1;font-size:12px;color:var(--muted);line-height:1.5;margin:0;}
.ophz-addbtn{border:0;background:var(--grad);color:#fff;font-weight:800;font-size:12px;padding:10px 14px;border-radius:12px;cursor:pointer;font-family:inherit;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:6px;}
.ophz-addbtn.outline{background:#fff;color:var(--purple);border:1.5px solid #e3d8ff;}
.ophz-hero{margin-top:0;}
.ophz-hero-top{display:flex;align-items:center;gap:14px;position:relative;z-index:1;}
.ophz-ring{position:relative;width:78px;height:78px;flex-shrink:0;}
.ophz-ring svg{width:100%;height:100%;}
.ophz-ring span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;}
.ophz-hero-txt strong{font-size:16px;font-weight:800;display:block;}
.ophz-hero-txt span{font-size:12px;opacity:.92;line-height:1.45;}
.ophz-chart{margin-top:14px;position:relative;z-index:1;}
.ophz-chart svg{width:100%;height:58px;display:block;}
.ophz-chart-x{display:flex;justify-content:space-between;font-size:9.5px;opacity:.85;margin-top:4px;}
.ophz-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;}
.ophz-card{padding:0;overflow:hidden;}
.ophz-img{position:relative;aspect-ratio:1/1.05;background:linear-gradient(135deg,#ede9fe,#f5f3ff);display:flex;align-items:center;justify-content:center;color:#c4b5fd;font-size:52px;}
.ophz-card.locked .ophz-img>i{filter:blur(4px);opacity:.6;}
.ophz-badge{position:absolute;z-index:2;top:8px;left:8px;background:rgba(124,58,237,.92);color:#fff;font-size:10px;font-weight:800;padding:3px 9px;border-radius:10px;}
.ophz-menu{position:absolute;z-index:2;top:7px;right:7px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#6b7280;cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;}
/* fotoğraf silme onayı (kart üstü) */
.ophz-del{position:absolute;inset:0;z-index:4;background:rgba(17,12,34,.66);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:10px;text-align:center;}
.ophz-del p{color:#fff;font-size:12px;font-weight:700;margin:0;line-height:1.35;}
.ophz-del-row{display:flex;gap:8px;}
.ophz-del button{border:0;border-radius:10px;padding:7px 14px;font-size:12px;font-weight:800;font-family:inherit;cursor:pointer;}
.ophz-del .yes{background:#ef4444;color:#fff;}
.ophz-del .no{background:rgba(255,255,255,.94);color:#374151;}
.ophz-lock{position:absolute;top:7px;right:7px;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.92);color:#9ca3af;display:flex;align-items:center;justify-content:center;font-size:12px;}
.ophz-foot{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;gap:6px;}
.ophz-foot>span:first-child{font-size:10.5px;color:var(--muted);}
.ophz-tag{font-size:10px;font-weight:700;color:var(--purple);background:#f1e7ff;padding:3px 8px;border-radius:10px;white-space:nowrap;}
.ophz-motiv{display:flex;align-items:center;gap:12px;margin-top:16px;background:#f5f2ff;}
.ophz-motiv-ic{width:48px;height:48px;border-radius:13px;background:#fff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;box-shadow:0 3px 8px rgba(124,58,237,.1);}
.ophz-motiv-txt{flex:1;min-width:0;}
.ophz-motiv-txt strong{font-size:13px;font-weight:800;display:block;color:var(--ink);}
.ophz-motiv-txt span{font-size:11px;color:#6b7280;line-height:1.45;}
.ophz-tips{margin-top:14px;}
.ophz-tip{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--line);}
.ophz-tip:last-child{border-bottom:0;}
.ophz-tip-ic{width:34px;height:34px;border-radius:10px;background:#f3f1fb;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.ophz-tip span{font-size:12px;color:#4b5563;}

/* ===== TÜM GÖREVLER ===== */
.ot-hero{margin-top:2px;display:flex;justify-content:space-between;align-items:flex-start;}
.ot-hero-left{position:relative;z-index:1;}
.ot-seg{display:flex;gap:5px;margin-top:14px;max-width:230px;}
.ot-seg span{flex:1;height:8px;border-radius:4px;background:rgba(255,255,255,.25);}
.ot-seg span.on{background:#46d39a;}
.ot-hero-sub{font-size:13px;margin-top:12px;opacity:.95;position:relative;z-index:1;}
.ot-task{margin-top:12px;}
.ot-top{display:flex;align-items:flex-start;gap:12px;}
.ot-ic{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.ot-body{flex:1;min-width:0;}
.ot-body strong{font-size:14px;font-weight:800;display:block;}
.ot-body>span{font-size:11.5px;color:var(--muted);line-height:1.4;display:block;margin-top:2px;}
.ot-when{font-size:11px;color:#9ca3af;margin-top:6px;display:flex;align-items:center;gap:5px;}
.ot-right{text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:64px;}
.ot-pts{font-size:13px;font-weight:800;color:var(--green);white-space:nowrap;}
.ot-check{font-size:24px;color:var(--green);}
.ot-arrow{font-size:14px;color:var(--purple);background:#f1e7ff;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.ot-meta{font-size:10px;color:var(--muted);line-height:1.3;}
.ot-lock{width:30px;height:30px;border-radius:50%;background:#eceaf3;color:#b8b3c9;display:flex;align-items:center;justify-content:center;font-size:13px;}
.ot-task.locked{opacity:.82;}
.ot-chips{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.ot-chip{display:inline-flex;align-items:center;gap:6px;background:#f5f3fb;border-radius:20px;padding:6px 11px;font-size:11px;font-weight:700;color:#4b5563;}
.ot-chip i{color:var(--green);font-size:13px;}
.ot-badgebanner{display:flex;align-items:center;gap:12px;margin-top:16px;background:linear-gradient(135deg,#f3effe,#ece7fd);}
.ot-bb-ic{width:48px;height:48px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.ot-bb-txt{flex:1;min-width:0;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.4;}
.ot-bb-btn{flex-shrink:0;border:1.5px solid #e3d8ff;background:#fff;color:var(--purple);font-weight:800;font-size:11.5px;padding:9px 13px;border-radius:20px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}

/* ===== Görevler: hasta self-check vs klinik (salt-okunur) ===== */
.ot-sec{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 2px 12px;}
.ot-sec-h{display:flex;align-items:center;gap:9px;font-size:15.5px;font-weight:800;color:var(--ink);}
.ot-sec-ic{width:28px;height:28px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;flex-shrink:0;}
.ot-sec-ic.self{background:var(--grad);}
.ot-sec-ic.clinic{background:linear-gradient(135deg,#2563eb,#60a5fa);}
.ot-sec-note{font-size:10.5px;font-weight:800;padding:5px 11px;border-radius:20px;white-space:nowrap;flex-shrink:0;}
.ot-sec-note.self{color:var(--purple);background:#f1e7ff;}
.ot-sec-note.clinic{color:#2563eb;background:#e6f0ff;}
.ot-clinic-note{font-size:11px;color:#6b7280;background:#f5f6fa;border-radius:11px;padding:9px 12px;margin-bottom:10px;display:flex;align-items:center;gap:8px;line-height:1.4;}
.ot-clinic-note i{color:#9ca3af;flex-shrink:0;}
/* dokunmatik checkbox (hasta görevi) */
.ot-checkbox{width:30px;height:30px;border-radius:50%;border:2px solid #d8d4e4;display:flex;align-items:center;justify-content:center;color:transparent;font-size:13px;flex-shrink:0;transition:background .15s,border-color .15s,color .15s;}
.ot-task.done .ot-checkbox{background:var(--green);border-color:var(--green);color:#fff;}
.ot-task[onclick]{cursor:pointer;}
.ot-task[onclick]:active{transform:scale(.992);}
/* chip on/off (tıklanabilir) */
.ot-chip{cursor:pointer;user-select:none;transition:background .15s;}
.ot-chip i{color:#cdd3dd;}
.ot-chip.on{background:#e3fbef;color:#0f9d58;}
.ot-chip.on i{color:var(--green);}
/* klinik durum rozeti (salt-okunur) */
.ot-clinic-pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;padding:6px 11px;border-radius:20px;background:#edeaf2;color:#8b87a0;white-space:nowrap;}
.ot-clinic-pill.done{background:#e3fbef;color:#0f9d58;}
.ot-task.clinic .ot-right{gap:8px;}

/* yüklenen tedavi fotoğrafı + giriş animasyonu */
.ophz-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.ophz-badge,.ophz-menu,.ophz-lock{z-index:2;}
.ophz-new{animation:ophzPop .35s ease;}
@keyframes ophzPop{from{opacity:0;transform:scale(.92);}to{opacity:1;transform:scale(1);}}

/* ===== AĞIZ SAĞLIĞIM (Kişisel Ağız Sağlığı — test modülü, Faz 1) ===== */
.oc-home-card{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#efe7ff,#f7f1ff);border:1.5px dashed rgba(124,58,237,.35);border-radius:18px;padding:14px;margin-top:14px;cursor:pointer;transition:transform .15s;}
.oc-home-card:active{transform:scale(.98);}
.oc-home-ic{width:46px;height:46px;flex-shrink:0;border-radius:15px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 4px 12px rgba(124,58,237,.14);}
.oc-home-tx{flex:1;min-width:0;}
.oc-home-tx strong{font-size:13.5px;font-weight:800;display:flex;align-items:center;}
.oc-home-tx .sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.oc-new-inline{position:static;margin-left:5px;}
.oc-home-score{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;border-radius:13px;background:var(--grad);color:#fff;font-size:13px;font-weight:800;padding:0 8px;box-shadow:0 5px 12px rgba(124,58,237,.3);flex-shrink:0;}
.oc-home-chev{color:var(--purple);font-size:12px;}

/* Skor hero */
.oc-hero{background:var(--grad);border-radius:22px;padding:18px;color:#fff;position:relative;overflow:hidden;box-shadow:0 12px 28px rgba(124,58,237,.3);margin-top:10px;}
.oc-hero:before{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.12);top:-55px;right:-35px;}
.oc-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:relative;z-index:1;}
.oc-hero .lbl{font-size:12px;font-weight:600;opacity:.9;}
.oc-hero-score{font-size:34px;font-weight:800;line-height:1.15;margin-top:3px;}
.oc-hero-max{font-size:15px;font-weight:700;opacity:.75;margin-left:2px;}
.oc-hero-msg{font-size:12px;font-weight:600;opacity:.92;margin-top:4px;}
.oc-streak{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:1px;background:rgba(255,255,255,.16);border:1.5px solid rgba(255,255,255,.3);border-radius:16px;padding:9px 13px;}
.oc-streak-fire{font-size:18px;}
.oc-streak-n{font-size:17px;font-weight:800;}
.oc-streak-t{font-size:9.5px;font-weight:700;opacity:.85;white-space:nowrap;}
.oc-hero-bar{height:9px;background:rgba(255,255,255,.28);border-radius:20px;overflow:hidden;margin-top:14px;position:relative;z-index:1;}
.oc-hero-fill{height:100%;width:0;background:linear-gradient(90deg,#ffd24d,#fbbf24);border-radius:20px;transition:width .8s cubic-bezier(.34,1.2,.64,1);}

/* Görev kartları */
.oc-task{display:flex;align-items:center;gap:12px;margin-bottom:10px;cursor:pointer;border:1.5px solid transparent;transition:border-color .2s,background .2s,transform .12s;}
.oc-task:active{transform:scale(.98);}
.oc-task .ti{width:46px;height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.oc-task-tx{flex:1;min-width:0;}
.oc-task-tx strong{font-size:13.5px;font-weight:700;}
.oc-task-tx .sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.oc-task-w{font-size:11px;font-weight:800;color:var(--purple);background:#f1e7ff;border-radius:999px;padding:4px 9px;flex-shrink:0;}
.oc-check{width:26px;height:26px;flex-shrink:0;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent;transition:all .2s;}
.oc-task.done{border-color:rgba(22,184,106,.4);background:#f4fdf8;}
.oc-task.done .oc-check{background:var(--green);border-color:var(--green);color:#fff;}
.oc-task.done .oc-task-w{color:var(--green);background:#e3fbef;}

/* Kısayollar */
.oc-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;}
.oc-link{background:#fff;border-radius:16px;padding:13px 8px;text-align:center;cursor:pointer;box-shadow:0 4px 14px rgba(20,20,60,.05);transition:transform .15s;}
.oc-link:active{transform:scale(.95);}
.oc-link .qi{width:40px;height:40px;border-radius:13px;margin:0 auto 7px;display:flex;align-items:center;justify-content:center;font-size:16px;}
.oc-link .qt{font-size:11.5px;font-weight:700;}

/* Haftalık rapor ızgarası */
.oc-grid-card{padding:12px 8px;overflow-x:auto;}
.oc-grid{width:100%;border-collapse:collapse;font-size:11px;}
.oc-grid th{font-size:10px;font-weight:800;color:var(--muted2);padding:4px 2px;text-align:center;}
.oc-grid th.today{color:var(--purple);}
.oc-grid td{padding:4px 2px;text-align:center;}
.oc-grid-task{text-align:left!important;font-weight:700;font-size:10.5px;color:var(--ink);white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis;}
.oc-cell{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:8px;background:var(--line);color:transparent;font-size:9px;}
.oc-cell.on{background:#e3fbef;color:var(--green);}
.oc-grid-total td{border-top:1px solid var(--line);padding-top:7px;}
.oc-grid-score{font-weight:800;color:var(--purple);font-size:10.5px;}
.oc-habit{display:flex;align-items:center;gap:12px;padding:8px 2px;}
.oc-habit .ti{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}

/* Günlük (notlar) */
.oc-diary-form{margin-top:10px;padding:16px;}
.oc-diary-q{font-size:14px;font-weight:800;margin-bottom:11px;}
.oc-moods{display:flex;gap:8px;margin-bottom:12px;}
.oc-mood{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:10px 6px;border-radius:13px;border:1.5px solid var(--line);background:#fff;font-size:12px;font-weight:700;color:var(--ink);cursor:pointer;transition:all .15s;}
.oc-mood.on{border-color:var(--purple);background:#f1e7ff;color:var(--purple-ink);}
.oc-diary-note{width:100%;border:1.5px solid var(--line);border-radius:13px;padding:11px 12px;font-size:13px;resize:none;margin-bottom:12px;outline:none;background:#fafaff;color:var(--ink);}
.oc-diary-note:focus{border-color:var(--purple);}
.oc-empty{text-align:center;color:var(--muted);font-size:12.5px;font-weight:600;padding:22px 14px;}

/* ===== MİSAFİR ANA SAYFA (guest home — test modülü, Faz 1) ===== */
/* Misafir tabbar yalnız guest-mode'da görünür; ana tabbar gizlenir */
.guest-tabbar{display:none;}
body.guest-mode .tabbar:not(.guest-tabbar){display:none;}
body.guest-mode .guest-tabbar{display:flex;}
body.logged-out .guest-tabbar{display:none;}

.gh-guest-btn{margin-top:14px;}

/* ---- Yakınındaki Klinikler: premium keşfet bölümü (yatay slider) ---- */
/* Bölüm container'ı: büyük beyaz rounded kart */
.gh-clinic-discovery{background:#fff;border-radius:24px;padding:16px;box-shadow:0 8px 28px rgba(20,20,60,.08);margin-top:18px;}
.gh-clinic-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.gh-clinic-title{font-size:15.5px;font-weight:800;}
.gh-clinic-head .link{font-size:12.5px;font-weight:700;color:var(--purple);cursor:pointer;display:inline-flex;align-items:center;gap:4px;}

/* Filtre chip'leri — yatay kaydırılabilir */
.gh-clinic-filters{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 12px;-webkit-overflow-scrolling:touch;}
.gh-clinic-filters::-webkit-scrollbar{display:none;}
.gh-clinic-chip{flex-shrink:0;padding:10px 14px;border-radius:999px;border:1px solid #ecebf6;background:#fff;color:var(--ink);font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap;}
.gh-clinic-chip.on{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(124,58,237,.3);}
.gh-clinic-chip:active{transform:scale(.95);}

/* Yatay kart slider'ı — DİKEY LİSTE DEĞİL (ilk ekranda 3 kart + 4.'ün ucu) */
.gh-clinic-slider{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  /* container padding'ine taşarak 3 tam kart + 4.'ün ucu görünür */
  margin:0 -16px;padding:0 12px 8px;scroll-padding-left:12px;}
.gh-clinic-slider::-webkit-scrollbar{display:none;}
.gh-clinic-empty{flex:0 0 100%;text-align:center;color:var(--muted);font-size:12.5px;font-weight:600;padding:22px 10px;}

/* Klinik kartı (kompakt) */
/* Not: 135px hedeflendi; 480px kabukta 3 tam kart + 4.'ün ucu için 124px gerekiyor */
.gh-clinic-card{min-width:124px;max-width:124px;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 8px 24px rgba(20,20,60,.08);scroll-snap-align:start;cursor:pointer;transition:transform .15s;}
.gh-clinic-card:active{transform:scale(.97);}

/* Kart görseli — mor/lila gradyan + cam klinik hissi (fotoğraf placeholder'ı) */
.gh-clinic-image{position:relative;height:78px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.gh-clinic-image::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,.06) 38%,transparent 55%,rgba(255,255,255,.14) 80%,rgba(255,255,255,.02) 100%);}
.gh-clinic-image::after{content:"";position:absolute;left:0;right:0;bottom:0;height:32px;background:linear-gradient(180deg,transparent,rgba(20,20,60,.20));}
.gh-clinic-emoji{font-size:30px;position:relative;z-index:1;filter:drop-shadow(0 6px 12px rgba(0,0,0,.18));}

/* Favori — beyaz yuvarlak kalp (kompakt) */
.gh-clinic-fav{position:absolute;top:7px;right:7px;z-index:2;width:27px;height:27px;border-radius:50%;border:none;background:rgba(255,255,255,.94);color:var(--muted2);font-size:11px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.14);transition:transform .12s,color .15s;}
.gh-clinic-fav:active{transform:scale(.85);}
.gh-clinic-fav.on{color:var(--red);}

/* Kart içeriği (kompakt) */
.gh-clinic-content{padding:9px;}
.gh-clinic-name{display:block;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gh-clinic-rate{font-size:11px;font-weight:800;color:var(--ink);margin-top:3px;}
.gh-clinic-rev{color:var(--muted2);font-weight:700;}
.gh-clinic-meta{font-size:11px;font-weight:600;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gh-clinic-btn{display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:7px 10px;border:none;border-radius:12px;background:var(--grad);color:#fff;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 5px 12px rgba(124,58,237,.28);transition:transform .12s,filter .15s;}
.gh-clinic-btn:active{transform:scale(.95);filter:brightness(.9);}
.gh-clinic-btn i{font-size:10px;}

/* Klinik detay ekranının kullandığı ortak parçalar */
.gh-cc-emoji{font-size:42px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.18));position:relative;z-index:1;}
.gh-cc-fade{position:absolute;left:0;right:0;bottom:0;height:34px;background:linear-gradient(180deg,transparent,rgba(20,20,60,.22));z-index:1;}
.gh-cc-fav{position:absolute;top:8px;right:8px;z-index:2;width:30px;height:30px;border-radius:50%;border:none;background:rgba(255,255,255,.92);color:var(--muted2);font-size:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 8px rgba(0,0,0,.12);transition:transform .12s,color .15s;}
.gh-cc-fav:active{transform:scale(.85);}
.gh-cc-fav.on{color:var(--red);}
.gh-cc-rate{font-size:11.5px;font-weight:800;color:var(--ink);margin-top:4px;}
.gh-cc-star{color:var(--gold2);}
.gh-cc-rev{color:var(--muted2);font-weight:700;}

/* Klinik detay ekranı */
.gh-dt-cover{position:relative;height:170px;border-radius:22px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-top:8px;box-shadow:0 12px 26px rgba(124,58,237,.18);}
.gh-dt-cover::before{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.15);top:-60px;left:-40px;}
.gh-dt-cover::after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.1);bottom:-45px;right:-25px;}
.gh-dt-cover .gh-cc-fav{width:38px;height:38px;font-size:16px;top:12px;right:12px;}
.gh-dt-card{margin-top:12px;padding:16px;}
.gh-dt-name{font-size:18px;font-weight:800;}
.gh-dt-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.gh-dt-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--purple-ink);background:#f1e7ff;border-radius:999px;padding:6px 11px;}
.gh-dt-pill i{font-size:10px;}
.gh-dt-sec{font-size:13px;font-weight:800;margin-bottom:7px;}
.gh-dt-about{font-size:12.5px;color:var(--muted);line-height:1.55;}
#gh-detail-body > .btn-block{margin-top:16px;}

/* Şehir seçim penceresi seçenekleri */
.gh-city-opt{margin-bottom:8px;}
.gh-city-opt.on{border-color:var(--purple);background:#f7f2ff;}

/* ===== PREMIUM TAKİP KARTLARI (şeker / su / ilaç — misafir ana sayfa, Faz 1) ===== */
.gt-card{background:#fff;border-radius:20px;padding:16px;box-shadow:0 4px 18px rgba(20,20,60,.05);margin-top:16px;}
.gt-head{display:flex;align-items:center;gap:12px;}
.gt-ic{width:44px;height:44px;flex-shrink:0;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:20px;}
.gt-ic-pink{background:#ffe8f2;}
.gt-ic-blue{background:#e6f0ff;}
.gt-ic-purple{background:#f1e7ff;}
.gt-tx{flex:1;min-width:0;}
.gt-tx strong{font-size:13.5px;font-weight:800;display:block;}
.gt-tx .sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.gt-val{font-size:14px;font-weight:800;color:var(--purple);flex-shrink:0;}
.gt-bar{height:8px;background:var(--line);border-radius:20px;overflow:hidden;margin-top:12px;}
.gt-fill{height:100%;width:0;border-radius:20px;transition:width .5s cubic-bezier(.34,1.2,.64,1);}
.gt-fill-pink{background:linear-gradient(90deg,#f472b6,#ec4899);}
.gt-fill-blue{background:linear-gradient(90deg,#7dd3fc,#0ea5e9);}
.gt-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;}
.gt-status{font-size:11.5px;font-weight:700;color:var(--muted);}
.gt-status.ok{color:var(--green);}
.gt-status.warn{color:var(--gold2);}
.gt-status.bad{color:var(--red);}
.gt-btns{display:flex;gap:8px;flex-shrink:0;}
.gt-btn{width:34px;height:34px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-size:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s,background .15s;}
.gt-btn:active{transform:scale(.88);}
.gt-btn-plus{background:var(--grad);color:#fff;border:none;box-shadow:0 5px 12px rgba(124,58,237,.28);}

/* İlaç listesi */
.gt-med{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line);cursor:pointer;}
.gt-med:last-child{border-bottom:none;padding-bottom:2px;}
.gt-med:first-child{margin-top:6px;}
.gt-med-time{font-size:11.5px;font-weight:800;color:var(--purple);background:#f1e7ff;border-radius:9px;padding:4px 8px;flex-shrink:0;}
.gt-med-name{flex:1;min-width:0;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gt-med-bell{font-size:10px;color:var(--muted2);margin-left:3px;}
.gt-med-del{border:none;background:none;color:var(--muted2);font-size:12px;padding:6px;cursor:pointer;flex-shrink:0;}
.gt-med-check{width:24px;height:24px;flex-shrink:0;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:10px;color:transparent;transition:all .2s;}
.gt-med.done .gt-med-check{background:var(--green);border-color:var(--green);color:#fff;}
.gt-med.done .gt-med-name{text-decoration:line-through;color:var(--muted);}
.gt-med-empty{text-align:center;color:var(--muted);font-size:12px;font-weight:600;padding:16px 4px 6px;}

/* İlaç ekleme penceresi girişleri */
.gt-inp{width:100%;border:1.5px solid var(--line);border-radius:13px;padding:11px 12px;font-size:13px;margin-bottom:10px;outline:none;background:#fafaff;color:var(--ink);}
.gt-inp:focus{border-color:var(--purple);}
.gt-remind{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;margin:2px 2px 14px;cursor:pointer;}
.gt-remind input{width:17px;height:17px;accent-color:var(--purple);}

/* ---- Takip kartları: kompakt düzen ---- */
.gt-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;}
.gt-row .gt-card{margin-top:0;}
.gt-mini{padding:12px;border-radius:18px;}
.gt-mini-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.gt-mini .gt-ic{width:32px;height:32px;border-radius:11px;font-size:15px;}
.gt-mini .gt-val{font-size:12.5px;}
.gt-mini-title{display:block;font-size:12.5px;font-weight:800;margin-top:8px;}
.gt-mini .gt-bar{height:5px;margin-top:8px;}
.gt-mini .gt-foot{margin-top:9px;gap:6px;}
.gt-mini .gt-status{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gt-mini .gt-btns{gap:6px;}
.gt-mini .gt-btn{width:26px;height:26px;border-radius:9px;font-size:11px;}

/* İlaç kartı: kompakt */
.gt-med-card{padding:13px 16px;}
.gt-med-card .gt-ic{width:38px;height:38px;border-radius:12px;font-size:17px;}
.gt-med-card .gt-tx strong{font-size:13px;}
.gt-med-card .gt-tx .sub{font-size:11px;}
.gt-med-card .gt-btn{width:30px;height:30px;border-radius:10px;font-size:12px;}
.gt-med{padding:8px 2px;}
.gt-med-time{font-size:11px;padding:3px 7px;}
.gt-med-name{font-size:12.5px;}
.gt-med-check{width:22px;height:22px;font-size:9px;}
.gt-med-more{text-align:center;padding-top:8px;}
.gt-med-more .link{font-size:12px;font-weight:700;color:var(--purple);cursor:pointer;}

/* ---- Öne çıkan klinik + fotoğraflı kartlar ---- */
.gh-star{color:var(--gold2);font-size:10px;}
.gh-clinic-image{background-size:cover;background-position:center;}
.gh-dt-cover{background-size:cover;background-position:center;}

.gh-feat{margin-top:18px;}
.gh-feat-title{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:800;margin-bottom:12px;}
.gh-feat-title i{color:var(--gold2);}
.gh-feat-body{display:flex;gap:13px;align-items:stretch;}
.gh-feat-img{flex:0 0 42%;min-height:150px;border-radius:18px;background-size:cover;background-position:center;cursor:pointer;box-shadow:0 6px 18px rgba(20,20,60,.12);}
.gh-feat-info{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.gh-feat-badge{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;font-weight:800;letter-spacing:.04em;color:var(--purple-ink);background:#f1e7ff;border-radius:999px;padding:5px 10px;}
.gh-feat-badge i{font-size:8px;}
.gh-feat-name{font-size:19px;font-weight:800;letter-spacing:-.01em;}
.gh-feat-specs{display:flex;flex-wrap:wrap;gap:5px;}
.gh-feat-spec{font-size:10px;font-weight:700;color:var(--purple-ink);background:#f4edff;border-radius:999px;padding:4px 9px;}
.gh-feat-perk{display:flex;align-items:flex-start;gap:8px;margin-top:2px;}
.gh-feat-gift{width:28px;height:28px;flex-shrink:0;border-radius:9px;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:12px;}
.gh-feat-perk strong{font-size:12px;font-weight:800;display:block;}
.gh-feat-perk .sub{font-size:11px;color:var(--muted);margin-top:1px;}
.gh-feat-btn{margin-top:6px;padding:10px 18px;border-radius:14px;font-size:12.5px;align-self:flex-start;}

/* Filtre chip'leri bölüm dışında (beyaz kart görünümlü) */
#gh-clinic-filters{margin-top:12px;padding-bottom:2px;}
#gh-clinic-filters .gh-clinic-chip{box-shadow:0 2px 8px rgba(20,20,60,.04);padding:10px 15px;border-radius:16px;display:inline-flex;align-items:center;gap:7px;}
#gh-clinic-filters .gh-clinic-chip i{font-size:12px;color:var(--purple);}
#gh-clinic-filters .gh-clinic-chip.on i{color:#fff;}

/* Dar ekranda öne çıkan kart dikey akar */
@media (max-width:420px){
  .gh-feat-body{flex-direction:column;}
  .gh-feat-img{flex:none;height:130px;min-height:0;}
}

/* ---- Aranabilir şehir seçimi + öneri penceresi ---- */
.gh-city-search{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);border-radius:13px;padding:10px 12px;margin-bottom:12px;background:#fafaff;}
.gh-city-search i{color:var(--muted2);font-size:13px;}
.gh-city-search input{flex:1;border:none;outline:none;background:none;font-size:14px;color:var(--ink);}
.gh-city-list{max-height:44vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.gh-city-opt{margin-bottom:8px;display:flex;align-items:center;gap:10px;}
.gh-city-opt.on{border-color:var(--purple);background:#f7f2ff;}
.gh-city-badge{font-size:9.5px;font-weight:800;color:var(--green);background:#e3fbef;border-radius:999px;padding:3px 8px;margin-left:6px;}
.gh-city-tick{margin-left:auto;color:var(--green);}
.gh-city-empty{text-align:center;color:var(--muted);font-size:13px;padding:20px 4px;}
.gh-suggest-kinds{display:flex;gap:8px;margin-bottom:12px;}
.gh-suggest-kinds .oim-kind{flex:1;}

/* ===== KLİNİKLER SAYFASI (misafir — mock harita + liste) ===== */
.gcl-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(env(safe-area-inset-top) + 16px) 16px 10px;}
.gcl-head-tx h1{font-size:24px;font-weight:800;letter-spacing:-.01em;}
.gcl-head-tx p{font-size:12.5px;color:var(--muted);margin-top:3px;}
.gcl-map-btn{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1.5px solid #e3d8ff;color:var(--purple);font-size:13px;font-weight:800;border-radius:14px;padding:10px 15px;cursor:pointer;box-shadow:0 4px 12px rgba(20,20,60,.05);}
.gcl-search-row{display:flex;gap:10px;margin-top:6px;}
.gcl-search{flex:1;display:flex;align-items:center;gap:9px;background:#fff;border-radius:15px;padding:12px 14px;box-shadow:0 4px 14px rgba(20,20,60,.05);}
.gcl-search i{color:var(--muted2);font-size:13px;}
.gcl-search input{flex:1;border:none;outline:none;background:none;font-size:13px;color:var(--ink);}
.gcl-filter-btn{width:44px;height:44px;flex-shrink:0;border-radius:15px;border:none;background:#fff;color:var(--purple);font-size:15px;cursor:pointer;box-shadow:0 4px 14px rgba(20,20,60,.05);}
#gcl-filters{margin-top:12px;}

/* Harita (SVG mock) */
.gcl-map{position:relative;border-radius:20px;overflow:hidden;margin-top:4px;box-shadow:0 6px 18px rgba(20,20,60,.07);height:200px;}
.gcl-map svg{position:absolute;inset:0;width:100%;height:100%;}
.gcl-pin{position:absolute;transform:translate(-50%,-50%);background:var(--grad);color:#fff;font-size:11.5px;font-weight:800;border:2px solid #fff;border-radius:999px;padding:6px 11px;box-shadow:0 5px 12px rgba(124,58,237,.35);cursor:pointer;white-space:nowrap;}
.gcl-pin-more{background:#fff;color:var(--ink);border-color:#eceaf6;box-shadow:0 4px 10px rgba(20,20,60,.12);}
.gcl-map-search{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;background:#fff;border:none;border-radius:13px;padding:10px 14px;font-size:12px;font-weight:800;color:var(--ink);cursor:pointer;box-shadow:0 5px 14px rgba(20,20,60,.14);}
.gcl-map-search i{color:var(--purple);}

/* Sıralama satırı */
.gcl-sort-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 0 4px;}
.gcl-sort-right{display:flex;gap:8px;}
.gcl-sort{display:inline-flex;align-items:center;gap:6px;background:#fff;border:none;border-radius:13px;padding:9px 13px;font-size:12px;font-weight:700;color:var(--ink);cursor:pointer;box-shadow:0 2px 8px rgba(20,20,60,.04);}
.gcl-sort i{font-size:10px;color:var(--purple);}
.gcl-sort-lbl{color:var(--muted);font-weight:600;}

/* Klinik kartları (dikey liste) */
.gcl-card{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 6px 20px rgba(20,20,60,.06);margin-top:14px;cursor:pointer;}
.gcl-card-top{display:flex;gap:13px;padding:13px;}
.gcl-img{position:relative;flex:0 0 118px;width:118px;height:118px;align-self:flex-start;border-radius:16px;background-size:cover;background-position:center;overflow:hidden;}
.gcl-img .gh-clinic-fav{top:7px;right:7px;width:28px;height:28px;font-size:12px;}
.gcl-featured{position:absolute;top:7px;left:7px;display:inline-flex;align-items:center;gap:4px;background:var(--grad);color:#fff;font-size:9px;font-weight:800;border-radius:999px;padding:4px 8px;box-shadow:0 3px 8px rgba(124,58,237,.35);}
.gcl-featured i{font-size:8px;}
.gcl-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;}
.gcl-name{font-size:15.5px;font-weight:800;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.gcl-verified{color:var(--purple);font-size:13px;margin-left:2px;}
.gcl-tags{display:flex;flex-wrap:wrap;gap:5px;}
.gcl-tag{font-size:10px;font-weight:700;color:var(--purple-ink);background:#f4edff;border-radius:999px;padding:3.5px 9px;}
.gcl-meta{font-size:11.5px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:5px;}
.gcl-meta strong{color:var(--ink);font-weight:800;}
.gcl-open{color:var(--muted);}
.gcl-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0;}
.gcl-card-foot{display:flex;align-items:center;gap:10px;padding:0 13px 13px;}
.gcl-prices{flex:1;display:flex;gap:6px;background:#f7f7fc;border-radius:14px;padding:9px 11px;overflow:hidden;}
.gcl-price{flex:1;min-width:0;}
.gcl-price-l{font-size:9.5px;font-weight:600;color:var(--muted2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gcl-price-v{font-size:11.5px;font-weight:800;color:var(--ink);margin-top:2px;white-space:nowrap;}
.gcl-price-v span{font-size:9px;font-weight:600;color:var(--muted2);}
.gcl-detail-btn{flex-shrink:0;padding:10px 13px;font-size:11.5px;}

/* Fırsat bandı */
.gcl-promo{display:flex;align-items:center;gap:11px;background:linear-gradient(135deg,#efe7ff,#f7f1ff);border-radius:20px;padding:14px;margin-top:16px;}
.gcl-promo-ic{width:42px;height:42px;flex-shrink:0;border-radius:14px;background:#fff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 4px 10px rgba(124,58,237,.12);}
.gcl-promo-tx{flex:1;min-width:0;}
.gcl-promo-tx strong{font-size:13px;font-weight:800;display:block;}
.gcl-promo-tx .sub{font-size:11px;color:var(--muted);margin-top:2px;}
.gcl-promo-btn{flex-shrink:0;font-size:11.5px;padding:10px 13px;}

/* ===== Bugünkü Bakım Görevleri — gruplu premium kart ===== */
.oc-tasks-card{background:#fff;border-radius:22px;padding:6px 15px;box-shadow:0 6px 20px rgba(20,20,60,.06);margin-top:4px;}
.oc-tasks-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 2px 13px;border-bottom:1px solid var(--line);}
.oc-tasks-head-l{flex:1;min-width:0;}
.oc-tasks-count{font-size:12.5px;font-weight:600;color:var(--muted);}
.oc-tasks-count b{font-size:19px;font-weight:800;color:var(--purple);}
.oc-tasks-count span{font-weight:600;}
.oc-tasks-seg{display:flex;gap:5px;margin-top:9px;}
.oc-seg{flex:1;height:6px;border-radius:20px;background:var(--line);transition:background .35s ease;}
.oc-seg.on{background:linear-gradient(90deg,#8b5cf6,#7c3aed);}
.oc-tasks-badge{width:46px;height:46px;flex-shrink:0;border-radius:15px;background:#f1e7ff;color:var(--purple-ink);font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;transition:background .3s,color .3s;}
.oc-tasks-badge.full{background:var(--green);color:#fff;font-size:17px;box-shadow:0 6px 14px rgba(22,184,106,.32);}

/* Görev satırları (kart içinde, ayraçlı) — eski .oc-task kart stilini geçersiz kılar */
.oc-tasks-card .oc-task{display:flex;align-items:center;gap:12px;margin:0;padding:12px 4px;border:none;border-bottom:1px solid var(--line);border-radius:12px;background:transparent;cursor:pointer;transition:background .18s;}
.oc-tasks-card .oc-task:last-child{border-bottom:none;}
.oc-tasks-card .oc-task:active{background:#faf9ff;}
.oc-tasks-card .oc-task .ti{width:46px;height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0;transition:transform .18s;}
.oc-tasks-card .oc-task-tx{flex:1;min-width:0;}
.oc-tasks-card .oc-task-tx strong{font-size:13.5px;font-weight:700;transition:color .18s;}
.oc-tasks-card .oc-task-tx .sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.oc-tasks-card .oc-task-w{font-size:11px;font-weight:800;color:var(--purple);background:#f1e7ff;border-radius:999px;padding:5px 10px;flex-shrink:0;transition:all .18s;}
.oc-tasks-card .oc-check{width:27px;height:27px;flex-shrink:0;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent;transition:all .2s;}
.oc-tasks-card .oc-task.done .oc-check{background:var(--green);border-color:var(--green);color:#fff;transform:scale(1.06);}
.oc-tasks-card .oc-task.done .oc-task-w{color:var(--green);background:#e3fbef;}
.oc-tasks-card .oc-task.done .oc-task-tx strong{color:var(--muted2);}
.oc-tasks-card .oc-task.done .ti{transform:scale(.94);opacity:.85;}

/* ===== Bugün boş randevu saatleri (misafir ana sayfa — mock) ===== */
.gh-slots-card{background:#fff;border-radius:20px;padding:16px;box-shadow:0 6px 20px rgba(20,20,60,.06);margin-top:16px;}
.gh-slots-head{display:flex;align-items:center;gap:12px;margin-bottom:13px;}
.gh-slots-ic{width:44px;height:44px;flex-shrink:0;border-radius:14px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 6px 14px rgba(124,58,237,.28);}
.gh-slots-tx{flex:1;min-width:0;}
.gh-slots-tx strong{font-size:14px;font-weight:800;display:block;}
.gh-slots-tx .sub{font-size:12px;color:var(--green);font-weight:700;margin-top:2px;}
.gh-slots-row{display:flex;flex-wrap:wrap;gap:8px;}
.gh-slot{flex:0 0 calc(25% - 6px);padding:11px 0;border:1.5px solid #e3d8ff;border-radius:13px;background:#faf7ff;color:var(--purple-ink);font-size:13px;font-weight:800;cursor:pointer;transition:all .15s;}
.gh-slot:active{transform:scale(.94);background:var(--grad);color:#fff;border-color:transparent;}

/* ===== Klinik detay: randevu saatleri + iletişim ===== */
.gh-dt-sec-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.gh-dt-free{font-size:11px;font-weight:800;color:var(--green);background:#e3fbef;border-radius:999px;padding:4px 10px;}
.gh-dt-slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;}
.gh-dt-slot{flex:0 0 calc(25% - 6px);padding:11px 0;border:1.5px solid #e3d8ff;border-radius:12px;background:#faf7ff;color:var(--purple-ink);font-size:13px;font-weight:800;cursor:pointer;transition:all .15s;}
.gh-dt-slot:active{transform:scale(.94);background:var(--grad);color:#fff;border-color:transparent;}
.gh-dt-slot.full{background:#f4f4f8;border-color:#ececf4;color:#b9b9c8;cursor:not-allowed;text-decoration:line-through;}
.gh-contact{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);}
.gh-contact-last{border-bottom:none;}
.gh-contact-ic{width:38px;height:38px;flex-shrink:0;border-radius:12px;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:14px;}
.gh-contact-tx{flex:1;min-width:0;padding-top:1px;}
.gh-contact-lbl{font-size:10.5px;font-weight:700;color:var(--muted2);text-transform:uppercase;letter-spacing:.03em;}
.gh-contact-val{display:block;font-size:13px;font-weight:700;color:var(--ink);margin-top:2px;word-break:break-word;text-decoration:none;}
a.gh-contact-val{color:var(--purple-ink);}
.gh-contact-actions{display:flex;gap:10px;margin-top:14px;}
.gh-ca-btn{flex:1;text-decoration:none;font-size:13px;padding:12px;}

/* Giriş ekranı: misafir modda sol üst geri butonu */
.login-guest-back{position:absolute;top:calc(env(safe-area-inset-top) + 14px);left:16px;z-index:5;}

/* ===== Günün ipucu + fırça sayacı + kontrol hatırlatıcısı (misafir ana sayfa) ===== */
.gh-tip{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#fff7e6,#fffaf0);border:1px solid #fdecc8;border-radius:14px;padding:8px 12px;margin-top:12px;}
.gh-tip-ic{width:26px;height:26px;flex-shrink:0;border-radius:9px;background:#fff;color:var(--gold2);display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 2px 6px rgba(245,158,11,.14);}
.gh-tip-tx{flex:1;min-width:0;}
.gh-tip-lbl{font-size:9px;font-weight:800;color:var(--gold2);text-transform:uppercase;letter-spacing:.05em;}
.gh-tip-body{font-size:11.5px;font-weight:600;color:var(--ink);line-height:1.35;margin-top:1px;}

.gh-mini-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;}
.gh-care-card{background:#fff;border-radius:18px;padding:14px;box-shadow:0 4px 18px rgba(20,20,60,.05);display:flex;flex-direction:column;align-items:flex-start;transition:border-color .2s;border:1.5px solid transparent;}
.gh-care-card.warn{border-color:#fecdd3;background:#fff7f8;}
.gh-care-ic{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:15px;margin-bottom:9px;}
.gh-care-ic-pink{background:#ffe8f2;color:#ec4899;}
.gh-care-ic-blue{background:#e6f0ff;color:#2563eb;}
.gh-care-title{font-size:12px;font-weight:700;color:var(--muted);}
.gh-care-big{font-size:20px;font-weight:800;color:var(--ink);margin-top:2px;line-height:1.15;}
.gh-care-card.warn .gh-care-big{color:var(--red);}
.gh-care-sub{font-size:11px;font-weight:600;color:var(--muted);margin-top:3px;min-height:15px;}
.gh-care-btn{margin-top:11px;width:100%;padding:9px;border:none;border-radius:11px;background:#f1e7ff;color:var(--purple-ink);font-size:11.5px;font-weight:800;cursor:pointer;transition:all .15s;}
.gh-care-btn:active{background:var(--grad);color:#fff;}
.gh-care-card.warn .gh-care-btn{background:var(--grad);color:#fff;box-shadow:0 5px 12px rgba(124,58,237,.28);}

/* ===== Acil / nöbetçi klinik kartı ===== */
.gh-sos{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#fff1f2,#ffe9ec);border:1px solid #fecdd3;border-radius:18px;padding:14px;margin-top:16px;cursor:pointer;transition:transform .15s;}
.gh-sos:active{transform:scale(.98);}
.gh-sos-ic{width:44px;height:44px;flex-shrink:0;border-radius:14px;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;box-shadow:0 6px 14px rgba(244,63,94,.3);}
.gh-sos-tx{flex:1;min-width:0;}
.gh-sos-tx strong{font-size:13.5px;font-weight:800;display:block;color:#9f1239;}
.gh-sos-tx .sub{font-size:11.5px;font-weight:700;color:#be123c;margin-top:2px;}
.gh-sos-btn{width:34px;height:34px;flex-shrink:0;border-radius:12px;background:#fff;color:var(--red);display:flex;align-items:center;justify-content:center;font-size:13px;box-shadow:0 3px 8px rgba(244,63,94,.18);}

/* ===== Ağız sağlığı mini testi ===== */
.gh-test-card{display:flex;align-items:center;gap:12px;background:#fff;border-radius:18px;padding:14px;box-shadow:0 4px 18px rgba(20,20,60,.05);margin-top:16px;}
.gh-test-ic{width:44px;height:44px;flex-shrink:0;border-radius:14px;background:#e0f7f5;color:#0d9488;display:flex;align-items:center;justify-content:center;font-size:17px;}
.gh-test-tx{flex:1;min-width:0;}
.gh-test-tx strong{font-size:13.5px;font-weight:800;display:block;}
.gh-test-tx .sub{font-size:11.5px;font-weight:600;color:var(--muted);margin-top:2px;}
.gh-test-btn{flex-shrink:0;font-size:11.5px;padding:10px 14px;}

/* Test penceresi: sorular */
.gh-tq{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);text-align:left;}
.gh-tq-q{flex:1;min-width:0;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.4;}
.gh-tq-btns{display:flex;gap:6px;flex-shrink:0;}
.gh-tq-btn{padding:8px 13px;border-radius:11px;border:1.5px solid var(--line);background:#fff;font-size:11.5px;font-weight:800;color:var(--muted);cursor:pointer;transition:all .15s;font-family:inherit;}
.gh-tq-btn.yes.on{background:#fff1f2;border-color:#fda4af;color:var(--red);}
.gh-tq-btn.no.on{background:#e3fbef;border-color:#6ee7b7;color:var(--green);}
#gh-test-submit{margin-top:14px;}
#gh-test-submit:disabled{opacity:.45;cursor:not-allowed;}

/* Test sonucu */
.gh-tr{border-radius:16px;padding:16px;text-align:center;margin-top:4px;}
.gh-tr.ok{background:#e3fbef;}
.gh-tr.warn{background:#fff6e0;}
.gh-tr.bad{background:#fff1f2;}
.gh-tr-emoji{font-size:30px;}
.gh-tr-label{font-size:16px;font-weight:800;margin-top:5px;}
.gh-tr.ok .gh-tr-label{color:#047857;}
.gh-tr.warn .gh-tr-label{color:#b45309;}
.gh-tr.bad .gh-tr-label{color:#be123c;}
.gh-tr-score{font-size:11.5px;font-weight:700;color:var(--muted);margin-top:3px;}
.gh-tr-advice{font-size:12.5px;font-weight:600;color:var(--muted);line-height:1.55;margin:12px 2px 2px;text-align:center;}

/* ===== Su & şeker haftalık mini trend (gruplu çubuk grafik) ===== */
.gt-trend .gt-head{margin-bottom:14px;}
.gt-trend-legend{display:flex;flex-direction:column;gap:5px;flex-shrink:0;}
.gt-lg{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--muted);}
.gt-lg-dot{width:9px;height:9px;border-radius:3px;}
.gt-lg-water{background:#0ea5e9;}
.gt-lg-sugar{background:#ec4899;}
.gt-chart{display:flex;gap:6px;align-items:flex-end;padding:2px 2px 0;}
.gt-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;}
.gt-col-bars{display:flex;align-items:flex-end;gap:2px;height:56px;width:100%;justify-content:center;
  border-bottom:1.5px solid var(--line);padding:0 3px;}
.gt-bar-w,.gt-bar-s{width:9px;border-radius:4px 4px 0 0;position:relative;transition:height .4s cubic-bezier(.34,1.2,.64,1);}
.gt-bar-w{background:#0ea5e9;}
.gt-bar-s{background:#ec4899;}
.gt-bar-num{position:absolute;top:-15px;left:50%;transform:translateX(-50%);font-size:9px;font-weight:800;color:var(--ink);}
.gt-col-lbl{font-size:9.5px;font-weight:700;color:var(--muted2);}
.gt-col.today .gt-col-lbl{color:var(--purple);font-weight:800;}
.gt-col.today .gt-col-bars{background:linear-gradient(180deg,transparent,#f7f2ff);border-radius:8px 8px 0 0;}
.gt-today-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;padding-top:13px;border-top:1px solid var(--line);}
.gt-today{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.gt-today-lbl{font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap;}
.gt-today .gt-btns{display:flex;align-items:center;gap:7px;}
.gt-today .gt-btn{width:27px;height:27px;border-radius:9px;font-size:11px;}
.gt-today-val{min-width:18px;text-align:center;font-size:14px;font-weight:800;color:var(--purple);}

/* Diş fırçası geri sayım çubuğu */
.gh-care-prog{width:100%;height:5px;background:var(--line);border-radius:20px;overflow:hidden;margin-top:9px;}
.gh-care-prog-fill{height:100%;width:100%;background:linear-gradient(90deg,#f472b6,#ec4899);border-radius:20px;transition:width .5s cubic-bezier(.34,1.2,.64,1);}
.gh-care-card.warn .gh-care-prog-fill{background:var(--red);}

/* ===== Tedavi Rehberi (mock — bilgilendirme) ===== */
/* Ana sayfa yatay kartları */
.tg-row{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;}
.tg-row::-webkit-scrollbar{display:none;}
.tg-card{min-width:132px;max-width:132px;background:#fff;border-radius:18px;padding:13px;box-shadow:0 4px 16px rgba(20,20,60,.05);cursor:pointer;scroll-snap-align:start;transition:transform .15s;}
.tg-card:active{transform:scale(.96);}
.tg-card-ic{width:40px;height:40px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:17px;margin-bottom:9px;}
.tg-card-name{font-size:13px;font-weight:800;}
.tg-card-tag{font-size:10.5px;font-weight:600;color:var(--muted);margin-top:3px;line-height:1.35;}

/* Rehber liste ekranı */
.tg-intro{font-size:12.5px;color:var(--muted);line-height:1.55;margin:6px 2px 14px;}
.tg-item{display:flex;align-items:center;gap:12px;margin-bottom:10px;cursor:pointer;transition:transform .12s;}
.tg-item:active{transform:scale(.98);}
.tg-item .tg-card-ic{margin-bottom:0;flex-shrink:0;}
.tg-item-tx{flex:1;min-width:0;}
.tg-item-tx strong{font-size:14px;font-weight:800;}
.tg-item-tx .sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.tg-item-chev{color:var(--muted2);font-size:12px;}
.tg-note{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:var(--muted);line-height:1.5;background:#f7f7fc;border-radius:14px;padding:12px 13px;margin-top:14px;}
.tg-note i{color:var(--purple);margin-top:1px;}

/* Detay ekranı */
.tg-hero{display:flex;align-items:center;gap:13px;background:var(--grad);border-radius:20px;padding:16px;color:#fff;margin-top:6px;box-shadow:0 10px 24px rgba(124,58,237,.28);}
.tg-hero-ic{width:50px;height:50px;flex-shrink:0;border-radius:15px;background:rgba(255,255,255,.2);border:1.5px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-size:22px;}
.tg-hero-tx strong{font-size:18px;font-weight:800;display:block;}
.tg-hero-tx div{font-size:12px;opacity:.92;margin-top:2px;}
.tg-sec{margin-top:12px;padding:15px 16px;}
.tg-sec-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.tg-sec-ic{width:34px;height:34px;flex-shrink:0;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:14px;}
.tg-sec-head strong{font-size:14px;font-weight:800;}
.tg-p{font-size:12.5px;color:var(--ink);line-height:1.6;}
.tg-steps{margin:0;padding-left:20px;}
.tg-steps li{font-size:12.5px;color:var(--ink);line-height:1.55;margin-bottom:8px;padding-left:3px;}
.tg-steps li::marker{color:var(--purple);font-weight:800;}
#tg-detail-body > .btn-block{margin-top:14px;}

/* ===== Kayıtlı kullanıcı (registered) — Faz 1 simülasyon ===== */
/* Bekleyen bağlantı talebi kartı */
.gh-pend{display:flex;align-items:flex-start;gap:12px;background:linear-gradient(135deg,#fff8e6,#fff3d6);border:1px solid #fde68a;border-radius:18px;padding:14px;margin:10px 0 4px;}
.gh-pend-ic{width:42px;height:42px;flex-shrink:0;border-radius:13px;background:#fff;color:var(--gold2);display:flex;align-items:center;justify-content:center;font-size:17px;box-shadow:0 4px 10px rgba(245,158,11,.18);}
.gh-pend-tx{flex:1;min-width:0;}
.gh-pend-tx strong{font-size:13.5px;font-weight:800;color:#92400e;display:block;}
.gh-pend-tx .sub{font-size:11.5px;color:#a16207;line-height:1.5;margin-top:3px;}
.gh-pend-btns{display:flex;gap:8px;margin-top:10px;}
.gh-pend-btn{font-size:11.5px;padding:9px 12px;}

/* "Kliniğine Bağlanınca" bölümü */
.gh-cp{background:linear-gradient(135deg,#efe7ff,#f7f1ff);border-radius:20px;padding:16px;margin-top:16px;}
.gh-cp-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;margin-bottom:12px;}
.gh-cp-title i{color:var(--purple);}
.gh-cp-item{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;color:var(--ink);padding:6px 0;}
.gh-cp-ic{width:30px;height:30px;flex-shrink:0;border-radius:10px;background:#fff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 3px 8px rgba(124,58,237,.1);}
.gh-cp-btn{margin-top:12px;}

/* Kilitli özellik önizleme kartları — sıcak, aksiyona yönlendiren */
.gh-lock-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.gh-lock-card{background:#fff;border-radius:18px;padding:13px;box-shadow:0 4px 16px rgba(20,20,60,.05);display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.gh-lock-ic{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:15px;}
.gh-lock-card strong{font-size:12.5px;font-weight:800;}
.gh-lock-card .sub{font-size:10.5px;color:var(--muted);line-height:1.4;}
.gh-lock-btn{margin-top:auto;display:inline-flex;align-items:center;gap:5px;border:none;background:#f1e7ff;color:var(--purple-ink);font-size:10.5px;font-weight:800;border-radius:10px;padding:7px 10px;cursor:pointer;}
.gh-lock-btn i{font-size:9px;}

/* Profil */
.gh-pr-card{margin-top:12px;padding:16px;}
.gh-pr-ava{width:74px;height:74px;border-radius:50%;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 14px;}
.gh-pr-pref{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:700;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer;}
.gh-pr-pref:last-child{border-bottom:none;}
.gh-pr-pref input{width:18px;height:18px;accent-color:var(--purple);}
.gh-pr-conn{font-size:12.5px;font-weight:700;}
.gh-dt-pending{display:flex;align-items:center;gap:9px;background:#fff8e6;border:1px solid #fde68a;color:#92400e;font-size:12.5px;font-weight:700;border-radius:14px;padding:12px 14px;margin-top:16px;}

/* Demo test paneli (yalnız #demo) */
#gh-demo-panel{position:fixed;left:12px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:200;}
#gh-demo-toggle{width:40px;height:40px;border-radius:50%;border:none;background:#14142b;color:#fff;font-size:14px;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.3);opacity:.85;}
#gh-demo-opts{position:absolute;left:0;bottom:48px;background:#14142b;border-radius:14px;padding:10px;width:210px;box-shadow:0 10px 26px rgba(0,0,0,.35);}
.gh-demo-title{font-size:9.5px;font-weight:800;color:#9090aa;letter-spacing:.06em;margin-bottom:7px;}
#gh-demo-opts button{display:block;width:100%;text-align:left;background:none;border:none;color:#fff;font-size:12px;font-weight:700;padding:8px 9px;border-radius:9px;cursor:pointer;}
#gh-demo-opts button:hover,#gh-demo-opts button:active{background:rgba(255,255,255,.12);}

/* ===== Hasta ana sayfası kilit katmanı (registered — Faz 1) ===== */
.home-locked{position:relative;}
.home-lock{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:24px;
  background:rgba(231,230,243,.5);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);}
.home-lock-card{background:#fff;border-radius:24px;padding:26px 22px;text-align:center;max-width:330px;width:100%;box-shadow:0 18px 44px rgba(20,20,60,.18);}
.home-lock-ic{width:62px;height:62px;border-radius:19px;margin:0 auto 15px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:25px;box-shadow:0 10px 24px rgba(124,58,237,.34);}
.home-lock-card h3{font-size:17px;font-weight:800;letter-spacing:-.01em;}
.home-lock-card p{font-size:12.5px;color:var(--muted);line-height:1.6;margin:9px 0 17px;}
.home-lock-card .btn-ghost{margin-top:10px;}

/* Hasta paneli önizleme (registered): gezilebilir + üstte banner, dokununca uyarı */
.home-preview .scroll{position:relative;}
.home-lock-banner{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:11px;background:var(--grad);color:#fff;border-radius:16px;padding:12px 14px;margin:6px 0 12px;box-shadow:0 8px 20px rgba(124,58,237,.3);}
.home-lock-banner .lockic{font-size:15px;flex-shrink:0;}
.home-lock-banner .tx{flex:1;min-width:0;font-size:12.5px;font-weight:800;line-height:1.3;}
.home-lock-banner .tx small{display:block;font-weight:600;opacity:.9;font-size:10.5px;margin-top:1px;}
.home-lock-banner button{flex-shrink:0;background:#fff;color:var(--purple-ink);border:none;border-radius:11px;padding:8px 12px;font-size:11.5px;font-weight:800;cursor:pointer;}
.home-lock-banner button:active{transform:scale(.94);}

/* Misafir tabbar: registered kullanıcıda yükseltilmiş orta "Hasta Paneli" butonu */
.guest-tabbar .t-panel{color:var(--purple);}
.guest-tabbar .t-panel i{
  width:52px;height:52px;border-radius:50%;background:var(--grad);color:#fff;font-size:21px;
  display:flex;align-items:center;justify-content:center;margin-top:-26px;margin-bottom:2px;
  box-shadow:0 8px 18px rgba(124,58,237,.45);border:4px solid #fff;transition:transform .12s;
}
.guest-tabbar .t-panel:active i{transform:scale(.93);}

/* ===== Kayıtlı kullanıcı profili — hasta profil görünümü ===== */
.gh-pr-hero{background:var(--grad);border-radius:24px;padding:20px 18px;color:#fff;margin-top:8px;position:relative;overflow:hidden;box-shadow:0 12px 28px rgba(124,58,237,.3);}
.gh-pr-hero:before{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.12);top:-60px;right:-40px;}
.gh-pr-hero-top{display:flex;align-items:center;gap:14px;position:relative;z-index:1;}
.gh-pr-hero-ava{width:72px;height:72px;flex-shrink:0;border-radius:50%;background:rgba(255,255,255,.2);border:2.5px solid rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;font-size:30px;}
.gh-pr-hero-tx{flex:1;min-width:0;}
.gh-pr-hero-tx strong{font-size:20px;font-weight:800;letter-spacing:-.01em;display:block;}
.gh-pr-badges{display:flex;gap:7px;margin-top:8px;flex-wrap:wrap;}
.gh-pr-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:5px 11px;font-size:11px;font-weight:800;}
.gh-pr-stats{display:flex;gap:8px;background:rgba(255,255,255,.16);border-radius:16px;padding:13px 8px;margin-top:16px;position:relative;z-index:1;}
.gh-pr-stat{flex:1;text-align:center;min-width:0;}
.gh-pr-stat b{font-size:17px;font-weight:800;display:block;}
.gh-pr-stat span{font-size:10px;font-weight:600;opacity:.88;display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Hesap bilgileri satırları */
.gh-pr-acc{padding:6px 16px;}
.gh-pr-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.gh-pr-row:last-child{border-bottom:none;}
.gh-pr-row-ic{width:40px;height:40px;flex-shrink:0;border-radius:13px;background:#f1e7ff;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:15px;}
.gh-pr-row-tx{flex:1;min-width:0;}
.gh-pr-row-lbl{font-size:10.5px;font-weight:700;color:var(--muted2);}
.gh-pr-row-val{font-size:14px;font-weight:800;color:var(--ink);margin-top:2px;word-break:break-word;}
.gh-pr-row-inp{margin:4px 0 0;padding:8px 10px;font-size:13px;}
.gh-pr-row-edit{border:none;background:none;color:var(--muted2);font-size:13px;padding:8px;cursor:pointer;flex-shrink:0;}
.gh-pr-row-edit.save{color:var(--green);}

/* ===== KLİNİKLER — CANLI HARİTA BİLEŞENİ (V2; yalnız clinics-map-* + #gcl-live-map scope) ===== */
.clinics-map-section{margin-bottom:12px;}
.clinics-map-wrap{position:relative;}
/* Tedavi chip'leri: tek satır, yatay kaydırma yalnız kendi alanında */
.clinics-map-treatment-filters{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 2px 10px;}
.clinics-map-treatment-filters::-webkit-scrollbar{display:none;}
.clinics-map-treatment-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #eceaf6;border-radius:999px;padding:9px 14px;font-size:12.5px;font-weight:700;color:#475569;cursor:pointer;white-space:nowrap;box-shadow:0 2px 8px rgba(20,20,60,.05);}
.clinics-map-treatment-chip i{font-size:11px;}
.clinics-map-treatment-chip-active{background:var(--grad);border-color:transparent;color:#fff;box-shadow:0 5px 14px rgba(124,58,237,.30);}
/* Klinik adı kapsül marker'ı (L.divIcon) */
.clinics-map-marker-wrap{background:none;border:none;}
.clinics-map-marker{position:absolute;transform:translate(-50%,-50%);background:var(--purple);color:#fff;font-size:11.5px;font-weight:600;line-height:1;border:1.5px solid #fff;border-radius:999px;padding:6px 10px;box-shadow:0 4px 10px rgba(124,58,237,.35);white-space:nowrap;max-width:132px;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:transform .12s ease;}
.clinics-map-marker-lead{background:#64748b;box-shadow:0 4px 10px rgba(71,85,105,.30);}
.clinics-map-marker-selected{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 6px 16px rgba(124,58,237,.45);z-index:1000;}
/* Küme yuvarlağı */
.clinics-map-cluster{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:var(--grad);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 5px 12px rgba(124,58,237,.35);cursor:pointer;}
/* "Bu bölgede ara" (harita içinde; leaflet kontrollerinin üstünde, alt menüye taşmaz) */
.clinics-map-search-area-button{position:absolute;left:50%;transform:translateX(-50%);bottom:12px;z-index:1100;display:inline-flex;align-items:center;gap:6px;background:#fff;border:none;border-radius:13px;padding:10px 14px;font-size:12px;font-weight:800;color:var(--ink);cursor:pointer;box-shadow:0 5px 14px rgba(20,20,60,.18);}
.clinics-map-search-area-button i{color:var(--purple);}
/* Boş durum (tedaviye uygun klinik yok) */
.clinics-map-empty-state{position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:1100;background:#fff;border-radius:12px;padding:9px 14px;font-size:12px;font-weight:700;color:#475569;box-shadow:0 5px 14px rgba(20,20,60,.14);white-space:nowrap;max-width:92%;overflow:hidden;text-overflow:ellipsis;}
/* Leaflet dokunuşları — YALNIZ bu haritanın kökü altında */
#gcl-live-map .leaflet-popup-content-wrapper{border-radius:14px;box-shadow:0 8px 22px rgba(20,20,60,.16);}
#gcl-live-map .leaflet-control-attribution{font-size:9px;opacity:.75;}
#gcl-live-map .leaflet-control-zoom a{border-radius:8px;color:var(--ink);}

/* ===== GİRİŞ EKRANI — HESAP OLUŞTUR CTA (V2; yalnız login-* scope) ===== */
.login-or{display:flex;align-items:center;gap:12px;margin:18px 0 12px;color:var(--muted2);font-size:12px;font-weight:600;}
.login-or::before,.login-or::after{content:"";flex:1;height:1px;background:#e6e2f5;}
.login-signup-btn{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1.5px solid #e6e2f5;border-radius:16px;padding:13px 14px;cursor:pointer;box-shadow:0 4px 14px rgba(124,58,237,.08);transition:border-color .15s ease;}
.login-signup-btn:active{border-color:var(--purple);}
.lsb-ic{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;}
.lsb-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.lsb-tx strong{font-size:14.5px;font-weight:800;color:var(--ink);}
.lsb-tx small{font-size:11.5px;line-height:1.35;color:var(--muted2);}
.lsb-arrow{flex:0 0 auto;font-size:12px;color:var(--purple);}
.login-clinic-note{display:flex;gap:8px;margin:14px 2px 0;font-size:11.5px;line-height:1.45;color:var(--muted2);}
.login-clinic-note i{color:var(--purple);margin-top:2px;font-size:11px;}
/* Konumumu kullan (Klinikler haritası altı; yalnız konum yokken görünür) */
.clinics-map-locate{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:10px;background:#fff;border:1.5px dashed #d6ccf2;border-radius:13px;padding:11px 14px;font-size:12.5px;font-weight:700;color:var(--purple);cursor:pointer;}
.clinics-map-locate i{font-size:13px;}
/* Profil — kliniksiz kullanıcıda "Klinik Bağla" butonu */
.pf-link-clinic{display:inline-flex;align-items:center;gap:6px;margin-left:6px;background:var(--grad);color:#fff;border:none;border-radius:999px;padding:6px 12px;font-size:11.5px;font-weight:700;cursor:pointer;vertical-align:middle;}

/* Kliniğim başlığı: selam bloğu sola yaslı (geri butonu solda, zil sağda) */
.home-head-row .home-greet{flex:1;}
/* Üye (onaylı) klinik harita kapsülünde diş rozeti */
.clinics-map-marker-badge{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:#fff;color:var(--purple);font-size:8px;margin-right:5px;vertical-align:middle;flex:none;}
.clinics-map-marker{display:inline-flex;align-items:center;}

/* ===== AI DİŞ DANIŞMANI (V2 — da- öneki) ===== */
.da-home-card{position:relative;background:linear-gradient(135deg,#f6f1ff,#ece2ff);border:1px solid #e2d5ff;border-radius:18px;padding:16px 118px 16px 16px;margin-bottom:14px;cursor:pointer;box-shadow:0 8px 22px rgba(124,58,237,.10);overflow:hidden;}
.da-home-head{display:flex;align-items:center;gap:8px;margin-bottom:5px;}
.da-home-head strong{font-size:15.5px;font-weight:800;color:var(--ink);}
.da-new{background:var(--purple);color:#fff;border-radius:6px;padding:2px 7px;font-size:9.5px;font-weight:800;letter-spacing:.4px;}
.da-home-card p{font-size:12.5px;color:var(--muted2);line-height:1.5;margin:0 0 12px;max-width:96%;}
.da-home-bot{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:84px;height:84px;border-radius:24px;background:radial-gradient(circle at 30% 25%,#a78bfa,#7c3aed);display:flex;align-items:center;justify-content:center;color:#fff;font-size:38px;box-shadow:0 10px 24px rgba(124,58,237,.35);}
.da-home-btn{background:var(--purple);color:#fff;border:0;border-radius:12px;padding:9px 16px;font-size:13px;font-weight:800;cursor:pointer;}
.da-bot{width:74px;height:74px;border-radius:22px;margin:6px auto 12px;background:radial-gradient(circle at 30% 25%,#a78bfa,#7c3aed);display:flex;align-items:center;justify-content:center;color:#fff;font-size:32px;box-shadow:0 10px 24px rgba(124,58,237,.30);}
.da-intro{text-align:left;margin:4px 2px 16px;}
.da-intro h2{font-size:20px;font-weight:800;margin-bottom:6px;}
.da-intro p{font-size:13px;color:var(--muted2);}
.da-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.da-opt{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;background:#fff;border:1.5px solid #eceafc;border-radius:16px;padding:18px 10px 14px;cursor:pointer;font:inherit;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;}
.da-opt:active{transform:scale(.97);}
.da-opt-ic{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:19px;}
.da-tint-purple{background:#f1e7ff;color:var(--purple);}
.da-tint-pink{background:#ffe7f0;color:#db2777;}
.da-tint-blue{background:#e3efff;color:#2563eb;}
.da-tint-orange{background:#fff0e0;color:#ea580c;}
.da-tint-teal{background:#e0f7f2;color:#0d9488;}
.da-opt-tx{font-size:12.5px;font-weight:700;color:var(--ink);text-align:center;line-height:1.35;}
.da-opt-soon{opacity:.55;cursor:default;}
.da-soon{position:absolute;top:8px;right:8px;background:#eef2f7;color:#64748b;border-radius:6px;padding:2px 6px;font-size:9px;font-weight:800;}
.da-disclaimer{font-size:11px;color:var(--muted2);text-align:center;line-height:1.55;margin:16px 8px 8px;}
.da-steps{display:flex;align-items:center;justify-content:center;gap:14px;margin:2px 0 10px;}
.da-dot{width:26px;height:26px;border-radius:50%;background:#ecebf7;color:#9090aa;font-size:11.5px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none;}
.da-dot.now{background:var(--purple);color:#fff;box-shadow:0 4px 12px rgba(124,58,237,.35);}
.da-dot.done{background:#dcfce7;color:#16a34a;font-size:10px;}
.da-prog{height:5px;border-radius:99px;background:#ecebf7;margin:0 4px 6px;overflow:hidden;}
.da-prog-fill{height:100%;border-radius:99px;background:var(--purple);transition:width .3s ease;}
.da-qtitle{font-size:19px;font-weight:800;text-align:center;margin:2px 8px 4px;}
.da-qsub{font-size:12.5px;color:var(--muted2);text-align:center;margin-bottom:16px;}
.da-list{display:flex;flex-direction:column;gap:10px;}
.da-choice{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid #eceafc;border-radius:15px;padding:14px;cursor:pointer;font:inherit;text-align:left;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;}
.da-choice:active{transform:scale(.98);}
.da-choice.on{border-color:var(--purple);box-shadow:0 6px 18px rgba(124,58,237,.14);}
.da-ch-ic{width:38px;height:38px;border-radius:12px;background:#f4f2fc;color:var(--purple);display:flex;align-items:center;justify-content:center;font-size:15px;flex:none;}
.da-ch-tx{flex:1;font-size:13.5px;font-weight:700;color:var(--ink);}
.da-ch-mark{color:#dcdaf0;font-size:17px;transition:color .12s ease;}
.da-choice.on .da-ch-mark{color:var(--purple);}
.da-scale{display:grid;grid-template-columns:repeat(11,1fr);gap:5px;}
.da-scale-n{aspect-ratio:1;border-radius:10px;background:#fff;border:1.5px solid #eceafc;font-size:12.5px;font-weight:800;color:var(--ink);cursor:pointer;}
.da-scale-n.on{background:var(--purple);border-color:var(--purple);color:#fff;box-shadow:0 5px 14px rgba(124,58,237,.30);}
.da-scale-lbls{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted2);margin-top:7px;padding:0 2px;}
.da-nav{display:flex;gap:10px;margin-top:20px;}
.da-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;padding:14px;font-size:14px;font-weight:800;cursor:pointer;font-family:inherit;text-decoration:none;}
.da-btn-primary{background:var(--purple);color:#fff;box-shadow:0 8px 20px rgba(124,58,237,.28);}
.da-btn-primary:disabled{background:#dcdaf0;color:#9d9bbd;box-shadow:none;cursor:default;}
.da-btn-ghost{background:#fff;color:var(--ink);border:1.5px solid #e6e4f4;}
.da-btn-outline{background:#fff;color:var(--purple);border:1.5px solid var(--purple);}
.da-btn-danger{background:#dc2626;color:#fff;box-shadow:0 8px 20px rgba(220,38,38,.30);}
.da-btn-block{width:100%;margin-bottom:10px;flex:none;}
.da-row2{display:flex;gap:10px;}
.da-summary{background:#fff;border:1px solid #eceafc;border-radius:16px;padding:15px;margin-bottom:12px;box-shadow:0 6px 18px rgba(20,20,43,.05);}
.da-sum-title{font-size:13px;font-weight:800;margin-bottom:10px;}
.da-sum-item{display:flex;gap:9px;font-size:12.5px;color:var(--ink);padding:4px 0;line-height:1.45;}
.da-sum-item i{color:#16a34a;margin-top:2px;flex:none;}
.da-level{border-radius:16px;padding:14px 15px;margin-bottom:16px;}
.da-level-head{display:flex;align-items:center;gap:9px;font-size:13.5px;margin-bottom:6px;}
.da-level p{font-size:12.5px;line-height:1.55;margin:0;}
.da-level-low{background:#effaf1;border:1px solid #c9ecd2;color:#166534;}
.da-level-mid{background:#fff6e9;border:1px solid #fde2b8;color:#9a3412;}
.da-level-high{background:#fdeeee;border:1px solid #f8caca;color:#991b1b;}
.da-emg{background:#fdeeee;border:1px solid #f8caca;border-radius:18px;padding:22px 16px;text-align:center;display:flex;flex-direction:column;gap:12px;}
.da-emg-ic{width:58px;height:58px;border-radius:50%;background:#dc2626;color:#fff;font-size:24px;display:flex;align-items:center;justify-content:center;margin:0 auto;}
.da-emg h2{font-size:18px;font-weight:800;color:#991b1b;}
.da-emg p{font-size:13px;color:#7f1d1d;line-height:1.6;}

/* ===== TEDAVİ FİYATI HESAPLA (V2 — tc- öneki; da- bileşenlerini yeniden kullanır) ===== */
.tc-home-card{background:linear-gradient(135deg,#f0f7ff,#e2edff);border-color:#cfe0ff;box-shadow:0 8px 22px rgba(37,99,235,.10);}
.tc-new{background:#16a34a;}
.tc-home-ic{background:radial-gradient(circle at 30% 25%,#fff,#eef3ff);color:var(--purple);font-size:34px;box-shadow:0 10px 24px rgba(37,99,235,.18);}
.tc-home-btn{background:#2563eb;}
.tc-jawtabs{display:flex;gap:10px;margin-bottom:16px;}
.tc-jt{flex:1;padding:11px;border-radius:12px;background:#fff;border:1.5px solid #eceafc;font:inherit;font-size:13.5px;font-weight:800;color:var(--muted2);cursor:pointer;}
.tc-jt.on{border-color:var(--purple);color:var(--purple);background:#f6f1ff;}
.tc-arch{background:#fff;border:1px solid #eceafc;border-radius:18px;padding:18px 10px;box-shadow:0 6px 18px rgba(20,20,43,.05);}
.tc-arch-row{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;}
.tc-arch-row+.tc-arch-row{margin-top:8px;}
.tc-arch-low .tc-arch-row:first-child{order:2;}
.tc-tooth{aspect-ratio:1;border-radius:10px 10px 14px 14px;background:#f7f6fd;border:1.5px solid #e6e4f4;font:inherit;font-size:11.5px;font-weight:800;color:var(--ink);cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease;}
.tc-tooth:active{transform:scale(1.12);}
.tc-tooth.on{background:var(--purple);border-color:var(--purple);color:#fff;box-shadow:0 0 0 3px rgba(124,58,237,.18),0 5px 14px rgba(124,58,237,.30);transform:scale(1.06);}
.tc-legend{display:flex;align-items:center;gap:7px;justify-content:center;font-size:11.5px;color:var(--muted2);margin-top:10px;}
.tc-lg-dot{width:11px;height:11px;border-radius:50%;background:var(--purple);display:inline-block;}
.tc-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.tc-chip{display:inline-flex;align-items:center;gap:7px;background:#f1e7ff;color:var(--purple);border-radius:99px;padding:6px 8px 6px 12px;font-size:12px;font-weight:800;}
.tc-chip button{border:0;background:#fff;color:var(--purple);width:18px;height:18px;border-radius:50%;font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.tc-unknown{display:block;margin:14px auto 0;background:none;border:0;color:var(--purple);font:inherit;font-size:12.5px;font-weight:800;cursor:pointer;}
.tc-regions{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.tc-warn{display:flex;gap:8px;background:#fff6e9;border:1px solid #fde2b8;color:#9a3412;border-radius:12px;padding:10px 12px;font-size:12px;line-height:1.5;margin-top:12px;}
.tc-warn i{margin-top:2px;flex:none;}
.tc-cat{font-size:11.5px;font-weight:800;letter-spacing:.5px;color:var(--muted2);text-transform:uppercase;margin:16px 2px 8px;}
.tc-treats .tc-cat:first-child{margin-top:0;}
.tc-treat{display:flex;align-items:center;gap:11px;width:100%;background:#fff;border:1.5px solid #eceafc;border-radius:15px;padding:12px;margin-bottom:9px;cursor:pointer;font:inherit;text-align:left;transition:border-color .12s ease,box-shadow .12s ease;}
.tc-treat.on{border-color:var(--purple);box-shadow:0 6px 18px rgba(124,58,237,.14);}
.tc-treat-tx{flex:1;min-width:0;}
.tc-treat-tx strong{display:block;font-size:13px;}
.tc-treat-tx small{display:block;font-size:11px;color:var(--muted2);line-height:1.4;margin-top:2px;}
.tc-treat-p{font-size:12.5px;font-weight:800;color:var(--purple);white-space:nowrap;text-align:right;}
.tc-treat-p small{display:block;font-size:9px;color:var(--muted2);font-weight:700;}
.tc-radio{width:18px;height:18px;border-radius:50%;border:2px solid #dcdaf0;flex:none;}
.tc-radio.on{border-color:var(--purple);background:radial-gradient(circle,var(--purple) 45%,#fff 50%);}
.tc-done{width:58px;height:58px;border-radius:50%;background:#dcfce7;color:#16a34a;font-size:26px;display:flex;align-items:center;justify-content:center;margin:6px auto 12px;}
.tc-sumrow{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;padding:5px 0;}
.tc-sumrow span{color:var(--muted2);}
.tc-sumrow b{text-align:right;}
.tc-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:12px;}
.tc-table th{text-align:left;color:var(--muted2);font-size:10.5px;font-weight:800;padding:6px 4px;border-bottom:1px solid #eceafc;}
.tc-table td{padding:7px 4px;border-bottom:1px solid #f4f2fc;vertical-align:top;}
.tc-table .tc-num{text-align:right;white-space:nowrap;}
.tc-note{color:var(--muted2);font-size:10px;}
.tc-total{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:2px solid #eceafc;font-size:13px;font-weight:800;}
.tc-total strong{font-size:21px;color:var(--purple);}
.tc-vat{text-align:right;font-size:10.5px;color:var(--muted2);margin-top:2px;}
.tc-again{display:block;margin:4px auto 0;background:none;border:0;color:var(--purple);font:inherit;font-size:13px;font-weight:800;cursor:pointer;padding:8px;}

/* ===== Diş şeması görseli + hotspot'lar (Tedavi Fiyatı Hesapla, Adım 1) ===== */
.tc-chartcard{background:#fff;border:1px solid #eceafc;border-radius:18px;padding:14px;box-shadow:0 6px 18px rgba(20,20,43,.05);}
.dental-chart{position:relative;width:100%;height:0;/* padding-top JS'ten (görsel oranı) */}
.jaw-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;}
.tooth-hotspot{position:absolute;width:11.5%;aspect-ratio:1;border-radius:50%;background:transparent;border:2px solid transparent;cursor:pointer;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;padding:0;transition:transform .12s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease;}
.tooth-hotspot .th-num{font-size:10px;font-weight:800;color:transparent;pointer-events:none;transition:color .12s ease;}
.tooth-hotspot:active{transform:translate(-50%,-50%) scale(1.15);}
.tooth-hotspot.selected{background:rgba(124,58,237,.28);border-color:var(--purple);box-shadow:0 0 0 4px rgba(124,58,237,.14);transform:translate(-50%,-50%) scale(1.08);}
.tooth-hotspot.selected .th-num{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.35);}
.tc-selwrap{margin-top:12px;}
.tc-selttl{font-size:11.5px;font-weight:800;letter-spacing:.4px;color:var(--muted2);text-transform:uppercase;margin:0 2px 7px;}
.tc-selempty{font-size:12.5px;color:var(--muted2);padding:2px;}
.tc-selwrap .tc-chips{margin-top:0;}

/* ===== Diş fırçası değişim kartı — tam genişlik premium (ana sayfa) ===== */
.gh-brush{margin-top:16px;background:linear-gradient(135deg,#fff5fa,#ffeaf3);border:1.5px solid #ffd7e8;border-radius:20px;padding:16px;box-shadow:0 8px 22px rgba(236,72,153,.10);transition:border-color .2s,background .2s;}
.gh-brush-head{display:flex;align-items:center;gap:13px;}
.gh-brush-ic{width:50px;height:50px;flex:none;border-radius:16px;background:radial-gradient(circle at 30% 25%,#f9a8d4,#ec4899);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 8px 18px rgba(236,72,153,.30);}
.gh-brush-tx{flex:1;min-width:0;}
.gh-brush-ttl{font-size:13.5px;font-weight:800;color:var(--ink);}
.gh-brush-count{display:flex;align-items:baseline;gap:8px;margin-top:3px;flex-wrap:wrap;}
.gh-brush-days{font-size:23px;font-weight:800;color:#db2777;line-height:1;}
.gh-brush-sub{font-size:11.5px;font-weight:600;color:var(--muted2);min-height:0;margin-top:0;}
.gh-brush-badge{width:34px;height:34px;flex:none;border-radius:11px;background:#fff;color:#ec4899;display:flex;align-items:center;justify-content:center;font-size:14px;box-shadow:0 3px 10px rgba(236,72,153,.12);}
.gh-brush .gh-care-prog{margin-top:13px;height:7px;background:#ffe0ee;}
.gh-brush .gh-care-prog-fill{background:linear-gradient(90deg,#f9a8d4,#ec4899);}
.gh-brush .gh-brush-btn{margin-top:13px;background:#fff;color:#db2777;box-shadow:0 3px 10px rgba(236,72,153,.12);font-size:12.5px;}
.gh-brush .gh-brush-btn:active{background:linear-gradient(135deg,#f472b6,#ec4899);color:#fff;}
/* Süre dolunca uyarı durumu */
.gh-brush.warn{background:#fff1f2;border-color:#fecdd3;}
.gh-brush.warn .gh-brush-days{color:#e11d48;}
.gh-brush.warn .gh-brush-ic{background:radial-gradient(circle at 30% 25%,#fb7185,#e11d48);box-shadow:0 8px 18px rgba(225,29,72,.32);}
.gh-brush.warn .gh-care-prog-fill{background:#e11d48;}
.gh-brush.warn .gh-brush-btn{background:linear-gradient(135deg,#fb7185,#e11d48);color:#fff;box-shadow:0 5px 12px rgba(225,29,72,.28);}
