:root{--blue:#005eb8;--pale:#e8f3ff}body{background:#f6f8fb;color:#25344a;padding-bottom:calc(100px + env(safe-area-inset-bottom));font-family:system-ui,-apple-system,Segoe UI,sans-serif}.topbar{background:var(--blue)}.brand{color:white;font-size:1.3rem;font-weight:750}.card{border:1px solid #e3e8ee;border-radius:15px;box-shadow:0 2px 10px #21334b09}.btn-primary{background:var(--blue);border-color:var(--blue)}.text-primary{color:var(--blue)!important}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #dde4ed;display:flex;justify-content:space-around;padding:10px 3px max(10px,env(safe-area-inset-bottom));z-index:10}.bottom-nav a{text-decoration:none;color:#65748a;font-size:.81rem;padding:8px 5px;border-radius:8px}.bottom-nav a.active{color:var(--blue);background:var(--pale);font-weight:700}.metric{font-size:1.6rem;font-weight:750}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.cal-day{border:0;border-radius:9px;min-height:48px;background:#eef1f5;color:#25344a}.cal-day.complete{background:#d8f4e1}.cal-day.partial{background:#ffebc5}.cal-day.none{background:#ffdbdf}.cal-day.today{background:#dceeff;outline:2px solid #73b6f2}.cal-day.today.complete{background:#d8f4e1;outline:2px solid #22945a}.cal-day.muted{opacity:.3}.reading-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reading-grid input{min-width:0}.section-label{font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;color:#728199;font-weight:700}.table-responsive{border-radius:10px}.report-only{display:none}@media(min-width:900px){.bottom-nav{justify-content:center;gap:22px}.bottom-nav a{font-size:1rem}.container{max-width:1050px}}@media print{body{background:white;padding:0;color:black}.topbar,.bottom-nav,.no-print,#notice{display:none!important}.report-only{display:block}main{max-width:none!important;padding:0!important}.card{box-shadow:none;border:0}.table{font-size:9pt}.table td,.table th{padding:4px} @page{size:A4 landscape;margin:12mm}}

.bottom-nav{position:fixed!important;bottom:0!important;left:0;right:0;box-shadow:0 -3px 18px #152a4212}main{padding-bottom:calc(32px + env(safe-area-inset-bottom))!important}.bottom-nav a{min-height:44px;display:flex;align-items:center;justify-content:center}@media(max-width:390px){.bottom-nav a{font-size:.75rem;padding:7px 3px}}

/* Report page: wider desktop canvas, contained mobile table scrolling */
main.report-layout{width:100%;max-width:1500px!important;margin-inline:auto}
.report-controls .form-control[type=date]{width:100%;max-width:none}
.report-email .form-control{max-width:430px}
.report-table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.report-table{width:100%;min-width:850px;table-layout:auto;font-size:.94rem}
.report-table th,.report-table td{padding:.75rem .65rem;vertical-align:top}
.report-table th:nth-child(-n+5),.report-table td:nth-child(-n+5){white-space:nowrap}
.report-table th:nth-child(6),.report-table td:nth-child(6){min-width:190px}
.report-table th:nth-child(7),.report-table td:nth-child(7){min-width:270px;overflow-wrap:anywhere}
@media(min-width:1200px){main.report-layout{padding-left:30px!important;padding-right:30px!important}}
@media(max-width:575.98px){main.report-layout{padding-left:12px!important;padding-right:12px!important}.report-actions .btn{flex:1 1 auto}.report-email .form-control{max-width:none}.report-table{font-size:.85rem}.report-table th,.report-table td{padding:.5rem}}
@media print{main.report-layout{max-width:none!important;padding:0!important}.report-table{min-width:0!important;width:100%;font-size:9pt}.report-table th,.report-table td{white-space:normal!important;min-width:0!important;padding:4px!important}.report-table-scroll{overflow:visible!important}}

/* Shared responsive page width: header, content and all pages */
@media screen {
  .topbar > .container,
  body > main.container {
    width: 100%;
    max-width: 1500px !important;
    margin-inline: auto;
  }
  body > main.container { padding-inline: 24px !important; }
  .topbar > .container { padding-inline: 24px !important; }
}
@media screen and (max-width: 767.98px) {
  body > main.container { padding-inline: 12px !important; }
  .topbar > .container { padding-inline: 16px !important; }
}
/* Keep the login form comfortably narrow despite the wider page canvas. */
/* Report-specific layout remains compatible with the shared width. */

/* Calendar status key */
.calendar-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:9px 16px}
.calendar-legend>div{display:flex;align-items:center;gap:10px;font-size:.9rem}
.legend-swatch{display:inline-block;width:24px;height:24px;border-radius:6px;border:1px solid #dce3ec;flex-shrink:0}
.legend-swatch.complete,.day-picker-day.complete{background:#d8f4e1}
.legend-swatch.partial,.day-picker-day.partial{background:#ffebc5}
.legend-swatch.none,.day-picker-day.none{background:#ffdbdf}
.legend-swatch.today,.day-picker-day.today{background:#dceeff;border-color:#73b6f2}
.legend-swatch.muted,.day-picker-day.muted{background:#eef1f5}
.brand-link,.brand-link:link,.brand-link:visited,.brand-link:hover,.brand-link:focus{color:#fff;text-decoration:none}
.brand-link:focus-visible{outline:2px solid white;outline-offset:4px;border-radius:3px}
.date-jump-button{min-width:150px;display:flex;justify-content:space-between;gap:14px;align-items:center}
.day-picker-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:flex-start;justify-content:center;padding:80px 12px 20px}
.day-picker-backdrop{position:absolute;inset:0;background:#1b304760}
.day-picker{position:relative;width:min(100%,360px);padding:15px;background:white;box-shadow:0 12px 40px #142c4a40}
.day-picker-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}
.day-picker-heading .btn{min-width:40px;font-size:1.2rem}
.day-picker-weekdays,.day-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.day-picker-weekdays{color:#687789;font-size:.77rem;margin-bottom:5px}
.day-picker-day{border:1px solid transparent;border-radius:7px;min-height:39px;background:#eef1f5;color:#25344a;font-size:.85rem}
.day-picker-day.selected{outline:2px solid var(--blue);outline-offset:0}
.day-picker-day:focus-visible{outline:3px solid var(--blue);outline-offset:1px}
@media(max-width:480px){.day-picker-overlay{align-items:center;padding:12px}.calendar-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-legend>div{font-size:.8rem}}
@media print{.day-picker-overlay{display:none!important}}
