@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:light;--pine:#173b34;--ink:#18322d;--muted:#52645e;--paper:#f1f5ef;--line:#d8e2d8;--lime:#e0efb4}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px 'DM Sans',system-ui,sans-serif;display:grid;grid-template-columns:218px minmax(0,1fr);min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #708b3f;outline-offset:3px}.rail{background:var(--pine);color:#f5faf3;padding:29px 17px;display:flex;flex-direction:column;gap:30px;min-height:100vh;position:sticky;top:0;height:100vh}.brand{font:700 24px 'Bricolage Grotesque',sans-serif;display:flex;align-items:center;gap:9px;white-space:nowrap}.brand-icon,.avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:12px;background:var(--lime);color:var(--pine);font-weight:700}.house{display:flex;gap:10px;align-items:center;padding:11px 8px;border-block:1px solid #44635b}.house small{color:#c2d6ce}.avatar{width:31px;height:31px;border-radius:50%;background:#c6dbd0}.rail nav{display:grid;gap:5px}.rail nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:8px;color:#dfebe5}.rail nav a[aria-current],.rail nav a:hover{background:#31564b;color:white}.rail nav span{width:20px;text-align:center;font-size:20px}.member{margin-top:auto;display:grid;gap:7px;color:#dcebe2}.member select{width:100%;padding:8px;border:1px solid #638176;border-radius:8px;background:var(--pine);color:white}
main{width:100%;max-width:1340px;margin:auto;padding:35px clamp(20px,4vw,64px) 48px;align-self:start;margin-top:0}header,.section-head,.chat-header{display:flex;align-items:center;justify-content:space-between;gap:14px}header{margin-bottom:23px}.date{font-size:14px;color:var(--muted);margin:0 0 5px}h1,h2,h3,p{margin:0}h1,h2{font-family:'Bricolage Grotesque',system-ui,sans-serif}h1{font-size:clamp(32px,5vw,54px);letter-spacing:-.045em;line-height:1.05}h2{font-size:23px;letter-spacing:-.025em}h3{font-size:16px;margin:4px 0}.primary{border:0;border-radius:9px;padding:11px 15px;background:var(--pine);color:white;font-weight:700;white-space:nowrap}.grocery-form input,#chat-form input{min-width:0;flex:1;border:0;background:transparent;color:var(--ink);padding:9px 2px}.grocery-form button{border:0;background:var(--pine);color:white;border-radius:8px;font-size:21px;min-width:38px;height:38px}
.dashboard{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:18px;align-items:start}.stack{display:grid;gap:16px}.panel{border:1px solid var(--line);border-radius:13px;background:#fff;padding:20px}.schedule{height:100%}.section-head a,.dinner a{font-size:13px;font-weight:700}.section-head a:hover,.dinner a:hover{text-decoration:underline}.timeline,.rows{list-style:none;padding:0;margin:12px 0 0}.timeline li{display:grid;grid-template-columns:75px 1fr;padding:14px 0;border-top:1px solid var(--line);gap:12px}.timeline time{font-size:14px;font-weight:700;padding-top:4px}.category{display:inline-block;padding:3px 7px;border-radius:4px;background:#eaf2dc;font-size:11px;font-weight:700}.category.blue{background:#e5eef9}.category.lilac{background:#efe8f8}small{display:block;color:var(--muted);font-size:13px}.dinner{background:var(--lime);padding:20px 23px;border-radius:13px}.dinner p{font-weight:700;font-size:13px}.dinner h2{font-size:clamp(25px,3vw,39px);line-height:1;letter-spacing:-.045em;margin:9px 0}.dinner a{display:inline-block;margin-top:12px}.remaining{font-size:12px;color:var(--muted)}.grocery-list{margin:8px 0}.check{display:flex;align-items:center;gap:9px;padding:7px 0;cursor:pointer}.check input{accent-color:var(--pine);width:17px;height:17px;margin:0}.check:has(:checked) .item{text-decoration:line-through;color:var(--muted)}.grocery-form,#chat-form{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:8px}.grocery-form button{height:32px;min-width:33px}.rows li,.chore{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:12px 0}.rows li span{white-space:nowrap;font-size:13px;color:var(--muted)}.chore:first-child{margin-top:10px}.chore select{max-width:110px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink)}
dialog{border:1px solid var(--line);border-radius:15px;padding:18px;width:min(95vw,460px);color:var(--ink);margin:auto 20px 20px auto;box-shadow:0 12px 50px #173b3430}dialog::backdrop{background:#19332e60}.chat-header button,.suggestions button{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:5px 9px}.chat-header button{font-size:20px}#messages{max-height:42vh;overflow:auto;display:grid;gap:8px;margin:14px 0}#messages p{padding:9px 12px;background:var(--paper);border-radius:9px;max-width:94%;white-space:pre-line}#messages .mine{justify-self:end;background:var(--lime)}.suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.suggestions button{font-size:12px}
@media(max-width:860px){body{grid-template-columns:1fr;grid-template-rows:auto 1fr}.rail{min-height:0;height:auto;position:static;padding:13px 20px;display:grid;grid-template-columns:1fr auto;gap:12px}.house{display:none}.rail nav{grid-row:2;grid-column:1/-1;display:flex;overflow:auto}.rail nav a{white-space:nowrap;padding:7px 8px;gap:5px}.member{font-size:11px;gap:0}.member select{padding:3px}.brand{font-size:22px}main{padding-top:22px}}
@media(max-width:590px){.dashboard{grid-template-columns:1fr}.panel{padding:16px}.section-head h2{font-size:20px}.rail nav span{display:none}dialog{margin:auto auto 8px}.primary{padding:9px 11px}}
.calendar-sections {
  display: grid;
  gap: 16px;
}

.calendar-sections [data-period="overdue"] {
  border: 2px solid #bd6a61;
}

.calendar-sections time {
  white-space: nowrap;
  font-size: 13px;
  color: var(--muted);
}

main {
  padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px));
}

