:root{--press-distance:2px;--feedback-speed:150ms;--feedback-ease:cubic-bezier(.2,.8,.2,1)}
.feedback-controls{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}.feedback-controls button{font-size:13px;padding:7px 12px;background:var(--soft);min-height:40px}.feedback-controls button[aria-pressed=true]{color:var(--accent);background:var(--tint)}
button{touch-action:manipulation;transition:background 100ms,color 100ms;transform-origin:center}
button:active{transform:none}
html[data-tool-feedback=on] button.is-depressed{filter:brightness(.93)}
/* The JS spring owns the transform. State and input never wait for its return. */
.capture form{position:relative}.capture form.capture-confirmed{outline:2px solid var(--accent);outline-offset:-2px}
.capture form>span{display:inline-block;transform-origin:center}
.inbox-item{transform-origin:left center}
.focus.is-started .duration::before{border-radius:0;transition:border-radius 100ms}
.event.completed .event-body{background:var(--tint)}
.event.completed h3{color:var(--ink);padding-right:20px}
.event.completed .event-body::after{content:'';position:absolute;right:14px;top:18px;width:10px;height:10px;background:var(--accent)}
#toast[data-feedback=complete]::before{content:'';display:inline-block;vertical-align:middle;width:10px;height:10px;margin-right:10px;background:#b8e7c5}
@media(max-width:600px){.feedback-controls{margin:0;width:100%}.feedback-controls button{flex:1}}
@media(prefers-reduced-motion:reduce){button,.capture form>span,.duration::before{transition:none!important}}
.action-arrow{display:inline-block;font:600 16px/1 var(--font)!important;transform:none!important}
.change-plan{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;background:var(--soft);margin:-6px 0 20px;text-align:left;color:var(--accent);font-weight:600}
.plan-error{color:var(--red);font-size:13px}.plan-error:empty{display:none}
#plan-time-form input{min-width:0;width:100%;max-width:100%;box-sizing:border-box}
#plan-time-form .modal-actions{flex-wrap:wrap}
.detail-title,.detail-title:hover{display:block;min-height:0;padding:0;width:100%;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;text-align:left;white-space:normal;font-weight:inherit}
[data-detail]{cursor:pointer}.detail-title:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.week-event{display:block;width:100%;padding:12px 8px;background:var(--soft);font-size:13px;text-align:left;line-height:1.65;min-width:0;overflow-wrap:anywhere}
.week-event.work{background:var(--tint);color:var(--accent)}.week-event:hover{background:#d9e4d9}
.week-events .week-event{margin:8px 0}.event-detail>h3{font-size:22px}.event-detail>h3:nth-of-type(2){font-size:16px;margin-top:24px}
.detail-when{font-weight:600;margin:14px 0 6px}.detail-note{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 22px;padding:16px;background:var(--paper);font-size:16px}.note-empty{color:var(--muted);font-size:13px}
.detail-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.field textarea{display:block;resize:vertical;max-width:100%;width:100%;padding:12px;border:2px solid var(--soft);background:var(--paper);font:inherit;color:inherit;box-sizing:border-box}
.detail-time-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-time-fields .field{min-width:0}.detail-time-fields input{min-width:0;max-width:100%}
.weekday-picker{margin:22px 0;padding:12px;border:2px solid var(--soft);display:flex;flex-wrap:wrap;gap:10px}.weekday-picker label,.overnight-field{display:flex;align-items:center;gap:6px;min-height:44px}.weekday-picker input,.overnight-field input{accent-color:var(--accent);width:18px;height:18px}
@media(max-width:900px){.week-events .week-event{margin:0}}
@media(max-width:600px){.week-event{padding:10px 8px}.detail-actions>button{flex:1}.detail-time-fields{gap:8px}#detail-time-form .modal-actions{flex-wrap:wrap}}
.review .detail-title,.review .detail-title:hover{background:transparent;padding:0;color:inherit;font:inherit;display:block;text-align:left;min-height:0}
@property --hold-progress{syntax:'<number>';inherits:false;initial-value:0}
#quick-save{position:relative;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#quick-save::after{content:'';position:absolute;left:0;bottom:0;right:0;height:4px;background:currentColor;transform:scaleX(var(--hold-progress));transform-origin:left;pointer-events:none;opacity:.65}
.capture-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;font-size:13px;color:var(--muted)}.capture-tools button{background:transparent;padding:6px 0;min-height:40px;color:var(--accent)}
#capture-detail-form input,#capture-detail-form textarea{min-width:0;max-width:100%;box-sizing:border-box}#capture-detail-form .modal-actions{flex-wrap:wrap}
@media(max-width:600px){#capture-shortcuts{font-size:13px}.capture-tools{gap:8px}}
