:root{
  --bg:#f7eefb;
  --surface:#fffafe;
  --surface-2:#f5ecff;
  --line:#e3d7f3;
  --text:#2b2037;
  --muted:#796b88;
  --primary:#8c50bf;
  --primary-2:#6e3ca0;
  --primary-soft:#f0e5fb;
  --success:#2d9b72;
  --warning:#d78340;
  --danger:#d45374;

  --job1:#6d8ff7;
  --job1-soft:#e9efff;
  --job2:#c86ab0;
  --job2-soft:#fbeaf6;
  --off:#d9d0e7;
  --off-soft:#faf7fd;
  --leave:#f0a45e;
  --leave-soft:#fff1df;
  --blocked:#6b6078;
  --blocked-soft:#efe9f6;

  --shadow:0 18px 42px rgba(122,68,111,.10);
  --shadow-lg:0 26px 64px rgba(94,49,91,.16);
  --radius:24px;
  --radius-md:18px;
  --radius-sm:14px;
  --font-ui:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-display:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --display-weight:820;
  --display-spacing:-.04em;
  --body-tracking:0;
}

html[data-theme="berry"]{
  --bg:#f7eefb;
  --surface:#fffafe;
  --surface-2:#f5ecff;
  --line:#e3d7f3;
  --text:#2b2037;
  --muted:#796b88;
  --primary:#8c50bf;
  --primary-2:#6e3ca0;
  --primary-soft:#f0e5fb;
  --job1:#6d8ff7;
  --job1-soft:#e9efff;
  --job2:#c86ab0;
  --job2-soft:#fbeaf6;
  --off:#d9d0e7;
  --off-soft:#faf7fd;
  --leave:#f0a45e;
  --leave-soft:#fff1df;
  --blocked:#6b6078;
  --blocked-soft:#efe9f6;
}

html[data-theme="lavender"]{
  --bg:#f4f1ff;
  --surface:#fffcff;
  --surface-2:#f7f3ff;
  --line:#dfd7f5;
  --text:#2a2340;
  --muted:#756d8f;
  --primary:#8e79ea;
  --primary-2:#705bcf;
  --primary-soft:#efeaff;
  --job1:#769af3;
  --job1-soft:#eaf0ff;
  --job2:#c7a4ee;
  --job2-soft:#f8efff;
  --off:#ddd7ee;
  --off-soft:#faf8fe;
  --leave:#eda970;
  --leave-soft:#fff1e2;
  --blocked:#6e6687;
  --blocked-soft:#efeaf8;
}

html[data-theme="blush"]{
  --bg:#fff0f6;
  --surface:#fffafd;
  --surface-2:#ffeef5;
  --line:#f1d1e0;
  --text:#351f2d;
  --muted:#8c6879;
  --primary:#e45b96;
  --primary-2:#c43b77;
  --primary-soft:#ffe5f0;
  --job1:#5f8df0;
  --job1-soft:#e7eeff;
  --job2:#ff9fbe;
  --job2-soft:#ffe7f0;
  --off:#e9d3de;
  --off-soft:#fff7fa;
  --leave:#f09b72;
  --leave-soft:#fff0e6;
  --blocked:#805f73;
  --blocked-soft:#f6e8ef;
}

html[data-theme="peony"]{
  --bg:#fff7f5;
  --surface:#fffdfd;
  --surface-2:#fff1ee;
  --line:#f2ddd8;
  --text:#3a232e;
  --muted:#8f6c75;
  --primary:#f08aa4;
  --primary-2:#d76f8b;
  --primary-soft:#ffe6eb;
  --job1:#7b97ef;
  --job1-soft:#edf2ff;
  --job2:#ffc1b7;
  --job2-soft:#fff0eb;
  --off:#ecdedd;
  --off-soft:#fffafb;
  --leave:#f3ae84;
  --leave-soft:#fff2ea;
  --blocked:#8a6f74;
  --blocked-soft:#f6ecec;
}

html[data-theme="rosegold"]{
  --bg:#fdf6f2;
  --surface:#fffdfc;
  --surface-2:#fbeee8;
  --line:#ecd8d0;
  --text:#34252d;
  --muted:#876f77;
  --primary:#d88da3;
  --primary-2:#b66f86;
  --primary-soft:#f7e7ec;
  --job1:#7b90e6;
  --job1-soft:#eef2ff;
  --job2:#f2cbb8;
  --job2-soft:#fdf1ea;
  --off:#e8ddd8;
  --off-soft:#fdf9f7;
  --leave:#e4ad7f;
  --leave-soft:#fcf0e5;
  --blocked:#7b6a6f;
  --blocked-soft:#f3ece9;
}

html[data-font="modern"]{
  --font-ui:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-display:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --display-weight:840;
  --display-spacing:-.05em;
  --body-tracking:0;
}

html[data-font="soft"]{
  --font-ui:ui-rounded,"Trebuchet MS","Segoe UI",Verdana,system-ui,sans-serif;
  --font-display:ui-rounded,"Trebuchet MS","Segoe UI",Verdana,system-ui,sans-serif;
  --display-weight:760;
  --display-spacing:-.02em;
  --body-tracking:.01em;
}

html[data-font="elegant"]{
  --font-ui:"Avenir Next","Segoe UI",Inter,system-ui,sans-serif;
  --font-display:Georgia,"Iowan Old Style",Cambria,serif;
  --display-weight:700;
  --display-spacing:-.015em;
  --body-tracking:.004em;
}

html[data-font="romantic"]{
  --font-ui:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif;
  --font-display:"Lucida Handwriting","Brush Script MT",cursive;
  --display-weight:600;
  --display-spacing:0;
  --body-tracking:.006em;
}

html[data-font="classic"]{
  --font-ui:"Avenir Next","Segoe UI",Tahoma,Geneva,sans-serif;
  --font-display:"Palatino Linotype","Book Antiqua",Palatino,serif;
  --display-weight:700;
  --display-spacing:-.01em;
  --body-tracking:.003em;
}

*{box-sizing:border-box}

html{
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:linear-gradient(180deg,var(--surface-2) 0%,var(--bg) 100%);
  color:var(--text);
  font:500 15px/1.45 var(--font-ui);
  letter-spacing:var(--body-tracking);
}

body.sheet-open{
  overflow:hidden;
}

a{
  color:inherit;
  text-decoration:none;
}

img{
  max-width:100%;
}

h1,
h2,
h3,
.brand__title,
.hero__title,
.section-title,
.sheet-heading,
.sheet-title,
.dash-modal__title{
  font-family:var(--font-display);
  font-weight:var(--display-weight);
  letter-spacing:var(--display-spacing);
}

button,
input,
select,
textarea{
  font:inherit;
}

button{
  cursor:pointer;
}

.app-shell{
  min-height:100dvh;
  max-width:560px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
}

.topbar{
  position:sticky;
  top:0;
  z-index:40;
  backdrop-filter:blur(16px);
  background:rgba(255,248,252,.86);
  border-bottom:1px solid rgba(237,215,230,.82);
}

.topbar__inner{
  padding:16px 18px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.brand__mark{
  width:44px;
  height:44px;
  display:block;
  object-fit:contain;
  flex:0 0 44px;
}

.brand__copy{
  min-width:0;
}

.brand__title{
  font-size:22px;
}

.brand__subtitle{
  color:var(--muted);
  font-size:12px;
}

.topbar__meta{
  padding:8px 12px;
  border-radius:999px;
  background:var(--surface);
  border:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}

.main{
  padding:18px 16px 98px;
  display:grid;
  gap:14px;
}

.card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:26px;
  box-shadow:0 16px 38px rgba(15,23,42,.07);
  padding:16px;
}

.card--soft{
  background:rgba(255,255,255,.8);
}

.hero{
  display:grid;
  gap:10px;
}

.hero__eyebrow{
  color:var(--primary-2);
  font-size:12px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.hero__title{
  margin:0;
  font-size:28px;
  line-height:1.05;
  letter-spacing:-.04em;
}

.hero__title--sm{
  font-size:24px;
}

.hero__body{
  margin:0;
  color:var(--muted);
}

.hero__body--sm{
  font-size:13px;
}

.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.section-title{
  margin:0 0 6px;
  font-size:18px;
  font-weight:800;
  letter-spacing:-.02em;
}

.section-subtitle{
  margin:0;
  color:var(--muted);
  font-size:13px;
}

.stat-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.stat-card{
  padding:15px;
  border-radius:22px;
  border:1px solid var(--line);
  background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);
}

.stat-card__label{
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}

.stat-card__value{
  margin-top:6px;
  font-size:26px;
  line-height:1.05;
  letter-spacing:-.03em;
  font-weight:800;
}

.stat-card__hint{
  margin-top:6px;
  color:var(--muted);
  font-size:12px;
}

.progress-list,
.block-list{
  display:grid;
  gap:10px;
}

.progress-item,
.block-item,
.switch-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border-radius:18px;
  border:1px solid var(--line);
  background:var(--surface-2);
}

.progress-item__text,
.block-item__main{
  display:grid;
  gap:3px;
}

.progress-item__text span{
  color:var(--muted);
  font-size:12px;
}

.note-box{
  padding:13px 14px;
  border-radius:16px;
  background:#f8fafc;
  border:1px solid var(--line);
  color:var(--muted);
  font-size:13px;
}

.small-text{
  font-size:12px;
  color:var(--muted);
}

.form-grid{
  display:grid;
  gap:12px;
}

.form-grid--2{
  grid-template-columns:1fr;
}

.form-row{
  display:grid;
  gap:6px;
}

.form-row label{
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}

.form-span-2{
  grid-column:1 / -1;
}

.input,
.select,
.textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  color:var(--text);
  padding:12px 14px;
  outline:none;
}

.textarea{
  min-height:96px;
  resize:vertical;
}

.input,
.select,
.textarea,
input[type="time"].input{
  display:block;
  min-width:0;
  max-width:100%;
}

input[type="time"].input{
  appearance:none;
  -webkit-appearance:none;
  font-variant-numeric:tabular-nums;
}

.input:focus,
.select:focus,
.textarea:focus{
  border-color:color-mix(in srgb, var(--primary) 62%, white 38%);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--primary-soft) 82%, white 18%);
}

.actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.btn{
  appearance:none;
  border:0;
  border-radius:16px;
  padding:12px 16px;
  font-weight:800;
  letter-spacing:-.01em;
}

.btn--primary{
  color:#fff;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-2) 100%);
}

.btn--soft{
  color:var(--text);
  background:#f1f5f9;
}

.btn--ghost{
  color:var(--text);
  background:var(--primary-soft);
}

.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  font-weight:800;
}

.badge--warning{
  color:#fff;
  background:var(--warning);
}

.badge--success{
  color:#fff;
  background:var(--success);
}

.badge--info{
  color:var(--primary-2);
  background:var(--primary-soft);
}

.badge--blocked{
  color:#fff;
  background:var(--blocked);
}

.alert{
  padding:13px 14px;
  border-radius:16px;
  border:1px solid var(--line);
}

.alert--success{
  background:#ecfdf5;
  color:#065f46;
  border-color:#bbf7d0;
}

.alert--error{
  background:#fef2f2;
  color:#991b1b;
  border-color:#fecaca;
}

.calendar-head{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
}

.calendar-head__center{
  text-align:center;
}


[data-calendar-panel]{
  display:grid;
  gap:14px;
}

.plan-calendar-card{
  padding:14px;
  background:
    radial-gradient(circle at 15% 0%, color-mix(in srgb, var(--primary-soft) 72%, white 28%) 0%, rgba(255,255,255,0) 36%),
    linear-gradient(180deg,var(--surface) 0%, color-mix(in srgb, var(--surface-2) 58%, white 42%) 100%);
  border-color:color-mix(in srgb, var(--primary) 18%, var(--line) 82%);
  box-shadow:0 20px 48px rgba(94,49,91,.11);
}

.calendar-head--primary{
  margin-bottom:12px;
}

.plan-calendar-card__title{
  margin-bottom:4px;
  font-size:22px;
  line-height:1.05;
}

.legend--compact{
  margin-bottom:12px;
}

.plan-stat-grid{
  margin-top:2px;
}

.plan-stat-grid .stat-card{
  padding:13px;
  border-radius:20px;
}

.plan-stat-grid .stat-card__value{
  font-size:22px;
}

.plan-generator-card .panel-head{
  margin-bottom:10px;
}

.plan-modal-menu{
  display:grid;
  gap:10px;
  padding:0 0 4px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.plan-modal-link{
  --plan-accent:#e45b96;
  --plan-ink:#8f123f;
  --plan-soft:#ffe8f1;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:grid;
  grid-template-columns:50px minmax(0,1fr) 38px;
  width:100%;
  min-height:72px;
  align-items:center;
  gap:9px;
  border:1px solid color-mix(in srgb, var(--plan-accent) 34%, white 66%);
  border-radius:20px;
  padding:10px 11px;
  background:
    radial-gradient(circle at 14% 50%, rgba(255,229,240,.86) 0%, rgba(255,229,240,0) 38%),
    radial-gradient(circle at 86% 50%, rgba(255,231,241,.58) 0%, rgba(255,231,241,0) 34%),
    linear-gradient(135deg, rgba(255,255,255,.98) 0%, rgba(255,250,253,.96) 48%, rgba(255,243,248,.95) 100%);
  color:var(--plan-ink);
  font:inherit;
  text-align:left;
  cursor:pointer;
  box-shadow:
    0 8px 20px rgba(142,18,63,.055),
    inset 0 1px 0 rgba(255,255,255,.95);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.plan-modal-link::before{
  content:'';
  position:absolute;
  inset:1px;
  z-index:-1;
  border-radius:19px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.52), rgba(255,255,255,0) 42%),
    radial-gradient(circle at 52% 50%, rgba(255,238,246,.26), rgba(255,255,255,0) 50%);
  pointer-events:none;
}

.plan-modal-link--work1{
  --plan-accent:#e45b96;
  --plan-ink:#8b123e;
  --plan-soft:#ffe8f1;
}

.plan-modal-link--work2{
  --plan-accent:#ef6f9b;
  --plan-ink:#941640;
  --plan-soft:#ffe5ee;
}

.plan-modal-link--limits{
  --plan-accent:#ee8bad;
  --plan-ink:#8f1744;
  --plan-soft:#fff0f5;
}

.plan-modal-link--summary{
  --plan-accent:#de7699;
  --plan-ink:#8b123e;
  --plan-soft:#ffeaf1;
}

.plan-modal-link__icon{
  width:50px;
  height:46px;
  display:grid;
  place-items:center;
  justify-self:center;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.plan-modal-link__image{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  filter:drop-shadow(0 6px 8px rgba(142,18,63,.12));
  transform:translateZ(0);
}

.plan-modal-link__copy{
  min-width:0;
  display:grid;
  align-items:center;
  justify-items:center;
}

.plan-modal-link__title{
  display:block;
  max-width:100%;
  color:var(--plan-ink);
  font-family:var(--font-display);
  font-size:clamp(20px, 5.7vw, 24px);
  font-weight:var(--display-weight);
  letter-spacing:var(--display-spacing);
  line-height:1.03;
  text-align:center;
  text-wrap:balance;
  text-shadow:0 1px 0 rgba(255,255,255,.84);
}

.plan-modal-link--limits .plan-modal-link__title{
  font-size:clamp(18px, 5.15vw, 23px);
}

.plan-modal-link__hint{
  display:none;
}

.plan-modal-link__arrow{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  justify-self:end;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(255,238,246,.96), rgba(253,222,235,.96));
  border:1px solid color-mix(in srgb, var(--plan-accent) 19%, white 81%);
  color:#dc3d81;
  font-size:25px;
  font-weight:300;
  line-height:1;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 8px 18px rgba(220,61,129,.09);
  transition:transform .18s ease, background .18s ease, border-color .18s ease;
}

.plan-modal-link:hover{
  transform:translateY(-1px);
  border-color:color-mix(in srgb, var(--plan-accent) 48%, white 52%);
  background:
    radial-gradient(circle at 14% 50%, rgba(255,224,237,.94) 0%, rgba(255,224,237,0) 38%),
    radial-gradient(circle at 86% 50%, rgba(255,229,240,.72) 0%, rgba(255,229,240,0) 36%),
    linear-gradient(135deg, #fff 0%, rgba(255,251,253,.99) 48%, rgba(255,240,246,.98) 100%);
  box-shadow:0 12px 28px rgba(142,18,63,.085);
}

.plan-modal-link:hover .plan-modal-link__arrow{
  transform:translateX(2px);
  border-color:color-mix(in srgb, var(--plan-accent) 28%, white 72%);
  background:linear-gradient(180deg, rgba(255,242,248,.98), rgba(252,217,232,.98));
}

.plan-modal-link:active{
  transform:translateY(0);
}

.plan-modal-link:focus-visible{
  outline:none;
  border-color:var(--plan-accent);
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--plan-soft) 74%, white 26%),
    0 14px 30px rgba(142,18,63,.11);
}

@media (min-width:420px){
  .plan-modal-menu{
    gap:12px;
  }

  .plan-modal-link{
    grid-template-columns:58px minmax(0,1fr) 44px;
    min-height:82px;
    gap:11px;
    border-radius:22px;
    padding:12px 13px;
  }

  .plan-modal-link::before{
    border-radius:21px;
  }

  .plan-modal-link__icon{
    width:58px;
    height:54px;
  }

  .plan-modal-link__title{
    font-size:clamp(22px, 5.8vw, 27px);
  }

  .plan-modal-link--limits .plan-modal-link__title{
    font-size:clamp(20px, 5vw, 25px);
  }

  .plan-modal-link__arrow{
    width:44px;
    height:44px;
    font-size:28px;
  }
}

@media (min-width:640px){
  .plan-modal-menu{
    gap:14px;
  }

  .plan-modal-link{
    grid-template-columns:76px minmax(0,1fr) 54px;
    min-height:96px;
    gap:14px;
    border-radius:26px;
    padding:14px 18px;
    box-shadow:
      0 14px 34px rgba(142,18,63,.07),
      inset 0 1px 0 rgba(255,255,255,.95);
  }

  .plan-modal-link::before{
    border-radius:25px;
  }

  .plan-modal-link__icon{
    width:76px;
    height:70px;
  }

  .plan-modal-link__title{
    font-size:clamp(28px, 4.8vw, 34px);
  }

  .plan-modal-link--limits .plan-modal-link__title{
    font-size:clamp(25px, 4.4vw, 32px);
  }

  .plan-modal-link__arrow{
    width:54px;
    height:54px;
    font-size:34px;
  }
}

@media (min-width:900px){
  .plan-modal-link{
    grid-template-columns:92px minmax(0,1fr) 58px;
    min-height:108px;
    gap:18px;
    border-radius:28px;
    padding:16px 22px;
  }

  .plan-modal-link::before{
    border-radius:27px;
  }

  .plan-modal-link__icon{
    width:92px;
    height:84px;
  }

  .plan-modal-link__title{
    font-size:38px;
  }

  .plan-modal-link--limits .plan-modal-link__title{
    font-size:34px;
  }

  .plan-modal-link__arrow{
    width:58px;
    height:58px;
    font-size:36px;
  }
}

.card--action[data-dashboard-modal-open="work1-modal"],
.card--action[data-dashboard-modal-open="work2-modal"],
.card--action[data-dashboard-modal-open="limits-modal"]{
  padding:0 10px;
  border:1px solid color-mix(in srgb, var(--primary) 12%, var(--line) 88%);
  border-radius:22px;
  background:color-mix(in srgb, var(--surface) 88%, var(--primary-soft) 12%);
  box-shadow:0 12px 28px rgba(15,23,42,.045);
}

.card--action[data-dashboard-modal-open="work1-modal"] .stat-grid,
.card--action[data-dashboard-modal-open="work2-modal"] .stat-grid,
.card--action[data-dashboard-modal-open="limits-modal"] .stat-grid,
.card--action[data-dashboard-modal-open="work1-modal"] .section-subtitle,
.card--action[data-dashboard-modal-open="work2-modal"] .section-subtitle,
.card--action[data-dashboard-modal-open="limits-modal"] .section-subtitle{
  display:none !important;
}

.card--action[data-dashboard-modal-open="work1-modal"] .panel-head,
.card--action[data-dashboard-modal-open="work2-modal"] .panel-head,
.card--action[data-dashboard-modal-open="limits-modal"] .panel-head{
  display:flex;
  min-height:52px;
  margin:0;
  padding:0;
  align-items:center;
}