.ask-bar {
  position: fixed;
  z-index: 2;
  inset-inline-start: max(16px, calc(50% + 109px - 220px));
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  width: min(440px, calc(100% - 32px));
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 54px;
  padding: 8px 11px 8px 17px;
  border: 1px solid #44635b;
  border-radius: 14px;
  background: var(--pine);
  color: white;
  box-shadow: 0 6px 24px #173b3433;
  font-weight: 700;
}

.ask-bar:hover {
  background: #254b42;
}

.ask-arrow {
  display: grid;
  place-items: center;
  margin-inline-start: auto;
  width: 33px;
  height: 33px;
  border-radius: 8px;
  background: var(--lime);
  color: var(--pine);
  font-size: 19px;
}

@media (max-width: 860px) {
  .ask-bar {
    inset-inline-start: max(16px, calc(50% - 220px));
  }
}

.icon-button, .secondary {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  color: var(--pine);
}

.icon-button {
  flex: none;
  width: 38px;
  font-size: 21px;
  line-height: 1;
}

.secondary {
  padding: 6px 12px;
}

.chore {
  align-items: center;
}

[data-edit-card="school"] .rows li > span {
  white-space: pre-line;
}

.household-dialog {
  position: fixed;
  margin: auto;
  max-height: calc(100dvh - 32px);
  overflow: auto;
}

#editor-fields {
  display: grid;
  gap: 12px;
  margin-block: 14px;
}

#editor-fields fieldset {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
}

#editor-fields legend {
  font-size: 16px;
}

#editor-fields input,
.viewing-member select {
  width: 100%;
  font: inherit;
  font-size: 16px;
  color: var(--ink);
}

#editor-fields input {
  font-size: 18px;
  border: 0;
  background: transparent;
  padding: 0;
}

.viewing-member select {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px;
}

.editor-actions {
  font-size: 16px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

#grocery-screen {
  inset: 0;
  width: 100%;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: max(20px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));
  background: var(--paper);
}

#grocery-screen .groceries {
  max-width: 720px;
  margin-inline: auto;
}

