/* Product-neutral view layer for the accepted calendar and direct duration choice. */
.task-time-picker[hidden],.task-time-picker [hidden]{display:none!important}
.task-time-picker{position:fixed;inset:0;z-index:10030;display:grid;place-items:center;box-sizing:border-box;padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));background:rgba(0,0,0,.28);color:var(--ink,#272624);overscroll-behavior:contain}
:root[data-app-theme="classic"] .task-time-picker{--study-field:var(--bg)}
.task-time-picker *{box-sizing:border-box}
.task-time-picker-box{display:flex;flex-direction:column;gap:12px;min-width:0;width:min(620px,100%);max-height:calc(100dvh - max(24px,env(safe-area-inset-top,0px) + env(safe-area-inset-bottom,0px)));overflow:auto;overscroll-behavior:contain;padding:18px;border:1px solid var(--line,#d4d1cb);border-radius:22px;background:var(--panel,#fff);box-shadow:var(--card-shadow,0 8px 28px #0003)}
.task-time-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}
.task-time-picker-head h2{margin:0;min-width:0;color:var(--ink,#272624);font:750 1.08rem/1.3 system-ui}
.task-time-picker button{font-family:inherit;cursor:pointer}
.task-time-picker-close{display:grid;place-items:center;flex:0 0 36px;width:36px;min-height:36px;padding:0;border:1px solid var(--line,#d4d1cb);border-radius:50%;background:var(--panel,#fff);color:var(--ink,#272624);font-size:24px;line-height:1}
.task-time-picker-task{margin:0;flex:none;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted,#69645d);font-size:.86rem;line-height:1.35}
.task-time-picker-scroll{flex:1 1 320px;min-height:150px;max-height:min(50dvh,400px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--line,#d4d1cb);border-radius:14px;background:var(--study-field,var(--panel,#fff));touch-action:pan-y}
.task-time-picker-track{--picker-hour-height:64px;position:relative;height:calc(24 * var(--picker-hour-height) + 24px);min-width:0;margin:0 8px;outline-offset:-2px}
.task-time-picker-hour{position:absolute;left:0;right:0;height:var(--picker-hour-height);border-top:1px solid var(--line,#d4d1cb);pointer-events:none}
.task-time-picker-hour time{position:absolute;left:0;top:0;transform:translateY(-50%);padding-right:5px;background:var(--study-field,var(--panel,#fff));color:var(--muted,#69645d);font:500 .76rem/20px system-ui;font-variant-numeric:tabular-nums}
.task-time-picker-existing{position:absolute;left:52px;right:5px;transform:translateY(-50%);min-width:0;max-width:calc(100% - 57px);padding:1px 5px 1px 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:2px solid var(--line,#d4d1cb);background:var(--panel,#fff);color:var(--ink,#272624);font-size:.76rem;line-height:22px;pointer-events:none}
.task-time-picker-selection,.task-time-picker-preview{position:absolute;left:52px;right:0;height:0;z-index:2;border-top:2px solid var(--accent,#527b73);pointer-events:none}
.task-time-picker-line-title{position:absolute;left:0;right:82px;top:0;transform:translateY(-50%);min-width:0;padding:2px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--panel,#fff);color:var(--ink,#272624);font-size:.76rem;line-height:22px}
.task-time-picker-line-clock{position:absolute;right:2px;top:0;transform:translateY(-50%);min-width:70px;min-height:38px;padding:8px 9px;border:1px solid var(--accent,#527b73);border-radius:8px;background:var(--accent-soft,#e7f1ef);color:var(--ink,#272624);text-align:center;font:750 .86rem/20px system-ui;font-variant-numeric:tabular-nums;pointer-events:auto;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.task-time-picker-line-clock:active{cursor:grabbing}
.task-time-picker-preview{border-top-style:dashed;border-top-width:1px;z-index:3;opacity:.85}
.task-time-picker-preview .task-time-picker-line-clock{min-height:30px;padding:4px 8px;background:var(--panel,#fff);pointer-events:none}
.task-time-picker-duration{display:grid;gap:8px;flex:none;min-width:0}
.task-time-picker-duration-label{color:var(--ink);font-size:.9rem;line-height:1.4}
.task-time-picker .daily-estimate-row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;margin:0}
.task-time-picker .daily-estimate-chip{flex:0 0 auto;font-size:.9rem;min-width:32px;padding-inline:10px}
.task-time-picker .duration-custom{display:block;flex:0 1 88px;min-width:60px;max-width:88px;width:88px;font:inherit;font-size:.9rem;font-weight:760;line-height:1.3;text-align:center;padding-inline:8px}
.task-time-picker .duration-custom::-webkit-inner-spin-button{appearance:none;margin:0}
.task-time-picker .duration-custom{-moz-appearance:textfield}
.task-time-picker-clear{min-height:36px;padding:4px 0;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:.82rem;line-height:1.3;text-align:left}
.task-time-picker .duration-custom::placeholder{font-weight:400}
.duration-question-short{display:none}
.task-time-picker-error{margin:0;min-width:0;color:var(--red,#a3342c);font-size:.82rem;line-height:1.35}
.task-time-picker-error:empty{display:none}
.task-time-picker-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}
.task-time-picker-apply{margin-left:auto;min-height:38px;padding:8px 14px;border:1px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--panel);font:inherit;font-weight:650;white-space:nowrap}
.task-time-picker :is(button,input,[tabindex]):focus-visible{outline:2px solid var(--accent,#527b73);outline-offset:3px}
.task-time-picker button:hover{filter:brightness(.97)}
.task-time-picker[data-picker-mode=duration]{display:block;padding:max(8px,env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) max(8px,env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));background:transparent}
.task-time-picker[data-picker-mode=duration] .task-time-picker-box{position:fixed;width:min(430px,calc(100vw - 16px));max-height:calc(100dvh - 16px);gap:10px;padding:14px;border-radius:16px}
.task-time-picker[data-picker-mode=duration] .task-time-picker-head h2{font-size:.98rem}
.task-time-picker[data-picker-mode=duration] .task-time-picker-duration-label{display:none}
@media(max-width:560px){
 .task-time-picker{padding:max(6px,env(safe-area-inset-top,0px)) max(6px,env(safe-area-inset-right,0px)) max(6px,env(safe-area-inset-bottom,0px)) max(6px,env(safe-area-inset-left,0px))}
 .task-time-picker-box{gap:10px;padding:13px;border-radius:18px;max-height:calc(100dvh - max(12px,env(safe-area-inset-top,0px) + env(safe-area-inset-bottom,0px)))}
 .task-time-picker-scroll{flex-basis:280px;min-height:140px;max-height:46dvh}
 .duration-question-wide{display:none}
 .duration-question-short{display:inline}
 .task-time-picker .daily-estimate-row{gap:6px}
 .task-time-picker .daily-estimate-chip{padding-inline:9px}
 .task-time-picker-line-clock{min-height:40px;padding-block:9px}
}

/* V288: one deliberate focus ring, persistent action beside the minute choices. */
.task-time-picker .duration-custom:is(.is-selected,:focus,:focus-visible){outline:none;outline-offset:0;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.task-time-picker[data-picker-mode=duration] .daily-estimate-row{display:grid;grid-template-columns:repeat(4,minmax(30px,1fr)) minmax(60px,1.5fr) auto;gap:6px}
.task-time-picker[data-picker-mode=duration] .duration-custom{width:100%;max-width:88px;min-width:0}
.task-time-picker[data-picker-mode=duration] .task-time-picker-apply{min-height:32px;height:32px;padding:4px 10px;font-size:.86rem;line-height:1.3}
.task-time-picker[data-picker-mode=duration] .task-time-picker-box{box-shadow:0 4px 18px #0002,0 16px 48px #0002}
@media(max-width:380px){.task-time-picker[data-picker-mode=duration] .daily-estimate-row{grid-template-columns:repeat(4,minmax(30px,1fr)) minmax(60px,1.5fr)}.task-time-picker[data-picker-mode=duration] .task-time-picker-apply{grid-column:1/-1;justify-self:end}}

/* V289: separate commit row and breathing room without changing presets. */
.task-time-picker[data-picker-mode=duration] .task-time-picker-box{padding-block:22px;gap:18px}
.task-time-picker[data-picker-mode=duration] .daily-estimate-row{row-gap:14px}
.task-time-picker[data-picker-mode=duration] .task-time-picker-apply{grid-column:1/-1;justify-self:end;min-height:38px;height:auto}

@media (max-width:900px), (orientation:landscape) and (hover:none) and (pointer:coarse) and (max-height:500px){.task-time-picker .duration-custom,.daily-estimate-row .duration-custom{font-size:16px}}
