.home-welcome{padding:8px 0 32px;max-width:760px}.home-welcome h2{margin:15px 0 12px;font-size:36px}.home-priority-section{margin:0 0 34px;border-top:1px solid #d6d3c9;padding-top:24px}.home-section-heading{margin-bottom:18px}.home-section-heading h2{font-size:27px;margin-bottom:8px}.home-priority-list{list-style:none;padding:0;margin:0}.home-priority-row.pending-item{width:100%;display:flex;align-items:center;gap:20px;text-align:left;background:transparent;border:0;border-bottom:1px solid #e1ddd4;padding:22px 8px;color:#30362d}.home-priority-row:hover{background:#eeebe3}.home-priority-row:focus-visible{outline:2px solid #59634f;outline-offset:2px}.home-row-number{font:24px Georgia,serif;color:#939987;min-width:32px}.home-row-copy{display:flex;flex-direction:column;gap:7px;min-width:0;flex:1}.home-row-copy strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}.home-row-copy small,.home-row-detail{font-size:12px;line-height:1.6;color:#73746b;overflow-wrap:anywhere}.home-priority-badge{font-size:10px;line-height:1.4;padding:7px 10px;background:#e6eade;color:#45513a;max-width:170px}.home-overdue{background:#f0dfd6;color:#883f2d}.home-row-arrow{display:block;width:20px;height:20px;flex:none;color:inherit;opacity:.8}.home-clear{background:#e9ede3;padding:22px 24px}.home-clear strong{display:block;font:22px Georgia,serif;margin-bottom:8px}.home-empty{padding:18px 0}.home-all-projects{margin-top:18px}.home-refresh{margin-bottom:30px}@media(max-width:640px){.home-welcome h2{font-size:30px}.home-section-heading h2{font-size:24px}.home-priority-row.pending-item{gap:12px;flex-wrap:wrap;padding:20px 0}.home-row-copy{flex-basis:calc(100% - 76px)}.home-priority-badge{margin-left:44px;max-width:none}.home-row-arrow{margin-left:auto}.home-welcome{padding-bottom:26px}}
.calendar-controls{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 14px}.calendar-controls button{font-size:11px;padding:11px 13px}.calendar-controls button:disabled{opacity:.5;cursor:default}.calendar-range{font-size:13px;line-height:1.6;margin-bottom:18px;color:#59614f}.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #dedbd1}.calendar-day{min-width:0;min-height:190px;padding:12px 8px;border-right:1px solid #dedbd1}.calendar-day:last-child{border-right:0}.calendar-weekend{background:#efede7}.calendar-today{background:#e9ede3}.calendar-day-heading{display:flex;flex-direction:column;gap:9px;margin-bottom:18px}.calendar-day-heading span{font:10px Arial,sans-serif;color:#73746b}.calendar-day-heading time{font:25px Georgia,serif}.calendar-today time{font-weight:bold;color:#45513a}.calendar-day-empty{font-size:10px;color:#8a8b81;line-height:1.5}.calendar-event.pending-item{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;padding:10px 8px;margin-bottom:8px;background:#f7f6f1;border:1px solid #d6d8cb;border-left:3px solid #7d896c;text-align:left;overflow-wrap:anywhere;min-width:0}.calendar-event strong{font-size:11px;line-height:1.6;font-weight:500}.calendar-event small{font-size:10px;line-height:1.5;color:#73746b}.calendar-event-type{font-size:9px;line-height:1.5;color:#59614f}.calendar-event.calendar-late{border-left-color:#a45f45;background:#f4e9e3}.calendar-event.calendar-done{opacity:.65}.calendar-done strong{text-decoration:line-through}.calendar-event.calendar-milestone{border-left-color:#9a8460;background:#f2eee5}.calendar-event:hover{filter:brightness(.97)}.calendar-event:focus-visible{outline:2px solid #59634f;outline-offset:2px}.calendar-empty{padding-top:14px;font-size:12px}@media(max-width:900px){.calendar-week{grid-template-columns:1fr}.calendar-day{min-height:78px;border-right:0;border-bottom:1px solid #dedbd1;padding:14px;display:grid;grid-template-columns:70px minmax(0,1fr);gap:10px}.calendar-day:last-child{border-bottom:0}.calendar-day-heading{grid-column:1;grid-row:1;margin:0}.calendar-event.pending-item{grid-column:2;margin:0}.calendar-day-empty{grid-column:2;align-self:center}.calendar-event strong{font-size:12px}.calendar-event-type{font-size:10px}}@media(max-width:420px){.calendar-controls{gap:6px}.calendar-controls button{font-size:10px;padding:10px}.calendar-day{padding:12px 10px;grid-template-columns:60px minmax(0,1fr)}}

/* Mobile calendar: chronological days in two columns. */
@media(max-width:640px){
.calendar-week{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#dedbd1;align-items:stretch}
.calendar-week>.calendar-day{display:block;min-width:0;min-height:120px;padding:12px 10px;border:0;background:#fff}
.calendar-week>.calendar-day.calendar-weekend{background:#efede7}
.calendar-week>.calendar-day.calendar-today{background:#e9ede3}
.calendar-week .calendar-day-heading{display:flex;flex-direction:column;gap:7px;margin:0 0 12px}
.calendar-week .calendar-day-heading span{overflow-wrap:anywhere}
.calendar-week .calendar-event.pending-item{margin:0 0 8px;padding:8px 6px}
.calendar-week .calendar-event strong,.calendar-week .calendar-event small{overflow-wrap:anywhere}
.calendar-week .calendar-day-empty{margin:0;line-height:1.5}
}

/* Calendar: one navigation toolbar above the complete range. */
#app-view #home-calendar .calendar-toolbar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px 16px;margin:0 0 16px}
#app-view #home-calendar .calendar-toolbar .calendar-range{flex:1 1 260px;margin:0;line-height:1.5}
#app-view #home-calendar .calendar-toolbar .calendar-schedule{margin:0;min-height:38px}
#app-view #home-calendar .calendar-toolbar .calendar-controls{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;margin:0}
#app-view #home-calendar .calendar-controls>button{min-height:38px;margin:0;padding:8px 12px;font-size:12px;line-height:1}
#app-view #home-calendar .calendar-controls>.calendar-nav-arrow{display:inline-flex;align-items:center;justify-content:center;width:38px;min-width:38px;padding:0;font-size:20px}
#app-view #home-calendar .calendar-controls>.calendar-nav-today{min-width:64px}
@media(max-width:900px){#app-view #home-calendar .calendar-toolbar{gap:10px}#app-view #home-calendar .calendar-toolbar .calendar-range{flex-basis:100%}#app-view #home-calendar .calendar-toolbar .calendar-schedule{margin-right:auto}}

/* Explicit calendar insets, independent of the surrounding portal card. */
#app-view #home-calendar:has(>.calendar-toolbar){padding:0 0 20px}
#app-view #home-calendar:has(>.calendar-toolbar)>.home-section-heading{margin:0}
#app-view #home-calendar>.calendar-toolbar{box-sizing:border-box;width:100%;margin:0;padding:18px 24px}
#app-view #home-calendar:has(>.calendar-toolbar)>.calendar-week{box-sizing:border-box;width:calc(100% - 48px);margin:0 24px}
#app-view #home-calendar:has(>.calendar-toolbar)>.calendar-empty{padding:12px 24px 0;margin:0}
@media(max-width:900px){#app-view #home-calendar>.calendar-toolbar{padding:16px}#app-view #home-calendar:has(>.calendar-toolbar)>.calendar-week{width:calc(100% - 32px);margin:0 16px}#app-view #home-calendar:has(>.calendar-toolbar)>.calendar-empty{padding:12px 16px 0}}

/* National Portuguese holidays, verified for 2026 and 2027. */
#app-view .calendar-day.calendar-holiday{background:#faf3e9}
#app-view .calendar-day.calendar-holiday .calendar-day-heading time{color:#8b4937}
#app-view .calendar-holiday-note{display:flex;flex-direction:column;gap:4px;margin:0 0 12px;padding:7px 8px;border-left:2px solid #b78657;background:#f5e9d9;min-width:0;overflow-wrap:anywhere}
#app-view .calendar-holiday-note .calendar-holiday-type{font-size:9px;line-height:1.3;text-transform:uppercase;letter-spacing:.3px;color:#785536}
#app-view .calendar-holiday-note strong{font-size:11px;line-height:1.45;font-weight:600;color:#65432c}
@media(max-width:900px){#app-view .calendar-holiday-note{grid-column:2;margin-bottom:6px}}

.home-title-with-icon {
 display: flex;
 align-items: center;
 gap: .5em;
}
.home-title-with-icon > .home-title-icon {
 width: 1em;
 height: 1em;
 flex: 0 0 1em;
}