.date-display{display:inline-flex;flex-direction:column;align-items:center;gap:3px;flex-shrink:0}
.date-page{display:inline-grid;min-width:58px;overflow:hidden;border:1px solid #d7cec2;border-radius:8px;background:#fffdf8;color:var(--ink);text-align:center;box-shadow:0 1px 2px #21372c18}
.date-page>.date-month{min-height:18px;background:#a7352c;color:white;padding:3px 5px;font-size:10px;font-weight:700;line-height:1.2}
.date-page>.date-number{color:var(--ink);padding:2px 5px 4px;font-size:22px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.date-display .date-accessible{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.rows > li {
  align-items: center;
}

.rows > li > div:not(:has(> small))::after {
  content: "";
  display: block;
  font-size: 13px;
  block-size: 1lh;
}

.rows > li > .date-display {
  align-self: center;
  margin-inline-start: auto;
  text-align: center;
}
header .date-display{margin-bottom:10px}
.date-display > .date-weekday {
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}
header .date[hidden]{display:none}
#calendar-date { margin: 0; }
#calendar-date[hidden]{display:none}
.viewing-member select {
  margin-top: 12px;
  max-width: 20rem;
  background-color: var(--paper);
}

.date-page > .date-month-implied {
  background: #efd1cc;
  border-radius: 7px 7px 0 0;
}
.date-past { position: relative; }
.date-past::after {
  content: "";
  position: absolute;
  inset: 0;
  background: center / 80% 90% no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 24'%3E%3Cpath d='M4 20 Q20 14 44 4' fill='none' stroke='%23243653' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
}

.rows li .person-chip, .chore .person-chip {
  margin-inline-end: 8px;
  font-size: 12px;
}

.rows li > .recurrence, .chore > .recurrence {
  max-width: 48%;
  color: var(--muted);
  font-size: 13px;
  text-align: right;
  white-space: normal;
}

.card-icon {
  display: inline-grid;
  place-items: center;
  inline-size: 1.8em;
  block-size: 1.8em;
  margin-inline-end: 0.45em;
  border-radius: 8px;
  background: var(--paper);
  font-size: 0.85em;
  vertical-align: middle;
}

.rows > li > div,
.chore > div {
  align-self: stretch;
  display: flex;
  flex: 1;
  flex-direction: column;
  min-inline-size: 0;
}

.rows > li > div > small:not(:has(> .person-chip)),
.chore > div > small:not(:has(> .person-chip)),
.grocery-list .item {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rows > li > div > small:has(> .person-chip),
.chore > div > small:has(> .person-chip) {
  margin-block-start: 8px;
}

#household-editor {
  inset: auto 0 0;
  width: 100%;
  max-width: none;
  margin: 0 auto;
  border-radius: 16px 16px 0 0;
  padding: 0;
  overflow: hidden;
}

#household-editor[open] {
  display: flex;
  flex-direction: column;
  animation: editor-slide-in 220ms ease-out;
}

@keyframes editor-slide-in {
  from { transform: translateY(100%); }
}

@media (prefers-reduced-motion: reduce) {
  #household-editor[open] { animation: none; }
}

.editable-todo {
  cursor: pointer;
}

.todo-title {
  align-self: flex-start;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: start;
}

.panel .rows > li strong,
.panel .chore strong,
.panel .todo-title {
  font-weight: 400;
}

.rows > li,
.chore {
  padding-block: 16px;
}

.grocery-list .check {
  padding-block: 11px;
}

.picker-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.rows li .person-chip,
.chore .person-chip,
.people-picker .person-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 28px;
  padding: 4px 12px;
  border: 0;
  border-radius: 999px;
  background: color-mix(in srgb-linear, #e4eee6 75%, var(--pine));
  color: var(--pine);
  font-weight: 400;
}

.people-picker .remove-person {
  min-width: 28px;
  min-height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #a7352c;
}

.people-picker button:disabled {
  opacity: 0.5;
  cursor: default;
}

.picker-dropdown summary {
  cursor: pointer;
  list-style: none;
}

.picker-dropdown summary::-webkit-details-marker {
  display: none;
}

.picker-options {
  display: grid;
  justify-items: start;
  gap: 6px;
  margin-top: 6px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: white;
}

.picker-dropdown {
  position: relative;
  justify-self: start;
  font-size: inherit;
}

.picker-dropdown .picker-options {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: -8px;
  margin-top: 0;
  z-index: 1;
  box-shadow: 0 4px 14px #173b3426;
}

.people-picker .person-chip {
  font: inherit;
}

.people-picker .person-chip > .picker-dropdown > .picker-options {
  /* Account for the pill padding, dropdown padding, and dropdown border. */
  inset-inline-start: calc(-12px - 8px - 1px);
}

.detail-type-dropdown .picker-options {
  inset-inline-start: -20px;
}

#editor-fields .people-picker {
  font-size: 16px;
}

.people-picker .person-chip:has(> .remove-person) {
  gap: 0;
  padding-inline-end: 0;
}

.people-picker .remove-person {
  display: grid;
  place-items: center;
  inline-size: 28px;
  block-size: 28px;
  margin-block: -4px;
}

.people-picker .picker-dropdown > summary.add-person-chip,
.chore-editor .add-chore-row {
  display: grid;
  place-items: center;
  inline-size: 28px;
  block-size: 28px;
  min-height: 0;
  padding: 0;
  border-radius: 50%;
}

[data-edit-card="meals"] .date-display {
  align-items: flex-end;
  text-align: right;
}

.meal-week {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.meal-week th,
.meal-week td {
  border: 1px solid var(--line);
  padding: clamp(2px, 1vw, 8px);
  text-align: center;
}

.meal-week th {
  background: var(--paper);
  font-size: clamp(10px, 2.6vw, 16px);
}

.meal-week th:first-child {
  width: clamp(22px, 7vw, 52px);
}

.meal-tile {
  position: relative;
  display: grid;
  place-items: center;
  width: min(100%, 128px);
  aspect-ratio: 1;
  margin-inline: auto;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: var(--paper);
  color: var(--pine);
}

.meal-tile img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: inherit;
}

.meal-tile + .meal-tile {
  margin-block-start: 4px;
}



.meal-tile-question {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: white;
  font-size: clamp(16px, 4vw, 36px);
  font-weight: 700;
  text-shadow: 0 1px 4px #000, 0 0 2px #000;
}

.meal-tile-name {
  display: -webkit-box;
  overflow: hidden;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: clamp(9px, 2.5vw, 14px);
}

.meal-tile:has(.meal-tile-question) img {
  filter: grayscale(1);
  opacity: 0.3;
}

.meal-week-navigation {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
}

.meal-week-navigation > button {
  justify-self: start;
}

.meal-week-navigation > button:last-child {
  justify-self: end;
}

.meal-week-navigation button[hidden] {
  display: none;
}

.meal-week-navigation button:disabled {
  opacity: 0.4;
}

.meal-slot {
  position: relative;
  width: min(100%, 128px);
  margin-inline: auto;
}

.meal-tile-delete {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 0;
  transform: translate(50%, -50%);
  display: grid;
  place-items: center;
  width: clamp(16px, 5vw, 24px);
  aspect-ratio: 1;
  padding: 0;
  border: 1px solid white;
  border-radius: 50%;
  background: #a7352c;
  color: white;
  line-height: 1;
}

.meal-tile-delete[hidden] {
  display: none;
}

.meal-fields[hidden] {
  display: grid;
  visibility: hidden;
}

.meal-dish-control {
  position: relative;
}

.meal-dish-control input {
  position: relative;
}

.meal-dish-hint {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  color: #687c72;
  font-size: 18px;
  white-space: pre;
}

.meal-dish-hint span {
  visibility: hidden;
}

[data-edit-card="meals"] .rows > li[hidden] {
  display: none;
}

.meal-fields {
  display: grid;
  gap: 8px;
}

[data-today-badge] .date-page {
  min-width: 0;
  width: 1.4em;
  border-radius: 4px;
}

[data-today-badge] .date-page > .date-month {
  min-height: 5px;
  padding: 0;
}

[data-today-badge] .date-page > .date-number {
  padding: 1px 0 2px;
  font-size: 13px;
}

.late-stamp {
  display: inline-block;
  transform: rotate(-24deg);
  border: 1px solid currentColor;
  border-radius: 1px;
  mask-image: radial-gradient(circle at 25% 0, transparent 0.7px, black 1px),
    radial-gradient(circle at 80% 100%, transparent 0.9px, black 1.2px),
    radial-gradient(circle at 0 60%, transparent 0.7px, black 1px);
  mask-composite: intersect;
  padding: 1px 2px;
  color: #a7352c;
  font-size: 8px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.04em;
}

.chore-editor,
.chore-editor-group {
  display: grid;
  gap: 8px;
  font-size: 13px;
}

.chore-editor-group + .chore-editor-group {
  margin-block-start: 8px;
}

.chore-editor-group {
  position: relative;
  padding: 12px 16px;
  border-radius: 13px;
  background: var(--paper);
}

.household-dialog:has(.chore-editor) {
  width: 100%;
  max-width: none;
}

#editor-fields .chore-editor legend,
#editor-fields .chore-editor input,
#editor-fields .chore-editor .people-picker {
  font-size: 13px;
}

.chore-editor-schedule {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.chore-picker { white-space: nowrap; }

.chore-editor .chore-picker-options {
  width: max-content;
  box-sizing: border-box;
  overflow-y: auto;
}

.chore-description-box {
  position: relative;
  --description-legend-height: 16px;
}

#editor-fields .chore-description-box fieldset {
  margin: 0;
}

#editor-fields .chore-description-box legend {
  line-height: var(--description-legend-height);
}