.card--action[data-dashboard-modal-open="work1-modal"] .section-title,
.card--action[data-dashboard-modal-open="work2-modal"] .section-title,
.card--action[data-dashboard-modal-open="limits-modal"] .section-title{
  font-size:14px;
  margin:0;
}

.month-switch{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:rgba(255,255,255,.78);
  border:1px solid var(--line);
  color:var(--primary-2);
  font-weight:900;
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}

.month-switch:focus-visible,
.month-switch:hover{
  outline:none;
  border-color:var(--primary);
  background:var(--primary-soft);
}

.legend{
  display:flex;
  flex-wrap:wrap;
  gap:10px 10px;
  margin-bottom:14px;
}

.legend__item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:12px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.76);
  border:1px solid var(--line);
  box-shadow:0 8px 18px rgba(15,23,42,.04);
}

.legend__dot{
  width:10px;
  height:10px;
  border-radius:999px;
}

.legend__dot--job1{background:var(--job1)}
.legend__dot--job2{background:var(--job2)}
.legend__dot--off{background:var(--off)}
.legend__dot--leave{background:var(--leave)}
.legend__dot--blocked{background:var(--blocked)}

.calendar-grid{
  display:grid;
  gap:8px;
}

.calendar-grid--month{
  grid-template-columns:repeat(7,minmax(0,1fr));
}

.calendar-weekday{
  text-align:center;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  padding-bottom:2px;
}

.day-cell{
  --day-status-color:var(--off);
  --day-status-soft:var(--off-soft);
  --day-holiday:#d51f49;
  --day-holiday-soft:#fff0f4;
  position:relative;
  isolation:isolate;
  min-height:88px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  padding:8px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:6px;
  text-align:left;
  box-shadow:0 8px 20px rgba(15,23,42,.03);
  overflow:hidden;
}


.day-cell:focus-visible,
.day-cell:hover{
  outline:none;
  border-color:color-mix(in srgb, var(--primary) 48%, var(--line) 52%);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--primary-soft) 78%, white 22%), 0 12px 24px rgba(15,23,42,.07);
}

.day-cell > *{
  position:relative;
  z-index:1;
}

.day-cell--empty{
  min-height:0;
  border:0;
  background:transparent;
  padding:0;
  box-shadow:none;
}

.day-cell__top{
  width:100%;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:4px;
  min-width:0;
}

.day-cell__num{
  font-size:15px;
  line-height:1;
  font-weight:800;
  flex:0 0 auto;
}

.day-cell__icons{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
  flex:0 0 auto;
  min-width:0;
}

.day-cell__icon{
  font-size:10px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.day-cell__icon--holiday{
  width:18px;
  height:18px;
  border-radius:999px;
  background:linear-gradient(180deg,#d61f46 0%, #ee4d70 100%);
  color:#fff;
  font-size:10px;
  box-shadow:0 6px 14px rgba(214,31,70,.24);
  border:1px solid rgba(255,255,255,.55);
}

.day-cell__marker{
  width:6px;
  height:6px;
  border-radius:999px;
  background:rgba(15,23,42,.55);
  flex:0 0 auto;
}

.day-cell__alert{
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:center;
  margin-top:2px;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(217,119,6,.28);
  color:var(--warning);
  font-size:13px;
  font-weight:900;
  line-height:1;
  flex:0 0 auto;
  box-shadow:0 2px 6px rgba(15,23,42,.06);
}

.day-cell__swatch{
  display:block;
  width:100%;
  height:12px;
  border-radius:999px;
  background:var(--off);
  margin-top:auto;
}

.day-cell--job1{
  --day-status-color:var(--job1);
  --day-status-soft:var(--job1-soft);
  background:var(--day-status-soft);
  border-color:#86efac;
}

.day-cell--job1 .day-cell__swatch{
  background:var(--day-status-color);
}

.day-cell--job2{
  --day-status-color:var(--job2);
  --day-status-soft:var(--job2-soft);
  background:var(--day-status-soft);
  border-color:#f9a8d4;
}

.day-cell--job2 .day-cell__swatch{
  background:var(--day-status-color);
}

.day-cell--off{
  --day-status-color:var(--off);
  --day-status-soft:var(--off-soft);
  background:var(--day-status-soft);
  border-color:#e2e8f0;
}

.day-cell--off .day-cell__swatch{
  background:var(--day-status-color);
}

.day-cell--leave{
  --day-status-color:var(--leave);
  --day-status-soft:var(--leave-soft);
  background:var(--day-status-soft);
  border-color:#fcd34d;
}

.day-cell--leave .day-cell__swatch{
  background:var(--day-status-color);
}

.day-cell--blocked{
  --day-status-color:var(--blocked);
  --day-status-soft:var(--blocked-soft);
  background:var(--day-status-soft);
  border-color:#cbd5e1;
}

.day-cell--blocked .day-cell__swatch{
  background:var(--day-status-color);
}

.day-cell--today{
  box-shadow:
    inset 0 0 0 2px color-mix(in srgb, var(--primary) 55%, white 45%),
    0 8px 20px rgba(15,23,42,.03);
}

.segment-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.segment-link{
  padding:9px 12px;
  border-radius:999px;
  background:#f1f5f9;
  border:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}

.segment-link.is-active{
  color:var(--primary-2);
  background:var(--primary-soft);
  border-color:color-mix(in srgb, var(--primary) 38%, white 62%);
}

.month-targets{
  display:grid;
  gap:12px;
}

.month-target-card{
  padding:14px;
  border-radius:20px;
  border:1px solid var(--line);
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
}

.month-target-card.is-active{
  border-color:color-mix(in srgb, var(--primary) 38%, white 62%);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--primary-soft) 85%, white 15%);
}

.month-target-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}

.month-target-card__head h3{
  margin:0 0 4px;
  font-size:17px;
  font-weight:800;
}

.month-target-card__head p{
  margin:0;
  color:var(--muted);
  font-size:12px;
}

.bottom-sheet{
  position:fixed;
  inset:0;
  z-index:90;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:16px 12px 0;
  background:rgba(15,23,42,.42);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
  overflow-y:auto;
  overscroll-behavior:contain;
}

.bottom-sheet.is-open{
  opacity:1;
  pointer-events:auto;
}

.bottom-sheet__panel{
  margin:0;
  width:min(100%,560px);
  max-width:560px;
  max-height:calc(100dvh - 10px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  background:#fff;
  border-radius:26px 26px 0 0;
  padding:18px 16px max(24px, calc(env(safe-area-inset-bottom) + 24px));
  min-height:50vh;
  transform:translateY(28px);
  transition:transform .2s ease;
}

.bottom-sheet.is-open .bottom-sheet__panel{
  transform:translateY(0);
}

.bottom-sheet__handle{
  width:56px;
  height:6px;
  border-radius:999px;
  background:#d8e2f0;
  margin:0 auto 16px;
}

.sheet-rules{
  margin:8px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}


.sheet-head{
  display:grid;
  grid-template-columns:minmax(0,108px) minmax(0,1fr) minmax(0,108px);
  align-items:center;
  gap:10px;
  margin-bottom:16px;
}

.sheet-head__center{
  min-width:0;
  text-align:center;
  display:grid;
  gap:4px;
}

.sheet-head .section-title,
.sheet-head .section-title--sm{
  margin:0;
  font-size:18px;
}

.sheet-head .section-subtitle{
  margin:0;
  font-size:13px;
}

.sheet-head__action{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:8px 10px;
  border-radius:18px;
  font-size:12px;
  font-weight:800;
  letter-spacing:-.01em;
  white-space:nowrap;
}

.sheet-head__action--back{
  justify-self:start;
  justify-content:flex-start;
}

.sheet-head__action--close{
  justify-self:end;
  justify-content:flex-end;
}

.sheet-head__action.is-hidden{
  visibility:hidden;
  pointer-events:none;
}

.sheet-head__icon{
  width:36px;
  height:36px;
  flex:0 0 36px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(180deg,#fff 0%,#ffe7ef 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82), 0 10px 18px rgba(225,29,72,.08);
  color:#be185d;
  font-size:19px;
  font-weight:800;
  line-height:1;
}

.bottom-sheet__body{
  flex:1 1 auto;
  min-height:0;
  display:grid;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding-top:4px;
  padding-right:2px;
}

.bottom-sheet__body::-webkit-scrollbar,
.bottom-sheet__panel::-webkit-scrollbar{
  width:8px;
}

.bottom-sheet__body::-webkit-scrollbar-thumb,
.bottom-sheet__panel::-webkit-scrollbar-thumb{
  background:rgba(244,114,182,.32);
  border-radius:999px;
}


.sheet-step{
  display:grid;
  gap:14px;
  width:100%;
  min-width:0;
  align-content:start;
  justify-items:stretch;
  align-self:start;
  padding-bottom:2px;
}

.sheet-step > .form-grid,
.sheet-step > .day-preview,
.sheet-step > .sheet-inline-list{
  width:100%;
  min-width:0;
}

.sheet-step[hidden]{
  display:none !important;
}

.sheet-choice-grid{
  display:grid;
  grid-template-columns:repeat(1,minmax(0,1fr));
  gap:12px;
}

.sheet-choice{
  appearance:none;
  width:100%;
  text-align:left;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
  padding:16px 16px;
  border-radius:22px;
  border:1px solid rgba(244,114,182,.18);
  background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,241,245,.94) 100%);
  box-shadow:0 16px 32px rgba(190,24,93,.08);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.sheet-choice::after{
  content:'›';
  font-size:24px;
  line-height:1;
  color:#be185d;
  font-weight:800;
}

.sheet-choice:active{
  transform:translateY(1px) scale(.995);
}

.sheet-choice:focus-visible{
  outline:none;
  border-color:rgba(225,29,72,.34);
  box-shadow:0 0 0 4px rgba(244,114,182,.14), 0 18px 34px rgba(190,24,93,.10);
}

.sheet-choice__icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:linear-gradient(180deg,#fff 0%,#ffe7ef 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82), 0 10px 18px rgba(225,29,72,.08);
  font-size:22px;
}

.sheet-choice__title{
  font-size:15px;
  font-weight:800;
  letter-spacing:-.02em;
  color:#881337;
}

.sheet-divider{
  height:1px;
  margin:2px 0;
  background:linear-gradient(90deg,rgba(244,114,182,0) 0%, rgba(244,114,182,.34) 20%, rgba(251,113,133,.34) 80%, rgba(244,114,182,0) 100%);
}

.sheet-inline-list,
.day-preview{
  display:grid;
  gap:10px;
}

.reminder-empty,
.day-preview__empty{
  padding:16px 14px;
  border-radius:18px;
  border:1px dashed rgba(244,114,182,.32);
  background:rgba(255,255,255,.72);
  color:#9f1239;
  font-size:13px;
  text-align:center;
}

.day-preview__card,
.reminder-chip,
.reminder-card{
  padding:14px;
  border-radius:18px;
  border:1px solid rgba(244,114,182,.18);
  background:rgba(255,255,255,.9);
  box-shadow:0 12px 24px rgba(190,24,93,.07);
}

.day-preview__label,
.reminder-chip__meta,
.reminder-card__meta{
  color:#9f1239;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.day-preview__value,
.reminder-chip__title,
.reminder-card__title{
  margin-top:6px;
  color:#831843;
  font-size:15px;
  font-weight:800;
  letter-spacing:-.02em;
}

.day-preview__note,
.reminder-chip__desc,
.reminder-card__desc{
  margin-top:6px;
  color:#6b2146;
  font-size:13px;
  line-height:1.5;
}

.switch-row{
  border-color:rgba(244,114,182,.18);
  background:rgba(255,255,255,.78);
}

.switch-row input{
  accent-color:#e11d48;
}

.bottom-sheet .actions{
  padding-top:2px;
}

@media (max-width:560px){
  [data-reminder-form] .form-grid--2{
    grid-template-columns:1fr;
  }
}

@media (min-width:460px){
  .sheet-choice-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .sheet-choice{
    grid-template-columns:1fr;
    text-align:center;
    justify-items:center;
    min-height:152px;
  }

  .sheet-choice::after{
    display:none;
  }
}

@media (max-width:420px){
  .sheet-head{
    grid-template-columns:minmax(0,96px) minmax(0,1fr) minmax(0,96px);
    gap:8px;
  }

  .sheet-head__action{
    padding:8px;
    font-size:11px;
  }

  .sheet-head__icon{
    width:34px;
    height:34px;
    flex-basis:34px;
    border-radius:13px;
    font-size:18px;
  }

  .bottom-sheet{
    padding:10px 0 0;
  }

  .bottom-sheet__panel{
    width:100%;
    max-height:calc(100dvh - 10px);
    padding:16px 14px max(22px, calc(env(safe-area-inset-bottom) + 22px));
    border-radius:24px 24px 0 0;
  }

  .bottom-sheet__body{
    padding-right:0;
  }

  .sheet-choice{
    padding:14px;
    border-radius:19px;
  }

  .sheet-choice__icon{
    width:42px;
    height:42px;
    border-radius:14px;
    font-size:20px;
  }

  .sheet-choice__title{
    font-size:14px;
  }
}

.bottom-sheet__panel--wizard{
  scrollbar-width:thin;
}

@supports not (height: 100dvh){
  .bottom-sheet__panel{
    max-height:calc(100vh - 10px);
  }
}

.bottom-nav{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:12px;
  width:calc(100% - 16px);
  max-width:548px;
  padding:8px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  border-radius:22px;
  background:rgba(255,255,255,.96);
  border:1px solid var(--line);
  box-shadow:0 18px 40px rgba(15,23,42,.12);
  backdrop-filter:blur(16px);
}

.bottom-nav__form{
  display:block;
}

.bottom-nav__link{
  display:grid;
  place-items:center;
  min-height:48px;
  border-radius:16px;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  padding:8px 6px;
}

.bottom-nav__link.is-active{
  color:var(--primary-2);
  background:var(--primary-soft);
}

.bottom-nav__button{
  width:100%;
  border:0;
  background:#f1f5f9;
}

.auth-wrap{
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:20px;
}

.auth-card{
  width:100%;
  max-width:460px;
  background:rgba(255,255,255,.96);
  border-radius:28px;
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
  padding:22px;
}

.auth-hero{
  margin-bottom:18px;
}

.auth-hero h1{
  margin:0 0 8px;
  font-size:30px;
  letter-spacing:-.03em;
}

.auth-hero p{
  margin:0;
  color:var(--muted);
}

.romantic-modal{
  position:fixed;
  inset:0;
  z-index:120;
  display:none;
}

.romantic-modal.is-open{
  display:block;
}

.romantic-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(28,18,22,.48);
  backdrop-filter:blur(7px);
}

.romantic-modal__dialog{
  position:relative;
  z-index:2;
  width:min(92vw,460px);
  margin:8vh auto 0;
  border-radius:30px;
  overflow:hidden;
  box-shadow:0 30px 90px rgba(15,23,42,.28);
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.92), transparent 36%),
    linear-gradient(180deg,#fff9fb 0%,#fff1f6 56%,#fff7f3 100%);
  border:1px solid rgba(244,114,182,.24);
}

.romantic-modal__glow{
  position:absolute;
  inset:-50px -20px auto;
  height:180px;
  background:
    radial-gradient(circle at 18% 28%, rgba(251,113,133,.25), transparent 40%),
    radial-gradient(circle at 78% 22%, rgba(244,114,182,.22), transparent 38%),
    radial-gradient(circle at 50% 95%, rgba(251,191,36,.14), transparent 44%);
  pointer-events:none;
}

.romantic-modal__fall{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
}

.romantic-modal__petal{
  position:absolute;
  top:-28px;
  color:#f472b6;
  animation-name:romanticFall;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
  filter:drop-shadow(0 4px 10px rgba(244,114,182,.18));
  user-select:none;
}

.romantic-modal__content{
  position:relative;
  padding:28px 22px 22px;
}

.romantic-modal__icon-wrap{
  display:flex;
  justify-content:center;
  margin-bottom:12px;
}

