*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;background:#f4f6f8;color:#333;padding:1.5rem}.page-shell{width:100%;max-width:72rem;margin:0 auto}.page-header{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;margin-bottom:2rem}.page-header h1{font-size:2.4rem;line-height:1.1;font-weight:700;letter-spacing:-.03em;color:#1a1a2e;margin-bottom:.25rem}#year-selector-container{display:flex;justify-content:center;width:fit-content;position:relative}#year-select{min-height:3rem;padding:1rem;font-size:1rem;font-weight:600;color:#1f3550;background:linear-gradient(180deg,#fff,#eef4fb);border:1px solid #c7d7e6;border-radius:.85rem;box-shadow:0 .5rem 1.5rem #3a86b41f;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#3a86b4 50%),linear-gradient(135deg,#3a86b4 50%,transparent 50%);background-position:calc(100% - 1.1rem) calc(50% - .12rem),calc(100% - .8rem) calc(50% - .12rem);background-size:.4rem .4rem,.4rem .4rem;background-repeat:no-repeat;cursor:pointer;position:absolute;inset:0;width:100%;opacity:0;z-index:2;pointer-events:none}#year-select:focus{outline:2px solid #3a86b4;outline-offset:2px}.year-select-shell{position:relative;min-width:9rem}#year-select-trigger{min-height:3.05rem;width:100%;padding:1rem 1.15rem;display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem;font-size:1rem;font-weight:700;color:#1f3550;background:linear-gradient(180deg,#fff,#eef4fb);border:1px solid #c7d7e6;border-radius:.85rem;box-shadow:0 .5rem 1.5rem #3a86b41f;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}#year-select-trigger:focus-visible{outline:2px solid #3a86b4;outline-offset:2px}.year-select-shell.is-open #year-select-trigger{border-color:#7aa8c9;box-shadow:0 .8rem 2rem #3a86b429}.year-select-trigger-label{text-align:left}.year-select-trigger-icon{font-size:.9rem;color:#3a86b4}#year-select-menu{position:absolute;top:calc(100% + .45rem);left:0;width:100%;display:grid;gap:.35rem;padding:.4rem;border:1px solid #c7d7e6;border-radius:.95rem;background:#fff;box-shadow:0 1rem 2.4rem #1f355029;z-index:3}#year-select-menu[hidden]{display:none}.year-select-option{width:100%;padding:.8rem .9rem;border:none;border-radius:.7rem;background:transparent;color:#1f3550;font-size:.98rem;font-weight:600;text-align:left;cursor:pointer}.year-select-option:hover,.year-select-option:focus-visible{background:#eef4fb;outline:none}.year-select-option.is-selected,.year-select-option[aria-selected=true]{background:#dce7ef;color:#173047}.page-header .year-totals{font-size:.95rem;color:#555;margin-top:.25rem;font-style:italic}.page-intro{max-width:44rem;margin:0 auto 1.5rem;text-align:center;font-size:1rem;line-height:1.6;color:#28445e}.year-summary{max-width:56rem;margin:0 auto 1.75rem;padding:1.15rem 1.25rem;border:1px solid #d7e2ea;border-radius:1rem;background:linear-gradient(180deg,#fff,#f8fbfd);box-shadow:0 .8rem 2rem #1f355014}.year-summary-title{font-size:1.2rem;line-height:1.2;color:#1a1a2e;margin-bottom:.55rem}.year-summary-copy{color:#365069;line-height:1.6;margin-bottom:1rem}.year-summary-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.year-summary-stat{padding:.85rem .9rem;border-radius:.85rem;background:#eef4fb}.year-summary-stat dt{font-size:.82rem;line-height:1.35;color:#4f6479;margin-bottom:.35rem}.year-summary-stat dd{font-size:1.1rem;font-weight:700;color:#173047}.calendar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}#calendar-root{position:relative;margin-bottom:1rem}@media(max-width:1024px){.calendar-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.page-shell{max-width:none;width:100%}.page-header{gap:.65rem;margin-bottom:1.5rem}.page-intro{margin-bottom:1.25rem;font-size:.95rem}.year-summary{margin-bottom:1.4rem;padding:1rem}.year-summary-stats{grid-template-columns:1fr 1fr}.page-header h1{font-size:2rem}#year-selector-container{width:100%}.year-select-shell,#year-select{width:100%;max-width:14rem}#year-select-trigger{width:100%}.year-summary-stats,.calendar-grid{grid-template-columns:1fr}}.month-card{background:#fff;border-radius:8px;box-shadow:0 1px 4px #00000014;overflow:hidden}.month-name{background:#3a86b4;color:#fff;text-align:center;font-weight:600;padding:.5rem 0;font-size:.95rem;letter-spacing:.03em}.weekday-headers{display:grid;grid-template-columns:repeat(7,1fr);background:#e8f0f7}.weekday-headers .weekday{text-align:center;padding:.3rem 0;font-size:.75rem;font-weight:600;color:#555}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:.25rem;gap:1px}.day-cell{text-align:center;padding:.3rem .15rem;font-size:.8rem;border-radius:3px;min-height:2.2rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.day-cell.empty{background:transparent}.day-cell.weekend{background:#f0f4f8;color:#888}.day-cell.holiday{background:#dce7ef;color:#1f3550;font-weight:600;cursor:pointer}.day-cell .day-number{line-height:1.2}.holiday-tooltip{position:absolute;left:0;top:0;transform:translate(-50%);min-height:1.5rem;padding:.65rem .9rem;border-radius:.75rem;background:#f7fbff;color:#1f3550;border:1px solid #c7d7e6;box-shadow:0 .75rem 2rem #3a86b41f;text-align:center;font-size:.9rem;font-weight:600;width:max-content;max-width:min(16rem,calc(100% - 1rem));opacity:0;visibility:hidden;pointer-events:none;z-index:10;transition:opacity .12s ease}.holiday-tooltip.is-visible{opacity:1;visibility:visible}.month-footer{text-align:center;padding:.5rem .25rem;border-top:1px solid #eee;font-size:.8rem;color:#3a86b4;font-weight:600}.month-footer .hours{font-style:italic;font-weight:400;color:#777}.holiday-list{display:grid;gap:.5rem;padding:.75rem;border-top:1px solid #eef2f5;background:linear-gradient(180deg,#fff,#f8fbfd)}.holiday-list-items{list-style:none;display:grid;gap:.45rem}.holiday-list-item{display:grid;grid-template-columns:2rem 1fr;align-items:center;gap:.6rem;font-size:.82rem;color:#28445e}.holiday-list-day{display:inline-flex;align-items:center;justify-content:center;min-height:1.7rem;border-radius:999px;background:#dce7ef;color:#1f3550;font-weight:700}.holiday-list-name{line-height:1.3}.holiday-list-empty{font-size:.82rem;color:#64778a;text-align:center;font-style:italic}@media(max-width:600px){.holiday-list{padding:.7rem}.holiday-list-item{grid-template-columns:1.85rem 1fr;font-size:.8rem}}
