/* Mobile is calendar-first. Desktop workspace columns remain in desktop.css. */
.hint-touch { display:none; }
@media (max-width:69.99rem), (pointer:coarse) {
 .page { padding:8px 16px calc(100px + env(safe-area-inset-bottom)); }
 .settings-page { padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
 /* Upload cards must shrink with the phone shell, including native file inputs. */
 .import-upload-card { min-width:0; box-sizing:border-box; padding:20px 16px; }
 .import-upload-form input, .import-upload-form select { min-width:0; max-width:100%; box-sizing:border-box; }
 .import-file-field input[type="file"] { width:100%; }
 .app-header { height:52px; min-height:52px; flex-wrap:nowrap; gap:4px; margin-bottom:12px; }
 .app-brand { min-width:0; }
 .app-brand .page__title { font-size:21px; }
 .app-primary { display:none; }
 .app-header-actions { flex-wrap:nowrap; gap:4px; margin-left:auto; }
 .app-header-actions .shortcuts-trigger { display:none; }
 .app-header-actions .page__synced { font-size:12px; gap:4px; }
 .app-menu-toggle, .app-header .inbox-toggle { display:none; }
 .mobile-tabbar .mobile-inbox-tab { position:relative; }
 .mobile-tabbar .mobile-inbox-count { position:absolute; top:0; right:4px; border-radius:10px; padding:2px 5px; background:var(--color-accent); color:var(--color-bg); font-size:12px; line-height:1.2; }
 .settings-page .settings-unsaved { bottom:calc(72px + env(safe-area-inset-bottom)); }
 .inbox-toggle { position:relative; min-width:44px; min-height:44px; padding:8px; font-size:12px; gap:4px; }
 .inbox-count { padding:0 5px; }
 .mobile-tabbar { position:fixed; z-index:45; inset:auto 0 0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:center; height:calc(72px + env(safe-area-inset-bottom)); padding:0 8px env(safe-area-inset-bottom); box-sizing:border-box; background:#080a10; border-top:1px solid var(--color-border); }
 .mobile-tabbar a, .mobile-tabbar button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; height:56px; min-width:44px; padding:0; border:0; color:var(--color-text-muted); font:500 12px var(--font-sans); text-decoration:none; background:transparent; }
 .mobile-tabbar a[aria-current="page"] { color:var(--color-accent); }
 .mobile-tabbar span { font-size:22px; line-height:1; }
 .mobile-tabbar .mobile-tab-add { width:56px; min-width:56px; height:56px; margin:0 auto; background:var(--color-accent); color:#04201a; border-radius:50%; }
 .mobile-tab-add span { font-size:30px; }
 .sheet-dialog, dialog.inbox-panel, .manual-entry-dialog:modal, .calendar-project-picker, .tl-menu { position:fixed; inset:auto 0 0; margin:0; width:100%; max-width:100%; max-height:82dvh; box-sizing:border-box; border:1px solid var(--color-border-strong); border-bottom:0; border-radius:26px 26px 0 0; background:#0e121a; padding:18px 16px calc(20px + env(safe-area-inset-bottom)); overflow-y:auto; overscroll-behavior:contain; }
 .sheet-dialog::before, .inbox-panel::before, .manual-entry-dialog:modal::before, .calendar-project-picker::before, .tl-menu::before { content:""; display:block; flex:none; height:5px; width:40px; margin:-7px auto 14px; border-radius:3px; background:var(--color-border-strong); }
 dialog.inbox-panel[open] { display:flex; gap:12px; }
 .inbox-panel .inbox-item { padding:12px 14px; border-radius:18px; }
 .inbox-panel .inbox-item-label { font-size:15px; }
 .inbox-item-sub { display:flex; align-items:center; flex-wrap:wrap; gap:0 8px; }
 .inbox-item-separator { display:none; }
 .inbox-panel .inbox-jump { display:inline-flex; align-items:center; gap:6px; padding:0; color:var(--color-text-muted); text-decoration:none; }
 .inbox-panel .inbox-jump::after { content:"›"; color:var(--color-text-faint); }
 .inbox-chip, .inbox-stamp, .inbox-jump { min-height:44px; min-width:44px; font-size:14px; }
 .inbox-item-actions { gap:8px; }
 .inbox-chip { flex:1 1 auto; justify-content:center; }
 .inbox-chip--split { flex:1 0 100%; color:var(--color-text); }
 .page .first-run-hint { display:none; }
 .account-overview { display:block; margin:0 0 12px; padding:0; border:0; }
 .account-overview>.ys-card { display:none; }
 .mobile-account-stats { display:grid; grid-template-columns:1.15fr 1.2fr .8fr; gap:6px; margin:0; }
 .mobile-account-stats>div { min-width:0; border:1px solid var(--color-border); background:var(--color-surface); border-radius:14px; padding:6px 8px; }
 #calendar-col { display:flex; flex-direction:column; }
 #calendar-col>.calendar-filters { order:1; }
 .calendar-grid-wrap { display:flex; flex-direction:column; }
 .calendar-selection-bar { order:1; margin-top:8px; }
 .hint-touch { display:inline; }
 .hint-desktop { display:none; }
 .mobile-account-stats dt { font-size:12px; color:var(--color-text-muted); margin-bottom:5px; }
 .mobile-account-stats dd { margin:0; font-size:14px; overflow-wrap:anywhere; }
 .mobile-account-stats dd span { font-size:12px; color:var(--color-text-muted); }
 .desktop-workspace { display:flex; flex-direction:column; gap:16px; }
 .desktop-workspace #calendar-col { padding:0; min-width:0; border:0; background:transparent; }
 .month-nav { display:flex; align-items:center; flex-wrap:nowrap; gap:2px; margin-bottom:4px; }
 .month-nav-title, .month-nav-actions { display:contents; }
 .month-heading { flex:1; order:1; font-size:23px; white-space:nowrap; min-width:0; }
 .month-nav .filter-today { order:2; min-width:44px; min-height:44px; padding:8px; }
 .month-nav .iconbtn { order:3; width:44px; min-width:44px; height:44px; }
 .month-nav .iconbtn:last-child { order:4; }
 .month-nav .jump-date { display:none; }
 .calendar-filters { margin:0; }
 .calendar-filters>summary { min-height:44px; box-sizing:border-box; display:flex; align-items:center; padding:8px 0; }
 .calendar-selection-bar { align-items:center; gap:8px; margin:0 0 8px; }
 .calendar-selection-bar>span { font-size:12px; line-height:1.4; }
 .calendar-select-toggle { min-height:44px; min-width:44px; padding:8px 12px; }
 .weekday-row { grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; margin-bottom:6px; }
 .weekday-cell { font-size:12px; padding:0; text-align:center; }
 .month-grid { grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; grid-auto-rows:68px; }
 /* Seven columns cannot each be 44px wide on 320px phones; cells keep their
    68px height and follow the column width instead of overlapping neighbours. */
 #app .month-grid .day-cell { min-width:0; }
 .day-worked { display:block; max-width:100%; }
 .day-cell, .day-cell--pad { min-height:68px; height:68px; padding:7px 3px 9px; gap:2px; box-sizing:border-box; border-radius:10px; }
 .day-num { font-size:15px; }
 .day-top { min-width:0; }
 .day-icon { font-size:12px; }
 .day-body { width:100%; align-items:center; min-width:0; gap:2px; }
 .day-line { max-width:100%; min-width:0; }
 .day-worked { font-size:12px; letter-spacing:-.07em; }
 .day-kind { font-size:12px; }
 .day-balance { display:none; }
 .grid-hint { font-size:12px; line-height:1.5; }
 .workspace-editor { display:none; }
 .summary-aside { padding:0; border:0; }
 #manual-entry-slot { min-height:0; }
 .summary-aside .manual-entry { padding:0; margin:0; border:0; }
 .manual-entry-dialog:not([open]) { display:none; }
 .manual-entry-dialog:modal { overflow:hidden; padding-bottom:0; }
 .manual-entry-dialog:modal[open] { display:flex; flex-direction:column; }
 .manual-entry-head { flex:none; margin-bottom:0; }
 .manual-entry-dialog .manual-entry-body { display:flex; flex-direction:column; flex:1 1 auto; gap:16px; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding-bottom:16px; }
 .manual-entry-dialog .manual-entry-body>* { flex:none; }
 .manual-entry-dialog .manual-entry-title { font-size:21px; }
 .manual-entry-dialog .manual-entry-context { margin:4px 48px 0 0; font-size:13px; }
 .manual-entry-dialog .manual-entry-body { padding-top:12px; }
 .manual-sheet-close { display:inline-flex; position:absolute; top:-4px; right:0; }
 .manual-entry-dialog .manual-entry-form { display:flex; flex-direction:column; flex-wrap:nowrap; align-items:stretch; gap:0; max-width:none; min-height:0; overflow:hidden; }
 .manual-entry-dialog .manual-entry-date>summary { min-height:44px; display:flex; align-items:center; }
 .manual-entry-dialog .manual-entry-form input, .manual-entry-dialog .manual-entry-form select { min-height:48px; height:48px; font-size:16px; border-radius:12px; }
 .manual-project-chips { display:none; }
 .manual-chips-ready .manual-project-chips { display:flex; flex-wrap:wrap; gap:8px; }
 .manual-project-chip { display:inline-flex; align-items:center; gap:8px; min-height:44px; min-width:44px; max-width:100%; overflow-wrap:anywhere; font-size:14px; }
 .manual-project-chip[aria-pressed="true"] { background:rgba(94,230,200,.12); border-color:var(--color-accent); }
 .manual-entry-dialog .manual-entry-times input { height:56px; font-size:22px; }
 .manual-duration-shortcuts { display:flex; gap:8px; }
 .manual-duration-shortcuts button { flex:1; min-height:44px; padding:8px; font-size:14px; }
 .manual-entry-dialog .manual-entry-duration { font-size:20px; margin:0; padding-bottom:4px; line-height:1.4; }
 .manual-chips-ready:has(.manual-project-chip) .manual-entry-project { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
 .manual-entry-dialog .manual-entry-error { flex-basis:auto; min-height:0; width:100%; color:var(--color-negative); }

 .manual-entry-dialog .manual-entry-actions { position:relative; flex:none; z-index:1; background:#0e121a; margin:0 -16px; padding:12px 16px calc(20px + env(safe-area-inset-bottom)); border-top:1px solid var(--color-border); }
 .manual-entry-dialog .manual-entry-actions .btn-accent { min-height:52px; font-size:16px; }
 body[data-mobile-view="day"] .workspace-editor { display:block; }
 body[data-mobile-view="day"] #calendar-col, body[data-mobile-view="day"] #account-overview, body[data-mobile-view="day"] #year-summary-slot, body[data-mobile-view="day"] .summary-aside> :not(#manual-entry-slot) { display:none; }
 body[data-mobile-view="day"] .day-panel { padding:0; border:0; background:transparent; gap:12px; }
 body[data-mobile-view="day"] .timeline-mount { margin-top:0; }
 body[data-mobile-view="day"] .dp-grid, body[data-mobile-view="day"] .dp-main { display:contents; }
 body[data-mobile-view="day"] .dp-actions { order:1; }
 .mobile-day-navigation { display:flex; align-items:center; gap:4px; }
 .mobile-day-navigation>span { flex:1; }
 .mobile-day-navigation button { min-width:44px; min-height:44px; font-size:16px; }
 .mobile-day-navigation button[aria-label] { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; flex:none; border:1px solid var(--color-border); border-radius:50%; background:var(--color-surface); color:var(--color-text); font-size:28px; line-height:1; }
 .dp-grid { display:block; }
 .day-panel-head { flex-wrap:nowrap; align-items:flex-start; gap:10px; }
 .dp-title-block { flex:1; min-width:0; }
 .day-panel-date { min-width:0; white-space:normal; }
 .day-panel-title, .day-panel-date { font-size:24px; line-height:1.2; }
 .day-panel-title { gap:8px; }
 .dp-type-pill { font-size:12px; }
 .dp-meta { font-size:12px; }
 .dp-total { min-width:0; flex-shrink:0; }
 .dp-total__big { font-size:25px; }
 .dp-total__delta { font-size:12px; }
 .dp-total__of { display:none; }
 .dp-actions { gap:8px; flex-wrap:wrap; }
 .dp-actions__hint { display:none; }
 .dp-actions .chip { min-height:44px; min-width:44px; padding:8px 12px; font-size:14px; }
 .timeline-hint { font-size:12px; line-height:1.5; }
 .day-entries .span-row { display:grid; grid-template-columns:4px minmax(0,1fr) 60px 44px; gap:4px 8px; min-height:64px; padding:10px 0; }
 .span-row .span-swatch { grid-column:1; grid-row:1 / 3; width:4px; height:32px; align-self:center; }
 .span-row .span-main { grid-column:2; grid-row:1; min-width:0; flex-wrap:wrap; gap:4px 8px; }
 .span-row .span-id { display:none; }
 .span-row .span-label { flex:1 0 100%; min-width:0; font-size:15px; overflow-wrap:anywhere; white-space:normal; text-overflow:clip; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
 .span-row .span-time { grid-column:2 / 4; grid-row:2; min-height:44px; text-align:left; font-size:12px; justify-self:stretch; }
 .span-row .span-mins { grid-column:3; grid-row:1; font-size:14px; align-self:center; }
 .span-row .span-del { grid-column:4; grid-row:1 / 3; width:44px; height:44px; min-width:44px; min-height:44px; opacity:1; align-self:center; }
 .span-row .span-note { flex:1 0 100%; max-width:100%; font-size:13px; }
 .day-entries .span-row--editing { display:block; }
 .mobile-day-week { display:block; border:1px solid var(--color-border); border-radius:18px; padding:12px; }
 .mobile-week-heading { display:flex; justify-content:space-between; gap:8px; align-items:baseline; }
 .mobile-week-heading h3 { font-size:15px; margin:0 0 12px; }
 .mobile-week-heading>span { font-size:12px; }
 .mobile-week-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; }
 .mobile-week-days button { padding:6px 0; border:0; border-radius:8px; display:flex; flex-direction:column; align-items:center; gap:6px; min-width:0; min-height:68px; font-size:12px; }
 .mobile-week-days button.is-selected { background:rgba(94,230,200,.14); outline:1px solid var(--color-accent); }
 .mobile-week-days button>span:last-child { font-size:12px; letter-spacing:-.08em; }
 /* Content-sized action sheets cover the viewport through a dimmed backdrop,
    not through the timeline track's local positioning context. */
 .tl-track:has(.tl-menu-layer) { isolation:auto; }
 .tl-menu-layer { position:fixed; inset:0; z-index:1001; touch-action:auto; }
 .tl-menu-backdrop { background:rgba(3,5,9,.7); }
 .tl-menu { left:0 !important; right:0; top:auto !important; bottom:0; width:100%; max-width:100%; max-height:min(82dvh, 440px); margin:0; touch-action:pan-y; }
 .tl-menu__sheet-heading { display:flex; margin-bottom:12px; }
 .tl-menu__head { flex-wrap:wrap; font-size:var(--font-size-readable); }
 .tl-menu__title { min-width:0; overflow-wrap:anywhere; }
 .tl-menu__range { margin-left:auto; }
 .tl-menu__row, .tl-menu__back { min-height:44px; font-size:14px; }
 .tl-menu__hint { max-width:42%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-transform:none; }
 .tl-menu__hint--key { display:none; }
 .tl-track:has(.tl-menu-layer) .tl-split-marker,
 .tl-track:has(.tl-menu-layer) .tl-hover-line { display:none; }
 .more-links a { border-bottom:1px solid var(--color-border); }
 .more-links button[form="navigation-logout"] { margin-top:16px; }
 .calendar-project-picker { left:0 !important; top:auto !important; bottom:0; width:100%; max-height:75dvh; display:flex; flex-direction:column; gap:8px; }
 .calendar-project-picker__head, .calendar-project-picker>p, .calendar-selection-days { order:1; flex:none; }
 .calendar-selection-days { max-height:12dvh; }
 .calendar-selection-days li { grid-template-columns:78px minmax(0,1fr); }
 .calendar-selection-days span { overflow-wrap:anywhere; }
 .calendar-project-picker__times { order:3; flex:none; }
 .calendar-project-picker>button { order:4; flex:none; }
 .calendar-project-picker__times summary, .calendar-project-picker button { min-height:44px; }
 .calendar-project-picker__actions { display:block; order:2; flex:none; padding:0; }
 .calendar-project-picker__times { margin:0; padding:0; }
 .calendar-project-picker__times summary { display:flex; align-items:center; }
 .calendar-project-picker>p, .calendar-selection-days { margin:0; }
 .calendar-project-picker__projects { max-height:24dvh; }
 /* Reserve a sheet-sized scroll tail so selected rows can move above it. */
 body:has(.calendar-project-picker:not([x-cloak]):not([style*="display: none"])) .page { padding-bottom:calc(55dvh + 100px + env(safe-area-inset-bottom)); }
}
/* Short sheets put validation before the potentially tall project chip list. */
@media (max-width:69.99rem) and (max-height:650px), (pointer:coarse) and (max-height:650px) {
 .manual-entry-dialog .manual-entry-times { order:1; }
 .manual-entry-dialog .manual-entry-error { order:2; }
 .manual-entry-dialog .manual-project-chips { order:3; }
 .manual-entry-dialog .manual-duration-shortcuts { order:4; }
 .manual-entry-dialog .manual-entry-note { order:5; }
 .manual-entry-dialog .manual-entry-duration { order:6; }
 .manual-entry-dialog .manual-entry-actions::before { content:""; position:absolute; inset:-16px 0 auto; height:16px; background:linear-gradient(transparent,#0e121a); pointer-events:none; }
}
@media (max-width:359px) {
 .manual-entry-dialog .manual-entry-body { gap:12px; }
 .app-header-actions .page__synced { display:none; }
 .month-heading { font-size:20px; }
 .mobile-week-days { grid-template-columns:repeat(7,minmax(0,1fr)); }
 .day-worked, .mobile-week-days button>span:last-child { font-family:var(--font-sans); font-variant-numeric:tabular-nums; letter-spacing:-.04em; }
 .day-icon { display:none; }
}