.chore-editor .add-chore-row {
  margin-inline: auto;
}

.chore-editor-group > .meal-tile-delete {
  --chore-delete-size: clamp(16px, 5vw, 24px);
  height: var(--chore-delete-size);
  transform: translate(calc(var(--chore-delete-size) / 2), -50%);
}

.chore-editor-group > .chore-delete-confirm {
  width: max-content;
  padding-inline: 8px;
  white-space: nowrap;
  border-radius: 999px;
}

.chore-fields:not([hidden]) {
  display: grid;
  gap: 8px;
}

.chore-summary {
  border: 0;
  padding: 0;
  background: transparent;
  text-align: start;
  overflow-wrap: anywhere;
}

.editor-actions[hidden] {
  display: none;
}

.chore-card-actions {
  margin-inline: 2px;
  font-size: inherit;
  flex-wrap: wrap;
}

.chore-card-actions .chore-delete-button {
  background: white;
  margin-inline-end: auto;
  color: #a7352c;
  transition: background-color 150ms, color 150ms;
}

.chore-card-actions .chore-delete-confirm {
  background: #a7352c;
  color: white;
}

.editor-actions button:disabled {
  opacity: 0.45;
  cursor: default;
}

.household-dialog:has(.chore-editor) :is(button, legend, input, summary, .person-chip) {
  font-weight: 400;
}

