*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
:root{
  --accent:#6366f1;--accent-soft:rgba(99,102,241,.13);--accent-text:#6366f1;
  --bg:#ECEEF8;--card:#fff;--htext:#1a1a2e;--hsub:#9496a1;
  --border:#f0f0f8;--dtext:#2d2d44;--dsub:#adb0be;
  --wknd:#e03e3e;--hol:#d63031;--dim:#c8c9d4;--dimsub:#dcdde6;
  --tf:#1a1a1a;--tt:#000000;--tf-text:#1a1a1a;--tvt:#fff;--tvs:rgba(255,255,255,.7);
  --fab:#1a1a1a;--icon:#555770;--sbg:#fff;--sbdr:#eee;
  --tgbg:#e8e9f3;--tgon:#1a1a1a;--mbg:#fff;--ov:rgba(20,20,50,.65);
  --chip:#e8e9f3;--chipt:#888;
  --app-bg:radial-gradient(circle at top center,rgba(26,26,26,.08),transparent 26%),linear-gradient(180deg,#faf9ff 0%,#f3f1fb 45%,#ece9f6 100%);
  --hdr-grad:linear-gradient(135deg,rgba(40,40,40,.94),rgba(10,10,10,.94));
  --hdr-icon:rgba(255,255,255,.15);
  --hdr-icon-text:#fff;
  --title-text:#1a1a2e;
  --title-sub:#6d6f83;
  --mode-text:#5d6080;
  --mode-bg:rgba(255,255,255,.88);
  --mode-on:linear-gradient(135deg,#3a3a3a,#1a1a1a 65%,#000000);
  --nav-btn:rgba(255,255,255,.98);
  --nav-text:#5a5d7d;
  --nav-muted:#8b90aa;
  --cell-bg:rgba(255,255,255,.82);
  --cell-special-bg:rgba(252,240,241,.98);
  --cell-special-hover:rgba(251,236,239,1);
  --cell-hover:#ffffff;
  --cell-text:#1f2031;
  --cell-muted:#7d8195;
  --today-grad:linear-gradient(180deg,rgba(60,60,60,.95),rgba(15,15,15,.95));
  --today-text:#fff;
  --today-muted:rgba(255,255,255,.75);
  --dot-hol:#ef8f95;
  --dot-evt:#7ab7ff;
  --panel-bg:linear-gradient(180deg,rgba(255,255,255,.98),rgba(251,248,255,.96));
  --panel-border:rgba(26,26,26,.08);
  --panel-shadow:0 14px 34px rgba(114,90,200,.08);
  --panel-text:#1f2031;
  --panel-muted:#64687e;
  --chip-bg:#eceeef;
  --chip-text:#1a1a1a;
  --chip-hol-bg:#fff0f0;
  --chip-hol-text:#d63031;
  --chip-evt-bg:#eef4ff;
  --chip-evt-text:#3b82f6;
  --sel-bg:linear-gradient(180deg,rgba(255,255,255,.99),rgba(249,247,253,.98));
  --sel-border:rgba(26,26,26,.08);
  --sel-text:#1f2031;
  --sel-muted:#6b6f85;
  --sel-action:#1a1a1a;
  --sel-action-text:#fff;
  --sheet-bg:#fff;
  --sheet-border:rgba(26,26,26,.08);
  --sheet-text:#1f2031;
  --sheet-muted:#767a8f;
  --up-pill-bg:linear-gradient(180deg,rgba(34,34,38,.98),rgba(22,22,25,.98));
  --up-pill-border:rgba(255,255,255,.08);
  --up-pill-text:#f4f4f8;
  --up-count-bg:linear-gradient(180deg,#2a2a2a,#000000);
  --up-count-text:#fff;
}
[data-theme="dark"]{
  /* ── Core background & surfaces — softer, warmer dark blues ── */
  --bg:#0f1117;--card:#181b24;--htext:#e6e8f4;--hsub:#7276a0;
  --border:#232640;--dtext:#cdd0e8;--dsub:#505572;
  --wknd:#ff8080;--hol:#ff7878;--dim:#383b58;--dimsub:#282a48;

  /* ── Form & toggle elements ── */
  --tf:#3a3d56;--tt:#23253a;--tf-text:#b0b4d0;--tvt:#fff;--tvs:rgba(255,255,255,.62);
  --fab:#5c5f80;--icon:#8a8eb8;--sbg:#181b24;--sbdr:#232640;
  --tgbg:#252840;--tgon:#5c5f80;--mbg:#181b24;--ov:rgba(0,0,5,.82);
  --chip:#252840;--chipt:#9a9ec8;

  /* ── App background — richer, softer deep blue-purple ── */
  --app-bg:
    radial-gradient(ellipse 70% 42% at 50% 0%,rgba(88,82,140,.14),transparent 68%),
    radial-gradient(ellipse 55% 35% at 15% 60%,rgba(60,55,100,.10),transparent 65%),
    radial-gradient(ellipse 60% 40% at 85% 80%,rgba(50,48,100,.10),transparent 65%),
    linear-gradient(180deg,#0e1016 0%,#111320 45%,#0d0f18 100%);

  /* ── Header — slightly more visible with subtle blue tint ── */
  --hdr-grad:linear-gradient(135deg,rgba(50,52,76,.72),rgba(28,30,48,.82));
  --hdr-icon:rgba(160,168,255,.10);
  --hdr-icon-text:#c8cef5;

  /* ── Title area ── */
  --title-text:#dce0ff;
  --title-sub:#9297c0;
  --mode-text:#b8bcde;
  --mode-bg:rgba(255,255,255,.055);
  --mode-on:linear-gradient(135deg,#4e5178,#313456 65%,#232644);

  /* ── Nav arrows ── */
  --nav-btn:rgba(255,255,255,.07);
  --nav-text:#d8dcf8;
  --nav-muted:#9297c0;

  /* ── Calendar cells ── */
  --cell-bg:rgba(255,255,255,.025);
  --cell-special-bg:rgba(52,24,32,.78);
  --cell-special-hover:rgba(64,30,42,.92);
  --cell-hover:rgba(255,255,255,.06);
  --cell-text:#dce0ff;
  --cell-muted:#7e82a8;

  /* ── Today cell — warm indigo instead of grey ── */
  --today-grad:linear-gradient(180deg,rgba(78,82,132,.96),rgba(48,52,100,.96));
  --today-text:#fff;
  --today-muted:rgba(255,255,255,.76);

  /* ── Event dots ── */
  --dot-hol:#f0959c;
  --dot-evt:#82c0ff;

  /* ── Panel (upcoming section) ── */
  --panel-bg:linear-gradient(180deg,rgba(26,28,44,.97),rgba(16,18,30,.97));
  --panel-border:rgba(255,255,255,.055);
  --panel-shadow:0 10px 32px rgba(0,0,8,.38);
  --panel-text:#e0e4ff;
  --panel-muted:#9298bc;

  /* ── Event/holiday chips ── */
  --chip-bg:#301520;
  --chip-text:#ff9898;
  --chip-hol-bg:#301520;
  --chip-hol-text:#ff9898;
  --chip-evt-bg:#142038;
  --chip-evt-text:#82c0ff;

  /* ── Day selected card ── */
  --sel-bg:linear-gradient(180deg,rgba(26,24,42,.98),rgba(16,15,28,.98));
  --sel-border:rgba(255,255,255,.055);
  --sel-text:#e0e4ff;
  --sel-muted:#9298bc;
  --sel-action:#42466a;
  --sel-action-text:#fff;

  /* ── Bottom sheets ── */
  --sheet-bg:linear-gradient(180deg,rgba(22,22,36,.99),rgba(14,14,24,.99));
  --sheet-border:rgba(255,255,255,.065);
  --sheet-text:#dce0ff;
  --sheet-muted:#8a8eae;

  /* ── Upcoming pill ── */
  --up-pill-bg:linear-gradient(180deg,rgba(34,36,56,.99),rgba(22,22,38,.99));
  --up-pill-border:rgba(255,255,255,.09);
  --up-pill-text:#e8ecff;
  --up-count-bg:linear-gradient(180deg,#3a3e60,#22253e);
  --up-count-text:#fff;
}

/* ── Dark mode: friendlier card & input fills ── */
[data-theme="dark"] .ccard,
[data-theme="dark"] .srow,
[data-theme="dark"] .ssec {
  --card-lift: rgba(255,255,255,.018);
}
[data-theme="dark"] .nbtn {
  box-shadow: 0 4px 14px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.06);
}
[data-theme="dark"] .cell.hol,
[data-theme="dark"] .cell.wk {
  box-shadow: 0 2px 7px rgba(0,0,0,.18), inset 0 0 0 1px rgba(255,255,255,.055);
}
[data-theme="dark"] .notes-list-item,
[data-theme="dark"] .task-list-item {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.06);
}
[data-theme="dark"] input,
[data-theme="dark"] select,
[data-theme="dark"] textarea {
  color-scheme: dark;
}
[data-theme="dark"] .einput {
  background: rgba(255,255,255,.055);
  border-color: rgba(255,255,255,.10);
  color: var(--dtext);
}
[data-theme="dark"] .einput::placeholder { color: var(--dsub); opacity:1; }
[data-theme="dark"] .einput:focus { border-color: rgba(140,148,220,.55); }
[data-theme="dark"] .ebtn {
  background: linear-gradient(135deg,#42466a,#282b48);
  box-shadow: 0 8px 20px rgba(0,0,10,.32);
}
[data-theme="dark"] .tgl { background: var(--tgbg); }
[data-theme="dark"] .tgl.on { background: var(--tgon); }
[data-theme="dark"] .chip {
  background: rgba(255,255,255,.07);
  color: var(--nav-muted);
  border-color: rgba(255,255,255,.09);
}
[data-theme="dark"] .chip.on {
  background: linear-gradient(135deg,#4e5178,#313456);
  color: #fff;
  border-color: rgba(255,255,255,.12);
}
[data-theme="dark"] .cal-handle-pill {
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.10);
}
[data-theme="dark"] .cal-expanded .cal-handle-pill {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.18);
}
[data-theme="dark"] .mbignum {
  background: linear-gradient(135deg,#c0c8f8,#8090d0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
[data-theme="dark"] .maddbtn {
  background: linear-gradient(135deg,#4a4e78,#282b48);
  box-shadow: 0 8px 18px rgba(0,0,15,.36);
}
[data-theme="dark"] .mode-pill {
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.075);
}
[data-theme="dark"] .mode-pill:hover {
  background: rgba(255,255,255,.09);
  border-color: rgba(255,255,255,.12);
}
[data-theme="dark"] .mode-pill.on {
  background: linear-gradient(135deg,#4e5178 0%,#313456 55%,#232644 100%);
  border-color: rgba(255,255,255,.12);
  box-shadow: 0 0 0 1px rgba(255,255,255,.07), 0 7px 18px rgba(0,0,20,.4);
}
[data-theme="dark"] .up-count {
  background: linear-gradient(135deg,#42466a,#252840);
  box-shadow: 0 4px 12px rgba(0,0,20,.32);
}
[data-theme="dark"] .fab {
  background: #42466a;
  box-shadow: 0 6px 22px rgba(0,0,20,.48);
}
[data-theme="dark"] .dmodal,
[data-theme="dark"] .sheet {
  box-shadow: 0 -4px 40px rgba(0,0,20,.52), 0 0 0 1px rgba(255,255,255,.045);
}
[data-theme="dark"] .gcal-block {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.07);
}
[data-theme="dark"] .notes-empty {
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.06);
}

/* ── Changelog sheet entries ── */


/* ── Privacy policy blocks ── */


/* ── Storage breakdown chips ── */
.cl-entry{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--sbdr);}
.cl-entry:last-child{border-bottom:none;}
.cl-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px;}
.cl-title{font-size:13.5px;font-weight:800;color:var(--dtext);line-height:1.3;}
.cl-sub{font-size:11.5px;font-weight:600;color:var(--dsub);margin-top:2px;line-height:1.45;}
.privacy-block{margin-bottom:16px;}
.privacy-h{font-size:13.5px;font-weight:900;color:var(--dtext);margin-bottom:5px;}
.privacy-p{font-size:12.5px;font-weight:600;color:var(--dsub);line-height:1.6;}
.stor-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:10.5px;font-weight:700;background:var(--tgbg);color:var(--dsub);}
.stor-chip span{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0;}

/* Smooth theme transition */
html, body, .phone, .hdr, .hdrbar, .ccard, .cell, .sheet, .dmodal, .fab, .ov {
  transition-property: background, background-color, border-color, color, box-shadow;
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(.4,0,.2,1);
}
html,body{width:100%;min-height:100vh;background:var(--app-bg);display:flex;justify-content:center;align-items:flex-start;padding:0 0 72px;transition:background .3s;}
.phone{
  width:390px;max-width:100vw;font-family:'Nunito',sans-serif;padding:0 0 72px;
  transition:transform .22s cubic-bezier(.22,.85,.25,1),opacity .22s cubic-bezier(.22,.85,.25,1),filter .22s cubic-bezier(.22,.85,.25,1);
  will-change:transform,opacity,filter;
}
.phone.cycle-dim{
  transform:scale(.982) translateY(4px);
  opacity:.7;
  filter:blur(.9px) saturate(.88);
  pointer-events:none;
}
[data-lang="ne"] .ne{font-family:'Noto Sans Devanagari',sans-serif;}

/* ── HEADER ── */
.hdr{display:flex;align-items:center;gap:10px;padding:14px 14px 10px;}
.hdrbar{flex:1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-radius:28px;background:var(--hdr-grad);backdrop-filter:blur(14px);}
.nav-back,.gear-btn{width:36px;height:36px;border:none;border-radius:0;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:opacity .2s;}
.nav-back:hover,.gear-btn:hover{background:transparent;transform:none;box-shadow:none;opacity:.75;}
.nav-back svg,.gear-btn svg{width:19px;height:19px;stroke:#fff;stroke-width:2;fill:none;}
/* ── Header dropdown menu ── */
.hdr-menu{
  position:fixed;z-index:9000;
  background:var(--sheet-bg);border:1px solid var(--sheet-border);
  border-radius:14px;padding:5px;min-width:170px;
  box-shadow:0 8px 28px rgba(0,0,0,.22),0 2px 8px rgba(0,0,0,.12);
  animation:hdrMenuIn .18s cubic-bezier(.22,.85,.25,1);
}
@keyframes hdrMenuIn{from{opacity:0;transform:scale(.92) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}
.hdr-menu-item{
  display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;
  border:none;background:transparent;border-radius:10px;
  font-family:'Nunito',sans-serif;font-size:13.5px;font-weight:800;
  color:var(--sheet-text);cursor:pointer;text-align:left;
  transition:background .15s;
}
.hdr-menu-item svg{stroke:var(--sheet-muted);flex-shrink:0;}
.hdr-menu-item:hover{background:var(--tgbg);}
.hdr-menu-item:active{background:var(--chip);}
.hdr-menu-sep{height:1px;background:var(--sheet-border);margin:4px 0;}
.head-title{flex:1;font-size:22px;font-weight:900;letter-spacing:-.4px;color:#fff;line-height:1.1;}
.today-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 4px;border:none;border-radius:0;background:transparent;color:#fff;font-size:13px;font-weight:800;cursor:pointer;white-space:nowrap;transition:opacity .2s;}
.today-pill:hover{background:transparent;transform:none;opacity:.75;}
.today-pill svg{width:15px;height:15px;stroke:#fff;stroke-width:2.3;fill:none;}
.modebar{display:flex;gap:5px;padding:3px 14px 5px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;user-select:none;-webkit-user-select:none;}
.modebar::-webkit-scrollbar{display:none;}
.mode-pill.dragging{opacity:.35;transform:scale(.92)!important;cursor:grabbing!important;transition:none!important;}
.mode-pill.drag-over{transform:translateX(4px) scale(1.04)!important;box-shadow:0 0 0 2px rgba(255,255,255,.3),0 5px 11px rgba(0,0,0,.12)!important;}
.mode-pill[draggable="true"]{cursor:grab;}
.mode-pill[draggable="true"]:active{cursor:grabbing;}
.mode-pill{
  height:28px;padding:0 9px;border-radius:13px;border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.045);color:var(--mode-text);font-size:10.5px;font-weight:800;
  cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;flex-shrink:0;
  transition:transform .2s,background .2s,box-shadow .2s,border-color .2s,color .2s;
}
.mode-pill:hover{transform:translateY(-1px);background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.09);}
.mode-pill.on{
  background:linear-gradient(135deg,#3a3a3a 0%,#222 55%,#000 100%);
  color:#fff;border-color:rgba(255,255,255,.1);
}
.mode-pill svg{width:11px;height:11px;stroke:currentColor;stroke-width:2.2;fill:none;flex-shrink:0;}
.mode-pill.on svg{filter:drop-shadow(0 0 4px rgba(255,255,255,.18));}
#cycleBtn{
  background:rgba(255,255,255,.035);
  border-color:rgba(255,255,255,.045);
  color:var(--mode-text);
}
#cycleBtn:hover{background:rgba(255,255,255,.06);}
#cycleBtn svg{opacity:.88;}

/* ── ECHO BUTTON ── */
#echoBtn{
  background:rgba(200,146,58,.08);
  border-color:rgba(200,146,58,.2);
  color:#c8923a;
}
#echoBtn:hover{background:rgba(200,146,58,.15);border-color:rgba(200,146,58,.4);}
#echoBtn svg{opacity:.9;stroke:currentColor;fill:none;}
#echoBtn.on{
  background:linear-gradient(135deg,#c8923a 0%,#a8721a 100%)!important;
  color:#fff!important;border-color:rgba(255,255,255,.15)!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.06),0 7px 15px rgba(200,146,58,.32),0 0 12px rgba(200,146,58,.2)!important;
}

/* ── COLOR MATCHER BUTTON ── */
#colorMatcherBtn{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.08);
  color:var(--mode-text);
  padding:0 7px;
}
#colorMatcherBtn svg{width:15px;height:15px;flex-shrink:0;}
#colorMatcherBtn:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);}
#colorMatcherBtn.on{
  background:linear-gradient(135deg,#7209b7 0%,#3a86ff 100%)!important;
  color:#fff!important;border-color:rgba(255,255,255,.15)!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.06),0 7px 15px rgba(58,134,255,.3),0 0 12px rgba(114,9,183,.2)!important;
}

/* ── COLOR MATCHER SHEET CONTENT ── */
#cmBody{
  flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;
  background:radial-gradient(ellipse 120% 70% at 50% -10%,rgba(80,60,255,.1) 0%,transparent 60%),
             radial-gradient(ellipse 80% 60% at 80% 100%,rgba(255,60,120,.07) 0%,transparent 60%),
             #0a0a0f;
  display:flex;align-items:flex-start;justify-content:center;
  font-family:'DM Sans',sans-serif;
  position:relative;
}
.cm-wrap{
  width:100%;max-width:520px;padding:20px 16px 40px;
  display:flex;flex-direction:column;align-items:center;gap:0;
  position:relative;z-index:1;
}
/* HUD bar */
.cm-hud{
  display:flex;gap:10px;
  background:rgba(255,255,255,.05);
  backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;padding:9px 14px;margin-bottom:22px;
}
.cm-hud-item{display:flex;flex-direction:column;align-items:center;min-width:52px;}
.cm-hud-label{font-size:8px;letter-spacing:2px;text-transform:uppercase;color:rgba(240,238,232,.4);font-family:'Space Mono',monospace;}
.cm-hud-value{font-family:'Space Mono',monospace;font-size:20px;font-weight:700;line-height:1.1;color:#f0eee8;transition:color .2s;}
.cm-hud-div{width:1px;background:rgba(255,255,255,.08);margin:2px 0;}
#cm-timer.warning{color:#ff3b5c;animation:cm-pulse .6s ease infinite alternate;}
@keyframes cm-pulse{from{opacity:1}to{opacity:.4}}
/* Target ring */
.cm-target-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:26px;}
.cm-target-ring{
  position:relative;width:170px;height:170px;border-radius:50%;padding:4px;
  background:conic-gradient(from 0deg,rgba(255,255,255,.15),rgba(255,255,255,.02),rgba(255,255,255,.15));
  animation:cm-ring-spin 8s linear infinite;
}
@keyframes cm-ring-spin{to{transform:rotate(360deg)}}
.cm-target-ring.active{animation:cm-ring-spin 8s linear infinite,cm-glow 2s ease-in-out infinite alternate;}
@keyframes cm-glow{from{filter:drop-shadow(0 0 6px rgba(255,255,255,.1))}to{filter:drop-shadow(0 0 22px rgba(255,255,255,.25))}}
.cm-target-circle{
  width:100%;height:100%;border-radius:50%;background:#888;
  display:flex;align-items:center;justify-content:center;flex-direction:column;
  transition:background .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;
  box-shadow:inset 0 -8px 24px rgba(0,0,0,.35),inset 0 4px 12px rgba(255,255,255,.12);
  position:relative;overflow:hidden;
}
.cm-target-circle::after{
  content:'';position:absolute;top:12%;left:20%;width:35%;height:25%;
  background:radial-gradient(ellipse,rgba(255,255,255,.22) 0%,transparent 80%);
  border-radius:50%;pointer-events:none;
}
.cm-target-name{
  font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:3px;
  color:rgba(255,255,255,.92);text-shadow:0 2px 8px rgba(0,0,0,.5);
  position:relative;z-index:1;mix-blend-mode:overlay;
}
.cm-target-circle.light-bg .cm-target-name{color:rgba(0,0,0,.75);text-shadow:0 1px 4px rgba(255,255,255,.3);}
.cm-target-sub{font-family:'Space Mono',monospace;font-size:8px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:2px;position:relative;z-index:1;}
.cm-target-circle.cm-correct{animation:cm-correct-flash .35s ease forwards;}
@keyframes cm-correct-flash{0%{box-shadow:0 0 0 0 rgba(0,229,160,.7),inset 0 -8px 24px rgba(0,0,0,.35)}50%{box-shadow:0 0 0 28px rgba(0,229,160,0),inset 0 -8px 24px rgba(0,0,0,.35)}100%{box-shadow:inset 0 -8px 24px rgba(0,0,0,.35)}}
.cm-target-circle.cm-wrong{animation:cm-wrong-shake .4s ease;}
@keyframes cm-wrong-shake{0%,100%{transform:rotate(0)}20%{transform:rotate(-4deg)}40%{transform:rotate(4deg)}60%{transform:rotate(-3deg)}80%{transform:rotate(3deg)}}
.cm-target-prompt{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:rgba(240,238,232,.4);font-family:'Space Mono',monospace;}
/* Swatches */
.cm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:400px;}
.cm-swatch{
  aspect-ratio:1;border-radius:16px;border:none;cursor:pointer;position:relative;overflow:hidden;
  transition:transform .15s ease,box-shadow .15s ease;
  box-shadow:0 4px 16px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.15);outline:none;
}
.cm-swatch::before{content:'';position:absolute;inset:0;background:linear-gradient(160deg,rgba(255,255,255,.15) 0%,transparent 50%);pointer-events:none;}
.cm-swatch:hover:not(:disabled){transform:scale(1.06) translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.2);}
.cm-swatch:active:not(:disabled){transform:scale(.95);}
.cm-swatch:disabled{cursor:not-allowed;opacity:.5;}
.cm-swatch-name{
  position:absolute;bottom:8px;left:0;right:0;text-align:center;
  font-family:'Space Mono',monospace;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;
  color:rgba(255,255,255,.85);text-shadow:0 1px 4px rgba(0,0,0,.6);pointer-events:none;
}
.cm-swatch-name.dark{color:rgba(0,0,0,.65);text-shadow:0 1px 2px rgba(255,255,255,.3);}
.cm-swatch.cm-flash-ok{animation:cm-swatch-ok .35s ease;}
@keyframes cm-swatch-ok{0%{filter:brightness(1)}40%{filter:brightness(2.2)}100%{filter:brightness(1)}}
.cm-swatch.cm-flash-no{animation:cm-swatch-no .4s ease;}
@keyframes cm-swatch-no{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
/* Score pop */
.cm-score-pop{
  position:fixed;font-family:'Bebas Neue',sans-serif;font-size:32px;
  pointer-events:none;z-index:999;animation:cm-float .9s ease forwards;
}
.cm-score-pop.pos{color:#00e5a0}.cm-score-pop.neg{color:#ff3b5c}
@keyframes cm-float{0%{opacity:1;transform:translateY(0) scale(1)}60%{opacity:1;transform:translateY(-44px) scale(1.2)}100%{opacity:0;transform:translateY(-72px) scale(.8)}}
/* Combo */
.cm-combo{
  position:absolute;top:8px;left:50%;transform:translateX(-50%) translateY(-70px);
  background:linear-gradient(135deg,rgba(0,229,160,.2),rgba(0,229,160,.05));
  border:1px solid rgba(0,229,160,.4);border-radius:40px;
  padding:8px 20px;font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:4px;color:#00e5a0;
  transition:transform .4s cubic-bezier(.175,.885,.32,1.275);pointer-events:none;white-space:nowrap;z-index:10;
}
.cm-combo.show{transform:translateX(-50%) translateY(0);}
/* Overlay */
.cm-overlay{
  position:absolute;inset:0;background:rgba(10,10,15,.88);
  backdrop-filter:blur(20px);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:18px;z-index:50;
  transition:opacity .4s ease;
}
.cm-overlay.hidden{opacity:0;pointer-events:none;}
.cm-overlay-card{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:26px;padding:36px 44px;text-align:center;max-width:340px;width:90%;
  position:relative;overflow:hidden;
}
.cm-overlay-card::before{
  content:'';position:absolute;top:-1px;left:20%;right:20%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);
}
.cm-overlay-title{
  font-family:'Bebas Neue',sans-serif;font-size:44px;letter-spacing:5px;line-height:1;
  background:linear-gradient(135deg,#fff 0%,rgba(255,255,255,.5) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:7px;
}
.cm-overlay-sub{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:rgba(240,238,232,.4);margin-bottom:22px;font-family:'Space Mono',monospace;}
.cm-start-tags{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin-bottom:22px;}
.cm-tag{font-family:'Space Mono',monospace;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:4px 9px;color:rgba(240,238,232,.4);}
.cm-stats{display:flex;gap:20px;justify-content:center;margin-bottom:22px;}
.cm-stat{text-align:center;}
.cm-stat-val{font-family:'Space Mono',monospace;font-size:26px;font-weight:700;color:#f0eee8;}
.cm-stat-lbl{font-size:8px;letter-spacing:2px;text-transform:uppercase;color:rgba(240,238,232,.4);font-family:'Space Mono',monospace;}
.cm-btn{
  background:#fff;color:#0a0a0f;border:none;border-radius:50px;
  padding:12px 36px;font-family:'Space Mono',monospace;font-size:12px;
  font-weight:700;letter-spacing:2px;text-transform:uppercase;
  cursor:pointer;transition:transform .15s,box-shadow .15s;
  box-shadow:0 4px 20px rgba(255,255,255,.15);
}
.cm-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(255,255,255,.22);}
.cm-btn:active{transform:scale(.97);}

/* ── ECHO SHEET CONTENT ── */
#echoBody{background:transparent;}
.echo-wrap{
  width:100%;min-height:100%;display:flex;align-items:center;justify-content:center;
  padding:32px 24px 48px;
  background:radial-gradient(ellipse at 50% 30%,rgba(200,146,58,.05) 0%,transparent 65%);
}
.echo-inner{width:100%;max-width:440px;display:flex;flex-direction:column;gap:0;}
.echo-phase{display:flex;flex-direction:column;align-items:center;gap:0;text-align:center;}
.echo-icon svg{filter:none;transition:filter .8s ease;}
.echo-icon.glow svg{filter:drop-shadow(0 0 14px rgba(200,146,58,.6));}
.echo-h1{
  font-size:clamp(2.2rem,8vw,3.2rem);font-weight:300;letter-spacing:.18em;
  color:#e8d5b0;margin:0;line-height:1;
  font-family:'Cormorant Garamond','Palatino Linotype',Georgia,serif;
}
[data-theme="light"] .echo-h1{color:#7a5c30;}
.echo-sub{font-size:.72rem;letter-spacing:.35em;color:#7a6848;margin:.5rem 0 0;text-transform:uppercase;font-family:Georgia,serif;}
[data-theme="light"] .echo-sub{color:#a07840;}
.echo-desc{font-size:.95rem;color:#9a8060;line-height:1.85;max-width:320px;margin:1.5rem auto 0;font-style:italic;font-family:Georgia,serif;}
[data-theme="light"] .echo-desc{color:#8a6040;}
.echo-btn{
  background:none;border:1px solid rgba(200,146,58,.35);color:#c8923a;
  font-family:Georgia,serif;font-size:.84rem;letter-spacing:.25em;
  padding:.8rem 2.2rem;cursor:pointer;text-transform:uppercase;
  transition:all .25s ease;border-radius:2px;margin-top:2.5rem;
}
.echo-btn:hover{background:rgba(200,146,58,.08);border-color:#c8923a;}
.echo-btn-note{font-family:Georgia,serif;font-size:.68rem;color:#4a3f2f;letter-spacing:.1em;margin-top:.8rem;text-transform:uppercase;}
[data-theme="light"] .echo-btn-note{color:#8a7040;}
/* Question phase */
.echo-qlabel{font-family:Georgia,serif;font-size:.68rem;letter-spacing:.3em;color:#5a4f3f;text-transform:uppercase;margin:0 0 1rem;align-self:flex-start;}
.echo-question{
  font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(1.3rem,4vw,1.7rem);
  font-weight:400;color:#e0c898;line-height:1.5;margin:0;font-style:italic;min-height:2.5em;align-self:flex-start;
}
.echo-textarea{
  background:transparent;border:none;border-top:1px solid #3a3028;border-bottom:1px solid #3a3028;
  color:#d4be96;font-family:Georgia,serif;font-size:1rem;line-height:1.8;
  padding:1rem 0;resize:none;outline:none;width:100%;min-height:130px;
  caret-color:#c8923a;font-style:italic;margin-top:1.5rem;
}
.echo-count{font-family:Georgia,serif;font-size:.68rem;color:#4a3f2f;letter-spacing:.1em;margin-top:.4rem;align-self:flex-end;}
.echo-count.warn{color:#c87a3a;}
/* Trigger phase */
.echo-trigger-btn{
  background:transparent;border:1px solid #2e2820;color:#6a5f4f;
  font-family:Georgia,serif;font-size:.9rem;padding:.85rem 1.1rem;
  cursor:pointer;text-align:left;transition:all .22s ease;
  display:flex;align-items:center;gap:.9rem;border-radius:3px;width:100%;
}
.echo-trigger-btn.on{background:rgba(30,26,20,.55);border-color:rgba(200,146,58,.55);color:#e0c898;}
.echo-trigger-icon{font-size:.95rem;color:#3a3028;min-width:18px;}
.echo-trigger-btn.on .echo-trigger-icon{color:#c8923a;}
.echo-trigger-label{display:block;letter-spacing:.04em;font-size:.9rem;}
.echo-trigger-desc{font-size:.72rem;color:#3a3028;font-style:italic;display:block;margin-top:2px;}
.echo-trigger-btn.on .echo-trigger-desc{color:#8a7858;}
.echo-date-input,.echo-age-input{
  background:transparent;border:none;border-bottom:1px solid #3a3028;
  color:#d4be96;font-family:Georgia,serif;font-size:.95rem;padding:.5rem 0;
  width:100%;outline:none;color-scheme:dark;
}
.echo-event-btn{
  background:transparent;border:1px solid #2a241e;color:#5a5040;
  font-family:Georgia,serif;font-size:.88rem;padding:.45rem .9rem;
  cursor:pointer;text-align:left;transition:all .2s ease;
  font-style:italic;border-radius:2px;
}
.echo-event-btn.on{background:rgba(30,26,20,.55);border-color:rgba(200,146,58,.35);color:#d4be96;}
.echo-preview-box{
  border:1px solid #2e2820;padding:1.1rem;margin-bottom:1.1rem;
  background:rgba(20,17,14,.55);border-radius:3px;
}
.echo-preview-lbl{font-family:Georgia,serif;font-size:.7rem;letter-spacing:.2em;color:#5a4f3f;text-transform:uppercase;margin:0 0 .5rem;}
.echo-preview-val{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.05rem;color:#c8923a;margin:0;font-style:italic;}
/* Sealing */
.echo-sealing-step{font-family:Georgia,serif;font-size:.88rem;color:#2a2420;margin:0;letter-spacing:.1em;transition:color .5s ease;font-style:italic;}
.echo-sealing-step.done{color:#4a3f2f;}
.echo-sealing-step.active{color:#c8923a;}
/* Sealed */
.echo-sealed-h{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(1.8rem,6vw,2.6rem);font-weight:300;color:#e0c898;margin:0 0 .4rem;letter-spacing:.1em;}
.echo-sealed-sub{font-family:Georgia,serif;font-size:.88rem;color:#5a4f3f;margin:0;font-style:italic;line-height:1.7;}
.echo-sealed-box{border:1px solid #1e1a14;padding:1.4rem 1.8rem;max-width:340px;background:rgba(13,11,8,.55);border-radius:3px;margin-top:1.2rem;}
.echo-sealed-lbl{font-family:Georgia,serif;font-size:.68rem;letter-spacing:.25em;color:#3a3028;text-transform:uppercase;margin:0 0 .7rem;}
.echo-sealed-text{font-family:'Cormorant Garamond',Georgia,serif;font-size:1rem;color:#6a5f4f;margin:0;font-style:italic;line-height:1.7;filter:blur(4px);user-select:none;}
.echo-sealed-note{font-family:Georgia,serif;font-size:.65rem;color:#2a2418;margin:.7rem 0 0;letter-spacing:.15em;text-transform:uppercase;}
.echo-closed-lbl{font-family:Georgia,serif;font-size:.72rem;color:#3a3028;margin:0;letter-spacing:.15em;text-transform:uppercase;}
.echo-demo-btn{background:none;border:none;color:#3a3028;font-family:Georgia,serif;font-size:.68rem;letter-spacing:.1em;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-style:italic;margin-top:1rem;padding:0;}
/* Delivered overlay */
.echo-delivered{
  position:absolute;inset:0;background:rgba(7,6,4,.97);
  display:flex;align-items:center;justify-content:center;padding:2rem;
  z-index:80;opacity:0;transition:opacity 1.2s ease;pointer-events:none;
}
.echo-delivered.show{opacity:1;pointer-events:all;}
.echo-delivered-inner{display:flex;flex-direction:column;align-items:center;gap:1.8rem;max-width:360px;text-align:center;}
.echo-delivered-lbl{font-family:Georgia,serif;font-size:.68rem;letter-spacing:.3em;color:#4a3f2f;text-transform:uppercase;margin:0 0 .7rem;}
.echo-delivered-box{border:1px solid rgba(200,146,58,.22);padding:1.8rem;background:#0f0d0a;border-radius:3px;}
.echo-delivered-msg{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.15rem;color:#e0c898;margin:0;font-style:italic;line-height:1.8;}
.echo-delivered-foot{font-family:Georgia,serif;font-size:.8rem;color:#5a4f3f;margin:0;font-style:italic;line-height:1.7;}

/* ── TODAY GLANCE CARD ── */
.today-card{
  margin:0 14px 12px;padding:14px 16px;
  background:var(--card);border:1px solid var(--border);border-radius:18px;
  box-shadow:0 4px 18px rgba(80,70,160,.06);
}
[data-theme=dark] .today-card{
  background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.09);
  box-shadow:0 4px 18px rgba(0,0,0,.28);
}
.festival-banner{
  margin:0 14px 12px;padding:12px 16px;border-radius:16px;cursor:pointer;
  align-items:center;gap:10px;
  background:linear-gradient(135deg,rgba(244,63,94,.14),rgba(245,158,11,.14));
  border:1px solid rgba(244,63,94,.18);
  transition:transform .12s;
}
.festival-banner:active{transform:scale(.98);}
.fest-emoji{font-size:18px;flex-shrink:0;}
.fest-text{flex:1;font-size:13px;font-weight:700;color:var(--dtext);}
.fest-arrow{font-size:18px;color:var(--dsub);flex-shrink:0;}
.otd-card{
  margin:0 14px 12px;padding:12px 16px;border-radius:16px;
  background:var(--card);border:1px solid var(--border);
}
[data-theme=dark] .otd-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.09);}
.otd-hdr{font-size:12px;font-weight:900;color:var(--dsub);margin-bottom:8px;letter-spacing:.2px;}
.otd-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;font-size:13px;font-weight:700;color:var(--dtext);}
.otd-sub{font-size:11px;font-weight:700;color:var(--dsub);flex-shrink:0;}
.pstats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.pstat-box{background:var(--tgbg);border-radius:14px;padding:12px;text-align:center;}
.pstat-num{font-size:20px;font-weight:900;color:var(--dtext);line-height:1.2;}
.pstat-lbl{font-size:10.5px;font-weight:700;color:var(--dsub);margin-top:2px;}
.pachv-row{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;}
.pachv-badge{flex-shrink:0;width:74px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;opacity:.35;filter:grayscale(1);}
.pachv-badge.unlocked{opacity:1;filter:none;}
.pachv-emoji{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,rgba(99,102,241,.16),rgba(139,92,246,.12));display:flex;align-items:center;justify-content:center;font-size:24px;}
.pachv-lbl{font-size:9.5px;font-weight:800;color:var(--dtext);line-height:1.25;}
.pchip{display:flex;align-items:center;gap:5px;padding:6px 12px;border-radius:20px;font-size:11px;font-weight:800;background:var(--tgbg);color:var(--dsub);}
.pchip.on{background:rgba(34,197,94,.14);color:#16a34a;}
.mlane-strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;}
.mlane-card{flex-shrink:0;width:150px;background:var(--tgbg);border-radius:14px;padding:12px;}
.mlane-year{font-size:10px;font-weight:800;color:var(--accent,#6366f1);margin-bottom:4px;}
.mlane-title{font-size:12.5px;font-weight:700;color:var(--dtext);line-height:1.35;}
#profileQR img,#profileQR canvas,#profileQR table{width:100% !important;height:100% !important;display:block;}
.undo-snackbar{
  position:fixed;left:16px;right:16px;bottom:88px;z-index:5000;
  background:#1a1a1a;color:#fff;border-radius:14px;
  padding:13px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;
  box-shadow:0 8px 28px rgba(0,0,0,.35);
  opacity:0;transform:translateY(16px);transition:opacity .22s,transform .22s;
  max-width:460px;margin:0 auto;
}
[data-theme=dark] .undo-snackbar{background:#2a2d3a;}
.undo-snackbar.show{opacity:1;transform:translateY(0);}
.undo-snackbar-msg{font-size:13px;font-weight:700;flex:1;}
.undo-snackbar-btn{
  background:none;border:none;color:var(--accent-text,#8b8bff);font-weight:900;
  font-size:13px;letter-spacing:.3px;cursor:pointer;padding:4px 6px;flex-shrink:0;
}

.today-card-hdr{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px;}
.today-card-title{font-size:15px;font-weight:900;color:var(--htext);letter-spacing:-.3px;}
[data-theme=dark] .today-card-title{color:#e8ecff;}
.today-card-date{font-size:11.5px;font-weight:700;color:var(--dsub);}
.today-card-rows{display:flex;flex-direction:column;gap:2px;}
.today-row{
  display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:12px;
  cursor:pointer;transition:background .15s;
}
.today-row:active{transform:scale(.99);}
.today-row:hover{background:var(--tgbg);}
.today-row-icon{
  width:30px;height:30px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:15px;
}
.today-row-icon.evt{background:rgba(59,130,246,.12);}
.today-row-icon.task{background:rgba(224,140,46,.12);}
.today-row-icon.habit{background:rgba(58,158,110,.12);}
.today-row-icon.cyc{background:rgba(224,62,68,.1);}
.today-row-body{flex:1;min-width:0;}
.today-row-title{font-size:12.5px;font-weight:800;color:var(--htext);}
[data-theme=dark] .today-row-title{color:#e8ecff;}
.today-row-sub{font-size:11px;font-weight:600;color:var(--dsub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}
.today-row-count{
  font-size:12px;font-weight:900;color:var(--dsub);flex-shrink:0;
  background:var(--chip,rgba(0,0,0,.05));padding:2px 9px;border-radius:999px;
}
.today-row-count.attn{background:rgba(224,62,62,.12);color:#d6453f;}
[data-theme=dark] .today-row-count.attn{background:rgba(255,100,100,.18);color:#ff9090;}
.today-row-chevron{flex-shrink:0;color:var(--dsub);opacity:.6;}

/* ── CALENDAR CARD ── */
.ccard{
  margin:0 8px 10px;
  background:transparent;
  border-radius:0;
  padding:8px 4px 8px;
  box-shadow:none;
  border:none;
  transition:background .3s,box-shadow .3s,border-color .3s;
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 8px;gap:10px;}
.nbtn{
  width:40px;height:40px;border:none;background:var(--nav-btn);cursor:pointer;
  display:flex;align-items:center;justify-content:center;border-radius:50%;
  transition:transform .2s,background .2s,box-shadow .2s;
  box-shadow:0 8px 18px rgba(114,90,200,.12),inset 0 1px 0 rgba(255,255,255,.78);
}
.nbtn:hover{background:var(--cell-hover);transform:translateY(-1px);box-shadow:0 10px 20px rgba(114,90,200,.14);}
.nbtn svg{width:18px;height:18px;stroke:var(--nav-text);stroke-width:2.4;fill:none;}
.navtxt{flex:1;text-align:center;}
.nlbl{font-size:22px;font-weight:900;color:var(--nav-text);letter-spacing:-.5px;line-height:1.05;}
.nsub{font-size:13px;font-weight:700;color:var(--nav-muted);margin-top:3px;}
.dhdrs{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:8px;padding:0 1px;}
.dhdr{text-align:center;font-size:11.5px;font-weight:800;letter-spacing:.1px;padding:2px 0;color:#9a98a8;text-transform:uppercase;}
.dhdr.wk{color:#bb6c7a;}
.cgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:9px 7px;padding:2px 1px 6px;}

/* ── MULTI-MONTH (QUARTERLY) VIEW ── */
@keyframes mmFadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.mm-nav{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 10px;gap:10px;}
.mm-nav-label{flex:1;text-align:center;font-size:14px;font-weight:900;color:var(--nav-text);letter-spacing:-.3px;}
.mm-block{margin-bottom:18px;}
.mm-month-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 2px 7px;
}
.mm-month-title{font-size:15px;font-weight:900;color:var(--cell-text);letter-spacing:-.3px;}
.mm-month-sub{font-size:11px;font-weight:700;color:var(--cell-muted);}
.mm-month-title.is-today-month{color:var(--nav-text);}
.mm-dhdrs{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:5px;padding:0 1px;}
.mm-dhdr{text-align:center;font-size:9px;font-weight:800;letter-spacing:.1px;padding:1px 0;color:#9a98a8;text-transform:uppercase;}
.mm-dhdr.wk{color:#bb6c7a;}
.mm-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px 3px;padding:0 1px 0;}
.mm-cell{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  padding:3px 1px 2px;min-height:34px;cursor:pointer;border-radius:9px;
  position:relative;transition:background .12s,transform .12s;overflow:hidden;
}
.mm-cell.active:hover{background:var(--cell-hover);transform:translateY(-1px);}
.mm-cell.hol,.mm-cell.wk{background:var(--cell-special-bg);}
.mm-cell.hol:hover,.mm-cell.wk:hover{background:var(--cell-special-hover);}
.mm-cell.dim{cursor:default;background:transparent;}
.mm-cell.dim .mm-ndate{color:var(--cell-muted);opacity:.45;}
.mm-cell.dim:hover{background:transparent;transform:none;}
.mm-cell.today{background:var(--today-grad);border-radius:9px;box-shadow:0 0 0 1px rgba(255,255,255,.14);}
.mm-cell.today .mm-ndate{color:#fff;font-weight:900;}
.mm-cell.sel{background:rgba(26,26,26,.18);border-radius:9px;}
[data-theme=dark] .mm-cell.sel{background:rgba(255,255,255,.12);}
.mm-ndate{font-size:12px;font-weight:800;color:var(--cell-text);line-height:1;letter-spacing:.05px;}
.mm-cell.hol .mm-ndate{color:#d95b68;}
.mm-cell.wk .mm-ndate{color:#c75e6f;}
.mm-dots{display:flex;gap:2px;margin-top:2px;justify-content:center;flex-wrap:wrap;max-width:100%;}
.mm-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0;}
.mm-dot.hol{background:var(--dot-hol);}
.mm-dot.evt{background:var(--dot-evt);}
.mm-dot.cyc{background:#ff9ab8;}
.mm-cell.today .mm-dot{background:rgba(255,255,255,.85);}
.mm-sep{height:1px;background:var(--border);margin:2px 0 16px;border-radius:1px;opacity:.6;}

.cal-clip{
  overflow:hidden;
  clip-path:inset(-6px 0 0 0);
  padding-top:6px;
  margin-top:-6px;
  contain:paint;
  will-change:height;
}
#cgrid{
  will-change:transform;
}

/* Expand handle pill */
.cal-expand-handle{
  display:flex;align-items:center;justify-content:center;
  padding:10px 0 4px;cursor:pointer;
  user-select:none;-webkit-user-select:none;
  -webkit-tap-highlight-color:transparent;
}
.cal-handle-pill{
  display:flex;align-items:center;gap:7px;
  padding:5px 14px 5px 11px;
  border-radius:999px;
  background:rgba(26,26,26,.10);
  border:1px solid rgba(26,26,26,.14);
  color:var(--nav-muted);
  font-size:10.5px;font-weight:800;letter-spacing:.3px;
  transition:background .22s, border-color .22s, color .22s, transform .22s, box-shadow .22s;
  box-shadow:0 2px 8px rgba(26,26,26,.06);
}
.cal-expand-handle:active .cal-handle-pill{
  background:rgba(26,26,26,.18);
  transform:scale(.96);
}
.cal-handle-pill svg{
  width:13px;height:13px;stroke:currentColor;stroke-width:2.8;fill:none;flex-shrink:0;
  transition:transform .42s cubic-bezier(.34,1.56,.64,1);
}
.cal-expanded .cal-handle-pill{
  background:rgba(26,26,26,.16);
  border-color:rgba(26,26,26,.28);
  color:var(--tf-text);
  box-shadow:0 4px 14px rgba(26,26,26,.15);
}
.cal-expanded .cal-handle-pill svg{transform:rotate(180deg);}

/* Dragging state — pill glows */
.cal-clip.dragging ~ .cal-week-indicator ~ .cal-expand-handle .cal-handle-pill,
.cal-dragging .cal-handle-pill{
  background:rgba(26,26,26,.22);
  border-color:rgba(26,26,26,.38);
  color:var(--tf-text);
  box-shadow:0 6px 20px rgba(26,26,26,.22);
}

/* Week indicator dots */
.cal-week-indicator{
  display:flex;justify-content:center;gap:5px;padding:5px 0 2px;
}
.cal-week-dot{
  height:5px;width:5px;border-radius:99px;
  background:var(--dim);
  transition:width .32s cubic-bezier(.34,1.56,.64,1), background .22s, transform .22s;
}
.cal-week-dot.active{
  background:var(--tf);
  width:5px;
  box-shadow:0 0 8px rgba(26,26,26,.4);
}
[data-theme="dark"] .cal-week-dot{
  background:rgba(255,255,255,.22);
}
[data-theme="dark"] .cal-week-dot.active{
  background:rgba(255,255,255,.88);
  box-shadow:0 0 8px rgba(200,210,255,.35);
}

/* Ripple canvas layer */
#calRippleCanvas{
  position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  opacity:0;transition:opacity .18s;z-index:0;
}
.ccard{position:relative;overflow:hidden;}
.ccard > *{position:relative;z-index:1;}

/* Cells unfurl during expansion — row rises up with a spring */
@keyframes cellReveal{
  0%  {opacity:0;transform:scale(.84) translateY(10px);}
  60% {opacity:1;transform:scale(1.03) translateY(-2px);}
  100%{opacity:1;transform:scale(1)   translateY(0);}
}
@keyframes cellFoldDown{
  0%  {opacity:1;transform:scale(1)   translateY(0);}
  40% {opacity:.6;transform:scale(.97) translateY(4px);}
  100%{opacity:0;transform:scale(.86) translateY(12px);}
}
@keyframes cellFoldUp{
  0%  {opacity:1;transform:scale(1)   translateY(0);}
  40% {opacity:.6;transform:scale(.97) translateY(-4px);}
  100%{opacity:0;transform:scale(.86) translateY(-12px);}
}
.cal-cell-anim        {animation:cellReveal .32s cubic-bezier(.34,1.3,.64,1) both;}
.cal-cell-anim-out    {animation:cellFoldDown .22s cubic-bezier(.4,0,1,1) both;}
.cal-cell-anim-out-up {animation:cellFoldUp   .22s cubic-bezier(.4,0,1,1) both;}

/* Live drag: non-active rows dim proportionally (set via JS) */
.cgrid .cell[data-row-dim]{
  transition:opacity .06s linear, filter .06s linear, transform .06s linear;
}
/* Swipe progress bar at top of card */
.cal-swipe-progress{
  position:absolute;top:0;left:0;right:0;height:2px;border-radius:0 0 2px 2px;
  background:linear-gradient(90deg,rgba(26,26,26,0) 0%,rgba(167,99,255,.9) 50%,rgba(26,26,26,0) 100%);
  transform-origin:left center;
  transform:scaleX(0);
  opacity:0;
  transition:opacity .18s;
  pointer-events:none;z-index:3;
}
.ccard.swiping .cal-swipe-progress{opacity:1;}

/* Shimmer on the calendar card while dragging */
@keyframes calShimmer{
  0%  {background-position:200% center;}
  100%{background-position:-200% center;}
}
.cal-shimmer-bar{
  position:absolute;bottom:0;left:0;right:0;height:3px;border-radius:0 0 16px 16px;
  background:linear-gradient(90deg,transparent 0%,rgba(167,99,255,.7) 40%,rgba(109,44,232,.9) 50%,rgba(167,99,255,.7) 60%,transparent 100%);
  background-size:200% auto;
  animation:calShimmer 1.2s linear infinite;
  opacity:0;transition:opacity .18s;pointer-events:none;z-index:2;
}
.cal-dragging .cal-shimmer-bar,.ccard.swiping .cal-shimmer-bar{opacity:1;}

/* Glow aura behind ccard while dragging */
.ccard::before{
  content:'';position:absolute;inset:-4px;border-radius:20px;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 80% 60% at 50% 100%,rgba(26,26,26,.22),transparent 70%);
  opacity:0;transition:opacity .28s;
}
.ccard.swiping::before,.ccard.cal-expanded::before{opacity:1;}


/* ── CELLS ── */
.cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:4px 2px 3px;min-height:58px;cursor:pointer;border-radius:17px;position:relative;transition:transform .15s,background .15s,box-shadow .15s;overflow:hidden;}
.cell.active{background:transparent;box-shadow:none;}
.cell.active:hover{background:transparent;transform:translateY(-1px);}
.cell.hol,.cell.wk{background:var(--cell-special-bg);box-shadow:0 2px 7px rgba(114,90,200,.03),inset 0 0 0 1px rgba(255,255,255,.76);}
.cell.hol:hover,.cell.wk:hover{background:var(--cell-special-hover);}
.cell.sel{background:var(--today-grad);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);}
.cell.sel:hover{transform:translateY(-1px);}
.ndate{font-size:18px;font-weight:800;color:var(--cell-text);line-height:1;letter-spacing:.1px;}
.gdate{font-size:9.5px;font-weight:700;color:var(--cell-muted);margin-top:0px;line-height:1.1;}
.cell-dots{display:none;}
.hdot{display:none;}
.evt-dot{display:none;}
.cell.hol .hdot{display:none;}
/* Main calendar inline chips */
.cell-chips{
  display:flex;flex-direction:column;gap:2px;
  width:100%;margin-top:2px;
}
.cell-chip{
  font-size:8.5px;font-weight:800;
  padding:2px 4px;border-radius:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  line-height:1.3;width:100%;box-sizing:border-box;
  letter-spacing:-.1px;
}
.cell-chip:empty{
  width:7px;height:7px;border-radius:50%;padding:0;
  flex-shrink:0;align-self:center;
}
.cell-chips:has(.cell-chip:empty){
  flex-direction:row;flex-wrap:wrap;gap:3px;align-items:center;justify-content:center;
}
.cell-chip-hol{background:var(--chip-hol-bg);color:var(--chip-hol-text);}
.cell-chip-evt{background:var(--chip-evt-bg);color:var(--chip-evt-text);}
.cell-chip-cyc{background:rgba(255,107,157,.12);color:#c44569;}
[data-theme=dark] .cell-chip-cyc{background:rgba(255,107,157,.18);color:#ff8fb3;}
.cell-chip-more{background:var(--chip-bg);color:var(--dsub);font-size:8px;}
.cell.hol .ndate{color:#d95b68;}
.cell.wk .ndate{color:#c75e6f;}
.cell.sel .ndate,.cell.sel .gdate,.cell.sel .tlbl{color:#fff;}
.cell.sel .gdate{opacity:.78;}
.cell.sel .evt-dot,.cell.sel .hdot{background:rgba(255,255,255,.92);box-shadow:none;opacity:1;}
.cell.today .cell-chip,.cell.sel .cell-chip{background:rgba(255,255,255,.18);color:rgba(255,255,255,.92);}
.cell.dim{cursor:default;background:transparent;box-shadow:none;}
.cell.dim .ndate{color:var(--cell-muted);font-weight:700;}
.cell.dim .gdate{color:var(--cell-muted);}
.cell.dim .hdot{opacity:0 !important;}
.cell.dim:hover{background:transparent !important;transform:none;}
.cell.today{background:var(--today-grad);border-radius:17px;box-shadow:0 0 0 1px rgba(255,255,255,.14),inset 0 1px 0 rgba(255,255,255,.24);}
.cell.today .ndate{color:var(--today-text);font-size:18px;font-weight:900;}
.cell.today .tlbl{display:none;}
.cell.today .gdate{color:var(--today-muted);}
.cell.today .hdot{background:rgba(255,255,255,.92);opacity:1;}
.cell.today .evt-dot{background:rgba(255,255,255,.9);box-shadow:none;}

/* ── FAB ── */
.fab{position:fixed;bottom:28px;right:max(18px,calc(50vw - 177px));width:54px;height:54px;background:var(--fab);border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 22px rgba(60,60,70,.48);z-index:10;transition:transform .2s;}
.fab:hover{transform:scale(1.08);}
.fab:active{transform:scale(.95);}
.fab svg{width:24px;height:24px;stroke:#fff;stroke-width:2.6;fill:none;}

/* ── OVERLAY ── */
.ov{position:fixed;inset:0;background:var(--ov);z-index:50;opacity:0;pointer-events:none;transition:opacity .18s,backdrop-filter .18s;background:radial-gradient(circle at top,rgba(26,26,26,.18),rgba(0,0,0,.78) 45%),var(--ov);backdrop-filter:blur(4px);}
.ov.open{opacity:1;pointer-events:all;backdrop-filter:blur(8px) saturate(.92);}

/* ── DAY MODAL ── */
.dmodal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9);width:340px;max-width:88vw;background:var(--sheet-bg);border-radius:24px;z-index:60;opacity:0;pointer-events:none;transition:opacity .26s cubic-bezier(.22,.85,.25,1),transform .26s cubic-bezier(.22,.85,.25,1);box-shadow:0 24px 60px rgba(0,0,0,.45);max-height:80vh;overflow:hidden;border:1px solid var(--sheet-border);}
.dmodal.open{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1);}
.mcls{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;background:rgba(255,255,255,.08);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;}
.mhdr-btns{position:absolute;top:14px;right:14px;display:flex;align-items:center;gap:8px;z-index:2;}
.mhdr-btns button{width:32px;height:32px;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);}
.mhdr-btns button svg{width:13px;height:13px;stroke:var(--nav-text);stroke-width:2.5;fill:none;}
.mcls svg{width:13px;height:13px;stroke:var(--nav-text);stroke-width:2.8;fill:none;}
.mhdr{padding:28px 22px 14px;text-align:left;border-bottom:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,rgba(26,26,26,.18),transparent);}
.mbignum{font-size:58px;font-weight:900;background:linear-gradient(135deg,#888,#000);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;}
.mmonth{font-size:15px;font-weight:700;color:var(--sheet-muted);margin-top:3px;}
.mbody{padding:14px 18px 18px;overflow:auto;max-height:calc(80vh - 122px);}
.mcta{display:flex;justify-content:flex-end;margin-bottom:12px;}
.maddbtn{padding:10px 16px;border:none;border-radius:18px;background:linear-gradient(135deg,#3a3a3a,#000);color:#fff;font-size:13px;font-weight:900;cursor:pointer;box-shadow:0 10px 20px rgba(0,0,0,.28);}
.mrow{display:flex;align-items:flex-start;gap:11px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.06);}
.mrow:last-child{border-bottom:none;}
.micon{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;color:#fff;}
.mlabel{font-size:11px;color:var(--sheet-muted);font-weight:800;letter-spacing:.3px;}
.mval{font-size:13.5px;color:var(--sheet-text);font-weight:700;margin-top:2px;line-height:1.4;}
.mbadges{display:flex;flex-wrap:wrap;gap:7px;padding-top:12px;}
.bdg{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:20px;font-size:11.5px;font-weight:700;line-height:1.2;}
.bdg-f{background:#eceeef;color:#1a1a1a;}
.bdg-p{background:#F4F4F4;color:#777;}
.bdg-t{background:linear-gradient(135deg,#3a3a3a,#000);color:#fff;}
.bdg-h{background:#FFF0F0;color:#c0392b;max-width:100%;}
[data-theme=dark] .bdg-f{background:#333;color:#ddd;}
[data-theme=dark] .bdg-p{background:#2a2a3a;color:#999;}
[data-theme=dark] .bdg-h{background:#3a1a1a;color:#ff8080;}

/* ── SHEET ── */
.sheet{position:fixed;bottom:0;left:50%;transform:translateX(-50%) translateY(102%);width:390px;max-width:100vw;background:var(--sbg);border-radius:24px 24px 0 0;z-index:70;transition:transform .2s cubic-bezier(.32,.72,0,1),box-shadow .2s,visibility 0s .2s;box-shadow:none;visibility:hidden;}
.sheet.open{transform:translateX(-50%) translateY(0);box-shadow:0 -8px 40px rgba(0,0,0,.2);visibility:visible;transition:transform .2s cubic-bezier(.32,.72,0,1),box-shadow .2s,visibility 0s;}
.sheet.cycle-fullscreen{left:0;right:0;top:0;bottom:0;width:100vw;max-width:none;height:100vh;border-radius:0;box-shadow:none;transform:translateY(102%) scale(.99);display:flex;flex-direction:column;background:var(--sheet-bg);}
.sheet.cycle-fullscreen.open{
  transform:translateY(0) scale(1);
  animation:cycleRise .22s cubic-bezier(.22,.85,.25,1);
}
.shandle{width:38px;height:4px;background:var(--dim);border-radius:2px;margin:11px auto 0;}
.stitle{font-size:16px;font-weight:900;color:var(--htext);padding:13px 22px 11px;border-bottom:1px solid var(--sbdr);}
.sscroll{max-height:72vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.sheet.cycle-fullscreen .shandle{display:none;}
.sheet.cycle-fullscreen .cycle-head{
  display:flex;align-items:center;gap:12px;padding:16px 16px 14px;border-bottom:1px solid var(--sheet-border);
  background:linear-gradient(135deg,rgba(255,107,157,.18),rgba(196,69,105,.08),rgba(26,26,26,.06));
  flex-shrink:0;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.sheet.cycle-fullscreen .cycle-back{
  width:38px;height:38px;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:transparent;cursor:pointer;flex-shrink:0;transition:transform .12s,opacity .12s;
}
.sheet.cycle-fullscreen .cycle-back:hover{transform:translateX(-1px);opacity:.7;}
.sheet.cycle-fullscreen .cycle-back svg{width:18px;height:18px;stroke:var(--sheet-text);stroke-width:2;fill:none;}
.sheet.cycle-fullscreen .cycle-title-wrap{min-width:0;flex:1;}
.sheet.cycle-fullscreen .cycle-title{font-size:18px;font-weight:900;color:var(--sheet-text);line-height:1.05;letter-spacing:-.2px;}
.sheet.cycle-fullscreen .cycle-sub{font-size:12px;font-weight:700;color:var(--sheet-muted);margin-top:3px;}
.sheet.cycle-fullscreen .sscroll{max-height:none;flex:1;padding-bottom:18px;}
.sheet.cycle-fullscreen .ssec:first-child{padding-top:14px;}

@keyframes cycleRise{
  0%{opacity:.1;transform:translateY(102%) scale(.992);}
  70%{opacity:1;}
  100%{transform:translateY(0) scale(1);}
}
.ssec{padding:13px 22px;}
.ssect{font-size:10px;font-weight:800;color:var(--dim);text-transform:uppercase;letter-spacing:.9px;margin-bottom:9px;}
.srow{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--sbdr);}
.srow:last-child{border-bottom:none;}
.slbl{font-size:13.5px;font-weight:700;color:var(--dtext);}
.ssub{font-size:11px;color:var(--dsub);margin-top:1px;}
.tgl{width:43px;height:23px;background:var(--tgbg);border-radius:12px;position:relative;cursor:pointer;border:none;flex-shrink:0;transition:background .25s;}
.tgl::after{content:'';width:17px;height:17px;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;transition:transform .25s;box-shadow:0 1px 4px rgba(0,0,0,.2);}
.tgl.on{background:var(--tgon);}
.tgl.on::after{transform:translateX(20px);}
.chips{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
.chip{padding:5px 12px;border-radius:16px;font-size:12px;font-weight:700;background:var(--chip);color:var(--chipt);border:none;cursor:pointer;transition:all .2s;}
.chip.on{background:var(--tgon);color:#fff;}

/* ── CONVERTER ── */
.cvcard{background:var(--tgbg);border-radius:15px;padding:15px;margin-top:6px;}
.cvtabs{display:flex;background:var(--sbg);border-radius:9px;padding:3px;gap:3px;margin-bottom:13px;}
.cvtab{flex:1;padding:7px;border:none;border-radius:7px;font-size:12px;font-weight:800;cursor:pointer;background:transparent;color:var(--dsub);font-family:'Nunito',sans-serif;transition:all .2s;}
.cvtab.on{background:var(--tgon);color:#fff;}
.cvinput{width:100%;padding:9px 12px;border-radius:9px;border:1.5px solid var(--border);background:var(--sbg);color:var(--dtext);font-size:13px;font-family:'Nunito',sans-serif;font-weight:700;outline:none;margin-bottom:7px;transition:border .2s;}
.cvinput:focus{border-color:var(--tgon);}
.cvbtn{width:100%;padding:10px;border-radius:9px;background:var(--tgon);border:none;color:#fff;font-size:13px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;margin-top:3px;}
.cvres{margin-top:9px;padding:10px 12px;background:var(--sbg);border-radius:9px;font-size:13px;font-weight:700;color:var(--tf-text);display:none;text-align:center;line-height:1.5;}
.cvres.show{display:block;}
.cvrow{display:flex;gap:6px;}
.cvrow .cvinput{flex:1;margin-bottom:7px;}

/* ── LANG ── */
.lopt{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--sbdr);cursor:pointer;}
.lopt:last-child{border-bottom:none;}
.lflag{width:34px;height:34px;border-radius:50%;background:var(--tgbg);display:flex;align-items:center;justify-content:center;font-size:18px;}
.lname{font-size:14px;font-weight:700;color:var(--dtext);}
.lnat{font-size:11px;color:var(--dsub);}
.lchk{width:20px;height:20px;border-radius:50%;background:var(--tgon);display:flex;align-items:center;justify-content:center;margin-left:auto;opacity:0;transition:opacity .2s;flex-shrink:0;}
.lchk.on{opacity:1;}
.lchk svg{width:11px;height:11px;stroke:#fff;stroke-width:3;fill:none;}

/* ── ADD EVENT ── */
.einput{width:100%;padding:11px 14px;border-radius:11px;border:1.5px solid var(--border);background:var(--tgbg);color:var(--dtext);font-size:14px;font-family:'Nunito',sans-serif;font-weight:700;outline:none;margin-bottom:9px;transition:border .2s;}
.einput:focus{border-color:var(--tgon);}
.ebtn{width:100%;padding:13px;border-radius:13px;background:linear-gradient(135deg,#3a3a3a,#000);border:none;color:#fff;font-size:15px;font-weight:900;cursor:pointer;font-family:'Nunito',sans-serif;}

@media(max-width:420px){.phone,.sheet{width:100vw;}.fab{right:18px;}}

/* ── UPCOMING PANEL — GCal style ── */
/* ── UPCOMING — redesigned ── */
.upcoming{
  margin:2px 0 12px;
  padding:0;
  background:transparent;
}

/* Header row */
.up-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 16px 14px;
}
.up-hdr-left{display:flex;flex-direction:column;gap:2px;}
.up-hdr-label{
  font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--dsub);
}
.up-hdr-title{
  font-size:22px;font-weight:900;color:var(--htext);letter-spacing:-.4px;line-height:1.1;
}
[data-theme=light] .up-hdr-title{color:#1a1a2e;}
.up-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:26px;height:26px;padding:0 8px;border-radius:999px;
  background:var(--tgbg);
  color:var(--dsub);font-size:11px;font-weight:900;
  border:1.5px solid var(--border);
  transition:background .2s,color .2s,border-color .2s;
}
.up-count.tasks-mode{
  background:rgba(99,102,241,.15);
  color:#6366f1;
  border-color:rgba(99,102,241,.3);
}
[data-theme=dark] .up-count.tasks-mode{
  background:rgba(99,102,241,.2);
  color:#a5b4fc;
  border-color:rgba(99,102,241,.35);
}

/* ── TASKS PILL (next to "Upcoming" title) ── */
.up-tasks-pill{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 12px;border-radius:13px;border:none;
  background:var(--chip-bg);color:var(--chip-text);
  font-size:11.5px;font-weight:800;cursor:pointer;
  font-family:'Nunito',sans-serif;white-space:nowrap;
  transition:transform .15s,background .15s;
}
.up-tasks-pill:hover{transform:translateY(-1px);}
.up-tasks-pill:active{transform:scale(.95);}
.up-tasks-pill svg{width:12px;height:12px;stroke:currentColor;stroke-width:2.6;fill:none;flex-shrink:0;}
.up-tasks-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:16px;height:16px;padding:0 4px;border-radius:999px;
  background:linear-gradient(135deg,#3a3a3a,#000);color:#fff;
  font-size:9.5px;font-weight:900;
}

/* ── NOTES TOOLBAR BUTTONS (shared) ── */
.notes-fmt-btn{
  width:38px;height:38px;border:none;border-radius:10px;
  background:transparent;color:var(--hsub);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;
  transition:background .15s,color .15s,transform .12s;
}
.notes-fmt-btn:hover{background:rgba(26,26,26,.08);color:var(--htext);}
.notes-fmt-btn:active{transform:scale(.88);}
[data-theme=dark] .notes-fmt-btn:hover{background:rgba(255,255,255,.08);}
.notes-fmt-btn.active-fmt{background:rgba(26,26,26,.12);color:var(--htext);}
[data-theme=dark] .notes-fmt-btn.active-fmt{background:rgba(255,255,255,.12);}
.notes-fmt-sep{width:1px;height:18px;background:var(--border);margin:0 3px;flex-shrink:0;}
.notes-clear-btn{margin-left:auto;}
.notes-save-dot{
  width:7px;height:7px;border-radius:50%;
  background:#22c55e;flex-shrink:0;margin-left:4px;
  opacity:0;transition:opacity .4s;
}
.notes-save-dot.show{opacity:1;}

/* ── NOTES TAB (list + editor) ── */
.notes-view{display:flex;flex-direction:column;}
.notes-back-btn{
  width:38px;height:38px;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:transparent;color:var(--htext);cursor:pointer;flex-shrink:0;
  transition:transform .12s,opacity .12s;
}
.notes-back-btn:hover{transform:translateX(-1px);opacity:.7;}
.notes-back-btn:active{transform:scale(.92);}
.notes-delete-btn{
  width:38px;height:38px;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(214,69,63,.12);color:#d6453f;cursor:pointer;flex-shrink:0;
  transition:transform .12s,background .12s;
}
.notes-delete-btn:hover{background:rgba(214,69,63,.2);transform:translateY(-1px);}
.notes-delete-btn:active{transform:scale(.92);}
.notes-title-input{
  flex:1;min-width:0;border:none;background:transparent;outline:none;
  font-family:'Nunito',sans-serif;font-size:18px;font-weight:900;
  color:var(--htext);letter-spacing:-.3px;line-height:1.05;padding:0 4px;
}
.notes-title-input::placeholder{color:var(--hsub);opacity:.8;}

.notes-empty{
  display:none;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;padding:64px 32px;color:var(--hsub);text-align:center;
  margin:0 14px 12px;background:var(--card);border:1px solid var(--border);
  border-radius:20px;box-shadow:0 2px 10px rgba(80,70,160,.05);
}
.notes-empty.show{display:flex;}
[data-theme=dark] .notes-empty{
  background:rgba(255,255,255,.03);
  border-color:rgba(255,255,255,.07);
  box-shadow:0 2px 10px rgba(0,0,0,.22);
}
.notes-empty svg{stroke:#6366f1;opacity:.5;}
[data-theme=dark] .notes-empty svg{stroke:#818cf8;opacity:.4;}
.notes-empty-title{font-size:17px;font-weight:900;color:var(--dtext);}
.notes-empty-sub{font-size:13px;font-weight:600;line-height:1.55;color:var(--hsub);max-width:220px;}

.notes-list-item{
  display:flex;align-items:center;gap:13px;
  background:var(--card);border:1px solid var(--border);
  border-radius:16px;padding:13px 14px;margin-bottom:8px;
  cursor:pointer;
  box-shadow:0 2px 10px rgba(80,70,160,.05);
  transition:transform .15s,box-shadow .15s,border-color .15s;
}
[data-theme=dark] .notes-list-item{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.08);
  box-shadow:0 2px 10px rgba(0,0,0,.22);
}
.notes-list-item:hover{
  border-color:rgba(99,102,241,.22);
  box-shadow:0 4px 18px rgba(99,102,241,.08);
}
[data-theme=dark] .notes-list-item:hover{
  border-color:rgba(99,102,241,.28);
  box-shadow:0 4px 14px rgba(0,0,0,.32);
}
.notes-list-item:active{transform:scale(.99);}
.notes-list-item-icon{
  width:40px;height:40px;border-radius:12px;flex-shrink:0;
  background:linear-gradient(135deg,rgba(99,102,241,.14),rgba(139,92,246,.08));
  display:flex;align-items:center;justify-content:center;
  color:#6366f1;
}
[data-theme=dark] .notes-list-item-icon{
  background:linear-gradient(135deg,rgba(99,102,241,.18),rgba(139,92,246,.10));
  color:#818cf8;
}
.notes-list-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.notes-list-item-title{
  font-size:14.5px;font-weight:900;color:var(--htext);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.notes-list-item-snippet{
  font-size:12px;font-weight:600;color:var(--hsub);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.notes-list-item-meta{font-size:10.5px;font-weight:700;color:var(--dsub);letter-spacing:.3px;}
.notes-list-item-chevron{flex-shrink:0;color:var(--dsub);}
.notes-list-item.pinned{
  border-color:rgba(99,102,241,.28);
  box-shadow:0 4px 18px rgba(99,102,241,.10);
}
[data-theme=dark] .notes-list-item.pinned{
  border-color:rgba(99,102,241,.32);
  box-shadow:0 4px 18px rgba(99,102,241,.14);
}
.notes-pin-badge{
  display:inline-flex;align-items:center;gap:3px;
  font-size:9.5px;font-weight:800;letter-spacing:.3px;
  color:#6366f1;background:rgba(99,102,241,.12);
  border-radius:6px;padding:2px 6px;margin-top:2px;
  width:fit-content;
}
[data-theme=dark] .notes-pin-badge{color:#a5b4fc;background:rgba(99,102,241,.16);}
.notes-fmt-btn.pin-active{
  color:#6366f1;background:rgba(99,102,241,.12);
}
[data-theme=dark] .notes-fmt-btn.pin-active{color:#a5b4fc;background:rgba(99,102,241,.16);}

/* Note tags */
.notes-tag-filter-row{
  display:flex;gap:6px;padding:2px 18px 12px;overflow-x:auto;flex-shrink:0;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.notes-tag-filter-row::-webkit-scrollbar{display:none;}
.notes-tag-filter-chip{
  flex-shrink:0;font-size:12px;font-weight:800;padding:6px 13px;border-radius:999px;
  background:var(--chip,rgba(0,0,0,.05));color:var(--dsub);cursor:pointer;white-space:nowrap;
  border:1.5px solid transparent;transition:background .15s,color .15s,border-color .15s;
}
.notes-tag-filter-chip.active{background:rgba(99,102,241,.14);color:#6366f1;border-color:rgba(99,102,241,.3);}
[data-theme=dark] .notes-tag-filter-chip.active{background:rgba(99,102,241,.2);color:#a5b4fc;}

.notes-tag-editor{
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;
  padding:6px 14px 10px;flex-shrink:0;border-bottom:1px solid var(--border);
}
.notes-tag-chip{
  display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;
  padding:4px 6px 4px 10px;border-radius:999px;background:rgba(99,102,241,.12);color:#6366f1;
}
[data-theme=dark] .notes-tag-chip{background:rgba(99,102,241,.18);color:#a5b4fc;}
.notes-tag-chip button{
  background:none;border:none;color:inherit;cursor:pointer;padding:2px;display:flex;
  font-size:13px;line-height:1;opacity:.65;
}
.notes-tag-chip button:hover{opacity:1;}
.notes-tag-input{
  flex:1;min-width:80px;border:none;background:none;font-size:12.5px;font-weight:700;
  color:var(--dtext);font-family:'Nunito',sans-serif;outline:none;padding:4px 2px;
}
.notes-tag-input::placeholder{color:var(--dsub);}

.notes-list-item-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:3px;}
.notes-list-item-tag{
  font-size:9.5px;font-weight:800;padding:2px 8px;border-radius:999px;
  background:rgba(99,102,241,.1);color:#6366f1;
}
[data-theme=dark] .notes-list-item-tag{background:rgba(99,102,241,.16);color:#a5b4fc;}

/* Note editor */
.notes-toolbar{
  display:flex;align-items:center;gap:2px;
  margin:12px 14px 10px;border-radius:14px;border:1px solid var(--border);background:var(--card);
  padding:6px 8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
}
.notes-toolbar::-webkit-scrollbar{display:none;}
.notes-editor{
  margin:0 14px 16px;
  min-height:50vh;
  padding:16px 18px 18px;
  font-family:'Nunito',sans-serif;
  font-size:14.5px;font-weight:600;line-height:1.72;
  color:var(--htext);
  outline:none;
  word-break:break-word;
  background:var(--card);border:1px solid var(--border);border-radius:18px;
  box-shadow:0 2px 12px rgba(80,70,160,.05);
}
[data-theme=dark] .notes-editor{
  background:rgba(255,255,255,.035);
  border-color:rgba(255,255,255,.075);
  box-shadow:0 2px 12px rgba(0,0,0,.22);
}
.notes-editor:empty::before{
  content:attr(data-placeholder);
  color:var(--hsub);
  pointer-events:none;
  font-weight:600;
  font-style:italic;
}
.notes-editor ul,.notes-editor ol{padding-left:20px;}
.notes-editor li{margin-bottom:3px;}
.notes-editor b,.notes-editor strong{font-weight:900;color:var(--htext);}

/* ── TASKS SHEET ── */
.tasks-view{display:flex;flex-direction:column;flex:1;min-height:0;}
.task-list-item{
  display:flex;align-items:center;gap:12px;
  background:var(--card);border:1px solid var(--border);
  border-radius:18px;padding:14px;margin-bottom:10px;
  cursor:pointer;box-shadow:0 4px 18px rgba(80,70,160,.06);
  transition:transform .15s,box-shadow .15s;
}
.task-swipe-wrap{position:relative;}
.task-swipe-wrap .task-list-item{margin-bottom:10px;position:relative;z-index:1;touch-action:pan-y;}
.task-swipe-bg{
  position:absolute;inset:0 0 10px 0;border-radius:18px;
  display:flex;align-items:center;pointer-events:none;overflow:hidden;
}
.tsw-label{font-size:13px;font-weight:900;color:#fff;padding:0 20px;}
.tsw-label.tsw-left{margin-right:auto;background:#22c55e;height:100%;display:flex;align-items:center;padding-left:22px;width:100%;border-radius:18px;}
.tsw-label.tsw-right{margin-left:auto;background:#ef4444;height:100%;display:flex;align-items:center;justify-content:flex-end;padding-right:22px;width:100%;border-radius:18px;}

[data-theme=dark] .task-list-item{box-shadow:0 4px 18px rgba(0,0,0,.24);}
.task-list-item:active{transform:scale(.99);}
.task-check{
  width:24px;height:24px;border-radius:50%;border:2px solid var(--border);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  background:var(--card);transition:all .2s;cursor:pointer;
}
.task-check svg{width:13px;height:13px;stroke:#fff;stroke-width:3;fill:none;opacity:0;transition:opacity .2s;}
.task-list-item.done-task .task-check,.task-done-toggle.on .task-check{
  background:linear-gradient(135deg,#16a34a,#22c55e);border-color:transparent;
}
.task-list-item.done-task .task-check svg,.task-done-toggle.on .task-check svg{opacity:1;}
.task-list-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.task-list-item-title{
  font-size:14.5px;font-weight:900;color:var(--htext);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.task-list-item.done-task .task-list-item-title{text-decoration:line-through;color:var(--hsub);}
.task-list-item-meta{font-size:11.5px;font-weight:700;color:var(--hsub);}
.task-list-item-meta.overdue{color:var(--hol);}
.task-list-item-chevron{flex-shrink:0;color:var(--dsub);}

/* Task editor fields */
.task-field-label{
  font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--hsub);margin:14px 2px 8px;
}
.task-notes-input{
  width:100%;min-height:120px;padding:14px 16px;border-radius:18px;
  border:1px solid var(--border);background:var(--card);color:var(--htext);
  font-family:'Nunito',sans-serif;font-size:14px;font-weight:600;line-height:1.65;
  outline:none;resize:vertical;box-shadow:0 4px 18px rgba(80,70,160,.06);
}
[data-theme=dark] .task-notes-input{box-shadow:0 4px 18px rgba(0,0,0,.24);}
.task-notes-input::placeholder{color:var(--hsub);opacity:.8;}
.task-done-toggle{
  display:flex;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;
  background:var(--card);border:1px solid var(--border);border-radius:18px;
  cursor:pointer;box-shadow:0 4px 18px rgba(80,70,160,.06);transition:background .15s;
}
[data-theme=dark] .task-done-toggle{box-shadow:0 4px 18px rgba(0,0,0,.24);}
.task-done-toggle-label{font-size:14px;font-weight:800;color:var(--htext);}

/* Day section */
/* ── Timeline layout ── */
.up-day-group{
  display:flex;
  padding:0 14px;
  margin-bottom:4px;
}
.up-timeline-left{
  display:flex;flex-direction:column;align-items:center;
  width:46px;flex-shrink:0;padding-top:2px;
}
.up-day-bubble{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:40px;height:46px;border-radius:12px;
  background:var(--card);border:1.5px solid var(--border);
  flex-shrink:0;
  box-shadow:0 1px 4px rgba(0,0,0,.05);
}
[data-theme=dark] .up-day-bubble{background:var(--tgbg);box-shadow:none;}
.up-day-bubble.today-bubble{
  background:var(--tgon);
  border-color:transparent;
  box-shadow:0 4px 14px rgba(0,0,0,.22);
}
.up-day-bubble-num{
  font-size:17px;font-weight:900;color:var(--dtext);line-height:1;
}
.up-day-bubble.today-bubble .up-day-bubble-num{ color:#fff; }
.up-day-bubble-dow{
  font-size:8px;font-weight:800;color:var(--dsub);letter-spacing:.5px;text-transform:uppercase;margin-top:1px;
}
.up-day-bubble.today-bubble .up-day-bubble-dow{ color:rgba(255,255,255,.7); }
.up-timeline-line{
  width:2px;flex:1;min-height:8px;
  background:var(--border);
  border-radius:1px;
  margin-top:4px;
  opacity:1;
}
[data-theme=light] .up-timeline-line{background:#dde0f0;}
.up-timeline-right{
  flex:1;min-width:0;
  padding-bottom:10px;
}
.up-day-meta-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 0 7px 10px;
}
.up-day-name{
  font-size:12px;font-weight:900;color:var(--dtext);
}
.up-day-bs{
  font-size:10.5px;font-weight:700;color:var(--dsub);
  margin-top:1px;
}
.up-day-badge{
  font-size:9.5px;font-weight:900;padding:3px 9px;border-radius:999px;white-space:nowrap;
}
.up-day-badge.today{ background:var(--tgon);color:#fff; }
.up-day-badge.tomorrow{ background:var(--tgbg);color:var(--dsub);border:1px solid var(--border); }

/* Cards — slim rows */
.up-item{
  display:flex;align-items:center;
  background:var(--card);
  border-radius:12px;
  margin:0 0 5px 10px;
  transition:opacity .13s;
  border:1px solid var(--border);
  overflow:hidden;
  padding:8px 8px 8px 11px;
  gap:6px;
  box-shadow:0 1px 4px rgba(0,0,0,.04);
}
[data-theme=dark] .up-item{background:var(--tgbg);box-shadow:none;}
.up-item-accent{ display:none; }
.up-item-inner{ display:contents; }
.up-icon{
  width:32px;height:32px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  font-size:15px;flex-shrink:0;
}
.up-icon.hol{ background:rgba(255,71,87,.13);color:#FF4757; }
.up-icon.evt{ background:rgba(99,102,241,.13);color:#6366f1; }
.up-icon.cyc{ background:rgba(236,72,153,.13);color:#ec4899; }
[data-theme=dark] .up-icon.hol{ background:rgba(255,71,87,.18); }
[data-theme=dark] .up-icon.evt{ background:rgba(99,102,241,.18); }
[data-theme=dark] .up-icon.cyc{ background:rgba(236,72,153,.18); }
.up-info{ flex:1;min-width:0; }
.up-name{
  font-size:13px;font-weight:800;color:var(--dtext);
  line-height:1.25;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.up-tag-row{ display:flex;align-items:center;gap:5px;margin-top:2px; }
.up-tag{
  font-size:9px;font-weight:900;padding:2px 7px;border-radius:999px;
  white-space:nowrap;letter-spacing:.3px;text-transform:uppercase;
}
.up-tag.hol{ background:rgba(255,71,87,.1);color:#FF4757; }
.up-tag.evt{ background:rgba(99,102,241,.1);color:#6366f1; }
.up-tag.cyc{ background:rgba(236,72,153,.1);color:#ec4899; }
[data-theme=dark] .up-tag.hol{ background:rgba(255,71,87,.2);color:#ff7880; }
[data-theme=dark] .up-tag.evt{ background:rgba(99,102,241,.2);color:#a5b4fc; }
[data-theme=dark] .up-tag.cyc{ background:rgba(236,72,153,.2);color:#f9a8d4; }
.up-sub-pill{
  font-size:10.5px;font-weight:700;color:var(--dsub);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.up-chev{
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:var(--dsub);opacity:.5;
}
.up-chev svg{ width:13px;height:13px;stroke:currentColor;stroke-width:2.5;fill:none; }
.up-remove{
  font-size:11px;color:var(--dsub);cursor:pointer;font-weight:700;
  padding:4px 2px;opacity:.5;
  transition:opacity .15s,color .15s;
}
.up-remove:hover{ color:#FF4757;opacity:1; }
.up-item-body{
  display:flex;align-items:center;gap:10px;
  flex:1;min-width:0;cursor:pointer;
}
.up-remove-btn{
  flex-shrink:0;
  width:22px;height:22px;
  border-radius:50%;
  border:none;
  background:rgba(239,68,68,.1);
  color:#ef4444;
  font-size:10px;font-weight:900;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s,transform .12s;
  font-family:'Nunito',sans-serif;
  line-height:1;
}
.up-remove-btn:active{ background:rgba(239,68,68,.25);transform:scale(.9); }
.up-empty{text-align:center;padding:36px 0 24px;color:var(--sheet-muted);}

/* ── Up view toggle (List / Month) ── */
.up-view-toggle{
  display:inline-flex;align-items:center;
  background:var(--tgbg);border-radius:10px;padding:3px;gap:2px;
}
.up-vtbtn{
  display:inline-flex;align-items:center;gap:4px;
  padding:4px 9px;border:none;border-radius:7px;
  font-family:'Nunito',sans-serif;font-size:11px;font-weight:800;
  color:var(--dsub);background:transparent;cursor:pointer;
  transition:background .18s,color .18s,box-shadow .18s;
  white-space:nowrap;
}
.up-vtbtn.on{
  background:var(--card);color:var(--htext);
  box-shadow:0 2px 8px rgba(0,0,0,.12);
}
[data-theme=dark] .up-vtbtn.on{
  background:rgba(255,255,255,.1);
  box-shadow:0 2px 8px rgba(0,0,0,.3);
}
[data-theme=dark] .mv-chip-hol{
  background:var(--chip-hol-bg);color:var(--chip-hol-text);
}
[data-theme=dark] .mv-chip-evt{
  background:var(--chip-evt-bg);color:var(--chip-evt-text);
}
[data-theme=dark] .mv-chip-cyc{
  background:rgba(156,163,175,.12);color:var(--dsub);
}
[data-theme=dark] .mv-chip-more{
  background:rgba(255,255,255,.07);color:var(--dsub);
}

/* ── Month view grid ── */
.mv-wrap{ padding:0 10px 10px; }
.mv-cal{
  background:var(--panel-bg);
  border:1px solid var(--panel-border);
  border-radius:18px;
  overflow:hidden;
  margin-bottom:12px;
  box-shadow:var(--panel-shadow);
}
.mv-cal-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 10px 10px;gap:4px;
}
.mv-nav-btn{
  width:32px;height:32px;border-radius:10px;border:none;
  background:var(--tgbg);cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  color:var(--dtext);transition:background .15s,transform .1s;
}
.mv-nav-btn:active{ background:var(--chip); transform:scale(.9); }
.mv-cal-title{
  font-size:14px;font-weight:900;color:var(--panel-text);letter-spacing:-.2px;
}
.mv-cal-sub{
  font-size:11px;font-weight:700;color:var(--panel-muted);margin-top:1px;
}
.mv-dhdrs{
  display:grid;grid-template-columns:repeat(7,1fr);
  padding:0 8px 4px;
  border-bottom:1px solid var(--panel-border);
}
.mv-dhdr{
  text-align:center;font-size:9.5px;font-weight:800;
  color:var(--dsub);letter-spacing:.4px;text-transform:uppercase;
  padding:0 0 6px;
}
.mv-grid{
  display:grid;grid-template-columns:repeat(7,1fr);
  padding:6px 6px 10px;gap:3px 2px;
}
.mv-cell{
  display:flex;flex-direction:column;align-items:flex-start;
  padding:4px 3px 5px;cursor:pointer;border-radius:8px;
  transition:background .12s;position:relative;
  min-height:52px;overflow:hidden;
}
.mv-cell:active{ background:rgba(0,0,0,.06); }
[data-theme=dark] .mv-cell:active{ background:rgba(255,255,255,.06); }
.mv-cell.dim .mv-dnum{ color:var(--dsub);opacity:.4; }
.mv-dnum{
  font-size:12px;font-weight:900;color:var(--dtext);line-height:1;
  margin-bottom:3px;padding-left:1px;
}
.mv-cell.today-cell .mv-dnum{
  background:linear-gradient(135deg,#5a5a68,#2e2e38);
  color:#fff;width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;margin-bottom:3px;padding-left:0;
}
.mv-cell.selected-cell .mv-dnum{
  background:linear-gradient(135deg,#3b82f6,#2563eb);
  color:#fff;width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;margin-bottom:3px;padding-left:0;
}
.mv-chips{
  display:flex;flex-direction:column;gap:2px;width:100%;margin-top:2px;
}
.mv-chip{
  font-size:9px;font-weight:800;
  padding:2px 4px;border-radius:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  line-height:1.3;width:100%;box-sizing:border-box;
  letter-spacing:-.1px;
}
.mv-chip-hol{
  background:var(--chip-hol-bg);color:var(--chip-hol-text);
}
.mv-chip-evt{
  background:var(--chip-evt-bg);color:var(--chip-evt-text);
}
.mv-chip-cyc{
  background:rgba(156,163,175,.15);color:var(--dsub);
}
.mv-chip-more{
  background:var(--chip-bg);color:var(--dsub);
  font-size:8.5px;
}

/* Month view event list */
.mv-list-hdr{
  font-size:11px;font-weight:900;letter-spacing:1px;text-transform:uppercase;
  color:var(--dsub);padding:4px 6px 8px;
}
.mv-day-group{ margin-bottom:6px; }
.mv-day-label{
  font-size:11px;font-weight:900;color:var(--dsub);
  letter-spacing:.3px;text-transform:uppercase;
  padding:6px 4px 4px;
}
.mv-empty{
  text-align:center;padding:28px 0 18px;color:var(--sheet-muted);
  font-size:13px;font-weight:600;
}

/* ── Notes/Tasks segment toggle ── */
/* ── Notes segment toggle — refined pill bar ── */
.nt-seg-toggle{
  display:flex;align-items:center;gap:6px;
  padding:0;background:none;
}
.nt-seg-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 16px;border:1.5px solid transparent;border-radius:999px;
  font-family:'Nunito',sans-serif;font-size:12.5px;font-weight:800;
  color:var(--dsub);background:transparent;cursor:pointer;
  transition:background .18s,color .18s,border-color .18s,box-shadow .18s;
  white-space:nowrap;letter-spacing:.2px;
}
.nt-seg-btn:hover{
  color:var(--htext);
  background:rgba(99,102,241,.07);
  border-color:rgba(99,102,241,.18);
}
.nt-seg-btn.on{
  background:rgba(99,102,241,.12);
  color:#6366f1;
  border-color:rgba(99,102,241,.3);
  box-shadow:0 2px 10px rgba(99,102,241,.14);
}
[data-theme=dark] .nt-seg-btn.on{
  background:rgba(99,102,241,.18);
  color:#a5b4fc;
  border-color:rgba(99,102,241,.35);
  box-shadow:0 2px 12px rgba(99,102,241,.22);
}
/* ── NEW NOTES HEADER ── */
/* ── Tasks hero header ── */
.nt-tasks-hero{
  margin:12px 14px 10px;
  border-radius:20px;
  overflow:hidden;
  position:relative;
  background:linear-gradient(145deg,rgba(16,185,129,.15),rgba(5,150,105,.1));
  border:1.5px solid rgba(16,185,129,.22);
}
[data-theme=light] .nt-tasks-hero{
  background:linear-gradient(145deg,rgba(16,185,129,.09),rgba(5,150,105,.06));
  border-color:rgba(16,185,129,.16);
}
.nt-tasks-hero-orb{
  position:absolute;border-radius:50%;pointer-events:none;filter:blur(28px);
}
.nt-tasks-hero-orb.o1{
  width:80px;height:80px;
  background:rgba(16,185,129,.3);
  top:-25px;right:-15px;
}
.nt-tasks-hero-orb.o2{
  width:50px;height:50px;
  background:rgba(6,182,212,.2);
  bottom:-15px;left:25px;
}
.nt-tasks-hero-inner{
  position:relative;z-index:1;
  display:flex;align-items:center;gap:12px;
  padding:15px 14px 15px 16px;
}
.nt-tasks-hero-icon{
  width:40px;height:40px;border-radius:12px;
  background:linear-gradient(135deg,#10b981,#059669);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:#fff;
  box-shadow:0 4px 14px rgba(16,185,129,.4);
}
.nt-tasks-hero-text{ flex:1;min-width:0; }
.nt-tasks-hero-title{
  font-size:18px;font-weight:900;letter-spacing:-.35px;
  color:var(--htext);line-height:1.1;
}
.nt-tasks-hero-sub{
  font-size:11px;font-weight:700;color:var(--dsub);margin-top:2px;
}
.nt-tasks-hero-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:9px 15px;border:none;border-radius:10px;
  background:linear-gradient(135deg,#10b981,#059669);
  color:#fff;font-family:'Nunito',sans-serif;
  font-size:12.5px;font-weight:800;
  cursor:pointer;flex-shrink:0;
  box-shadow:0 3px 12px rgba(16,185,129,.38);
  transition:transform .13s,box-shadow .13s;
}
.nt-tasks-hero-btn:active{transform:scale(.94);box-shadow:0 1px 6px rgba(16,185,129,.28);}

/* ── Notes hero header — editorial minimal ── */
.nt-hero{
  margin:10px 14px 0;
  border-radius:22px;
  overflow:hidden;
  position:relative;
  background:var(--card);
  border:1px solid var(--border);
  box-shadow:0 2px 12px rgba(80,70,160,.06);
}
[data-theme=light] .nt-hero{
  background:linear-gradient(160deg,#fafaff 0%,#f4f3fc 100%);
  border-color:rgba(99,102,241,.14);
  box-shadow:0 2px 16px rgba(99,102,241,.08);
}
[data-theme=dark] .nt-hero{
  background:linear-gradient(160deg,rgba(26,28,44,.98) 0%,rgba(18,20,34,.98) 100%);
  border-color:rgba(99,102,241,.18);
  box-shadow:0 2px 16px rgba(0,0,20,.32);
}
.nt-hero-orb{display:none;}
.nt-orb1{display:none;}
.nt-orb2{display:none;}
.nt-hero-inner{
  position:relative;z-index:1;
  display:flex;align-items:center;
  gap:14px;
  padding:18px 16px 14px 18px;
}
.nt-hero-icon-wrap{
  width:44px;height:44px;border-radius:14px;
  background:linear-gradient(135deg,#6366f1 0%,#818cf8 100%);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:#fff;
  box-shadow:0 4px 14px rgba(99,102,241,.38);
}
[data-theme=light] .nt-hero-icon-wrap{
  box-shadow:0 4px 14px rgba(99,102,241,.28);
}
.nt-hero-text{ flex:1;min-width:0; }
.nt-hero-title{
  font-size:20px;font-weight:900;letter-spacing:-.45px;
  color:var(--htext);line-height:1.05;
}
.nt-hero-sub{
  font-size:11.5px;font-weight:700;
  color:var(--dsub);margin-top:3px;
  letter-spacing:.1px;
}
[data-theme=light] .nt-hero-title{color:#1a1a2e;}
[data-theme=light] .nt-hero-sub{color:#6d6f83;}
.nt-hero-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 16px;
  border:none;border-radius:11px;
  background:linear-gradient(135deg,#6366f1 0%,#818cf8 100%);
  color:#fff;
  font-family:'Nunito',sans-serif;font-size:12.5px;font-weight:900;
  cursor:pointer;flex-shrink:0;
  box-shadow:0 3px 12px rgba(99,102,241,.38);
  transition:transform .13s,box-shadow .13s,opacity .13s;
  letter-spacing:.1px;
}
.nt-hero-btn:hover{opacity:.88;}
.nt-hero-btn:active{transform:scale(.94);box-shadow:0 1px 6px rgba(99,102,241,.28);}

/* Accent line under hero */
.nt-hero::after{
  content:'';
  display:block;
  height:2px;
  background:linear-gradient(90deg,#6366f1,#a78bfa,transparent);
  opacity:.5;
}
[data-theme=dark] .nt-hero::after{opacity:.35;}

/* Tabs section under hero — integrated */
.nt-hero-tabs{
  padding:0 18px 14px;
  display:flex;
  align-items:center;
  gap:0;
}

.nt-task-count{
  display:inline-flex;align-items:center;justify-content:center;
  background:#ff4757;color:#fff;
  font-size:10px;font-weight:900;line-height:1;
  min-width:16px;height:16px;border-radius:8px;padding:0 4px;
}
.up-empty-ico{font-size:34px;display:block;margin-bottom:8px;}
.up-empty-txt{font-size:13px;font-weight:600;line-height:1.5;}

/* ══════════════════════════════════════════
   NOTES REDESIGN — ntr-* classes
   ══════════════════════════════════════════ */

/* Header row — matches .up-hdr style */
.ntr-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 16px 14px;
  margin:0;
  background:transparent;
  border:none;
  box-shadow:none;
  border-radius:0;
  position:static;
  overflow:visible;
}
.ntr-header::before{ display:none; }
[data-theme=light] .ntr-header,[data-theme=dark] .ntr-header{
  background:transparent;border:none;box-shadow:none;
}
.ntr-header-left{
  display:flex;flex-direction:column;gap:2px;
}
.ntr-quill-icon{ display:none; }
.ntr-header-title{
  font-size:22px;font-weight:900;color:var(--htext);letter-spacing:-.4px;line-height:1.1;
}
[data-theme=light] .ntr-header-title{ color:#1a1a2e; }
[data-theme=dark] .ntr-header-title{ color:var(--htext); }
.ntr-header-sub{
  font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--dsub);margin-top:0;order:-1;
}

/* New note button */
.ntr-add-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:8px 14px;border:none;border-radius:10px;
  background:rgba(99,102,241,.12);
  color:#6366f1;
  font-family:'Nunito',sans-serif;font-size:12.5px;font-weight:900;
  cursor:pointer;flex-shrink:0;
  border:1.5px solid rgba(99,102,241,.22);
  transition:background .14s,transform .12s,box-shadow .14s;
  letter-spacing:.1px;
}
[data-theme=dark] .ntr-add-btn{
  background:rgba(99,102,241,.18);
  color:#a5b4fc;
  border-color:rgba(99,102,241,.3);
}
.ntr-add-btn:hover{
  background:rgba(99,102,241,.2);
  box-shadow:0 2px 10px rgba(99,102,241,.2);
}
.ntr-add-btn:active{ transform:scale(.93); }

/* List wrapper */
.ntr-list-wrap{
  padding:0 16px;
  display:flex;flex-direction:column;gap:0;
}

/* Note card — slim horizontal layout */
.notes-list-item{
  display:flex;align-items:center;gap:12px;
  background:transparent;
  border:none;border-radius:0;
  border-bottom:1px solid var(--border);
  padding:12px 2px;
  margin-bottom:0;
  cursor:pointer;
  box-shadow:none;
  transition:background .13s,transform .12s;
}
.notes-list-item:last-child{ border-bottom:none; }
[data-theme=dark] .notes-list-item{
  background:transparent;border-color:rgba(255,255,255,.07);box-shadow:none;
}
.notes-list-item:hover{ background:rgba(99,102,241,.04); border-radius:12px; }
[data-theme=dark] .notes-list-item:hover{ background:rgba(99,102,241,.06); }
.notes-list-item:active{ transform:scale(.985); }

/* Colored left dot replaces the icon */
.notes-list-item-icon{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
  background:#6366f1;
  margin-left:4px;
  display:flex;align-items:center;justify-content:center;
  color:transparent;font-size:0;/* hide the SVG inside */
}
[data-theme=dark] .notes-list-item-icon{ background:#818cf8; }
.notes-list-item.pinned .notes-list-item-icon{ background:#f59e0b; }
[data-theme=dark] .notes-list-item.pinned .notes-list-item-icon{ background:#fbbf24; }

/* Hide SVG inside the dot icon (existing JS injects it) */
.notes-list-item-icon svg{ display:none; }

.notes-list-item-body{ flex:1;min-width:0;display:flex;flex-direction:column;gap:2px; }
.notes-list-item-title{
  font-size:13.5px;font-weight:800;color:var(--htext);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.notes-list-item-snippet{
  font-size:11.5px;font-weight:600;color:var(--hsub);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.notes-list-item-meta{
  font-size:10px;font-weight:700;color:var(--dsub);letter-spacing:.3px;margin-top:1px;
}
.notes-list-item-chevron{ flex-shrink:0;color:var(--dimsub); }
.notes-list-item.pinned .notes-list-item-title{ color:#d97706; }
[data-theme=dark] .notes-list-item.pinned .notes-list-item-title{ color:#fcd34d; }
.notes-pin-badge{
  display:inline-flex;align-items:center;gap:3px;
  font-size:9px;font-weight:800;letter-spacing:.3px;
  color:#d97706;background:rgba(245,158,11,.12);
  border-radius:5px;padding:2px 5px;margin-top:2px;width:fit-content;
}
[data-theme=dark] .notes-pin-badge{ color:#fcd34d;background:rgba(251,191,36,.14); }

/* Empty state */
.ntr-empty{
  display:none;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;padding:52px 32px 44px;text-align:center;
  margin:0 14px 12px;
  background:transparent;
  border:1.5px dashed var(--border);
  border-radius:18px;
}
.ntr-empty.show{ display:flex; }
[data-theme=dark] .ntr-empty{ border-color:rgba(255,255,255,.09); }
.ntr-empty-ring{
  width:58px;height:58px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(99,102,241,.08);
  border:1.5px solid rgba(99,102,241,.18);
  color:#6366f1;
}
[data-theme=dark] .ntr-empty-ring{
  background:rgba(99,102,241,.12);
  border-color:rgba(99,102,241,.25);
  color:#a5b4fc;
}
.notes-empty-title{ font-size:15px;font-weight:900;color:var(--dtext); }
.notes-empty-sub{ font-size:12.5px;font-weight:600;line-height:1.6;color:var(--hsub);max-width:220px; }
.notes-empty-sub strong{ color:var(--htext);font-weight:900; }

/* Editor wrapper */
.ntr-editor-wrap{ display:flex;flex-direction:column; }

/* Editor top bar */
.ntr-editor-bar{
  display:flex;align-items:center;gap:8px;
  padding:12px 14px 10px;
  border-bottom:1px solid var(--border);
  background:var(--card);
  position:sticky;top:0;z-index:10;
}
[data-theme=dark] .ntr-editor-bar{ background:var(--card);border-color:rgba(255,255,255,.07); }
.ntr-back-btn{
  width:34px;height:34px;border:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:transparent;color:var(--htext);cursor:pointer;flex-shrink:0;
  transition:transform .12s,opacity .12s;
}
[data-theme=dark] .ntr-back-btn{ background:transparent;color:var(--htext); }
.ntr-back-btn:hover{ transform:translateX(-1px);opacity:.7; }
.ntr-back-btn:active{ transform:scale(.9); }
.ntr-title-input{
  flex:1;min-width:0;border:none;background:transparent;outline:none;
  font-family:'Nunito',sans-serif;font-size:17px;font-weight:900;
  color:var(--htext);letter-spacing:-.3px;line-height:1;padding:0 2px;
}
.ntr-title-input::placeholder{ color:var(--dsub);opacity:.8; }
.ntr-del-btn{
  width:32px;height:32px;border:none;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(214,69,63,.1);color:#d6453f;cursor:pointer;flex-shrink:0;
  transition:background .12s,transform .12s;
}
.ntr-del-btn:hover{ background:rgba(214,69,63,.18); }
.ntr-del-btn:active{ transform:scale(.9); }

/* Toolbar */
.ntr-toolbar{
  margin:10px 14px 8px;border-radius:12px;
  border:1px solid var(--border);background:var(--card);
  padding:5px 7px;
}

/* Editor canvas */
.ntr-editor{
  margin:0 14px 16px;
  min-height:46vh;
  padding:16px 18px 20px;
  font-family:'Nunito',sans-serif;
  font-size:14.5px;font-weight:600;line-height:1.75;
  color:var(--htext);outline:none;word-break:break-word;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:16px;
}
[data-theme=dark] .ntr-editor{
  background:rgba(255,255,255,.03);
  border-color:rgba(255,255,255,.07);
}
.ntr-editor:empty::before{
  content:attr(data-placeholder);
  color:var(--dsub);pointer-events:none;font-weight:600;font-style:italic;
}
.ntr-editor ul,.ntr-editor ol{ padding-left:20px; }
.ntr-editor li{ margin-bottom:3px; }
.ntr-editor b,.ntr-editor strong{ font-weight:900;color:var(--htext); }

/* ══════════════════════════════════════════ */

/* ── Notes View — indigo-tinted background ── */
#notesView{
  background:radial-gradient(ellipse 70% 28% at 50% 0%,rgba(99,102,241,.06),transparent 55%),var(--app-bg);
}
[data-theme="dark"] #notesView{
  background:
    radial-gradient(ellipse 70% 28% at 50% 0%, rgba(99,102,241,.08), transparent 55%),
    linear-gradient(180deg,#0d0f16 0%,#111320 50%,#0d0f16 100%);
}
/* ── SETTINGS TAB VIEW ── */
/* ══ SETTINGS VIEW — redesigned ══ */
#settingsView{
  display:none;
  flex-direction:column;
  position:fixed;
  top:0;left:50%;transform:translateX(-50%);
  width:390px;max-width:100vw;
  bottom:62px;
  overflow:hidden;
  z-index:50;
  background:var(--sv-bg,var(--app-bg));
}
[data-theme="dark"] #settingsView{
  --sv-bg:linear-gradient(160deg,#0b0d14 0%,#0f1120 55%,#0b0d14 100%);
  background:var(--sv-bg);
}
#settingsView.active{ display:flex; }

/* Header */
.sv-header{
  display:flex;align-items:center;gap:10px;
  padding:16px 16px 14px;
  flex-shrink:0;
  position:sticky;top:0;z-index:10;
  align-self:stretch;
  background:rgba(236,238,248,.92);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(0,0,0,.07);
}
[data-theme="dark"] .sv-header{
  background:rgba(11,13,20,.92);
  border-bottom-color:rgba(255,255,255,.07);
}
.sv-back-btn{
  width:32px;height:32px;border:none;border-radius:0;
  background:transparent;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;transition:opacity .18s;
}
[data-theme="dark"] .sv-back-btn{ background:transparent; }
.sv-back-btn:hover{ background:transparent;opacity:.6; }
[data-theme="dark"] .sv-back-btn:hover{ background:transparent;opacity:.6; }
.sv-header-title{
  font-size:17px;font-weight:900;color:var(--htext);letter-spacing:-.25px;
  flex:1;
}
.sv-header-icon{
  width:32px;height:32px;border-radius:10px;
  background:linear-gradient(135deg,#1a1a1a,#3a3a3a);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  box-shadow:0 3px 10px rgba(0,0,0,.2);
}
[data-theme="dark"] .sv-header-icon{
  background:linear-gradient(135deg,#3a3d58,#252840);
  box-shadow:0 3px 12px rgba(0,0,0,.38);
}

/* Body */
.sv-body{
  flex:1;
  min-height:0;
  overflow-y:scroll;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding:16px 14px 32px;
  display:block;
  height:0; /* forces flex child to respect flex:1 and scroll instead of expanding */
}
.sv-body > .sv-group,
.sv-body > .sv-group-label{
  display:block;
}
.sv-group-label + .sv-group,
.sv-body > .sv-group-label{
  margin-top:6px;
}
.sv-body > .sv-group{
  margin-bottom:2px;
}

/* Section group card */
.sv-group{
  background:rgba(255,255,255,.82);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 2px 12px rgba(0,0,0,.06),0 1px 3px rgba(0,0,0,.04);
  border:1px solid rgba(0,0,0,.05);
}
[data-theme="dark"] .sv-group{
  background:rgba(255,255,255,.038);
  border-color:rgba(255,255,255,.07);
  box-shadow:0 2px 14px rgba(0,0,0,.28);
}

/* Section label */
.sv-group-label{
  font-size:10.5px;font-weight:800;
  color:var(--dsub);
  text-transform:uppercase;letter-spacing:.9px;
  padding:0 16px;
  margin:14px 0 6px;
  display:block;
}
.sv-body > .sv-group-label:first-child{
  margin-top:0;
}

/* Row inside a group */
.sv-row{
  display:flex;align-items:center;
  padding:12px 16px;
  border-bottom:1px solid rgba(0,0,0,.055);
  gap:12px;
  transition:background .15s;
  text-decoration:none;
  color:inherit;
  -webkit-tap-highlight-color:transparent;
}
[data-theme="dark"] .sv-row{
  border-bottom-color:rgba(255,255,255,.065);
}
.sv-row:last-child{ border-bottom:none; }
.sv-row:active{ background:rgba(0,0,0,.04); }
[data-theme="dark"] .sv-row:active{ background:rgba(255,255,255,.05); }
.sv-row > .tgl,
.sv-row > .sv-version-badge,
.sv-row > svg{ margin-left:auto; flex-shrink:0; }
.sv-row > .sv-chips{ margin-left:auto; flex-shrink:0; }

/* Row icon badge */
.sv-icon{
  width:32px;height:32px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;
  transition:background .28s;
}

/* Row text block */
.sv-row-text{ flex:1;min-width:0; }
.sv-lbl{
  font-size:13.5px;font-weight:700;
  color:var(--dtext);line-height:1.2;
}
.sv-sub{
  font-size:11px;font-weight:600;
  color:var(--dsub);margin-top:2px;line-height:1.35;
}

/* Row right-side controls */
.sv-row-right{ display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto; }

/* First day of week special block */
.sv-fdow{
  padding:12px 16px 14px;
  border-bottom:1px solid rgba(0,0,0,.055);
}
[data-theme="dark"] .sv-fdow{
  border-bottom-color:rgba(255,255,255,.065);
}

/* Version badge */
.sv-version-badge{
  font-size:11.5px;font-weight:800;
  color:var(--dsub);
  background:rgba(0,0,0,.06);
  padding:3px 8px;border-radius:20px;
  letter-spacing:.2px;
}
[data-theme="dark"] .sv-version-badge{
  background:rgba(255,255,255,.09);
}

/* Chevron for tappable rows */
.sv-chevron{ opacity:.35; flex-shrink:0; }

/* Lang chips inside settings */
.sv-chips{ display:flex;gap:5px; }
.sv-chip{
  padding:4px 11px;border-radius:14px;
  font-size:11.5px;font-weight:800;
  background:rgba(0,0,0,.07);
  color:var(--dsub);
  border:none;cursor:pointer;
  transition:all .18s;
  font-family:'Nunito',sans-serif;
}
[data-theme="dark"] .sv-chip{ background:rgba(255,255,255,.1); }
.sv-chip.on{
  background:var(--tgon);color:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.22);
}

/* About section app icon */
.sv-app-icon{
  width:40px;height:40px;border-radius:11px;
  background:linear-gradient(135deg,#1a1a1a,#000);
  display:flex;align-items:center;justify-content:center;
  font-size:20px;flex-shrink:0;
  box-shadow:0 4px 14px rgba(0,0,0,.25);
}
[data-theme="dark"] .sv-app-icon{
  background:linear-gradient(135deg,#3a3d58,#1e2038);
}
.sel-card{display:none;}
.sel-empty{display:none;}
.up-tabs{display:none;}
.up-badge{display:none;}
.up-chip{display:none;}
.up-day{display:none;}
.up-mon{display:none;}

/* ── MONTH PICKER ── */
.mth-btn{cursor:pointer;border-radius:8px;padding:2px 4px 2px 2px;transition:background .2s;display:inline-flex;align-items:center;gap:2px;}
.mth-btn:hover{background:rgba(60,60,70,.1);}
.mp-yr{display:flex;align-items:center;justify-content:space-between;padding:10px 20px 14px;border-bottom:1px solid var(--sbdr);}
.mp-yr-lbl{font-size:18px;font-weight:900;color:var(--htext);}
.mp-arr{width:34px;height:34px;border:none;background:var(--tgbg);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;}
.mp-arr:hover{background:rgba(60,60,70,.15);}
.mp-arr svg{width:16px;height:16px;stroke:var(--icon);stroke-width:2.5;fill:none;}
.mp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:16px 16px 30px;}
.mp-cell{padding:14px 4px;border-radius:14px;border:2px solid transparent;background:var(--tgbg);cursor:pointer;font-size:13px;font-weight:800;color:var(--dtext);font-family:'Nunito','Noto Sans Devanagari',sans-serif;transition:all .2s;text-align:center;line-height:1.2;}
.mp-cell:hover{background:rgba(60,60,70,.12);color:var(--tf-text);}
.mp-cell.is-view{background:linear-gradient(135deg,#1a1a1a,#000000);color:#fff;box-shadow:0 4px 14px rgba(60,60,70,.4);border-color:transparent;}
.mp-cell.is-today{border-color:var(--tf-text);color:var(--tf-text);}
.mp-cell.is-view.is-today{border-color:rgba(255,255,255,.5);color:#fff;}

/* ── GOOGLE CALENDAR SYNC ── */
.gcal-wrap{margin-top:0;display:flex;flex-direction:column;gap:10px;}
.gcal-block{background:var(--tgbg);border-radius:14px;padding:14px;}
.gcal-block-title{font-size:12px;font-weight:800;color:var(--dtext);margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.gcal-block-sub{font-size:11px;color:var(--dsub);font-weight:600;margin-bottom:10px;line-height:1.5;}
.gcal-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:10px;border-radius:11px;border:none;font-size:13px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;transition:opacity .2s;}
.gcal-btn:hover{opacity:.88;}
.gcal-btn.primary{background:linear-gradient(135deg,#1a1a1a,#000000);color:#fff;}
.gcal-btn.google{background:#fff;color:#444;border:1.5px solid #ddd;box-shadow:0 1px 6px rgba(0,0,0,.08);}
[data-theme=dark] .gcal-btn.google{background:#2a2a3e;color:#ddd;border-color:#3a3a55;}
.gcal-btn.danger{background:#fff0f0;color:#c0392b;}
[data-theme=dark] .gcal-btn.danger{background:#3a1a1a;color:#ff8080;}
.gcal-status{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;background:var(--tgbg);font-size:12px;font-weight:700;color:var(--dtext);}
.gcal-status.ok{background:rgba(76,175,80,.1);color:#2e7d32;}
[data-theme=dark] .gcal-status.ok{background:rgba(76,175,80,.15);color:#66bb6a;}
.gcal-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.gcal-dot.green{background:#4CAF50;} .gcal-dot.grey{background:#aaa;}
.gcal-input{width:100%;padding:9px 12px;border-radius:10px;border:1.5px solid var(--border);background:var(--sbg);color:var(--dtext);font-size:12px;font-family:'Nunito',sans-serif;font-weight:600;outline:none;margin-bottom:8px;}
.gcal-input:focus{border-color:var(--tgon);}
.gcal-hint{font-size:10.5px;color:var(--dsub);font-weight:600;line-height:1.5;margin-bottom:8px;}
.gcal-hint a{color:var(--tf-text);text-decoration:none;}
.gcal-row{display:flex;gap:7px;}
.gcal-row .gcal-btn{flex:1;}
.gcal-progress{font-size:11px;color:var(--tf-text);font-weight:700;text-align:center;padding:6px 0;display:none;}

/* ── CYCLE TRACKER ── */
.cycle-pill{display:flex;align-items:center;gap:5px;padding:6px 12px;border-radius:20px;border:none;background:linear-gradient(135deg,#FF6B9D,#C44569);color:#fff;font-size:12px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;box-shadow:0 3px 12px rgba(196,69,105,.35);transition:opacity .2s;white-space:nowrap;}
.cycle-pill:hover{opacity:.88;}
.cycle-pill svg{width:14px;height:14px;stroke:#fff;stroke-width:2.2;fill:none;}

/* Phase color tokens */
.ph-menstrual{color:#FF4757;} .bg-menstrual{background:#FF4757;}
.ph-follicular{color:#FF6B9D;} .bg-follicular{background:#FF6B9D;}
.ph-ovulation{color:#5a5a68;} .bg-ovulation{background:#5a5a68;}
[data-theme=dark] .ph-ovulation{color:#c4c4d4;}
.ph-luteal{color:#3B82F6;} .bg-luteal{background:#3B82F6;}

/* ── CYCLE HERO CARD (stays custom — lives above the native design system) ── */
.cyc-hero{margin:0 16px 4px;border-radius:22px;overflow:hidden;box-shadow:0 6px 24px rgba(255,107,157,.16);}
[data-theme=dark] .cyc-hero{box-shadow:0 6px 24px rgba(0,0,0,.32);}
.cyc-hero.tappable{cursor:pointer;transition:transform .15s cubic-bezier(.22,.85,.25,1);}
.cyc-hero.tappable:active{transform:scale(.98);}
.cyc-hero-bg{padding:20px 18px 16px;position:relative;}
.cyc-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px;}
.cyc-hero-phase{display:flex;flex-direction:column;gap:2px;}
.cyc-hero-phase-label{font-size:10px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:rgba(255,255,255,.6);}
.cyc-hero-phase-name{font-size:26px;font-weight:900;color:#fff;letter-spacing:-.4px;line-height:1.05;}
.cyc-hero-phase-desc{font-size:11px;font-weight:700;color:rgba(255,255,255,.65);margin-top:2px;}
.cyc-hero-ring-wrap{flex-shrink:0;position:relative;width:76px;height:76px;}
.cyc-hero-ring-wrap svg{width:76px;height:76px;}
.cyc-hero-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.cyc-hero-ring-day{font-size:19px;font-weight:900;color:#fff;line-height:1;}
.cyc-hero-ring-of{font-size:9px;font-weight:800;color:rgba(255,255,255,.6);margin-top:1px;}
.cyc-timeline{display:flex;gap:3px;height:4px;border-radius:2px;overflow:hidden;margin-bottom:14px;}
.cyc-timeline-seg{height:100%;border-radius:2px;opacity:.45;flex-shrink:0;}
.cyc-timeline-seg.active{opacity:1;}
.cyc-hero-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
}
.cyc-hero-stat{
  background:rgba(0,0,0,.18);
  border-radius:11px;
  padding:9px 8px 8px;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:3px;
}
.cyc-hero-stat-icon{font-size:14px;line-height:1;}
.cyc-hero-stat-val{font-size:14px;font-weight:900;color:#fff;line-height:1.1;letter-spacing:-.2px;}
.cyc-hero-stat-lbl{font-size:8.5px;font-weight:700;color:rgba(255,255,255,.58);line-height:1.2;text-align:center;}

/* ── LOG BUTTONS — native srow style inside ssec ── */
.cyc-log-btn-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 0;border-bottom:1px solid var(--sbdr);
}
.cyc-log-btn-row:last-child{border-bottom:none;}
.cyc-log-btn-left{display:flex;align-items:center;gap:11px;}
.cyc-log-btn-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.cyc-log-btn-label{font-size:13.5px;font-weight:700;color:var(--dtext);}
.cyc-log-btn-sub{font-size:11px;color:var(--dsub);margin-top:1px;}
.cyc-log-btn-action{
  padding:7px 14px;border-radius:10px;border:none;cursor:pointer;
  font-size:12px;font-weight:800;font-family:'Nunito',sans-serif;
  transition:opacity .15s,transform .12s;white-space:nowrap;flex-shrink:0;
}
.cyc-log-btn-action:active{transform:scale(.94);opacity:.8;}
.cyc-log-btn-action.period{background:rgba(255,71,87,.12);color:#FF4757;}
.cyc-log-btn-action.end{background:rgba(34,197,94,.12);color:#16a34a;}
.cyc-log-btn-action.ovul{background:rgba(168,85,247,.12);color:#9333ea;}
[data-theme=dark] .cyc-log-btn-action.period{background:rgba(255,71,87,.2);}
[data-theme=dark] .cyc-log-btn-action.end{background:rgba(34,197,94,.2);color:#4ade80;}
[data-theme=dark] .cyc-log-btn-action.ovul{background:rgba(168,85,247,.2);color:#c084fc;}

/* ── History bars — inside native ssec ── */
.cyc-hist-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--sbdr);}
.cyc-hist-row:last-child{border-bottom:none;}
.cyc-hist-date{font-size:11px;color:var(--dsub);font-weight:700;min-width:54px;}
.cyc-hist-bar-wrap{flex:1;height:4px;border-radius:2px;background:var(--sbdr);overflow:hidden;}
.cyc-hist-bar{height:100%;border-radius:2px;background:linear-gradient(90deg,#FF6B9D,#C44569);}
.cyc-hist-len{font-size:12px;font-weight:900;color:var(--dtext);min-width:26px;text-align:right;}

/* ── Stepper (used in settings) ── */
.cyc-stepper{display:flex;align-items:center;gap:0;border:1.5px solid var(--sbdr);border-radius:10px;overflow:hidden;background:var(--sbg);flex-shrink:0;}
.cyc-stepper-btn{width:32px;height:32px;border:none;cursor:pointer;background:transparent;color:var(--dtext);font-size:17px;font-weight:700;font-family:'Nunito',sans-serif;display:flex;align-items:center;justify-content:center;transition:background .1s;}
.cyc-stepper-btn:active{background:var(--tgbg);}
.cyc-stepper-val{min-width:32px;text-align:center;font-size:13px;font-weight:900;color:var(--dtext);font-family:'Nunito',sans-serif;border-left:1px solid var(--sbdr);border-right:1px solid var(--sbdr);line-height:32px;height:32px;padding:0 3px;}
.cyc-num-input{width:64px;padding:7px 10px;border-radius:10px;border:1.5px solid var(--border);background:var(--sbg);color:var(--dtext);font-size:14px;font-weight:800;text-align:center;font-family:'Nunito',sans-serif;outline:none;transition:border-color .15s;}
.cyc-num-input:focus{border-color:#FF6B9D;}

/* Log-by-date type chips */
.cy-type-chip{
  padding:7px 11px;border-radius:10px;border:1.5px solid var(--border);
  background:var(--tgbg);color:var(--dsub);
  font-size:11.5px;font-weight:800;font-family:'Nunito',sans-serif;
  cursor:pointer;transition:all .15s;white-space:nowrap;
}
.cy-type-chip.on{
  background:linear-gradient(135deg,#FF6B9D,#C44569);
  color:#fff;border-color:transparent;
  box-shadow:0 3px 10px rgba(196,69,105,.28);
}

/* ── MOOD & SYMPTOM LOGGING ── */
.mood-scale{display:flex;justify-content:space-between;gap:6px;margin-bottom:4px;}
.mood-opt{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:10px 4px;border-radius:14px;border:2px solid var(--border);
  background:var(--chip);cursor:pointer;transition:all .15s;
}
.mood-opt-emoji{font-size:22px;line-height:1;}
.mood-opt-lbl{font-size:9px;font-weight:800;color:var(--hsub);letter-spacing:.1px;text-align:center;}
.mood-opt.selected{border-color:var(--tf);background:rgba(99,102,241,.08);transform:scale(1.04);}
[data-theme="dark"] .mood-opt.selected{background:rgba(124,92,255,.16);border-color:rgba(140,120,255,.55);}

.symptom-chip-grid{display:flex;flex-wrap:wrap;gap:7px;}
.symptom-chip{
  padding:8px 13px;border-radius:20px;border:1.5px solid var(--border);
  background:var(--tgbg);color:var(--dtext);
  font-size:12px;font-weight:700;font-family:'Nunito',sans-serif;
  cursor:pointer;transition:all .15s;white-space:nowrap;
  display:flex;align-items:center;gap:5px;
}
.symptom-chip.on{
  background:linear-gradient(135deg,#a78bfa,#7c5cff);
  color:#fff;border-color:transparent;
  box-shadow:0 3px 10px rgba(124,92,255,.28);
}

/* Phase tag pill — used on symptom log entries and history rows */
.phase-tag{
  display:inline-flex;align-items:center;gap:4px;
  padding:2px 8px;border-radius:8px;
  font-size:9.5px;font-weight:800;letter-spacing:.2px;flex-shrink:0;
}
.phase-tag.tag-Menstrual{background:rgba(255,71,87,.14);color:#e63946;}
.phase-tag.tag-Follicular{background:rgba(255,107,157,.14);color:#c44569;}
.phase-tag.tag-Ovulation{background:rgba(168,85,247,.14);color:#9333ea;}
.phase-tag.tag-Luteal{background:rgba(59,130,246,.14);color:#2563eb;}
[data-theme="dark"] .phase-tag.tag-Menstrual{background:rgba(255,120,120,.18);color:#ff9b9b;}
[data-theme="dark"] .phase-tag.tag-Follicular{background:rgba(255,107,157,.18);color:#ffa8c4;}
[data-theme="dark"] .phase-tag.tag-Ovulation{background:rgba(168,85,247,.22);color:#c8a0ff;}
[data-theme="dark"] .phase-tag.tag-Luteal{background:rgba(59,130,246,.22);color:#93c5fd;}

/* Symptom history entry row */
.symlog-row{padding:12px 0;border-bottom:1px solid var(--border);}
.symlog-row:last-child{border-bottom:none;}
.symlog-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.symlog-date-mood{display:flex;align-items:center;gap:8px;min-width:0;}
.symlog-mood-emoji{font-size:18px;line-height:1;flex-shrink:0;}
.symlog-date{font-size:12.5px;font-weight:800;color:var(--htext);}
.symlog-symptoms{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px;}
.symlog-symptom-pill{font-size:10px;font-weight:700;color:var(--dsub);background:var(--tgbg);padding:2px 8px;border-radius:7px;}
.symlog-note{font-size:11.5px;font-weight:600;color:var(--dsub);margin-top:5px;line-height:1.4;font-style:italic;}

/* By-Phase insights */
.phase-insight-card{border-radius:16px;background:var(--card);padding:14px;margin-bottom:10px;box-shadow:0 2px 10px rgba(0,0,0,.05);}
.phase-insight-head{display:flex;align-items:center;justify-content:between;gap:8px;margin-bottom:8px;}
.phase-insight-title{font-size:13px;font-weight:900;color:var(--htext);flex:1;}
.phase-insight-count{font-size:10px;font-weight:700;color:var(--dsub);background:var(--tgbg);padding:2px 8px;border-radius:8px;}
.phase-insight-empty{font-size:11.5px;font-weight:600;color:var(--dsub);padding:4px 0;}
.phase-insight-bars{display:flex;flex-direction:column;gap:6px;}
.phase-insight-bar-row{display:flex;align-items:center;gap:8px;}
.phase-insight-bar-lbl{font-size:10.5px;font-weight:700;color:var(--dtext);width:84px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.phase-insight-bar-wrap{flex:1;height:7px;border-radius:4px;background:var(--tgbg);overflow:hidden;}
.phase-insight-bar-fill{height:100%;border-radius:4px;}
.phase-insight-bar-val{font-size:10px;font-weight:800;color:var(--dsub);width:22px;text-align:right;flex-shrink:0;}
/* Delete button on log rows */
.cyc-log-del{
  display:flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:8px;border:none;cursor:pointer;
  background:rgba(244,63,94,.1);color:#f43f5e;
  font-size:14px;flex-shrink:0;
  transition:background .15s,transform .12s;
}
.cyc-log-del:active{background:rgba(244,63,94,.22);transform:scale(.9);}
[data-theme=dark] .cyc-log-del{background:rgba(244,63,94,.18);}

/* ── CYCLE INSIGHTS / TRENDS CARD ── */
.cyc-insights-card{margin:0 16px 14px;border-radius:18px;background:var(--card);padding:16px;box-shadow:0 2px 12px rgba(0,0,0,.06);}
.cyc-insights-title{font-size:13px;font-weight:900;color:var(--htext);margin-bottom:2px;display:flex;align-items:center;gap:7px;}
.cyc-insights-sub{font-size:11.5px;font-weight:600;color:var(--dsub);margin-bottom:14px;}
.cyc-insights-stats{display:flex;gap:10px;margin-bottom:14px;}
.cyc-insights-stat{flex:1;background:var(--tgbg);border-radius:14px;padding:10px 8px;text-align:center;}
.cyc-insights-stat-val{font-size:17px;font-weight:900;color:var(--dtext);line-height:1.15;}
.cyc-insights-stat-lbl{font-size:9px;font-weight:800;color:var(--dsub);margin-top:3px;letter-spacing:.2px;text-transform:uppercase;}
.cyc-insights-stat-trend{font-size:9.5px;font-weight:800;margin-top:2px;}
.cyc-insights-stat-trend.up{color:#ef4444;}
.cyc-insights-stat-trend.down{color:#3b82f6;}
.cyc-insights-stat-trend.flat{color:#22c55e;}
.cyc-spark-wrap{display:flex;align-items:flex-end;gap:4px;}
.cyc-spark-svg{display:block;flex-shrink:0;}
.cyc-insights-empty{font-size:12px;font-weight:600;color:var(--dsub);line-height:1.55;padding:4px 2px;}
.cyc-insights-regularity{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:8px;font-size:10.5px;font-weight:800;margin-top:2px;}
.cyc-insights-regularity.reg{background:rgba(34,197,94,.14);color:#16a34a;}
.cyc-insights-regularity.mod{background:rgba(245,158,11,.14);color:#b45309;}
.cyc-insights-regularity.irreg{background:rgba(244,63,94,.14);color:#e11d48;}
[data-theme=dark] .cyc-insights-regularity.reg{background:rgba(34,197,94,.22);color:#4ade80;}
[data-theme=dark] .cyc-insights-regularity.mod{background:rgba(245,158,11,.24);color:#fbbf24;}
[data-theme=dark] .cyc-insights-regularity.irreg{background:rgba(244,63,94,.22);color:#fb7185;}

/* ── TTC SUITE — Intercourse / OPK / BBT ── */
.ttc-result-grid{display:flex;gap:7px;}
.ttc-result-chip{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:12px 6px;border-radius:14px;border:2px solid var(--border);
  background:var(--chip);cursor:pointer;transition:all .15s;
}
.ttc-result-chip-emoji{font-size:20px;line-height:1;}
.ttc-result-chip-lbl{font-size:10.5px;font-weight:800;color:var(--hsub);letter-spacing:.1px;text-align:center;}
.ttc-result-chip.selected{border-color:var(--tf);background:rgba(99,102,241,.08);transform:scale(1.03);}
[data-theme="dark"] .ttc-result-chip.selected{background:rgba(124,92,255,.16);border-color:rgba(140,120,255,.55);}
.ttc-result-chip.selected.neg{border-color:#94a3b8;background:rgba(148,163,184,.14);}
.ttc-result-chip.selected.faint{border-color:#f59e0b;background:rgba(245,158,11,.14);}
.ttc-result-chip.selected.pos{border-color:#22c55e;background:rgba(34,197,94,.16);}

.ttc-bbt-input-row{display:flex;align-items:stretch;gap:8px;margin-bottom:9px;}
.ttc-bbt-input-row .dc-input{margin-bottom:0;flex:1;}
.ttc-unit-toggle{display:flex;border-radius:11px;overflow:hidden;border:1.5px solid var(--border);flex-shrink:0;}
.ttc-unit-btn{padding:0 14px;border:none;background:var(--tgbg);color:var(--dsub);font-size:12.5px;font-weight:800;font-family:'Nunito',sans-serif;cursor:pointer;transition:all .15s;}
.ttc-unit-btn.on{background:linear-gradient(135deg,#FF6B9D,#C44569);color:#fff;}

.ttc-log-row{padding:12px 0;border-bottom:1px solid var(--border);}
.ttc-log-row:last-child{border-bottom:none;}
.ttc-log-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.ttc-log-left{display:flex;align-items:center;gap:10px;min-width:0;}
.ttc-log-icon{font-size:17px;flex-shrink:0;line-height:1;}
.ttc-log-date{font-size:12.5px;font-weight:800;color:var(--htext);}
.ttc-log-detail{font-size:11px;font-weight:700;color:var(--dsub);margin-top:1px;}
.ttc-log-note{font-size:11.5px;font-weight:600;color:var(--dsub);margin-top:5px;line-height:1.4;font-style:italic;}

.ttc-pill{font-size:10px;font-weight:800;padding:2px 8px;border-radius:7px;letter-spacing:.2px;}
.ttc-pill.neg{background:rgba(148,163,184,.16);color:#64748b;}
.ttc-pill.faint{background:rgba(245,158,11,.16);color:#b45309;}
.ttc-pill.pos{background:rgba(34,197,94,.16);color:#16a34a;}
[data-theme=dark] .ttc-pill.neg{background:rgba(148,163,184,.22);color:#cbd5e1;}
[data-theme=dark] .ttc-pill.faint{background:rgba(245,158,11,.24);color:#fbbf24;}
[data-theme=dark] .ttc-pill.pos{background:rgba(34,197,94,.24);color:#4ade80;}

.ttc-mode-empty{padding:40px 24px;text-align:center;font-size:13px;font-weight:700;color:var(--dsub);}

/* BBT mini chart */
.ttc-bbt-chart-wrap{padding:14px 0 4px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.ttc-bbt-chart-svg{display:block;}

/* Legacy compat */
.cyc-log-btn,.cyc-log-row,.cyc-log-strip,.cyc-log-action{display:none;}
.cyc-card,.cyc-grid{display:none;}
.phase-ring-wrap{display:none;}
.cyc-section-head,.cyc-section-title,.cyc-section-badge{display:none;}
.cyc-settings-card,.cyc-settings-row,.cyc-settings-lbl,.cyc-settings-sub{display:none;}
.cyc-log-timeline,.cyc-log-item{display:none;}
.cyc-history-wrap,.cyc-hist-row-old{display:none;}

/* ── Predictions ── */
.pred-list{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
.pred-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--sbg);border:1px solid var(--border);}
.pred-num{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#FF6B9D,#C44569);color:#fff;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pred-body{flex:1;min-width:0;}
.pred-date{font-size:13px;font-weight:800;color:var(--dtext);}
.pred-sub{font-size:11px;color:var(--dsub);font-weight:600;margin-top:1px;}
.pred-badge{font-size:10px;font-weight:800;padding:3px 8px;border-radius:8px;background:rgba(255,107,157,.12);color:#FF6B9D;white-space:nowrap;}

/* ── Flow Intensity Picker ── */
.flow-picker-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:4px;}
.flow-opt{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border-radius:14px;border:2px solid transparent;background:var(--tgbg);cursor:pointer;transition:all .15s;font-family:'Nunito',sans-serif;}
.flow-opt:active{transform:scale(.95);}
.flow-opt.on{border-color:var(--accent);background:var(--accent-soft);}
.flow-opt-icon{font-size:22px;line-height:1;}
.flow-opt-label{font-size:12px;font-weight:800;color:var(--dtext);}
.flow-opt-desc{font-size:10px;font-weight:600;color:var(--dsub);text-align:center;line-height:1.3;}
.flow-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:8px;font-size:10px;font-weight:800;letter-spacing:.2px;}
.flow-badge.spotting{background:rgba(255,154,184,.18);color:#c44569;}
.flow-badge.light{background:rgba(255,71,87,.14);color:#e03e3e;}
.flow-badge.medium{background:rgba(255,71,87,.26);color:#c0392b;}
.flow-badge.heavy{background:rgba(192,57,43,.32);color:#922b21;}
/* ── Cycle history ── */
.hist-list{display:flex;flex-direction:column;gap:6px;margin-top:4px;}
.hist-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--sbg);border:1px solid var(--border);}
.hist-bar-wrap{flex:1;height:6px;border-radius:3px;background:var(--border);overflow:hidden;}
.hist-bar{height:100%;border-radius:3px;background:linear-gradient(90deg,#FF6B9D,#C44569);}
.hist-len{font-size:12px;font-weight:900;color:var(--dtext);min-width:38px;text-align:right;}
.hist-date{font-size:10.5px;color:var(--dsub);font-weight:600;min-width:70px;}

/* ── PARTNER SYNC ── */
/* ── PAIR & SYNC CARD ── */
.pair-card{
  margin:0 18px 14px;border-radius:20px;overflow:hidden;
  border:1px solid var(--border);
  background:var(--card);
  box-shadow:0 4px 20px rgba(255,107,157,.07);
}
[data-theme=dark] .pair-card{
  border-color:rgba(255,107,157,.15);
  box-shadow:0 4px 24px rgba(0,0,0,.25);
}
.pair-card-head{
  display:flex;align-items:center;gap:12px;
  padding:14px 16px;
  border-bottom:1px solid var(--border);
  background:linear-gradient(135deg,rgba(255,107,157,.08) 0%,rgba(196,69,105,.03) 100%);
}
[data-theme=dark] .pair-card-head{
  border-bottom-color:rgba(255,107,157,.12);
  background:linear-gradient(135deg,rgba(255,107,157,.12) 0%,rgba(100,40,80,.07) 100%);
}
.pair-icon-wrap{
  width:40px;height:40px;border-radius:13px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#FF6B9D,#C44569);
  box-shadow:0 3px 10px rgba(255,107,157,.35);
  font-size:19px;
}
.pair-head-text{flex:1;}
.pair-head-title{font-size:14px;font-weight:900;color:var(--htext);line-height:1.1;}
.pair-head-sub{font-size:11px;font-weight:700;color:var(--hsub);margin-top:2px;}
.pair-status-dot{
  width:8px;height:8px;border-radius:50%;
  background:#22c55e;flex-shrink:0;
  box-shadow:0 0 0 2px rgba(34,197,94,.2);
  animation:pairPulse 2.4s ease-in-out infinite;
}
.pair-status-dot.offline{background:var(--dim);box-shadow:none;animation:none;}
@keyframes pairPulse{
  0%,100%{box-shadow:0 0 0 2px rgba(34,197,94,.2);}
  50%{box-shadow:0 0 0 5px rgba(34,197,94,.08);}
}

/* ── NOT-PAIRED STATE ── */
.pair-unpaired{padding:24px 18px 20px;text-align:center;}
.pair-unpaired-emoji{font-size:36px;margin-bottom:12px;line-height:1;}
.pair-unpaired-title{font-size:16px;font-weight:900;color:var(--htext);margin-bottom:6px;letter-spacing:-.2px;}
.pair-unpaired-sub{font-size:12px;font-weight:600;color:var(--hsub);line-height:1.6;margin-bottom:20px;max-width:280px;margin-left:auto;margin-right:auto;}

/* Your code block */
.pair-code-block{
  background:linear-gradient(135deg,rgba(255,107,157,.08),rgba(196,69,105,.04));
  border:1.5px dashed rgba(255,107,157,.3);
  border-radius:14px;padding:14px 16px;margin-bottom:16px;
}
[data-theme=dark] .pair-code-block{
  background:linear-gradient(135deg,rgba(255,107,157,.12),rgba(196,69,105,.06));
}
.pair-code-lbl-row{
  font-size:10px;font-weight:800;color:var(--hsub);
  text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;
  display:flex;align-items:center;justify-content:center;gap:5px;
}
.pair-code-display{
  display:flex;align-items:center;justify-content:center;gap:10px;
}
.pair-code-val{
  font-size:22px;font-weight:900;letter-spacing:5px;
  color:#FF6B9D;font-family:'Courier New',monospace;
}
.pair-copy-btn{
  width:32px;height:32px;border-radius:9px;border:none;cursor:pointer;
  background:linear-gradient(135deg,#FF6B9D,#C44569);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 3px 10px rgba(255,107,157,.3);
  transition:transform .15s,opacity .15s;
}
.pair-copy-btn:active{transform:scale(.90);opacity:.85;}
.pair-copy-btn svg{width:14px;height:14px;stroke:#fff;stroke-width:2.3;fill:none;}

/* Divider */
.pair-or-divider{
  display:flex;align-items:center;gap:10px;margin-bottom:14px;
}
.pair-or-line{flex:1;height:1px;background:var(--border);}
.pair-or-lbl{font-size:10px;font-weight:800;color:var(--hsub);text-transform:uppercase;letter-spacing:.6px;}

/* Enter code */
.pair-enter-row{display:flex;gap:8px;margin-bottom:4px;}
.pair-enter-input{
  flex:1;padding:11px 13px;border-radius:11px;
  border:1.5px solid var(--border);background:var(--sbg);
  color:var(--dtext);font-size:15px;font-weight:800;
  font-family:'Courier New',monospace;letter-spacing:2.5px;
  text-transform:uppercase;outline:none;
  transition:border-color .2s,box-shadow .2s;
}
.pair-enter-input::placeholder{font-family:'Nunito',sans-serif;letter-spacing:0;font-size:13px;font-weight:600;text-transform:none;color:var(--hsub);}
.pair-enter-input:focus{border-color:#FF6B9D;box-shadow:0 0 0 3px rgba(255,107,157,.12);}
.pair-connect-btn{
  padding:11px 18px;border-radius:11px;border:none;cursor:pointer;
  background:linear-gradient(135deg,#FF6B9D,#C44569);
  color:#fff;font-size:13px;font-weight:900;
  font-family:'Nunito',sans-serif;white-space:nowrap;
  box-shadow:0 4px 14px rgba(255,107,157,.3);
  transition:transform .15s,opacity .2s;
}
.pair-connect-btn:active{transform:scale(.95);opacity:.9;}

/* ── PAIRED STATE — REDESIGN (rose/gold duotone) ── */
:root{
  --pr-rose:#e8617f; --pr-rose-dim:rgba(232,97,127,.16); --pr-rose-dim2:rgba(232,97,127,.08);
  --pr-rose-grad:linear-gradient(155deg,#ff9bb1,#e8617f);
  --pr-gold:#e0a458; --pr-gold-dim:rgba(224,164,88,.16);
  --pr-card:var(--card,#fff); --pr-card2:rgba(127,127,150,.08);
}
[data-theme=dark]{
  --pr-card:#1b1e29; --pr-card2:#20232f;
}
.pair-paired{padding:0 0 4px;display:flex;flex-direction:column;gap:12px;}

/* Connected banner — now a standalone rounded card */
.pair-connected-banner{
  display:flex;align-items:center;gap:12px;
  padding:14px 16px;
  background:var(--pr-card);
  border:1px solid var(--border);
  border-radius:18px;
}
.pair-partner-avatar{
  width:44px;height:44px;border-radius:14px;
  background:var(--pr-rose-grad);
  display:flex;align-items:center;justify-content:center;
  font-size:19px;flex-shrink:0;
}
.pair-partner-info{flex:1;min-width:0;}
.pair-partner-name{font-size:14.5px;font-weight:900;color:var(--htext);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pair-partner-status{font-size:11px;font-weight:700;color:var(--hsub);margin-top:3px;display:flex;align-items:center;gap:5px;}
.pair-disconnect-btn{
  padding:7px 12px;border-radius:11px;border:1px solid var(--border);cursor:pointer;
  background:transparent;color:var(--hsub);
  font-size:11px;font-weight:800;font-family:'Nunito',sans-serif;
  transition:border-color .2s,color .2s,transform .15s;white-space:nowrap;flex-shrink:0;
}
.pair-disconnect-btn:hover{border-color:var(--pr-rose);color:var(--pr-rose);}
.pair-disconnect-btn:active{transform:scale(.93);}

/* Cycle card — ring + phase pill + meta, replaces flat stat strip */
.pair-cycle-card{
  display:flex;align-items:center;gap:18px;
  padding:18px 16px;
  background:var(--pr-card);
  border:1px solid var(--border);
  border-radius:18px;
}
.pair-ring-wrap{position:relative;width:96px;height:96px;flex-shrink:0;}
.pair-ring-wrap svg{width:100%;height:100%;transform:rotate(-90deg);}
.pair-ring-bg{fill:none;stroke:var(--pr-card2);stroke-width:8;}
.pair-ring-fg{fill:none;stroke:var(--pr-rose);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .8s ease;}
.pair-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.pair-ring-day-num{font-size:25px;font-weight:900;color:var(--htext);line-height:1;letter-spacing:-.5px;}
.pair-ring-day-lbl{font-size:9px;font-weight:800;color:var(--hsub);text-transform:uppercase;letter-spacing:.4px;margin-top:3px;}
.pair-cycle-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px;}

/* Phase pill row */
.pair-phase-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pair-phase-label{font-size:11px;font-weight:700;color:var(--hsub);}
.pair-partner-phase-badge{
  padding:5px 12px;border-radius:20px;
  font-size:11.5px;font-weight:800;color:#fff;white-space:nowrap;
}
.pair-cycle-meta-row{display:flex;flex-direction:column;gap:5px;}
.pair-cycle-meta-item{display:flex;align-items:baseline;gap:6px;}
.pair-cycle-meta-val{font-size:14px;font-weight:900;color:var(--htext);}
.pair-cycle-meta-lbl{font-size:10.5px;font-weight:700;color:var(--hsub);}
.pair-card-sync-row{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-top:8px;padding-top:9px;
  border-top:1px solid var(--border);
}
.pair-card-sync-status{font-size:10.5px;font-weight:700;color:var(--hsub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pair-card-disconnect-btn{
  flex-shrink:0;padding:5px 10px;border-radius:9px;border:1px solid var(--border);cursor:pointer;
  background:transparent;color:var(--hsub);
  font-size:10px;font-weight:800;font-family:'Nunito',sans-serif;
  transition:border-color .2s,color .2s,transform .15s;white-space:nowrap;
}
.pair-card-disconnect-btn:hover{border-color:var(--pr-rose);color:var(--pr-rose);}
.pair-card-disconnect-btn:active{transform:scale(.93);}

/* Waiting state */
.pair-waiting-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;gap:10px;
  border-radius:16px;
  background:var(--pr-rose-dim2);
  border:1px solid var(--pr-rose-dim);
}
.pair-waiting-text{font-size:12px;font-weight:700;color:var(--hsub);line-height:1.4;}
.pair-resync-btn{
  flex-shrink:0;padding:7px 13px;border-radius:11px;border:none;
  background:var(--pr-rose-grad);
  color:#fff;font-size:11px;font-weight:800;cursor:pointer;
  font-family:'Nunito',sans-serif;
  transition:transform .15s,opacity .2s;
}
.pair-resync-btn:active{transform:scale(.93);}

/* Heartbeat divider */
.pair-heartbeat{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:0 6px;
}
.pair-hb-line{flex:1;height:1px;background:var(--border);}
.pair-hb-icon{font-size:14px;opacity:.75;animation:pairHb 1.4s ease-in-out infinite;}
@keyframes pairHb{
  0%,100%{transform:scale(1);}
  14%{transform:scale(1.28);}
  28%{transform:scale(1);}
  42%{transform:scale(1.14);}
  56%{transform:scale(1);}
}

/* ── MOMENTS REDESIGN ───────────────────────────────────────── */
.pair-moment-wrap{
  overflow:hidden;
  border-radius:20px;
  border:1px solid var(--border);
  background:var(--pr-card);
  margin:0;
  display:flex;flex-direction:column;
}
.pair-moment-head{
  display:flex;align-items:center;gap:10px;
  padding:14px 16px 12px;
  border-bottom:1px solid var(--border);
}
.pair-moment-head-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0;}
.pair-moment-head-icon{
  width:32px;height:32px;border-radius:10px;flex-shrink:0;
  background:var(--pr-gold-dim);
  display:flex;align-items:center;justify-content:center;font-size:15px;
}
.pair-moment-head-title{
  font-size:14px;font-weight:900;color:var(--htext);letter-spacing:-.1px;
}
.pair-moment-head-sub{
  font-size:11px;font-weight:700;color:var(--hsub);margin-top:1px;
}
.pair-moment-head-count{
  font-size:10.5px;font-weight:800;color:var(--hsub);
  background:var(--pr-card2);padding:4px 9px;border-radius:20px;
}
/* Quick emoji strip */
.pair-quick-emojis{
  display:flex;gap:7px;padding:11px 14px;
  overflow-x:auto;scrollbar-width:none;
  border-bottom:1px solid var(--border);
}
.pair-quick-emojis::-webkit-scrollbar{display:none;}
.pair-quick-emoji{
  flex-shrink:0;width:34px;height:34px;border-radius:50%;border:1px solid var(--border);cursor:pointer;
  background:var(--pr-card2);font-size:15px;display:flex;align-items:center;
  justify-content:center;transition:transform .12s,background .15s;
}
.pair-quick-emoji:hover{background:var(--pr-rose-dim2);}
.pair-quick-emoji:active{transform:scale(.82);}
/* Message list */
.pair-moment-msgs{
  min-height:80px;max-height:220px;overflow-y:auto;
  padding:14px 16px 8px;
  display:flex;flex-direction:column;gap:6px;
  scroll-behavior:smooth;
}
.pair-moment-msgs:empty::after{
  content:'No moments yet — send something sweet 💌';
  font-size:12px;font-weight:600;color:var(--hsub);
  text-align:center;padding:20px 0;display:block;line-height:1.6;
}
/* Bubbles */
.pair-msg-bubble{
  display:flex;flex-direction:column;
  max-width:82%;
  animation:bubbleIn .18s cubic-bezier(.22,.85,.25,1);
}
@keyframes bubbleIn{from{opacity:0;transform:translateY(6px) scale(.96);}to{opacity:1;transform:none;}}
.pair-msg-bubble.mine{ align-self:flex-end;align-items:flex-end; }
.pair-msg-bubble.theirs{ align-self:flex-start;align-items:flex-start; }
.pair-msg-text{
  padding:9px 13px;border-radius:16px;
  font-size:13.5px;font-weight:700;line-height:1.4;
  word-break:break-word;position:relative;
}
.pair-msg-bubble.mine .pair-msg-text{
  background:var(--pr-rose-grad);
  color:#fff;border-bottom-right-radius:5px;
}
.pair-msg-bubble.theirs .pair-msg-text{
  background:var(--pr-card2);color:var(--htext);
  border-bottom-left-radius:5px;
}
/* Emoji-only large bubble */
.pair-msg-bubble.emoji-only .pair-msg-text{
  background:none!important;border:none!important;box-shadow:none!important;
  padding:2px 4px;font-size:30px;line-height:1.2;
}
.pair-msg-meta{
  font-size:10px;font-weight:700;color:var(--hsub);
  margin-top:4px;padding:0 3px;display:flex;align-items:center;gap:4px;
}
.pair-msg-meta .pair-msg-tick{color:#5fd393;font-size:10px;}
/* Date divider */
.pair-date-divider{
  display:flex;align-items:center;gap:8px;margin:8px 0 12px;
}
.pair-date-divider span{
  font-size:10px;font-weight:800;color:var(--hsub);
  background:var(--pr-card2);padding:4px 11px;border-radius:20px;
  text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;
}
.pair-date-divider::before,.pair-date-divider::after{
  content:'';flex:1;height:1px;background:var(--border);
}
/* Compose bar */
.pair-moment-compose{
  border-top:1px solid var(--border);
  padding:11px 14px;
  display:flex;align-items:flex-end;gap:9px;
  background:var(--pr-card);
}
.pair-compose-field{
  flex:1;display:flex;align-items:flex-end;
  background:var(--pr-card2);border-radius:18px;
  border:1px solid var(--border);
  padding:7px 13px;gap:6px;
  transition:border-color .2s;min-height:38px;
}
.pair-compose-field:focus-within{border-color:var(--pr-rose);}
.pair-moment-input{
  flex:1;resize:none;border:none;outline:none;
  background:transparent;
  min-height:24px;max-height:90px;
  font-family:'Nunito',sans-serif;font-size:13.5px;font-weight:700;
  color:var(--htext);line-height:1.4;overflow-y:auto;
  padding:2px 0;
}
.pair-moment-input::placeholder{color:var(--hsub);}
.pair-moment-send{
  width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;
  background:var(--pr-rose-grad);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:transform .13s,opacity .13s,background .2s;
}
.pair-moment-send:active{transform:scale(.88);opacity:.85;}
.pair-moment-send svg{width:15px;height:15px;stroke:#fff;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.pair-moment-send.sent-anim{
  background:linear-gradient(155deg,#5fd393,#3aa86c)!important;
  transform:scale(.88)!important;
}

.pair-nudge-btn{
  width:100%;padding:11px;border-radius:12px;border:none;cursor:pointer;
  background:linear-gradient(135deg,rgba(255,107,157,.10),rgba(196,69,105,.07));
  color:#FF6B9D;font-size:13px;font-weight:900;font-family:'Nunito',sans-serif;
  border:1px solid rgba(255,107,157,.18);
  display:flex;align-items:center;justify-content:center;gap:7px;
  transition:background .2s,transform .15s;
}

.pair-nudge-btn:active{transform:scale(.97);}

/* ── MOMENTS COMPACT MODE ── */
.pair-moment-wrap{border-radius:16px;}
.pair-moment-head{padding:10px 13px 9px;gap:8px;}
.pair-moment-head-icon{width:26px;height:26px;font-size:12px;border-radius:8px;}
.pair-moment-head-title{font-size:12.5px;}
.pair-moment-head-sub{font-size:9.5px;}
.pair-moment-head-count{font-size:9px;padding:3px 7px;}
.pair-quick-emojis{padding:8px 11px;gap:5px;}
.pair-quick-emoji{width:28px;height:28px;font-size:12.5px;}
.pair-moment-msgs{min-height:56px;max-height:160px;padding:10px 13px 6px;gap:4px;}
.pair-msg-text{padding:7px 11px;font-size:12px;border-radius:13px;}
.pair-msg-meta{font-size:9px;margin-top:3px;}
.pair-moment-compose{padding:8px 11px;gap:7px;}
.pair-compose-field{padding:5px 11px;min-height:32px;border-radius:15px;}
.pair-moment-input{font-size:12.5px;min-height:20px;}
.pair-moment-send{width:32px;height:32px;}
.pair-moment-send svg{width:13px;height:13px;}
.pair-nudge-sent{
  text-align:center;padding:8px 0 4px;
  font-size:12px;font-weight:700;color:#22c55e;
  animation:pairNudgeFade 2.5s ease forwards;
}
@keyframes pairNudgeFade{
  0%{opacity:0;transform:translateY(4px);}
  20%{opacity:1;transform:translateY(0);}
  70%{opacity:1;}
  100%{opacity:0;}
}

/* ── PARTNER MODE ── */
.partner-mode-toggle-btn{
  display:flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;border:none;cursor:pointer;
  padding:0;flex-shrink:0;
  transition:background .2s,color .2s,box-shadow .2s,transform .15s;
  margin-left:-13px;
  box-shadow:0 0 0 2px var(--sbg);
  position:relative;z-index:1;
}
.partner-mode-toggle-btn.off{
  background:var(--card);color:var(--hsub);
  border:1.5px solid var(--border);
}
.partner-mode-toggle-btn.on{
  background:var(--pr-rose-grad,linear-gradient(155deg,#ff9bb1,#e8617f));color:#fff;
  border:1.5px solid transparent;
}
.partner-mode-toggle-btn:active{transform:scale(.88);}
.partner-mode-toggle-btn .pm-icon{font-size:11px;line-height:1;}

.cycle-mode-combo{display:flex;align-items:center;}

/* ── CYCLE MODE (Cycle / TTC / Pregnant) ── */
.cycle-mode-toggle-btn{
  display:flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:20px;border:none;cursor:pointer;
  font-family:'Nunito',sans-serif;font-size:11px;font-weight:800;
  background:var(--tgbg);color:var(--hsub);
  border:1.5px solid var(--border);
  transition:background .2s,color .2s,box-shadow .2s,transform .15s,border-color .2s;
  flex-shrink:0;position:relative;z-index:0;
}
.cycle-mode-toggle-btn:active{transform:scale(.93);}
.cycle-mode-toggle-btn.mode-ttc{
  background:linear-gradient(155deg,rgba(255,180,90,.22),rgba(255,140,40,.14));
  color:#c8650a;border-color:rgba(255,150,50,.35);
}
[data-theme="dark"] .cycle-mode-toggle-btn.mode-ttc{color:#ffb15e;}
.cycle-mode-toggle-btn.mode-pregnant{
  background:linear-gradient(155deg,#b18cff,#7c5cff);
  color:#fff;border-color:transparent;
}
.cycle-mode-toggle-btn.mode-avoid{
  background:linear-gradient(155deg,rgba(56,189,248,.22),rgba(14,165,233,.14));
  color:#0369a1;border-color:rgba(14,165,233,.35);
}
[data-theme="dark"] .cycle-mode-toggle-btn.mode-avoid{color:#7dd3fc;}
.cycle-mode-toggle-btn .cm-icon{font-size:14px;line-height:1;}

/* ── Mode picker modal options ── */
.cm-opt{
  display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;
  border:2px solid var(--border);background:var(--chip);cursor:pointer;
  margin-bottom:10px;transition:all .15s;
}
.cm-opt:last-child{margin-bottom:0;}
.cm-opt.selected{border-color:var(--tf);background:rgba(26,26,26,.06);}
[data-theme="dark"] .cm-opt.selected{background:rgba(124,92,255,.14);border-color:rgba(140,120,255,.5);}
.cm-opt-icon{width:38px;height:38px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--tgbg);}
.cm-opt-body{flex:1;min-width:0;}
.cm-opt-title{font-size:13.5px;font-weight:900;color:var(--htext);}
.cm-opt-sub{font-size:11px;font-weight:700;color:var(--hsub);margin-top:2px;line-height:1.35;}

/* ── Partner Mode row inside picker ── */
.cm-divider{height:1px;background:var(--border);margin:6px 2px 12px;}
.cm-opt-partner.on{border-color:#e8617f;background:rgba(232,97,127,.08);}
[data-theme="dark"] .cm-opt-partner.on{background:rgba(255,107,157,.14);border-color:rgba(255,140,170,.5);}
.cm-opt-switch{
  width:38px;height:22px;border-radius:12px;flex-shrink:0;
  background:var(--border);position:relative;transition:background .2s;
}
.cm-opt-switch.on{background:linear-gradient(155deg,#ff9bb1,#e8617f);}
.cm-opt-switch-knob{
  position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s;
}
.cm-opt-switch.on .cm-opt-switch-knob{transform:translateX(16px);}

/* ── Pregnancy dashboard ── */
.preg-hero{margin:0 16px 14px;border-radius:24px;overflow:hidden;
  background:linear-gradient(150deg,#7c5cff,#b18cff 55%,#ffb3d6);
  box-shadow:0 14px 34px rgba(124,92,255,.25);position:relative;}
.preg-hero-inner{padding:22px 20px 20px;color:#fff;}
.preg-week-lbl{font-size:12px;font-weight:800;letter-spacing:.3px;color:rgba(255,255,255,.85);}
.preg-week-val{font-size:34px;font-weight:900;letter-spacing:-.6px;line-height:1.1;margin-top:2px;}
.preg-week-sub{font-size:12.5px;font-weight:700;color:rgba(255,255,255,.85);margin-top:6px;}
.preg-progress-wrap{margin-top:16px;height:8px;border-radius:6px;background:rgba(255,255,255,.22);overflow:hidden;}
.preg-progress-bar{height:100%;border-radius:6px;background:#fff;transition:width .5s ease;}
.preg-trimester-row{display:flex;justify-content:space-between;margin-top:6px;font-size:9.5px;font-weight:800;color:rgba(255,255,255,.7);letter-spacing:.2px;}
.preg-stats-row{display:flex;gap:10px;margin-top:16px;}
.preg-stat{flex:1;background:rgba(255,255,255,.16);border-radius:14px;padding:10px 8px;text-align:center;}
.preg-stat-val{font-size:15px;font-weight:900;line-height:1.15;}
.preg-stat-lbl{font-size:9.5px;font-weight:800;color:rgba(255,255,255,.78);margin-top:2px;letter-spacing:.2px;}
.preg-card{margin:0 16px 14px;border-radius:18px;background:var(--card);padding:16px;box-shadow:0 2px 12px rgba(0,0,0,.06);}
.preg-card-title{font-size:13px;font-weight:900;color:var(--htext);margin-bottom:4px;display:flex;align-items:center;gap:7px;}
.preg-card-text{font-size:12.5px;font-weight:600;color:var(--dsub);line-height:1.55;}

/* ── TTC banner ── */
.ttc-banner{margin:0 16px 12px;padding:13px 14px;border-radius:16px;
  background:linear-gradient(135deg,rgba(255,170,80,.16),rgba(255,140,40,.08));
  border:1px solid rgba(255,150,50,.25);
  display:flex;align-items:center;gap:11px;}
.ttc-banner-icon{width:36px;height:36px;border-radius:12px;flex-shrink:0;
  background:linear-gradient(135deg,#ffb15e,#ff8c28);
  display:flex;align-items:center;justify-content:center;font-size:17px;}
.ttc-banner-body{flex:1;min-width:0;}
.ttc-banner-title{font-size:13px;font-weight:900;color:var(--htext);}
.ttc-banner-sub{font-size:11px;font-weight:700;color:var(--hsub);margin-top:2px;line-height:1.35;}

/* Partner view header banner */
.partner-mode-banner{
  margin:0 18px 14px;padding:13px 14px;
  border-radius:16px;
  background:var(--pr-card,var(--card));
  border:1px solid var(--border);
  display:flex;align-items:center;gap:11px;
  animation:pmBannerIn .22s cubic-bezier(.22,.85,.25,1);
}
@keyframes pmBannerIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}
.partner-mode-banner-icon{
  width:38px;height:38px;border-radius:13px;flex-shrink:0;
  background:var(--pr-rose-grad,linear-gradient(155deg,#ff9bb1,#e8617f));
  display:flex;align-items:center;justify-content:center;
  font-size:17px;line-height:1;
}
.partner-mode-banner-body{flex:1;min-width:0;}
.partner-mode-banner-title{font-size:13.5px;font-weight:900;color:var(--htext);line-height:1.2;}
.partner-mode-banner-sub{font-size:11px;font-weight:700;color:var(--hsub);margin-top:2px;line-height:1.3;display:flex;align-items:center;gap:5px;}

/* Unpair button */
.pm-unpair-btn{
  padding:7px 13px;border-radius:11px;cursor:pointer;
  background:transparent;color:var(--hsub);
  font-size:11px;font-weight:800;font-family:'Nunito',sans-serif;
  border:1px solid var(--border);
  transition:border-color .2s,color .2s,transform .15s;
  white-space:nowrap;flex-shrink:0;
}
.pm-unpair-btn:hover{border-color:var(--pr-rose,#e8617f);color:var(--pr-rose,#e8617f);}
.pm-unpair-btn:active{transform:scale(.93);}

/* Partner mode cycle view wrapper */
.partner-cycle-view{
  padding:0;
  animation:pmIn .22s cubic-bezier(.22,.85,.25,1);
}
@keyframes pmIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

/* Big partner phase ring wrapper */
.partner-phase-hero{
  display:flex;flex-direction:column;align-items:center;
  padding:24px 0 20px;
}
.partner-phase-hero-name{
  margin-top:12px;font-size:15px;font-weight:900;
  color:var(--dtext);letter-spacing:-.1px;
}
.partner-phase-hero-day{
  font-size:12px;color:var(--dsub);font-weight:700;margin-top:3px;
}

/* Partner stat cards in partner mode */
.partner-stat-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 18px 16px;
}
.partner-stat-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:18px;padding:14px 13px;
  display:flex;flex-direction:column;gap:3px;
}
.partner-stat-emoji{font-size:18px;margin-bottom:2px;}
.partner-stat-val{font-size:20px;font-weight:900;color:var(--dtext);letter-spacing:-.3px;line-height:1.1;}
.partner-stat-lbl{font-size:10.5px;font-weight:700;color:var(--dsub);}

/* Partner moments section — reuses .pair-moment-wrap styles in partner mode */
.pm-moments-section{
  margin:0 18px 16px;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(255,107,157,.15);
  background:var(--card);
}
.pm-moments-head{
  display:flex;align-items:center;gap:10px;
  padding:13px 16px 11px;
  background:linear-gradient(135deg,rgba(255,107,157,.08),rgba(196,69,105,.04));
  border-bottom:1px solid rgba(255,107,157,.10);
}
.pm-moments-head-icon{
  width:32px;height:32px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(135deg,#FF6B9D,#C44569);
  display:flex;align-items:center;justify-content:center;font-size:16px;
  box-shadow:0 2px 8px rgba(255,107,157,.3);
}
.pm-moments-head-title{font-size:13px;font-weight:900;color:var(--htext);flex:1;}
.pm-moments-head-count{font-size:10px;font-weight:800;color:#FF6B9D;background:rgba(255,107,157,.12);padding:2px 8px;border-radius:20px;border:1px solid rgba(255,107,157,.2);}

/* Not-paired nudge in partner mode */
.pm-no-partner{
  margin:0 18px 14px;padding:20px 16px;text-align:center;
  border-radius:16px;background:var(--card);border:1px solid var(--border);
}
.pm-no-partner-emoji{font-size:36px;margin-bottom:10px;}
.pm-no-partner-title{font-size:14px;font-weight:900;color:var(--htext);margin-bottom:6px;}
.pm-no-partner-sub{font-size:12px;font-weight:600;color:var(--hsub);line-height:1.5;margin-bottom:14px;}
.pm-no-partner-btn{
  padding:10px 22px;border-radius:12px;border:none;cursor:pointer;
  background:var(--pr-rose-grad,linear-gradient(155deg,#ff9bb1,#e8617f));
  color:#fff;font-size:13px;font-weight:900;
  font-family:'Nunito',sans-serif;
  transition:opacity .2s,transform .15s;
}
.pm-no-partner-btn:active{transform:scale(.96);}

/* ── INSTALL BANNER ── */
/* ── NOTIFICATION PERMISSION CARD ── */
.notif-card{display:flex;align-items:center;gap:12px;background:var(--tgbg);border-radius:13px;padding:12px 14px;margin-bottom:12px;border:1.5px solid var(--border);transition:border-color .3s,background .3s;}
.notif-card.granted{border-color:#4CAF50;background:rgba(76,175,80,.07);}
.notif-card.denied{border-color:#f44336;background:rgba(244,67,54,.07);}
[data-theme=dark] .notif-card.granted{background:rgba(76,175,80,.12);}
[data-theme=dark] .notif-card.denied{background:rgba(244,67,54,.12);}
/* Notification srow tint states (used in settings) */
.srow.notif-granted{border-left:3px solid #4CAF50;}
.srow.notif-denied{border-left:3px solid #f44336;opacity:.75;}
.notif-bell{font-size:22px;flex-shrink:0;}
.notif-info{flex:1;min-width:0;}
.notif-lbl{font-size:13px;font-weight:800;color:var(--dtext);line-height:1.2;}
.notif-sub{font-size:11px;color:var(--dsub);margin-top:2px;font-weight:600;line-height:1.4;}
.notif-btn{padding:6px 13px;border-radius:10px;border:none;background:var(--tgon);color:#fff;font-size:12px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;white-space:nowrap;flex-shrink:0;transition:opacity .2s;}
.notif-btn:hover{opacity:.85;}
.notif-btn.off{background:var(--tgbg);color:var(--dsub);border:1.5px solid var(--border);cursor:default;}

/* ── PROFILE NOTIFICATION HISTORY ── */
.notif-hist-item{display:flex;align-items:flex-start;gap:10px;background:var(--tgbg);border-radius:13px;padding:11px 12px;margin-bottom:8px;}
.notif-hist-ico{width:30px;height:30px;border-radius:9px;background:var(--card);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;box-shadow:0 1px 3px rgba(0,0,0,.06);}
[data-theme=dark] .notif-hist-ico{background:var(--sbg);box-shadow:none;}
.notif-hist-body{flex:1;min-width:0;}
.notif-hist-title{font-size:12.5px;font-weight:800;color:var(--dtext);line-height:1.3;}
.notif-hist-sub{font-size:11px;font-weight:600;color:var(--dsub);margin-top:2px;line-height:1.4;}
.notif-hist-time{font-size:10px;font-weight:700;color:var(--dsub);opacity:.7;margin-top:4px;}
.notif-hist-empty{text-align:center;padding:26px 10px;font-size:12.5px;font-weight:700;color:var(--dsub);line-height:1.7;}
.notif-hist-clear{font-size:11px;font-weight:800;color:var(--dsub);background:none;border:none;cursor:pointer;font-family:'Nunito',sans-serif;padding:4px 2px;}
.notif-hist-clear:hover{color:var(--dtext);}
.notif-dot{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;border-radius:999px;background:#FF4757;color:#fff;font-size:9px;font-weight:900;display:flex;align-items:center;justify-content:center;padding:0 3px;box-shadow:0 0 0 2px var(--sbg);}
.notif-dot-mini{position:absolute;top:-1px;right:-1px;width:8px;height:8px;border-radius:50%;background:#FF4757;box-shadow:0 0 0 1.5px var(--mbg);display:none;}

/* ── PROFILE SHARE: upcoming events preview ── */
.pshare-evt{display:flex;align-items:center;gap:8px;background:var(--tgbg);border-radius:11px;padding:9px 12px;margin-bottom:6px;}
.pshare-evt-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.pshare-evt-name{flex:1;min-width:0;font-size:12px;font-weight:800;color:var(--dtext);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pshare-evt-date{font-size:10.5px;font-weight:700;color:var(--dsub);flex-shrink:0;}
/* ══════════════════════════════════════════
   SCHEDULE VIEW — Redesigned Timeline Layout
   ══════════════════════════════════════════ */
#scheduleView{
  display:flex;flex-direction:column;
  padding:0 0 80px;
  animation:mmFadeIn .25s cubic-bezier(.22,.85,.25,1);
  overflow-x:hidden;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  height:calc(100vh - 190px);
  max-height:680px;
}

/* ── Month Pill Strip (sticky top nav) ── */
.sv-month-strip{
  position:sticky;top:0;z-index:10;
  background:var(--bg);
  box-shadow:0 1px 0 var(--border),0 8px 16px -12px rgba(0,0,0,.18);
  padding:10px 14px 9px;
  display:flex;flex-direction:column;gap:7px;
  backdrop-filter:blur(20px) saturate(1.4);
  -webkit-backdrop-filter:blur(20px) saturate(1.4);
}
[data-theme=dark] .sv-month-strip{
  background:rgba(20,20,28,.82);
}
.sv-month-strip-scroll{
  display:flex;gap:6px;overflow-x:auto;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.sv-month-strip-scroll::-webkit-scrollbar{display:none;}
.sv-month-chip{
  flex-shrink:0;display:inline-flex;align-items:center;gap:4px;
  padding:5px 12px;border-radius:20px;border:none;cursor:pointer;
  font-family:'Nunito',sans-serif;font-size:11.5px;font-weight:800;
  background:var(--tgbg);color:var(--dsub);
  transition:background .16s,color .16s,transform .12s;
  white-space:nowrap;
}
.sv-month-chip:active{transform:scale(.93);}
.sv-month-chip.sv-cur{
  background:var(--tgon);color:#fff;
}
[data-theme=dark] .sv-month-chip.sv-cur{
  background:linear-gradient(135deg,#4e5178,#313456);color:#fff;
}
.sv-month-chip-dot{
  width:5px;height:5px;border-radius:50%;
  background:currentColor;opacity:.6;
}

/* ── Category filter chips ── */
.sv-filter-strip{
  display:flex;gap:6px;overflow-x:auto;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.sv-filter-strip::-webkit-scrollbar{display:none;}
.sv-filter-chip{
  flex-shrink:0;display:inline-flex;align-items:center;gap:5px;
  padding:5px 11px;border-radius:20px;cursor:pointer;
  font-family:'Nunito',sans-serif;font-size:11px;font-weight:800;
  background:transparent;color:var(--dsub);
  border:1.4px solid var(--border);
  transition:background .15s,color .15s,border-color .15s,transform .12s;
  white-space:nowrap;
}
.sv-filter-chip:active{transform:scale(.93);}
.sv-filter-chip.active{
  background:var(--tgon);color:#fff;border-color:transparent;
}
[data-theme=dark] .sv-filter-chip.active{
  background:linear-gradient(135deg,#4e5178,#313456);color:#fff;
}

/* ── Month Section Header ── */
.sv-month-section{
  padding:30px 16px 6px;
  display:flex;align-items:flex-end;gap:10px;
  position:relative;
}
.sv-month-label{
  font-size:26px;font-weight:900;letter-spacing:-.6px;
  color:var(--dtext);line-height:1;flex:1;
  position:relative;padding-bottom:9px;
}
.sv-month-label::after{
  content:'';position:absolute;left:0;bottom:0;
  width:30px;height:4px;border-radius:4px;
  background:linear-gradient(90deg,var(--tgon),transparent);
}
.sv-month-badge{
  font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;
  padding:3px 9px;border-radius:20px;margin-bottom:11px;
}
.sv-month-badge.current{background:rgba(59,130,246,.14);color:#3b82f6;}
[data-theme=dark] .sv-month-badge.current{background:rgba(122,183,255,.18);color:#7ab7ff;}
.sv-month-badge.past{background:var(--tgbg);color:var(--dsub);}
.sv-month-evt-count{
  font-size:10.5px;font-weight:800;color:var(--dsub);
  margin-bottom:11px;background:var(--tgbg);
  padding:3px 9px;border-radius:20px;
}

/* ── Timeline container ── */
.sv-timeline{
  padding:0 14px 0;
  position:relative;
}
.sv-timeline::before{
  content:'';position:absolute;
  left:40px;top:0;bottom:0;width:1px;
  background:linear-gradient(180deg,var(--border) 0%,transparent 100%);
  pointer-events:none;
}
[data-theme=dark] .sv-timeline::before{
  background:linear-gradient(180deg,rgba(255,255,255,.07) 0%,transparent 100%);
}

/* ── Day Block ── */
.sv-day-block{
  display:flex;align-items:flex-start;gap:0;
  margin-bottom:0;
  position:relative;
}

/* Date column (left) */
.sv-day-date{
  width:56px;flex-shrink:0;
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding-top:8px;
  padding-bottom:8px;
  position:relative;z-index:1;
}
.sv-day-bubble{
  width:42px;height:48px;border-radius:14px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--cell-bg);
  border:1.5px solid var(--border);
  cursor:pointer;transition:transform .14s,background .14s,border-color .14s;
  flex-shrink:0;gap:1px;
}
.sv-day-bubble:active{transform:scale(.88);}
.sv-day-bubble.today{
  background:var(--tgon);border-color:transparent;
  box-shadow:0 4px 14px rgba(26,26,26,.22);
}
[data-theme=dark] .sv-day-bubble.today{
  background:linear-gradient(135deg,#4e5178,#313456);
  box-shadow:0 4px 14px rgba(78,81,120,.38);
}
.sv-day-bubble.past{opacity:.52;}
.sv-day-bubble.wknd .sv-dn{color:var(--wknd);}
.sv-day-bubble.wknd.today .sv-dn{color:#fff;}
/* BS date — big number */
.sv-dn{font-size:16px;font-weight:900;color:var(--dtext);line-height:1;}
.sv-day-bubble.today .sv-dn{color:#fff;}
/* Weekday label inside bubble */
.sv-dw{font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:var(--dsub);margin-top:0;}
.sv-day-bubble.today .sv-dw{color:rgba(255,255,255,.75);}
/* AD date shown below bubble */
.sv-ad-label{
  font-size:8.5px;font-weight:700;color:var(--dsub);
  line-height:1;text-align:center;
  opacity:.75;
}
.sv-day-block.past .sv-ad-label{opacity:.5;}
/* BS divider line inside bubble */
.sv-bubble-sep{
  width:22px;height:1px;
  background:var(--border);
  margin:1px 0;
  opacity:.6;
}
.sv-day-bubble.today .sv-bubble-sep{background:rgba(255,255,255,.25);}

/* Cards column (right) */
.sv-day-cards{
  flex:1;min-width:0;
  padding:0 0 0 8px;
  display:flex;flex-direction:column;gap:0;
  padding-top:2px;
}

/* ── Event Row (slim, no heavy border) ── */
.sv-evt-card{
  display:flex;align-items:center;gap:10px;
  padding:8px 10px 8px 0;
  cursor:pointer;position:relative;
  border-bottom:1px solid var(--border);
  transition:background .13s;
  border-radius:0;background:transparent;border-left:none;border-right:none;border-top:none;
}
.sv-evt-card:first-child{border-top:1px solid var(--border);}
.sv-evt-card:active{background:var(--tgbg);}
[data-theme=dark] .sv-evt-card:active{background:rgba(255,255,255,.04);}

/* Thin color strip on far left */
.sv-evt-accent{
  width:3px;min-height:36px;border-radius:3px;flex-shrink:0;
  align-self:stretch;
}
.sv-evt-card.hol .sv-evt-accent{background:linear-gradient(180deg,#FF4757,#ff8080);}
.sv-evt-card.obs .sv-evt-accent{background:linear-gradient(180deg,#7ab7ff,#a5d0ff);}
.sv-evt-card.cyc .sv-evt-accent{background:linear-gradient(180deg,#FF6B9D,#ffaac8);}
.sv-evt-card.evt .sv-evt-accent{background:var(--dsub);}

/* Icon dot — minimal, not a heavy circle */
.sv-evt-icon{
  width:32px;height:32px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:15px;flex-shrink:0;
}
.sv-evt-card.hol .sv-evt-icon{background:rgba(255,71,87,.10);}
[data-theme=dark] .sv-evt-card.hol .sv-evt-icon{background:rgba(255,71,87,.16);}
.sv-evt-card.obs .sv-evt-icon{background:rgba(122,183,255,.10);}
[data-theme=dark] .sv-evt-card.obs .sv-evt-icon{background:rgba(122,183,255,.16);}
.sv-evt-card.cyc .sv-evt-icon{background:rgba(255,107,157,.10);}
[data-theme=dark] .sv-evt-card.cyc .sv-evt-icon{background:rgba(255,107,157,.16);}
.sv-evt-card.evt .sv-evt-icon{background:var(--tgbg);}

/* Text block */
.sv-evt-body{flex:1;min-width:0;}
.sv-evt-title{
  font-size:13.5px;font-weight:800;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  line-height:1.25;color:var(--dtext);
}
.sv-evt-card.hol .sv-evt-title{color:#c8303030;}
[data-theme=dark] .sv-evt-card.hol .sv-evt-title{color:#ffaaaa;}
.sv-evt-card.obs .sv-evt-title{color:var(--dtext);}
.sv-evt-card.cyc .sv-evt-title{color:var(--dtext);}

.sv-evt-sub{
  font-size:10.5px;font-weight:600;color:var(--dsub);
  margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* Tag pill — small, right-aligned */
.sv-evt-tag{
  flex-shrink:0;font-size:9px;font-weight:900;
  padding:3px 8px;border-radius:20px;
  text-transform:uppercase;letter-spacing:.6px;
  white-space:nowrap;
}
.sv-evt-tag.hol{background:rgba(255,71,87,.12);color:#e04040;}
[data-theme=dark] .sv-evt-tag.hol{background:rgba(255,71,87,.18);color:#ff8888;}
.sv-evt-tag.obs{background:rgba(122,183,255,.12);color:#4a90d9;}
[data-theme=dark] .sv-evt-tag.obs{background:rgba(122,183,255,.18);color:#90c8ff;}
.sv-evt-tag.cyc{background:rgba(255,107,157,.12);color:#c44569;}
[data-theme=dark] .sv-evt-tag.cyc{background:rgba(255,107,157,.18);color:#ff90b8;}
.sv-evt-tag.evt{background:var(--tgbg);color:var(--dsub);}

/* ── No events state ── */
.sv-empty-month{
  margin:4px 0 8px;
  padding:12px 14px;
  border-radius:12px;
  background:var(--tgbg);
  font-size:11.5px;font-weight:700;
  color:var(--dsub);font-style:italic;
  display:flex;align-items:center;gap:8px;
}
.sv-empty-global{
  text-align:center;padding:60px 24px;
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.sv-empty-global-icon{font-size:36px;opacity:.4;}
.sv-empty-global-text{font-size:13px;font-weight:700;color:var(--dsub);}

/* ── Today line connector ── */
.sv-today-line{
  position:absolute;left:40px;right:0;height:1.5px;
  background:linear-gradient(90deg,rgba(255,71,87,.7),transparent);
  border-radius:2px;pointer-events:none;top:0;
}

/* Today day block — subtle red left border */
.sv-day-block.is-today{
  border-left:3px solid #ff4757;
  border-radius:0 0 0 0;
  background:rgba(255,71,87,.03);
  margin-left:-3px;
  padding-left:3px;
}
[data-theme=dark] .sv-day-block.is-today{
  background:rgba(255,71,87,.05);
  border-left-color:#ff6b6b;
}

/* No-events placeholder inside today row */
.sv-today-no-events{
  font-size:12px;font-weight:700;color:var(--dsub);
  padding:10px 0;
  font-style:italic;
  opacity:.75;
}

/* ── Past opacity ── */
.sv-day-block.past .sv-day-cards{opacity:.5;}

/* ══════════════════════════════════════════
   SCHEDULE VIEW v2 — Agenda / Google-Calendar-style layout
   ══════════════════════════════════════════ */
.sv2-timeline{padding:4px 0 14px;position:relative;}
.sv2-timeline::before{
  content:'';position:absolute;left:37px;top:4px;bottom:4px;width:1px;
  background:linear-gradient(180deg,var(--border) 0%,var(--border) 85%,transparent 100%);
  opacity:.7;pointer-events:none;
}
[data-theme=dark] .sv2-timeline::before{
  background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.08) 85%,transparent 100%);
}
@keyframes sv2RowIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
.sv2-row{
  display:flex;align-items:flex-start;gap:14px;padding:11px 16px;cursor:pointer;
  transition:background .15s;position:relative;z-index:1;
  content-visibility:auto;contain-intrinsic-size:auto 88px;
}
.sv2-row:active{background:rgba(127,127,150,.08);}
.sv2-row.is-today{
  background:linear-gradient(90deg,rgba(122,183,255,.10),transparent 70%);
  border-radius:16px;
  margin:2px 6px;padding-left:10px;
}
[data-theme=dark] .sv2-row.is-today{background:linear-gradient(90deg,rgba(122,183,255,.09),transparent 70%);}
.sv2-daycol{width:42px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:5px;padding-top:2px;position:relative;}
.sv2-dow{font-size:11.5px;font-weight:800;color:var(--dsub);text-transform:uppercase;letter-spacing:.4px;}
.sv2-dow.today{color:#7ab7ff;}
.sv2-dow.wknd{color:var(--wknd);}
.sv2-dnum{
  width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:700;color:var(--dtext);line-height:1;
  transition:transform .15s,box-shadow .15s;
}
.sv2-dnum.wknd{color:var(--wknd);}
.sv2-row.has-evt .sv2-dnum:not(.today){
  box-shadow:0 0 0 2px color-mix(in srgb, var(--rc,#3b82f6) 45%, transparent);
}
.sv2-dnum.today{
  background:#aecbfa;color:#062e6f;
  box-shadow:0 2px 10px rgba(122,183,255,.35);
}
[data-theme=dark] .sv2-dnum.today{
  background:#aecbfa;color:#062e6f;
  box-shadow:0 2px 12px rgba(122,183,255,.28);
}
.sv2-today-tag{
  font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;
  color:#7ab7ff;background:rgba(122,183,255,.14);
  padding:2px 7px;border-radius:20px;margin-top:1px;white-space:nowrap;
}
.sv2-today-tag.tmrw{
  color:var(--dsub);background:var(--tgbg);
}
.sv2-content{flex:1;min-width:0;padding-top:5px;display:flex;flex-direction:column;gap:9px;}
.sv2-empty-text{
  font-size:14.5px;font-weight:500;color:var(--dsub);opacity:.7;
  padding-top:6px;display:flex;align-items:center;gap:7px;
}
.sv2-empty-text::before{
  content:'+';font-size:15px;font-weight:800;
  width:20px;height:20px;border-radius:50%;
  border:1.5px dashed var(--dsub);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;opacity:.7;line-height:1;
}

/* Collapsed empty-week range line */
.sv2-week-range{
  padding:10px 16px 10px 72px;
  font-size:13.5px;font-weight:600;color:var(--dsub);
  cursor:default;opacity:.55;letter-spacing:.2px;
  position:relative;z-index:1;
  content-visibility:auto;contain-intrinsic-size:auto 40px;
}

/* Solid pill event card — icon + text */
.sv2-evt-pill{
  --pc:#3b82f6;
  position:relative;overflow:hidden;
  display:flex;align-items:center;gap:12px;
  border-radius:16px;padding:12px 16px 12px 18px;
  font-size:14.5px;font-weight:700;line-height:1.3;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--pc) 7%, var(--tgbg)) 0%, var(--tgbg) 65%);
  border:1px solid color-mix(in srgb, var(--pc) 18%, transparent);
  box-shadow:0 1px 3px rgba(20,15,35,.06);
  transition:transform .12s,filter .12s,background .12s;
  contain:content;
}
[data-theme=dark] .sv2-evt-pill{
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--pc) 14%, transparent) 0%, rgba(255,255,255,.045) 65%);
  box-shadow:0 1px 4px rgba(0,0,0,.24);
}
.sv2-evt-pill::before{
  content:'';position:absolute;left:0;top:9px;bottom:9px;width:4px;
  border-radius:4px;background:var(--pc);
}
.sv2-evt-pill::after{
  content:'';position:absolute;right:-30px;top:-30px;width:70px;height:70px;
  border-radius:50%;background:radial-gradient(circle,color-mix(in srgb, var(--pc) 22%, transparent),transparent 72%);
  pointer-events:none;
}
.sv2-evt-pill:active{transform:scale(.985);filter:brightness(.94);}
.sv2-evt-pill.hol{--pc:#f5940a;}
.sv2-evt-pill.obs{--pc:#a855f7;}
.sv2-evt-pill.cyc{--pc:#ec4899;}
.sv2-pill-icon{
  width:36px;height:36px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg, color-mix(in srgb, var(--pc) 88%, #fff 12%), var(--pc) 55%, color-mix(in srgb, var(--pc) 80%, #000 20%));
  color:#fff;position:relative;overflow:hidden;
  box-shadow:0 4px 10px -2px color-mix(in srgb, var(--pc) 60%, transparent),
             inset 0 1px 0 rgba(255,255,255,.4);
}
.sv2-pill-icon::after{
  content:'';position:absolute;left:0;right:0;top:0;height:50%;
  background:linear-gradient(rgba(255,255,255,.28),transparent);
  pointer-events:none;
}
.sv2-pill-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
.sv2-pill-title{
  color:var(--dtext);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.sv2-pill-sub{
  font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  color:var(--pc);background:color-mix(in srgb, var(--pc) 15%, transparent);
  padding:2.5px 8px;border-radius:7px;
  display:inline-flex;align-items:center;width:fit-content;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
.sv2-pill-chev{
  flex-shrink:0;color:var(--pc);
  width:24px;height:24px;border-radius:50%;
  background:color-mix(in srgb, var(--pc) 14%, transparent);
  display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:900;
}

/* Birthday banner card */
.sv2-bday-banner{
  position:relative;border-radius:20px;overflow:hidden;
  height:104px;
  box-shadow:0 3px 10px rgba(20,15,35,.14);
  background:linear-gradient(135deg,#e9d6f2 0%,#f3c9d8 48%,#f8e3c6 100%);
  contain:content;
}
[data-theme=dark] .sv2-bday-banner{
  box-shadow:0 3px 12px rgba(0,0,0,.32);
  background:linear-gradient(135deg,#3a2a4e 0%,#4a2a3e 48%,#4a3a26 100%);
}
.sv2-bday-banner:active{filter:brightness(.96);}
.sv2-bday-decor{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.sv2-bday-decor span{position:absolute;font-size:26px;opacity:.9;filter:saturate(1.05);}
.sv2-bday-decor span:nth-child(1){right:14px;top:8px;font-size:34px;}
.sv2-bday-decor span:nth-child(2){right:56px;top:20px;font-size:24px;}
.sv2-bday-decor span:nth-child(3){right:88px;bottom:10px;font-size:30px;}
.sv2-bday-decor span:nth-child(4){right:8px;bottom:36px;font-size:18px;}
.sv2-bday-decor span:nth-child(5){right:120px;top:6px;font-size:16px;}
.sv2-bday-scrim{
  position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(0,0,0,.30) 0%,transparent 55%);
}
.sv2-bday-label{
  position:absolute;left:0;right:0;bottom:0;z-index:1;
  display:flex;align-items:center;gap:8px;
  padding:14px 16px;font-size:15.5px;font-weight:700;
  color:#2a1a33;
}
[data-theme=dark] .sv2-bday-label{color:#fff;}

/* Floating jump-to-today button */
.sched-fab-wrap{
  position:fixed;left:0;right:0;bottom:0;margin:0 auto;
  width:390px;max-width:100vw;height:0;z-index:40;
  pointer-events:none;
}
.sched-today-fab{
  position:absolute;right:18px;bottom:88px;pointer-events:auto;
  display:flex;align-items:center;gap:7px;
  padding:11px 18px 11px 14px;border:none;border-radius:30px;
  background:var(--tgon);color:#fff;
  font-family:'Nunito',sans-serif;font-size:13px;font-weight:800;
  box-shadow:0 6px 18px rgba(26,26,26,.28);
  cursor:pointer;transition:transform .15s,opacity .2s;
  animation:sv2RowIn .25s cubic-bezier(.22,.85,.25,1) both;
}
[data-theme=dark] .sched-today-fab{
  background:linear-gradient(135deg,#4e5178,#313456);
  box-shadow:0 6px 18px rgba(0,0,0,.4);
}
.sched-today-fab:active{transform:scale(.94);}

/* Floating add-event button */
.sched-add-fab{
  position:absolute;right:18px;bottom:88px;pointer-events:auto;
  width:52px;height:52px;border:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--tgon);color:#fff;
  box-shadow:0 6px 18px rgba(26,26,26,.3);
  cursor:pointer;transition:transform .15s;
  animation:sv2RowIn .25s cubic-bezier(.22,.85,.25,1) both;
}
[data-theme=dark] .sched-add-fab{
  background:linear-gradient(135deg,#4e5178,#313456);
  box-shadow:0 6px 18px rgba(0,0,0,.42);
}
.sched-add-fab:active{transform:scale(.92);}

/* ── Backwards compat for old gc- classes still referenced in JS ── */
.gc-month-banner{padding:20px 16px 4px;}
.gc-month-banner-label{font-size:22px;font-weight:900;color:var(--dtext);letter-spacing:-.4px;}
.gc-month-current-badge,.gc-month-past-badge{display:none;}
.gc-month-empty{display:none;}
.gc-day-row{display:none;}
.schd-empty{text-align:center;padding:50px 20px;color:var(--dsub);font-size:13px;font-weight:700;}

/* ── WEEK VIEW (Google Calendar style) ── */
#weekView{
  display:none;
  flex-direction:column;
  animation:mmFadeIn .2s cubic-bezier(.22,.85,.25,1);
  overflow:hidden;
  background:var(--bg);
}

/* ── DAY VIEW (single-column Google Calendar style) ── */
#dayView{
  display:none;
  flex-direction:column;
  animation:mmFadeIn .2s cubic-bezier(.22,.85,.25,1);
  overflow:hidden;
  background:var(--bg);
}
.dv-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 10px 4px;
  border-bottom:1px solid var(--border);
  background:var(--bg);
  position:sticky;top:0;z-index:10;
}
.dv-nav-btn{
  width:32px;height:32px;border:none;background:transparent;cursor:pointer;
  display:flex;align-items:center;justify-content:center;border-radius:50%;
  color:var(--dtext);transition:background .15s;flex-shrink:0;
}
.dv-nav-btn:hover{background:var(--tgbg);}
.dv-nav-btn svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.3;fill:none;}
.dv-nav-center{text-align:center;flex:1;}
.dv-nav-title{font-size:16px;font-weight:900;color:var(--dtext);letter-spacing:-.3px;}
.dv-nav-sub{font-size:10px;font-weight:700;color:var(--dsub);margin-top:1px;}
.dv-day-hdr{
  display:flex;align-items:center;justify-content:center;
  padding:8px 14px 6px;
  border-bottom:1px solid var(--border);
  background:var(--bg);
  position:sticky;top:53px;z-index:9;
  gap:10px;
}
.dv-day-badge{
  width:44px;height:44px;border-radius:14px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--tgbg);
}
.dv-day-badge.today{background:var(--tgon);}
.dv-day-badge-num{font-size:18px;font-weight:900;color:var(--dtext);line-height:1;}
.dv-day-badge.today .dv-day-badge-num{color:#fff;}
.dv-day-badge-wd{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--dsub);margin-top:2px;}
.dv-day-badge.today .dv-day-badge-wd{color:rgba(255,255,255,.78);}
.dv-day-meta{display:flex;flex-direction:column;gap:2px;}
.dv-day-meta-date{font-size:13px;font-weight:800;color:var(--dtext);}
.dv-day-meta-bs{font-size:11px;font-weight:700;color:var(--dsub);}
.dv-hol-banner-row{
  display:flex;flex-wrap:wrap;gap:5px;
  padding:7px 12px;
  border-bottom:1px solid var(--border);
  background:var(--bg);
}
.dv-hol-pill{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 10px;border-radius:20px;
  font-size:11px;font-weight:800;
}
.dv-hol-pill.hol{background:rgba(255,71,87,.12);color:#d63031;}
[data-theme=dark] .dv-hol-pill.hol{background:rgba(255,71,87,.2);color:#FF4757;}
.dv-hol-pill.obs{background:rgba(122,183,255,.12);color:#5a8fd6;}
[data-theme=dark] .dv-hol-pill.obs{background:rgba(122,183,255,.18);color:#7ab7ff;}
.dv-scroll{
  flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;
  position:relative;
  height:calc(100vh - 200px);
  max-height:680px;
}
.dv-grid{
  display:flex;position:relative;
}
.dv-time-col{
  width:56px;flex-shrink:0;position:relative;
}
.dv-time-label{
  height:54px;display:flex;align-items:flex-start;justify-content:flex-end;
  padding:0 10px 0 0;
  font-size:9.5px;font-weight:700;color:var(--dsub);
  position:relative;
}
.dv-day-col-area{
  flex:1;position:relative;min-width:0;
  border-left:1px solid var(--border);
}
.dv-hour-cell{
  height:54px;border-top:1px solid var(--border);
  position:relative;cursor:pointer;transition:background .1s;
}
.dv-hour-cell:hover{background:rgba(90,90,200,.04);}
[data-theme=dark] .dv-hour-cell:hover{background:rgba(140,148,220,.06);}
.dv-hour-cell.half::after{
  content:'';position:absolute;top:50%;left:0;right:0;
  border-top:1px dashed var(--border);opacity:.5;
}
.dv-now-line{
  position:absolute;left:-56px;right:0;z-index:5;pointer-events:none;
}
.dv-now-line-dot{
  width:10px;height:10px;border-radius:50%;background:#FF4757;
  position:absolute;left:52px;top:-5px;
}
.dv-now-line-rule{
  position:absolute;left:62px;right:0;height:2px;background:#FF4757;top:-1px;
}
.dv-event{
  position:absolute;left:4px;right:4px;border-radius:8px;
  padding:4px 8px;cursor:pointer;overflow:hidden;
  font-size:11px;font-weight:800;line-height:1.3;z-index:3;
  transition:filter .13s,transform .13s;min-height:22px;
}
.dv-event:active{filter:brightness(.88);transform:scale(.98);}
.dv-event-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dv-event-time{font-size:9px;opacity:.82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}
.dv-allday-area{
  padding:0 12px 8px;border-bottom:1px solid var(--border);
  background:var(--bg);
}
.dv-allday-label{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--dsub);padding:6px 0 4px;}
.dv-allday-pill{
  display:flex;align-items:center;gap:6px;
  padding:5px 10px;border-radius:8px;margin-bottom:4px;
  font-size:12px;font-weight:800;
}
.dv-allday-pill.evt{background:rgba(122,183,255,.13);color:var(--dtext);}
[data-theme=dark] .dv-allday-pill.evt{background:rgba(122,183,255,.18);}
.dv-allday-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.dv-empty{
  text-align:center;padding:40px 20px;color:var(--dsub);font-size:13px;font-weight:700;
}

/* ── MONTH TAB VIEW ── */
#monthTabView{
  animation:mmFadeIn .2s cubic-bezier(.22,.85,.25,1);
  padding-bottom:10px;
}
.mtv-wrap{
  padding:0 10px 10px;
}
.mtv-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 6px 10px;
}
.mtv-hdr-center{
  text-align:center;flex:1;
}
.mtv-title{
  font-size:16px;font-weight:900;color:var(--cell-text);letter-spacing:-.3px;
}
.mtv-sub{
  font-size:11px;font-weight:700;color:var(--cell-muted);margin-top:1px;
}
.mtv-nav-btn{
  width:34px;height:34px;border-radius:11px;border:none;
  background:var(--tgbg);cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  color:var(--dtext);transition:background .15s,transform .1s;
}
.mtv-nav-btn:active{background:var(--chip);transform:scale(.9);}
.mtv-dhdrs{
  display:grid;grid-template-columns:repeat(7,1fr);
  padding:0 4px 6px;
  border-bottom:1px solid var(--border);
}
.mtv-dhdr{
  text-align:center;font-size:9px;font-weight:800;
  color:var(--dsub);letter-spacing:.5px;text-transform:uppercase;
  padding:0 0 6px;
}
.mtv-dhdr-wknd{
  color:var(--wknd);opacity:.7;
}
.mtv-grid{
  display:grid;grid-template-columns:repeat(7,1fr);
  padding:0;
  gap:0;
  border-top:1px solid var(--border);
  border-left:1px solid var(--border);
}
.mtv-cell{
  display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;
  padding:5px 3px 4px;cursor:pointer;border-radius:0;
  transition:background .12s;position:relative;
  min-height:130px;overflow:hidden;
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.mtv-cell:active{background:var(--cell-hover);}
.mtv-cell-empty{cursor:default;min-height:130px;
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.mtv-dnum{
  font-size:12px;font-weight:900;color:var(--cell-text);
  line-height:1;text-align:center;
  width:22px;height:22px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;flex-shrink:0;
}
.mtv-wknd .mtv-dnum{
  color:var(--wknd);
}
.mtv-has-hol .mtv-dnum{
  color:var(--hol);
}
.mtv-today .mtv-dnum{
  background:var(--today-grad);
  color:var(--today-text);
  box-shadow:0 3px 10px rgba(0,0,0,.22);
}
.mtv-dots{
  display:flex;gap:3px;margin-top:4px;align-items:center;justify-content:center;
}
.mtv-dot{
  width:5px;height:5px;border-radius:50%;flex-shrink:0;
}
.mtv-dot-hol{background:var(--dot-hol);}
.mtv-dot-evt{background:var(--dot-evt);}

/* Inline event chips — events visible directly in the grid, like the reference design */
.mtv-chips{
  display:flex;flex-direction:column;gap:2px;
  width:100%;margin-top:3px;
}
.mtv-chip{
  font-size:8.5px;font-weight:800;
  padding:2px 4px;border-radius:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  line-height:1.35;width:100%;box-sizing:border-box;
  letter-spacing:-.1px;
}
.mtv-chip-hol{background:var(--chip-hol-bg);color:var(--chip-hol-text);}
.mtv-chip-evt{background:var(--chip-evt-bg);color:var(--chip-evt-text);}
.mtv-chip-cyc{background:rgba(255,107,157,.12);color:#c44569;}
[data-theme=dark] .mtv-chip-cyc{background:rgba(255,107,157,.18);color:#ff8fb3;}
.mtv-chip-more{background:var(--chip-bg);color:var(--dsub);font-size:8px;text-align:center;}



/* Week nav header */
.wv-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 10px 4px;
  border-bottom:1px solid var(--border);
  background:var(--bg);
  position:sticky;top:0;z-index:10;
}
.wv-nav-btn{
  width:32px;height:32px;border:none;background:transparent;cursor:pointer;
  display:flex;align-items:center;justify-content:center;border-radius:50%;
  color:var(--dtext);transition:background .15s;flex-shrink:0;
}
.wv-nav-btn:hover{background:var(--tgbg);}
.wv-nav-btn svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.3;fill:none;}
.wv-nav-title{font-size:13px;font-weight:900;color:var(--dtext);text-align:center;letter-spacing:-.2px;}
.wv-nav-sub{font-size:10px;font-weight:700;color:var(--dsub);text-align:center;margin-top:1px;}

/* Day headers row */
.wv-day-headers{
  display:flex;
  padding-left:44px;
  border-bottom:1px solid var(--border);
  background:var(--bg);
  position:sticky;top:53px;z-index:9;
}
.wv-day-col-hdr{
  flex:1;display:flex;flex-direction:column;align-items:center;
  padding:6px 2px 5px;border-left:1px solid var(--border);
}
.wv-day-col-hdr:first-child{border-left:none;}
.wv-day-name{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--dsub);}.wv-day-name.wknd{color:var(--wknd);}
.wv-day-num{
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:900;color:var(--dtext);margin-top:2px;
}
.wv-day-num.today{background:var(--tgon);color:#fff;}
.wv-day-num.wknd{color:var(--wknd);}

/* Scrollable time grid */
.wv-scroll{
  flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;
  position:relative;
  height:calc(100vh - 220px);
  max-height:640px;
}
.wv-grid{
  display:flex;position:relative;
}
/* Time gutter */
.wv-time-col{
  width:44px;flex-shrink:0;position:relative;
}
.wv-time-label{
  height:54px;display:flex;align-items:flex-start;justify-content:flex-end;
  padding:0 8px 0 0;
  font-size:9px;font-weight:700;color:var(--dsub);
  margin-top:0;
  position:relative;
}
.wv-time-label:first-child{padding-top:10px;}
/* Day columns grid */
.wv-days-area{
  flex:1;display:flex;position:relative;min-width:0;
}
.wv-day-col{
  flex:1;border-left:1px solid var(--border);
  position:relative;min-width:0;
}
.wv-day-col:first-child{border-left:none;}
.wv-hour-cell{
  height:54px;border-top:1px solid var(--border);
  position:relative;
  cursor:pointer;
  transition:background .1s;
}
.wv-hour-cell:hover{background:rgba(90,90,200,.04);}
[data-theme=dark] .wv-hour-cell:hover{background:rgba(140,148,220,.06);}
.wv-hour-cell.half::after{
  content:'';position:absolute;top:50%;left:0;right:0;
  border-top:1px dashed var(--border);opacity:.5;
}

/* Now line */
.wv-now-line{
  position:absolute;left:-44px;right:0;z-index:5;pointer-events:none;
}
.wv-now-line-dot{
  width:10px;height:10px;border-radius:50%;background:#FF4757;
  position:absolute;left:40px;top:-5px;
}
.wv-now-line-rule{
  position:absolute;left:50px;right:0;height:2px;background:#FF4757;top:-1px;
}

/* Events */
.wv-event{
  position:absolute;left:2px;right:2px;border-radius:6px;
  padding:3px 5px;cursor:pointer;overflow:hidden;
  font-size:10px;font-weight:800;line-height:1.25;z-index:3;
  transition:filter .13s, transform .13s;
  min-height:18px;
}
.wv-event:active{filter:brightness(.88);transform:scale(.97);}
.wv-event-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wv-event-time{font-size:8.5px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Holiday/observance banners in day columns */
.wv-hol-banner{
  position:absolute;top:2px;left:2px;right:2px;z-index:4;
  border-radius:5px;padding:2px 5px;
  font-size:9px;font-weight:800;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:rgba(255,71,87,.13);color:#d63031;
  cursor:pointer;
}
[data-theme=dark] .wv-hol-banner{background:rgba(255,71,87,.2);color:#FF4757;}
.wv-obs-banner{
  position:absolute;top:20px;left:2px;right:2px;z-index:4;
  border-radius:5px;padding:2px 5px;
  font-size:9px;font-weight:800;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:rgba(122,183,255,.12);color:#5a8fd6;
  cursor:pointer;
}
[data-theme=dark] .wv-obs-banner{background:rgba(122,183,255,.18);color:#7ab7ff;}

/* Weekend cols */
.wv-day-col.wknd-col{background:rgba(224,62,62,.025);}
[data-theme=dark] .wv-day-col.wknd-col{background:rgba(255,128,128,.03);}

/* Today col */
.wv-day-col.today-col{background:rgba(90,90,200,.03);}
[data-theme=dark] .wv-day-col.today-col{background:rgba(140,148,220,.04);}

/* Past months — dimmed */
.gc-month-banner.past .gc-month-banner-label{color:var(--dsub);font-size:22px;}
.gc-month-banner.current .gc-month-banner-label{color:var(--dtext);}
.gc-month-banner.current{border-left:3px solid var(--tgon);padding-left:13px;}
.gc-month-current-badge{font-size:10px;font-weight:800;color:var(--tgon);text-transform:uppercase;letter-spacing:.6px;margin-top:3px;opacity:.85;}
.gc-month-past-badge{font-size:10px;font-weight:700;color:var(--dsub);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;opacity:.65;}
.gc-day-row.past{opacity:.45;}
.gc-day-num.past .gc-day-n{color:var(--dsub);}
.gc-day-num.past .gc-day-wd{color:var(--dimsub);}
.gc-month-empty{font-size:12px;color:var(--dsub);font-style:italic;padding:8px 16px 14px;font-weight:600;}

/* ── HOME SCREEN WIDGET ── */
.widget-card{background:var(--tgbg);border-radius:16px;padding:16px;margin-top:6px;}
.widget-preview-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px;}
.widget-thumb{border-radius:14px;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.18);flex-shrink:0;display:block;}
.widget-info-title{font-size:13px;font-weight:800;color:var(--dtext);margin-bottom:4px;}
.widget-info-sub{font-size:11.5px;color:var(--dsub);font-weight:600;line-height:1.55;}
.widget-dl-btn{width:100%;padding:11px;border-radius:12px;background:linear-gradient(135deg,#1a1a1a,#000000);border:none;color:#fff;font-size:13px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;display:flex;align-items:center;justify-content:center;gap:7px;transition:opacity .2s;margin-bottom:12px;}
.widget-dl-btn:hover{opacity:.88;}
.widget-os-tabs{display:flex;gap:6px;margin-bottom:10px;}
.widget-os-tab{flex:1;padding:6px 0;border-radius:9px;border:none;font-size:12px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;background:var(--sbg);color:var(--dsub);transition:all .2s;}
.widget-os-tab.on{background:var(--tgon);color:#fff;}
.widget-steps{background:var(--sbg);border-radius:12px;padding:12px 14px;}
.widget-step{display:flex;align-items:flex-start;gap:9px;padding:5px 0;font-size:11.5px;font-weight:600;color:var(--dsub);line-height:1.55;border-bottom:1px solid var(--border);}
.widget-step:last-child{border-bottom:none;padding-bottom:0;}
.ws-num{width:19px;height:19px;border-radius:50%;background:var(--tgon);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
/* ── POMODORO FOCUS TIMER ── */
#pomodoroBtn{
  background:rgba(34,197,94,.08);
  border-color:rgba(34,197,94,.2);
  color:#16a34a;
}
[data-theme="dark"] #pomodoroBtn{color:#4ade80;border-color:rgba(74,222,128,.2);background:rgba(74,222,128,.07);}
#pomodoroBtn:hover{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.4);}
#pomodoroBtn svg{opacity:.9;stroke:currentColor;fill:none;}
#pomodoroBtn.on{
  background:linear-gradient(135deg,#16a34a 0%,#15803d 100%)!important;
  color:#fff!important;border-color:rgba(255,255,255,.15)!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.06),0 7px 15px rgba(22,163,74,.35),0 0 12px rgba(34,197,94,.2)!important;
}

/* Pomodoro body */
#pomodoroBody{
  flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;
  background:radial-gradient(ellipse 120% 70% at 50% -10%,rgba(22,163,74,.1) 0%,transparent 60%),
             radial-gradient(ellipse 80% 60% at 80% 100%,rgba(34,197,94,.07) 0%,transparent 60%),
             var(--sheet-bg);
  display:flex;align-items:flex-start;justify-content:center;
  position:relative;
}
.pomo-wrap{
  width:100%;max-width:520px;padding:24px 16px 48px;
  display:flex;flex-direction:column;align-items:center;gap:0;
  position:relative;z-index:1;
}

/* Mode tabs */
.pomo-tabs{display:flex;gap:6px;background:var(--tgbg);border:1px solid var(--border);border-radius:12px;padding:4px;margin-bottom:22px;width:100%;}
.pomo-tab{flex:1;padding:8px 4px;border:none;border-radius:9px;font-size:12px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;background:transparent;color:var(--sheet-muted);transition:all .2s;}
.pomo-tab.on{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;box-shadow:0 3px 10px rgba(22,163,74,.3);}

/* Timer ring */
.pomo-ring-wrap{position:relative;width:220px;height:220px;margin-bottom:16px;flex-shrink:0;}
.pomo-ring-svg{width:220px;height:220px;}
.pomo-ring-bg{stroke:var(--border);stroke-width:12;fill:none;}
[data-theme="dark"] .pomo-ring-bg{stroke:rgba(255,255,255,.07);}
.pomo-ring-progress{stroke-linecap:round;stroke-width:12;fill:none;transition:stroke-dashoffset .5s cubic-bezier(.4,0,.2,1),stroke .4s;}
.pomo-ring-center{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2px;
}
.pomo-time{font-size:52px;font-weight:900;color:var(--sheet-text);line-height:1;letter-spacing:-2px;font-variant-numeric:tabular-nums;}
.pomo-phase-lbl{font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--sheet-muted);}
.pomo-session-count{font-size:11px;font-weight:700;color:var(--sheet-muted);margin-top:2px;}

/* Controls */
.pomo-controls{display:flex;gap:10px;margin-bottom:20px;}
.pomo-ctrl-btn{
  display:flex;align-items:center;justify-content:center;gap:6px;
  padding:12px 24px;border-radius:50px;border:none;cursor:pointer;
  font-size:14px;font-weight:900;font-family:'Nunito',sans-serif;
  transition:all .2s;
}
.pomo-ctrl-btn.primary{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;box-shadow:0 6px 20px rgba(22,163,74,.35);}
.pomo-ctrl-btn.primary:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(22,163,74,.4);}
.pomo-ctrl-btn.primary:active{transform:scale(.97);}
.pomo-ctrl-btn.secondary{background:var(--tgbg);color:var(--sheet-muted);border:1px solid var(--border);}
.pomo-ctrl-btn.secondary:hover{background:var(--chip);}
.pomo-ctrl-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.5;}
.pomo-ctrl-btn.primary svg{stroke:#fff;}

/* Settings row */
.pomo-settings-row{display:flex;gap:8px;margin-bottom:20px;width:100%;}
.pomo-set-card{flex:1;background:var(--tgbg);border:1px solid var(--border);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;align-items:center;gap:4px;}
.pomo-set-label{font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--sheet-muted);}
.pomo-set-val{display:flex;align-items:center;gap:6px;}
.pomo-set-num{font-size:20px;font-weight:900;color:var(--sheet-text);min-width:28px;text-align:center;}
.pomo-adj-btn{width:24px;height:24px;border:1px solid var(--border);background:var(--chip);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--sheet-muted);transition:all .2s;font-family:'Nunito',sans-serif;}
.pomo-adj-btn:hover{background:var(--tgbg);color:var(--sheet-text);}

/* Dashboard */
.pomo-dash{width:100%;background:var(--tgbg);border:1px solid var(--border);border-radius:16px;padding:14px;margin-bottom:18px;}
.pomo-dash-title{font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--sheet-muted);margin-bottom:10px;}
.pomo-dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.pomo-dash-item{display:flex;flex-direction:column;align-items:center;gap:3px;}
.pomo-dash-val{font-size:22px;font-weight:900;color:var(--sheet-text);line-height:1;}
.pomo-dash-sub{font-size:9px;font-weight:700;color:var(--sheet-muted);text-align:center;line-height:1.3;}
.pomo-session-dots{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;justify-content:center;}
.pomo-dot{width:10px;height:10px;border-radius:50%;background:var(--border);transition:background .3s;}
[data-theme="dark"] .pomo-dot{background:rgba(255,255,255,.12);}
.pomo-dot.done{background:linear-gradient(135deg,#16a34a,#22c55e);box-shadow:0 0 8px rgba(34,197,94,.4);}
.pomo-dot.break{background:linear-gradient(135deg,#3b82f6,#60a5fa);box-shadow:0 0 8px rgba(59,130,246,.35);}

/* To-do list */
.pomo-todo{width:100%;}
.pomo-todo-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.pomo-todo-title{font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--sheet-muted);}
.pomo-todo-clear{font-size:10px;font-weight:700;color:var(--sheet-muted);cursor:pointer;background:none;border:none;padding:0;font-family:'Nunito',sans-serif;transition:color .2s;}
.pomo-todo-clear:hover{color:#ef4444;}
.pomo-todo-input-row{display:flex;gap:7px;margin-bottom:10px;}
.pomo-todo-input{flex:1;padding:10px 13px;border-radius:11px;border:1.5px solid var(--border);background:var(--tgbg);color:var(--sheet-text);font-size:13px;font-family:'Nunito',sans-serif;font-weight:600;outline:none;transition:border .2s;}
.pomo-todo-input:focus{border-color:rgba(34,197,94,.5);}
.pomo-todo-input::placeholder{color:var(--sheet-muted);}
.pomo-todo-add-btn{width:38px;height:38px;border-radius:11px;border:none;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .2s;}
.pomo-todo-add-btn:hover{opacity:.85;}
.pomo-todo-list{display:flex;flex-direction:column;gap:6px;}
.pomo-todo-item{
  display:flex;align-items:center;gap:10px;
  background:var(--card);border:1px solid var(--border);
  border-radius:12px;padding:10px 12px;cursor:pointer;transition:all .2s;
}
.pomo-todo-item:hover{background:var(--cell-hover);}
[data-theme="dark"] .pomo-todo-item:hover{background:rgba(255,255,255,.08);}
.pomo-todo-item.done-task{opacity:.55;}
.pomo-todo-check{
  width:20px;height:20px;border-radius:50%;border:2px solid var(--border);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;background:transparent;
}
[data-theme="dark"] .pomo-todo-check{border-color:rgba(255,255,255,.2);}
.pomo-todo-item.done-task .pomo-todo-check{background:linear-gradient(135deg,#16a34a,#22c55e);border-color:transparent;}
.pomo-todo-check svg{width:10px;height:10px;stroke:#fff;stroke-width:3;fill:none;opacity:0;transition:opacity .2s;}
.pomo-todo-item.done-task .pomo-todo-check svg{opacity:1;}
.pomo-todo-text{flex:1;font-size:13px;font-weight:700;color:var(--sheet-text);line-height:1.3;}
.pomo-todo-item.done-task .pomo-todo-text{text-decoration:line-through;color:var(--sheet-muted);}
.pomo-todo-del{width:24px;height:24px;border:none;background:none;color:var(--sheet-muted);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s;flex-shrink:0;}
.pomo-todo-del:hover{background:rgba(239,68,68,.15);color:#ef4444;}

/* Toast notification */
.pomo-toast{
  position:fixed;top:24px;left:50%;transform:translateX(-50%) translateY(-80px);
  background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;
  padding:12px 24px;border-radius:50px;font-size:13px;font-weight:800;
  font-family:'Nunito',sans-serif;z-index:300;transition:transform .4s cubic-bezier(.34,1.56,.64,1);
  box-shadow:0 8px 24px rgba(22,163,74,.4);white-space:nowrap;
}
.pomo-toast.show{transform:translateX(-50%) translateY(0);}

/* ── BOTTOM NAV BAR ── */
.bottom-nav{
  position:fixed;bottom:0;left:0;right:0;margin:0 auto;
  width:390px;max-width:100vw;
  display:flex;align-items:stretch;
  background:rgba(255,255,255,1);
  border-top:1px solid rgba(0,0,0,.07);
  box-shadow:none !important;
  -webkit-box-shadow:none !important;
  filter:none !important;
  -webkit-filter:none !important;
  overflow:visible;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  z-index:60;padding-bottom:env(safe-area-inset-bottom,0px);
}
[data-theme=dark] .bottom-nav{
  background:rgba(16,18,28,1);
  border-top:1px solid rgba(255,255,255,.03);
  box-shadow:none !important;
  -webkit-box-shadow:none !important;
  filter:none !important;
  -webkit-filter:none !important;
}
.bnav-btn{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;padding:10px 4px 12px;border:none;background:none;cursor:pointer;
  color:#8b90aa;font-family:'Nunito',system-ui,sans-serif;
  font-size:11px;font-weight:700;letter-spacing:.2px;
  transition:color .18s;-webkit-tap-highlight-color:transparent;
  position:relative;
}
[data-theme=dark] .bnav-btn{ color:#8890b0; }
.bnav-btn svg{
  width:26px;height:26px;stroke:currentColor;fill:none;
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
  transition:transform .18s;
}
.bnav-btn i{font-size:26px;transition:transform .18s;line-height:1;}
.bnav-btn.active i{transform:scale(1.1);}
.bnav-btn.active{ color:var(--tf,#1a1a1a); }
[data-theme=dark] .bnav-btn.active{ color:#a0a8e0; }
.bnav-btn.active svg{ transform:scale(1.1); }
.bnav-home-filled{ display:none; }
.bnav-btn.active .bnav-home-outline{ display:none; }
.bnav-btn.active .bnav-home-filled{ display:inline-block; }
.bnav-btn.active::after{
  content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:36px;height:3px;border-radius:0 0 3px 3px;
  background:var(--tf,#1a1a1a);
}
[data-theme=dark] .bnav-btn.active::after{ background:#a0a8e0; }

/* ── STREAKS TAB — redesigned ── */
.daycounter-view{
  display:none;flex-direction:column;
  position:fixed;
  top:0;left:50%;transform:translateX(-50%);
  width:390px;max-width:100vw;
  bottom:62px;
  overflow-y:auto;
  padding:0 0 16px;
  gap:0;
  z-index:50;
  -webkit-overflow-scrolling:touch;
  background:radial-gradient(circle at top center,rgba(34,197,94,.08),transparent 32%),var(--app-bg);
}
#dayCounterView{ padding-bottom:72px; }
[data-theme="dark"] .daycounter-view{
  background:
    radial-gradient(ellipse 80% 30% at 50% 0%, rgba(34,197,94,.07), transparent 60%),
    linear-gradient(180deg,#0d0f16 0%,#111320 50%,#0d0f16 100%);
  /* ── Core tokens ── */
  --bg:#0d0f16;
  --card:#181b26;
  --border:rgba(255,255,255,.09);
  --htext:#e8ecff;
  --dtext:#cdd2ee;
  --hsub:#7c80a4;
  --dsub:#545878;
  --chip:#202438;
  --mbg:#181b26;
  --ov:rgba(0,0,8,.82);
  /* ── CRITICAL: accent tokens so check-ins & rings are visible ── */
  --tf:#3a4a7a;
  --tt:#232840;
  --tf-text:#b0b8e0;
  --tgbg:#232840;
  --tgon:#4a5a9a;
  --icon:#8890c0;
}
.daycounter-view.active{ display:flex; }

/* Cycle view ssec alignment — match hero card's 16px margin */
#cycleView .ssec{ padding-left:16px; padding-right:16px; }
#cycleView .ssect{ margin-bottom:8px; }

/* Cycle view specific background */
#cycleView{
  background:
    radial-gradient(ellipse 90% 35% at 50% 0%, rgba(255,107,157,.10), transparent 55%),
    var(--app-bg);
}
[data-theme="dark"] #cycleView{
  background:
    radial-gradient(ellipse 90% 35% at 50% 0%, rgba(196,69,105,.13), transparent 55%),
    linear-gradient(180deg,#0d0f16 0%,#111320 50%,#0d0f16 100%);
  --bg:#0d0f16;--card:#181b26;--border:rgba(255,255,255,.09);
  --htext:#e8ecff;--dtext:#cdd2ee;--hsub:#7c80a4;--dsub:#545878;
  --chip:#202438;--mbg:#181b26;--ov:rgba(0,0,8,.82);
  --tf:#3a4a7a;--tt:#232840;--tf-text:#b0b8e0;
  --tgbg:#232840;--tgon:#4a5a9a;--icon:#8890c0;
}

/* Page header */
.dc-page-header{
  padding:18px 18px 14px;
  display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:2px;
  flex-shrink:0;
}
.dc-page-header-text{
  display:flex;flex-direction:column;gap:2px;
}
.dc-fab-inline{
  position:fixed;bottom:calc(62px + 20px + env(safe-area-inset-bottom,0px));
  right:max(20px,calc(50vw - 175px));
  width:54px;height:54px;
  border-radius:50%;border:none;cursor:pointer;
  background:var(--fab,var(--tf));color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 20px rgba(60,60,70,.45);
  transition:transform .18s,box-shadow .18s;
  flex-shrink:0;
  z-index:65;
}
.dc-fab-inline:hover{transform:scale(1.07);box-shadow:0 8px 24px rgba(60,60,70,.55);}
.dc-fab-inline:active{transform:scale(.92);}
.dc-fab-inline svg{width:24px;height:24px;}
.dc-page-label{
  font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--dsub);
}
.dc-page-title{
  font-size:26px;font-weight:900;color:var(--htext);letter-spacing:-.5px;line-height:1.05;
}

/* ── HERO SUMMARY CARD ── */
.dc-hero{
  display:flex;flex-direction:column;gap:14px;
  margin:0 14px 8px;padding:18px 18px 16px;
  background:
    radial-gradient(ellipse 130% 110% at 100% 0%,rgba(34,197,94,.12),transparent 62%),
    var(--card);
  border:1px solid var(--border);border-radius:24px;
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 6px 22px rgba(80,70,160,.07);
  transition:background .28s, border-color .28s, box-shadow .3s;
}
[data-theme=dark] .dc-hero{
  background:
    radial-gradient(ellipse 130% 110% at 100% 0%,rgba(34,197,94,.13),transparent 62%),
    rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.09);
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset,0 6px 22px rgba(0,0,0,.3);
}
.dc-hero.complete{
  border-color:rgba(34,197,94,.35);
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 6px 24px rgba(34,197,94,.16);
}
[data-theme=dark] .dc-hero.complete{
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset,0 6px 24px rgba(34,197,94,.2);
}
.dc-hero.tappable{cursor:pointer;transition:transform .15s cubic-bezier(.22,.85,.25,1),background .28s,border-color .28s,box-shadow .3s;}
.dc-hero.tappable:active{transform:scale(.98);}
.dc-hero-top{display:flex;align-items:center;gap:16px;}
.dc-hero-ring{position:relative;width:72px;height:72px;flex-shrink:0;}
.dc-hero-ring svg{transform:rotate(-90deg);width:100%;height:100%;}
.dc-hero-ring-bg{stroke:var(--border);stroke-width:7;fill:none;}
.dc-hero-ring-fg{stroke:url(#dcHeroGrad);stroke-width:7;fill:none;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.22,.85,.25,1),filter .3s;}
[data-theme=dark] .dc-hero-ring-bg{stroke:rgba(255,255,255,.10);}
.dc-hero.complete .dc-hero-ring-fg{filter:drop-shadow(0 0 4px rgba(34,197,94,.6));animation:dcRingPulse 2.2s ease-in-out infinite;}
@media (prefers-reduced-motion:reduce){ .dc-hero.complete .dc-hero-ring-fg{animation:none;} }
@keyframes dcRingPulse{
  0%,100%{filter:drop-shadow(0 0 3px rgba(34,197,94,.45));}
  50%{filter:drop-shadow(0 0 6px rgba(34,197,94,.7));}
}
/* Center content — number and checkmark cross-fade in place, no cramped stacking */
.dc-hero-ring-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.dc-hero-ring-num{
  position:absolute;font-size:19px;font-weight:900;color:var(--htext);line-height:1;
  font-variant-numeric:tabular-nums;letter-spacing:-.3px;
  transition:opacity .25s ease,transform .3s cubic-bezier(.34,1.56,.64,1);
  opacity:1;transform:scale(1);
}
.dc-hero-ring-check{
  position:absolute;width:26px;height:26px;color:#16a34a;
  opacity:0;transform:scale(.4);
  transition:opacity .25s ease,transform .35s cubic-bezier(.34,1.56,.64,1);
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.15));
}
[data-theme=dark] .dc-hero-ring-check{color:#eafff2;}
.dc-hero.complete .dc-hero-ring-num{opacity:0;transform:scale(.5);}
.dc-hero.complete .dc-hero-ring-check{opacity:1;transform:scale(1);}
/* "Today" badge — a small floating pill anchored to the ring's bottom edge */
.dc-hero-ring-badge{
  position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);
  background:var(--card);border:1.5px solid var(--border);
  padding:2.5px 8px;border-radius:999px;
  font-size:8px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;
  color:var(--dsub);white-space:nowrap;
  box-shadow:0 2px 5px rgba(30,30,60,.10);
  transition:color .2s,border-color .2s,background .2s;
}
[data-theme=dark] .dc-hero-ring-badge{background:#1c2030;border-color:rgba(255,255,255,.10);box-shadow:0 2px 6px rgba(0,0,0,.35);}
.dc-hero.complete .dc-hero-ring-badge{color:#16a34a;border-color:rgba(34,197,94,.4);}
[data-theme=dark] .dc-hero.complete .dc-hero-ring-badge{color:#d7f9e4;border-color:rgba(34,197,94,.45);}
.dc-hero-div{width:1px;align-self:stretch;background:var(--border);flex-shrink:0;}
.dc-hero-stats{flex:1;min-width:0;display:flex;gap:14px;}
.dc-hero-stat{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0;}
.dc-hero-stat-top{display:flex;align-items:center;gap:7px;}
.dc-hero-stat-icon{
  font-size:13px;line-height:1;flex-shrink:0;
  width:26px;height:26px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
}
.dc-hero-stat-icon.flame{background:rgba(224,140,46,.14);}
.dc-hero-stat-icon.list{background:rgba(58,127,224,.12);}
[data-theme=dark] .dc-hero-stat-icon.flame{background:rgba(230,176,90,.18);}
[data-theme=dark] .dc-hero-stat-icon.list{background:rgba(120,160,255,.16);}
.dc-hero-stat-num{font-size:22px;font-weight:900;color:var(--htext);line-height:1;letter-spacing:-.5px;font-variant-numeric:tabular-nums;}
.dc-hero-stat-lbl{font-size:10px;font-weight:800;color:var(--dsub);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;}
.dc-hero-status{
  font-size:12px;font-weight:800;color:var(--dsub);
  padding-top:12px;border-top:1px solid var(--border);
  transition:color .2s,border-color .2s;
}
.dc-hero.complete .dc-hero-status{color:#16a34a;}
[data-theme=dark] .dc-hero.complete .dc-hero-status{color:#4ade80;}

/* Work Hours card */
.wh-card{
  background:var(--card);
  border-radius:22px;
  margin:6px 14px 0;
  padding:18px 18px 16px;
  border:1px solid var(--border);
  box-shadow:0 4px 18px rgba(80,70,160,.06);
  transition:background .28s,border-color .28s,box-shadow .3s;
}
[data-theme=dark] .wh-card{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.09);
  box-shadow:0 4px 18px rgba(0,0,0,.28);
}
.wh-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px;}
.wh-card-title{display:flex;align-items:center;gap:9px;font-size:14.5px;font-weight:900;color:var(--htext);}
[data-theme=dark] .wh-card-title{color:#e8ecff;}
.wh-card-icon{
  font-size:15px;line-height:1;flex-shrink:0;
  width:30px;height:30px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(224,140,46,.14);
}
[data-theme=dark] .wh-card-icon{background:rgba(230,176,90,.18);}
.wh-week-total{
  font-size:10.5px;font-weight:800;color:#6d5bd0;background:rgba(99,102,241,.12);
  padding:5px 11px;border-radius:999px;white-space:nowrap;flex-shrink:0;
}
[data-theme=dark] .wh-week-total{color:#b7b2ff;background:rgba(129,140,248,.18);}
.wh-today-row{display:flex;align-items:center;gap:9px;margin-bottom:16px;}
.wh-today-label{font-size:12.5px;font-weight:800;color:var(--dsub);flex-shrink:0;}
.wh-input{
  flex:1;min-width:0;padding:10px 13px;border-radius:13px;border:1.5px solid var(--sbdr);
  background:var(--sbg);color:var(--dtext);font-size:14px;font-weight:800;
  font-family:'Nunito',sans-serif;transition:border-color .18s,box-shadow .18s;
}
.wh-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.14);}
.wh-input::-webkit-outer-spin-button,.wh-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.wh-save-btn{
  flex-shrink:0;padding:10px 18px;border-radius:13px;border:none;
  background:linear-gradient(135deg,#3a3a3a,#000);
  color:#fff;font-size:13px;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;
  transition:transform .15s,box-shadow .15s;box-shadow:0 3px 10px rgba(0,0,0,.16);
}
.wh-save-btn:active{transform:scale(.96);box-shadow:0 1px 4px rgba(0,0,0,.14);}
.wh-logged-row{
  display:flex;align-items:center;justify-content:space-between;flex:1;gap:8px;
  background:rgba(58,158,110,.09);border-radius:13px;padding:10px 13px;
  border:1px solid rgba(58,158,110,.16);
}
[data-theme=dark] .wh-logged-row{background:rgba(76,209,148,.11);border-color:rgba(76,209,148,.2);}
.wh-logged-txt{font-size:13px;font-weight:800;color:var(--htext);display:flex;align-items:center;gap:6px;}
[data-theme=dark] .wh-logged-txt{color:#e8ecff;}
.wh-logged-txt b{color:#2f9e63;font-size:16px;}
[data-theme=dark] .wh-logged-txt b{color:#5fe3a3;}
.wh-edit-btn{
  background:rgba(58,158,110,.14);border:none;color:#2f9e63;cursor:pointer;padding:6px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;border-radius:9px;
  transition:background .15s,transform .15s;
}
[data-theme=dark] .wh-edit-btn{background:rgba(76,209,148,.18);color:#5fe3a3;}
.wh-edit-btn:active{transform:scale(.9);background:rgba(58,158,110,.26);}
.wh-week-bars{display:flex;gap:7px;justify-content:space-between;padding-top:2px;}
.wh-day{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;}
.wh-day-bar-track{
  width:100%;height:54px;border-radius:10px;background:var(--tgbg);
  position:relative;overflow:hidden;display:flex;align-items:flex-end;
  transition:background .2s;
}
[data-theme=dark] .wh-day-bar-track{background:rgba(255,255,255,.06);}
.wh-day-bar-fill{
  width:100%;background:linear-gradient(180deg,#4ade80,#16a34a);border-radius:10px 10px 0 0;
  transition:height .5s cubic-bezier(.22,.85,.25,1);min-height:0;
  position:relative;display:flex;align-items:flex-start;justify-content:center;
}
.wh-day-bar-fill.today{background:linear-gradient(180deg,#5a9bf0,#1a5fc4);}
.wh-day-val{
  font-size:9px;font-weight:900;color:#fff;padding-top:3px;
  text-shadow:0 1px 2px rgba(0,0,0,.25);white-space:nowrap;
}
.wh-day-lbl{font-size:9.5px;font-weight:800;color:var(--dsub);text-transform:uppercase;}
.wh-day-lbl.today{color:#fff;background:#1a1a1a;border-radius:999px;padding:2px 7px;}
[data-theme=dark] .wh-day-lbl.today{color:#0f1115;background:#e8ecff;}

/* Focus Timer quick-tool card */
.dc-tool-card{
  display:flex;align-items:center;gap:10px;
  background:var(--card);
  border-radius:14px;
  margin:4px 14px 6px;padding:9px 12px;
  border:1px solid var(--border);
  box-shadow:0 4px 18px rgba(80,70,160,.06);
  cursor:pointer;
  transition:transform .15s,box-shadow .15s,background .28s,border-color .28s;
}
.dc-tool-card:active{transform:scale(.99);}
[data-theme=dark] .dc-tool-card{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.09);
  box-shadow:0 4px 18px rgba(0,0,0,.28);
}
.dc-tool-icon{
  width:36px;height:36px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;background:rgba(224,62,62,.1);
}
[data-theme=dark] .dc-tool-icon{background:rgba(255,100,100,.14);}
.dc-tool-icon.echo{background:rgba(200,146,58,.14);}
[data-theme=dark] .dc-tool-icon.echo{background:rgba(230,176,90,.18);}
.dc-tool-main{flex:1;min-width:0;}
.dc-tool-name{font-size:14.5px;font-weight:900;color:var(--htext);}
[data-theme=dark] .dc-tool-name{color:#e8ecff;}
.dc-tool-sub{font-size:11px;font-weight:700;color:var(--dsub);margin-top:2px;}
[data-theme=dark] .dc-tool-sub{color:#7c80a4;}
.dc-tool-chev{width:18px;height:18px;color:var(--dsub);flex-shrink:0;}

/* Section label */
.dc-section-lbl{
  font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;
  color:var(--dsub);padding:14px 18px 10px;flex-shrink:0;margin-top:6px;
  display:flex;align-items:center;justify-content:space-between;
}
.dc-section-lbl span.dc-section-count{
  font-weight:800;color:var(--dsub);background:var(--chip);
  padding:2px 8px;border-radius:999px;font-size:10px;letter-spacing:.4px;
}

/* ── HABIT CARDS ── */
.dc-card{
  display:flex;align-items:center;gap:10px;
  background:var(--card);
  border-radius:20px;
  margin:0 14px 12px;padding:13px 14px;
  border:1px solid var(--border);
  box-shadow:0 4px 18px rgba(80,70,160,.06);
  flex-shrink:0;
  transition:transform .15s,box-shadow .15s,background .28s,border-color .28s;
  -webkit-touch-callout:none;-webkit-user-select:none;user-select:none;
}
.dc-card:active{transform:scale(.99);}
.dc-card.dc-dragging{
  transition:none;box-shadow:0 10px 28px rgba(0,0,0,.18);z-index:20;position:relative;
  opacity:.94;cursor:grabbing;
}
.dc-card.pinned{border-color:rgba(224,140,46,.4);background:rgba(224,140,46,.05);}
[data-theme=dark] .dc-card.pinned{background:rgba(224,140,46,.08);}
[data-theme=dark] .dc-card{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.09);
  box-shadow:0 4px 18px rgba(0,0,0,.28);
}
.dc-group-lbl{
  margin:2px 18px 8px;font-size:11px;font-weight:900;color:var(--dsub);
  text-transform:uppercase;letter-spacing:.6px;
}
.dc-group-lbl:not(:first-child){margin-top:6px;}

/* Drag handle */
.dc-drag-handle{
  flex-shrink:0;width:20px;height:44px;display:flex;align-items:center;justify-content:center;
  color:var(--dsub);opacity:.55;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;
}
.dc-drag-handle:active{opacity:1;cursor:grabbing;}

/* Streak ring */
.dc-card-ring{position:relative;width:56px;height:56px;flex-shrink:0;}
.dc-card-ring svg{transform:rotate(-90deg);width:100%;height:100%;}
.dc-card-ring-bg{stroke:var(--border);stroke-width:5;fill:none;}
.dc-card-ring-fg{stroke:var(--acc,var(--tf));stroke-width:5;fill:none;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.22,.85,.25,1);}
.dc-card-ring-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.dc-card-ring-num{font-size:17px;font-weight:900;color:var(--htext);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.5px;}
.dc-card-ring-unit{font-size:7px;font-weight:800;color:var(--dsub);text-transform:uppercase;letter-spacing:.3px;margin-top:1px;}
[data-theme=dark] .dc-card-ring-bg{stroke:rgba(255,255,255,.10);}
[data-theme=dark] .dc-card-ring-num{color:#e8ecff;}
[data-theme=dark] .dc-card-ring-unit{color:#7c80a4;}

/* Main column */
.dc-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px;}
.dc-card-header{display:flex;align-items:center;gap:8px;}
.dc-card-name{
  font-size:14.5px;font-weight:900;color:var(--htext);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;
}
[data-theme=dark] .dc-card-name{color:#e8ecff;}
.dc-card-type{
  font-size:9px;font-weight:900;letter-spacing:.7px;text-transform:uppercase;
  padding:3px 9px;border-radius:999px;white-space:nowrap;flex-shrink:0;
}
.dc-card-type.build{background:rgba(58,158,110,.12);color:#2f9e63;}
.dc-card-type.quit{background:rgba(224,62,62,.1);color:#d6453f;}
.dc-card-type.countdown{background:rgba(58,127,224,.12);color:#3a7fe0;}
[data-theme=dark] .dc-card-type.build{background:rgba(76,209,148,.16);color:#5fe3a3;}
[data-theme=dark] .dc-card-type.quit{background:rgba(255,100,100,.16);color:#ff9090;}
[data-theme=dark] .dc-card-type.countdown{background:rgba(120,160,255,.18);color:#8fb0ff;}

.dc-card-sub{font-size:11px;font-weight:700;color:var(--dsub);}
.dc-card-sub b{color:var(--acc,var(--tf));font-weight:900;}
[data-theme=dark] .dc-card-sub{color:#7c80a4;}
[data-theme=dark] .dc-card-sub b{color:#82a0ff;}

.dc-card-note{
  font-size:11px;font-weight:600;color:var(--dsub);font-style:italic;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  padding:4px 8px;background:var(--chip,rgba(0,0,0,.04));border-radius:8px;
}
[data-theme=dark] .dc-card-note{color:#9096b8;}

.dc-card-pct-row{display:flex;gap:6px;}
.dc-pct-pill{
  font-size:10px;font-weight:800;color:var(--dsub);padding:2px 8px;border-radius:999px;
  background:var(--chip,rgba(0,0,0,.05));
}
.dc-pct-pill b{font-weight:900;}
.dc-pct-pill.hi{background:rgba(58,158,110,.13);color:#2f9e63;}
.dc-pct-pill.mid{background:rgba(224,140,46,.13);color:#c47a1f;}
.dc-pct-pill.lo{background:rgba(224,62,62,.1);color:#d6453f;}
[data-theme=dark] .dc-pct-pill.hi{background:rgba(76,209,148,.16);color:#5fe3a3;}
[data-theme=dark] .dc-pct-pill.mid{background:rgba(224,140,46,.18);color:#e0a24e;}
[data-theme=dark] .dc-pct-pill.lo{background:rgba(255,100,100,.16);color:#ff9090;}

/* Week dots */
.dc-week{display:flex;gap:4px;}
.dc-week-dot{
  flex:1;height:18px;border-radius:6px;background:var(--border);
  display:flex;align-items:center;justify-content:center;
  font-size:8px;font-weight:900;color:var(--dsub);
  transition:background .2s,color .2s,box-shadow .2s;
}
.dc-week-dot.done{
  background:var(--acc,#22c55e);
  color:#fff;
  box-shadow:0 2px 8px color-mix(in srgb,var(--acc,#22c55e) 40%,transparent);
}
.dc-week-dot.today{box-shadow:0 0 0 1.5px var(--acc,var(--tf));}
.dc-week-dot.today:not(.done){color:var(--acc,var(--tf));}
/* dark mode: week dots need stronger contrast */
[data-theme=dark] .dc-week-dot{
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.35);
}
[data-theme=dark] .dc-week-dot.done{
  background:var(--acc,#22c55e);
  color:#fff;
  box-shadow:0 2px 10px rgba(34,197,94,.45);
}
[data-theme=dark] .dc-week-dot.today:not(.done){
  background:rgba(255,255,255,.12);
  color:rgba(255,255,255,.7);
  box-shadow:0 0 0 1.5px rgba(255,255,255,.3);
}

/* Actions column */
.dc-card-actions{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;}
.dc-icon-btn{
  width:38px;height:38px;border-radius:13px;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:transform .12s,opacity .12s,background .15s,color .15s;
}
.dc-icon-btn svg{width:18px;height:18px;}
.dc-icon-btn:active{transform:scale(.9);opacity:.85;}
/* Not yet checked in — show the + icon prominently */
.dc-icon-btn.dc-check{
  background:var(--acc,#22c55e);
  color:#fff;
  box-shadow:0 4px 12px color-mix(in srgb,var(--acc,#22c55e) 40%,transparent);
}
/* Already checked in today — softer tinted state */
.dc-icon-btn.dc-check.done{
  background:rgba(34,197,94,.16);
  color:#22c55e;
  box-shadow:0 0 0 1.5px rgba(34,197,94,.35);
}
/* Dark mode overrides for check button */
[data-theme=dark] .dc-icon-btn.dc-check{
  background:var(--acc,#22c55e);
  color:#fff;
  box-shadow:0 4px 14px rgba(34,197,94,.35);
}
[data-theme=dark] .dc-icon-btn.dc-check.done{
  background:rgba(34,197,94,.22);
  color:#4ade80;
  box-shadow:0 0 0 1.5px rgba(34,197,94,.45);
}
.dc-card-more{position:relative;}
.dc-icon-btn.dc-more{width:26px;height:26px;border-radius:9px;background:transparent;color:var(--dsub);}
.dc-icon-btn.dc-more svg{width:15px;height:15px;}
.dc-icon-btn.dc-more:hover{background:var(--chip);}
[data-theme=dark] .dc-icon-btn.dc-more{color:rgba(255,255,255,.35);}
[data-theme=dark] .dc-icon-btn.dc-more:hover{background:rgba(255,255,255,.10);}
.dc-card-menu{
  position:absolute;top:30px;right:0;z-index:5;min-width:118px;
  background:var(--mbg);border:1px solid var(--border);border-radius:13px;
  box-shadow:0 10px 28px rgba(0,0,0,.16);padding:5px;
  display:none;flex-direction:column;gap:2px;
}
[data-theme=dark] .dc-card-menu{
  background:#1e2232;
  border-color:rgba(255,255,255,.12);
  box-shadow:0 10px 28px rgba(0,0,0,.55);
}
.dc-card-menu.open{display:flex;}
.dc-card-menu.flip-up{top:auto;bottom:30px;}
.dc-card-menu button{
  border:none;background:transparent;text-align:left;padding:8px 10px;border-radius:9px;
  font-size:12.5px;font-weight:800;color:var(--dtext);cursor:pointer;
  font-family:'Nunito',system-ui,sans-serif;
}
.dc-card-menu button:hover{background:var(--chip);}
[data-theme=dark] .dc-card-menu button{color:#cdd2ee;}
[data-theme=dark] .dc-card-menu button:hover{background:rgba(255,255,255,.08);}
.dc-card-menu button.danger{color:#d6453f;}
[data-theme=dark] .dc-card-menu button.danger{color:#ff8080;}

/* Empty state */
.dc-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;padding:64px 32px;color:var(--hsub);text-align:center;
  margin:0 14px 12px;background:var(--card);border:1px solid var(--border);
  border-radius:20px;box-shadow:0 4px 18px rgba(80,70,160,.06);
  transition:background .28s,border-color .28s;
}
[data-theme=dark] .dc-empty{
  background:rgba(255,255,255,.03);
  border-color:rgba(255,255,255,.08);
  box-shadow:0 4px 18px rgba(0,0,0,.28);
}
.dc-empty svg{width:44px;height:44px;stroke:var(--tf);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.8;}
[data-theme=dark] .dc-empty svg{stroke:#5a6090;opacity:.9;}
.dc-empty-title{font-size:17px;font-weight:900;color:var(--dtext);}
.dc-empty-sub{font-size:13px;font-weight:600;line-height:1.5;color:var(--hsub);}

/* ══════════════════════════════════════════════════════════════════════
   ACTIVITY HEATMAP (GitHub-style contribution graph for habit check-ins)
   ══════════════════════════════════════════════════════════════════════ */
.act-card{
  margin:6px 16px 18px;padding:18px 16px 16px;
  background:var(--card);border:1px solid var(--border);border-radius:22px;
  box-shadow:0 4px 18px rgba(80,70,160,.06);
}
[data-theme=dark] .act-card{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.09);
  box-shadow:0 4px 18px rgba(0,0,0,.28);
}
.act-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.act-title{font-size:16px;font-weight:900;color:var(--htext);letter-spacing:-.2px;}
.act-sub{font-size:11.5px;font-weight:700;color:var(--dsub);}
.act-scroll{overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;}
.act-scroll::-webkit-scrollbar{height:0;}
.act-graph{display:inline-flex;flex-direction:column;min-width:100%;}
.act-months-row{display:flex;margin-bottom:5px;}
.act-months-spacer{width:26px;flex-shrink:0;}
.act-months{display:grid;gap:3px;}
.act-month-lbl{font-size:10px;font-weight:800;color:var(--dsub);white-space:nowrap;}
.act-body-row{display:flex;gap:4px;}
.act-daylabels{display:grid;width:22px;flex-shrink:0;}
.act-daylabel{font-size:9px;font-weight:800;color:var(--dsub);display:flex;align-items:center;line-height:1;}
.act-grid{display:grid;grid-template-rows:repeat(7,1fr);grid-auto-flow:column;}
.act-cell{width:11px;height:11px;border-radius:3px;background:var(--border);box-sizing:border-box;position:relative;}
[data-theme=dark] .act-cell{background:rgba(255,255,255,.06);}
.act-cell.act-future{background:transparent;}
.act-cell.act-l0{background:var(--border);}
[data-theme=dark] .act-cell.act-l0{background:rgba(255,255,255,.06);}
.act-cell.act-today{box-shadow:0 0 0 1.5px var(--tf,#3a7fe0);}
.act-cell.act-today.act-checked::after{
  content:'';position:absolute;top:50%;left:50%;width:5px;height:5px;border-radius:50%;
  background:#1fae5b;transform:translate(-50%,-50%);
  box-shadow:0 0 0 1px rgba(255,255,255,.9);
}
[data-theme=dark] .act-cell.act-today.act-checked::after{background:#39d353;box-shadow:0 0 0 1px rgba(0,0,0,.6);}
.act-cell.act-l1{background:#9be9a8;}
.act-cell.act-l2{background:#40c463;}
.act-cell.act-l3{background:#30a14e;}
.act-cell.act-l4{background:#216e39;}
[data-theme=dark] .act-cell.act-l1{background:#0e4429;}
[data-theme=dark] .act-cell.act-l2{background:#006d32;}
[data-theme=dark] .act-cell.act-l3{background:#26a641;}
[data-theme=dark] .act-cell.act-l4{background:#39d353;}
.act-legend{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:14px;font-size:10.5px;font-weight:700;color:var(--dsub);}
.act-legend .act-cell{width:11px;height:11px;flex-shrink:0;}

/* FAB */
.dc-add-btn{display:none;}
/* Modal */
.dc-modal-overlay{
  position:fixed;inset:0;background:var(--ov);z-index:200;
  display:flex;align-items:flex-end;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.dc-modal-overlay.open{opacity:1;pointer-events:all;}
.dc-modal{
  width:390px;max-width:100vw;background:var(--mbg);
  border-radius:24px 24px 0 0;padding:20px 20px 44px;
  transform:translateY(40px);transition:transform .22s cubic-bezier(.22,.85,.25,1);
  border-top:1px solid var(--border);
}
[data-theme=dark] .dc-modal{
  background:#181b26;
  border-color:rgba(255,255,255,.10);
  box-shadow:0 -8px 40px rgba(0,0,20,.5);
}
.dc-modal-overlay.open .dc-modal{transform:translateY(0);}
.fb-pw-row{display:flex;align-items:center;gap:8px;}
.fb-pw-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);}
.fb-btn{
  width:100%;padding:13px 16px;border-radius:14px;border:none;cursor:pointer;
  font-family:'Nunito',system-ui,sans-serif;font-size:14px;font-weight:800;
  margin-top:6px;transition:transform .12s;
}
.fb-btn:active{transform:scale(.97);}
.fb-btn-primary{background:var(--accent);color:#fff;}
.fb-btn-secondary{background:var(--chip);color:var(--dtext);}

.dc-modal-title{font-size:18px;font-weight:900;color:var(--htext);margin-bottom:18px;}
.dc-field{margin-bottom:14px;}
.dc-label{font-size:11px;font-weight:800;color:var(--hsub);margin-bottom:6px;text-transform:uppercase;letter-spacing:.6px;}
.dc-input{
  width:100%;padding:12px 14px;border-radius:12px;
  border:1.5px solid var(--border);background:var(--chip);
  color:var(--htext);font-family:'Nunito',system-ui,sans-serif;
  font-size:14px;font-weight:700;outline:none;box-sizing:border-box;
  transition:border-color .15s;
}
.dc-input:focus{border-color:var(--tf);}
[data-theme=dark] .dc-input{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.12);
  color:#e8ecff;
}
[data-theme=dark] .dc-input:focus{border-color:rgba(140,160,255,.55);}
[data-theme=dark] .dc-input::placeholder{color:rgba(255,255,255,.3);}
.dc-type-row{display:flex;gap:8px;}
.dc-type-opt{
  flex:1;padding:11px 8px;border-radius:12px;border:2px solid var(--border);
  background:var(--chip);cursor:pointer;text-align:center;
  font-family:'Nunito',system-ui,sans-serif;font-size:13px;font-weight:800;
  color:var(--hsub);transition:all .15s;
}
.dc-type-opt.selected{border-color:var(--tf);background:rgba(26,26,26,.1);color:var(--tf-text);}
[data-theme=dark] .dc-type-opt{
  background:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,.10);
  color:rgba(255,255,255,.45);
}
[data-theme=dark] .dc-type-opt.selected{
  background:rgba(100,120,220,.18);
  border-color:rgba(100,120,220,.5);
  color:#c0c8f0;
}
.dc-modal-btns{display:flex;gap:10px;margin-top:22px;}
.dc-modal-save{
  flex:1;padding:14px;border-radius:14px;border:none;cursor:pointer;
  background:var(--tf);color:#fff;font-family:'Nunito',system-ui,sans-serif;
  font-size:15px;font-weight:900;box-shadow:0 6px 18px rgba(60,60,70,.3);
}
[data-theme=dark] .dc-modal-save{
  background:linear-gradient(135deg,#4a5a9a,#2e3870);
  box-shadow:0 6px 18px rgba(0,0,30,.4);
}
.dc-modal-cancel{
  padding:14px 18px;border-radius:14px;border:none;cursor:pointer;
  background:var(--chip);color:var(--hsub);font-family:'Nunito',system-ui,sans-serif;
  font-size:15px;font-weight:800;
}
[data-theme=dark] .dc-modal-cancel{
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.5);
}

/* ── SPLASH SCREEN ── */
#vikramSplash{
  position:fixed;inset:0;z-index:9999;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--app-bg);
  transition:opacity .55s cubic-bezier(.4,0,.2,1), visibility .55s;
  pointer-events:all;
}
#vikramSplash.fade-out{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.splash-logo-wrap{
  display:flex;flex-direction:column;align-items:center;gap:16px;
  animation:splashEnter .5s cubic-bezier(.34,1.4,.64,1) both;
}
@keyframes splashEnter{
  from{opacity:0;transform:scale(.82) translateY(18px);}
  to{opacity:1;transform:scale(1) translateY(0);}
}
.splash-icon{
  width:82px;height:82px;border-radius:22px;
  background:linear-gradient(145deg,#1a1a1a,#000);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 18px 48px rgba(0,0,0,.22),0 4px 12px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.1);
  animation:heartbeat 1.15s cubic-bezier(.4,0,.6,1) infinite;
  will-change:transform;
}
@keyframes heartbeat{
  0%   {transform:scale(1);}
  14%  {transform:scale(1.13);}
  28%  {transform:scale(1);}
  42%  {transform:scale(1.07);}
  56%  {transform:scale(1);}
  100% {transform:scale(1);}
}
.splash-icon svg{width:44px;height:44px;}
.splash-wordmark{
  font-family:'Nunito',sans-serif;
  font-size:26px;font-weight:900;letter-spacing:-.5px;
  color:var(--title-text);
  line-height:1;
}
.splash-sub{
  font-family:'Nunito',sans-serif;
  font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;
  color:var(--title-sub);
  margin-top:-8px;
}
.splash-dots{
  display:flex;gap:6px;margin-top:40px;
  animation:splashDotsIn .4s .3s cubic-bezier(.34,1.4,.64,1) both;
}
@keyframes splashDotsIn{
  from{opacity:0;transform:translateY(8px);}
  to{opacity:1;transform:translateY(0);}
}
.splash-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--dim);
  animation:splashDotPulse 1.2s ease-in-out infinite;
}
.splash-dot:nth-child(1){animation-delay:0s;}
.splash-dot:nth-child(2){animation-delay:.2s;}
.splash-dot:nth-child(3){animation-delay:.4s;}
@keyframes splashDotPulse{
  0%,100%{opacity:.3;transform:scale(1);}
  50%{opacity:1;transform:scale(1.4);}
}

/* ══ ONBOARDING TOUR ══ */
#onbOverlay{
  position:fixed;inset:0;z-index:9999;display:none;
  background:var(--ov);
  align-items:flex-end;justify-content:center;
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
}
#onbOverlay.show{display:flex;}
#onbOverlay.anim-in .onb-card{animation:onbSlideUp .38s cubic-bezier(.22,1,.36,1);}
@keyframes onbSlideUp{from{transform:translateY(28px);opacity:0;}to{transform:translateY(0);opacity:1;}}
.onb-card{
  position:relative;
  width:100%;max-width:440px;
  background:var(--card);color:var(--dtext);
  border-radius:26px 26px 0 0;
  padding:22px 24px calc(24px + env(safe-area-inset-bottom));
  box-shadow:0 -8px 40px rgba(0,0,0,.25);
  touch-action:pan-y;
}
@media (min-width:480px){ #onbOverlay{align-items:center;} .onb-card{border-radius:26px;} }
.onb-close{
  position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:50%;
  border:none;background:var(--tgbg);color:var(--dsub);
  font-size:16px;line-height:1;cursor:pointer;font-family:inherit;
  display:flex;align-items:center;justify-content:center;z-index:2;
}
.onb-progress{height:3px;border-radius:3px;background:var(--tgbg);overflow:hidden;margin:2px 34px 22px 0;}
.onb-progress-fill{height:100%;width:25%;background:var(--accent);border-radius:3px;transition:width .35s cubic-bezier(.22,1,.36,1);}
.onb-content{min-height:180px;}
.onb-content.slide-next{animation:onbSlideInRight .32s cubic-bezier(.22,1,.36,1);}
.onb-content.slide-back{animation:onbSlideInLeft .32s cubic-bezier(.22,1,.36,1);}
@keyframes onbSlideInRight{from{transform:translateX(28px);opacity:0;}to{transform:translateX(0);opacity:1;}}
@keyframes onbSlideInLeft{from{transform:translateX(-28px);opacity:0;}to{transform:translateX(0);opacity:1;}}
.onb-icon-wrap{
  width:66px;height:66px;border-radius:21px;
  display:flex;align-items:center;justify-content:center;
  font-size:31px;margin-bottom:16px;
  box-shadow:0 8px 20px -8px rgba(0,0,0,.3);
}
.onb-title{font-size:19px;font-weight:900;color:var(--dtext);margin-bottom:8px;letter-spacing:-.2px;}
.onb-desc{font-size:13.5px;font-weight:600;color:var(--dsub);line-height:1.6;margin-bottom:6px;}
.onb-chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px;}
.onb-chip{display:flex;align-items:center;gap:6px;padding:7px 12px 7px 9px;border-radius:12px;background:var(--tgbg);font-size:12px;font-weight:800;color:var(--dtext);}
.onb-chip-icon{font-size:14px;}
.onb-dots{display:flex;gap:6px;justify-content:center;margin:20px 0 18px;}
.onb-dot{height:6px;width:6px;border-radius:50%;background:var(--dim);cursor:pointer;transition:all .25s ease;border:none;padding:0;}
.onb-dot.on{width:20px;border-radius:4px;background:var(--accent);}
.onb-actions{display:flex;align-items:center;gap:10px;}
.onb-back{background:none;border:none;color:var(--dsub);font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;padding:14px 6px;visibility:hidden;}
.onb-next{flex:1;background:var(--tgon);color:#fff;border:none;border-radius:14px;padding:14px 20px;font-size:14.5px;font-weight:800;cursor:pointer;font-family:inherit;transition:transform .12s ease;}
.onb-next:active{transform:scale(.97);}

/* ══ EVENT COLOR CATEGORIES ══ */
.ev-cat-btn {
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 13px;border-radius:20px;
  border:1.5px solid rgba(0,0,0,.09);
  background:transparent;color:var(--dtext);
  font-size:12.5px;font-weight:700;
  cursor:pointer;font-family:'Nunito',sans-serif;
  transition:all .18s;
}
[data-theme=dark] .ev-cat-btn { border-color:rgba(255,255,255,.10); color:var(--dtext); }
.ev-cat-dot {
  width:9px;height:9px;border-radius:50%;
  background:var(--cat);flex-shrink:0;
}
.ev-cat-btn.on {
  background:var(--cat);color:#fff;border-color:transparent;
  box-shadow:0 3px 12px color-mix(in srgb,var(--cat) 40%,transparent);
}


/* ══ ADD EVENT SHEET — REDESIGN ══ */
.ae-wrap {
  display:flex;flex-direction:column;height:100%;
  max-height:92dvh;overflow:hidden;
  background:var(--sheet-bg);
}
.ae-header {
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 20px 14px;
  border-bottom:1px solid var(--border);
  flex-shrink:0;
  background:var(--sheet-bg);
}
.ae-header-left {
  display:flex;align-items:center;gap:11px;
}
.ae-header-icon {
  width:36px;height:36px;border-radius:10px;
  background:var(--tgon);color:#fff;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.ae-title {
  font-size:17px;font-weight:900;color:var(--dtext);
  letter-spacing:-.3px;line-height:1.1;
}
.ae-subtitle {
  font-size:11px;font-weight:700;color:var(--dsub);
  margin-top:1px;letter-spacing:.2px;
}
.ae-close {
  width:32px;height:32px;border-radius:50%;
  background:var(--tgbg);border:none;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--dsub);
  transition:background .18s,color .18s;
  flex-shrink:0;
}
.ae-close:hover { background:var(--border);color:var(--dtext); }

.ae-body {
  flex:1;overflow-y:auto;
  padding:18px 20px 4px;
  display:flex;flex-direction:column;gap:16px;
  background:var(--sheet-bg);
}
.ae-field-group { display:flex;flex-direction:column;gap:7px; }
.qa-group{margin-bottom:4px;}
.qa-group .ae-input-wrap{background:var(--accent-soft,rgba(99,102,241,.08));border-color:var(--accent,#6366f1);}
.qa-hint{font-size:10.5px;color:var(--dsub);line-height:1.4;padding:0 2px;}
.ae-label {
  font-size:10.5px;font-weight:800;color:var(--dsub);
  text-transform:uppercase;letter-spacing:.9px;
  display:flex;align-items:center;gap:5px;
}
.ae-label-tag {
  font-size:9px;font-weight:800;letter-spacing:.5px;
  padding:1px 5px;border-radius:4px;
  background:var(--tgbg);color:var(--dsub);
  text-transform:uppercase;
}
.ae-label-optional {
  font-size:9px;font-weight:700;letter-spacing:.3px;
  color:var(--dsub);opacity:.7;text-transform:none;
}
.ae-input-wrap {
  position:relative;display:flex;align-items:center;
}
.ae-input-icon {
  position:absolute;left:12px;
  color:var(--dsub);pointer-events:none;flex-shrink:0;
}
.ae-input {
  width:100%;padding:11px 13px 11px 35px;
  border-radius:12px;
  border:1.5px solid var(--border);
  background:var(--card);
  color:var(--dtext);
  font-size:13.5px;font-family:'Nunito',sans-serif;font-weight:700;
  outline:none;
  transition:border-color .18s,box-shadow .18s;
}
[data-theme=dark] .ae-input{background:var(--tgbg);}
.ae-input:focus {
  border-color:var(--tgon);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--tgon) 12%,transparent);
}
.ae-input::placeholder { color:var(--dsub);opacity:.7; }

/* Date block */
.ae-date-block {
  display:flex;align-items:flex-end;gap:8px;
  background:var(--card);
  border:1.5px solid var(--border);
  border-radius:14px;
  padding:13px 14px;
}
[data-theme=dark] .ae-date-block{background:var(--tgbg);}
.ae-date-col { flex:1;display:flex;flex-direction:column;gap:6px; }
.ae-date-arrow {
  flex-shrink:0;color:var(--dsub);margin-bottom:6px;
  opacity:.6;
}
.ae-date-row { display:flex;gap:5px; }
.ae-select {
  flex:1;padding:7px 6px;
  border-radius:8px;
  border:1.5px solid var(--border);
  background:var(--card);
  color:var(--dtext);
  font-size:11.5px;font-family:'Nunito',sans-serif;font-weight:800;
  outline:none;cursor:pointer;
  transition:border-color .18s;
  appearance:none;-webkit-appearance:none;
  text-align:center;
}
[data-theme=dark] .ae-select{background:var(--sbg);}
.ae-select:focus { border-color:var(--tgon); }
.ae-select-month { flex:2; }
.ae-select-day { flex:.8; }

/* Time picker block */
.ae-time-block {
  display:flex;align-items:center;gap:10px;
  background:var(--card);
  border:1.5px solid var(--border);
  border-radius:14px;
  padding:12px 14px;
  transition:border-color .18s;
}
[data-theme=dark] .ae-time-block{background:var(--tgbg);}
.ae-time-block:focus-within{border-color:var(--tgon);}
.ae-time-col{flex:1;display:flex;flex-direction:column;gap:5px;}
.ae-time-icon{
  flex-shrink:0;width:30px;height:30px;border-radius:50%;
  background:var(--tgbg);display:flex;align-items:center;justify-content:center;
  color:var(--dsub);
}
[data-theme=dark] .ae-time-icon{background:rgba(255,255,255,.08);}
.ae-time-icon svg{width:14px;height:14px;stroke:currentColor;stroke-width:2.2;fill:none;}
.ae-time-row{display:flex;gap:6px;align-items:center;}
.ae-time-input{
  flex:1;padding:7px 8px;
  border-radius:8px;
  border:1.5px solid var(--border);
  background:var(--card);
  color:var(--dtext);
  font-size:13px;font-family:'Nunito',sans-serif;font-weight:800;
  outline:none;cursor:pointer;
  transition:border-color .18s;
  -webkit-appearance:none;
  text-align:center;
}
[data-theme=dark] .ae-time-input{background:var(--sbg);}
.ae-time-input:focus{border-color:var(--tgon);}
.ae-time-sep{font-size:11px;font-weight:900;color:var(--dsub);flex-shrink:0;}
.ae-time-clear{
  flex-shrink:0;border:none;background:none;cursor:pointer;
  color:var(--dsub);font-size:11px;font-weight:800;
  font-family:'Nunito',sans-serif;padding:3px 6px;border-radius:6px;
  transition:all .15s;white-space:nowrap;
}
.ae-time-clear:hover{background:var(--tgbg);color:var(--dtext);}
.ae-time-allday{
  font-size:11px;font-weight:800;color:var(--dsub);
  font-family:'Nunito',sans-serif;letter-spacing:.2px;
}

/* Category pills */
.ae-cat-row { display:flex;gap:7px;flex-wrap:wrap; }
.ae-cat-pill {
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 13px;border-radius:20px;
  border:1.5px solid var(--border);
  background:var(--tgbg);color:var(--dtext);
  font-size:12.5px;font-weight:800;
  cursor:pointer;font-family:'Nunito',sans-serif;
  transition:all .18s;
}
[data-theme=dark] .ae-cat-pill { border-color:rgba(255,255,255,.08); }
.ae-cat-pip {
  width:8px;height:8px;border-radius:50%;
  background:var(--cat);flex-shrink:0;
}
.ae-cat-pill.on {
  background:var(--cat);color:#fff;border-color:transparent;
  box-shadow:0 3px 12px color-mix(in srgb,var(--cat) 35%,transparent);
}
.ae-cat-pill.on .ae-cat-pip { background:rgba(255,255,255,.7); }

/* Toggle cards */
.ae-toggles { display:flex;flex-direction:column;gap:8px; }
.ae-toggle-card {
  display:flex;align-items:center;gap:12px;
  background:var(--card);
  border:1.5px solid var(--border);
  border-radius:13px;
  padding:11px 13px;
  transition:border-color .2s;
}
[data-theme=dark] .ae-toggle-card{background:var(--tgbg);}
.ae-toggle-card.granted { border-color:#4CAF50;background:rgba(76,175,80,.07); }
.ae-toggle-card.denied  { border-color:#f44336;background:rgba(244,67,54,.07); }
[data-theme=dark] .ae-toggle-card.granted { background:rgba(76,175,80,.12); }
[data-theme=dark] .ae-toggle-card.denied  { background:rgba(244,67,54,.12); }
.ae-toggle-icon { font-size:20px;flex-shrink:0; }
.ae-toggle-info { flex:1;min-width:0; }
.ae-toggle-label { font-size:13px;font-weight:800;color:var(--dtext);line-height:1.2; }
.ae-toggle-sub { font-size:11px;color:var(--dsub);margin-top:2px;font-weight:600;line-height:1.4; }

/* Footer / save */
.ae-footer {
  padding:14px 20px 20px;flex-shrink:0;
  border-top:1px solid var(--border);
  background:var(--sheet-bg);
}
.ae-save-btn {
  width:100%;padding:14px;
  border-radius:13px;
  background:var(--tgon);
  border:none;color:#fff;
  font-size:15px;font-weight:900;
  cursor:pointer;font-family:'Nunito',sans-serif;
  display:flex;align-items:center;justify-content:center;gap:8px;
  transition:opacity .18s,transform .12s;
  letter-spacing:.1px;
}
.ae-save-btn:active { opacity:.85;transform:scale(.99); }

/* Scrollbar for ae-body */
.ae-body::-webkit-scrollbar { width:3px; }
.ae-body::-webkit-scrollbar-thumb { background:var(--dim);border-radius:2px; }
/* ══ END ADD EVENT REDESIGN ══ */

/* ══ CATEGORY SEGMENTED SELECTOR ══ */
.ae-seg-wrap {
  position:relative;
  display:flex;
  background:var(--tgbg);
  border:1.5px solid var(--border);
  border-radius:12px;
  padding:3px;
  gap:0;
}
.ae-seg-track {
  position:absolute;
  top:3px;bottom:3px;
  border-radius:9px;
  background:var(--ae-seg-color, #3B82F6);
  box-shadow:0 2px 10px color-mix(in srgb,var(--ae-seg-color,#3B82F6) 35%,transparent);
  transition:left .22s cubic-bezier(.4,0,.2,1),
             width .22s cubic-bezier(.4,0,.2,1),
             background .18s;
  pointer-events:none;
  z-index:0;
}
.ae-seg-btn {
  position:relative;z-index:1;
  flex:1;
  display:flex;align-items:center;justify-content:center;gap:5px;
  padding:8px 4px;
  border:none;background:none;
  border-radius:9px;
  cursor:pointer;
  font-family:'Nunito',sans-serif;
  font-size:11.5px;font-weight:800;
  color:var(--dsub);
  transition:color .18s;
  white-space:nowrap;
}
.ae-seg-btn svg { flex-shrink:0;transition:stroke .18s; }
.ae-seg-btn:active { opacity:.8; }
.ae-seg-btn.on { color:#fff; }
.ae-seg-btn.on svg { stroke:#fff; }
[data-theme=dark] .ae-seg-wrap { border-color:rgba(255,255,255,.07); }
/* ══ END CATEGORY SEGMENTED SELECTOR ══ */


/* ══ OFFLINE INDICATOR ══ */
#offlineToast {
  position:fixed;top:16px;left:50%;
  transform:translateX(-50%) translateY(-80px);
  z-index:9999;
  display:flex;align-items:center;gap:8px;
  padding:10px 18px;border-radius:999px;
  background:#1a1a2e;color:#fff;
  font-size:12.5px;font-weight:800;
  font-family:'Nunito',sans-serif;
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  transition:transform .4s cubic-bezier(.34,1.56,.64,1);
  white-space:nowrap;pointer-events:none;
}
#offlineToast.show { transform:translateX(-50%) translateY(0); }
#offlineToast.online { background:linear-gradient(135deg,#16a34a,#15803d); }
#offlineToast svg { width:14px;height:14px;stroke:#fff;stroke-width:2.5;fill:none;flex-shrink:0; }

/* ══ SEARCH MODAL ══ */
.search-modal {
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:flex-start;justify-content:center;
  padding-top:60px;
  opacity:0;pointer-events:none;
  transition:opacity .2s;
  background:rgba(0,0,0,.55);backdrop-filter:blur(6px);
}
.search-modal.open { opacity:1;pointer-events:all; }
.search-box {
  width:340px;max-width:92vw;
  background:var(--sheet-bg);border-radius:20px;
  padding:18px 18px 14px;
  box-shadow:0 24px 60px rgba(0,0,0,.45);
  border:1px solid var(--sheet-border);
  transform:scale(.92) translateY(-8px);
  transition:transform .26s cubic-bezier(.22,.85,.25,1);
}
.search-modal.open .search-box { transform:scale(1) translateY(0); }
.search-input-wrap {
  display:flex;align-items:center;gap:10px;
  background:var(--tgbg);border-radius:13px;
  padding:10px 14px;margin-bottom:14px;
  border:1.5px solid var(--border);
  transition:border-color .2s;
}
.search-input-wrap:focus-within { border-color:var(--tgon); }
.search-input-wrap svg { width:16px;height:16px;stroke:var(--dsub);stroke-width:2.3;fill:none;flex-shrink:0; }
#searchInput {
  flex:1;background:none;border:none;outline:none;
  font-size:15px;font-weight:700;font-family:'Nunito',sans-serif;
  color:var(--dtext);
}
#searchInput::placeholder { color:var(--dsub); }
.search-results { max-height:300px;overflow-y:auto;-webkit-overflow-scrolling:touch; }
.search-result-item {
  display:flex;align-items:center;gap:10px;
  padding:10px 4px;border-bottom:1px solid var(--sbdr);
  cursor:pointer;border-radius:8px;
  transition:background .15s;
}
.search-result-item:last-child { border-bottom:none; }
.search-result-item:hover { background:var(--tgbg); }
.search-result-item:active { background:var(--cell-hover); }
.sri-dot {
  width:10px;height:10px;border-radius:50%;
  background:var(--tgon);flex-shrink:0;
}
.sri-dot.hol { background:#d95b68; }
.sri-dot.evt { background:#3B82F6; }
.sri-dot.note { background:#9e3adb; }
.sri-dot.task { background:#e08c2e; }
.sri-dot.habit { background:#3a9e6e; }
.sri-dot.kharcha { background:#16a34a; }
.sri-dot.cycle { background:#e0447a; }
.sri-main { flex:1;min-width:0; }
.sri-name { font-size:13.5px;font-weight:700;color:var(--dtext);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.sri-sub  { font-size:11px;font-weight:600;color:var(--dsub);margin-top:1px; }
.sri-badge { font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:8px;white-space:nowrap;flex-shrink:0; }
.sri-badge.hol { background:#fff0f0;color:#c0392b; }
[data-theme=dark] .sri-badge.hol { background:#3a1a1a;color:#ff8080; }
.sri-badge.evt { background:rgba(59,130,246,.12);color:#3B82F6; }
.sri-badge.note { background:rgba(158,58,219,.12);color:#9e3adb; }
[data-theme=dark] .sri-badge.note { background:rgba(158,58,219,.2);color:#c084fc; }
.sri-badge.task { background:rgba(224,140,46,.12);color:#c47a1f; }
[data-theme=dark] .sri-badge.task { background:rgba(224,140,46,.2);color:#e0a24e; }
.sri-badge.habit { background:rgba(58,158,110,.12);color:#2f9e63; }
[data-theme=dark] .sri-badge.habit { background:rgba(76,209,148,.18);color:#5fe3a3; }
.sri-badge.kharcha { background:rgba(22,163,74,.12);color:#16a34a; }
[data-theme=dark] .sri-badge.kharcha { background:rgba(74,222,128,.18);color:#4ade80; }
.sri-badge.cycle { background:rgba(224,68,122,.12);color:#e0447a; }
[data-theme=dark] .sri-badge.cycle { background:rgba(244,114,182,.18);color:#f472b6; }
.search-empty { text-align:center;padding:24px 0;color:var(--dsub);font-size:13px;font-weight:700; }
.search-btn {
  width:32px;height:32px;border-radius:0;border:none;
  background:transparent;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:opacity .18s;flex-shrink:0;
}
.search-btn:hover { background:transparent; transform:none; opacity:.75; }
.search-btn svg { width:16px;height:16px;stroke:#fff;stroke-width:2.3;fill:none; }

/* ══ SHARE CARD (Day Share) ══ */
.share-modal {
  position:fixed;inset:0;z-index:250;
  display:flex;align-items:center;justify-content:center;
  padding:0 18px;
  background:rgba(0,0,0,.65);backdrop-filter:blur(8px);
  opacity:0;pointer-events:none;transition:opacity .22s;
}
.share-modal.open { opacity:1;pointer-events:all; }
.share-card {
  width:100%;max-width:340px;
  background:var(--sc-bg);
  border-radius:24px;padding:28px 26px 22px;
  box-shadow:var(--sc-shadow);
  border:1px solid var(--sc-border);
  transform:scale(.88) translateY(20px);
  transition:transform .3s cubic-bezier(.22,.85,.25,1);
  position:relative;overflow:hidden;
}
:root {
  --sc-bg:#ffffff;
  --sc-shadow:0 32px 80px rgba(0,0,0,.12);
  --sc-border:rgba(0,0,0,.08);
  --sc-date:#111111;
  --sc-month:rgba(0,0,0,.5);
  --sc-bs-bg:rgba(0,0,0,.05);
  --sc-bs-text:rgba(0,0,0,.75);
  --sc-tithi:rgba(0,0,0,.4);
  --sc-event-bg:rgba(0,0,0,.04);
  --sc-event-text:rgba(0,0,0,.75);
  --sc-logo:rgba(0,0,0,.25);
  --sc-url:rgba(0,0,0,.3);
  --sc-glow:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(120,80,255,.10),transparent 65%);
}
[data-theme="dark"] {
  --sc-bg:linear-gradient(135deg,#1a1a2e 0%,#0f0f1a 100%);
  --sc-shadow:0 32px 80px rgba(0,0,0,.6);
  --sc-border:rgba(255,255,255,.09);
  --sc-date:#ffffff;
  --sc-month:rgba(255,255,255,.6);
  --sc-bs-bg:rgba(255,255,255,.07);
  --sc-bs-text:rgba(255,255,255,.85);
  --sc-tithi:rgba(255,255,255,.5);
  --sc-event-bg:rgba(255,255,255,.06);
  --sc-event-text:rgba(255,255,255,.85);
  --sc-logo:rgba(255,255,255,.3);
  --sc-url:rgba(255,255,255,.3);
  --sc-glow:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(120,80,255,.25),transparent 65%);
}
.share-modal.open .share-card { transform:scale(1) translateY(0); }
.share-card-glow {
  position:absolute;inset:0;pointer-events:none;
  background:var(--sc-glow);
}
.share-card-date-big {
  font-size:64px;font-weight:900;color:var(--sc-date);line-height:1;
  letter-spacing:-2px;
}
.share-card-month {
  font-size:17px;font-weight:800;color:var(--sc-month);
  margin-top:2px;letter-spacing:-.2px;
}
.share-card-bs {
  margin-top:14px;padding:10px 14px;
  background:var(--sc-bs-bg);border-radius:12px;
  font-size:13px;font-weight:700;color:var(--sc-bs-text);
  display:flex;align-items:center;gap:8px;
}
.share-card-bs::before {
  content:'🇳🇵';font-size:15px;
}
.share-card-tithi {
  margin-top:8px;
  font-size:12px;font-weight:700;color:var(--sc-tithi);
}
.share-card-events {
  margin-top:12px;display:flex;flex-direction:column;gap:6px;
}
.share-card-event {
  display:flex;align-items:center;gap:8px;padding:8px 12px;
  background:var(--sc-event-bg);border-radius:10px;
  font-size:12.5px;font-weight:700;color:var(--sc-event-text);
}
.share-card-footer {
  margin-top:18px;
  display:flex;align-items:center;justify-content:space-between;
}
.share-card-logo {
  font-size:12px;font-weight:900;color:var(--sc-logo);
  letter-spacing:.5px;
}
.share-actions {
  display:flex;gap:8px;margin-top:16px;
}
.share-action-btn {
  flex:1;padding:11px;border-radius:13px;border:none;
  font-size:13px;font-weight:800;cursor:pointer;
  font-family:'Nunito',sans-serif;
  display:flex;align-items:center;justify-content:center;gap:7px;
  transition:opacity .18s,transform .15s;
}
.share-action-btn:active { transform:scale(.96); }
.share-action-btn.primary {
  background:linear-gradient(135deg,#6c63ff,#4a3fcf);color:#fff;
}
.share-action-btn.secondary {
  background:rgba(255,255,255,.09);color:var(--sheet-text);
}

/* ══ NOTES RICH TEXT TOOLBAR ══ */
.notes-toolbar {
  display:flex;align-items:center;gap:2px;
  padding:6px 8px;
  border-bottom:1px solid var(--sbdr);
  background:var(--sbg);
  flex-shrink:0;
  overflow-x:auto;scrollbar-width:none;
}
.notes-toolbar::-webkit-scrollbar { display:none; }
.ntb-btn {
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  border:none;border-radius:8px;background:transparent;
  color:var(--dtext);cursor:pointer;font-family:'Nunito',sans-serif;
  font-size:14px;font-weight:800;
  transition:background .15s,color .15s;
  flex-shrink:0;
}
.ntb-btn:hover { background:var(--tgbg);color:var(--htext); }
.ntb-btn.active { background:var(--tgon);color:#fff; }
.ntb-btn svg { width:15px;height:15px;stroke:currentColor;stroke-width:2.3;fill:none; }
.ntb-sep { width:1px;height:20px;background:var(--sbdr);flex-shrink:0;margin:0 2px; }

/* ══ RECURRENCE BUILDER ══ */
.recur-section{padding:10px 0 2px;}
.recur-label{font-size:9.5px;font-weight:900;letter-spacing:.9px;text-transform:uppercase;color:var(--dsub);margin-bottom:7px;}
.recur-freq-row{display:flex;gap:5px;flex-wrap:wrap;}
.recur-freq-btn{
  flex:1;min-width:60px;height:30px;border:1.5px solid var(--border);
  border-radius:10px;background:var(--tgbg);color:var(--dtext);
  font-size:11.5px;font-weight:800;font-family:'Nunito',sans-serif;
  cursor:pointer;transition:background .18s,border-color .18s,color .18s,transform .12s;
}
.recur-freq-btn:active{transform:scale(.95);}
.recur-freq-btn.on{background:var(--tgon);color:#fff;border-color:transparent;box-shadow:0 4px 10px rgba(0,0,0,.18);}
.recur-interval-row{display:flex;align-items:center;gap:12px;}
.recur-interval-wrap{display:flex;align-items:center;gap:8px;}
.recur-step-btn{
  width:30px;height:30px;border-radius:50%;border:1.5px solid var(--border);
  background:var(--tgbg);color:var(--dtext);font-size:18px;line-height:1;
  font-family:'Nunito',sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .15s,transform .12s;font-weight:700;
}
.recur-step-btn:active{transform:scale(.88);}
.recur-interval-val{
  min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  background:var(--chip);border-radius:9px;font-size:16px;font-weight:900;color:var(--htext);
}
.recur-interval-unit{font-size:12px;font-weight:700;color:var(--dsub);}
.recur-weekday-row{display:flex;gap:4px;}
.recur-wd-btn{
  flex:1;height:30px;border-radius:9px;border:1.5px solid var(--border);
  background:var(--tgbg);color:var(--dtext);font-size:10.5px;font-weight:800;
  font-family:'Nunito',sans-serif;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s,transform .12s;
}
.recur-wd-btn:active{transform:scale(.88);}
.recur-wd-btn.on{background:var(--tgon);color:#fff;border-color:transparent;}
.recur-end-row{display:flex;gap:5px;flex-wrap:wrap;}
.recur-end-btn{
  flex:1;min-width:80px;height:30px;border:1.5px solid var(--border);
  border-radius:10px;background:var(--tgbg);color:var(--dtext);
  font-size:11px;font-weight:800;font-family:'Nunito',sans-serif;
  cursor:pointer;white-space:nowrap;
  transition:background .18s,border-color .18s,color .18s,transform .12s;
}
.recur-end-btn:active{transform:scale(.95);}
.recur-end-btn.on{background:var(--tgon);color:#fff;border-color:transparent;box-shadow:0 4px 10px rgba(0,0,0,.18);}
.recur-summary{
  margin-top:10px;padding:8px 12px;
  background:linear-gradient(135deg,rgba(99,102,241,.12),rgba(59,130,246,.08));
  border:1.5px solid rgba(99,102,241,.22);border-radius:11px;
  font-size:11.5px;font-weight:800;color:#6366f1;
  display:flex;align-items:center;gap:7px;
}
.recur-summary::before{content:'🔁';font-size:13px;}
[data-theme="dark"] .recur-summary{
  background:linear-gradient(135deg,rgba(99,102,241,.18),rgba(59,130,246,.10));
  border-color:rgba(99,102,241,.28);color:#a5b4fc;
}
#recurPanel{
  padding:4px 0 6px;border-top:1px solid var(--border);margin-top:6px;
}

/* ══ GLOBAL TOAST NOTIFICATION ══ */
#vikramGlobalToast {
  position:fixed;bottom:80px;left:50%;
  transform:translateX(-50%) translateY(30px);
  z-index:9000;opacity:0;
  background:rgba(20,20,30,.95);color:#fff;
  padding:10px 20px;border-radius:50px;
  font-size:12.5px;font-weight:800;
  font-family:'Nunito',sans-serif;
  pointer-events:none;
  transition:opacity .3s,transform .3s cubic-bezier(.34,1.56,.64,1);
  white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.3);
}
#vikramGlobalToast.show {
  opacity:1;transform:translateX(-50%) translateY(0);
}

/* ══ JUMP-TO-DATE INPUT ══ */
.search-jump-wrap {
  border-top:1px solid var(--sbdr);
  padding-top:12px;margin-top:6px;
}
.search-jump-label {
  font-size:10.5px;font-weight:800;
  color:var(--dsub);letter-spacing:.5px;
  text-transform:uppercase;margin-bottom:8px;
}
.search-jump-row {
  display:flex;gap:6px;
}
.search-jump-row select, .search-jump-row input {
  flex:1;padding:8px 10px;
  border-radius:10px;
  border:1.5px solid var(--border);
  background:var(--tgbg);color:var(--dtext);
  font-size:13px;font-weight:700;
  font-family:'Nunito',sans-serif;outline:none;
  transition:border-color .2s;
}
.search-jump-row select:focus, .search-jump-row input:focus {
  border-color:var(--tgon);
}
.search-jump-btn {
  padding:8px 14px;border-radius:10px;border:none;
  background:var(--tgon);color:#fff;
  font-size:13px;font-weight:800;
  font-family:'Nunito',sans-serif;cursor:pointer;
  white-space:nowrap;transition:opacity .18s;
  flex-shrink:0;
}
.search-jump-btn:hover { opacity:.87; }

/* ══ LIGHT MODE POLISH ══ */
[data-theme=light] .up-item{
  box-shadow:0 1px 6px rgba(100,90,180,.07);
}
[data-theme=light] .up-day-group .up-timeline-right .up-item{
  background:#fff;
}
[data-theme=light] .up-day-name{ color:#1f2031; }
[data-theme=light] .up-day-bs{ color:#8b8fa8; }
[data-theme=light] .up-name{ color:#1f2031; }
[data-theme=light] .up-sub-pill{ color:#7d8195; }
[data-theme=light] .up-count{ background:#fff;color:#555770;border-color:#e0e0f0; }
[data-theme=light] .up-hdr-label{ color:#9496a1; }
[data-theme=light] .ae-close{ background:#f0f0f8;color:#9496a1; }
[data-theme=light] .ae-label{ color:#9496a1; }
[data-theme=light] .ae-label-tag{ background:#e8e9f3;color:#9496a1; }
[data-theme=light] .ae-toggle-label{ color:#2d2d44; }
[data-theme=light] .ae-toggle-sub{ color:#adb0be; }
[data-theme=light] .ae-save-btn{ background:#1a1a1a; }
[data-theme=light] .up-day-bubble{ box-shadow:0 1px 6px rgba(100,90,180,.08); }
[data-theme=light] .nt-hero-icon-wrap{ box-shadow:0 3px 10px rgba(99,102,241,.2); }
/* ══ END LIGHT MODE POLISH ══ */

/* ══════════════════════════════════════════════════════════════════════════
   APP / NOTES LOCK (PIN + Biometric)
   ══════════════════════════════════════════════════════════════════════════ */
#appLockScreen{
  display:none;
  position:fixed; inset:0; z-index:999999;
  flex-direction:column; align-items:center; justify-content:center;
  gap:22px;
  padding:32px 24px;
  background:var(--app-bg);
  -webkit-backdrop-filter:blur(30px);
  backdrop-filter:blur(30px);
}
#appLockScreen.on{ display:flex; }
.lock-icon-wrap{
  width:64px;height:64px;border-radius:20px;
  display:flex;align-items:center;justify-content:center;
  background:var(--mode-on,linear-gradient(135deg,#3a3a3a,#1a1a1a 65%,#000000));
  box-shadow:0 10px 26px rgba(0,0,0,.18);
  flex-shrink:0;
}
.lock-icon-wrap svg{ width:30px;height:30px; }
.lock-title{ font-size:18px;font-weight:900;color:var(--htext);letter-spacing:-.25px;text-align:center; }
.lock-sub{ font-size:13px;font-weight:600;color:var(--hsub);text-align:center;margin-top:-10px;max-width:260px; }
.lock-dots{ display:flex;gap:14px;align-items:center;height:16px; }
.lock-dot{
  width:13px;height:13px;border-radius:50%;
  border:2px solid var(--dsub);
  background:transparent;
  transition:background .15s,border-color .15s,transform .15s;
}
.lock-dot.filled{ background:var(--accent);border-color:var(--accent);transform:scale(1.08); }
.lock-dots.shake{ animation:lockShake .4s; }
.lock-dots.shake .lock-dot{ border-color:#e03e3e; }
@keyframes lockShake{
  10%,90%{ transform:translateX(-1px); }
  20%,80%{ transform:translateX(2px); }
  30%,50%,70%{ transform:translateX(-6px); }
  40%,60%{ transform:translateX(6px); }
}
.lock-error{ font-size:12.5px;font-weight:700;color:#e03e3e;height:16px;text-align:center; }
.lock-keypad{
  display:grid;grid-template-columns:repeat(3,64px);gap:14px;
  justify-content:center;
}
.lock-key{
  width:64px;height:64px;border-radius:50%;border:none;
  background:var(--card);
  color:var(--htext);
  font-size:22px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
  transition:background .15s,transform .1s;
  -webkit-tap-highlight-color:transparent;
}
[data-theme="dark"] .lock-key{ background:rgba(255,255,255,.06); }
.lock-key:active{ transform:scale(.92);background:var(--accent-soft); }
.lock-key.lock-key-ghost{ background:transparent;box-shadow:none; }
.lock-key svg{ width:22px;height:22px; }
.lock-bottom-row{ display:flex;gap:14px;margin-top:4px; }
.lock-forgot{
  background:none;border:none;color:var(--hsub);
  font-size:12.5px;font-weight:700;text-decoration:underline;
  cursor:pointer;margin-top:6px;
}
/* Reuse inside the PIN setup sheet too */
.lock-setup-body{ display:flex;flex-direction:column;align-items:center;gap:18px;padding:8px 16px 24px; }
