/* ═══════════════════════════════════════════════════════════════
   LCC — DOKUNSAL KONTROLLER  (lcc_tactile.css) — yalnız mobil
   ───────────────────────────────────────────────────────────────
   Kullanıcı isteği 14.10.2026: Günüm'deki filtre çipleri, Liste/Program
   geçişi ve "Günüme görev ekle" çubuğu ile Sağlık'taki YAPILDI tuşu ve
   uyku saati girişi "somut, tok, doygun" hissettirsin; basış animasyonu
   olsun.

   Üç ilke:
     1) YÜZEY — tuşlar düz çerçeve değil, alt kenarında "kalınlık" (ledge)
        olan kabartma yüzey. Basınca o kalınlık kadar aşağı çöker.
     2) YAY — durum değişimi (çip seçimi, Liste↔Program kayan zemini,
        YAPILDI) hafif taşan bir yay eğrisiyle oturur.
     3) TEK YAZI — kontrol yazıları IBM Plex Sans (liste satırlarıyla aynı);
        büyük harf serif yazı tuşları kalabalık gösteriyordu.

   Davranış (titreşim + yeniden çizim sonrası animasyon) lcc_tactile.js'te.
   GERİ ALMA: bu dosyayı ve lcc_tactile.js'i sil, Dashboard + Sağlık'taki
   <link>/<script> satırlarını ve sw.js'teki iki satırı kaldır.
   Yüklenme sırası: lcc_glass.css'ten SONRA (aynı !important'ları geçer).
   ═══════════════════════════════════════════════════════════════ */