.romantic-modal__heart{
  display:grid;
  place-items:center;
  width:74px;
  height:74px;
  border-radius:999px;
  background:linear-gradient(180deg,#fff 0%,#ffe8f1 100%);
  color:#e11d48;
  font-size:34px;
  box-shadow:
    0 10px 28px rgba(225,29,72,.18),
    inset 0 1px 0 rgba(255,255,255,.9);
  animation:heartPulse 2.4s ease-in-out infinite;
}

.romantic-modal__eyebrow{
  color:#be185d;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:10px;
  text-align:center;
}

.romantic-modal__title{
  margin:0 0 12px;
  font-size:26px;
  line-height:1.05;
  letter-spacing:-.03em;
  color:#831843;
  text-align:center;
}

.romantic-modal__text{
  margin:0;
  color:#6b2146;
  font-size:16px;
  line-height:1.72;
  text-align:center;
}

.romantic-modal__actions{
  margin-top:20px;
  display:flex;
  justify-content:center;
}

.romantic-modal__actions--duo{
  gap:10px;
}

.romantic-modal__button{
  min-width:130px;
}

.romantic-modal__button--soft{
  background:#fff3f8;
}

.romantic-modal__title--animate{
  animation:romanticTextFade .28s ease;
}

.romantic-modal__text--animate{
  animation:romanticTextFade .28s ease;
}

.meeting-card{
  background:linear-gradient(180deg,#fff9fb 0%,#fff3f8 100%);
  border-color:rgba(244,114,182,.22);
}

.meeting-card__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.meeting-card__label{
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#be185d;
}

.meeting-card__date{
  margin-top:6px;
  font-size:22px;
  font-weight:800;
  letter-spacing:-.03em;
  color:#831843;
}

.meeting-card__note{
  margin-top:6px;
  color:#6b2146;
  font-size:13px;
}

.meeting-card__count{
  min-width:84px;
  min-height:84px;
  display:grid;
  place-items:center;
  border-radius:22px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(244,114,182,.20);
  box-shadow:0 14px 30px rgba(190,24,93,.08);
  text-align:center;
}

.meeting-card__count span{
  font-size:24px;
  font-weight:800;
  line-height:1;
  color:#be185d;
}

.meeting-card__count small{
  color:#6b2146;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.calendar-month-stage{
  overflow:hidden;
  position:relative;
}

[data-calendar-grid]{
  will-change:transform,opacity,filter;
}

.calendar-grid--leave-to-left{
  animation:calendarGridLeaveToLeft .22s cubic-bezier(.22,.61,.36,1) forwards;
}

.calendar-grid--leave-to-right{
  animation:calendarGridLeaveToRight .22s cubic-bezier(.22,.61,.36,1) forwards;
}

.calendar-grid--enter-from-right{
  animation:calendarGridEnterFromRight .30s cubic-bezier(.22,.61,.36,1) forwards;
}

.calendar-grid--enter-from-left{
  animation:calendarGridEnterFromLeft .30s cubic-bezier(.22,.61,.36,1) forwards;
}

@keyframes heartPulse{
  0%,100%{
    transform:scale(1);
    box-shadow:
      0 10px 28px rgba(225,29,72,.18),
      inset 0 1px 0 rgba(255,255,255,.9);
  }
  50%{
    transform:scale(1.08);
    box-shadow:
      0 16px 34px rgba(225,29,72,.26),
      0 0 0 12px rgba(244,114,182,.08),
      inset 0 1px 0 rgba(255,255,255,.95);
  }
}

@keyframes romanticFall{
  0%{
    transform:translate3d(0,-20px,0) rotate(0deg);
  }
  100%{
    transform:translate3d(var(--drift,0px),118vh,0) rotate(220deg);
  }
}

@keyframes romanticTextFade{
  from{
    opacity:.15;
    transform:translateY(4px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes calendarGridLeaveToLeft{
  from{
    opacity:1;
    transform:translateX(0) scale(1);
    filter:blur(0);
  }
  to{
    opacity:.08;
    transform:translateX(-56px) scale(.985);
    filter:blur(2px);
  }
}

@keyframes calendarGridLeaveToRight{
  from{
    opacity:1;
    transform:translateX(0) scale(1);
    filter:blur(0);
  }
  to{
    opacity:.08;
    transform:translateX(56px) scale(.985);
    filter:blur(2px);
  }
}

@keyframes calendarGridEnterFromRight{
  from{
    opacity:.08;
    transform:translateX(72px) scale(.985);
    filter:blur(2px);
  }
  to{
    opacity:1;
    transform:translateX(0) scale(1);
    filter:blur(0);
  }
}

@keyframes calendarGridEnterFromLeft{
  from{
    opacity:.08;
    transform:translateX(-72px) scale(.985);
    filter:blur(2px);
  }
  to{
    opacity:1;
    transform:translateX(0) scale(1);
    filter:blur(0);
  }
}

@media (min-width:420px){
  .form-grid--2{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (min-width:480px){
  .month-targets{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:420px){
  .calendar-grid--month{
    gap:6px;
  }

  .day-cell{
    min-height:82px;
    padding:7px;
    border-radius:16px;
    gap:5px;
  }

  .day-cell__num{
    font-size:13px;
  }

  .day-cell__icon{
    font-size:9px;
  }

  .day-cell__marker{
    width:5px;
    height:5px;
  }

  .day-cell__alert{
    width:18px;
    height:18px;
    font-size:12px;
    margin-top:1px;
  }

  .day-cell__swatch{
    height:10px;
  }


  .plan-calendar-card{
    padding:12px 10px;
    border-radius:24px;
  }

  .plan-calendar-card__title{
    font-size:20px;
  }

  .legend--compact{
    gap:7px;
    margin-bottom:10px;
  }

  .legend__item{
    padding:6px 8px;
    gap:6px;
    font-size:11px;
  }

  .month-switch{
    width:38px;
    height:38px;
    border-radius:13px;
  }

  .plan-stat-grid{
    gap:10px;
  }

  .plan-stat-grid .stat-card{
    padding:12px;
  }

  .plan-stat-grid .stat-card__value{
    font-size:19px;
  }


  .meeting-card__row{
    align-items:flex-start;
  }

  .meeting-card__count{
    min-width:72px;
    min-height:72px;
  }

  .meeting-card__date{
    font-size:20px;
  }

  .romantic-modal__dialog{
    width:min(94vw,460px);
    margin:7vh auto 0;
  }

  .romantic-modal__content{
    padding:24px 18px 20px;
  }

  .romantic-modal__title{
    font-size:23px;
  }

  .romantic-modal__text{
    font-size:15px;
    line-height:1.64;
  }

  .bottom-nav{
    width:calc(100% - 14px);
    gap:6px;
    padding:7px;
  }

  .bottom-nav__link{
    min-height:46px;
    font-size:11px;
    padding:8px 4px;
  }
}

.card--action{
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.card--action:active{
  transform:translateY(1px) scale(.995);
}

.card--action:focus-visible{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 4px var(--primary-soft), 0 16px 38px rgba(94,49,91,.10);
}

.panel-head--action{
  align-items:center;
}

.card-action__chevron{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:var(--primary-soft);
  color:var(--primary-2);
  font-size:18px;
  font-weight:900;
  flex:0 0 auto;
}

.dash-modal[hidden]{display:none !important;}
.dash-modal{
  position:fixed;
  inset:0;
  z-index:140;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:clamp(12px, 4vh, 40px) 12px 20px;
}

.dash-modal__backdrop{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.46);
  backdrop-filter:blur(8px);
}

.dash-modal__dialog{
  position:relative;
  z-index:2;
  width:min(92vw,520px);
  margin:0;
  max-height:calc(100dvh - 32px);
  display:flex;
  flex-direction:column;
  min-height:0;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:28px;
  box-shadow:var(--shadow-lg);
  overflow:hidden;
}

.dash-modal__dialog--marker-year{
  width:min(94vw,1040px);
  max-height:86vh;
  display:flex;
  flex-direction:column;
}

.dash-modal__dialog--marker-year .dash-modal__content{
  overflow:auto;
  min-height:0;
}

.dash-modal__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:18px 18px 14px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);
}

.dash-modal__eyebrow{
  color:var(--primary-2);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:4px;
}

.dash-modal__title{
  margin:0;
  font-size:22px;
  line-height:1.08;
}

.dash-modal__close{
  width:40px;
  height:40px;
  border:0;
  border-radius:14px;
  background:#f1f5f9;
  color:var(--text);
  font-size:24px;
  line-height:1;
}

.dash-modal__content{
  padding:18px;
  display:grid;
  gap:16px;
  overflow:auto;
  min-height:0;
  -webkit-overflow-scrolling:touch;
}

.dash-modal__stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.dash-modal__stat{
  padding:14px;
  border-radius:18px;
  border:1px solid var(--line);
  background:var(--surface-2);
  display:grid;
  gap:6px;
}

.dash-modal__stat span{
  font-size:12px;
  color:var(--muted);
  font-weight:700;
}

.dash-modal__stat strong{
  font-size:24px;
  line-height:1.05;
  letter-spacing:-.03em;
}

.dash-modal__note{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}

body.dashboard-modal-open{
  overflow:hidden;
}

@media (max-width:420px){
  .dash-modal{
    padding:10px 8px 12px;
  }

  .dash-modal__dialog{
    width:min(96vw,520px);
    max-height:calc(100dvh - 20px);
    border-radius:24px;
  }

  .dash-modal__stats{
    grid-template-columns:1fr;
  }
}


.appearance-actions{
  display:grid;
  gap:12px;
}

.appearance-action{
  width:100%;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:15px;
  text-align:left;
  box-shadow:0 14px 32px rgba(122,68,111,.08);
}

.appearance-action:focus-visible,
.appearance-action:hover{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--primary-soft) 82%, white 18%), 0 18px 36px rgba(122,68,111,.12);
}

.appearance-action__icon{
  width:44px;
  height:44px;
  border-radius:16px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  font-size:18px;
  font-weight:800;
  color:var(--primary-2);
  background:var(--primary-soft);
  border:1px solid color-mix(in srgb, var(--line) 78%, white 22%);
}

.appearance-action__icon--font{
  font-size:17px;
}

.appearance-action__body{
  min-width:0;
  display:grid;
  gap:5px;
}

.appearance-action__title{
  font-size:14px;
  font-weight:800;
  color:var(--text);
}

.appearance-action__desc{
  font-size:12px;
  color:var(--muted);
  line-height:1.5;
}

.appearance-action__side{
  display:grid;
  justify-items:end;
  gap:8px;
  align-items:center;
}

.appearance-action__value{
  font-size:12px;
  font-weight:800;
  color:var(--primary-2);
  text-align:right;
}

.appearance-action__chevron{
  width:30px;
  height:30px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:var(--primary-soft);
  color:var(--primary-2);
  font-size:22px;
  line-height:1;
}

.appearance-action__swatches{
  display:flex;
  gap:6px;
  align-items:center;
}

.appearance-action__swatch{
  width:14px;
  height:14px;
  border-radius:999px;
  display:block;
  border:1px solid rgba(255,255,255,.85);
  box-shadow:0 4px 10px rgba(122,68,111,.16);
}

.appearance-action__swatch--berry{background:#8c50bf;}
.appearance-action__swatch--lavender{background:#8e79ea;}
.appearance-action__swatch--blush{background:#e45b96;}
.appearance-action__swatch--peony{background:#f08aa4;}
.appearance-action__swatch--rosegold{background:#d88da3;}

.appearance-action__sample{
  font-size:18px;
  color:var(--text);
  letter-spacing:var(--display-spacing);
  font-family:var(--font-display);
}

.dash-modal__content--appearance{
  gap:14px;
}

.theme-list,
.font-list{
  display:grid;
  gap:12px;
}

.theme-card,
.font-card{
  width:100%;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);
  padding:15px;
  text-align:left;
  display:grid;
  gap:12px;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.theme-card:hover,
.font-card:hover{
  transform:translateY(-1px);
}

.theme-card.is-active,
.font-card.is-active{
  border-color:var(--primary);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--primary-soft) 86%, white 14%), 0 20px 40px rgba(122,68,111,.12);
}

.theme-card__row,
.font-card__row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.theme-card__title,
.font-card__title{
  font-size:14px;
  font-weight:800;
  color:var(--text);
}

.theme-card__desc,
.font-card__desc{
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}

.theme-card__swatches{
  display:flex;
  gap:8px;
}

.theme-card__swatch{
  width:34px;
  height:34px;
  border-radius:14px;
  display:block;
  box-shadow:0 10px 20px rgba(122,68,111,.12);
}

.theme-card__badge,
.font-card__badge{
  padding:6px 9px;
  border-radius:999px;
  background:var(--primary-soft);
  color:var(--primary-2);
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}

.font-card__sample{
  font-size:22px;
  color:var(--text);
  letter-spacing:var(--display-spacing);
  line-height:1.1;
}

.font-card[data-font-option="modern"] .font-card__sample{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:840;
  letter-spacing:-.05em;
}

.font-card[data-font-option="soft"] .font-card__sample{
  font-family:ui-rounded,"Trebuchet MS","Segoe UI",Verdana,system-ui,sans-serif;
  font-weight:760;
  letter-spacing:-.02em;
}

.font-card[data-font-option="elegant"] .font-card__sample{
  font-family:Georgia,"Iowan Old Style",Cambria,serif;
  font-weight:700;
  letter-spacing:-.015em;
}

.font-card[data-font-option="romantic"] .font-card__sample{
  font-family:"Lucida Handwriting","Brush Script MT",cursive;
  font-weight:600;
  letter-spacing:0;
}

.font-card[data-font-option="classic"] .font-card__sample{
  font-family:"Palatino Linotype","Book Antiqua",Palatino,serif;
  font-weight:700;
  letter-spacing:-.01em;
}

@media (max-width:520px){
  .appearance-action{
    grid-template-columns:auto minmax(0,1fr);
  }

  .appearance-action__side{
    grid-column:2;
    justify-items:start;
    grid-auto-flow:column;
    justify-content:space-between;
  }

  .theme-card__row,
  .font-card__row{
    flex-direction:column;
    align-items:flex-start;
  }
}



.legend__dot--holiday{
  background:linear-gradient(135deg,#d51f49 0%,#ff6f8e 100%);
  box-shadow:0 0 0 2px rgba(213,31,73,.12);
}

.legend__dot--soft-off{
  background:#8f7cf1;
}

.day-cell__tags{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  align-items:flex-start;
}

.day-cell__tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:18px;
  padding:0 8px;
  border-radius:999px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.01em;
  box-shadow:0 4px 10px rgba(15,23,42,.06);
}

.day-cell__tag--soft-off{
  background:#efe9ff;
  color:#6656c6;
  border:1px solid rgba(102,86,198,.18);
}

.day-cell__tag--holiday{
  background:#fff1f4;
  color:#a91231;
  border:1px solid rgba(213,31,73,.20);
}

.day-cell--has-holiday{
  border-color:rgba(196,33,61,.58);
  background:linear-gradient(135deg,var(--day-status-soft) 0%,var(--day-status-soft) 62%,var(--day-holiday-soft) 62%,#ffe1e8 100%);
  box-shadow:
    inset 0 0 0 1px rgba(196,33,61,.16),
    0 12px 24px rgba(196,33,61,.10);
}

.day-cell--has-holiday::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(135deg, transparent 0%, transparent 60%, rgba(213,31,73,.14) 60%, rgba(255,111,142,.22) 100%),
    radial-gradient(circle at top right, rgba(255,255,255,.68) 0%, rgba(255,255,255,0) 42%);
  pointer-events:none;
}

.day-cell--has-holiday::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  z-index:0;
  box-shadow:inset 0 0 0 2px rgba(196,33,61,.13);
  pointer-events:none;
}

.day-cell--has-holiday .day-cell__num{
  color:var(--text);
}

.day-cell--has-holiday:not(.day-cell--holiday-work) .day-cell__num{
  color:#8f102a;
}

.day-cell--has-holiday .day-cell__swatch{
  background:linear-gradient(90deg,var(--day-holiday) 0%,var(--day-holiday) 26%,var(--day-status-color) 26%,var(--day-status-color) 100%);
  box-shadow:0 0 0 1px rgba(255,255,255,.34) inset;
}

.day-cell--holiday-work{
  border-color:color-mix(in srgb, var(--day-status-color) 48%, var(--day-holiday) 52%);
}

.day-cell--holiday-work .day-cell__tag--holiday{
  background:linear-gradient(135deg,#fff3f6 0%,#ffe5eb 100%);
  color:#92112c;
  border-color:rgba(213,31,73,.24);
}

.marker-accent--holiday{
  background:linear-gradient(135deg,#ffd4dd 0%,#ffeef3 100%);
  color:#cc4e72;
}

.marker-accent--soft-off{
  background:linear-gradient(135deg,#e7ddff 0%,#f4efff 100%);
  color:#6656c6;
}

.dash-modal__content--marker{
  gap:16px;
}

.marker-form{
  display:grid;
  gap:14px;
}

.marker-form__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.marker-form__month{
  font-size:15px;
  font-weight:800;
  color:var(--text);
}

.marker-form__count{
  margin-top:4px;
  font-size:12px;
  color:var(--muted);
}

.marker-form__badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:0 12px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}

.marker-form__badge--holiday{
  background:#ffe4ea;
  color:#cc4e72;
}

.marker-form__badge--soft_off{
  background:#efe9ff;
  color:#6656c6;
}

.marker-form__actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.marker-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:8px;
}

.marker-grid__item{
  display:block;
  cursor:pointer;
}

.marker-grid__input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.marker-grid__card{
  min-height:72px;
  border-radius:18px;
  border:1px solid var(--line);
  background:var(--surface);
  padding:10px 6px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-align:center;
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
  box-shadow:0 8px 18px rgba(15,23,42,.04);
}

.marker-grid__weekday{
  font-size:10px;
  font-weight:800;
  color:var(--muted);
  text-transform:uppercase;
}

.marker-grid__day{
  font-size:18px;
  font-weight:900;
  color:var(--text);
  line-height:1;
}

.marker-grid__item:hover .marker-grid__card{
  transform:translateY(-1px);
}

.marker-grid__input:focus-visible + .marker-grid__card{
  outline:2px solid color-mix(in srgb, var(--primary) 50%, white 50%);
  outline-offset:2px;
}

.marker-grid__input:checked + .marker-grid__card--holiday{
  background:#ffe8ee;
  border-color:#ff9caf;
  box-shadow:0 12px 26px rgba(204,78,114,.16);
}

.marker-grid__input:checked + .marker-grid__card--holiday .marker-grid__weekday,
.marker-grid__input:checked + .marker-grid__card--holiday .marker-grid__day{
  color:#b83f63;
}

.marker-grid__input:checked + .marker-grid__card--soft_off{
  background:#f1ecff;
  border-color:#afa2ff;
  box-shadow:0 12px 26px rgba(102,86,198,.16);
}

.marker-grid__input:checked + .marker-grid__card--soft_off .marker-grid__weekday,
.marker-grid__input:checked + .marker-grid__card--soft_off .marker-grid__day{
  color:#5e51b8;
}

.marker-form__footer{
  display:flex;
  justify-content:flex-end;
}

.marker-form__footer--sticky{
  position:sticky;
  bottom:-18px;
  z-index:8;
  margin:4px -18px -18px;
  padding:12px 18px calc(12px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,250,254,.72) 0%, rgba(255,250,254,.96) 28%, var(--surface) 100%);
  backdrop-filter:blur(10px);
}

.marker-year-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.marker-year-month{
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);
  padding:14px;
  display:grid;
  gap:12px;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}

.marker-year-month__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.marker-year-month__title{
  font-size:14px;
  font-weight:800;
  color:var(--text);
}

.marker-year-month__meta{
  font-size:11px;
  font-weight:800;
  color:var(--muted);
}

.marker-year-month__tools{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  justify-content:flex-end;
}

.marker-year-month__tool{
  appearance:none;
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--muted);
  border-radius:999px;
  padding:6px 10px;
  font-size:11px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
}

.marker-year-month__tool:hover,
.marker-year-month__tool:focus-visible{
  border-color:color-mix(in srgb, var(--primary) 38%, white 62%);
  color:var(--text);
  outline:none;
}

.marker-grid--year{
  gap:6px;
}

.marker-grid--year .marker-grid__card{
  min-height:58px;
  padding:8px 4px;
  border-radius:16px;
}

@media (max-width:860px){
  .marker-year-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:520px){
  .marker-year-month__head{
    flex-direction:column;
    align-items:flex-start;
  }

  .marker-year-month__tools{
    width:100%;
    justify-content:flex-start;
  }

  .day-cell__tag{
    min-height:16px;
    padding:0 6px;
    font-size:9px;
  }

  .marker-form__top{
    flex-direction:column;
    align-items:flex-start;
  }

  .marker-year-grid{
    grid-template-columns:1fr;
  }

  .marker-grid{
    grid-template-columns:repeat(6,minmax(0,1fr));
  }

  .marker-grid__card{
    min-height:66px;
    border-radius:16px;
    padding:8px 4px;
  }

  .marker-grid__day{
    font-size:16px;
  }

  .marker-form__footer{
    justify-content:stretch;
  }

  .marker-form__footer .btn{
    width:100%;
  }

  .marker-form__footer--sticky{
    bottom:-18px;
    margin:6px -18px -18px;
    padding:12px 18px calc(14px + env(safe-area-inset-bottom));
  }
}


.dash-modal__dialog--wide{
  width:min(1180px, calc(100vw - 24px));
  max-width:min(1180px, calc(100vw - 24px));
  max-height:calc(100dvh - 32px);
}

.dash-modal__content--marker-year{
  gap:16px;
}

.marker-form--year{
  gap:18px;
}

.marker-year-month__actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.btn--tiny{
  min-height:34px;
  padding:0 12px;
  border-radius:12px;
  font-size:11px;
}

@media (max-width:520px){
  .dash-modal__dialog--wide{
    width:calc(100vw - 8px);
    max-width:calc(100vw - 8px);
    max-height:calc(100dvh - 16px);
  }

  .marker-year-month__head{
    flex-direction:column;
    align-items:flex-start;
  }

  .marker-year-month__actions{
    width:100%;
  }

  .marker-year-month__actions .btn{
    flex:1 1 0;
  }
}


/* Rules modal menu: mobile first */
.rules-hero-card{
  padding-bottom:14px;
}

.rules-hero-card .panel-head{
  align-items:flex-start;
}

.rules-modal-menu{
  display:grid;
  gap:10px;
  margin:0 0 14px;
}

.rules-modal-link{
  --rules-accent:var(--primary);
  --rules-ink:var(--primary-2);
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 34px;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:64px;
  padding:10px 11px;
  border:1px solid color-mix(in srgb, var(--rules-accent) 26%, white 74%);
  border-radius:20px;
  background:
    radial-gradient(circle at 8% 50%, rgba(255,232,242,.78) 0%, rgba(255,232,242,0) 38%),
    linear-gradient(135deg, rgba(255,255,255,.98) 0%, rgba(255,250,253,.96) 100%);
  color:var(--text);
  font:inherit;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
  box-shadow:
    0 8px 20px rgba(142,18,63,.045),
    inset 0 1px 0 rgba(255,255,255,.94);
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.rules-modal-link::before{
  content:'';
  position:absolute;
  inset:1px;
  border-radius:19px;
  background:linear-gradient(90deg, rgba(255,255,255,.58), rgba(255,255,255,0) 48%);
  pointer-events:none;
}

.rules-modal-link__icon,
.rules-modal-link__body,
.rules-modal-link__arrow{
  position:relative;
  z-index:1;
}

.rules-modal-link__icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:linear-gradient(180deg, rgba(255,242,248,.98), rgba(255,226,238,.96));
  border:1px solid color-mix(in srgb, var(--rules-accent) 18%, white 82%);
  color:var(--rules-ink);
  font-size:18px;
  font-weight:900;
  line-height:1;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}

.rules-modal-link__body{
  min-width:0;
  display:grid;
  gap:3px;
}

.rules-modal-link__title{
  display:block;
  color:#8b123e;
  font-family:var(--font-display);
  font-size:clamp(18px, 5vw, 22px);
  font-weight:var(--display-weight);
  letter-spacing:var(--display-spacing);
  line-height:1.05;
  overflow-wrap:anywhere;
}

.rules-modal-link__meta{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.rules-modal-link__arrow{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  justify-self:end;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(255,240,247,.96), rgba(252,222,235,.96));
  border:1px solid color-mix(in srgb, var(--rules-accent) 17%, white 83%);
  color:#dc3d81;
  font-size:22px;
  font-weight:300;
  line-height:1;
  transition:transform .18s ease, border-color .18s ease;
}

.rules-modal-link:hover{
  transform:translateY(-1px);
  border-color:color-mix(in srgb, var(--rules-accent) 42%, white 58%);
  box-shadow:0 12px 26px rgba(142,18,63,.075);
}

.rules-modal-link:hover .rules-modal-link__arrow{
  transform:translateX(2px);
}

.rules-modal-link:focus-visible{
  outline:none;
  border-color:var(--rules-accent);
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--primary-soft) 78%, white 22%),
    0 14px 28px rgba(142,18,63,.08);
}

.rules-modal-link--appearance{--rules-accent:#e45b96;--rules-ink:#8b123e;}
.rules-modal-link--holiday{--rules-accent:#ef6f9b;--rules-ink:#941640;}
.rules-modal-link--meeting{--rules-accent:#de7699;--rules-ink:#8b123e;}
.rules-modal-link--password{--rules-accent:#c86ab0;--rules-ink:#7a1f64;}
.rules-modal-link--push{--rules-accent:#d88da3;--rules-ink:#8b3f54;}
.rules-modal-link--planner{--rules-accent:#e45b96;--rules-ink:#8b123e;}
.rules-modal-link--work1{--rules-accent:#e45b96;--rules-ink:#8b123e;}
.rules-modal-link--work2{--rules-accent:#ef6f9b;--rules-ink:#941640;}
.rules-modal-link--blocks{--rules-accent:#ee8bad;--rules-ink:#8f1744;}
.rules-modal-link--clear{--rules-accent:#c86ab0;--rules-ink:#7a1f64;}
.rules-modal-link--users{--rules-accent:#d88da3;--rules-ink:#8b3f54;}
.rules-modal-link--sms{--rules-accent:#e45b96;--rules-ink:#8b123e;}


.rules-modal-link--featured{
  min-height:72px;
  border-color:color-mix(in srgb, var(--rules-accent) 38%, white 62%);
  background:
    radial-gradient(circle at 9% 48%, rgba(255,225,239,.92) 0%, rgba(255,225,239,0) 42%),
    linear-gradient(135deg, rgba(255,255,255,.99) 0%, rgba(255,247,251,.98) 100%);
  box-shadow:0 12px 26px rgba(142,18,63,.07), inset 0 1px 0 rgba(255,255,255,.96);
}

.dash-modal__dialog--planner{
  width:min(1040px, calc(100vw - 18px));
  max-height:calc(100dvh - 18px);
}

.dash-modal__content--planner{
  gap:12px;
  padding:14px;
  scroll-behavior:smooth;
}

.rules-configurator-intro{
  padding:13px 14px;
  border:1px solid color-mix(in srgb, var(--primary) 16%, white 84%);
  border-radius:20px;
  background:linear-gradient(135deg, rgba(255,244,249,.98), rgba(255,255,255,.96));
}

.rules-configurator-intro div{
  display:grid;
  gap:4px;
}

.rules-configurator-intro strong{
  color:#8b123e;
  font-family:var(--font-display);
  font-size:20px;
  line-height:1.05;
  letter-spacing:var(--display-spacing);
}

.rules-configurator-intro span{
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}

.rules-configurator-nav{
  position:sticky;
  top:-14px;
  z-index:4;
  display:flex;
  gap:7px;
  overflow-x:auto;
  margin:0 -14px;
  padding:10px 14px;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.90));
  border-bottom:1px solid rgba(232,173,199,.42);
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}

.rules-configurator-nav::-webkit-scrollbar{display:none;}

.rules-configurator-nav a{
  flex:0 0 auto;
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 12px;
  border:1px solid rgba(232,173,199,.74);
  border-radius:999px;
  background:rgba(255,244,249,.92);
  color:#8b123e;
  font-size:12px;
  font-weight:900;
  text-decoration:none;
  white-space:nowrap;
}

.rules-configurator-step{
  scroll-margin-top:74px;
  display:grid;
  gap:13px;
  padding:14px;
  border:1px solid rgba(232,173,199,.55);
  border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.99), rgba(255,250,253,.96));
  box-shadow:0 8px 22px rgba(142,18,63,.045);
}

.rules-configurator-step__head{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:10px;
  align-items:start;
}

.rules-configurator-step__number{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:linear-gradient(180deg, rgba(255,239,247,.98), rgba(252,222,235,.98));
  border:1px solid rgba(232,173,199,.82);
  color:#8b123e;
  font-weight:950;
}

.rules-configurator-step h4{
  margin:0;
  color:#8b123e;
  font-family:var(--font-display);
  font-size:21px;
  line-height:1.05;
  letter-spacing:var(--display-spacing);
}

.rules-configurator-step p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}

.rules-configurator-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}

.rules-configurator-summary-card{
  min-width:0;
  padding:11px;
  border-radius:16px;
  border:1px solid rgba(232,173,199,.52);
  background:rgba(255,255,255,.82);
}

.rules-configurator-summary-card span{
  display:block;
  margin-bottom:3px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.rules-configurator-summary-card strong{
  display:block;
  color:var(--text);
  font-size:14px;
  line-height:1.2;
  overflow-wrap:anywhere;
}

.month-targets--configurator{
  gap:10px;
}

.note-box--soft{
  background:rgba(255,244,249,.82);
  border-color:rgba(232,173,199,.55);
}

.actions--stacked{
  display:grid;
  gap:10px;
}

.actions--stacked form,
.actions--stacked .btn{
  width:100%;
}

.month-targets--modal{
  grid-template-columns:1fr;
}

@media (max-width:380px){
  .rules-modal-link{
    grid-template-columns:38px minmax(0,1fr) 32px;
    gap:8px;
    min-height:60px;
    padding:9px 10px;
    border-radius:18px;
  }

  .rules-modal-link::before{
    border-radius:17px;
  }

  .rules-modal-link__icon{
    width:38px;
    height:38px;
    border-radius:14px;
    font-size:16px;
  }

  .rules-modal-link__title{
    font-size:18px;
  }

  .rules-modal-link__meta{
    font-size:11px;
  }

  .rules-modal-link__arrow{
    width:32px;
    height:32px;
    font-size:20px;
  }
}

@media (min-width:640px){
  .rules-modal-menu{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }

  .rules-modal-link{
    min-height:74px;
    padding:12px;
  }

  .rules-modal-link--featured{
    grid-column:1 / -1;
  }

  .rules-modal-link__title{
    font-size:24px;
  }

  .rules-configurator-summary-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  .rules-configurator-step{
    padding:18px;
  }

  .month-targets--modal{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

/* Rules configurator scope: keep Reguły inside the main work configuration */
.rules-page-kicker{
  display:grid;
  gap:4px;
  margin:0 0 10px;
  padding:0 2px;
}

.rules-page-kicker .section-title{
  margin:0;
}

.rules-page-kicker .section-subtitle{
  margin:4px 0 0;
  max-width:720px;
}

.rules-configurator-scope-form{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid rgba(232,173,199,.56);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,250,253,.96), rgba(255,255,255,.9));
}

.rules-configurator-scope-form .btn{
  width:100%;
  min-height:44px;
}

.rules-configurator-step--scope{
  border-color:rgba(228,91,150,.42);
  background:
    radial-gradient(circle at 12% 8%, rgba(255,225,239,.55) 0%, rgba(255,225,239,0) 38%),
    linear-gradient(180deg, rgba(255,255,255,.99), rgba(255,249,252,.97));
}

@media (min-width:720px){
  .rules-configurator-scope-form{
    grid-template-columns:130px minmax(0,1fr) minmax(0,1fr) auto;
    align-items:end;
  }

  .rules-configurator-scope-form .btn{
    width:auto;
    min-width:132px;
  }
}

/* Rules scope correction: visible navigation, clear active-month logic */
.rules-configurator-nav{
  position:relative;
  top:auto;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  overflow:visible;
  margin:0;
  padding:0 0 4px;
  background:transparent;
  border-bottom:0;
}

.rules-configurator-nav a{
  flex:initial;
  min-width:0;
  width:100%;
  min-height:34px;
  padding:0 10px;
  white-space:normal;
  line-height:1.15;
  text-align:center;
}

.rules-configurator-scope-form .form-row label{
  line-height:1.25;
}

.rules-configurator-step--scope .note-box,
.rules-configurator-step .note-box{
  line-height:1.45;
}

@media (min-width:720px){
  .rules-configurator-nav{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }

  .rules-configurator-scope-form{
    grid-template-columns:130px minmax(0,1fr) minmax(0,1fr) auto;
  }
}

@media (max-width:420px){
  .dash-modal__dialog--planner{
    width:calc(100vw - 8px);
    max-height:calc(100dvh - 12px);
    border-radius:22px;
  }

  .dash-modal__content--planner{
    padding:12px;
    gap:10px;
  }

  .rules-configurator-intro{
    padding:11px 12px;
    border-radius:18px;
  }

  .rules-configurator-step{
    padding:12px;
    border-radius:20px;
  }

  .rules-configurator-step__head{
    grid-template-columns:30px minmax(0,1fr);
    gap:9px;
  }

  .rules-configurator-step__number{
    width:30px;
    height:30px;
    border-radius:11px;
  }

  .rules-configurator-step h4{
    font-size:19px;
  }

  .rules-configurator-summary-grid{
    grid-template-columns:1fr;
  }
}

/* Mobile modal overflow fix: dialogs must never exceed the viewport width */
html,
body{
  max-width:100%;
  overflow-x:hidden;
}

.dash-modal{
  box-sizing:border-box;
  width:100%;
  max-width:100vw;
  overflow-x:hidden;
  padding-left:12px;
  padding-right:12px;
}

.dash-modal__dialog,
.dash-modal__dialog--planner,
.dash-modal__dialog--wide,
.dash-modal__dialog--marker-year{
  width:100%;
  min-width:0;
  max-width:520px;
}

.dash-modal__dialog--planner,
.dash-modal__dialog--wide,
.dash-modal__dialog--marker-year{
  max-width:1040px;
}

.dash-modal__header,
.dash-modal__content,
.dash-modal__content--planner,
.dash-modal form,
.dash-modal .form-grid,
.dash-modal .form-row,
.dash-modal .note-box,
.dash-modal .rules-configurator-intro,
.dash-modal .rules-configurator-nav,
.dash-modal .rules-configurator-step,
.dash-modal .rules-configurator-scope-form,
.dash-modal .rules-configurator-summary-grid,
.dash-modal .rules-configurator-summary-card,
.dash-modal .month-targets,
.dash-modal .month-target-card,
.dash-modal .block-list,
.dash-modal .block-item{
  min-width:0;
  max-width:100%;
}

.dash-modal__content,
.dash-modal__content--planner{
  overflow-x:hidden;
}

.dash-modal .input,
.dash-modal .select,
.dash-modal .textarea,
.dash-modal button,
.dash-modal .btn{
  max-width:100%;
}

.dash-modal .rules-configurator-step,
.dash-modal .rules-configurator-summary-card,
.dash-modal .month-target-card,
.dash-modal .block-item,
.dash-modal .note-box{
  overflow-wrap:anywhere;
}

@media (max-width:640px){
  .dash-modal{
    padding:8px 6px 10px;
  }

  .dash-modal__dialog,
  .dash-modal__dialog--planner,
  .dash-modal__dialog--wide,
  .dash-modal__dialog--marker-year{
    width:100%;
    max-width:100%;
    max-height:calc(100dvh - 16px);
    border-radius:20px;
  }

  .dash-modal__header{
    padding:14px 14px 12px;
  }

  .dash-modal__content,
  .dash-modal__content--planner{
    padding:12px;
  }

  .dash-modal .form-grid--2,
  .dash-modal .month-targets,
  .dash-modal .month-targets--modal,
  .dash-modal .rules-configurator-summary-grid{
    grid-template-columns:1fr;
  }

  .dash-modal .rules-configurator-scope-form{
    padding:10px;
  }

  .dash-modal .rules-configurator-step{
    padding:10px;
    border-radius:18px;
  }

  .dash-modal .rules-configurator-nav{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .dash-modal .month-target-card__head,
  .dash-modal .block-item{
    display:grid;
    grid-template-columns:1fr;
    align-items:stretch;
  }

  .dash-modal .block-item form,
  .dash-modal .block-item .btn{
    width:100%;
  }
}

/* Mobile modal field + bottom navigation stability fix */
.bottom-nav{
  z-index:120;
  background:var(--surface);
  border-color:rgba(232,173,199,.72);
  isolation:isolate;
}

body.dashboard-modal-open .bottom-nav{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

#rules-meeting-modal .dash-modal__dialog,
#rules-meeting-modal .dash-modal__content,
#rules-meeting-modal form,
#rules-meeting-modal .form-grid,
#rules-meeting-modal .form-row{
  width:100%;
  min-width:0;
  max-width:100%;
  overflow-x:hidden;
}

.dash-modal input[type="date"].input,
.dash-modal input[type="text"].input,
.dash-modal input[type="number"].input,
.dash-modal select.select{
  inline-size:100%;
  min-inline-size:0;
  max-inline-size:100%;
  box-sizing:border-box;
}

.dash-modal input[type="date"].input{
  appearance:none;
  -webkit-appearance:none;
  min-width:0;
  font-variant-numeric:tabular-nums;
}

.dash-modal input[type="date"].input::-webkit-date-and-time-value{
  min-width:0;
  text-align:left;
}

.dash-modal input[type="date"].input::-webkit-calendar-picker-indicator{
  margin-left:0;
  flex:0 0 auto;
}

@media (max-width:640px){
  .bottom-nav{
    width:calc(100% - 16px);
    max-width:548px;
    background:var(--surface);
    box-shadow:0 18px 42px rgba(142,18,63,.16);
  }

  #rules-meeting-modal .dash-modal__content{
    padding:12px;
  }

  #rules-meeting-modal .input,
  #rules-meeting-modal .select,
  #rules-meeting-modal .textarea{
    min-width:0;
    max-width:100%;
    padding-left:12px;
    padding-right:12px;
    font-size:16px;
  }

  #rules-meeting-modal .btn{
    width:100%;
  }
}

/* Reminder realtime polish: no horizontal drift and clear day marker */
.calendar-month-stage,
.calendar-grid--month,
.day-cell,
.bottom-sheet,
.bottom-sheet__panel,
.bottom-sheet__body,
.sheet-step,
.day-preview,
.sheet-inline-list{
  min-width:0;
  max-width:100%;
}

.calendar-month-stage,
.bottom-sheet,
.bottom-sheet__panel,
.bottom-sheet__body{
  overflow-x:hidden;
}

.calendar-grid--month{
  width:100%;
  max-width:100%;
  contain:layout paint;
}

.day-cell--has-reminders .day-cell__alert{
  border-color:rgba(225,29,72,.28);
  color:#be185d;
  background:linear-gradient(180deg,#fff 0%,#ffe7ef 100%);
}

.day-preview__card--wide{
  width:100%;
}

.day-preview__reminders{
  display:grid;
  gap:9px;
  margin-top:10px;
  min-width:0;
}

.day-preview__reminder{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:10px;
  border-radius:15px;
  background:rgba(255,247,250,.78);
  border:1px solid rgba(244,114,182,.16);
  min-width:0;
}

.day-preview__reminder.is-done{
  opacity:.72;
}

.day-preview__reminder-time{
  min-width:46px;
  padding:5px 7px;
  border-radius:999px;
  text-align:center;
  font-size:12px;
  font-weight:900;
  color:#9f1239;
  background:#fff;
  border:1px solid rgba(244,114,182,.18);
}

.day-preview__reminder-body{
  display:grid;
  gap:3px;
  min-width:0;
}

.day-preview__reminder-body strong,
.day-preview__reminder-body span,
.day-preview__reminder-body p{
  min-width:0;
  overflow-wrap:anywhere;
}

.day-preview__reminder-body strong{
  color:#831843;
  font-size:14px;
  line-height:1.25;
}

.day-preview__reminder-body span,
.day-preview__reminder-body p{
  color:#6b2146;
  font-size:12px;
  line-height:1.4;
}

.day-preview__reminder-body p{
  margin:3px 0 0;
}

@media (max-width:420px){
  .bottom-sheet{
    touch-action:pan-y;
  }

  .bottom-sheet__panel{
    width:100%;
    max-width:100vw;
  }

  .day-preview__reminder{
    grid-template-columns:1fr;
    gap:7px;
  }

  .day-preview__reminder-time{
    justify-self:start;
  }
}

/* Plan/calendar hard lock: prevents horizontal drifting after async save */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

html.sheet-open,
body.sheet-open{
  overflow:hidden;
  overscroll-behavior:none;
}

body.sheet-open{
  max-width:100vw;
}

.app-shell,
.main,
[data-calendar-shell],
[data-calendar-panel],
.plan-calendar-card,
.calendar-month-stage,
.calendar-grid,
.calendar-grid--month{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:hidden;
}

.calendar-month-stage{
  contain:layout paint;
  touch-action:pan-y;
}

.calendar-grid--month{
  transform:none;
  transform-origin:center center;
}

.calendar-grid--month.calendar-grid--leave-to-left,
.calendar-grid--month.calendar-grid--leave-to-right,
.calendar-grid--month.calendar-grid--enter-from-right,
.calendar-grid--month.calendar-grid--enter-from-left{
  overflow:hidden;
}

.bottom-sheet{
  width:100vw;
  max-width:100vw;
  overflow:hidden;
  touch-action:pan-y;
}

.bottom-sheet.is-open{
  display:flex;
}

.bottom-sheet__panel{
  width:min(560px, 100%);
  max-width:calc(100vw - 24px);
  min-width:0;
  overflow:hidden;
  touch-action:pan-y;
}

.bottom-sheet__body{
  max-width:100%;
  min-width:0;
  overflow-x:hidden;
  overflow-y:auto;
  touch-action:pan-y;
}

.sheet-step,
.sheet-choice-grid,
.form-grid,
.form-row,
.actions,
.day-preview,
.sheet-inline-list,
.reminder-card,
.day-preview__card{
  max-width:100%;
  min-width:0;
  overflow-x:hidden;
}

.day-cell,
.day-cell *{
  min-width:0;
}

@media (max-width:560px){
  .app-shell{
    max-width:100vw;
  }

  .main{
    padding-left:12px;
    padding-right:12px;
  }

  .bottom-sheet{
    padding-left:0;
    padding-right:0;
  }

  .bottom-sheet__panel{
    width:100%;
    max-width:100vw;
    border-left:0;
    border-right:0;
  }

  .calendar-grid{
    gap:6px;
  }

  .day-cell{
    padding-left:6px;
    padding-right:6px;
  }
}


/* Plan viewport fix v3: prevents iOS input zoom and post-save viewport widening */
html,
body{
  min-width:0;
  max-width:100%;
  overflow-x:clip;
}

@supports not (overflow-x:clip){
  html,
  body{
    overflow-x:hidden;
  }
}

.app-shell,
.main,
[data-calendar-shell],
[data-calendar-panel],
.plan-calendar-card,
.calendar-month-stage,
.calendar-grid,
.calendar-grid--month,
.bottom-sheet,
.bottom-sheet__panel,
.bottom-sheet__body{
  inline-size:100%;
  min-inline-size:0;
  max-inline-size:100%;
}

.app-shell{
  inline-size:100%;
  max-inline-size:560px;
  overflow-x:clip;
}

@supports not (overflow-x:clip){
  .app-shell{
    overflow-x:hidden;
  }
}

.main{
  overflow-x:clip;
}

@supports not (overflow-x:clip){
  .main{
    overflow-x:hidden;
  }
}

.bottom-sheet{
  inline-size:100%;
  max-inline-size:100%;
  left:0;
  right:0;
  overflow-x:clip;
  touch-action:pan-y;
}

.bottom-sheet__panel{
  inline-size:min(560px, 100%);
  max-inline-size:100%;
  transform:translate3d(0,28px,0);
  contain:layout paint;
}

.bottom-sheet.is-open .bottom-sheet__panel{
  transform:translate3d(0,0,0);
}

.bottom-sheet input,
.bottom-sheet select,
.bottom-sheet textarea,
.bottom-sheet button,
.dash-modal input,
.dash-modal select,
.dash-modal textarea,
.dash-modal button{
  font-size:16px;
  touch-action:manipulation;
}

.bottom-sheet .input,
.bottom-sheet .select,
.bottom-sheet .textarea,
.bottom-sheet input[type="time"].input,
.bottom-sheet input[type="text"].input,
.bottom-sheet input[type="number"].input,
.bottom-sheet textarea.textarea,
.bottom-sheet select.select{
  font-size:16px;
  line-height:1.35;
  min-inline-size:0;
  max-inline-size:100%;
  inline-size:100%;
}

.bottom-sheet input[type="time"].input{
  min-block-size:48px;
}

.bottom-sheet .sheet-head,
.bottom-sheet .sheet-head__center,
.bottom-sheet .sheet-head__action,
.bottom-sheet .sheet-step,
.bottom-sheet .form-grid,
.bottom-sheet .form-row,
.bottom-sheet .actions,
.bottom-sheet .sheet-inline-list,
.bottom-sheet .reminder-card,
.bottom-sheet .day-preview,
.bottom-sheet .day-preview__card{
  min-inline-size:0;
  max-inline-size:100%;
}

.bottom-sheet .actions{
  overflow-x:clip;
}

.bottom-sheet .btn{
  white-space:normal;
}

.calendar-month-stage{
  overflow-x:clip;
}

@supports not (overflow-x:clip){
  .bottom-sheet,
  .bottom-sheet .actions,
  .calendar-month-stage{
    overflow-x:hidden;
  }
}

.calendar-grid--month{
  transform:none !important;
  max-inline-size:100%;
}

@media (max-width:560px){
  .app-shell{
    max-inline-size:100%;
  }

  .main{
    inline-size:100%;
    padding-inline:12px;
  }

  .bottom-sheet{
    padding-inline:0;
  }

  .bottom-sheet__panel{
    inline-size:100%;
    max-inline-size:100%;
    border-radius:22px 22px 0 0;
  }

  .bottom-sheet .actions .btn{
    flex:1 1 100%;
  }
}


/* Plan day preview highlight + sheet layering v5 */
body.sheet-open{
  touch-action:none;
}

.bottom-sheet{
  z-index:160;
  padding:8px 0 0;
  width:100vw;
  max-width:100vw;
}

.bottom-sheet__panel{
  min-height:62dvh;
  max-height:calc(100dvh - 8px);
  width:min(560px,100%);
  max-width:100%;
  box-sizing:border-box;
  padding-bottom:max(26px, calc(env(safe-area-inset-bottom) + 26px));
}

.sheet-head{
  grid-template-columns:minmax(0,112px) minmax(0,1fr) minmax(0,136px);
}

.sheet-head__action{
  width:100%;
  min-height:50px;
  justify-content:center;
  gap:10px;
  padding:6px 14px 6px 6px;
  border-radius:999px;
  border:1px solid rgba(244,114,182,.18);
  background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,241,245,.96) 100%);
  box-shadow:0 12px 24px rgba(190,24,93,.08);
}

.sheet-head__action--close{
  justify-content:center;
}

.sheet-head__action > span:last-child{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

body.sheet-open .bottom-nav{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateX(-50%) translateY(16px);
}

.day-preview__card--featured{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:14px;
  align-items:start;
  overflow:hidden;
  padding:16px;
  border-color:rgba(225,29,72,.34);
  background:
    radial-gradient(circle at 14% 10%,rgba(255,255,255,.92) 0,rgba(255,255,255,0) 34%),
    linear-gradient(135deg,rgba(255,241,245,.98) 0%,rgba(255,255,255,.94) 52%,rgba(255,228,238,.96) 100%);
  box-shadow:0 18px 38px rgba(190,24,93,.14);
}

.day-preview__card--featured::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,#be185d 0%,#f472b6 100%);
}

.day-preview__featured-mark,
.day-preview__reminder-alert{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:16px;
  color:#fff;
  background:linear-gradient(180deg,#be185d 0%,#e11d48 100%);
  box-shadow:0 12px 24px rgba(190,24,93,.24);
  font-size:20px;
  font-weight:900;
  line-height:1;
}

.day-preview__featured-body{
  min-width:0;
  display:grid;
  gap:8px;
}

.day-preview__featured-title{
  color:#831843;
  font-size:22px;
  font-weight:900;
  letter-spacing:-.04em;
  line-height:1.08;
}

.day-preview__badges{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  min-width:0;
}

.day-preview__badge{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:4px 9px;
  border-radius:999px;
  color:#9f1239;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(244,114,182,.24);
  font-size:11px;
  font-weight:900;
  letter-spacing:-.01em;
  box-shadow:0 8px 16px rgba(190,24,93,.07);
}

.day-preview__featured-note{
  padding:11px 12px;
  border-radius:15px;
  color:#6b2146;
  background:rgba(255,255,255,.70);
  border:1px solid rgba(244,114,182,.16);
  font-size:13px;
  line-height:1.45;
  overflow-wrap:anywhere;
}

.day-preview__featured-note-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:start;
  min-width:0;
}

.day-preview__entry-delete--note{
  margin-top:2px;
  white-space:nowrap;
}

@media (max-width:420px){
  .day-preview__featured-note-row{
    grid-template-columns:1fr;
  }

  .day-preview__entry-delete--note{
    justify-self:start;
  }
}

.day-preview__muted,
.day-preview__stat-line{
  color:#7f5d73;
  font-size:12px;
  line-height:1.4;
}

.day-preview__card--stats{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.day-preview__section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:2px;
}

.day-preview__section-title{
  margin-top:3px;
  color:#831843;
  font-size:15px;
  font-weight:900;
  letter-spacing:-.03em;
  line-height:1.2;
}

.day-preview__section-count{
  display:grid;
  place-items:center;
  min-width:34px;
  height:34px;
  padding:0 10px;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(180deg,#be185d 0%,#e11d48 100%);
  font-size:14px;
  font-weight:900;
  box-shadow:0 12px 24px rgba(190,24,93,.18);
}

.day-preview__reminder{
  position:relative;
  grid-template-columns:auto auto minmax(0,1fr);
  align-items:start;
  padding:12px;
  border-color:rgba(225,29,72,.24);
  background:linear-gradient(135deg,rgba(255,247,250,.98) 0%,rgba(255,255,255,.94) 100%);
  box-shadow:0 12px 24px rgba(190,24,93,.09);
}

.day-preview__reminder.is-high{
  border-color:rgba(190,24,93,.42);
  box-shadow:0 16px 30px rgba(190,24,93,.15);
}

.day-preview__reminder.is-done{
  opacity:.68;
  filter:saturate(.72);
}

.day-preview__reminder.is-done .day-preview__reminder-alert{
  background:linear-gradient(180deg,#94a3b8 0%,#64748b 100%);
  box-shadow:none;
}

.day-preview__reminder-time{
  color:#831843;
  border-color:rgba(225,29,72,.22);
  background:#fff;
  box-shadow:0 8px 16px rgba(190,24,93,.07);
}

@media (max-width:420px){
  .bottom-sheet__panel{
    min-height:66dvh;
    max-height:calc(100dvh - 8px);
    max-width:100vw;
    padding:16px 14px max(24px, calc(env(safe-area-inset-bottom) + 24px));
  }

  .sheet-head{
    grid-template-columns:minmax(0,84px) minmax(0,1fr) minmax(0,132px);
    gap:8px;
  }

  .sheet-head__action{
    min-height:48px;
    padding:6px 12px 6px 6px;
    font-size:11px;
  }

  .day-preview__card--stats,
  .day-preview__section-head{
    align-items:stretch;
    flex-direction:column;
  }

  .day-preview__card--featured{
    grid-template-columns:1fr;
    gap:10px;
  }

  .day-preview__featured-mark,
  .day-preview__reminder-alert{
    width:34px;
    height:34px;
    border-radius:14px;
    font-size:18px;
  }

  .day-preview__featured-title{
    font-size:20px;
  }

  .day-preview__reminder{
    grid-template-columns:auto minmax(0,1fr);
  }

  .day-preview__reminder-time{
    grid-column:2;
    justify-self:start;
  }

  .day-preview__reminder-body{
    grid-column:1 / -1;
  }
}


/* Plan preview v6: overdue reminder prompt and cleaner preview */
.day-preview__overdue{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  padding:16px;
  border-radius:22px;
  border:1px solid rgba(190,24,93,.34);
  background:linear-gradient(135deg,rgba(255,241,245,.98) 0%,rgba(255,255,255,.96) 100%);
  box-shadow:0 18px 36px rgba(190,24,93,.16);
  overflow:hidden;
}

.day-preview__overdue::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,#be185d 0%,#f97316 100%);
}

.day-preview__overdue-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:16px;
  color:#fff;
  background:linear-gradient(180deg,#be185d 0%,#f97316 100%);
  box-shadow:0 14px 28px rgba(190,24,93,.24);
  font-size:22px;
  font-weight:900;
  line-height:1;
}

.day-preview__overdue-body{
  min-width:0;
  display:grid;
  gap:7px;
}

.day-preview__overdue-title{
  color:#831843;
  font-size:18px;
  font-weight:900;
  letter-spacing:-.035em;
  line-height:1.15;
  overflow-wrap:anywhere;
}

.day-preview__overdue-meta,
.day-preview__overdue-body p{
  margin:0;
  color:#7f5d73;
  font-size:12px;
  line-height:1.45;
}

.day-preview__overdue-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:4px;
}

.day-preview__overdue-actions .btn{
  min-height:40px;
  padding:9px 12px;
  border-radius:14px;
  font-size:12px;
}

.day-preview__reminder.is-overdue{
  border-color:rgba(249,115,22,.42);
  background:linear-gradient(135deg,rgba(255,247,237,.98) 0%,rgba(255,255,255,.95) 100%);
  box-shadow:0 16px 30px rgba(249,115,22,.12);
}

.day-preview__reminder.is-overdue .day-preview__reminder-alert{
  background:linear-gradient(180deg,#f97316 0%,#be185d 100%);
  box-shadow:0 12px 24px rgba(249,115,22,.18);
}

@media (max-width:420px){
  .day-preview__overdue{
    grid-template-columns:1fr;
    padding:15px;
  }

  .day-preview__overdue-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .day-preview__overdue-actions .btn{
    width:100%;
  }
}


/* Dashboard v7: nearest reminder on Start */
.start-reminder-card{
  position:relative;
  overflow:hidden;
  border-color:rgba(244,114,182,.30);
  background:
    radial-gradient(circle at 8% 18%, rgba(244,114,182,.20) 0, rgba(244,114,182,0) 34%),
    linear-gradient(135deg, rgba(255,255,255,.98) 0%, rgba(255,241,245,.96) 100%);
  box-shadow:0 18px 44px rgba(190,24,93,.10);
}

.start-reminder-card::after{
  content:'';
  position:absolute;
  inset:auto -28px -48px auto;
  width:150px;
  height:150px;
  border-radius:999px;
  background:rgba(244,114,182,.14);
  pointer-events:none;
}

.start-reminder-card--high{
  border-color:rgba(225,29,72,.44);
  box-shadow:0 20px 48px rgba(190,24,93,.16);
}

.start-reminder-card__link{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  color:inherit;
}

.start-reminder-card__icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:linear-gradient(180deg,#fff 0%,#ffe7ef 100%);
  border:1px solid rgba(244,114,182,.28);
  box-shadow:0 12px 24px rgba(190,24,93,.10);
  color:#be185d;
  font-size:24px;
  font-weight:900;
  line-height:1;
}

.start-reminder-card__content{
  min-width:0;
  display:grid;
  gap:5px;
}

.start-reminder-card__eyebrow{
  color:#be185d;
  font-size:11px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.start-reminder-card__title{
  margin:0;
  color:#831843;
  font-family:var(--font-display);
  font-size:20px;
  font-weight:900;
  line-height:1.12;
  letter-spacing:-.03em;
  overflow-wrap:anywhere;
}

.start-reminder-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}

.start-reminder-card__meta span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(244,114,182,.18);
  color:#9f1239;
  font-size:12px;
  font-weight:800;
}

.start-reminder-card__description{
  margin:2px 0 0;
  color:#6b2146;
  font-size:13px;
  line-height:1.45;
  overflow-wrap:anywhere;
}

.start-reminder-card__time{
  min-width:76px;
  display:grid;
  justify-items:center;
  gap:2px;
  padding:10px 12px;
  border-radius:20px;
  background:#fff;
  border:1px solid rgba(244,114,182,.22);
  box-shadow:0 14px 28px rgba(190,24,93,.08);
}

.start-reminder-card__time strong{
  color:#be185d;
  font-size:22px;
  font-weight:900;
  line-height:1;
  letter-spacing:-.03em;
}

.start-reminder-card__time small{
  color:#9f1239;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

@media (max-width:560px){
  .start-reminder-card__link{
    grid-template-columns:auto minmax(0,1fr);
    align-items:start;
  }

  .start-reminder-card__time{
    grid-column:1 / -1;
    width:100%;
    min-width:0;
    grid-template-columns:auto auto;
    justify-content:center;
    gap:8px;
    padding:9px 12px;
  }

  .start-reminder-card__time strong{
    font-size:18px;
  }
}

.form-hint{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}

.reminder-scheduler{
  display:grid;
  gap:12px;
  padding:13px;
  border:1px solid rgba(244,114,182,.22);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,241,246,.82));
  box-shadow:0 14px 28px rgba(190,24,93,.07);
}

.reminder-scheduler__head{
  display:grid;
  gap:4px;
}

.reminder-scheduler__head strong,
.reminder-scheduler__label{
  color:#881337;
  font-size:13px;
  font-weight:850;
  letter-spacing:-.01em;
}

.reminder-scheduler__head span{
  color:#9f5a70;
  font-size:12px;
  line-height:1.4;
}

.reminder-scheduler__block{
  display:grid;
  gap:8px;
}

.choice-pills{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.choice-pill{
  cursor:pointer;
  user-select:none;
}

.choice-pill input{
  position:absolute;
  inline-size:1px;
  block-size:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}

.choice-pill span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(244,114,182,.24);
  background:rgba(255,255,255,.84);
  color:#9f1239;
  font-size:12px;
  font-weight:800;
  transition:border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.choice-pill input:checked + span{
  border-color:rgba(225,29,72,.5);
  background:linear-gradient(135deg,#fff1f2,#ffe4ef);
  box-shadow:0 10px 18px rgba(225,29,72,.12);
  color:#881337;
}

.choice-pill input:focus-visible + span{
  outline:3px solid rgba(244,114,182,.28);
  outline-offset:2px;
}

.switch-row--small{
  padding:9px 11px;
  border-radius:15px;
  justify-content:flex-start;
  color:#7f1d3d;
  font-size:12px;
  font-weight:750;
  line-height:1.35;
}

.reminder-card__desc--schedule{
  color:#9f1239;
  font-size:12px;
  font-weight:750;
}

@media (max-width:420px){
  .choice-pills--compact{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .choice-pill span{
    width:100%;
  }
}

.topbar__account{
  position:relative;
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  border:1px solid rgba(229,117,150,.24);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,239,244,.92));
  color:#d44572;
  text-decoration:none;
  box-shadow:0 10px 24px rgba(15,23,42,.08), inset 0 1px 0 rgba(255,255,255,.92);
  overflow:hidden;
}

.topbar__account-bg{
  position:absolute;
  inset:4px;
  border-radius:13px;
  background:radial-gradient(circle at 50% 20%, rgba(255,255,255,.98), rgba(255,255,255,.34) 48%, transparent 58%), linear-gradient(180deg,rgba(255,233,239,.98),rgba(255,244,247,.72));
  opacity:.98;
}

.topbar__heart{
  position:relative;
  z-index:1;
  width:20px;
  height:20px;
}

.topbar__heart path{
  fill:rgba(228,91,150,.16);
  stroke:#d44572;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.topbar__account:focus-visible{
  outline:3px solid rgba(228,91,150,.28);
  outline-offset:3px;
}

.users-list .block-item,
.user-account-card{
  display:grid;
  align-items:stretch;
  justify-content:stretch;
  gap:12px;
}

.user-account-card__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:0;
}

.user-account-card__section{
  padding-top:12px;
  border-top:1px solid var(--line);
}

.account-badge{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  margin-left:8px;
  padding:3px 9px;
  border-radius:999px;
  background:rgba(228,91,150,.10);
  color:var(--accent-strong);
  font-size:11px;
  font-weight:900;
  vertical-align:middle;
}

@media (max-width:420px){
  .topbar__inner{
    padding:12px 14px 11px;
  }

  .brand__mark{
    width:38px;
    height:38px;
    flex-basis:38px;
  }

  .brand__title{
    font-size:20px;
  }

  .topbar__account{
    width:38px;
    height:38px;
    flex-basis:38px;
    border-radius:15px;
  }

  .account-badge{
    display:flex;
    width:max-content;
    margin:6px 0 0;
  }
}

/* Calendar meeting entries: inline delete button */
.day-cell--has-meetings .day-cell__alert{
  border-color:rgba(225,29,72,.28);
  color:#be185d;
  background:linear-gradient(180deg,#fff 0%,#ffe7ef 100%);
}

.day-preview__entries{
  display:grid;
  gap:9px;
  margin-top:10px;
  min-width:0;
}

.day-preview__meeting{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:10px;
  align-items:start;
  padding:12px;
  border-radius:15px;
  border:1px solid rgba(225,29,72,.22);
  background:linear-gradient(135deg,rgba(255,247,250,.98) 0%,rgba(255,255,255,.94) 100%);
  box-shadow:0 12px 24px rgba(190,24,93,.08);
  min-width:0;
}

.day-preview__meeting-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#fff;
  background:linear-gradient(180deg,#be185d 0%,#e11d48 100%);
  font-size:15px;
  font-weight:900;
  box-shadow:0 12px 24px rgba(190,24,93,.16);
}

.day-preview__meeting-body{
  display:grid;
  gap:3px;
  min-width:0;
}

.day-preview__meeting-body strong,
.day-preview__meeting-body span,
.day-preview__meeting-body p{
  min-width:0;
  overflow-wrap:anywhere;
}

.day-preview__meeting-body strong{
  color:#831843;
  font-size:14px;
  line-height:1.25;
}

.day-preview__meeting-body span,
.day-preview__meeting-body p{
  color:#6b2146;
  font-size:12px;
  line-height:1.4;
}

.day-preview__meeting-body p{
  margin:3px 0 0;
}

.day-preview__entry-delete{
  align-self:start;
  min-height:28px;
  padding:5px 10px;
  border:1px solid rgba(225,29,72,.22);
  border-radius:999px;
  color:#be185d;
  background:#fff;
  font:800 11px/1.1 inherit;
  cursor:pointer;
  box-shadow:0 8px 16px rgba(190,24,93,.06);
}

.day-preview__entry-delete:hover,
.day-preview__entry-delete:focus-visible{
  border-color:rgba(225,29,72,.42);
  background:#fff1f5;
  outline:none;
}

.day-preview__reminder .day-preview__entry-delete{
  grid-column:4;
}

@media (max-width:420px){
  .day-preview__meeting{
    grid-template-columns:auto minmax(0,1fr);
  }

  .day-preview__meeting .day-preview__entry-delete,
  .day-preview__reminder .day-preview__entry-delete{
    grid-column:1 / -1;
    justify-self:start;
  }
}

.day-preview__reminder{
  grid-template-columns:auto auto minmax(0,1fr) auto;
}

@media (max-width:420px){
  .day-preview__reminder{
    grid-template-columns:auto minmax(0,1fr);
  }
}

/* Quarter SMS preview in rules */
.dash-modal__dialog--sms{
  width:min(760px, calc(100vw - 18px));
  max-height:calc(100dvh - 18px);
}

.dash-modal__content--sms{
  gap:12px;
}

.quarter-sms-filter{
  display:grid;
  grid-template-columns:minmax(120px,.8fr) minmax(150px,1fr) auto;
  align-items:end;
  gap:10px;
  padding:12px;
  border:1px solid rgba(232,173,199,.58);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,250,253,.98), rgba(255,255,255,.94));
}

.quarter-sms-filter__field{
  min-width:0;
}

.quarter-sms-filter__field label{
  display:block;
  margin:0 0 6px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.quarter-sms-filter .btn{
  min-height:43px;
  white-space:nowrap;
}

.quarter-sms-toolbar,
.quarter-sms-inline{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}

.quarter-sms-stat,
.quarter-sms-inline > div{
  min-width:0;
  padding:11px;
  border:1px solid rgba(232,173,199,.55);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(255,250,253,.98), rgba(255,255,255,.92));
}

.quarter-sms-stat span,
.quarter-sms-inline span,
.quarter-sms-label{
  display:block;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.quarter-sms-stat strong,
.quarter-sms-inline strong{
  display:block;
  margin-top:3px;
  color:var(--text);
  font-size:14px;
  line-height:1.2;
  overflow-wrap:anywhere;
}

.quarter-sms-textarea{
  min-height:220px;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-size:14px;
  line-height:1.55;
  white-space:pre-wrap;
  background:linear-gradient(180deg, #fff, rgba(255,250,253,.96));
}

.quarter-sms-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.quarter-sms-copy-status{
  min-height:20px;
  color:#8b123e;
  font-size:12px;
  font-weight:900;
}

.rules-configurator-step--sms{
  border-color:rgba(228,91,150,.44);
  background:
    radial-gradient(circle at 88% 8%, rgba(255,225,239,.55) 0%, rgba(255,225,239,0) 38%),
    linear-gradient(180deg, rgba(255,255,255,.99), rgba(255,249,252,.97));
}

@media (max-width:640px){
  .dash-modal__dialog--sms{
    width:100%;
    max-width:100%;
    max-height:calc(100dvh - 16px);
    border-radius:20px;
  }

  .quarter-sms-filter,
  .quarter-sms-toolbar,
  .quarter-sms-inline{
    grid-template-columns:1fr;
  }

  .quarter-sms-filter .btn{
    width:100%;
  }

  .quarter-sms-textarea{
    min-height:240px;
  }

  .quarter-sms-actions .btn{
    flex:1 1 100%;
  }
}


/* Calendar readability patch: status labels + combined holiday/work state */
.legend__dot--holiday-work{
  background:linear-gradient(135deg, var(--job1) 0 52%, #d51f49 52% 100%);
  box-shadow:0 0 0 2px rgba(213,31,73,.14);
}

.day-cell{
  min-height:96px;
  border-width:2px;
  box-shadow:0 10px 22px rgba(15,23,42,.055);
}

.day-cell__num{
  font-size:16px;
  font-weight:950;
  letter-spacing:-.03em;
}

.day-cell__status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  min-height:20px;
  padding:0 8px;
  border-radius:999px;
  color:#fff;
  background:var(--day-status-color);
  font-size:10px;
  line-height:1;
  font-weight:950;
  letter-spacing:.01em;
  box-shadow:0 7px 14px color-mix(in srgb, var(--day-status-color) 24%, transparent 76%);
}

.day-cell__swatch{
  height:14px;
  border:1px solid rgba(255,255,255,.64);
  box-shadow:0 7px 14px color-mix(in srgb, var(--day-status-color) 18%, transparent 82%);
}

.day-cell--job1{
  background:linear-gradient(180deg, color-mix(in srgb, var(--job1-soft) 72%, #fff 28%) 0%, color-mix(in srgb, var(--job1-soft) 92%, #fff 8%) 100%);
  border-color:color-mix(in srgb, var(--job1) 56%, #fff 44%);
}

.day-cell--job2{
  background:linear-gradient(180deg, color-mix(in srgb, var(--job2-soft) 72%, #fff 28%) 0%, color-mix(in srgb, var(--job2-soft) 92%, #fff 8%) 100%);
  border-color:color-mix(in srgb, var(--job2) 56%, #fff 44%);
}

.day-cell--off{
  background:linear-gradient(180deg, #f8fafc 0%, var(--off-soft) 100%);
  border-color:#d7e0ea;
}

.day-cell--leave{
  background:linear-gradient(180deg, color-mix(in srgb, var(--leave-soft) 72%, #fff 28%) 0%, color-mix(in srgb, var(--leave-soft) 94%, #fff 6%) 100%);
  border-color:color-mix(in srgb, var(--leave) 62%, #fff 38%);
}

.day-cell--blocked{
  background:linear-gradient(180deg, color-mix(in srgb, var(--blocked-soft) 75%, #fff 25%) 0%, color-mix(in srgb, var(--blocked-soft) 94%, #fff 6%) 100%);
  border-color:color-mix(in srgb, var(--blocked) 44%, #fff 56%);
}

.day-cell--has-soft-off{
  box-shadow:inset 0 -3px 0 #8f7cf1, 0 10px 22px rgba(15,23,42,.055);
}

.day-cell--has-holiday{
  border-color:color-mix(in srgb, var(--day-holiday) 68%, var(--day-status-color) 32%);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--day-status-soft) 82%, #fff 18%) 0%, color-mix(in srgb, var(--day-status-soft) 96%, #fff 4%) 100%);
  box-shadow:
    inset 0 0 0 1px rgba(213,31,73,.18),
    0 12px 26px rgba(213,31,73,.12);
}

.day-cell--has-holiday::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  z-index:0;
  width:7px;
  background:linear-gradient(180deg, #b91c1c 0%, #fb7185 100%);
  border-radius:20px 0 0 20px;
  pointer-events:none;
}

.day-cell--has-holiday::after{
  content:"";
  position:absolute;
  inset:0 0 auto auto;
  z-index:0;
  width:42px;
  height:42px;
  background:linear-gradient(135deg, transparent 0 49%, rgba(213,31,73,.95) 50% 100%);
  border-radius:0 20px 0 0;
  pointer-events:none;
  box-shadow:none;
}

.day-cell--has-holiday .day-cell__num{
  color:#7f1d1d;
}

.day-cell--has-holiday .day-cell__tag--holiday{
  color:#fff;
  background:linear-gradient(135deg, #b91c1c 0%, #f43f5e 100%);
  border-color:rgba(255,255,255,.45);
  box-shadow:0 7px 14px rgba(190,18,60,.18);
}

.day-cell--has-holiday .day-cell__swatch{
  background:linear-gradient(90deg, var(--day-holiday) 0 32%, var(--day-status-color) 32% 100%);
}

.day-cell--holiday-work{
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--day-status-soft) 88%, #fff 12%) 0 58%, #fff1f4 58% 100%);
  border-color:color-mix(in srgb, var(--day-status-color) 48%, var(--day-holiday) 52%);
  box-shadow:
    inset 0 0 0 2px color-mix(in srgb, var(--day-status-color) 22%, transparent 78%),
    inset 7px 0 0 var(--day-holiday),
    0 14px 28px rgba(213,31,73,.13);
}

.day-cell--holiday-work .day-cell__status{
  background:var(--day-status-color);
  box-shadow:0 7px 14px color-mix(in srgb, var(--day-status-color) 28%, transparent 72%);
}

.day-cell--holiday-work .day-cell__tag--holiday{
  background:linear-gradient(135deg, #b91c1c 0%, #fb7185 100%);
  color:#fff;
  border-color:rgba(255,255,255,.55);
}

.day-cell--holiday-work .day-cell__swatch{
  background:linear-gradient(90deg, var(--day-status-color) 0 58%, var(--day-holiday) 58% 100%);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.42) inset,
    0 8px 16px rgba(15,23,42,.08);
}

.day-cell__tags{
  gap:5px;
}

.day-cell__tag{
  min-height:20px;
  padding:0 7px;
  font-size:9.5px;
  font-weight:950;
}

@media (max-width:680px){
  .calendar-grid{
    gap:6px;
  }

  .day-cell{
    min-height:86px;
    border-radius:17px;
    padding:7px 6px;
  }

  .day-cell--has-holiday::before{
    width:6px;
    border-radius:17px 0 0 17px;
  }

  .day-cell--has-holiday::after{
    width:34px;
    height:34px;
    border-radius:0 17px 0 0;
  }

  .day-cell__num{
    font-size:15px;
  }

  .day-cell__status{
    min-height:18px;
    padding:0 6px;
    font-size:8.5px;
  }

  .day-cell__tag{
    min-height:18px;
    padding:0 6px;
    font-size:8px;
  }

  .day-cell__swatch{
    height:12px;
  }
}

@media (max-width:420px){
  .day-cell{
    min-height:78px;
    border-radius:15px;
    padding:6px 5px;
  }

  .day-cell__status{
    padding:0 5px;
    max-width:100%;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
  }

  .day-cell__tag{
    max-width:100%;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
}

/* Premium calendar status cleanup v5: czytelne, bez krzykliwych etykiet */
.plan-calendar-card{
  overflow:hidden;
}

.legend--compact{
  gap:7px;
  margin:12px 0 18px;
}

.legend__item{
  min-height:30px;
  padding:6px 9px;
  border-color:rgba(180,169,215,.48);
  background:rgba(255,255,255,.78);
  box-shadow:0 8px 20px rgba(52,39,91,.045);
}

.calendar-grid{
  gap:8px;
}

.calendar-weekday{
  color:#6c6680;
  font-size:11px;
  letter-spacing:.08em;
}

.day-cell{
  --day-status-color:var(--off);
  --day-status-soft:var(--off-soft);
  --day-holiday:#dc345e;
  min-height:92px;
  border-radius:22px;
  border:1.5px solid rgba(214,207,231,.9);
  padding:9px 7px 8px;
  background:linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(250,248,255,.9) 100%);
  box-shadow:0 12px 26px rgba(63,49,96,.055);
  gap:5px;
}

.day-cell:hover,
.day-cell:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(126,109,180,.42);
  box-shadow:0 16px 32px rgba(63,49,96,.085), 0 0 0 3px rgba(236,226,255,.8);
}

.day-cell__top{
  align-items:flex-start;
}

.day-cell__num{
  font-size:18px;
  line-height:.95;
  color:#108ce8;
  font-weight:950;
  letter-spacing:-.055em;
  text-shadow:none;
}

.day-cell__status{
  align-self:flex-start;
  width:auto;
  min-width:28px;
  max-width:100%;
  min-height:22px;
  padding:0 8px;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(180deg, color-mix(in srgb, var(--day-status-color) 88%, #fff 12%) 0%, var(--day-status-color) 100%);
  font-size:10px;
  line-height:1;
  font-weight:950;
  letter-spacing:.01em;
  box-shadow:0 8px 16px color-mix(in srgb, var(--day-status-color) 23%, transparent 77%);
  white-space:nowrap;
}

.day-cell__holiday-flag{
  align-self:flex-start;
  min-height:20px;
  padding:0 7px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  background:linear-gradient(180deg,#f45b7d 0%,#cf244d 100%);
  border:1px solid rgba(255,255,255,.5);
  font-size:9px;
  line-height:1;
  font-weight:950;
  box-shadow:0 8px 17px rgba(207,36,77,.18);
  white-space:nowrap;
}

.day-cell__swatch{
  height:7px;
  border:0;
  border-radius:999px;
  background:linear-gradient(90deg, color-mix(in srgb, var(--day-status-color) 74%, #fff 26%) 0%, var(--day-status-color) 100%);
  box-shadow:0 5px 13px color-mix(in srgb, var(--day-status-color) 18%, transparent 82%);
}

.day-cell--job1{
  background:linear-gradient(180deg,#ffffff 0%, color-mix(in srgb, var(--job1-soft) 72%, #fff 28%) 100%);
  border-color:color-mix(in srgb, var(--job1) 45%, #fff 55%);
}

.day-cell--job2{
  background:linear-gradient(180deg,#ffffff 0%, color-mix(in srgb, var(--job2-soft) 70%, #fff 30%) 100%);
  border-color:color-mix(in srgb, var(--job2) 43%, #fff 57%);
}

.day-cell--off{
  background:linear-gradient(180deg,#ffffff 0%, #f5f4fb 100%);
  border-color:#ddd8ea;
}

.day-cell--leave{
  background:linear-gradient(180deg,#fffdf9 0%, color-mix(in srgb, var(--leave-soft) 76%, #fff 24%) 100%);
  border-color:color-mix(in srgb, var(--leave) 45%, #fff 55%);
}

.day-cell--blocked{
  background:linear-gradient(180deg,#ffffff 0%, color-mix(in srgb, var(--blocked-soft) 72%, #fff 28%) 100%);
  border-color:color-mix(in srgb, var(--blocked) 36%, #fff 64%);
}

.day-cell--has-holiday{
  border-color:color-mix(in srgb, var(--day-holiday) 50%, var(--day-status-color) 50%);
  box-shadow:0 12px 26px rgba(63,49,96,.055), inset 0 0 0 1px rgba(220,52,94,.12);
}

.day-cell--has-holiday::before{
  content:"";
  position:absolute;
  top:9px;
  right:8px;
  z-index:0;
  width:18px;
  height:18px;
  border-radius:999px;
  background:linear-gradient(180deg,#ff7190 0%, #d82652 100%);
  box-shadow:0 7px 15px rgba(216,38,82,.2);
  pointer-events:none;
}

.day-cell--has-holiday::after{
  content:"";
  position:absolute;
  inset:0 0 auto auto;
  z-index:0;
  width:34px;
  height:34px;
  border-radius:0 22px 0 18px;
  background:linear-gradient(135deg, transparent 0 49%, rgba(220,52,94,.16) 50% 100%);
  pointer-events:none;
}

.day-cell--has-holiday .day-cell__num{
  color:#8f1735;
}

.day-cell--has-holiday .day-cell__swatch{
  background:linear-gradient(90deg, var(--day-status-color) 0 66%, var(--day-holiday) 66% 100%);
}

.day-cell--holiday-marker:not(.day-cell--holiday-work){
  background:linear-gradient(180deg,#ffffff 0%,#fff4f7 100%);
}

.day-cell--holiday-work{
  background:
    linear-gradient(180deg,#ffffff 0%, color-mix(in srgb, var(--day-status-soft) 72%, #fff 28%) 100%),
    linear-gradient(135deg, transparent 0 63%, rgba(220,52,94,.11) 64% 100%);
  border-color:color-mix(in srgb, var(--day-status-color) 52%, var(--day-holiday) 48%);
  box-shadow:0 14px 30px rgba(63,49,96,.075), inset 0 0 0 1px rgba(220,52,94,.16);
}

.day-cell--holiday-work::before{
  width:22px;
  height:22px;
  top:8px;
  right:7px;
}

.day-cell--holiday-work .day-cell__status::after{
  content:" + św.";
  font-weight:950;
}

.day-cell--holiday-work .day-cell__holiday-flag{
  display:none;
}

.day-cell--today{
  box-shadow:0 12px 26px rgba(63,49,96,.055), 0 0 0 3px rgba(255,255,255,.95), 0 0 0 5px rgba(220,126,170,.26);
}

.day-cell__tags{
  min-height:0;
}

.day-cell__tag{
  max-width:100%;
  min-height:17px;
  padding:0 6px;
  font-size:8px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

@media (max-width:680px){
  .calendar-grid{
    gap:6px;
  }

  .legend--compact{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }

  .legend__item{
    min-width:0;
    justify-content:flex-start;
    font-size:12px;
  }

  .day-cell{
    min-height:82px;
    border-radius:18px;
    padding:7px 5px 7px;
  }

  .day-cell__num{
    font-size:17px;
  }

  .day-cell__status{
    min-width:25px;
    min-height:20px;
    padding:0 7px;
    font-size:9.5px;
  }

  .day-cell__holiday-flag{
    min-height:18px;
    padding:0 6px;
    font-size:8px;
  }

  .day-cell--has-holiday::before{
    width:16px;
    height:16px;
    top:7px;
    right:6px;
  }

  .day-cell--has-holiday::after{
    width:28px;
    height:28px;
    border-radius:0 18px 0 14px;
  }

  .day-cell__swatch{
    height:6px;
  }
}

@media (max-width:430px){
  .calendar-grid{
    gap:5px;
  }

  .calendar-month-stage{
    overflow:visible;
  }

  .day-cell{
    min-height:76px;
    border-radius:16px;
    padding:6px 4px;
  }

  .day-cell__num{
    font-size:16px;
  }

  .day-cell__status{
    min-width:23px;
    min-height:18px;
    padding:0 6px;
    font-size:8.5px;
  }

  .day-cell__holiday-flag{
    min-height:17px;
    padding:0 5px;
    font-size:7.5px;
  }

  .day-cell--holiday-work .day-cell__status::after{
    content:"+św";
    margin-left:2px;
  }

  .day-cell--has-holiday::before{
    width:14px;
    height:14px;
  }
}


/* Premium calendar polish v6: spokojne kolory, gradient świąt, krótki znacznik św. */
.legend__dot--job1{
  background:linear-gradient(135deg,#7f98e8 0%,#5575d8 100%);
}
.legend__dot--job2{
  background:linear-gradient(135deg,#d8b6ef 0%,#ae78d8 100%);
}
.legend__dot--off{
  background:linear-gradient(135deg,#ece8f4 0%,#cfc7df 100%);
}
.legend__dot--leave{
  background:linear-gradient(135deg,#f4c49a 0%,#df9358 100%);
}
.legend__dot--blocked{
  background:linear-gradient(135deg,#8b829d 0%,#5f5575 100%);
}
.legend__dot--holiday{
  background:linear-gradient(135deg,#ffe1e9 0%,#d94d6f 100%);
  box-shadow:0 0 0 2px rgba(217,77,111,.10);
}
.legend__dot--holiday-work{
  background:linear-gradient(135deg,#7f98e8 0 52%,#d94d6f 52% 100%);
  box-shadow:0 0 0 2px rgba(217,77,111,.10);
}

.day-cell{
  --day-holiday:#d94d6f;
  --day-holiday-soft:#fff2f6;
  border-width:1px;
  background:linear-gradient(180deg,#ffffff 0%,#faf8ff 100%);
  box-shadow:0 10px 22px rgba(54,43,81,.045);
}

.day-cell:hover,
.day-cell:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 16px 32px rgba(54,43,81,.075), 0 0 0 3px rgba(243,236,255,.78);
}

.day-cell__num{
  color:#312b49;
  text-shadow:none;
}

.day-cell--job1{
  --day-status-color:#6f8ee7;
  --day-status-soft:#eef3ff;
  background:linear-gradient(180deg,#ffffff 0%,#f2f6ff 100%);
  border-color:#c8d5fa;
}
.day-cell--job2{
  --day-status-color:#b884dd;
  --day-status-soft:#f8efff;
  background:linear-gradient(180deg,#ffffff 0%,#faf3ff 100%);
  border-color:#dfc9f1;
}
.day-cell--off{
  --day-status-color:#bdb5d1;
  --day-status-soft:#fbf9ff;
  background:linear-gradient(180deg,#ffffff 0%,#f7f5fb 100%);
  border-color:#ded8eb;
}
.day-cell--leave{
  --day-status-color:#e4a06b;
  --day-status-soft:#fff2e6;
  background:linear-gradient(180deg,#ffffff 0%,#fff5ec 100%);
  border-color:#f1c6a3;
}
.day-cell--blocked{
  --day-status-color:#6f657f;
  --day-status-soft:#f1edf7;
  background:linear-gradient(180deg,#ffffff 0%,#f4eff8 100%);
  border-color:#cec5dc;
}

.day-cell--job1 .day-cell__num{color:#4664b8;}
.day-cell--job2 .day-cell__num{color:#8d5fb1;}
.day-cell--leave .day-cell__num{color:#b86c36;}
.day-cell--blocked .day-cell__num{color:#5d536d;}

.day-cell__status{
  min-width:auto;
  min-height:20px;
  padding:0 7px;
  color:color-mix(in srgb, var(--day-status-color) 76%, #27223a 24%);
  background:color-mix(in srgb, var(--day-status-color) 12%, #fff 88%);
  border:1px solid color-mix(in srgb, var(--day-status-color) 26%, #fff 74%);
  box-shadow:none;
  font-weight:950;
}

.day-cell__holiday-flag{
  min-height:19px;
  padding:0 7px;
  color:#9c2947;
  background:linear-gradient(135deg,#fff7fa 0%,#ffe3eb 100%);
  border:1px solid rgba(217,77,111,.22);
  box-shadow:none;
  font-size:8.5px;
  letter-spacing:.01em;
}

.day-cell__swatch{
  height:6px;
  background:linear-gradient(90deg, color-mix(in srgb, var(--day-status-color) 42%, #fff 58%) 0%, var(--day-status-color) 100%);
  box-shadow:none;
}

.day-cell--has-holiday{
  border-color:color-mix(in srgb, var(--day-holiday) 42%, var(--day-status-color) 24%, #fff 34%);
  background:
    linear-gradient(145deg,
      color-mix(in srgb, var(--day-status-soft) 74%, #fff 26%) 0%,
      color-mix(in srgb, var(--day-status-soft) 88%, #fff 12%) 56%,
      #fff4f7 100%);
  box-shadow:0 12px 26px rgba(54,43,81,.05), inset 0 0 0 1px rgba(217,77,111,.10);
}

.day-cell--has-holiday::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  width:auto;
  height:auto;
  border-radius:inherit;
  background:
    linear-gradient(135deg, transparent 0 58%, rgba(217,77,111,.12) 58% 100%),
    radial-gradient(circle at 100% 0%, rgba(255,227,235,.75) 0%, rgba(255,227,235,0) 43%);
  box-shadow:none;
  pointer-events:none;
}

.day-cell--has-holiday::after{
  content:"";
  position:absolute;
  right:7px;
  top:7px;
  z-index:0;
  width:24px;
  height:24px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(255,255,255,.72) 0%, rgba(217,77,111,.18) 100%);
  box-shadow:none;
  pointer-events:none;
}

.day-cell--has-holiday .day-cell__num{
  color:#8f2942;
}

.day-cell--has-holiday .day-cell__swatch{
  background:linear-gradient(90deg,
    var(--day-status-color) 0 62%,
    color-mix(in srgb, var(--day-holiday) 82%, #fff 18%) 62% 100%);
}

.day-cell--holiday-marker:not(.day-cell--holiday-work){
  background:linear-gradient(145deg,#ffffff 0%,#fff6f9 56%,#ffeaf0 100%);
}

.day-cell--holiday-work{
  background:
    linear-gradient(145deg,
      color-mix(in srgb, var(--day-status-soft) 78%, #fff 22%) 0%,
      color-mix(in srgb, var(--day-status-soft) 92%, #fff 8%) 52%,
      #fff1f5 100%);
  border-color:color-mix(in srgb, var(--day-status-color) 54%, var(--day-holiday) 46%);
  box-shadow:0 14px 28px rgba(54,43,81,.065), inset 0 0 0 1px rgba(217,77,111,.12);
}

.day-cell--holiday-work::before{
  background:
    linear-gradient(135deg, transparent 0 57%, rgba(217,77,111,.16) 57% 100%),
    linear-gradient(90deg, rgba(217,77,111,.16) 0 4px, transparent 4px 100%);
}

.day-cell--holiday-work::after{
  right:7px;
  top:7px;
  width:24px;
  height:24px;
  background:linear-gradient(135deg, rgba(255,255,255,.74) 0%, rgba(217,77,111,.20) 100%);
}

.day-cell--holiday-work .day-cell__status{
  color:color-mix(in srgb, var(--day-status-color) 70%, #271f37 30%);
  background:color-mix(in srgb, var(--day-status-color) 14%, #fff 86%);
  border-color:color-mix(in srgb, var(--day-status-color) 28%, var(--day-holiday) 12%, #fff 60%);
}

.day-cell--holiday-work .day-cell__status::after{
  content:" + św.";
  color:#9c2947;
  font-weight:950;
}

.day-cell--holiday-work .day-cell__holiday-flag{
  display:none;
}

.day-cell--today{
  box-shadow:0 12px 26px rgba(54,43,81,.055), 0 0 0 3px rgba(255,255,255,.96), 0 0 0 5px rgba(220,126,170,.18);
}

@media (max-width:680px){
  .day-cell__status{
    min-height:18px;
    padding:0 6px;
    font-size:8.5px;
  }

  .day-cell__holiday-flag{
    min-height:17px;
    padding:0 5px;
    font-size:7.5px;
  }

  .day-cell--has-holiday::after,
  .day-cell--holiday-work::after{
    width:20px;
    height:20px;
    right:6px;
    top:6px;
  }
}

@media (max-width:430px){
  .day-cell__status{
    font-size:8px;
  }

  .day-cell--holiday-work .day-cell__status::after{
    content:"+św.";
    margin-left:2px;
  }
}

/* Premium calendar polish v8: pełne tła statusów w spokojniejszej kolorystyce z v6; belka święta bez zmian */
.day-cell{
  background:linear-gradient(180deg,#ffffff 0%,#fbfaff 100%);
}

.day-cell--job1:not(.day-cell--has-holiday){
  --day-status-color:#6f91e8;
  --day-status-soft:#f2f6ff;
  background:
    radial-gradient(circle at 24% 16%, rgba(255,255,255,.94) 0%, rgba(255,255,255,0) 35%),
    linear-gradient(180deg,#ffffff 0%,#f4f7ff 44%,#edf3ff 100%);
  border-color:#c8d5fa;
  box-shadow:0 9px 20px rgba(70,100,184,.045), inset 0 0 0 1px rgba(255,255,255,.72);
}

.day-cell--job2:not(.day-cell--has-holiday){
  --day-status-color:#b884dd;
  --day-status-soft:#f8efff;
  background:
    radial-gradient(circle at 24% 16%, rgba(255,255,255,.94) 0%, rgba(255,255,255,0) 35%),
    linear-gradient(180deg,#ffffff 0%,#fbf6ff 44%,#f5ebff 100%);
  border-color:#dfc9f1;
  box-shadow:0 9px 20px rgba(141,95,177,.042), inset 0 0 0 1px rgba(255,255,255,.72);
}

.day-cell--off:not(.day-cell--has-holiday){
  --day-status-color:#bdb5d1;
  --day-status-soft:#fbf9ff;
  background:
    radial-gradient(circle at 24% 16%, rgba(255,255,255,.94) 0%, rgba(255,255,255,0) 35%),
    linear-gradient(180deg,#ffffff 0%,#fbf9ff 45%,#f5f2fb 100%);
  border-color:#ded8eb;
  box-shadow:0 9px 20px rgba(93,83,109,.035), inset 0 0 0 1px rgba(255,255,255,.72);
}

.day-cell--leave:not(.day-cell--has-holiday){
  --day-status-color:#e4a06b;
  --day-status-soft:#fff2e6;
  background:
    radial-gradient(circle at 24% 16%, rgba(255,255,255,.94) 0%, rgba(255,255,255,0) 35%),
    linear-gradient(180deg,#ffffff 0%,#fff7ef 44%,#fff0e4 100%);
  border-color:#f1c6a3;
  box-shadow:0 9px 20px rgba(184,108,54,.038), inset 0 0 0 1px rgba(255,255,255,.72);
}

.day-cell--blocked:not(.day-cell--has-holiday){
  --day-status-color:#6f657f;
  --day-status-soft:#f1edf7;
  background:
    radial-gradient(circle at 24% 16%, rgba(255,255,255,.92) 0%, rgba(255,255,255,0) 35%),
    linear-gradient(180deg,#ffffff 0%,#f7f3fb 44%,#eee8f5 100%);
  border-color:#cec5dc;
  box-shadow:0 9px 20px rgba(93,83,109,.04), inset 0 0 0 1px rgba(255,255,255,.70);
}

.day-cell--has-soft-off:not(.day-cell--has-holiday):not(.day-cell--leave):not(.day-cell--blocked){
  --day-status-color:#8a77e8;
  --day-status-soft:#f5f1ff;
  background:
    radial-gradient(circle at 24% 16%, rgba(255,255,255,.93) 0%, rgba(255,255,255,0) 35%),
    linear-gradient(180deg,#ffffff 0%,#f8f5ff 44%,#f0eaff 100%);
  border-color:#d7cdf6;
}

.day-cell--holiday-work.day-cell--job1{
  background:
    radial-gradient(circle at 24% 16%, rgba(255,255,255,.92) 0%, rgba(255,255,255,0) 35%),
    linear-gradient(145deg,#ffffff 0%,#f2f6ff 48%,#fff4f7 100%);
}

.day-cell--holiday-work.day-cell--job2{
  background:
    radial-gradient(circle at 24% 16%, rgba(255,255,255,.92) 0%, rgba(255,255,255,0) 35%),
    linear-gradient(145deg,#ffffff 0%,#f8efff 48%,#fff4f7 100%);
}

.day-cell--holiday-work.day-cell--off{
  background:
    radial-gradient(circle at 24% 16%, rgba(255,255,255,.92) 0%, rgba(255,255,255,0) 35%),
    linear-gradient(145deg,#ffffff 0%,#fbf9ff 48%,#fff4f7 100%);
}

.day-cell__status{
  background:color-mix(in srgb, var(--day-status-color) 13%, #fff 87%);
  border-color:color-mix(in srgb, var(--day-status-color) 25%, #fff 75%);
}

.day-cell__swatch{
  opacity:.78;
}

@media (max-width:430px){
  .day-cell--job1:not(.day-cell--has-holiday),
  .day-cell--job2:not(.day-cell--has-holiday),
  .day-cell--off:not(.day-cell--has-holiday),
  .day-cell--leave:not(.day-cell--has-holiday),
  .day-cell--blocked:not(.day-cell--has-holiday){
    box-shadow:0 7px 15px rgba(54,43,81,.042), inset 0 0 0 1px rgba(255,255,255,.66);
  }
}

/* Premium calendar polish v9: mocniej widoczne tła statusów bez ruszania belki święta */
.day-cell--job1:not(.day-cell--has-holiday){
  --day-status-color:#5f83df;
  --day-status-soft:#e8efff;
  background:
    radial-gradient(circle at 26% 14%, rgba(255,255,255,.88) 0%, rgba(255,255,255,0) 34%),
    linear-gradient(180deg,#fdfdff 0%,#eaf1ff 48%,#dce8ff 100%);
  border-color:#aec0f3;
  box-shadow:0 10px 22px rgba(70,100,184,.075), inset 0 0 0 1px rgba(255,255,255,.62);
}

.day-cell--job2:not(.day-cell--has-holiday){
  --day-status-color:#a36bd1;
  --day-status-soft:#f2e5ff;
  background:
    radial-gradient(circle at 26% 14%, rgba(255,255,255,.88) 0%, rgba(255,255,255,0) 34%),
    linear-gradient(180deg,#fffefe 0%,#f4e7ff 48%,#e9d2ff 100%);
  border-color:#cdaae9;
  box-shadow:0 10px 22px rgba(141,95,177,.07), inset 0 0 0 1px rgba(255,255,255,.62);
}

.day-cell--off:not(.day-cell--has-holiday){
  --day-status-color:#a79ec0;
  --day-status-soft:#f1eef8;
  background:
    radial-gradient(circle at 26% 14%, rgba(255,255,255,.88) 0%, rgba(255,255,255,0) 34%),
    linear-gradient(180deg,#ffffff 0%,#f1eef8 48%,#e5e0ef 100%);
  border-color:#c6bed8;
  box-shadow:0 10px 22px rgba(93,83,109,.055), inset 0 0 0 1px rgba(255,255,255,.60);
}

.day-cell--leave:not(.day-cell--has-holiday){
  --day-status-color:#d8894f;
  --day-status-soft:#ffead8;
  background:
    radial-gradient(circle at 26% 14%, rgba(255,255,255,.88) 0%, rgba(255,255,255,0) 34%),
    linear-gradient(180deg,#fffefe 0%,#ffecd9 48%,#ffdabe 100%);
  border-color:#ebb083;
  box-shadow:0 10px 22px rgba(184,108,54,.065), inset 0 0 0 1px rgba(255,255,255,.62);
}

.day-cell--blocked:not(.day-cell--has-holiday){
  --day-status-color:#5f536f;
  --day-status-soft:#e8e1f0;
  background:
    radial-gradient(circle at 26% 14%, rgba(255,255,255,.84) 0%, rgba(255,255,255,0) 34%),
    linear-gradient(180deg,#faf9fc 0%,#e8e1f0 48%,#d7cede 100%);
  border-color:#afa3bf;
  box-shadow:0 10px 22px rgba(63,54,79,.07), inset 0 0 0 1px rgba(255,255,255,.56);
}

.day-cell--has-soft-off:not(.day-cell--has-holiday):not(.day-cell--leave):not(.day-cell--blocked){
  --day-status-color:#7d68dc;
  --day-status-soft:#eee8ff;
  background:
    radial-gradient(circle at 26% 14%, rgba(255,255,255,.86) 0%, rgba(255,255,255,0) 34%),
    linear-gradient(180deg,#ffffff 0%,#eee8ff 48%,#e0d6ff 100%);
  border-color:#bfb0ef;
  box-shadow:0 10px 22px rgba(120,97,200,.06), inset 0 0 0 1px rgba(255,255,255,.60);
}

.day-cell--job1:not(.day-cell--has-holiday) .day-cell__status,
.day-cell--job2:not(.day-cell--has-holiday) .day-cell__status,
.day-cell--off:not(.day-cell--has-holiday) .day-cell__status,
.day-cell--leave:not(.day-cell--has-holiday) .day-cell__status,
.day-cell--blocked:not(.day-cell--has-holiday) .day-cell__status,
.day-cell--has-soft-off:not(.day-cell--has-holiday) .day-cell__status{
  background:color-mix(in srgb, var(--day-status-color) 22%, #fff 78%);
  border-color:color-mix(in srgb, var(--day-status-color) 38%, #fff 62%);
  box-shadow:0 4px 10px color-mix(in srgb, var(--day-status-color) 12%, transparent 88%);
}

.day-cell--job1:not(.day-cell--has-holiday) .day-cell__swatch,
.day-cell--job2:not(.day-cell--has-holiday) .day-cell__swatch,
.day-cell--off:not(.day-cell--has-holiday) .day-cell__swatch,
.day-cell--leave:not(.day-cell--has-holiday) .day-cell__swatch,
.day-cell--blocked:not(.day-cell--has-holiday) .day-cell__swatch,
.day-cell--has-soft-off:not(.day-cell--has-holiday) .day-cell__swatch{
  opacity:.92;
  box-shadow:0 3px 8px color-mix(in srgb, var(--day-status-color) 18%, transparent 82%);
}

.day-cell--holiday-work.day-cell--job1{
  background:
    radial-gradient(circle at 26% 14%, rgba(255,255,255,.86) 0%, rgba(255,255,255,0) 34%),
    linear-gradient(145deg,#fbfdff 0%,#e4edff 52%,#fff4f7 100%);
}

.day-cell--holiday-work.day-cell--job2{
  background:
    radial-gradient(circle at 26% 14%, rgba(255,255,255,.86) 0%, rgba(255,255,255,0) 34%),
    linear-gradient(145deg,#fffefe 0%,#f0ddff 52%,#fff4f7 100%);
}

.day-cell--holiday-work.day-cell--off{
  background:
    radial-gradient(circle at 26% 14%, rgba(255,255,255,.86) 0%, rgba(255,255,255,0) 34%),
    linear-gradient(145deg,#ffffff 0%,#ece8f4 52%,#fff4f7 100%);
}

@media (max-width:430px){
  .day-cell--job1:not(.day-cell--has-holiday),
  .day-cell--job2:not(.day-cell--has-holiday),
  .day-cell--off:not(.day-cell--has-holiday),
  .day-cell--leave:not(.day-cell--has-holiday),
  .day-cell--blocked:not(.day-cell--has-holiday),
  .day-cell--has-soft-off:not(.day-cell--has-holiday):not(.day-cell--leave):not(.day-cell--blocked){
    box-shadow:0 8px 16px rgba(54,43,81,.058), inset 0 0 0 1px rgba(255,255,255,.58);
  }
}

/* Plan / final premium palette: kobieca, truskawkowo-liliowa kolorystyka; dni świąteczne bez zmian */
.plan-calendar-card .legend__dot--job1{background:#df5d84;}
.plan-calendar-card .legend__dot--job2{background:#8f6bd7;}
.plan-calendar-card .legend__dot--off{background:#d6b16f;}
.plan-calendar-card .legend__dot--leave{background:#e4825c;}
.plan-calendar-card .legend__dot--blocked{background:#7b657f;}
.plan-calendar-card .legend__dot--soft-off{background:#b36ca2;}

.plan-calendar-card .day-cell--job1:not(.day-cell--has-holiday){
  --day-status-color:#df5d84;
  --day-status-soft:#ffe1ea;
  background:linear-gradient(180deg,#fff3f7 0%,#ffdbe6 100%);
  border-color:#ee99b1;
  box-shadow:0 10px 22px rgba(211,76,117,.13), inset 0 0 0 1px rgba(255,255,255,.62), inset 0 -6px 0 rgba(223,93,132,.18);
}

.plan-calendar-card .day-cell--job2:not(.day-cell--has-holiday){
  --day-status-color:#8f6bd7;
  --day-status-soft:#eee6ff;
  background:linear-gradient(180deg,#f8f3ff 0%,#e7ddff 100%);
  border-color:#bba6ef;
  box-shadow:0 10px 22px rgba(119,86,199,.12), inset 0 0 0 1px rgba(255,255,255,.60), inset 0 -6px 0 rgba(143,107,215,.18);
}

.plan-calendar-card .day-cell--off:not(.day-cell--has-holiday){
  --day-status-color:#d6b16f;
  --day-status-soft:#fff1cf;
  background:linear-gradient(180deg,#fffaf0 0%,#f8e8bf 100%);
  border-color:#e3c989;
  box-shadow:0 10px 22px rgba(171,125,47,.105), inset 0 0 0 1px rgba(255,255,255,.58), inset 0 -6px 0 rgba(214,177,111,.18);
}

.plan-calendar-card .day-cell--leave:not(.day-cell--has-holiday){
  --day-status-color:#e4825c;
  --day-status-soft:#ffe4d8;
  background:linear-gradient(180deg,#fff3ee 0%,#ffd5c3 100%);
  border-color:#eda889;
  box-shadow:0 10px 22px rgba(212,105,70,.12), inset 0 0 0 1px rgba(255,255,255,.60), inset 0 -6px 0 rgba(228,130,92,.20);
}

.plan-calendar-card .day-cell--blocked:not(.day-cell--has-holiday){
  --day-status-color:#7b657f;
  --day-status-soft:#eaddea;
  background:linear-gradient(180deg,#f8f1f8 0%,#dfcfdf 100%);
  border-color:#b7a1bb;
  box-shadow:0 10px 22px rgba(94,69,100,.115), inset 0 0 0 1px rgba(255,255,255,.52), inset 0 -6px 0 rgba(123,101,127,.19);
}

.plan-calendar-card .day-cell--has-soft-off:not(.day-cell--has-holiday):not(.day-cell--leave):not(.day-cell--blocked){
  --day-status-color:#b36ca2;
  --day-status-soft:#f5ddf0;
  background:linear-gradient(180deg,#fff4fc 0%,#f3d5ed 100%);
  border-color:#d6a5cc;
  box-shadow:0 10px 22px rgba(159,82,143,.12), inset 0 0 0 1px rgba(255,255,255,.58), inset 0 -6px 0 rgba(179,108,162,.18);
}

.plan-calendar-card .day-cell--job1:not(.day-cell--has-holiday) .day-cell__status,
.plan-calendar-card .day-cell--job2:not(.day-cell--has-holiday) .day-cell__status,
.plan-calendar-card .day-cell--off:not(.day-cell--has-holiday) .day-cell__status,
.plan-calendar-card .day-cell--leave:not(.day-cell--has-holiday) .day-cell__status,
.plan-calendar-card .day-cell--blocked:not(.day-cell--has-holiday) .day-cell__status,
.plan-calendar-card .day-cell--has-soft-off:not(.day-cell--has-holiday) .day-cell__status{
  color:#372331;
  background:rgba(255,255,255,.76);
  border-color:rgba(255,255,255,.90);
  box-shadow:0 5px 12px rgba(60,35,54,.08);
}

.plan-calendar-card .day-cell--job1:not(.day-cell--has-holiday) .day-cell__num{color:#b93463;}
.plan-calendar-card .day-cell--job2:not(.day-cell--has-holiday) .day-cell__num{color:#6844b2;}
.plan-calendar-card .day-cell--off:not(.day-cell--has-holiday) .day-cell__num{color:#7c5a1e;}
.plan-calendar-card .day-cell--leave:not(.day-cell--has-holiday) .day-cell__num{color:#a6492b;}
.plan-calendar-card .day-cell--blocked:not(.day-cell--has-holiday) .day-cell__num{color:#49384e;}
.plan-calendar-card .day-cell--has-soft-off:not(.day-cell--has-holiday):not(.day-cell--leave):not(.day-cell--blocked) .day-cell__num{color:#7d3f71;}

.plan-calendar-card .day-cell--job1:not(.day-cell--has-holiday) .day-cell__swatch,
.plan-calendar-card .day-cell--job2:not(.day-cell--has-holiday) .day-cell__swatch,
.plan-calendar-card .day-cell--off:not(.day-cell--has-holiday) .day-cell__swatch,
.plan-calendar-card .day-cell--leave:not(.day-cell--has-holiday) .day-cell__swatch,
.plan-calendar-card .day-cell--blocked:not(.day-cell--has-holiday) .day-cell__swatch,
.plan-calendar-card .day-cell--has-soft-off:not(.day-cell--has-holiday) .day-cell__swatch{
  height:7px;
  opacity:1;
  background:linear-gradient(90deg,rgba(255,255,255,.28),var(--day-status-color));
  border:0;
  box-shadow:none;
}

@media (max-width:680px){
  .plan-calendar-card .day-cell--job1:not(.day-cell--has-holiday){background:linear-gradient(180deg,#fff0f5 0%,#ffcdda 100%);border-color:#e77f9e;box-shadow:0 8px 16px rgba(211,76,117,.16), inset 0 0 0 1px rgba(255,255,255,.48), inset 0 -6px 0 rgba(223,93,132,.25);}
  .plan-calendar-card .day-cell--job2:not(.day-cell--has-holiday){background:linear-gradient(180deg,#f7f0ff 0%,#ddceff 100%);border-color:#a98ce9;box-shadow:0 8px 16px rgba(119,86,199,.15), inset 0 0 0 1px rgba(255,255,255,.48), inset 0 -6px 0 rgba(143,107,215,.25);}
  .plan-calendar-card .day-cell--off:not(.day-cell--has-holiday){background:linear-gradient(180deg,#fff7e6 0%,#f3dda7 100%);border-color:#d6b16f;box-shadow:0 8px 16px rgba(171,125,47,.13), inset 0 0 0 1px rgba(255,255,255,.46), inset 0 -6px 0 rgba(214,177,111,.24);}
  .plan-calendar-card .day-cell--leave:not(.day-cell--has-holiday){background:linear-gradient(180deg,#fff0e9 0%,#ffc8b1 100%);border-color:#df8d6d;box-shadow:0 8px 16px rgba(212,105,70,.15), inset 0 0 0 1px rgba(255,255,255,.48), inset 0 -6px 0 rgba(228,130,92,.26);}
  .plan-calendar-card .day-cell--blocked:not(.day-cell--has-holiday){background:linear-gradient(180deg,#f5edf6 0%,#d7c4d9 100%);border-color:#9f86a5;box-shadow:0 8px 16px rgba(94,69,100,.14), inset 0 0 0 1px rgba(255,255,255,.42), inset 0 -6px 0 rgba(123,101,127,.25);}
  .plan-calendar-card .day-cell--has-soft-off:not(.day-cell--has-holiday):not(.day-cell--leave):not(.day-cell--blocked){background:linear-gradient(180deg,#fff0fb 0%,#edc7e5 100%);border-color:#c487b8;box-shadow:0 8px 16px rgba(159,82,143,.15), inset 0 0 0 1px rgba(255,255,255,.46), inset 0 -6px 0 rgba(179,108,162,.25);}
}

@media (max-width:430px){
  .plan-calendar-card .day-cell--job1:not(.day-cell--has-holiday){background:#ffc7d7;}
  .plan-calendar-card .day-cell--job2:not(.day-cell--has-holiday){background:#d7c4ff;}
  .plan-calendar-card .day-cell--off:not(.day-cell--has-holiday){background:#efd99f;}
  .plan-calendar-card .day-cell--leave:not(.day-cell--has-holiday){background:#ffc1a7;}
  .plan-calendar-card .day-cell--blocked:not(.day-cell--has-holiday){background:#d2bed4;}
  .plan-calendar-card .day-cell--has-soft-off:not(.day-cell--has-holiday):not(.day-cell--leave):not(.day-cell--blocked){background:#ebc2e3;}

  .plan-calendar-card .day-cell--job1:not(.day-cell--has-holiday) .day-cell__status,
  .plan-calendar-card .day-cell--job2:not(.day-cell--has-holiday) .day-cell__status,
  .plan-calendar-card .day-cell--off:not(.day-cell--has-holiday) .day-cell__status,
  .plan-calendar-card .day-cell--leave:not(.day-cell--has-holiday) .day-cell__status,
  .plan-calendar-card .day-cell--blocked:not(.day-cell--has-holiday) .day-cell__status,
  .plan-calendar-card .day-cell--has-soft-off:not(.day-cell--has-holiday) .day-cell__status{
    background:rgba(255,255,255,.82);
    border-color:rgba(255,255,255,.92);
  }
}



/* Plan / holiday red premium layer: święto dominuje czerwonym tłem, status pracy zostaje widoczny jako akcent */
.plan-calendar-card .legend__dot--holiday{
  background:linear-gradient(135deg,#ffedf2 0%,#d83a60 100%);
  box-shadow:0 0 0 2px rgba(216,58,96,.12);
}

.plan-calendar-card .legend__dot--holiday-work{
  background:linear-gradient(135deg,#d83a60 0 52%,var(--job1,#df5d84) 52% 100%);
  box-shadow:0 0 0 2px rgba(216,58,96,.12);
}

.plan-calendar-card .day-cell--has-holiday{
  --day-holiday:#d83a60;
  --day-holiday-deep:#a91f43;
  --day-holiday-soft:#fff0f4;
  color:#3f1726;
  border-color:rgba(190,31,69,.52);
  background:
    radial-gradient(circle at 82% 10%, rgba(255,255,255,.78) 0 18px, rgba(255,255,255,0) 19px),
    linear-gradient(160deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,0) 44%),
    linear-gradient(180deg,#fff3f6 0%,#ffd8e1 48%,#f7a8bb 100%);
  box-shadow:0 12px 24px rgba(169,31,67,.14), inset 0 0 0 1px rgba(255,255,255,.55), inset 0 -7px 0 rgba(216,58,96,.24);
}

.plan-calendar-card .day-cell--has-holiday::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  width:auto;
  height:auto;
  border-radius:inherit;
  background:
    linear-gradient(135deg, rgba(216,58,96,.18) 0 18%, rgba(216,58,96,0) 42%),
    linear-gradient(315deg, rgba(169,31,67,.18) 0 22%, rgba(169,31,67,0) 48%);
  box-shadow:none;
  pointer-events:none;
}

.plan-calendar-card .day-cell--has-holiday::after{
  content:"";
  position:absolute;
  top:7px;
  right:7px;
  z-index:0;
  width:28px;
  height:28px;
  border-radius:999px;
  background:linear-gradient(135deg,rgba(255,255,255,.82) 0%,rgba(255,255,255,.36) 42%,rgba(216,58,96,.18) 100%);
  box-shadow:0 8px 16px rgba(169,31,67,.10);
  pointer-events:none;
}

.plan-calendar-card .day-cell--has-holiday .day-cell__num{
  color:#8f1434;
  text-shadow:0 1px 0 rgba(255,255,255,.58);
}

.plan-calendar-card .day-cell--has-holiday .day-cell__holiday-flag{
  display:inline-flex;
  color:#fff;
  background:linear-gradient(180deg,#d83a60 0%,#a91f43 100%);
  border-color:rgba(255,255,255,.62);
  box-shadow:0 8px 16px rgba(169,31,67,.18);
}

.plan-calendar-card .day-cell--has-holiday .day-cell__status{
  color:#481424;
  background:rgba(255,255,255,.74);
  border-color:rgba(255,255,255,.86);
  box-shadow:0 6px 14px rgba(169,31,67,.10);
}

.plan-calendar-card .day-cell--has-holiday .day-cell__swatch{
  height:8px;
  background:linear-gradient(90deg,#d83a60 0%,#a91f43 100%);
  box-shadow:0 5px 12px rgba(169,31,67,.14);
}

.plan-calendar-card .day-cell--holiday-work{
  border-color:color-mix(in srgb, var(--day-status-color) 46%, #d83a60 54%);
  background:
    radial-gradient(circle at 82% 10%, rgba(255,255,255,.78) 0 18px, rgba(255,255,255,0) 19px),
    linear-gradient(180deg, rgba(216,58,96,.72) 0%, rgba(216,58,96,.64) 100%),
    linear-gradient(180deg, var(--day-status-soft,#ffe1ea) 0%, color-mix(in srgb, var(--day-status-color) 34%, #fff 66%) 100%);
  box-shadow:0 12px 24px rgba(169,31,67,.13), inset 0 0 0 1px rgba(255,255,255,.54), inset 0 -8px 0 color-mix(in srgb, var(--day-status-color) 72%, #fff 28%);
}

.plan-calendar-card .day-cell--holiday-work.day-cell--job1{
  --day-status-color:#df5d84;
  --day-status-soft:#ffe1ea;
}

.plan-calendar-card .day-cell--holiday-work.day-cell--job2{
  --day-status-color:#8f6bd7;
  --day-status-soft:#eee6ff;
}

.plan-calendar-card .day-cell--holiday-work .day-cell__status{
  color:#fff;
  background:linear-gradient(180deg,color-mix(in srgb,var(--day-status-color) 82%,#fff 18%) 0%,var(--day-status-color) 100%);
  border-color:rgba(255,255,255,.72);
  box-shadow:0 8px 16px color-mix(in srgb,var(--day-status-color) 24%,transparent 76%);
}

.plan-calendar-card .day-cell--holiday-work .day-cell__status::after{
  content:" + św.";
  color:#fff;
  font-weight:950;
  opacity:.96;
}

.plan-calendar-card .day-cell--holiday-work .day-cell__holiday-flag{
  display:none;
}

.plan-calendar-card .day-cell--holiday-work .day-cell__swatch{
  background:linear-gradient(90deg,var(--day-status-color) 0 62%,#d83a60 62% 100%);
  box-shadow:0 5px 13px color-mix(in srgb,var(--day-status-color) 20%,transparent 80%);
}

@media (max-width:680px){
  .plan-calendar-card .day-cell--has-holiday{
    background:
      radial-gradient(circle at 84% 9%, rgba(255,255,255,.75) 0 15px, rgba(255,255,255,0) 16px),
      linear-gradient(160deg, rgba(255,255,255,.30) 0%, rgba(255,255,255,0) 42%),
      linear-gradient(180deg,#ffe8ee 0%,#ffbfce 48%,#ef86a0 100%);
    border-color:rgba(190,31,69,.60);
    box-shadow:0 9px 18px rgba(169,31,67,.16), inset 0 0 0 1px rgba(255,255,255,.44), inset 0 -7px 0 rgba(216,58,96,.28);
  }

  .plan-calendar-card .day-cell--holiday-work{
    background:
      radial-gradient(circle at 84% 9%, rgba(255,255,255,.74) 0 15px, rgba(255,255,255,0) 16px),
      linear-gradient(180deg, rgba(216,58,96,.76) 0%, rgba(216,58,96,.68) 100%),
      linear-gradient(180deg, var(--day-status-soft,#ffe1ea) 0%, color-mix(in srgb,var(--day-status-color) 42%,#fff 58%) 100%);
    box-shadow:0 9px 18px rgba(169,31,67,.15), inset 0 0 0 1px rgba(255,255,255,.44), inset 0 -8px 0 color-mix(in srgb,var(--day-status-color) 76%,#fff 24%);
  }

  .plan-calendar-card .day-cell--has-holiday::after{
    width:22px;
    height:22px;
    top:6px;
    right:6px;
  }

  .plan-calendar-card .day-cell--has-holiday .day-cell__holiday-flag{
    min-height:17px;
    padding:0 6px;
    font-size:7.5px;
  }
}

@media (max-width:430px){
  .plan-calendar-card .day-cell--has-holiday{
    background:#f4a0b3;
    border-color:#c82d54;
  }

  .plan-calendar-card .day-cell--holiday-work.day-cell--job1{
    background:linear-gradient(180deg,rgba(216,58,96,.74),rgba(216,58,96,.68)),#ffc7d7;
    box-shadow:0 8px 16px rgba(169,31,67,.15), inset 0 -8px 0 #df5d84;
  }

  .plan-calendar-card .day-cell--holiday-work.day-cell--job2{
    background:linear-gradient(180deg,rgba(216,58,96,.74),rgba(216,58,96,.68)),#d7c4ff;
    box-shadow:0 8px 16px rgba(169,31,67,.15), inset 0 -8px 0 #8f6bd7;
  }

  .plan-calendar-card .day-cell--holiday-work .day-cell__status::after{
    content:"+św.";
    margin-left:2px;
  }

  .plan-calendar-card .day-cell--has-holiday .day-cell__swatch{
    height:7px;
  }
}


/* Plan / holiday-work clarity v2: dużo czytelniejsze rozróżnienie święta + pracy */
.plan-calendar-card .day-cell--holiday-work{
  background:
    radial-gradient(circle at 84% 12%, rgba(255,255,255,.78) 0 16px, rgba(255,255,255,0) 17px),
    linear-gradient(180deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,0) 38%),
    linear-gradient(180deg, #fff0f4 0%, #ffc3d0 56%, color-mix(in srgb, var(--day-status-color) 24%, #fff 76%) 56%, color-mix(in srgb, var(--day-status-color) 58%, #fff 42%) 100%);
  border-color:color-mix(in srgb, var(--day-status-color) 52%, #d83a60 48%);
  box-shadow:0 12px 24px rgba(169,31,67,.14), inset 0 0 0 1px rgba(255,255,255,.56), inset 0 -18px 0 color-mix(in srgb, var(--day-status-color) 52%, #fff 48%), inset 7px 0 0 var(--day-status-color);
}

.plan-calendar-card .day-cell--holiday-work::before{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  z-index:0;
  width:auto;
  height:24px;
  border-radius:0 0 18px 18px;
  background:linear-gradient(180deg, color-mix(in srgb, var(--day-status-color) 18%, #fff 82%) 0%, color-mix(in srgb, var(--day-status-color) 70%, #fff 30%) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45);
  pointer-events:none;
}

.plan-calendar-card .day-cell--holiday-work::after{
  content:"";
  position:absolute;
  top:7px;
  right:7px;
  z-index:0;
  width:30px;
  height:30px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(255,255,255,.84) 0%, rgba(255,255,255,.44) 42%, rgba(216,58,96,.16) 100%);
  box-shadow:0 8px 16px rgba(169,31,67,.10);
  pointer-events:none;
}

.plan-calendar-card .day-cell--holiday-work .day-cell__num{
  color:#7c1431;
  text-shadow:0 1px 0 rgba(255,255,255,.58);
}

.plan-calendar-card .day-cell--holiday-work .day-cell__status{
  color:#fff;
  background:linear-gradient(180deg, color-mix(in srgb, var(--day-status-color) 82%, #fff 18%) 0%, var(--day-status-color) 100%);
  border-color:rgba(255,255,255,.78);
  box-shadow:0 9px 18px color-mix(in srgb, var(--day-status-color) 28%, transparent 72%);
}

.plan-calendar-card .day-cell--holiday-work .day-cell__status::after{
  content:"";
}

.plan-calendar-card .day-cell--holiday-work .day-cell__holiday-flag{
  display:inline-flex;
  align-self:flex-start;
  color:#fff;
  background:linear-gradient(180deg,#d83a60 0%,#a91f43 100%);
  border-color:rgba(255,255,255,.66);
  box-shadow:0 8px 16px rgba(169,31,67,.18);
}

.plan-calendar-card .day-cell--holiday-work .day-cell__swatch{
  height:10px;
  background:linear-gradient(90deg, var(--day-status-color) 0 47%, rgba(255,255,255,.96) 47% 53%, #d83a60 53% 100%);
  box-shadow:0 6px 14px rgba(169,31,67,.12);
}

@media (max-width:680px){
  .plan-calendar-card .day-cell--holiday-work{
    background:
      radial-gradient(circle at 84% 10%, rgba(255,255,255,.76) 0 14px, rgba(255,255,255,0) 15px),
      linear-gradient(180deg, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 34%),
      linear-gradient(180deg, #ffe7ee 0%, #ffb7c7 54%, color-mix(in srgb, var(--day-status-color) 26%, #fff 74%) 54%, color-mix(in srgb, var(--day-status-color) 62%, #fff 38%) 100%);
    box-shadow:0 10px 20px rgba(169,31,67,.15), inset 0 0 0 1px rgba(255,255,255,.44), inset 0 -18px 0 color-mix(in srgb, var(--day-status-color) 56%, #fff 44%), inset 7px 0 0 var(--day-status-color);
  }

  .plan-calendar-card .day-cell--holiday-work::before{
    height:22px;
  }

  .plan-calendar-card .day-cell--holiday-work .day-cell__holiday-flag{
    min-height:17px;
    padding:0 6px;
    font-size:7.5px;
  }
}

@media (max-width:430px){
  .plan-calendar-card .day-cell--holiday-work.day-cell--job1{
    background:linear-gradient(180deg,#ffd8e3 0%, #ffb2c4 52%, #ffc7d7 52%, #df5d84 100%);
    box-shadow:0 8px 16px rgba(169,31,67,.15), inset 0 0 0 1px rgba(255,255,255,.42), inset 0 -16px 0 #df5d84, inset 6px 0 0 #df5d84;
  }

  .plan-calendar-card .day-cell--holiday-work.day-cell--job2{
    background:linear-gradient(180deg,#ffd8e3 0%, #ffb2c4 52%, #e7ddff 52%, #8f6bd7 100%);
    box-shadow:0 8px 16px rgba(169,31,67,.15), inset 0 0 0 1px rgba(255,255,255,.42), inset 0 -16px 0 #8f6bd7, inset 6px 0 0 #8f6bd7;
  }

  .plan-calendar-card .day-cell--holiday-work .day-cell__swatch{
    height:8px;
    background:linear-gradient(90deg, var(--day-status-color) 0 46%, rgba(255,255,255,.96) 46% 54%, #d83a60 54% 100%);
  }
}


/* Plan / holiday-work swap P1/P2 colors v1 */
.plan-calendar-card .day-cell--holiday-work.day-cell--job1{
  --day-status-color:#8f6bd7;
  --day-status-soft:#eee6ff;
}

.plan-calendar-card .day-cell--holiday-work.day-cell--job2{
  --day-status-color:#df5d84;
  --day-status-soft:#ffe1ea;
}

@media (max-width:430px){
  .plan-calendar-card .day-cell--holiday-work.day-cell--job1{
    background:linear-gradient(180deg,#ffd8e3 0%, #ffb2c4 52%, #e7ddff 52%, #8f6bd7 100%);
    box-shadow:0 8px 16px rgba(169,31,67,.15), inset 0 0 0 1px rgba(255,255,255,.42), inset 0 -16px 0 #8f6bd7, inset 6px 0 0 #8f6bd7;
  }

  .plan-calendar-card .day-cell--holiday-work.day-cell--job2{
    background:linear-gradient(180deg,#ffd8e3 0%, #ffb2c4 52%, #ffc7d7 52%, #df5d84 100%);
    box-shadow:0 8px 16px rgba(169,31,67,.15), inset 0 0 0 1px rgba(255,255,255,.42), inset 0 -16px 0 #df5d84, inset 6px 0 0 #df5d84;
  }
}


/* Plan / legend swap alignment v1 */
.plan-calendar-card .legend__dot--job1{background:#8f6bd7;}
.plan-calendar-card .legend__dot--job2{background:#df5d84;}
.plan-calendar-card .legend__dot--holiday-work{
  background:linear-gradient(135deg,#d83a60 0 52%,#8f6bd7 52% 100%);
  box-shadow:0 0 0 2px rgba(216,58,96,.12);
}


/* Plan / off day green premium v1 */
.plan-calendar-card .legend__dot--off{background:#74b38a;}

.plan-calendar-card .day-cell--off:not(.day-cell--has-holiday){
  background:linear-gradient(180deg,#f2fbf5 0%,#d6efdc 100%);
  border-color:#8fc6a1;
  box-shadow:0 8px 16px rgba(74,128,92,.13), inset 0 0 0 1px rgba(255,255,255,.46), inset 0 -6px 0 rgba(116,179,138,.24);
}

.plan-calendar-card .day-cell--off:not(.day-cell--has-holiday) .day-cell__status{
  color:#29553a;
  background:rgba(255,255,255,.82);
  border-color:rgba(143,198,161,.72);
  box-shadow:0 6px 14px rgba(74,128,92,.10);
}

.plan-calendar-card .day-cell--off:not(.day-cell--has-holiday) .day-cell__num{color:#2f6b44;}

.plan-calendar-card .day-cell--off:not(.day-cell--has-holiday) .day-cell__swatch{
  background:linear-gradient(90deg,#74b38a 0%,#4f8f69 100%);
  box-shadow:0 5px 12px rgba(74,128,92,.14);
}

@media (max-width:680px){
  .plan-calendar-card .day-cell--off:not(.day-cell--has-holiday){
    background:linear-gradient(180deg,#ebf8ef 0%,#c5e8cf 100%);
    border-color:#7bb592;
    box-shadow:0 8px 16px rgba(74,128,92,.14), inset 0 0 0 1px rgba(255,255,255,.42), inset 0 -7px 0 rgba(95,160,117,.26);
  }
}

@media (max-width:430px){
  .plan-calendar-card .day-cell--off:not(.day-cell--has-holiday){
    background:#bfe1c9;
  }
}
