/* Calendar and calendar-owned sheets. Keep this file as the single source of truth. */

.sheet,.center-sheet .sheet{
  border:1px solid var(--glass-edge);
  background:linear-gradient(145deg,var(--glass-highlight),rgba(255,255,255,.015) 46%),var(--panel);
  -webkit-backdrop-filter:saturate(112%) blur(var(--glass-blur));
  backdrop-filter:saturate(112%) blur(var(--glass-blur));
  box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight);
  color:var(--ink);
}
.center-sheet .sheet{box-shadow:0 12px 34px rgba(35,24,31,.12),inset 0 1px 0 var(--glass-highlight)}
:root[data-theme="ink-wash"] .sheet{--ink:#0b1c39;--muted:#1e3e70;--line:rgba(13,43,85,.24);--accent:#234e96;--accent-deep:#133977;color:#0b1c39}
:root[data-theme="wine-mist"] .sheet{--ink:#2b0a10;--muted:#5a1c28;--line:rgba(80,18,32,.24);--accent:#821f39;--accent-deep:#5a1124;color:#2b0a10}
.sheet textarea,.sheet input,.sheet select{background:rgba(var(--glass-rgb),calc(var(--glass-alpha) + .08));color:var(--ink)}
.day-summary{grid-template-columns:repeat(2,1fr)}
.day-fold{padding:0;border-top:1px solid var(--line)}
.day-fold summary{display:flex;align-items:center;gap:8px;min-height:49px;padding:13px 2px;cursor:pointer;list-style:none;color:var(--ink);font:500 1rem Georgia,"Songti SC",serif}
.day-fold summary::-webkit-details-marker{display:none}
.day-fold summary small{margin-left:auto;color:var(--muted);font:400 .72rem sans-serif}
.day-fold summary::after{content:"＋";margin-left:auto;color:var(--muted);font:300 1.05rem/1 sans-serif}
.day-fold summary:has(small)::after{margin-left:0}
.day-fold[open] summary::after{content:"－"}
.day-section-body{padding:0 2px 15px}
.day-diary{margin:0;color:var(--ink)}
.add-event .day-section-body{display:grid;gap:8px}

.app:has(.calendar-page) .app-header{justify-content:space-between;text-align:left}
.app:has(.calendar-page) .eyebrow{display:block;font-family:"Bodoni 72","Didot",Georgia,serif;font-size:.82rem;font-style:italic;font-weight:300;line-height:1;letter-spacing:.045em}
.app:has(.calendar-page) .app-header h1{margin-top:6px;font-family:"Songti SC","STSong",Georgia,serif;font-size:clamp(2rem,8vw,2.55rem);font-style:normal;font-weight:400;line-height:1.02;letter-spacing:-.035em}

.calendar-page{--calendar-progress:0;--calendar-fold:0px;position:relative;display:grid;gap:18px}
.calendar-stage{position:relative;z-index:2}
.calendar-card{position:relative;padding:12px 14px 11px}
.calendar-card .month-nav button{height:34px}
.calendar-card .month-title{cursor:pointer;user-select:none;font-size:1.23rem}
.calendar-card .weekdays{margin:1px 0;font-size:.68rem}
.calendar-card .day-cell{min-height:32px;border-radius:11px}
.calendar-card .day-number-small{font-size:.85rem}
.calendar-card .day-dots{min-height:5px;gap:2px}
.calendar-tools{display:flex;align-items:center;justify-content:space-between;margin-top:5px;padding-top:7px;border-top:1px solid var(--line)}
.legend-symbols,.calendar-add{border:1px solid var(--glass-edge);background:var(--panel);color:var(--ink);box-shadow:inset 0 1px 0 var(--glass-highlight)}
.legend-symbols{display:flex;align-items:center;gap:10px;min-height:32px;padding:6px 11px;border-radius:18px}
.legend-symbols .mark{width:7px;height:7px;background:var(--accent);opacity:.58}
.legend-symbols .mark.ovulation{background:transparent;border-color:var(--accent);opacity:.66}
.legend-symbols .mark.intimacy{background:var(--accent-deep);opacity:.5}
.legend-symbols .mark.argument{background:var(--muted);opacity:.52}
.legend-symbols .mark.schedule{background:var(--accent);opacity:.36}
.calendar-add{width:34px;height:34px;display:grid;place-items:center;border-radius:50%}
.calendar-add svg{width:17px;height:17px}
.calendar-legend-pop{display:flex;flex-wrap:wrap;gap:8px 13px;margin-top:10px;padding:10px 12px;border:1px solid var(--glass-edge);border-radius:16px;background:var(--panel);color:var(--muted);font-size:.68rem}
.calendar-legend-pop span{display:flex;align-items:center;gap:5px}
.calendar-selected-compact{display:none;padding:7px 2px 1px;text-align:center;color:var(--muted);font:italic .85rem Georgia,"Songti SC",serif}
.calendar-card.measure-compact{padding-top:10px}
.calendar-card.measure-compact .calendar-month-body{display:none}
.calendar-card.measure-compact .calendar-selected-compact{display:block}
.calendar-card.measure-compact .calendar-tools{margin-top:7px;padding-top:8px}

/* Life and work stay equally tall while each board keeps its own horizontal lanes. */
.todo-boards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.todo-board{min-width:0;height:360px;padding:18px 12px}
.todo-board .todo-lanes{height:215px}
.todo-board .todo-lane{height:215px;max-height:215px}
.todo-board .todo-row{grid-template-columns:25px minmax(0,1fr) 23px;gap:5px}
.todo-board .todo-text{overflow-wrap:anywhere}

.calendar-page.fold-ready{padding-bottom:var(--calendar-extra)}
.calendar-page.fold-ready .calendar-stage{height:var(--calendar-compact)}
.calendar-page.fold-ready .calendar-card{
  position:absolute;inset:0 0 auto;height:var(--calendar-full);
  clip-path:inset(0 0 var(--calendar-fold) 0 round var(--radius));
  will-change:clip-path;
}
.calendar-page.fold-ready .calendar-month-body{opacity:calc(1 - var(--calendar-progress));pointer-events:auto}
.calendar-page.fold-ready .calendar-selected-compact{display:block;position:absolute;z-index:1;top:47px;left:14px;right:14px;opacity:var(--calendar-progress);pointer-events:none}
.calendar-page.fold-ready .calendar-tools{transform:translateY(calc(-1 * var(--calendar-fold)));will-change:transform}
.calendar-page.fold-ready .todo-boards{transform:translateY(calc(var(--calendar-extra) - var(--calendar-fold)));will-change:transform}
.calendar-page.fold-initializing .calendar-card,.calendar-page.fold-initializing .calendar-month-body,.calendar-page.fold-initializing .calendar-selected-compact,.calendar-page.fold-initializing .calendar-tools,.calendar-page.fold-initializing .todo-boards{transition:none!important}

.day-cell.active{background:rgba(var(--glass-rgb),calc(var(--glass-alpha) - .04));color:var(--ink);outline:1.5px solid var(--accent);box-shadow:inset 0 1px 0 var(--glass-highlight)}
.day-cell.today:not(.active){outline:0}
.day-cell.today:not(.active) .day-number-small{color:var(--accent-deep);font-weight:600}
.event-editor{display:grid;gap:9px}
.event-editor h2{margin:4px 0 8px}
.event-editor .check-line{margin:5px 2px}

:root{view-transition-name:none}
@media(prefers-reduced-motion:reduce){.calendar-page.fold-ready .calendar-card,.calendar-page.fold-ready .calendar-tools,.calendar-page.fold-ready .todo-boards{will-change:auto}}