body.ecam-dark{
  --tc-spring:cubic-bezier(.34,1.56,.64,1);
  --tc-well:rgba(255,255,255,.055);
  --tc-well-bd:rgba(255,255,255,.09);
  --tc-well-sh:inset 0 1px 3px rgba(0,0,0,.35);
  --tc-key:linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,255,255,.06));
  --tc-key-bd:rgba(255,255,255,.13);
  --tc-ledge:rgba(0,0,0,.42);
  --tc-thumb:linear-gradient(180deg,#2b3d5c,#1f2d47);
  --tc-ok:linear-gradient(180deg,#3ee0a4,#10b981);
  --tc-ok-tx:#032419;
  --tc-ok-ledge:#06734f;
  /* kabuk (index.html) lcc_theme.css'i yüklemiyor → birincil tuş tonları burada da */
  --tc-prim:linear-gradient(180deg,#2ce1ff,#00a6d4);
  --tc-prim-tx:#04121e;
}
body.ecam-light{
  --tc-spring:cubic-bezier(.34,1.56,.64,1);
  --tc-well:rgba(22,40,58,.055);
  --tc-well-bd:rgba(22,40,58,.08);
  --tc-well-sh:inset 0 1px 2px rgba(15,31,46,.10);
  --tc-key:linear-gradient(180deg,#ffffff,#eef3f8);
  --tc-key-bd:rgba(22,40,58,.10);
  --tc-ledge:rgba(15,31,46,.16);
  --tc-thumb:linear-gradient(180deg,#ffffff,#f3f7fa);
  --tc-ok:linear-gradient(180deg,#19b981,#047857);
  --tc-ok-tx:#ffffff;
  --tc-ok-ledge:#035c43;
  --tc-prim:linear-gradient(180deg,#0e93c9,#00648d);
  --tc-prim-tx:#ffffff;
}

@keyframes tcChipOn{0%{transform:scale(.9)}55%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes tcPop{0%{transform:translateY(3px) scale(.96)}45%{transform:translateY(-2px) scale(1.03)}100%{transform:none}}
@keyframes tcRing{from{box-shadow:0 0 0 0 rgba(16,185,129,.55)}to{box-shadow:0 0 0 14px rgba(16,185,129,0)}}
@keyframes tcBump{0%{transform:scale(1)}35%{transform:scale(1.16)}100%{transform:scale(1)}}

@media (max-width:768px){

  /* ── 1) Filtre çipleri — hap biçimi, seçili olan dolu ──
     Günüm (.filter-chip), Hayal/Kütüphane/Kariyer (.ftab), Görevler (.sort-chip) */
  body .tasks-filters{gap:8px!important;padding:12px 14px!important;scroll-padding-inline:14px}
  body .ftabs,body .sort-bar{
    display:flex!important;gap:8px!important;padding:10px 12px!important;margin:0!important;
    border-bottom:0!important;overflow-x:auto;scrollbar-width:none;scroll-padding-inline:12px;
  }
  body .ftabs::-webkit-scrollbar,body .sort-bar::-webkit-scrollbar{display:none}
  body .ftabs .ftab,body .sort-bar .sort-chip{flex:0 0 auto!important;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
  body .tasks-filters .filter-chip,body .ftabs .ftab,body .sort-bar .sort-chip{
    min-height:38px!important;height:38px;padding:0 16px!important;
    border-radius:999px!important;
    border:1px solid var(--tc-well-bd)!important;
    background:var(--tc-well)!important;
    box-shadow:none!important;
    color:var(--text2)!important;
    font-family:'IBM Plex Sans',sans-serif!important;
    font-size:12.5px!important;font-weight:600!important;letter-spacing:.6px!important;
    -webkit-tap-highlight-color:transparent;
    transition:transform .32s var(--tc-spring),background-color .2s,color .2s,box-shadow .2s!important;
  }
  body .tasks-filters .filter-chip.active,body .ftabs .ftab.on,body .sort-bar .sort-chip.on{
    background:var(--ctl-prim-bg)!important;
    border-color:transparent!important;
    color:var(--ctl-prim-tx)!important;
    font-weight:700!important;
    box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 6px 16px -6px color-mix(in srgb,var(--accent) 70%,transparent)!important;
    animation:tcChipOn .36s var(--tc-spring);
  }
  body .tasks-filters .filter-chip:active,body .ftabs .ftab:active,body .sort-bar .sort-chip:active{transform:scale(.92)!important;filter:none!important;transition-duration:.08s!important}

  /* ── 2) Liste / Program — kayan zeminli bölümlü geçiş ── */
  body .view-tg{
    position:relative;display:grid!important;width:100%;
    grid-template-columns:1fr 1fr;gap:0!important;padding:4px!important;
    border-radius:12px!important;
    background:var(--tc-well)!important;
    border:1px solid var(--tc-well-bd)!important;
    box-shadow:var(--tc-well-sh)!important;
    isolation:isolate;
  }
  body .view-tg::before{
    content:'';position:absolute;z-index:-1;
    top:4px;bottom:4px;left:4px;width:calc(50% - 4px);
    border-radius:9px;
    background:var(--tc-thumb);
    border:1px solid var(--tc-key-bd);
    box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 2px 0 var(--tc-ledge),0 6px 14px -4px rgba(0,0,0,.35);
    transition:transform .42s var(--tc-spring);
  }
  body .view-tg:has(> button:last-child.on)::before{transform:translateX(100%)}
  body .view-tg button{
    position:relative;height:42px!important;min-width:0;
    background:none!important;box-shadow:none!important;border-radius:9px!important;
    color:var(--text3)!important;
    font-family:'IBM Plex Sans',sans-serif!important;font-size:14px!important;font-weight:600!important;letter-spacing:.2px!important;
    -webkit-tap-highlight-color:transparent;
    transition:color .2s,transform .3s var(--tc-spring)!important;
  }
  body .view-tg button svg{width:16px!important;height:16px!important}
  body .view-tg button.on{color:var(--text)!important}
  body .view-tg button.on svg{color:var(--accent)}
  body.ecam-light .view-tg button.on svg{color:var(--accent2)}
  body .view-tg button:active{transform:scale(.95);transition-duration:.08s!important}

  /* ── 2b) Sekme şeritleri — bölümlü kuyu, seçili sekme kabarık zemin ──
     Rutinler (.tabs/.tab), Mottolar (.dseg/.dsg), Hedefler + Sağlık (.subtabs/.stab),
     Seyahat (.vtabs/.vtab), Kariyer (.mtabs/.mtab). Üç-dört sekme olduğu için
     zemin kaymaz; seçili sekmenin kendisi Liste/Program'daki kabarık zemini alır. */
  body :is(.tabs,.dseg,.subtabs,.vtabs,.mtabs){
    display:flex!important;flex-wrap:nowrap!important;gap:4px!important;
    padding:4px!important;margin:8px 0 10px!important;
    border-radius:12px!important;
    background:var(--tc-well)!important;
    border:1px solid var(--tc-well-bd)!important;
    box-shadow:var(--tc-well-sh)!important;
    overflow-x:auto;scrollbar-width:none;
  }
  body :is(.tabs,.dseg,.subtabs,.vtabs,.mtabs)::-webkit-scrollbar{display:none}
  body :is(.tabs>.tab,.dseg>.dsg,.subtabs>.stab,.vtabs>.vtab,.mtabs>.mtab){
    flex:1 0 auto!important;min-height:40px!important;padding:0 12px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;
    border:1px solid transparent!important;border-radius:9px!important;
    background:none!important;box-shadow:none!important;
    color:var(--text3)!important;
    font-family:'IBM Plex Sans',sans-serif!important;font-size:12.5px!important;font-weight:600!important;letter-spacing:.4px!important;
    white-space:nowrap;-webkit-tap-highlight-color:transparent;
    transition:color .2s,background-color .2s,transform .3s var(--tc-spring)!important;
  }
  body :is(.tabs>.tab.active,.dseg>.dsg.on,.subtabs>.stab.on,.vtabs>.vtab.on,.mtabs>.mtab.on){
    background:var(--tc-thumb)!important;
    border-color:var(--tc-key-bd)!important;
    color:var(--text)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 2px 0 var(--tc-ledge),0 6px 14px -4px rgba(0,0,0,.35)!important;
    animation:tcChipOn .36s var(--tc-spring);
  }
  body :is(.tabs>.tab,.dseg>.dsg,.subtabs>.stab,.vtabs>.vtab,.mtabs>.mtab):active{transform:scale(.95);transition-duration:.08s!important}

  /* ── 3) "Günüme görev ekle" çubuğu ── */
  html:not(.lcc-ui1) body .tasks-section .task-add-bar.lcc-ui2-bar{margin:0 12px 12px!important}
  html:not(.lcc-ui1) body .lcc-ui2-bar{
    padding:6px!important;min-height:56px;
    border-radius:14px!important;
    background:var(--tc-well)!important;
    border:1px solid var(--tc-well-bd)!important;
    box-shadow:var(--tc-well-sh)!important;
  }
  html:not(.lcc-ui1) body .lcc-ui2-bar:focus-within{
    border-color:color-mix(in srgb,var(--accent) 60%,transparent)!important;
    box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent)!important;
  }
  html:not(.lcc-ui1) body .lcc-ui2-bar :is(.task-add-input,.add-inp,.add-input){
    font-family:'IBM Plex Sans',sans-serif!important;font-size:16px!important;font-weight:500;
    padding:8px 6px!important;
  }
  html:not(.lcc-ui1) body .lcc-ui2-bar :is(.task-add-circle,.add-circle){
    width:42px;height:42px;flex-basis:42px;border-radius:11px;
    background:var(--ctl-prim-bg);color:var(--ctl-prim-tx);
    font-family:'IBM Plex Sans',sans-serif;font-size:24px;font-weight:500;
    box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 2px 0 color-mix(in srgb,var(--accent2) 60%,#000),0 6px 14px -6px color-mix(in srgb,var(--accent) 70%,transparent);
    -webkit-tap-highlight-color:transparent;
    transition:transform .3s var(--tc-spring),box-shadow .1s;
  }
  html:not(.lcc-ui1) body .lcc-ui2-bar:focus-within :is(.task-add-circle,.add-circle){
    background:var(--ctl-prim-bg);color:var(--ctl-prim-tx);transform:rotate(90deg);
  }
  html:not(.lcc-ui1) body .lcc-ui2-bar :is(.task-add-circle,.add-circle):active{transform:translateY(2px) scale(.94);box-shadow:0 1px 0 rgba(255,255,255,.3) inset;transition-duration:.08s}
  html:not(.lcc-ui1) body .lcc-ui2-bar .lcc-mic-btn:not(.rec){
    background:var(--tc-key);border:1px solid var(--tc-key-bd);border-radius:11px;
    box-shadow:0 2px 0 var(--tc-ledge);color:var(--text2);
  }
  html:not(.lcc-ui1) body .lcc-ui2-bar .lcc-mic-btn,
  html:not(.lcc-ui1) body .lcc-ui2-bar .lcc-add-send{
    width:42px;height:42px;flex-basis:42px;border-radius:11px;
    transition:transform .3s var(--tc-spring);
  }
  html:not(.lcc-ui1) body .lcc-ui2-bar .lcc-mic-btn:active,
  html:not(.lcc-ui1) body .lcc-ui2-bar .lcc-add-send:active{transform:translateY(2px) scale(.94);transition-duration:.08s}

  /* ── 4) Sağlık — YAPILDI tuşu: kalınlığı olan büyük tuş ── */
  body .rc-tik{
    min-height:58px!important;padding:0 16px!important;border-radius:14px!important;
    border:1px solid var(--tc-key-bd)!important;
    background:var(--tc-key)!important;
    color:var(--text)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.10) inset,0 3px 0 var(--tc-ledge),0 8px 18px -8px rgba(0,0,0,.5)!important;
    font-family:'IBM Plex Sans',sans-serif!important;font-size:15px!important;font-weight:700!important;letter-spacing:.8px!important;
    -webkit-tap-highlight-color:transparent;
    -webkit-user-select:none;user-select:none;
    transition:transform .3s var(--tc-spring),box-shadow .12s,background .2s!important;
  }
  body .rc-tik:active{transform:translateY(3px)!important;box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 0 0 var(--tc-ledge)!important;transition-duration:.07s!important}
  body .rc-tik.on{
    background:var(--tc-ok)!important;border-color:transparent!important;color:var(--tc-ok-tx)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 3px 0 var(--tc-ok-ledge),0 10px 22px -8px rgba(16,185,129,.6)!important;
  }
  body .rc-tik.on:active{box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 0 0 var(--tc-ok-ledge)!important}
  body .rc-tik.ro{
    background:var(--tc-well)!important;border-color:var(--tc-well-bd)!important;color:var(--text3)!important;
    box-shadow:none!important;opacity:1;
  }
  body .rc-tik.ro:active{transform:none!important}
  body .rc-tik.tc-pop{animation:tcPop .48s var(--tc-spring),tcRing .7s ease-out}

  /* ── 5) Sağlık — uyku saati: tek parça kapsül + hızlı seçim ── */
  body .hwrap{gap:8px}
  body .hlbl{font-size:12px!important;font-weight:600;letter-spacing:1.2px}
  body .hstep{
    align-items:center;gap:6px;padding:6px;
    border-radius:16px;
    background:var(--tc-well);border:1px solid var(--tc-well-bd);box-shadow:var(--tc-well-sh);
    transition:border-color .2s,box-shadow .2s;
  }
  body .hstep.on{border-color:color-mix(in srgb,var(--purple) 45%,transparent)}
  body .hstep:focus-within{border-color:var(--purple);box-shadow:0 0 0 4px color-mix(in srgb,var(--purple) 18%,transparent)}
  body .hstep-b{
    width:56px!important;height:56px;min-height:56px!important;min-width:56px!important;
    border-radius:12px;
    border:1px solid var(--tc-key-bd);background:var(--tc-key);color:var(--text);
    box-shadow:0 1px 0 rgba(255,255,255,.10) inset,0 3px 0 var(--tc-ledge);
    font-family:'IBM Plex Sans',sans-serif;font-size:28px;font-weight:500;
    display:flex;align-items:center;justify-content:center;padding:0 0 2px;
    -webkit-tap-highlight-color:transparent;touch-action:manipulation;
    transition:transform .3s var(--tc-spring),box-shadow .1s;
  }
  body .hstep-b:active{transform:translateY(3px) scale(.96);box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 0 0 var(--tc-ledge);transition-duration:.07s}
  body .hstep-f{
    border:none!important;background:none!important;padding:0 6px;
    align-items:baseline;gap:6px;
  }
  /* Seçici uzun: lcc_mobile.css'teki iOS yakınlaştırma kuralı
     (input:not(...)×5 → 16px!important) daha özgül; onu geçmesi gerek. */
  body .rc .hwrap .hstep .hstep-f input.hstep-in{
    width:3.6ch;font-family:'IBM Plex Sans',sans-serif;font-size:34px!important;font-weight:700;
    font-variant-numeric:tabular-nums;letter-spacing:-.5px;color:var(--text);
  }
  body .hstep-u{font-family:'IBM Plex Sans',sans-serif;font-size:15px;font-weight:600;color:var(--text3)}
  body .hstep-f.tc-bump{animation:tcBump .34s var(--tc-spring)}
  body .hstep-f.tc-bump .hstep-in{color:var(--purple)}
  body .hpre{display:flex;gap:6px}
  body .hpre-b{
    flex:1;min-width:0;height:40px;border-radius:10px;
    border:1px solid var(--tc-well-bd);background:var(--tc-well);color:var(--text2);
    font-family:'IBM Plex Sans',sans-serif;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;
    -webkit-tap-highlight-color:transparent;touch-action:manipulation;cursor:pointer;
    transition:transform .3s var(--tc-spring),background .2s,color .2s;
  }
  body .hpre-b.on{
    background:color-mix(in srgb,var(--purple) 22%,transparent);
    border-color:color-mix(in srgb,var(--purple) 60%,transparent);
    color:var(--text);
  }
  body .hpre-b:active{transform:scale(.92);transition-duration:.08s}
}

/* ── 7) Üst başlık — mobil kabuk (#lcc-mobile-header, index.html) ──
   Uygulama açıldığından beri dokunulmamış bölge. Aynı dil: cam zemin,
   kalınlığı olan tuşlar, sans yazı; tema geçişi kayan zeminli bölüm. */
body #lcc-mobile-header{
  gap:10px!important;padding-left:12px!important;padding-right:12px!important;padding-bottom:8px!important;
  border-bottom:1px solid var(--tc-well-bd)!important;
  -webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);
}
body #lcc-mobile-header .hamburger-btn{
  width:40px;height:40px;flex:0 0 40px;justify-content:center;padding:0;border-radius:12px;
  background:var(--tc-key);border:1px solid var(--tc-key-bd);
  box-shadow:0 1px 0 rgba(255,255,255,.10) inset,0 2px 0 var(--tc-ledge);
  color:var(--text);-webkit-tap-highlight-color:transparent;
  transition:transform .3s var(--tc-spring),box-shadow .1s;
}
body #lcc-mobile-header .hamburger-btn svg{width:20px;height:20px;stroke-width:1.9}
body #lcc-mobile-header .hamburger-btn:active{transform:translateY(2px) scale(.95);box-shadow:0 0 0 var(--tc-ledge);transition-duration:.07s}
body #lcc-page-title .mob-logo{gap:10px}
body #lcc-page-title .mob-bolt{
  width:36px;height:36px;padding:8px;box-sizing:border-box;border-radius:11px;
  background:color-mix(in srgb,var(--accent) 13%,transparent);
  border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);
  stroke-width:2;filter:none;
  box-shadow:0 0 18px -6px color-mix(in srgb,var(--accent) 70%,transparent);
}
body #lcc-page-title .mob-logo-text{
  font-family:'IBM Plex Sans',sans-serif;font-size:15.5px;font-weight:700;letter-spacing:-.1px;color:var(--text);line-height:1.15;
}
body #lcc-page-title .mob-module{
  font-family:'IBM Plex Sans',sans-serif;font-style:normal;font-size:12px;font-weight:600;letter-spacing:.3px;
  color:var(--accent);
}
body.ecam-light #lcc-page-title .mob-module{color:var(--accent2)}
body #mob-theme-toggle,body .theme-toggle,body .tt{
  position:relative;isolation:isolate;display:grid!important;grid-template-columns:1fr 1fr;gap:0!important;
  padding:3px!important;border-radius:11px!important;
  background:var(--tc-well)!important;border:1px solid var(--tc-well-bd)!important;box-shadow:var(--tc-well-sh)!important;
}
body #mob-theme-toggle::before,body .theme-toggle::before,body .tt::before{
  content:'';position:absolute;z-index:-1;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:8px;
  background:var(--tc-prim);
  box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 4px 12px -4px color-mix(in srgb,var(--accent) 70%,transparent);
  transition:transform .42s var(--tc-spring);
}
body #mob-theme-toggle:has(#mob-tb-dark.on)::before,
body .theme-toggle:has(> :last-child.active)::before,
body .tt:has(> :last-child.on)::before{transform:translateX(100%)}
body .mob-tb,body .theme-btn,body .tt>.tb{
  min-width:52px;padding:6px 10px!important;border-radius:8px!important;
  background:none!important;color:var(--text3)!important;
  font-family:'IBM Plex Sans',sans-serif!important;font-size:11px!important;font-weight:700!important;letter-spacing:.8px!important;
  -webkit-tap-highlight-color:transparent;transition:color .25s,transform .3s var(--tc-spring)!important;
}
body .mob-tb.on,body .theme-btn.active,body .tt>.tb.on{color:var(--tc-prim-tx)!important}
body .mob-tb:active,body .theme-btn:active,body .tt>.tb:active{transform:scale(.92);transition-duration:.08s!important}
body #lcc-date-bar{
  padding:5px 16px 6px!important;gap:8px!important;
  background:none!important;border-bottom:1px solid var(--tc-well-bd)!important;
}
body #mob-clock{font-variant-numeric:tabular-nums;letter-spacing:.6px;font-size:14px}
body #mob-date{font-size:11.5px;font-weight:600;letter-spacing:1.4px;color:var(--text2)}

