/* Living Time Calendar Workbench — synchronized civil/Pattern navigation */

.calendar-workbench {
  --calendar-line: rgba(148, 196, 211, 0.2);
  --calendar-panel: rgba(6, 12, 20, 0.82);
  --calendar-panel-strong: rgba(9, 18, 28, 0.96);
  --calendar-gold: #f2bf67;
  --calendar-mint: #7ce0ba;
  --calendar-blue: #91cfde;
  position: relative;
  margin: 1rem 0 1.35rem;
  padding: clamp(0.85rem, 2.2vw, 1.4rem);
  border: 1px solid var(--calendar-line);
  border-radius: 1.15rem;
  background:
    radial-gradient(circle at 12% 0%, rgba(124, 224, 186, 0.09), transparent 30%),
    radial-gradient(circle at 88% 0%, rgba(145, 207, 222, 0.09), transparent 28%),
    linear-gradient(145deg, rgba(6, 11, 18, 0.98), rgba(5, 8, 14, 0.93));
  box-shadow: 0 20px 55px rgba(0, 0, 0, 0.28), inset 0 1px rgba(255, 255, 255, 0.035);
  overflow: clip;
}

.calendar-workbench:focus-visible {
  outline: 2px solid var(--calendar-blue);
  outline-offset: 3px;
}

.calendar-workbench-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
  margin-bottom: 1rem;
}

.calendar-workbench-kicker,
.calendar-workbench-head h2,
.calendar-workbench-head p { margin: 0; }

