*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0;font-family:Jua,system-ui,sans-serif;color:var(--ink);background:var(--paper)}
button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:11px;background:var(--panel,#fff);color:var(--green)}button:hover{background:var(--green-soft);border-color:var(--green)}button:disabled{opacity:.5;cursor:default}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.primary{background:var(--green);border-color:var(--green);color:white}.primary:hover{background:var(--green-dark);color:white}.danger{color:#913c32;background:#fbe7e2}
h2,h3,p{margin:0}h2{font-size:1.55rem;font-weight:400;color:var(--green-dark)}.subtitle:empty{display:none}
.planner-toolbar,.planner-actions,.month-toolbar,.month-step,.section-head,.dialog-actions{display:flex;align-items:center;gap:10px}
.planner-toolbar{flex-wrap:wrap;margin:20px 0 16px}.planner-toolbar #saveStatus{margin-left:auto;font-size:.9rem;color:var(--muted)}
.planner-layout{display:block}.panel{background:var(--panel,#fff);border:1px solid var(--line);border-radius:20px;padding:20px}
.month-toolbar{justify-content:space-between;margin-bottom:20px;flex-wrap:wrap}.month-step{gap:16px}.month-step h2{font-size:1.9rem;font-variant-numeric:tabular-nums}.month-step button{font-size:1.75rem;width:44px;padding:0}
.weekdays,.week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{padding-bottom:12px;color:var(--muted);text-align:center}.weekdays span:first-child{color:#b04d3c}.weekdays span:last-child{color:#2f6394}
.calendar-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:12px;overflow:hidden}
.calendar-week{position:relative}.calendar-day{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;min-height:max(clamp(200px,22vh,260px),calc(98px + var(--range-space,0px)));padding:9px 7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel,#fff)}
.calendar-day.outside{background:var(--paper);color:var(--muted)}.calendar-day.selected{background:var(--green-soft);box-shadow:inset 0 0 0 2px var(--green)}
.day-select{min-height:30px;height:30px;width:32px;align-self:flex-start;border:0;border-radius:50%;padding:0;background:transparent;color:inherit;font-size:1.05rem}
.calendar-day.today .day-select{background:var(--green);color:#fff}.calendar-day.sunday:not(.today) .day-select{color:#b04d3c}.calendar-day.saturday:not(.today) .day-select{color:#2f6394}
.day-previews{flex:1;min-height:0;padding-top:var(--range-space,0px)}.day-entry{margin-top:auto;display:flex;align-items:center;gap:5px;z-index:1}.day-entry .quick-entry{flex:1;width:0;margin-top:0}.quick-add{flex:0 0 34px;width:34px;min-height:34px;padding:3px;border-radius:6px;background:var(--green-soft);font-size:1.2rem}.calendar-day .quick-entry{margin-top:auto;min-height:32px;padding:5px 6px;border:1px dashed var(--line);border-radius:6px;background:var(--panel,#fff);font-size:.875rem}.quick-entry::placeholder{color:var(--muted)}
.week-spans{position:absolute;top:47px;left:0;right:0;display:grid;align-content:start;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:32px;gap:4px 0;pointer-events:none}
.week-spans .range-bar{min-width:0;min-height:32px;height:32px;margin:0 4px;padding:5px 8px;border:1px solid var(--event-border);border-radius:7px;background:var(--event-bg);color:var(--event-ink);text-align:left;font-size:.95rem;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;pointer-events:auto}
.week-spans .range-bar.continues-left{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.week-spans .range-bar.continues-right{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}
.week-spans .range-bar:hover{filter:brightness(.95)}.week-spans .range-bar.done{opacity:.7;text-decoration:line-through}
.calendar-help,.privacy-note,.help{font-family:system-ui,sans-serif;font-size:.9rem;line-height:1.65;color:var(--muted)}.calendar-help{margin-top:14px}.privacy-note{margin:18px 0}
.section-head{justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.eyebrow{font-size:.9rem;color:var(--muted);margin-bottom:5px}.count-pill{padding:3px 9px;border-radius:999px;background:var(--green-soft);font-size:1rem;color:var(--green)}
.upcoming-panel{margin-top:20px}.upcoming-list{display:flex;flex-direction:column}.schedule-row{display:flex;align-items:center;gap:14px;padding:15px 4px;border-bottom:1px solid var(--line);min-width:0}.schedule-row:last-child{border-bottom:0}
.schedule-complete{width:76px;min-height:38px;flex:0 0 76px;padding:6px 8px;font-size:.9rem}.schedule-complete[aria-pressed=true]{background:var(--green-soft);color:var(--green-dark)}
.schedule-when{display:flex;align-items:center;gap:12px;flex:0 0 280px}.schedule-countdown{min-width:64px;color:var(--green);font-size:1rem}.schedule-countdown.ongoing{color:#9b5f12}.schedule-date{color:var(--muted);font-size:.9rem;line-height:1.5;font-variant-numeric:tabular-nums}
.schedule-content{display:flex;align-items:baseline;flex:1;min-width:0;gap:14px;flex-wrap:wrap}.entry-title{font-size:1.1rem;line-height:1.5;overflow-wrap:anywhere;font-weight:400}.entry-note{font:400 .95rem/1.6 system-ui,sans-serif;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--muted);flex:1;min-width:120px}
.entry-edit{font-size:.875rem;padding:6px 10px;min-height:36px;flex-shrink:0}.schedule-row.completed .schedule-content,.schedule-row.completed .schedule-date{text-decoration:line-through;opacity:.65}
.empty{border:1px dashed var(--line);border-radius:12px;padding:25px 14px;color:var(--muted);font:400 1rem/1.6 system-ui,sans-serif;text-align:center}
.notice{font:400 .95rem/1.6 system-ui,sans-serif;color:#8a3d2d;background:#fff0d5;border-radius:12px;padding:12px 15px;margin-bottom:14px;white-space:pre-wrap}
dialog{width:min(600px,calc(100% - 24px));max-height:90dvh;overflow:auto;border:0;border-radius:20px;background:var(--panel,#fff);color:var(--ink);padding:24px;box-shadow:0 20px 75px #153c3540}dialog::backdrop{background:rgba(var(--accent-deep-rgb),.6)}
form{display:grid;gap:16px}fieldset{border:0;padding:0;margin:0;display:grid;gap:16px;min-width:0}label{display:grid;gap:7px;font-size:1rem}.optional{font-size:.875rem;color:var(--muted)}
input:not([type=checkbox]):not([type=radio]),textarea{width:100%;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel,#fff);color:var(--ink)}textarea{font-family:system-ui,sans-serif;line-height:1.6;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check-label{display:flex;gap:10px;align-items:center}.check-label input{width:23px;height:23px;accent-color:var(--green)}.upcoming-filter{font-size:.9rem;color:var(--muted)}
.dialog-actions{justify-content:flex-end;flex-wrap:wrap}.dialog-actions .danger{margin-right:auto}dialog .section-head{margin-bottom:0}
@media(max-width:850px){.schedule-when{flex-basis:220px}.schedule-content{display:block}.entry-note{margin-top:3px}}
@media(max-width:600px){.panel{padding:12px}.planner-toolbar #saveStatus{order:3;width:100%;margin:0}.planner-toolbar #refreshPlanner{margin-left:auto}.month-step{gap:6px}.month-step h2{font-size:1.5rem}.calendar-day{padding:5px 2px;gap:4px}.calendar-day .quick-entry{padding:5px 2px}.week-spans{top:40px}.week-spans .range-bar{margin:0 2px;padding:5px 4px;font-size:.875rem}.form-row{grid-template-columns:1fr}dialog{padding:18px}.schedule-row{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:7px 10px}.schedule-when{grid-column:2;grid-row:1;flex-basis:auto}.schedule-content{grid-column:2;grid-row:2}.schedule-complete{grid-column:1;grid-row:1/3}.entry-edit{grid-column:3;grid-row:1/3}}
@media print{.site-nav,.planner-toolbar,.privacy-note,.day-entry,.schedule-complete,.entry-edit{display:none!important}.calendar-grid{overflow:visible}.week-spans .range-bar{-webkit-print-color-adjust:exact;print-color-adjust:exact}.calendar-week,.schedule-row{break-inside:avoid}dialog{display:none}}

.category-settings{margin-bottom:14px;padding:14px 18px}.category-toolbar,.category-color-fields{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.category-toolbar label,.category-color-fields label{display:flex;align-items:center;gap:8px}.category-color-fields{padding:14px 0}.category-color-fields input[type=color]{width:64px;min-height:44px;padding:4px}.category-toolbar summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.category-badge{display:inline-block;font-size:.8rem;border-radius:7px;padding:4px 8px;background:var(--event-bg,var(--green-soft));color:var(--event-ink,var(--green-dark));margin-right:6px}.category-color-fields+p{font-size:.85rem}.color-picker>label{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0 12px 12px 0}.color-picker>label input{width:auto}.color-picker input[type=color]{width:56px;padding:2px}
[data-color=sky]{--event-bg:#dcecff;--event-border:#a9caea;--event-ink:#264c70}
[data-color=lilac]{--event-bg:#ece3fb;--event-border:#c9b5e7;--event-ink:#584179}
[data-color=rose]{--event-bg:#f9e0e8;--event-border:#e6b4c6;--event-ink:#7b4055}
[data-color=peach]{--event-bg:#ffe7d6;--event-border:#ebc09d;--event-ink:#7b4b2a}
[data-color=lemon]{--event-bg:#fbf0c7;--event-border:#e4ce83;--event-ink:#695419}
[data-color=mint]{--event-bg:#dff1e8;--event-border:#aed5c1;--event-ink:#315b48}
.color-picker{display:block}.color-picker legend{margin-bottom:10px}.color-choices{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.color-choice{display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:8px 4px;border:2px solid var(--event-border);border-radius:10px;background:var(--event-bg);color:var(--event-ink);cursor:pointer;font-size:.9rem}
.color-choice input{accent-color:var(--event-ink);margin:0;flex-shrink:0;width:16px;height:16px;min-height:16px;padding:0}.color-choice:has(input:checked){outline:2px solid var(--green);outline-offset:2px}.color-choice:focus-within{outline:3px solid var(--yellow);outline-offset:2px}
.schedule-row{border-left:5px solid var(--event-border);padding-left:12px;margin-bottom:7px}.schedule-row .schedule-complete{background:var(--event-bg);border-color:var(--event-border);color:var(--event-ink)}
html[data-ui-mode=dark] .week-spans .range-bar[data-color],html[data-ui-mode=dark] .schedule-row[data-color] .schedule-complete{background-color:var(--event-bg)!important;border-color:var(--event-border)!important;color:var(--event-ink)!important}
@media(max-width:600px){.color-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-add{font-size:1.2rem;white-space:nowrap}}
@media print{.calendar-week{position:relative;min-height:110px;padding:47px 0 10px}.week-days{position:absolute;inset:0}.calendar-day{height:100%}.week-spans{position:relative;top:auto;bottom:auto;max-height:none;overflow:visible;margin:0;z-index:1}}

.calendar-viewport{overflow-x:auto}.calendar-viewport>.weekdays,.calendar-viewport>.calendar-grid{min-width:840px}
.calendar-grid .quick-add{background:var(--event-bg);border-color:var(--event-border);color:var(--event-ink)}.calendar-grid .quick-add:hover:not(:disabled){filter:brightness(.95)}
html[data-ui-mode="dark"] .calendar-grid .quick-add{background-color:var(--event-bg)!important;border-color:var(--event-border)!important;color:var(--event-ink)!important}

.upcoming-mini{padding:12px 16px;margin-bottom:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.upcoming-mini h2{font-size:1rem;margin:0 0 8px;color:var(--green)}.upcoming-mini h2 small{font-size:.8rem;color:var(--muted);margin-left:6px}.upcoming-mini-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.upcoming-mini-list>p{grid-column:1/-1;margin:2px 0;font-size:.875rem}.upcoming-mini-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 7px;text-align:left;padding:8px 10px;min-height:54px;border:1px solid var(--event-border);background:var(--event-bg);color:var(--event-ink);border-radius:9px}.upcoming-mini-item strong{font-size:.85rem}.upcoming-mini-item span{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upcoming-mini-item small{grid-column:1/-1;font-size:.75rem;opacity:.85}.upcoming-mini-item:hover{filter:brightness(.97)}
.entry-extra-colors{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:16px}.entry-extra-colors>label{display:flex;align-items:center;gap:8px;min-height:44px}.entry-extra-colors input[type=radio]{width:18px;height:18px;min-height:18px;margin:0}.entry-extra-colors input[type=color]{width:58px;min-height:44px}#entryCategoryColorPreview{width:28px;height:28px;border:1px solid #8a9893;border-radius:7px;display:inline-block}#entryCategoryColorChoice:has(input:disabled){opacity:.5}
.month-toolbar{flex-wrap:wrap;gap:12px}.category-toolbar-compact{gap:10px;margin-left:auto;font-size:.8rem}.category-toolbar-compact label{gap:6px}.category-toolbar-compact select{width:auto;min-width:88px;min-height:36px;padding:5px 8px;font:inherit}.category-toolbar-compact .category-badge{padding:4px 6px;margin-right:4px;font-size:.72rem}.category-toolbar-compact details{position:relative}.category-toolbar-compact summary{min-height:36px;padding:4px 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:.8rem}.category-color-popup{position:absolute;right:0;top:calc(100% + 8px);width:300px;max-width:80vw;z-index:30;padding:14px;background:var(--panel,#fff);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #153e2926}.category-color-popup .category-color-fields{gap:10px;padding:0;display:grid;grid-template-columns:repeat(3,1fr)}.category-color-popup .category-color-fields label{display:grid;justify-items:start}.category-color-popup button{grid-column:1/-1;min-height:38px;padding:6px}.category-color-popup p{margin:10px 0 0;font-size:.75rem;line-height:1.6}@media(max-width:760px){.category-toolbar-compact{order:3;width:100%;margin:0;justify-content:center}}
.month-right-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto}.month-right-controls .category-toolbar-compact{margin-left:0;order:0;width:auto;justify-content:flex-end}.month-right-controls #goToday{flex-shrink:0}@media(max-width:760px){.month-right-controls{flex-wrap:wrap;max-width:100%}}