/* ── 8) Üst başlık — modüllerin masaüstü şeridi (.topbar) ── */
@media (min-width:769px){
  body .topbar{
    border-radius:14px!important;padding:10px 16px!important;
    border:1px solid var(--tc-well-bd)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.06) inset!important;
  }
  body .topbar .lcc-logo{
    font-family:'IBM Plex Sans',sans-serif;font-size:16px;font-weight:700;letter-spacing:-.1px;
    text-transform:none;color:var(--text);
  }
  body .topbar .lcc-sub{font-size:10.5px;font-weight:600;letter-spacing:1.6px;color:var(--accent2);margin-top:2px}
  body.ecam-dark .topbar .lcc-sub{color:var(--accent)}
  body .topbar .sys-time,body .topbar .clock{font-variant-numeric:tabular-nums;letter-spacing:.8px}
}

/* ── 9) Kilit (PIN) + kasa parolası ekranı — masaüstü + mobil ──
   Kullanıcı isteği 19.10.2026: eski telefon tuş takımı görünümü (ABC harfleri,
   serif rakamlar, kare cam tuşlar) yeni tasarımın gerisinde kalıyordu.
   Aynı dil: kabartma tuş + alt kalınlık (ledge), basınca çöker; noktalar bir
   kuyunun (well) içinde, dolarken yayla oturur; yanlış PIN'de kırmızı + sarsıntı.
   Yalnız görünüm — PIN doğrulama/kilit mantığı index.html'de, değişmedi. */