.editor-toggle-card {
  gap: 0;
  padding: 0;
}

.editor-toggle-card > .chore-summary {
  padding: 12px 16px;
  border-radius: inherit;
}

.editor-toggle-card > .chore-fields {
  padding: 0 16px 12px;
}

#editor-form {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  mask-image: linear-gradient(to bottom, transparent, black 12px);
  padding: 0 18px max(20px, env(safe-area-inset-bottom));
}

.editor-drag-handle {
  flex: 0 0 24px;
  display: grid;
  place-items: center;
  width: 100%;
  height: 24px;
  padding: 0;
  border: 0;
  background: white;
  cursor: grab;
  touch-action: none;
}

.editor-drag-handle:active {
  cursor: grabbing;
}

.editor-drag-handle::before {
  content: "";
  width: 36px;
  height: 4px;
  border-radius: 999px;
  background: var(--muted);
}

html:has(#household-editor[open]) {
  overflow: hidden;
}

.chore-editor .special-date-day-options {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
  inset-inline-start: auto;
  inset-inline-end: -8px;
}

.special-date-day-options > .person-chip {
  width: 100%;
  justify-content: center;
  padding-inline: 5px;
}

.chore-editor .special-date-month-options {
  grid-template-columns: repeat(3, var(--month-chip-width));
  gap: 4px;
}

.special-date-month-picker {
  --month-chip-width: 86px;
}

.special-date-month-picker .person-chip {
  box-sizing: border-box;
  width: var(--month-chip-width);
  justify-content: center;
}

.people-picker .picker-options > .person-chip[aria-pressed="false"] {
  background: #e4eee6;
}

.people-picker .special-date-options > .person-chip[aria-current="date"] {
  box-shadow: inset 0 0 0 1px var(--pine);
}

.people-picker .special-date-options > .person-chip[aria-current="date"][aria-pressed="false"] {
  background: white;
}

.chore-editor .special-date-year-options {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
  overscroll-behavior: contain;
}

.special-date-year-options > .person-chip {
  width: 100%;
  justify-content: center;
  padding-inline: 6px;
}

.reorderable-tab {
  position: relative;
  grid-template-columns: minmax(0, 1fr);
}

.tab-card-handle {
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-touch-callout: none;
}

.tab-card-dragging {
  overflow-anchor: none;
}

.tab-card-lifted {
  display: none;
}

.tab-card-preview {
  position: fixed;
  z-index: 20;
  pointer-events: none;
  box-shadow: 0 8px 24px #173b3430;
}

.tab-card-gap {
  border: 1px dashed var(--line);
  border-radius: 13px;
}

.rail nav,
#view {
  -webkit-user-select: none;
  user-select: none;
}

#view :is(input, textarea, [contenteditable="true"]) {
  -webkit-user-select: text;
  user-select: text;
}
