/* Shared navigation, button variants and dialog chrome. */
.calendar-project-picker__actions { display:contents; }
.app-header { display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; }
.app-brand { text-decoration:none; color:var(--color-text); flex:none; }
.app-primary { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.app-primary a, .app-primary button { display:inline-flex; align-items:center; min-height:30px; box-sizing:border-box; padding:6px 10px; font-size:14px; border:0; text-decoration:none; }
.app-primary form { margin:0; }
.app-header-actions { margin-left:auto; gap:12px; }
.app-menu-toggle, .mobile-tabbar, .mobile-account-stats, .mobile-day-navigation, .mobile-day-week, .manual-project-chips, .manual-duration-shortcuts { display:none; }
.btn-secondary { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; min-height:36px; border:1px solid var(--color-border-strong); background:transparent; color:var(--color-text); border-radius:7px; padding:0.4rem 1rem; font-family:var(--font-sans); font-size:var(--font-size-readable); font-weight:500; cursor:pointer; }
.btn-secondary.btn-danger { color:var(--color-negative); border-color:var(--color-negative); }
.btn-secondary.btn-danger:hover { background:color-mix(in srgb, var(--color-negative) 10%, transparent); }
.btn-secondary:hover { background:var(--color-surface-2); }
.btn-secondary:disabled { cursor:default; color:var(--color-text-faint); }
.btn-ghost { border-color:transparent; border-radius:999px; color:var(--color-accent); }
.btn-ghost:hover { background:var(--color-surface-2); }
.btn-accent, .btn-secondary, .btn-ghost { text-decoration:none; }
.sheet-dialog, .manual-entry-dialog, dialog.inbox-panel { color:var(--color-text); font-family:var(--font-sans); }
.sheet-dialog { width:min(520px, calc(100% - 32px)); max-height:85dvh; border:1px solid var(--color-border-strong); border-radius:20px; background:#0e121a; padding:20px; }
.sheet-dialog::backdrop, .manual-entry-dialog::backdrop, .inbox-panel::backdrop { background:rgba(3,5,9,.7); }
.sheet-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.sheet-heading h2 { margin:0; font-size:21px; }
.sheet-heading p { margin:4px 0 0; color:var(--color-text-muted); font-size:13px; }
.sheet-close { display:inline-flex; flex:none; align-items:center; justify-content:center; box-sizing:border-box; width:44px; min-width:44px; height:44px; padding:0; border:1px solid var(--color-border-strong); border-radius:50%; background:var(--color-surface-2); color:var(--color-text); font-size:21px; line-height:1; }
.manual-entry-body { display:contents; }
.tl-menu__sheet-heading { display:none; }
.calendar-project-picker__head strong { font-size:21px; line-height:1.2; }
.calendar-project-choice { display:flex; align-items:center; gap:8px; width:100%; min-height:44px; box-sizing:border-box; padding:10px 12px; border:1px solid var(--color-border-strong); border-radius:10px; background:var(--color-surface-2); color:var(--color-text); font-size:var(--font-size-readable); text-align:left; cursor:pointer; }
.calendar-project-choice:hover { border-color:var(--color-accent); }
.calendar-project-picker__projects { gap:8px; }
.calendar-vacation-choice { margin-top:8px; }
.inbox-chip--split { flex-basis:100%; justify-content:center; min-height:44px; }
.inbox-jump { color:var(--color-accent); text-decoration:underline; text-underline-offset:3px; }
@media (min-width:70rem) and (pointer:fine) {
 body:has(.calendar-project-picker:not([x-cloak]):not([style*="display: none"])) #day-panel,
 body:has(.calendar-project-picker:not([x-cloak]):not([style*="display: none"])) .summary-aside { opacity:.4; }
}
/* After .sheet-close so desktop's inline Add time panel has no close button. */
.manual-sheet-close { display:none; }
.more-links { display:flex; flex-direction:column; gap:8px; margin-top:16px; }
.more-links a, .more-links button { min-height:44px; display:flex; align-items:center; padding:10px 14px; font-size:15px; text-decoration:none; box-sizing:border-box; }
.more-links form { margin:0; }
dialog.inbox-panel { margin:0; left:auto; max-height:75dvh; overflow-y:auto; box-sizing:border-box; }
dialog.inbox-panel:not([open]) { display:none; }
.manual-entry-dialog { position:static; margin:0; padding:0; width:100%; max-width:none; max-height:none; border:0; background:transparent; overflow:visible; }
.manual-entry-head { position:relative; }
/* Calendar marks encode logged progress, not a full-cell status wash. The
   accessible cell label keeps actual/planned hours and the schedule balance. */
.day--workday { background:var(--color-surface); }
.day--weekend { background:rgba(255,255,255,.015); }
.day-progress { position:absolute; left:7px; right:7px; bottom:4px; height:3px; border-radius:2px; background:rgba(255,255,255,.09); overflow:hidden; }
.day-progress>span { display:block; height:100%; background:var(--color-accent); border-radius:2px; }
.day-cell--hours-under .day-progress>span { background:var(--color-negative); }
.day-cell--planned .day-num, .day-cell--planned .day-worked { color:#a3abbb; }
.day-cell--planned .day-kind { color:#a3abbb; }
.day-cell--planned { opacity:1; }
.day-cell.is-today .day-num { color:var(--color-accent); }
@media (pointer:coarse) {
 .app-primary a, .btn-secondary { min-height:44px; min-width:44px; }
}
@media (prefers-reduced-motion:no-preference) {
 .sheet-dialog[open], .manual-entry-dialog:modal, .inbox-panel:modal { animation:sheet-enter 180ms ease-out; }
 @keyframes sheet-enter { from { transform:translateY(16px); } to { transform:none; } }
}