#lcc-lock-ov .lock-box,#lcc-vault-ov .lock-box{font-family:'IBM Plex Sans',sans-serif;max-width:340px}
body #lcc-lock-ov .lock-icon-svg,body #lcc-vault-ov .lock-icon-svg{
  width:60px;height:60px;padding:16px;border-radius:18px;
  background:var(--tc-key);border:1px solid var(--tc-key-bd);
  box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 3px 0 var(--tc-ledge),0 10px 26px -8px color-mix(in srgb,var(--accent) 45%,transparent);
  stroke:var(--accent);stroke-width:1.7;margin-bottom:18px;
}
body #lcc-lock-ov .lock-prompt,body #lcc-vault-ov .lock-prompt{
  font-family:'IBM Plex Sans',sans-serif;font-size:11px;font-weight:700;letter-spacing:1.8px;
  color:var(--accent2);margin-bottom:6px;
}
body.ecam-dark #lcc-lock-ov .lock-prompt,body.ecam-dark #lcc-vault-ov .lock-prompt{color:var(--accent)}
body #lcc-lock-ov .lock-modname,body #lcc-vault-ov .lock-modname{
  font-family:'IBM Plex Sans',sans-serif;font-size:22px;font-weight:700;letter-spacing:-.2px;
  color:var(--text);margin-bottom:22px;
}
/* Noktalar: kuyu içinde kapsül */
body #lcc-lock-ov .lock-dots{
  gap:14px;padding:13px 20px;margin-bottom:26px;border-radius:999px;
  background:var(--tc-well);border:1px solid var(--tc-well-bd);box-shadow:var(--tc-well-sh);
  transition:border-color .2s,background-color .2s;
}
body #lcc-lock-ov .lock-dot{
  width:12px;height:12px;border:0;
  background:color-mix(in srgb,var(--text3,#5a6b80) 35%,transparent);
  transition:background-color .15s,box-shadow .15s;
}
body #lcc-lock-ov .lock-dot.filled{
  background:var(--accent);border:0;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);
  animation:tcBump .32s var(--tc-spring);
}
/* Yanlış PIN: kutu zaten sarsılıyor (.lock-box.shake) → noktalar + kuyu kırmızı */
body #lcc-lock-ov .lock-box.shake .lock-dots{border-color:color-mix(in srgb,var(--red,#ef4444) 55%,transparent);background:color-mix(in srgb,var(--red,#ef4444) 9%,transparent)}
body #lcc-lock-ov .lock-box.shake .lock-dot{background:var(--red,#ef4444);box-shadow:none}
body #lcc-lock-ov .lock-lensel{border-radius:999px;padding:3px;background:var(--tc-well)!important;border-color:var(--tc-well-bd)!important}
body #lcc-lock-ov .lock-len-btn{border-radius:999px;font-family:'IBM Plex Sans',sans-serif;letter-spacing:.4px}
body #lcc-lock-ov .lock-len-btn.on{background:var(--tc-prim);color:var(--tc-prim-tx)}

