/* Treatly — Plans (social scheduling): proposal + RSVP UI.
   Uses --soc-* tokens with fallbacks so it works in social + legacy contexts. */

/* ── Person-card sections: Tasks then Plans ── */
.person-feed-sec{display:flex;flex-direction:column;gap:7px;padding:10px 12px 12px;}
.person-feed-sec--tasks{padding-bottom:8px;}
.person-feed-sec--plans{
  padding-top:10px;border-top:1px solid color-mix(in srgb,var(--border,#ececec) 85%,transparent);
}
.person-feed-sec-lbl{
  display:flex;align-items:center;gap:6px;
  font-family:"Plus Jakarta Sans",sans-serif;font-size:11px;font-weight:900;
  letter-spacing:.06em;text-transform:uppercase;color:var(--t3,#888);
  padding:0 2px;
}
.person-feed-sec-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 5px;border-radius:999px;
  font-size:10px;font-weight:900;letter-spacing:0;text-transform:none;
  background:color-mix(in srgb,var(--brand,#059669) 12%,transparent);color:var(--brand,#059669);
}
.person-feed-sec--plans .person-feed-sec-count{
  background:color-mix(in srgb,var(--soc-brand) 16%,transparent);color:var(--soc-brand);
}
.person-feed-sec-body{display:flex;flex-direction:column;gap:7px;min-width:0;}
.person-feed-sec-cta{display:flex;flex-direction:column;gap:7px;min-width:0;margin-top:2px;}
.person-feed-sec-cta .plan-feed-empty-cta{width:100%;}
.person-feed-sec-empty{
  margin:0;padding:8px 2px 2px;font-size:12.5px;font-weight:600;color:var(--t3,#999);line-height:1.35;
}
.person-feed-plans{display:flex;flex-direction:column;gap:7px;padding:0;}
/* Plan rows match task lock-in engraving (same recess tokens + radius). */
.plan-feed-row{
  display:flex;align-items:flex-start;gap:10px;padding:10px 11px;cursor:pointer;
  position:relative;overflow:hidden;
  background:var(--soc-sunken,color-mix(in srgb,var(--surface,#fff) 92%,#e8f0ec));
  border:1px solid var(--soc-border,var(--border,#e6e6e6));
  border-radius:var(--soc-task-r,10px);
  box-shadow:var(--soc-lockin-recess,var(--soc-nested-recess,inset 0 3px 8px -1px rgba(0,0,0,.16),inset 0 -2px 6px -1px rgba(255,255,255,.4)))!important;
  transition:background .15s,filter .12s;
}
.plan-feed-row:active{filter:brightness(.98);}
.plan-feed-row--poll{
  background:color-mix(in srgb,var(--soc-brand2) 8%,var(--soc-sunken,#f7f7f7));
  border-color:color-mix(in srgb,var(--soc-brand2) 22%,var(--soc-border,#e6e6e6));
}
.plan-feed-row--pending{box-shadow:inset 3px 0 0 var(--soc-brand),var(--soc-lockin-recess,var(--soc-nested-recess))!important;}
.plan-feed-ico{
  width:34px;height:34px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:17px;
  background:color-mix(in srgb,var(--soc-brand) 14%,transparent);
  box-shadow:var(--soc-nested-recess,inset 0 2px 4px rgba(0,0,0,.08));
}
.plan-feed-row--poll .plan-feed-ico{background:color-mix(in srgb,var(--soc-brand2) 14%,transparent);}
.plan-feed-main{flex:1;min-width:0;}
.plan-feed-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:1px;}
.plan-feed-name{font-family:"Plus Jakarta Sans",sans-serif;font-size:13.5px;font-weight:800;color:var(--text);letter-spacing:-.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.plan-feed-when{font-size:11.5px;font-weight:700;color:var(--t2,#555);margin-bottom:2px;font-variant-numeric:tabular-nums;}
.plan-feed-summary{font-size:11.5px;font-weight:700;color:var(--t2);}
.plan-feed-actions{display:flex;gap:6px;margin-top:6px;}
.plan-feed-actions .plan-rsvp-btn{flex:1;padding:7px 6px;font-size:12px;border-radius:9px;}
.plan-feed-more{
  border:none;background:transparent;cursor:pointer;padding:4px 2px;text-align:left;
  font-family:"Plus Jakarta Sans",sans-serif;font-size:12px;font-weight:800;color:var(--brand,#059669);
}
.plan-feed-empty-cta{
  border:1.5px dashed color-mix(in srgb,var(--brand,#059669) 35%,var(--border,#ddd));
  background:color-mix(in srgb,var(--brand,#059669) 5%,transparent);
  color:var(--brand,#059669);border-radius:12px;padding:10px 12px;cursor:pointer;
  font-family:"Plus Jakarta Sans",sans-serif;font-size:13px;font-weight:800;width:100%;
}

/* "Schedule a plan" — same white / black pill language as the friend-card Add button */
.plan-feed-schedule{
  position:relative;overflow:hidden;
  display:flex;align-items:center;gap:10px;
  width:100%;padding:11px 14px;border-radius:14px;cursor:pointer;
  border:none;
  font-family:"Plus Jakarta Sans",sans-serif;font-size:13px;font-weight:800;letter-spacing:-.01em;
  color:#1c1917;
  background:#ffffff;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 4px 12px rgba(0,0,0,.24),
    0 2px 6px rgba(0,0,0,.16);
  transition:transform .14s ease,box-shadow .2s ease,background .15s ease;
}
.plan-feed-schedule:hover{
  transform:translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    0 6px 16px rgba(0,0,0,.28),
    0 2px 6px rgba(0,0,0,.18);
}
.plan-feed-schedule:active{
  transform:scale(.98);
  background:#f4f1ee;
  box-shadow:inset 0 2px 5px rgba(0,0,0,.14),0 2px 6px rgba(0,0,0,.16);
}
.plan-feed-schedule-ico{
  width:27px;height:27px;flex-shrink:0;border-radius:9px;
  display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;
  background:rgba(28,25,23,.06);color:#1c1917;
}
.plan-feed-schedule-txt{flex:1;text-align:left;color:#1c1917;}
.plan-feed-schedule-arrow{flex-shrink:0;font-size:16px;font-weight:900;color:#1c1917;opacity:.7;transition:transform .18s ease;}
.plan-feed-schedule:hover .plan-feed-schedule-arrow{transform:translateX(3px);opacity:.95;}
.plan-feed-schedule-shine{display:none!important;}
@media (prefers-reduced-motion:reduce){
  .plan-feed-schedule:hover{transform:none;}
  .plan-feed-schedule:hover .plan-feed-schedule-arrow{transform:none;}
}

/* ── New-plan wizard (What → When → Who) ── */
.plan-wizard{display:flex;flex-direction:column;}
.plan-wiz-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
.plan-wiz-head .feat-sheet-title{margin:0;}
.plan-wiz-steps{display:flex;gap:5px;flex-shrink:0;}
.plan-wiz-dot{width:20px;height:5px;border-radius:3px;background:var(--s3,#e5e7eb);transition:background .25s ease,width .25s ease,opacity .25s ease;}
.plan-wiz-dot.on{background:var(--soc-brand,#10b981);width:30px;}
.plan-wiz-dot.done{background:var(--soc-brand,#10b981);opacity:.45;}
.plan-wiz-step{animation:planWizIn .28s cubic-bezier(.22,.61,.36,1);}
@keyframes planWizIn{from{opacity:0;transform:translateX(12px);}to{opacity:1;transform:none;}}
.plan-wiz-nav{display:flex;align-items:stretch;gap:10px;margin-top:16px;}
/* These buttons inherit width:100% (+ .cta margin-top) from base styles, which
   breaks a flex row — reset so Back sizes to content and Next fills the rest. */
.plan-wiz-nav .abtn,
.plan-wiz-nav .cta{width:auto;margin:0;}
.plan-wiz-nav #plan-wiz-back{flex:0 0 auto;min-width:96px;}
.plan-wiz-nav #plan-wiz-next{flex:1 1 auto;}
.plan-join-opt{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:10px 0 6px;padding:11px 12px;border-radius:12px;
  background:color-mix(in srgb,var(--soc-brand,#10b981) 8%,var(--s2,#f4f4f5));
  cursor:pointer;
}
.plan-join-opt-title{display:block;font-family:"Plus Jakarta Sans",sans-serif;font-size:13px;font-weight:800;color:var(--t1,#111);letter-spacing:-.01em;}
.plan-join-opt .feat-lbl-hint{display:block;margin-top:2px;font-size:11.5px;font-weight:600;line-height:1.35;}
.plan-join-opt input{width:18px;height:18px;accent-color:var(--soc-brand,#10b981);flex:none;cursor:pointer;}
.plan-wiz-more{margin-top:14px;border-top:1px solid var(--border,#eaeaea);padding-top:6px;}
.plan-wiz-more>summary{cursor:pointer;list-style:none;padding:6px 0;font-family:"Plus Jakarta Sans",sans-serif;font-size:12.5px;font-weight:800;color:var(--t3);letter-spacing:-.01em;}
.plan-wiz-more>summary::-webkit-details-marker{display:none;}
.plan-wiz-more>summary::before{content:'⌄';display:inline-block;margin-right:6px;transition:transform .2s ease;}
.plan-wiz-more[open]>summary::before{transform:rotate(180deg);}
@media (prefers-reduced-motion:reduce){.plan-wiz-step{animation:none;}}

/* ── Plans calendar ── */
.plan-cal{background:var(--surface,#fff);border:1px solid var(--border,#ececec);border-radius:20px;padding:14px 14px 12px;margin:12px 0 4px;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.plan-cal-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;}
.plan-cal-month{border:none;background:none;cursor:pointer;font-family:"Manrope","Plus Jakarta Sans",sans-serif;font-size:16px;font-weight:800;color:var(--text);letter-spacing:-.02em;padding:4px 8px;border-radius:10px;transition:background .15s;}
.plan-cal-month:hover{background:var(--s2,#f6f6f6);}
.plan-cal-nav{width:32px;height:32px;border-radius:50%;border:1px solid var(--border,#eee);background:var(--s2,#f6f6f6);color:var(--text);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s;}
.plan-cal-nav:hover{background:var(--s3,#eee);}
.plan-cal-nav:active{transform:scale(.92);}
.plan-cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px;}
.plan-cal-week span{text-align:center;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--t3,#999);}
.plan-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.plan-cal-day{position:relative;aspect-ratio:1/1;border:none;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0;border-radius:12px;transition:background .12s;}
.plan-cal-day:hover{background:var(--s2,#f6f6f6);}
.plan-cal-daynum{position:relative;z-index:1;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:"Plus Jakarta Sans",sans-serif;font-size:13.5px;font-weight:700;color:var(--text);background:transparent;transition:background .15s,color .15s;}
.plan-cal-day--out .plan-cal-daynum{color:var(--t4,#c4c4c4);opacity:.5;}
.plan-cal-day--today .plan-cal-daynum{color:var(--brand,#059669);font-weight:900;}
.plan-cal-day--sel .plan-cal-daynum{background:var(--text,#111);color:var(--surface,#fff);font-weight:800;}
/* Gradient ring on days that have plans (colour = status). */
.plan-cal-day.has-plan::before{content:"";position:absolute;top:50%;left:50%;width:34px;height:34px;transform:translate(-50%,-50%);border-radius:50%;z-index:0;}
.plan-cal-day--going.has-plan::before{background:linear-gradient(135deg,#059669,#34d399);}
.plan-cal-day--poll.has-plan::before{background:linear-gradient(135deg,var(--soc-brand2),var(--soc-brand2));}
.plan-cal-day--mixed.has-plan::before{background:linear-gradient(135deg,#059669 0%,#10b981 45%,var(--soc-brand2) 100%);}
.plan-cal-day.has-plan .plan-cal-daynum{background:var(--surface,#fff);}
.plan-cal-day--sel.has-plan .plan-cal-daynum{background:var(--text,#111);color:var(--surface,#fff);}
.plan-cal-dots{display:flex;gap:3px;height:4px;align-items:center;position:relative;z-index:1;}
.plan-cal-dot{width:4px;height:4px;border-radius:50%;background:var(--t3,#999);}
.plan-cal-day--going .plan-cal-dot{background:#059669;}
.plan-cal-day--poll .plan-cal-dot{background:var(--soc-brand2);}
.plan-cal-day--mixed .plan-cal-dot{background:var(--soc-brand2);}
.plan-cal-day--out .plan-cal-dot{opacity:.5;}
.plan-cal-legend{display:flex;gap:16px;justify-content:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--border,#eee);}
.plan-cal-leg{font-size:10.5px;font-weight:700;color:var(--t3);display:inline-flex;align-items:center;gap:5px;}
.plan-cal-leg::before{content:"";width:9px;height:9px;border-radius:50%;}
.plan-cal-leg--going::before{background:linear-gradient(135deg,#059669,#34d399);}
.plan-cal-leg--poll::before{background:linear-gradient(135deg,var(--soc-brand2),var(--soc-brand2));}

/* Selected-day panel */
.plan-day-panel{margin-top:6px;}
.plan-day-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 2px 10px;}
.plan-day-title{font-family:"Manrope",sans-serif;font-size:15px;font-weight:800;color:var(--text);letter-spacing:-.01em;}
.plan-day-add{border:none;border-radius:999px;padding:8px 14px;font-family:"Plus Jakarta Sans",sans-serif;font-size:12.5px;font-weight:800;color:#fff;background:var(--soc-cta-gradient,linear-gradient(128deg,#047857,#10b981));cursor:pointer;box-shadow:var(--soc-cta-shadow,0 3px 12px rgba(16,185,129,.3));transition:transform .12s,filter .15s;flex-shrink:0;}
.plan-day-add:active{transform:scale(.96);}
.plan-day-list{display:flex;flex-direction:column;gap:10px;}
.plan-day-empty{padding:28px 16px;text-align:center;color:var(--t3);font-size:13px;font-weight:600;background:var(--s2,#f6f6f6);border-radius:16px;border:1px dashed var(--border2,#e0e0e0);display:flex;flex-direction:column;align-items:center;gap:12px;}
.plan-day-empty-lead{margin:0;font-size:14px;font-weight:700;color:var(--t2);}
.plan-day-empty-cta{border:none;background:none;color:var(--brand,#059669);font-weight:800;cursor:pointer;font-size:13px;padding:0;margin-left:2px;}
.plan-day-empty-btn{
  border:none;cursor:pointer;padding:11px 18px;border-radius:12px;
  background:var(--soc-cta-gradient,var(--brand,#0D9488));color:#fff;
  font-family:"Plus Jakarta Sans",sans-serif;font-size:14px;font-weight:800;
  box-shadow:0 4px 14px color-mix(in srgb,var(--soc-brand,#0D9488) 28%,transparent);
}
.plan-day-empty-btn:active{transform:scale(.97);}

/* ── Full-page calendar (week + month views) ── */
/* Plans calendar follows the global accent theme (Sunset by default). */
body.tab-plans{
  --plan-frame:linear-gradient(135deg,var(--soc-brand,#f97316) 0%,color-mix(in srgb,var(--soc-brand,#f97316) 70%,#7c2d12) 28%,var(--soc-brand2,#ec4899) 62%,color-mix(in srgb,var(--soc-brand2,#ec4899) 55%,#fff) 100%);
  --plan-glow:rgba(var(--soc-brand-rgb,249,115,22),.38);
}
body.tab-plans #s-acts{
  background:
    radial-gradient(ellipse 85% 42% at 8% -6%,color-mix(in srgb,var(--soc-brand,#f97316) 18%,transparent),transparent 55%),
    radial-gradient(ellipse 70% 38% at 96% 4%,color-mix(in srgb,var(--soc-brand2,#ec4899) 16%,transparent),transparent 52%),
    radial-gradient(ellipse 60% 32% at 45% 100%,color-mix(in srgb,var(--soc-brand,#f97316) 12%,transparent),transparent 48%);
}
body.tab-plans #p-acts{
  overflow:hidden!important;
  padding:0 0 var(--tab-scroll-bottom,92px) 0!important;
  display:flex!important;flex-direction:column;min-height:0;
  position:relative;
}
/* Floating hdr already shows "Plans" — hide the in-screen duplicate (like Treats). */
body.tab-plans .acts-hdr,
body.tab-plans .acts-sub,
body.tab-plans .acts-tab-dot{display:none!important;}
body.app-chrome.tab-plans #p-acts{
  padding-top:calc(var(--hdr-chrome-inset, 48px) + 6px)!important;
}

.plan-cal--full{display:flex;flex-direction:column;flex:1;min-height:0;background:transparent;border:none;border-radius:0;padding:0 10px 10px;margin:0;box-shadow:none;}

.plan-cal-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:4px 2px 8px;}
.plan-cal-hd-l{min-width:0;}
.plan-cal--full .plan-cal-month{font-size:20px;padding:2px 4px;white-space:nowrap;}
.plan-cal-hd-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.plan-cal-today{border:1px solid var(--border,#e0e0e0);background:var(--surface,#fff);color:var(--text);border-radius:999px;padding:6px 13px;font-family:"Plus Jakarta Sans",sans-serif;font-size:12px;font-weight:800;cursor:pointer;transition:background .15s,transform .1s;}
.plan-cal-today:hover{background:var(--s2,#f6f6f6);}
.plan-cal-today:active{transform:scale(.94);}

/* Week / Month segmented toggle */
.plan-cal-seg{display:inline-flex;gap:0;background:var(--s2,#f1f1f1);border-radius:999px;padding:3px;margin:0 2px 10px;align-self:flex-start;}
.plan-cal-seg-btn{border:none;background:transparent;cursor:pointer;border-radius:999px;padding:6px 20px;font-family:"Plus Jakarta Sans",sans-serif;font-size:12.5px;font-weight:800;color:var(--t3);transition:color .18s,background .18s,box-shadow .18s;}
.plan-cal-seg-btn.on{background:var(--surface,#fff);color:var(--brand,#059669);box-shadow:0 1px 4px rgba(0,0,0,.12);}

.plan-cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin:0 0 3px;padding:0 1px;}
.plan-cal-week span{text-align:center;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--t3,#999);}

/* Shared thin-gridline calendar body */
.plan-cal-grid--full,.plan-cal-grid--week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:6px;
  background:var(--border,#ececec);border:1px solid var(--border,#ececec);border-radius:18px;overflow:visible;}
.plan-cal-grid--full,.plan-cal-grid--week{flex:1 1 auto;min-height:0;height:100%;grid-auto-rows:1fr;}
.plan-cal--full{height:100%;}

.plan-cal-day{position:relative;aspect-ratio:auto;border:none;border-radius:12px;background:var(--surface,#fff);cursor:pointer;
  display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;padding:5px 4px 3px;overflow:hidden;transition:background .12s,box-shadow .12s;}
.plan-cal-day:hover{background:var(--s2,#fafafa);}
.plan-cal-day--out{background:var(--s2,#f7f7f7);}
.plan-cal-day--wknd{background:color-mix(in srgb,var(--brand,#059669) 3%,var(--surface,#fff));}
.plan-cal-day--wknd.plan-cal-day--out{background:var(--s2,#f7f7f7);}

.plan-cal-wd{font-size:9.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--t3,#999);text-align:center;}
.plan-cal-daynum{position:relative;z-index:1;width:24px;height:24px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:"Plus Jakarta Sans",sans-serif;font-size:12.5px;font-weight:700;color:var(--text);flex-shrink:0;transition:background .15s,color .15s;}
.plan-cal-day--out .plan-cal-daynum{color:var(--t4,#c4c4c4);opacity:.55;}
.plan-cal-day--today .plan-cal-daynum{background:var(--soc-cta-gradient);color:#fff;font-weight:800;box-shadow:0 2px 8px rgba(var(--soc-brand-rgb,249,115,22),.4);}
.plan-cal-day--sel{box-shadow:inset 0 0 0 2px var(--brand,var(--soc-brand));z-index:2;}
.plan-cal-day--sel:not(.plan-cal-day--today) .plan-cal-daynum{background:color-mix(in srgb,var(--brand,var(--soc-brand)) 16%,transparent);color:var(--brand,var(--soc-brand));font-weight:800;}
/* Chips convey events — suppress the legacy ring/dots. */
.plan-cal-grid--full .plan-cal-day.has-plan::before,
.plan-cal-grid--week .plan-cal-day.has-plan::before{display:none;}
.plan-cal-day.has-plan .plan-cal-daynum{background:transparent;}
.plan-cal-day--today.has-plan .plan-cal-daynum{background:var(--soc-cta-gradient);}

.plan-cal-evs{display:flex;flex-direction:column;gap:3px;width:100%;flex:1;min-height:0;overflow:hidden;margin-top:2px;}
.plan-cal-ev{font-size:10px;font-weight:700;line-height:1.2;padding:3px 5px;border-radius:7px;color:#fff;
  display:flex;flex-direction:column;align-items:flex-start;gap:1px;overflow:hidden;min-height:22px;
  background-size:cover;background-repeat:no-repeat;}
.plan-cal-ev-time{
  flex:0 0 auto;display:inline-block;font-weight:900;font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;font-size:11px;line-height:1.15;
  background:rgba(255,255,255,.92);color:#111;border-radius:4px;padding:1px 5px;
  box-shadow:0 1px 2px rgba(0,0,0,.18);
}
.plan-cal-ev-time--tbc{background:rgba(255,255,255,.75);color:#444;font-size:9.5px;}
.plan-cal-ev-name{flex:0 1 auto;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9.5px;opacity:.95;}
.plan-cal-ev--going{background:var(--soc-cta-gradient);}
.plan-cal-ev--poll{background:linear-gradient(135deg,var(--soc-brand2),var(--soc-brand2));}
.plan-cal-more{font-size:9.5px;font-weight:800;color:var(--t3,#888);padding:0 4px;}
.plan-cal-grid--week .plan-cal-ev{font-size:11px;padding:4px 6px;min-height:28px;}
.plan-cal-grid--week .plan-cal-ev-time{font-size:12px;padding:2px 6px;}
.plan-cal-grid--week .plan-cal-ev-name{font-size:10.5px;}
/* Month cells are tight — keep the time badge, hide the name so the clock always shows. */
.plan-cal-grid--full .plan-cal-ev-name{display:none;}
.plan-cal-grid--full .plan-cal-ev{padding:2px 3px;min-height:18px;align-items:stretch;}
.plan-cal-grid--full .plan-cal-ev-time{width:100%;text-align:center;font-size:10px;padding:2px 2px;}

/* Selected-day details — only rendered after a day is tapped. */
.plan-day-agenda{display:flex;flex-direction:column;min-height:0;margin-top:10px;padding:10px 14px 0;border-top:1px solid var(--border,#ececec);}
body.tab-plans #p-acts.plans-week .plan-day-agenda{flex:1 1 auto;}
body.tab-plans #p-acts:not(.plans-week) .plan-day-agenda{flex:0 0 auto;max-height:38vh;}
.plan-day-agenda .plan-day-head{margin:2px 2px 8px;}
.plan-day-agenda .plan-day-list{overflow-y:auto;padding-bottom:8px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.plan-day-agenda .plan-day-list::-webkit-scrollbar{display:none;}

/* Prompt shown before any day is tapped. */
.plan-cal-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--t3);text-align:center;padding:22px 20px;}
body.tab-plans #p-acts.plans-week .plan-cal-hint{flex:1 1 auto;}
body.tab-plans #p-acts:not(.plans-week) .plan-cal-hint{flex:0 0 auto;padding:14px;}
.plan-cal-hint-emoji{font-size:30px;opacity:.85;}
.plan-cal-hint-txt{font-family:"Plus Jakarta Sans",sans-serif;font-size:13.5px;font-weight:700;}

@media (max-width:380px){
  .plan-cal-ev{font-size:9.5px;padding:1px 4px;}
  .plan-cal--full .plan-cal-month{font-size:18px;}
}

/* ── Sub-tab unread dot ── */
.acts-tab-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#EF4444;margin-left:5px;vertical-align:middle;box-shadow:0 0 0 2px rgba(239,68,68,.18);}

/* ── New plan button ── */
.plan-new-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;border:none;color:#fff;
  background:var(--soc-cta-gradient,linear-gradient(128deg,#047857,#10B981));
  font-family:"Plus Jakarta Sans",sans-serif;font-size:13px;font-weight:800;letter-spacing:-.01em;cursor:pointer;
  box-shadow:var(--soc-cta-shadow,0 3px 12px rgba(16,185,129,.3));transition:transform .16s,box-shadow .16s;}
.plan-new-btn:hover{transform:translateY(-1px);}
.plan-new-btn:active{transform:scale(.97);}

/* ── Compose: proposed time slots ── */
.feat-lbl-hint{font-weight:600;color:var(--t3);font-size:11px;margin-left:6px;}
.plan-when-mode{
  display:flex;gap:4px;padding:3px;margin:0 0 12px;border-radius:12px;
  background:color-mix(in srgb,var(--soc-sunken,#f3f3f3) 88%,var(--soc-brand-soft,transparent));
  border:1px solid color-mix(in srgb,var(--soc-border,#e6e6e6) 90%,transparent);
}
.plan-when-mode-btn{
  flex:1;padding:8px 10px;border:none;border-radius:10px;cursor:pointer;
  background:transparent;color:var(--soc-ink-soft,var(--t3));
  font-family:"Plus Jakarta Sans",sans-serif;font-size:.78rem;font-weight:750;
  transition:background .15s,color .15s,box-shadow .15s;
}
.plan-when-mode-btn.on{
  background:var(--surface,#fff);color:var(--soc-brand,var(--brand,#059669));
  box-shadow:0 1px 4px rgba(0,0,0,.1);
}
.plan-cal-pick-cta{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:14px 14px;margin:0 0 12px;border-radius:16px;cursor:pointer;
  border:1.5px solid color-mix(in srgb,var(--soc-brand) 28%,var(--soc-border,#e6e6e6));
  background:linear-gradient(145deg,
    color-mix(in srgb,var(--soc-brand-soft,#fff7ed) 70%,#fff) 0%,
    color-mix(in srgb,var(--soc-panel-bg,#fff) 92%,transparent) 100%);
  transition:transform .15s,border-color .15s,box-shadow .15s;
}
.plan-cal-pick-cta:hover{
  border-color:color-mix(in srgb,var(--soc-brand) 45%,var(--soc-border));
  box-shadow:0 4px 14px color-mix(in srgb,var(--soc-brand) 16%,transparent);
}
.plan-cal-pick-cta:active{transform:scale(.985);}
.plan-cal-pick-cta.has-time{
  border-color:color-mix(in srgb,var(--soc-brand) 40%,var(--soc-border));
}
.plan-cal-pick-cta-ico{
  width:40px;height:40px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;
  background:color-mix(in srgb,var(--soc-brand) 14%,#fff);
}
.plan-cal-pick-cta-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.plan-cal-pick-cta-title{
  font-family:"Plus Jakarta Sans",sans-serif;font-size:.95rem;font-weight:800;
  color:var(--soc-ink,var(--t1));letter-spacing:-.01em;
}
.plan-cal-pick-cta-sub{font-size:.74rem;font-weight:650;color:var(--soc-ink-soft,var(--t3));}
.plan-cal-pick-cta-chev{font-size:1.35rem;font-weight:300;color:var(--soc-brand);line-height:1;}

.plan-slots{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;}
.plan-slot{display:grid;grid-template-columns:auto 1.2fr .9fr .9fr auto;gap:6px;align-items:center;}
.plan-slot .finput{margin:0!important;padding:9px 10px;font-size:13px;}
.plan-slot-cal,.plan-slot-del{
  width:30px;height:30px;border-radius:9px;border:1px solid var(--border,#D8CDC2);background:var(--s2,#F2EAE2);
  color:var(--t3);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.plan-slot-cal:hover{border-color:var(--soc-brand);color:var(--soc-brand);}
.plan-slot-del:hover{color:#EF4444;border-color:#EF4444;}
.plan-add-slot{width:100%;padding:9px;border-radius:11px;border:1.5px dashed var(--border2,#C8BAAE);background:transparent;
  color:var(--soc-brand,#0D9488);font-family:"Plus Jakarta Sans",sans-serif;font-size:13px;font-weight:700;cursor:pointer;margin-bottom:4px;transition:all .15s;}
.plan-add-slot:hover{background:var(--s2,#F2EAE2);border-color:var(--soc-brand,#0D9488);}

/* Calendar date/time picker sheet */
#sh-plan-cal-pick{z-index:120;}
.plan-cal-pick-sheet{max-width:420px;}
.plan-cal-pick-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;}
.plan-cal-pick-hd .feat-sheet-title{margin:0;}
.plan-cal-pick-close{
  width:34px;height:34px;border-radius:10px;border:1px solid var(--soc-border,var(--border));
  background:var(--soc-sunken,#f3f3f3);color:var(--soc-ink-soft);cursor:pointer;font-size:14px;
}
.plan-cal-pick-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 10px;}
.plan-cal-pick-month{
  flex:1;border:none;background:transparent;cursor:pointer;
  font-family:"Plus Jakarta Sans",sans-serif;font-size:.95rem;font-weight:800;color:var(--soc-ink);
}
.plan-cal-pick-week{
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;
  font-size:.65rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  color:var(--soc-ink-soft);text-align:center;
}
.plan-cal-pick-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:14px;}
.plan-cal-pick-day{
  aspect-ratio:1;border-radius:11px;border:1px solid transparent;cursor:pointer;
  background:color-mix(in srgb,var(--soc-panel-bg,#fff) 88%,var(--soc-sunken));
  color:var(--soc-ink);font-family:"Plus Jakarta Sans",sans-serif;font-size:.86rem;font-weight:750;
  transition:background .12s,border-color .12s,color .12s,transform .12s;
}
.plan-cal-pick-day:hover:not(:disabled){
  border-color:color-mix(in srgb,var(--soc-brand) 35%,transparent);
}
.plan-cal-pick-day.is-out{opacity:.38;}
.plan-cal-pick-day.is-past{opacity:.35;cursor:not-allowed;}
.plan-cal-pick-day.is-today{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--soc-brand) 45%,transparent);}
.plan-cal-pick-day.is-sel{
  background:var(--soc-cta-gradient,linear-gradient(128deg,#f97316,#ec4899));
  color:#fff;border-color:transparent;
  box-shadow:0 3px 10px color-mix(in srgb,var(--soc-brand) 28%,transparent);
}
.plan-cal-pick-times{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;align-items:end;}
.plan-cal-pick-time{display:flex;flex-direction:column;gap:4px;min-width:0;}
.plan-cal-pick-time .feat-lbl{margin:0;}
.plan-cal-pick-times .finput{margin:0!important;}
.plan-cal-pick-durs{
  grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;
}
.plan-cal-pick-dur{
  padding:6px 10px;border-radius:999px;cursor:pointer;
  border:1px solid var(--soc-border,var(--border));background:var(--surface,#fff);
  color:var(--soc-ink-soft);font-size:.72rem;font-weight:750;
}
.plan-cal-pick-dur.on{
  border-color:color-mix(in srgb,var(--soc-brand) 40%,var(--soc-border));
  background:color-mix(in srgb,var(--soc-brand-soft) 65%,#fff);
  color:var(--soc-brand);
}
.plan-cal-pick-sheet .cta{margin-top:12px;}
.plan-cal-pick-day.is-sel:focus-visible{outline:2px solid var(--soc-brand);outline-offset:2px;}

/* ── Plan cards ── */
.plan-card,.act-card{
  gap:11px;
  background:var(--soc-sunken,color-mix(in srgb,var(--surface,#fff) 92%,#e8f0ec))!important;
  border:1px solid var(--soc-border,var(--border,#e6e6e6))!important;
  border-radius:var(--soc-task-r,12px)!important;
  box-shadow:var(--soc-lockin-recess,var(--soc-nested-recess))!important;
}
.plan-card--poll{border-color:color-mix(in srgb,var(--soc-brand2) 28%,var(--soc-border,#e6e6e6))!important;
  background:color-mix(in srgb,var(--soc-brand2) 7%,var(--soc-sunken,#f7f7f7))!important;}
.plan-card-badges{display:flex;align-items:center;gap:5px;margin-bottom:4px;flex-wrap:wrap;}
.plan-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;}
.plan-badge--poll{background:rgba(var(--soc-brand-rgb,249,115,22),.12);color:var(--soc-brand,var(--soc-brand2));}
.plan-badge--set{background:var(--s2,#F2EAE2);color:var(--t3);}
.plan-badge--going{background:rgba(var(--soc-brand-rgb,249,115,22),.14);color:var(--soc-brand);}
.plan-badge--maybe{background:rgba(234,179,8,.16);color:#A16207;}
.plan-card-foot{display:flex;align-items:center;gap:8px;}
.plan-card .act-attendees{gap:0;}
.plan-card .atav{border:2px solid var(--surface,#fff);}
.plan-card-summary{font-size:12px;font-weight:700;color:var(--t2);padding-top:2px;border-top:1px solid var(--border,#eee);padding-top:9px;margin-top:1px;}
.plan-card-actions{display:flex;gap:6px;padding-top:9px;border-top:1px solid var(--border,#eee);}

/* ── RSVP buttons ── */
.plan-rsvp-btn{flex:1;padding:9px 8px;border-radius:11px;border:1px solid var(--border2,#C8BAAE);background:var(--surface,#fff);
  font-family:"Plus Jakarta Sans",sans-serif;font-size:13px;font-weight:800;color:var(--t2);cursor:pointer;transition:all .15s;}
.plan-rsvp-btn:hover{transform:translateY(-1px);}
.plan-rsvp-btn:active{transform:scale(.97);}
.plan-rsvp-btn--yes{background:var(--soc-cta-gradient,linear-gradient(128deg,#047857,#10B981));border-color:transparent;color:#fff;}
.plan-rsvp-btn--maybe.active,.plan-rsvp-btn--maybe:focus-visible{background:rgba(234,179,8,.16);border-color:#EAB308;color:#A16207;}
.plan-rsvp-btn--no.active,.plan-rsvp-btn--no:focus-visible{background:rgba(239,68,68,.12);border-color:#EF4444;color:#DC2626;}
.plan-rsvp-btn.active{box-shadow:inset 0 0 0 1px currentColor;}
.plan-rsvp-btn--yes.active{box-shadow:0 3px 12px rgba(16,185,129,.3);}
.plan-rsvp-row{display:flex;gap:8px;margin-top:6px;}
.plan-rsvp-hint{font-size:11.5px;color:var(--t3);margin-top:8px;text-align:center;line-height:1.4;}

/* ── Detail overlay ── */
.plan-detail-when{
  margin:0 0 12px;padding:12px 14px;border-radius:14px;
  background:color-mix(in srgb,var(--soc-brand,#0D9488) 10%,var(--s2,#F2EAE2));
  border:1px solid color-mix(in srgb,var(--soc-brand,#0D9488) 22%,transparent);
}
.plan-detail-when-day{
  font-family:"Plus Jakarta Sans",sans-serif;font-size:15px;font-weight:800;color:var(--text);letter-spacing:-.02em;
}
.plan-detail-when-range{
  margin-top:2px;font-size:13px;font-weight:700;color:var(--soc-brand,#0D9488);font-variant-numeric:tabular-nums;
}
.plan-detail-edit-time{
  align-self:flex-start;border:1px solid color-mix(in srgb,var(--soc-brand) 35%,var(--border));
  background:transparent;color:var(--soc-brand,#0D9488);cursor:pointer;
  padding:7px 12px;border-radius:10px;font-size:12px;font-weight:800;
}
.plan-detail-edit-time:active{transform:scale(.97);}
.plan-detail-head{display:flex;align-items:center;gap:11px;margin-bottom:14px;}
.plan-detail-icon{width:44px;height:44px;border-radius:13px;background:var(--gbg,#E7F0EA);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.plan-detail-title{font-family:"Plus Jakarta Sans",sans-serif;font-size:18px;font-weight:800;color:var(--text);letter-spacing:-.03em;line-height:1.2;}
.plan-detail-by{font-size:12px;color:var(--t3);margin-top:3px;}
.plan-detail-block{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.plan-detail-row{display:flex;align-items:center;gap:10px;padding:11px 12px;background:var(--s2,#F2EAE2);border-radius:12px;}
.plan-detail-strong{font-size:13px;font-weight:700;color:var(--text);}
.plan-detail-dim{font-size:12px;color:var(--t3);margin-top:1px;}
.plan-detail-note{padding:11px 12px;background:var(--s2,#F2EAE2);border-radius:12px;font-size:13px;color:var(--t2);line-height:1.6;}
.plan-detail-sec-lbl{font-family:"Plus Jakarta Sans",sans-serif;font-size:13px;font-weight:800;color:var(--text);margin-bottom:9px;letter-spacing:-.01em;}

/* ── Slot voting list ── */
.plan-vote-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
.plan-vote-opt{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:13px;border:1.5px solid var(--border,#D8CDC2);background:var(--surface,#fff);cursor:pointer;transition:all .15s;}
.plan-vote-opt:hover{border-color:var(--soc-brand,#0D9488);}
.plan-vote-opt.sel{border-color:var(--soc-brand,#0D9488);background:rgba(13,148,136,.07);}
.plan-vote-opt--lead{box-shadow:0 0 0 1px rgba(16,185,129,.35);}
.plan-vote-check{width:22px;height:22px;border-radius:7px;border:2px solid var(--border2,#C8BAAE);flex-shrink:0;position:relative;transition:all .15s;}
.plan-vote-opt.sel .plan-vote-check{background:var(--soc-cta-gradient,linear-gradient(128deg,#047857,#10B981));border-color:transparent;}
.plan-vote-opt.sel .plan-vote-check::after{content:"✓";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:900;}
.plan-vote-main{flex:1;min-width:0;}
.plan-vote-when{font-size:13.5px;font-weight:700;color:var(--text);}
.plan-vote-count{font-size:11.5px;color:var(--t3);margin-top:2px;}
.plan-vote-confirm{flex-shrink:0;padding:7px 12px;border-radius:9px;border:none;background:var(--text);color:#fff;font-family:"Plus Jakarta Sans",sans-serif;font-size:12px;font-weight:800;cursor:pointer;transition:all .15s;}
.plan-vote-confirm:hover{background:var(--soc-brand,#0D9488);}

/* ── Attendee chips + response summary ── */
.plan-att-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;}
.plan-att-chip{display:flex;align-items:center;gap:6px;padding:4px 11px 4px 5px;background:var(--s2,#F2EAE2);border-radius:999px;border:1px solid var(--border,#D8CDC2);}
.plan-att-av{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#fff;flex-shrink:0;}
.plan-att-chip span{font-size:12px;font-weight:600;color:var(--t2);}
.plan-resp-summary{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px;}
.plan-resp-pill{padding:5px 11px;border-radius:999px;background:var(--s2,#F2EAE2);color:var(--t2);font-size:12px;font-weight:800;}
.plan-resp-pill--yes{background:rgba(16,185,129,.14);color:#047857;}
.plan-resp-pill--maybe{background:rgba(234,179,8,.16);color:#A16207;}
.plan-resp-pill--no{background:rgba(239,68,68,.12);color:#DC2626;}

/* ── Ghost buttons ── */
.plan-detail-ghost{width:100%;padding:12px;border-radius:12px;border:1px solid var(--border,#D8CDC2);background:transparent;
  font-family:"Plus Jakarta Sans",sans-serif;font-size:13px;font-weight:700;color:var(--t3);cursor:pointer;margin-top:8px;transition:all .15s;}
.plan-detail-ghost:hover{background:var(--s2,#F2EAE2);}
.plan-detail-ghost--danger{border-color:var(--border2,#C8BAAE);}
.plan-detail-ghost--danger:hover{border-color:#EF4444;color:#DC2626;}
.plan-detail-ghost--remind{color:var(--brand,#047857);border-color:color-mix(in srgb,var(--brand,#047857) 32%,transparent);}
.plan-detail-ghost--remind:hover{background:color-mix(in srgb,var(--brand,#047857) 8%,transparent);border-color:var(--brand,#047857);}

/* ── Heavier type across the plans form + tab (no thin/light text) ── */
/* Scoped to the plans wizard, plans header and calendar so other sheets are untouched. */
#sh-new-act .feat-sheet-title,
.plan-wizard .feat-sheet-title{font-weight:800;letter-spacing:-.02em;}
#sh-new-act .feat-lbl,
.plan-wizard .feat-lbl{font-weight:800;color:var(--t2);}
#sh-new-act .feat-lbl-hint,
.plan-wizard .feat-lbl-hint{font-weight:700;color:var(--t3);}
#sh-new-act .finput,
.plan-wizard .finput{font-weight:600;}
#sh-new-act .finput::placeholder,
.plan-wizard .finput::placeholder{font-weight:600;color:var(--t3);}
#sh-new-act .tcell,
.plan-wizard .tcell{font-weight:700;}
#sh-new-act .chip,
.plan-wizard .chip{font-weight:700;}
.plan-add-slot{font-weight:800;}
/* Plans tab header + calendar */
.acts-title{font-weight:900;}
.acts-sub{font-weight:700;color:var(--t2);}
.plan-cal-month{font-weight:800;}
.plan-cal-week span{font-weight:800;}
.plan-cal-daynum{font-weight:800;}
.plan-day-title{font-weight:800;}
.plan-day-empty{font-weight:700;}
.plan-cal-leg{font-weight:800;}

/* ── Reminder sheet ── */
.rem-sheet{padding:18px 18px 20px;}
.rem-sheet-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.rem-sheet-heading{min-width:0;}
.rem-sheet-title{font-family:"Manrope","Plus Jakarta Sans",sans-serif;font-size:18px;font-weight:800;color:var(--text);letter-spacing:-.01em;}
.rem-sheet-sub{margin-top:3px;font-size:13px;font-weight:600;color:var(--t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rem-close{flex-shrink:0;width:32px;height:32px;border-radius:50%;border:none;cursor:pointer;background:var(--s2,#F2EAE2);color:var(--t2);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;}
.rem-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.rem-preset{border:1px solid var(--border,#D8CDC2);background:var(--surface,#fff);border-radius:999px;padding:9px 15px;
  font-family:"Plus Jakarta Sans",sans-serif;font-size:13px;font-weight:800;color:var(--text);cursor:pointer;transition:all .14s;}
.rem-preset:hover{border-color:var(--brand,#047857);color:var(--brand,#047857);background:color-mix(in srgb,var(--brand,#047857) 6%,transparent);}
.rem-preset:active{transform:scale(.96);}
.rem-none{font-size:13px;color:var(--t3);font-weight:600;padding:2px 0 4px;}
.rem-set-btn{width:100%;margin-top:12px;}
.rem-note{margin:12px 2px 0;font-size:11.5px;line-height:1.5;color:var(--t3);font-weight:600;}

/* ── Task-row reminder bell + privacy eye ── */
.feed-remind-btn,
.feed-privacy-btn{border:none;background:transparent;cursor:pointer;padding:4px;line-height:1;font-size:15px;border-radius:8px;opacity:.5;transition:opacity .14s,transform .12s,background .14s;}
.feed-remind-btn:hover,
.feed-privacy-btn:hover{opacity:1;background:color-mix(in srgb,var(--brand,#047857) 10%,transparent);}
.feed-remind-btn:active,
.feed-privacy-btn:active{transform:scale(.9);}
.feed-remind-btn.is-set,
.feed-privacy-btn.is-private{opacity:1;}
.feed-privacy-btn{display:inline-flex;align-items:center;justify-content:center;color:var(--t3);}
.feed-privacy-btn.is-private{color:var(--coral,#c0392b);}
.feed-privacy-ico{display:block;pointer-events:none;}

/* ════════════════════════════════════════════════════════════
   Plans calendar — richer look: gradients, engraved frames, gloss
   ════════════════════════════════════════════════════════════ */

/* Engraved calendar frame — accent mat. */
.plan-cal-grid--full,
.plan-cal-grid--week{
  background:var(--plan-frame);
  border:1px solid color-mix(in srgb,var(--soc-brand) 28%,var(--border,#e0e0e0));
  border-radius:18px;
  box-shadow:
    0 12px 30px -12px rgba(var(--soc-brand-rgb,249,115,22),.4),
    0 2px 6px -2px rgba(0,0,0,.12),
    var(--soc-nested-recess,inset 0 3px 7px -1px rgba(0,0,0,.14));
}
/* Each day is its own engraved tile — recessed into the colourful mat behind it. */
.plan-cal-day{
  border-radius:12px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface,#fff) 92%,#dfeae5) 0%,var(--surface,#fff) 46%,color-mix(in srgb,var(--surface,#fff) 88%,#e2ede8) 100%);
  box-shadow:
    inset 0 3px 7px -2px rgba(0,0,0,.26),
    inset 0 1px 3px -1px rgba(0,0,0,.16),
    inset 0 -2px 3px -1px rgba(255,255,255,.7),
    0 1px 0 rgba(255,255,255,.6);
}
.plan-cal-day:hover{background:linear-gradient(180deg,var(--s2,#f7faf9),color-mix(in srgb,var(--brand,#059669) 7%,#fff));}
.plan-cal-day--wknd{background:linear-gradient(180deg,color-mix(in srgb,#f59e0b 7%,var(--surface,#fff)),color-mix(in srgb,#f97316 11%,#fff));}
/* Attendee profile pictures on days with a plan — overlapping cluster, top-right. */
.plan-cal-avs{position:absolute;top:3px;right:3px;display:flex;flex-direction:row;z-index:4;pointer-events:none;}
.plan-cal-av{width:17px;height:17px;border-radius:50%;overflow:hidden;flex-shrink:0;border:1.5px solid var(--surface,#fff);box-shadow:0 1px 3px rgba(0,0,0,.28);display:flex;align-items:center;justify-content:center;font-family:"Plus Jakarta Sans",sans-serif;font-size:8.5px;font-weight:800;color:#fff;background:#bbb;margin-left:-6px;}
.plan-cal-av:first-child{margin-left:0;}
.plan-cal-av img{width:100%;height:100%;object-fit:cover;display:block;}
.plan-cal-av--more{background:var(--s3,#e6e6e6);color:var(--t2,#555);}
.plan-cal-grid--week .plan-cal-av{width:20px;height:20px;font-size:9.5px;}
[data-theme="dark"] .plan-cal-av{border-color:var(--surface,#242424);}
/* Mood-tinted day cells — number picks up the day's mood colour. */
.plan-cal-day.has-mood:not(.plan-cal-day--today) .plan-cal-daynum{color:var(--mood-c);font-weight:900;text-shadow:0 1px 0 rgba(255,255,255,.6);}
.plan-cal-day.has-mood{border-color:color-mix(in srgb,var(--mood-c) 45%,transparent);}
.plan-cal-day--out{background:linear-gradient(180deg,var(--s2,#f0f0f0),var(--s2,#eaeaea));box-shadow:inset 0 2px 7px -2px rgba(0,0,0,.16),inset 0 -1px 0 rgba(255,255,255,.4);}
/* Soft accent weekday washes on empty cells. */
.plan-cal-day.has-day-tint:not(.has-mood):not(.plan-cal-day--today){
  background:linear-gradient(
    160deg,
    color-mix(in srgb,var(--day-tint,var(--soc-brand)) 18%,#fff) 0%,
    color-mix(in srgb,var(--day-tint,var(--soc-brand)) 8%,#fff) 55%,
    #fff 100%
  );
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb,var(--day-tint,var(--soc-brand)) 22%,transparent),
    inset 0 3px 7px -2px rgba(0,0,0,.14),
    inset 0 -2px 3px -1px rgba(255,255,255,.7);
}
.plan-cal-day.has-day-tint:not(.has-mood) .plan-cal-daynum{
  color:color-mix(in srgb,var(--day-tint,var(--soc-brand)) 72%,var(--text,#111));
  font-weight:800;
}
.plan-cal-day.has-plan{
  background:linear-gradient(180deg,color-mix(in srgb,var(--soc-brand) 12%,#fff),color-mix(in srgb,var(--soc-brand2) 14%,#fff));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--soc-brand) 18%,transparent),inset 0 3px 8px -2px rgba(var(--soc-brand-rgb,249,115,22),.24),inset 0 -1px 0 rgba(255,255,255,.5);
}
.plan-cal-day--today{background:radial-gradient(120% 90% at 50% 0%,color-mix(in srgb,var(--soc-brand2) 20%,#fff) 0%,color-mix(in srgb,var(--soc-brand) 12%,#fff) 55%,var(--surface,#fff) 100%);}
.plan-cal-day--today .plan-cal-daynum{
  background:var(--soc-cta-gradient);
  color:#fff;font-weight:800;
  box-shadow:0 4px 14px -2px rgba(var(--soc-brand-rgb,249,115,22),.55),inset 0 1px 0 rgba(255,255,255,.5),inset 0 -2px 4px -1px rgba(0,0,0,.18);
}
.plan-cal-day--today.has-plan .plan-cal-daynum{background:var(--soc-cta-gradient);}
.plan-cal-day--sel{box-shadow:inset 0 0 0 2.5px var(--soc-brand),inset 0 2px 8px -2px color-mix(in srgb,var(--soc-brand) 40%,transparent);}

.plan-cal-ev{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 2px 8px -2px rgba(var(--soc-brand-rgb,249,115,22),.35),0 1px 2px rgba(0,0,0,.12);
}
.plan-cal-ev-name{text-shadow:0 1px 1px rgba(0,0,0,.18);}
.plan-cal-ev-time{text-shadow:none;}
.plan-cal-ev--going{background:var(--soc-cta-gradient);}
.plan-cal-ev--poll{background:var(--soc-cta-gradient-hover,var(--soc-cta-gradient));}

/* Weekday letters — accent brand / brand2 scale. */
.plan-cal-week span{font-weight:900;}
.plan-cal-week span:nth-child(1){color:var(--soc-brand);-webkit-text-fill-color:var(--soc-brand);}
.plan-cal-week span:nth-child(2){color:var(--soc-brand);-webkit-text-fill-color:var(--soc-brand);}
.plan-cal-week span:nth-child(3){color:var(--soc-brand);-webkit-text-fill-color:var(--soc-brand);}
.plan-cal-week span:nth-child(4){color:var(--soc-brand2);-webkit-text-fill-color:var(--soc-brand2);}
.plan-cal-week span:nth-child(5){color:var(--soc-brand2);-webkit-text-fill-color:var(--soc-brand2);}
.plan-cal-week span:nth-child(6){color:var(--soc-brand);-webkit-text-fill-color:var(--soc-brand);}
.plan-cal-week span:nth-child(7){color:var(--soc-brand);-webkit-text-fill-color:var(--soc-brand);}
.plan-cal-grid--week .plan-cal-day:nth-child(1) .plan-cal-wd{color:var(--soc-brand);}
.plan-cal-grid--week .plan-cal-day:nth-child(2) .plan-cal-wd{color:var(--soc-brand);}
.plan-cal-grid--week .plan-cal-day:nth-child(3) .plan-cal-wd{color:var(--soc-brand);}
.plan-cal-grid--week .plan-cal-day:nth-child(4) .plan-cal-wd{color:var(--soc-brand2);}
.plan-cal-grid--week .plan-cal-day:nth-child(5) .plan-cal-wd{color:var(--soc-brand2);}
.plan-cal-grid--week .plan-cal-day:nth-child(6) .plan-cal-wd{color:var(--soc-brand);}
.plan-cal-grid--week .plan-cal-day:nth-child(7) .plan-cal-wd{color:var(--soc-brand);}

.plan-cal-seg{
  background:linear-gradient(135deg,color-mix(in srgb,var(--soc-brand) 12%,var(--s2,#eef1f0)),color-mix(in srgb,var(--soc-brand2) 12%,var(--s2,#e9edeb)));
  box-shadow:var(--soc-lockin-recess,inset 0 2px 6px -1px rgba(0,0,0,.18)),inset 0 -1px 0 rgba(255,255,255,.4);
  border:1px solid color-mix(in srgb,var(--soc-brand) 18%,transparent);
}
.plan-cal-seg-btn.on{
  background:var(--soc-cta-gradient);
  color:#fff;-webkit-text-fill-color:#fff;
  box-shadow:0 3px 10px -2px rgba(var(--soc-brand-rgb,249,115,22),.42),inset 0 1px 0 rgba(255,255,255,.35);
}

.plan-cal--full .plan-cal-month{
  background:var(--soc-cta-gradient);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.plan-cal-nav{
  background:linear-gradient(180deg,var(--surface,#fff),color-mix(in srgb,var(--soc-brand) 10%,#fff));
  border:1px solid color-mix(in srgb,var(--soc-brand) 24%,var(--border,#e6e6e6));
  color:var(--soc-brand);
  box-shadow:0 2px 5px -1px rgba(var(--soc-brand-rgb,249,115,22),.2),inset 0 1px 0 rgba(255,255,255,.8);
}
.plan-cal-nav:hover{background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--soc-brand2) 12%,#fff));}
.plan-cal-today{
  background:var(--soc-cta-gradient);
  border:1px solid transparent;
  color:#fff;
  box-shadow:0 3px 10px -2px rgba(var(--soc-brand-rgb,249,115,22),.42),inset 0 1px 0 rgba(255,255,255,.35);
}
.plan-cal-today:hover{background:var(--soc-cta-gradient-hover,var(--soc-cta-gradient));color:#fff;}

/* Day details header + New-plan pill get a touch more depth. */
.plan-day-add{box-shadow:var(--soc-cta-shadow,0 3px 12px rgba(var(--soc-brand-rgb,249,115,22),.35)),inset 0 1px 0 rgba(255,255,255,.35);}
.plan-cal-hint-emoji{filter:drop-shadow(0 3px 6px rgba(var(--soc-brand-rgb,249,115,22),.3));}

[data-theme="dark"] .plan-cal-day{background:linear-gradient(180deg,var(--surface,#242424),color-mix(in srgb,var(--surface,#242424) 88%,#000));}
[data-theme="dark"] .plan-cal-day--out{background:linear-gradient(180deg,#1c1c1c,#181818);}
[data-theme="dark"] .plan-cal-seg-btn.on{background:linear-gradient(180deg,#2f2f2f,#262626);}

/* ── Full-screen day-details pane (opens over the calendar on tap) ── */
.plan-day-pane{
  position:absolute;inset:0;z-index:6;
  display:flex;flex-direction:column;min-height:0;
  background:linear-gradient(180deg,var(--soc-canvas,#fff) 0%,color-mix(in srgb,var(--brand,#059669) 4%,var(--soc-canvas,#fff)) 100%);
  animation:planPaneIn .22s cubic-bezier(.22,.61,.36,1);
}
@keyframes planPaneIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.plan-pane-hd{
  display:flex;align-items:center;gap:11px;padding:12px 14px 13px;flex-shrink:0;
  border-bottom:1px solid var(--border,#ececec);
  background:linear-gradient(180deg,var(--surface,#fff),color-mix(in srgb,var(--brand,#059669) 5%,var(--surface,#fff)));
  box-shadow:0 4px 14px -8px rgba(4,120,87,.3);
}
.plan-pane-back{flex-shrink:0;width:36px;height:36px;border-radius:50%;cursor:pointer;
  border:1px solid color-mix(in srgb,var(--brand,#059669) 16%,var(--border,#e6e6e6));
  background:linear-gradient(180deg,#fff,var(--s2,#f1f4f3));color:var(--brand,#047857);
  font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px -1px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.8);transition:transform .12s;}
.plan-pane-back:active{transform:scale(.92);}
.plan-pane-titles{flex:1;min-width:0;}
.plan-pane-eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--t3,#999);}
.plan-pane-title{font-family:"Manrope","Plus Jakarta Sans",sans-serif;font-size:20px;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin-top:1px;
  background:linear-gradient(135deg,var(--text,#111),color-mix(in srgb,var(--brand,#059669) 55%,var(--text,#111)));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.plan-pane-add{flex-shrink:0;border:none;border-radius:999px;padding:9px 15px;cursor:pointer;
  font-family:"Plus Jakarta Sans",sans-serif;font-size:12.5px;font-weight:800;color:#fff;
  background:var(--soc-cta-gradient,linear-gradient(128deg,#047857,#10b981));
  box-shadow:var(--soc-cta-shadow,0 3px 12px rgba(16,185,129,.3)),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .12s;}
.plan-pane-add:active{transform:scale(.95);}
.plan-day-pane .plan-day-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:9px;
  padding:12px 14px calc(var(--tab-scroll-bottom,92px) + 8px);scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.plan-day-pane .plan-day-list::-webkit-scrollbar{display:none;}

/* Compact plan/task cards so the day fits on one screen. */
.plan-day-list--compact .act-card,
.plan-day-list--compact .plan-card{padding:11px 13px!important;border-radius:15px!important;}
.plan-day-list--compact .act-hdr{gap:10px;align-items:center;}
.plan-day-list--compact .act-icon{width:34px!important;height:34px!important;font-size:16px!important;border-radius:11px!important;}
.plan-day-list--compact .act-name{font-size:14.5px!important;line-height:1.2;}
.plan-day-list--compact .act-meta{font-size:11.5px!important;margin-top:1px;}
.plan-day-list--compact .plan-card-badges{margin-bottom:3px;}
.plan-day-list--compact .plan-card-badges .plan-badge{font-size:9.5px;padding:2px 7px;}
.plan-day-list--compact .plan-card-foot{margin-top:7px;}
.plan-day-list--compact .plan-card-actions{margin-top:9px;gap:6px;}
.plan-day-list--compact .plan-rsvp-btn{padding:7px 11px;font-size:12px;}
.plan-day-list--compact .plan-card-summary{font-size:11.5px;margin-top:7px;}
.plan-day-list--compact .atav{width:22px;height:22px;font-size:9.5px;}
.plan-day-list--compact .plan-day-empty{padding:26px 16px;}

/* Horizontal week/month swipe — local to .plan-cal (tabs never steal this gesture) */
body.tab-plans #s-acts{
  touch-action:pan-y;
}
body.plan-cal-swiping{
  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
}
body.plan-cal-swiping #plan-tg-scroll{
  overflow-y:hidden!important;
}
.plan-cal--full,
.plan-tg,
.plan-cal-grid--full{
  will-change:transform;
  touch-action:pan-y;
  overscroll-behavior-x:none;
}

/* -- Timed week grid — accent energy ------------------------------------- */
.plan-tg{
  display:flex;flex-direction:column;flex:1;min-height:0;margin:0 2px;
  border-radius:18px;overflow:hidden;
  background:var(--plan-frame);
  padding:2px;
  box-shadow:
    0 12px 30px -12px rgba(var(--soc-brand-rgb,249,115,22),.42),
    0 2px 6px -2px rgba(0,0,0,.12),
    var(--soc-nested-recess,inset 0 3px 7px -1px rgba(0,0,0,.14));
}
.plan-tg-heads{
  display:grid;grid-template-columns:48px repeat(7,1fr);gap:0;
  border-bottom:none;padding:8px 4px 8px;flex-shrink:0;
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--soc-brand) 14%,#fff) 0%,
      color-mix(in srgb,var(--soc-brand) 12%,#fff) 45%,
      color-mix(in srgb,var(--soc-brand2) 14%,#fff) 100%);
  position:sticky;top:0;z-index:3;
  border-radius:16px 16px 0 0;
}
.plan-tg-gutter{min-width:48px;}
.plan-tg-dayhd{
  border:none;background:transparent;cursor:pointer;padding:4px 2px 2px;
  display:flex;flex-direction:column;align-items:center;gap:2px;-webkit-tap-highlight-color:transparent;
  border-radius:12px;transition:background .14s;
}
.plan-tg-dayhd:hover{background:rgba(255,255,255,.45);}
.plan-tg-wd{font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:var(--t3,#888);}
/* gutter is child 1 — days are 2–8 */
.plan-tg-dayhd:nth-child(2) .plan-tg-wd{color:var(--soc-brand);}
.plan-tg-dayhd:nth-child(3) .plan-tg-wd{color:var(--soc-brand);}
.plan-tg-dayhd:nth-child(4) .plan-tg-wd{color:var(--soc-brand);}
.plan-tg-dayhd:nth-child(5) .plan-tg-wd{color:var(--soc-brand2);}
.plan-tg-dayhd:nth-child(6) .plan-tg-wd{color:var(--soc-brand2);}
.plan-tg-dayhd:nth-child(7) .plan-tg-wd{color:var(--soc-brand);}
.plan-tg-dayhd:nth-child(8) .plan-tg-wd{color:var(--soc-brand);}
.plan-tg-dn{
  width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:"Plus Jakarta Sans",sans-serif;font-size:14px;font-weight:800;color:var(--text);
  background:rgba(255,255,255,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 1px 3px rgba(0,0,0,.08);
}
.plan-tg-dayhd--today .plan-tg-wd{color:var(--soc-brand);}
.plan-tg-dayhd--today .plan-tg-dn{
  background:var(--soc-cta-gradient);color:#fff;
  box-shadow:0 4px 14px -2px rgba(var(--soc-brand-rgb,249,115,22),.5),inset 0 1px 0 rgba(255,255,255,.45);
}
.plan-tg-scroll{
  flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;
  overscroll-behavior:contain;
  background:
    radial-gradient(ellipse 90% 40% at 10% 0%,color-mix(in srgb,var(--soc-brand) 10%,transparent),transparent 50%),
    radial-gradient(ellipse 80% 50% at 90% 30%,color-mix(in srgb,var(--soc-brand2) 10%,transparent),transparent 55%),
    linear-gradient(180deg,#fff 0%,color-mix(in srgb,color-mix(in srgb,var(--soc-brand) 8%,#fff) 75%,#fff) 100%);
  border-radius:0 0 16px 16px;
}
.plan-tg-body{display:grid;grid-template-columns:48px 1fr;position:relative;}
.plan-tg-axis{position:relative;background:color-mix(in srgb,var(--soc-brand) 5%,transparent);}
.plan-tg-hour{position:relative;box-sizing:border-box;}
.plan-tg-hour span{
  position:absolute;top:-7px;right:6px;
  font-size:10px;font-weight:800;color:color-mix(in srgb,var(--soc-brand) 50%,var(--t3,#9a9a9a));white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.plan-tg-hour:first-child span{top:2px;}
.plan-tg-cols{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid color-mix(in srgb,var(--soc-brand) 14%,var(--border,#ececec));min-width:0;}
.plan-tg-col{
  position:relative;border-right:1px solid color-mix(in srgb,var(--soc-brand2) 12%,var(--border,#f0f0f0));
  cursor:crosshair;min-width:0;
  /* Own the gesture so vertical drag selects a slot instead of scrolling the week. */
  touch-action:none;
  background:var(--col-wash,transparent);
}
.plan-tg-col:active{cursor:ns-resize;}
.plan-tg-col:nth-child(1){background:linear-gradient(180deg,color-mix(in srgb,var(--soc-brand) 8%,transparent),transparent 40%),var(--col-wash,transparent);}
.plan-tg-col:nth-child(2){background:linear-gradient(180deg,color-mix(in srgb,var(--soc-brand) 8%,transparent),transparent 40%),var(--col-wash,transparent);}
.plan-tg-col:nth-child(3){background:linear-gradient(180deg,color-mix(in srgb,var(--soc-brand) 8%,transparent),transparent 40%),var(--col-wash,transparent);}
.plan-tg-col:nth-child(4){background:linear-gradient(180deg,color-mix(in srgb,var(--soc-brand2) 8%,transparent),transparent 40%),var(--col-wash,transparent);}
.plan-tg-col:nth-child(5){background:linear-gradient(180deg,color-mix(in srgb,var(--soc-brand2) 8%,transparent),transparent 40%),var(--col-wash,transparent);}
.plan-tg-col:nth-child(6){background:linear-gradient(180deg,color-mix(in srgb,var(--soc-brand) 8%,transparent),transparent 40%),var(--col-wash,transparent);}
.plan-tg-col:nth-child(7){background:linear-gradient(180deg,color-mix(in srgb,var(--soc-brand) 8%,transparent),transparent 40%),var(--col-wash,transparent);}
.plan-tg-col--today{
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--soc-brand) 16%,transparent) 0%,color-mix(in srgb,var(--soc-brand2) 12%,transparent) 45%,transparent 100%),
    var(--col-wash,transparent)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--soc-brand) 26%,transparent);
}
.plan-tg-col--mood:not(.plan-tg-col--today){background:linear-gradient(180deg,var(--col-wash),transparent 55%)!important;}
.plan-tg-slot{border-bottom:1px solid color-mix(in srgb,var(--soc-brand) 12%,var(--border,#f0f0f0));box-sizing:border-box;pointer-events:none;}
.plan-tg-col:hover .plan-tg-slot{background:color-mix(in srgb,var(--soc-brand,#10b981) 4%,transparent);}
.plan-tg-hoverband{
  position:absolute;left:1px;right:1px;z-index:1;pointer-events:none;
  border-radius:4px;
  background:color-mix(in srgb,var(--soc-brand,#10b981) 14%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--soc-brand,#10b981) 28%,transparent);
}
.plan-tg-ghost{
  position:absolute;left:2px;right:2px;z-index:3;pointer-events:none;
  border:1.5px dashed color-mix(in srgb,var(--soc-brand,#10b981) 65%,#999);
  border-radius:8px;
  background:color-mix(in srgb,var(--soc-brand,#10b981) 18%,transparent);
  box-shadow:0 2px 10px color-mix(in srgb,var(--soc-brand,#10b981) 18%,transparent);
  transition:none;
}
body.plan-tg-creating{touch-action:none;user-select:none;-webkit-user-select:none;}
body.plan-tg-creating .plan-tg-col{cursor:ns-resize;}
body.plan-tg-creating .plan-tg-scroll{overflow:hidden!important;touch-action:none;}
/* Quick book popup (tap empty calendar slot) */
.plan-book-card{
  text-align:left;padding:20px 18px 16px;max-width:22rem;width:min(22rem,calc(100vw - 28px));
  border-radius:18px;animation:planBookIn .22s cubic-bezier(.22,.61,.36,1);
}
@keyframes planBookIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.plan-book-card{animation:none}}
.plan-book-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;}
.plan-book-title{margin:0;font-family:"Plus Jakarta Sans",sans-serif;font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--text);}
.plan-book-close{
  width:32px;height:32px;border:none;border-radius:50%;cursor:pointer;
  background:var(--s2,#f4f4f5);color:var(--t2);font-size:16px;line-height:1;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.plan-book-when{
  margin:0 0 12px;font-family:"Plus Jakarta Sans",sans-serif;font-size:13.5px;font-weight:700;
  color:var(--soc-brand,#0D9488);letter-spacing:-.01em;
}
.plan-book-card .feat-lbl{margin-top:0;}
.plan-book-card > .finput{margin-bottom:12px;}
.plan-book-times{
  display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;align-items:end;margin-bottom:14px;
}
.plan-book-time{display:flex;flex-direction:column;gap:4px;min-width:0;}
.plan-book-time .feat-lbl{margin:0;}
.plan-book-times .finput{margin:0!important;}
.plan-book-durs{grid-column:1/-1;}
.plan-book-actions{display:flex;align-items:stretch;gap:10px;}
.plan-book-actions .abtn,.plan-book-actions .cta{margin:0;}
.plan-tg-ev{
  position:absolute;left:2px;right:2px;z-index:2;
  border:none;border-radius:7px;padding:3px 5px 4px;overflow:hidden;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;
  color:#fff;cursor:pointer;text-align:left;
  background-size:cover;background-repeat:no-repeat;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    0 2px 8px -1px rgba(var(--soc-brand-rgb,249,115,22),.38),
    0 1px 2px rgba(0,0,0,.14);
  -webkit-tap-highlight-color:transparent;
  transition:transform .12s ease,filter .12s ease,box-shadow .12s ease;
}
.plan-tg-ev:hover{
  filter:saturate(1.08) brightness(1.04);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.5),
    0 4px 12px -2px rgba(var(--soc-brand-rgb,249,115,22),.48),
    0 1px 3px rgba(0,0,0,.16);
}
.plan-tg-ev:active{filter:brightness(.95);transform:scale(.98);}
.plan-tg-ev-name{
  font-family:"Plus Jakarta Sans",sans-serif;font-size:11px;font-weight:800;
  line-height:1.15;letter-spacing:-.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
  text-shadow:0 1px 2px rgba(0,0,0,.28);
}
.plan-tg-ev-time{
  font-size:9.5px;font-weight:800;line-height:1.15;opacity:.98;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
  text-shadow:0 1px 1px rgba(0,0,0,.2);
}
.plan-tg-ev--poll{box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 3px 12px -2px rgba(var(--soc-brand-rgb,249,115,22),.5);}
/* Read-only Google Calendar events — clearly distinct from Treatly lock-ins (dashed, muted). */
.plan-tg-ev--gcal{
  background:repeating-linear-gradient(135deg,rgba(66,133,244,.16),rgba(66,133,244,.16) 8px,rgba(66,133,244,.10) 8px,rgba(66,133,244,.10) 16px);
  color:#1a3a6b;border:1px dashed rgba(66,133,244,.6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 1px 4px rgba(66,133,244,.18);
}
[data-theme="dark"] .plan-tg-ev--gcal{color:#cfe0ff;border-color:rgba(120,160,240,.6);background:repeating-linear-gradient(135deg,rgba(80,120,220,.28),rgba(80,120,220,.28) 8px,rgba(80,120,220,.16) 8px,rgba(80,120,220,.16) 16px);}
.plan-tg-ev--gcal .plan-tg-ev-name,.plan-tg-ev--gcal .plan-tg-ev-time{text-shadow:none;}
.plan-cal-ev--gcal{background:repeating-linear-gradient(135deg,#4285f4,#4285f4 6px,#5a95f5 6px,#5a95f5 12px);}
/* Google events list in the day pane */
.plan-gcal-sec{margin-top:12px;border-top:1px dashed var(--border);padding-top:10px;}
.plan-gcal-sec-lbl{font-size:11px;font-weight:800;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
.plan-gcal-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--s2,#f2eae2);margin-bottom:6px;}
.plan-gcal-row-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.plan-gcal-row-name{font-size:13px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.plan-gcal-row-sub{font-size:11px;font-weight:600;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.plan-gcal-add{flex:none;padding:7px 12px;border-radius:10px;border:1px solid var(--brand);background:var(--brand);color:#fff;font-size:12px;font-weight:800;cursor:pointer;}
.plan-gcal-add:active{transform:scale(.96);}
.plan-gcal-add--ghost{background:transparent;color:var(--brand);}
.plan-gcal-row-actions{display:flex;flex-wrap:wrap;gap:4px;flex:none;}
.plan-tg-now{
  position:absolute;left:0;right:0;height:0;z-index:4;pointer-events:none;
  border-top:2px solid var(--soc-brand2);
  box-shadow:0 0 8px rgba(var(--soc-brand-rgb,249,115,22),.45);
}
.plan-tg-now-dot{
  position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;
  background:var(--soc-cta-gradient);
  box-shadow:0 0 0 3px rgba(var(--soc-brand-rgb,249,115,22),.28);
}
.plan-cal--week{padding:0 6px 6px;}
.plan-cal--week .plan-cal-seg{margin-left:4px;}

/* Friends' availability overlay (slots only — no plan details) */
.plan-cal-friends-toggle{
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  margin:0;padding:5px 10px;border-radius:999px;cursor:pointer;
  border:1px solid color-mix(in srgb,var(--soc-border) 80%,transparent);
  background:color-mix(in srgb,var(--soc-panel-bg) 88%,transparent);
  color:var(--soc-ink-soft);font-size:.68rem;font-weight:750;letter-spacing:.01em;
  user-select:none;-webkit-tap-highlight-color:transparent;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s;
}
.plan-cal-friends-toggle:hover{
  border-color:color-mix(in srgb,var(--soc-brand) 35%,var(--soc-border));
  color:var(--soc-ink);
}
.plan-cal-friends-toggle.on{
  border-color:color-mix(in srgb,var(--soc-brand) 45%,var(--soc-border));
  background:color-mix(in srgb,var(--soc-brand-soft) 70%,var(--soc-panel-bg));
  color:var(--soc-brand);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--soc-brand) 18%,transparent);
}

.plan-tg-avail{
  position:absolute;z-index:2;pointer-events:none;
  border-radius:6px;overflow:hidden;
  display:flex;align-items:center;gap:4px;padding:2px 5px;
  font-size:.58rem;font-weight:750;line-height:1.15;
  border:1px dashed transparent;
}
.plan-tg-avail--free{
  background:color-mix(in srgb,var(--soc-brand) 16%,transparent);
  border-color:color-mix(in srgb,var(--soc-brand) 40%,transparent);
  color:color-mix(in srgb,var(--soc-brand) 75%,var(--soc-ink));
}
.plan-tg-avail--busy{
  background:color-mix(in srgb,var(--soc-ink) 8%,transparent);
  border-color:color-mix(in srgb,var(--soc-ink) 18%,transparent);
  color:var(--soc-ink-soft);
  background-image:repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 3px,
    color-mix(in srgb,var(--soc-ink) 6%,transparent) 3px,
    color-mix(in srgb,var(--soc-ink) 6%,transparent) 6px
  );
}
.plan-tg-avail-lbl{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;
}
.plan-tg-avail-av{
  width:14px;height:14px;border-radius:50%;flex-shrink:0;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:.48rem;font-weight:800;color:#fff;line-height:1;
  box-shadow:0 0 0 1px color-mix(in srgb,#fff 55%,transparent);
}
.plan-tg-avail-av img{width:100%;height:100%;object-fit:cover;display:block;}
.plan-tg-avail-av--txt{letter-spacing:0;}

.plan-cal-avail-marks{
  display:flex;align-items:center;justify-content:center;gap:2px;
  margin:2px 0 0;min-height:6px;
}
.plan-cal-avail-dot{
  width:5px;height:5px;border-radius:50%;flex-shrink:0;
  background:color-mix(in srgb,var(--soc-brand) 70%,#22c55e);
  box-shadow:0 0 0 1.5px color-mix(in srgb,var(--soc-brand) 25%,transparent);
}
.plan-cal-avail-marks.is-busy:not(.is-free) .plan-cal-avail-dot{
  background:color-mix(in srgb,var(--soc-ink) 35%,transparent);
  box-shadow:none;
}
.plan-cal-day.has-friend-avail .plan-cal-avail-marks{opacity:1;}

.plan-avail-sec{margin:0 0 12px;}
.plan-avail-sec-lbl{
  font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  color:var(--soc-ink-soft);margin:0 0 8px;
}
.plan-avail-row{
  display:flex;align-items:center;gap:10px;
  padding:9px 11px;border-radius:12px;margin-bottom:6px;
  border:1px solid color-mix(in srgb,var(--soc-border) 85%,transparent);
  background:color-mix(in srgb,var(--soc-panel-bg) 90%,transparent);
}
.plan-avail-row--free{
  border-color:color-mix(in srgb,var(--soc-brand) 28%,var(--soc-border));
  background:color-mix(in srgb,var(--soc-brand-soft) 55%,var(--soc-panel-bg));
}
.plan-avail-row--busy{border-style:dashed;opacity:.92;}
.plan-avail-row .plan-tg-avail-av{width:28px;height:28px;font-size:.72rem;}
.plan-avail-meta{display:flex;flex-direction:column;gap:2px;min-width:0;}
.plan-avail-name{font-weight:750;color:var(--soc-ink);font-size:.86rem;}
.plan-avail-sub{font-weight:650;color:var(--soc-ink-soft);font-size:.74rem;font-variant-numeric:tabular-nums;}