.calendar-workbench-kicker {
  color: var(--calendar-mint);
  font-size: 0.69rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.calendar-workbench-head h2 {
  margin-top: 0.18rem;
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  color: #f3f7f7;
}

.calendar-workbench-head p:not(.calendar-workbench-kicker) {
  max-width: 68ch;
  margin-top: 0.35rem;
  color: rgba(220, 232, 235, 0.72);
  line-height: 1.5;
  font-size: 0.88rem;
}

.calendar-boundary-clock {
  min-width: 13rem;
  display: grid;
  grid-template-columns: auto auto;
  gap: 0.05rem 0.55rem;
  align-items: baseline;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(124, 224, 186, 0.24);
  border-radius: 0.8rem;
  background: rgba(3, 8, 13, 0.72);
  text-align: right;
}

.calendar-boundary-clock strong { color: #f4fbf8; font-size: 1.06rem; }
.calendar-boundary-clock span { color: var(--calendar-mint); font-size: 0.69rem; }
.calendar-boundary-clock small { grid-column: 1 / -1; color: rgba(214, 232, 228, 0.65); font-size: 0.68rem; }

.calendar-command-row {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto;
  gap: 0.6rem;
  align-items: stretch;
}

.calendar-jump-group,
.calendar-today-group {
  display: flex;
  gap: 0.42rem;
  align-items: stretch;
  min-width: 0;
}

.calendar-jump-group label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.calendar-workbench input,
.calendar-workbench select,
.calendar-workbench button {
  min-height: 44px;
  border-radius: 0.68rem;
  font: inherit;
}

.calendar-workbench input,
.calendar-workbench select {
  min-width: 0;
  width: 100%;
  padding: 0.55rem 0.65rem;
  color: #eaf4f5;
  border: 1px solid rgba(145, 207, 222, 0.26);
  background: rgba(3, 8, 13, 0.84);
  color-scheme: dark;
}

.calendar-workbench button {
  border: 1px solid rgba(145, 207, 222, 0.27);
  background: rgba(19, 35, 47, 0.66);
  color: #eaf4f5;
  padding: 0.55rem 0.78rem;
  cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease, transform 120ms ease;
}

.calendar-workbench button:hover { border-color: rgba(145, 207, 222, 0.55); background: rgba(29, 52, 68, 0.72); }
.calendar-workbench button:active { transform: translateY(1px); }
.calendar-workbench button:focus-visible,
.calendar-workbench input:focus-visible,
.calendar-workbench select:focus-visible { outline: 2px solid var(--calendar-blue); outline-offset: 2px; }

.calendar-today-group button:first-child {
  border-color: rgba(124, 224, 186, 0.48);
  background: linear-gradient(145deg, rgba(44, 121, 96, 0.56), rgba(19, 62, 58, 0.65));
  color: #effff8;
  font-weight: 800;
}

.calendar-selected-summary {
  display: grid;
  gap: 0.12rem;
  margin: 0.8rem 0;
  padding: 0.72rem 0.85rem;
  border-left: 3px solid var(--calendar-gold);
  background: linear-gradient(90deg, rgba(242, 191, 103, 0.1), transparent 70%);
}

.calendar-selected-summary span { color: var(--calendar-gold); font-size: 0.64rem; font-weight: 900; letter-spacing: 0.13em; }
.calendar-selected-summary strong { color: #f5f1e8; font-size: 1rem; }
.calendar-selected-summary small { color: rgba(230, 227, 217, 0.68); }

.calendar-atlas-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.65rem;
}

.calendar-atlas-toolbar h3 { margin: 0; color: #e8f0f1; font-size: 0.98rem; }
.calendar-scale-controls { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.calendar-scale-controls button { min-height: 38px; padding: 0.38rem 0.7rem; font-size: 0.76rem; }
.calendar-scale-controls button[aria-pressed="true"] { border-color: rgba(242, 191, 103, 0.62); background: rgba(242, 191, 103, 0.14); color: #ffd997; }

.calendar-atlas-grid {
  display: grid;
  gap: 0.4rem;
  contain: content;
}

.calendar-atlas-grid[data-scale="day"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.calendar-atlas-grid[data-scale="week"] { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-atlas-grid[data-scale="moon"] { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-atlas-grid[data-scale="year"] { grid-template-columns: repeat(13, minmax(7.25rem, 1fr)); overflow-x: auto; padding-bottom: 0.4rem; scroll-snap-type: x proximity; }

.calendar-day-cell,
.calendar-moon-cell {
  position: relative;
  display: grid;
  min-width: 0;
  align-content: start;
  text-align: left;
  overflow: hidden;
}

.calendar-day-cell { min-height: 5.7rem !important; padding: 0.48rem !important; background: var(--calendar-panel) !important; }
.calendar-day-cell > span { color: rgba(197, 217, 222, 0.52); font-size: 0.56rem; white-space: nowrap; }
.calendar-day-cell > strong { color: #e9eff0; font-size: 1.15rem; line-height: 1.05; }
.calendar-day-cell > small { color: rgba(211, 224, 226, 0.64); font-size: 0.62rem; }
.calendar-day-cell > em { margin-top: 0.25rem; color: rgba(214, 231, 226, 0.7); font-size: 0.59rem; font-style: normal; line-height: 1.25; }
.calendar-day-cell > i { position: absolute; right: 0.42rem; bottom: 0.4rem; width: 0.32rem; height: 0.32rem; border-radius: 50%; background: rgba(145, 207, 222, 0.35); }

.calendar-day-cell.is-selected,
.calendar-moon-cell.is-selected { border-color: rgba(242, 191, 103, 0.82) !important; background: linear-gradient(145deg, rgba(78, 56, 28, 0.84), rgba(17, 27, 34, 0.9)) !important; box-shadow: inset 0 0 0 1px rgba(242, 191, 103, 0.16); }
.calendar-day-cell.is-today::before,
.calendar-moon-cell.is-today::before { content: "TODAY"; position: absolute; top: 0.22rem; right: 0.25rem; color: var(--calendar-mint); font-size: 0.48rem; font-weight: 900; letter-spacing: 0.08em; }
.calendar-day-cell.is-shabbat > i { background: var(--calendar-mint); box-shadow: 0 0 8px rgba(124, 224, 186, 0.65); }
.calendar-day-cell.is-preparation > i { background: var(--calendar-gold); }
.calendar-day-cell.is-return > i { background: var(--calendar-blue); }
.calendar-note-dot { position: absolute; left: 0.42rem; bottom: 0.4rem; width: 0.42rem; height: 0.42rem; border: 1px solid rgba(255, 255, 255, 0.55); border-radius: 0.12rem; background: #cdb8ff; box-shadow: 0 0 8px rgba(177, 148, 245, 0.55); }
.calendar-day-cell.has-note { border-bottom-color: rgba(205, 184, 255, 0.6) !important; }

.calendar-moon-cell {
  min-height: 8rem !important;
  padding: 0.65rem !important;
  scroll-snap-align: start;
  background: var(--calendar-panel-strong) !important;
}
.calendar-moon-cell > span { color: var(--calendar-blue); font-size: 0.62rem; font-weight: 800; }
.calendar-moon-cell > strong { margin-top: 0.18rem; color: #eef5f5; font-size: 0.9rem; }
.calendar-moon-cell > small { margin-top: auto; color: rgba(215, 227, 229, 0.58); font-size: 0.62rem; }
.calendar-moon-cell > em { color: rgba(124, 224, 186, 0.72); font-size: 0.62rem; font-style: normal; }

.calendar-lens-panel,
.calendar-journal-panel,
.calendar-compare-panel {
  margin-top: 0.85rem;
  border-top: 1px solid rgba(145, 207, 222, 0.12);
  padding-top: 0.78rem;
}

.calendar-panel-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.55rem;
}
.calendar-panel-title h3 { margin: 0; color: #e9f2f2; font-size: 0.9rem; }
.calendar-panel-title p { flex: 1 1 24rem; margin: 0; color: rgba(211, 227, 229, 0.6); font-size: 0.72rem; }

.calendar-preset-grid { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 0.35rem; }
.calendar-preset-grid button { min-height: 40px; padding: 0.38rem 0.45rem; font-size: 0.68rem; }
.calendar-preset-grid button[aria-pressed="true"] { border-color: rgba(124, 224, 186, 0.6); color: #b8f5de; background: rgba(41, 105, 84, 0.34); }

.calendar-journal-panel .calendar-panel-title > div { flex: 1 1 24rem; }
.calendar-journal-panel .calendar-panel-title > div p { margin-top: 0.2rem; }
.calendar-privacy-note { flex: 0 1 22rem !important; color: #cdb8ff !important; }
.calendar-note-editor { display: grid; grid-template-columns: minmax(9rem, 0.55fr) minmax(14rem, 1fr) auto; gap: 0.42rem; align-items: stretch; }
.calendar-note-editor > label:not(.calendar-import-button) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.calendar-note-editor textarea { min-height: 44px; resize: vertical; padding: 0.55rem 0.65rem; color: #eaf4f5; border: 1px solid rgba(145, 207, 222, 0.26); border-radius: 0.68rem; background: rgba(3, 8, 13, 0.84); font: inherit; }
.calendar-note-editor textarea:focus-visible { outline: 2px solid var(--calendar-blue); outline-offset: 2px; }
.calendar-note-actions { display: grid; grid-template-columns: repeat(3, auto); gap: 0.35rem; }
.calendar-import-button { display: inline-grid; min-height: 44px; place-items: center; padding: 0.55rem 0.78rem; border: 1px solid rgba(145, 207, 222, 0.27); border-radius: 0.68rem; background: rgba(19, 35, 47, 0.66); color: #eaf4f5; cursor: pointer; font: inherit; }
.calendar-import-button:hover { border-color: rgba(145, 207, 222, 0.55); background: rgba(29, 52, 68, 0.72); }
.calendar-import-button:focus-within { outline: 2px solid var(--calendar-blue); outline-offset: 2px; }
.calendar-file-input { position: absolute; width: 1px !important; height: 1px; min-height: 0 !important; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.calendar-local-agenda { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.4rem; margin-top: 0.5rem; }
.calendar-agenda-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; border: 1px solid rgba(205, 184, 255, 0.18); border-radius: 0.65rem; overflow: hidden; background: rgba(8, 8, 19, 0.52); }
.calendar-agenda-item.is-selected { border-color: rgba(242, 191, 103, 0.6); }
.calendar-agenda-item > button { min-width: 0; border: 0; border-radius: 0; text-align: left; }
.calendar-agenda-item > button:first-child { display: grid; gap: 0.08rem; background: transparent; }
.calendar-agenda-item > button:last-child { min-width: 40px; padding: 0; color: rgba(237, 203, 203, 0.8); }
.calendar-agenda-item span { color: #cdb8ff; font-size: 0.58rem; }
.calendar-agenda-item strong { overflow: hidden; color: #ebf2f2; font-size: 0.76rem; text-overflow: ellipsis; white-space: nowrap; }
.calendar-agenda-item small { color: rgba(211, 227, 229, 0.57); font-size: 0.62rem; }

.calendar-compare-actions { display: flex; gap: 0.35rem; }
.calendar-compare-actions button { min-height: 38px; padding: 0.38rem 0.65rem; font-size: 0.7rem; }
.calendar-compare-tray { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.42rem; }
.calendar-empty { grid-column: 1 / -1; margin: 0; padding: 0.7rem; color: rgba(211, 227, 229, 0.58); background: rgba(255, 255, 255, 0.025); border-radius: 0.65rem; font-size: 0.76rem; }
.calendar-pin-card { display: flex; justify-content: space-between; gap: 0.5rem; padding: 0.62rem; border: 1px solid rgba(145, 207, 222, 0.18); border-radius: 0.65rem; background: rgba(4, 10, 16, 0.7); }
.calendar-pin-card > div { display: grid; gap: 0.08rem; }
.calendar-pin-card span { color: var(--calendar-blue); font-size: 0.6rem; }
.calendar-pin-card strong { color: #ebf2f2; font-size: 0.79rem; }
.calendar-pin-card small { color: rgba(211, 227, 229, 0.57); font-size: 0.64rem; }
.calendar-pin-card button { min-width: 38px; min-height: 38px; padding: 0; color: rgba(237, 203, 203, 0.8); }
.calendar-compare-result { grid-column: 1 / -1; display: grid; gap: 0.12rem; padding: 0.7rem; border: 1px solid rgba(242, 191, 103, 0.26); border-radius: 0.65rem; background: rgba(55, 41, 23, 0.28); }
.calendar-compare-result strong { color: #ffe0a6; }
.calendar-compare-result span, .calendar-compare-result small { color: rgba(233, 225, 209, 0.72); font-size: 0.72rem; }

.calendar-workbench-foot { display: flex; align-items: start; gap: 0.75rem; margin-top: 0.75rem; }
.calendar-workbench-status { flex: 1; min-height: 2.4rem; margin: 0; padding: 0.5rem 0.65rem; border-radius: 0.6rem; color: rgba(220, 232, 235, 0.68); background: rgba(255, 255, 255, 0.025); font-size: 0.72rem; }
.calendar-workbench-status[data-kind="success"] { color: #baf4dd; background: rgba(41, 112, 86, 0.18); }
.calendar-workbench-status[data-kind="warning"] { color: #ffe0a6; background: rgba(128, 87, 25, 0.19); }
.calendar-workbench-status[data-kind="outside"] { color: #d7cbff; background: rgba(84, 61, 126, 0.2); }
.calendar-shortcuts { width: min(21rem, 100%); }
.calendar-shortcuts summary { cursor: pointer; color: rgba(206, 224, 228, 0.72); font-size: 0.7rem; }
.calendar-shortcuts p { margin: 0.45rem 0 0; color: rgba(206, 224, 228, 0.58); font-size: 0.68rem; line-height: 1.45; }

@media (max-width: 980px) {
  .calendar-command-row { grid-template-columns: 1fr; }
  .calendar-preset-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .calendar-note-editor { grid-template-columns: 1fr 1fr; }
  .calendar-note-actions { grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); }
  .calendar-local-agenda { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-atlas-grid[data-scale="day"] { grid-template-columns: repeat(5, minmax(5.4rem, 1fr)); overflow-x: auto; }
  .calendar-atlas-grid[data-scale="week"] { grid-template-columns: repeat(7, minmax(5rem, 1fr)); overflow-x: auto; }
}

@media (max-width: 640px) {
  .calendar-workbench { margin-inline: -0.1rem; padding: 0.72rem; border-radius: 0.9rem; }
  .calendar-workbench-head { grid-template-columns: 1fr; }
  .calendar-boundary-clock { width: 100%; min-width: 0; text-align: left; grid-template-columns: auto 1fr; }
  .calendar-command-row,
  .calendar-jump-group,
  .calendar-today-group { display: grid; grid-template-columns: 1fr; }
  .calendar-jump-group:nth-child(2) { grid-template-columns: 1fr 1fr; }
  .calendar-jump-group:nth-child(2) button { grid-column: 1 / -1; }
  .calendar-atlas-toolbar { align-items: stretch; }
  .calendar-atlas-toolbar h3 { width: 100%; }
  .calendar-scale-controls { display: grid; grid-template-columns: repeat(4, 1fr); width: 100%; }
  .calendar-atlas-grid[data-scale="moon"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .calendar-day-cell { min-height: 5.2rem !important; }
  .calendar-day-cell > span { font-size: 0.5rem; }
  .calendar-day-cell > strong { font-size: 1rem; }
  .calendar-preset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-note-editor { grid-template-columns: 1fr; }
  .calendar-note-actions { grid-column: auto; grid-template-columns: 1fr; }
  .calendar-local-agenda { grid-template-columns: 1fr; }
  .calendar-compare-tray { grid-template-columns: 1fr; }
  .calendar-workbench-foot { display: grid; }
  .calendar-shortcuts { width: 100%; }
}

@media (max-width: 400px) {
  .calendar-atlas-grid[data-scale="moon"] { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.28rem; }
  .calendar-day-cell { padding: 0.36rem !important; min-height: 4.8rem !important; }
  .calendar-day-cell > small { font-size: 0.56rem; }
}

@media (prefers-reduced-motion: reduce) {
  .calendar-workbench button { transition: none; }
}

@media (forced-colors: active) {
  .calendar-workbench,
  .calendar-day-cell,
  .calendar-moon-cell { border: 1px solid CanvasText; }
  .calendar-day-cell.is-selected,
  .calendar-moon-cell.is-selected { outline: 3px solid Highlight; }
}


/* ==========================================================
   Dual Gregorian + Pattern Calendar Atlas
   ========================================================== */

.calendar-atlas-grid[data-scale="month"] {
  display: grid;
  grid-template-columns:
    repeat(7, minmax(0, 1fr));
  gap: 0.38rem;
}

.calendar-atlas-grid[data-scale="month"]::before {
  content: "SUN   MON   TUE   WED   THU   FRI   SAT";
  grid-column: 1 / -1;
  white-space: pre;
  word-spacing: clamp(0.25rem, 4vw, 2.2rem);
  padding: 0.2rem 0.35rem 0.45rem;
  color: rgba(191, 210, 218, 0.52);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  overflow: hidden;
}

.calendar-month-blank {
  min-height: 5.7rem;
  border-radius: 0.7rem;
  border:
    1px dashed
    rgba(255, 255, 255, 0.035);
  background:
    rgba(255, 255, 255, 0.012);
}

.calendar-gregorian-cell {
  position: relative;
  min-width: 0;
}

.calendar-gregorian-cell > span {
  color:
    rgba(157, 187, 200, 0.54);
}

.calendar-gregorian-cell > strong {
  font-variant-numeric:
    tabular-nums;
}

.calendar-gregorian-cell > small {
  color:
    rgba(129, 221, 196, 0.78);
  font-weight: 700;
}

.calendar-gregorian-cell > em {
  color:
    rgba(237, 196, 107, 0.7);
}

.calendar-gregorian-cell.is-selected {
  border-color:
    rgba(242, 191, 103, 0.76)
    !important;

  background:
    radial-gradient(
      circle at top right,
      rgba(242, 191, 103, 0.12),
      transparent 55%
    ),
    var(--calendar-panel)
    !important;

  box-shadow:
    inset 0 0 0 1px
      rgba(242, 191, 103, 0.18),
    0 0 24px
      rgba(242, 191, 103, 0.08);
}

.calendar-gregorian-cell.is-today::before {
  content: "TODAY";
  position: absolute;
  top: 0.28rem;
  right: 0.34rem;
  color: var(--calendar-mint);
  font-size: 0.46rem;
  font-weight: 900;
  letter-spacing: 0.05em;
}

@media (max-width: 760px) {
  .calendar-scale-controls {
    grid-template-columns:
      repeat(5, minmax(0, 1fr));
  }

  .calendar-scale-controls button {
    min-width: 0;
    padding-inline: 0.25rem;
    font-size: 0.69rem;
  }

  .calendar-atlas-grid[data-scale="month"] {
    gap: 0.25rem;
  }

  .calendar-atlas-grid[data-scale="month"]::before {
    content: "S   M   T   W   T   F   S";
    word-spacing: clamp(0.55rem, 7vw, 2.8rem);
    font-size: 0.52rem;
  }

  .calendar-month-blank {
    min-height: 4.8rem;
  }

  .calendar-gregorian-cell {
    min-height: 4.8rem !important;
    padding: 0.34rem !important;
  }

  .calendar-gregorian-cell > span {
    font-size: 0.46rem;
  }

  .calendar-gregorian-cell > strong {
    font-size: 0.95rem;
  }

  .calendar-gregorian-cell > small {
    font-size: 0.51rem;
  }

  .calendar-gregorian-cell > em {
    font-size: 0.5rem;
  }
}

@media (max-width: 430px) {
  .calendar-atlas-grid[data-scale="month"] {
    gap: 0.18rem;
  }

  .calendar-month-blank,
  .calendar-gregorian-cell {
    min-height: 4.35rem !important;
  }

  .calendar-gregorian-cell {
    border-radius: 0.62rem !important;
  }

  .calendar-gregorian-cell > span {
    display: none;
  }

  .calendar-gregorian-cell > strong {
    font-size: 0.9rem;
  }

  .calendar-gregorian-cell > small {
    font-size: 0.47rem;
  }

  .calendar-gregorian-cell > em {
    font-size: 0.45rem;
  }
}


/* ==========================================================
   B3 — Canonical Living Planner projection
   ========================================================== */

.calendar-day-cell.has-living-plans,
.calendar-moon-cell.has-living-plans {
  overflow: visible;
}

.calendar-plan-markers {
  position: absolute;
  left: 0.42rem;
  bottom: 0.38rem;

  display: flex;
  align-items: center;
  gap: 0.18rem;

  max-width: calc(100% - 0.84rem);
  pointer-events: none;
}

.calendar-plan-marker {
  display: grid;
  place-items: center;

  min-width: 0.58rem;
  height: 0.58rem;

  font-size: 0.52rem;
  font-style: normal;
  font-weight: 900;
  line-height: 1;

  color: rgba(232, 240, 241, 0.92);
}

.calendar-plan-marker--task {
  color: #7fd7ff;
}

.calendar-plan-marker--event,
.calendar-plan-marker--milestone {
  color: #f6d56a;
}

.calendar-plan-marker--reminder {
  color: #ff9f80;
}

.calendar-plan-marker--growing {
  color: #78e08f;
}

.calendar-plan-marker--seasonal {
  color: #b9df72;
}

.calendar-plan-marker--practice {
  color: #c4a7ff;
}

.calendar-plan-marker--project {
  color: #65d7c5;
}

.calendar-plan-marker--travel {
  color: #80b8ff;
}

.calendar-plan-marker--observation {
  color: #d6d6d6;
}

.calendar-plan-marker--more {
  min-width: auto;
  font-size: 0.48rem;
  color: rgba(232,240,241,0.65);
}

.calendar-plan-count {
  position: absolute;
  right: 0.42rem;
  bottom: 0.42rem;

  display: grid;
  place-items: center;

  min-width: 1.25rem;
  height: 1.25rem;
  padding-inline: 0.24rem;

  border: 1px solid rgba(104,240,182,0.28);
  border-radius: 999px;

  background: rgba(5,17,18,0.92);
  color: #68f0b6;

  font-size: 0.56rem;
  font-weight: 900;
}

.calendar-day-cell.has-living-plans {
  box-shadow:
    inset 0 -2px 0 rgba(104,240,182,0.22);
}

.calendar-plan-native-group {
  position: absolute;
  left: 0.4rem;
  bottom: 0.35rem;

  display: flex;
  gap: 0.16rem;
  align-items: center;

  pointer-events: none;
}

.calendar-plan-native {
  font-size: 0.58rem;
  font-style: normal;
  line-height: 1;
}

.calendar-plan-native--task { color: #7fd7ff; }
.calendar-plan-native--event { color: #f6d56a; }
.calendar-plan-native--reminder { color: #ff9f80; }
.calendar-plan-native--growing { color: #78e08f; }
.calendar-plan-native--seasonal { color: #b9df72; }
.calendar-plan-native--practice { color: #c4a7ff; }
.calendar-plan-native--project { color: #65d7c5; }
.calendar-plan-native--travel { color: #80b8ff; }
.calendar-plan-native--milestone { color: #ffcf6e; }
.calendar-plan-native--observation { color: #d6d6d6; }
.calendar-plan-native--more {
  color: rgba(220,232,235,.65);
  font-size: .5rem;
}

.calendar-day-cell.has-living-plans {
  border-bottom-color: rgba(104,240,182,.5) !important;
}


/* B4.1 — planned life must be readable inside the calendar, not only encoded as dots. */
.calendar-plan-native-group {
  right: 0.35rem;
  bottom: 0.28rem;
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.28rem;
  align-items: center;
}

.calendar-plan-native-glyphs {
  display: flex;
  gap: 0.12rem;
  align-items: center;
}

.calendar-plan-native-label {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0.12rem 0.28rem;
  border: 1px solid rgba(104,240,182,.22);
  border-radius: 0.35rem;
  background: rgba(3,12,14,.84);
  color: rgba(238,248,245,.94);
  font-size: clamp(.48rem, 1.5vw, .62rem);
  font-weight: 700;
  line-height: 1.15;
  text-align: left;
}

.calendar-plan-native-label i {
  color: #68f0b6;
  font-style: normal;
}

.calendar-day-cell.has-living-plans {
  min-height: 5.25rem;
  padding-bottom: 1.45rem;
  background-image: linear-gradient(to top, rgba(104,240,182,.075), transparent 42%);
}

.calendar-moon-cell .calendar-plan-native-label {
  max-width: 8rem;
}

@media (max-width: 640px) {
  .calendar-plan-native-group {
    left: .22rem;
    right: .22rem;
    bottom: .2rem;
    gap: .18rem;
  }
  .calendar-plan-native-label {
    padding: .1rem .2rem;
    font-size: .48rem;
  }
  .calendar-day-cell.has-living-plans {
    min-height: 5.45rem;
    padding-bottom: 1.35rem;
  }
}

/* B7.24 — Calendar Atlas is a focused tool, not a permanently expanded wall. */
.calendar-atlas-launcher {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(116, 219, 190, 0.2);
  border-radius: 1.1rem;
  background: rgba(7, 20, 22, 0.72);
}
.calendar-atlas-launcher h2,
.calendar-atlas-launcher p { margin: 0; }
.calendar-atlas-launcher h2 { margin-top: 0.2rem; font-size: clamp(1.05rem, 3.6vw, 1.35rem); }
.calendar-atlas-launcher > div > p:last-child { margin-top: 0.45rem; color: rgba(224, 234, 236, 0.72); }
.calendar-atlas-launcher button {
  min-height: 3rem;
  padding: 0.7rem 1rem;
  border: 1px solid rgba(116, 219, 190, 0.34);
  border-radius: 0.9rem;
  background: rgba(19, 67, 60, 0.62);
  color: #f4fbf8;
  font: inherit;
  font-weight: 800;
}

.calendar-atlas-modal:not([hidden]) {
  position: fixed;
  inset: 0;
  z-index: 12950;
  display: grid;
  place-items: center;
  padding: 0.8rem;
  background: rgba(1, 5, 8, 0.78);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
body.calendar-atlas-modal-open { overflow: hidden; }
.calendar-atlas-dialog {
  position: relative;
  width: min(820px, calc(100vw - 1.6rem));
  max-height: calc(100dvh - 1.6rem);
  overflow: auto;
  border: 1px solid rgba(116, 219, 190, 0.24);
  border-radius: 1.35rem;
  background: rgb(7, 15, 19);
  box-shadow: 0 24px 90px rgba(0,0,0,0.72);
}
.calendar-atlas-dialog .calendar-workbench {
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.calendar-atlas-close {
  position: sticky;
  top: 0.7rem;
  z-index: 5;
  float: right;
  width: 2.6rem;
  height: 2.6rem;
  margin: 0.7rem 0.7rem -3.3rem 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  color: white;
  font-size: 1.45rem;
}
.calendar-atlas-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem;
  margin: 0.9rem 0 1rem;
  padding: 0.35rem;
  border-radius: 0.9rem;
  background: rgba(255,255,255,0.035);
}
.calendar-atlas-tabs button {
  min-height: 2.7rem;
  padding: 0.55rem 0.45rem;
  border-radius: 0.7rem;
  font-size: 0.88rem;
}
.calendar-atlas-tabs button[aria-pressed="true"] {
  border-color: rgba(116, 219, 190, 0.48);
  background: rgba(30, 98, 84, 0.45);
}
.calendar-workbench [hidden] { display: none !important; }

@media (max-width: 640px) {
  .calendar-atlas-launcher { grid-template-columns: 1fr; }
  .calendar-atlas-launcher button { width: 100%; }
  .calendar-atlas-modal:not([hidden]) { align-items: end; padding: 0; }
  .calendar-atlas-dialog {
    width: 100%;
    max-height: 88dvh;
    border-radius: 1.3rem 1.3rem 0 0;
    border-bottom: 0;
  }
  .calendar-atlas-tabs { position: sticky; top: 0; z-index: 4; background: rgba(7,15,19,0.96); }
}

/* B7.25 — year navigation belongs to the instrument chrome, not the 3D label field. */
.sphere-year-navigator {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px auto;
  align-items: center;
  gap: 8px;
  margin: 10px 0 12px;
  padding: 9px;
  border: 1px solid rgba(108, 214, 185, 0.24);
  border-radius: 18px;
  background: rgba(5, 14, 19, 0.88);
  backdrop-filter: blur(12px);
}
.sphere-year-nav-center {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.sphere-year-nav-kicker {
  color: rgba(219, 234, 238, 0.62);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.sphere-year-nav-select {
  min-width: 0;
  width: 100%;
  appearance: auto;
  border: 0;
  background: transparent;
  color: #eef7f5;
  font: inherit;
  font-weight: 700;
  font-size: 1rem;
}
.sphere-year-nav-btn,
.sphere-year-live-btn {
  min-height: 44px;
  border: 1px solid rgba(127, 209, 188, 0.26);
  border-radius: 13px;
  background: rgba(17, 31, 37, 0.92);
  color: #eef7f5;
  font: inherit;
  font-weight: 700;
}
.sphere-year-nav-btn { font-size: 1.65rem; line-height: 1; }
.sphere-year-live-btn { padding: 0 13px; white-space: nowrap; }
.sphere-year-live-btn[data-live="true"] {
  border-color: rgba(86, 226, 174, 0.55);
  background: rgba(28, 104, 79, 0.42);
}
@media (max-width: 520px) {
  .sphere-year-navigator { grid-template-columns: 42px minmax(0, 1fr) 42px; }
  .sphere-year-live-btn { grid-column: 1 / -1; min-height: 38px; }
  .sphere-year-nav-center { justify-content: center; }
}


/* B7.26 — location + seasonal context is instrument chrome, never a floating 3D label. */
.sphere-location-season-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: -4px 0 12px;
  padding: 9px 11px;
  border: 1px solid rgba(101, 190, 167, 0.18);
  border-radius: 15px;
  background: rgba(7, 16, 21, 0.72);
  color: #e9f5f2;
}
.sphere-location-season-main {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 7px;
  overflow: hidden;
}
.sphere-location-season-place {
  min-width: 0;
  max-width: 48%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 700;
}
.sphere-location-season-dot { color: rgba(214, 235, 230, 0.38); }
.sphere-location-season-value {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(213, 235, 230, 0.72);
  font-size: 0.86rem;
}
.sphere-location-season-action {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid rgba(127, 209, 188, 0.24);
  border-radius: 11px;
  background: rgba(15, 31, 36, 0.86);
  color: #eaf6f3;
  font: inherit;
  font-weight: 700;
  font-size: 0.82rem;
}
@media (max-width: 520px) {
  .sphere-location-season-strip { align-items: stretch; }
  .sphere-location-season-main { flex-wrap: wrap; gap: 2px 6px; }
  .sphere-location-season-place { max-width: calc(100% - 14px); flex: 1 1 auto; }
  .sphere-location-season-value { flex-basis: 100%; }
  .sphere-location-season-dot { display: none; }
}

/* B7.27 — compact temporal search + semantic scale controls. */
.sphere-quick-nav {
  display: grid;
  gap: 8px;
  margin: -4px 0 12px;
  padding: 10px;
  border: 1px solid rgba(105, 192, 173, 0.18);
  border-radius: 16px;
  background: rgba(6, 15, 20, 0.76);
}
.sphere-quick-nav-search {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}
.sphere-quick-nav-search label {
  color: rgba(225, 241, 237, 0.7);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.sphere-quick-nav-search input {
  min-width: 0;
  width: 100%;
  min-height: 40px;
  padding: 0 11px;
  border: 1px solid rgba(125, 207, 187, 0.22);
  border-radius: 11px;
  background: rgba(13, 27, 33, 0.88);
  color: #eef7f5;
  font: inherit;
}
.sphere-quick-nav-search button,
.sphere-time-scale button {
  min-height: 40px;
  border: 1px solid rgba(125, 207, 187, 0.22);
  border-radius: 11px;
  background: rgba(15, 31, 37, 0.9);
  color: #eef7f5;
  font: inherit;
  font-weight: 700;
}
.sphere-quick-nav-search button { padding: 0 14px; }
.sphere-time-scale {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}
.sphere-time-scale button[aria-pressed="true"] {
  border-color: rgba(239, 207, 105, 0.62);
  background: rgba(103, 82, 27, 0.38);
  color: #fff4c8;
}
.sphere-quick-jump-status {
  margin: 0;
  min-height: 1.1em;
  color: rgba(213, 235, 230, 0.62);
  font-size: 0.78rem;
}
.sphere-quick-jump-status[data-state="warning"] { color: rgba(246, 198, 144, 0.9); }
.sphere-quick-jump-status[data-state="ok"] { color: rgba(157, 224, 201, 0.85); }
@media (max-width: 520px) {
  .sphere-quick-nav-search { grid-template-columns: minmax(0, 1fr) auto; }
  .sphere-quick-nav-search label { grid-column: 1 / -1; }
  .sphere-time-scale button { min-height: 36px; font-size: 0.84rem; }
}


/* B7.28 — immediate sphere view tools: keep common calendar actions outside
   advanced controls and close to the instrument they affect. */
.sphere-view-tools {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
  margin: .6rem 0 .8rem;
}
.sphere-view-tool {
  min-height: 2.65rem;
  border: 1px solid rgba(128, 205, 198, .30);
  border-radius: .8rem;
  background: rgba(8, 23, 30, .86);
  color: rgba(237, 247, 249, .92);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.sphere-view-tool[aria-pressed="true"],
.sphere-view-tool[data-active="true"] {
  border-color: rgba(245, 198, 92, .62);
  background: rgba(103, 75, 17, .26);
  color: #ffe5a1;
}
.sphere-view-tool:focus-visible { outline: 2px solid #7be0c8; outline-offset: 2px; }
@media (max-width: 480px) {
  .sphere-view-tools { gap: .42rem; }
  .sphere-view-tool { min-height: 2.5rem; font-size: .86rem; }
}