/* Tuş takımı */
body #lcc-lock-ov .lock-pad{gap:12px 14px;margin-bottom:10px}
body.ecam-dark #lcc-lock-ov .lpk:not(.ghost),body.ecam-light #lcc-lock-ov .lpk:not(.ghost){
  height:clamp(56px,8vh,66px);border-radius:16px;
  background:var(--tc-key);border:1px solid var(--tc-key-bd);
  box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 3px 0 var(--tc-ledge),0 8px 18px -10px rgba(0,0,0,.45);
  -webkit-backdrop-filter:none;backdrop-filter:none;
  font-family:'IBM Plex Sans',sans-serif;font-size:26px;font-weight:500;color:var(--text);
  font-variant-numeric:tabular-nums;
  transition:transform .3s var(--tc-spring),box-shadow .3s ease,border-color .2s,color .2s;
}
/* Basış: alt kalınlık kadar çöker + vurgu kenarı (ışık ::before index.html'de) */
body.ecam-dark #lcc-lock-ov .lpk:not(.ghost):active,body.ecam-dark #lcc-lock-ov .lpk.pressed:not(.ghost),
body.ecam-light #lcc-lock-ov .lpk:not(.ghost):active,body.ecam-light #lcc-lock-ov .lpk.pressed:not(.ghost){
  transform:translateY(3px);
  border-color:color-mix(in srgb,var(--accent) 60%,transparent);
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 0 0 var(--tc-ledge),0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);
  transition-duration:.07s;
}
body #lcc-lock-ov .lpk::before{
  background:radial-gradient(circle at 50% 60%,color-mix(in srgb,var(--accent) 34%,transparent),transparent 72%);
}
/* Sil / Face ID: kutusuz ikon */
body #lcc-lock-ov .lpk.del-btn,body #lcc-lock-ov .lpk.bio-btn{border-radius:16px}
body #lcc-lock-ov .lpk.del-btn:active,body #lcc-lock-ov .lpk.del-btn.pressed{transform:scale(.9)}
body #lcc-lock-ov .lpk.del-btn::before,body #lcc-lock-ov .lpk.bio-btn::before{display:none}

/* Hata yazısı + alt satır */
body #lcc-lock-ov .lock-err,body #lcc-vault-ov .lock-err{font-family:'IBM Plex Sans',sans-serif;font-size:12.5px;font-weight:600;letter-spacing:.2px;margin-bottom:8px}
#lcc-lock-ov .lock-foot{display:flex;flex-direction:column;align-items:center;gap:2px}
body #lcc-lock-ov .lock-cancel-btn,body #lcc-vault-ov .lock-cancel-btn{
  min-height:38px;padding:0 22px;border-radius:999px;
  background:var(--tc-well);border:1px solid var(--tc-well-bd);
  color:var(--text2);font-family:'IBM Plex Sans',sans-serif;font-size:13px;font-weight:600;letter-spacing:.4px;
  transition:transform .3s var(--tc-spring),color .2s,background-color .2s;
}
body #lcc-lock-ov .lock-cancel-btn:hover,body #lcc-vault-ov .lock-cancel-btn:hover{color:var(--text)}
body #lcc-lock-ov .lock-cancel-btn:active,body #lcc-vault-ov .lock-cancel-btn:active{transform:scale(.95);transition-duration:.07s}
body #lcc-lock-ov .lock-forgot-btn,body #lcc-vault-ov .lock-forgot-btn{
  font-family:'IBM Plex Sans',sans-serif;font-size:12.5px;font-weight:600;letter-spacing:.2px;
  color:var(--accent2);opacity:1;margin-top:2px;
}
body.ecam-dark #lcc-lock-ov .lock-forgot-btn,body.ecam-dark #lcc-vault-ov .lock-forgot-btn{color:var(--accent)}

/* Kasa parolası ekranı: aynı dil */
body #lcc-vault-ov .vault-inp{border-radius:14px;padding:13px 14px;box-shadow:var(--tc-well-sh)}
body #lcc-vault-ov .vault-ok{
  border-radius:14px;padding:13px;background:var(--tc-prim);color:var(--tc-prim-tx);
  font-family:'IBM Plex Sans',sans-serif;font-size:14px;letter-spacing:.6px;margin-bottom:8px;
  box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 3px 0 color-mix(in srgb,var(--accent2) 60%,#000);
  transition:transform .3s var(--tc-spring),box-shadow .3s;
}
body #lcc-vault-ov .vault-ok:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(255,255,255,.2) inset;transition-duration:.07s}

@media (max-width:768px){
  body #lcc-lock-ov .lock-box{max-width:400px}
  body #lcc-lock-ov .lock-icon-svg{width:66px;height:66px;padding:17px;border-radius:20px}
  body #lcc-lock-ov .lock-modname{font-size:24px;margin-bottom:24px}
  body #lcc-lock-ov .lock-dot{width:13px;height:13px}
  body #lcc-lock-ov .lock-dots{gap:16px;padding:14px 22px}
  body.ecam-dark #lcc-lock-ov .lpk:not(.ghost),body.ecam-light #lcc-lock-ov .lpk:not(.ghost){height:clamp(56px,8.2vh,68px);border-radius:18px;font-size:28px}
}
@media (prefers-reduced-motion:reduce){
  body #lcc-lock-ov .lock-dot.filled{animation:none}
}

/* Masaüstünde hızlı seçim satırı da düzgün dursun (mobil dışı sade hâl) */
.hpre{display:flex;gap:4px}
.hpre-b{flex:1;min-width:0;padding:4px 0;border-radius:6px;border:1px solid var(--border);background:var(--bg3);color:var(--text2);font-family:'IBM Plex Sans',sans-serif;font-size:12px;cursor:pointer}
.hpre-b.on{border-color:var(--purple);color:var(--text)}

@media (prefers-reduced-motion:reduce){
  body .tasks-filters .filter-chip.active,body .rc-tik.tc-pop,body .hstep-f.tc-bump{animation:none!important}
  body .view-tg::before{transition:none}
}
