:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172833;background:#f5f7f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}.app-header{background:#172833;color:#fff;min-height:72px;padding:16px max(24px,calc((100vw - 1440px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#67d4ae;color:#12362e;font-weight:800;font-size:24px}.brand div{display:flex;flex-direction:column;line-height:1.2}.brand strong{font-size:19px;letter-spacing:-.04em}.brand div span{color:#b7c5ca;font-size:12px;margin-top:3px}.header-note{color:#aebdc2;font-size:13px}.content{max-width:1488px;margin:auto;padding:36px 24px 60px}.heading-row{display:flex;justify-content:space-between;align-items:end;gap:24px}.eyebrow{color:#23775e;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px}h1{font-size:clamp(29px,3vw,38px);letter-spacing:-.045em;line-height:1.1;margin:0}.subtitle{color:#667782;font-size:14px;margin:10px 0 0}.refresh-button,.today-button,.message button{border:1px solid #cbd6d9;background:#fff;color:#243b47;border-radius:8px;padding:10px 14px;font-weight:650;white-space:nowrap}.refresh-button:hover,.today-button:hover,.message button:hover{background:#eef4f2}button:disabled{opacity:.5;cursor:default}.toolbar{display:flex;align-items:center;gap:12px;margin:34px 0 18px;flex-wrap:wrap}.month-nav{display:flex;align-items:center;background:#fff;border:1px solid #cbd6d9;border-radius:8px;overflow:hidden}.month-nav button{border:0;background:#fff;width:40px;height:40px;color:#263d48;font-size:25px;line-height:1}.month-nav button:hover{background:#eef4f2}.month-nav span{min-width:255px;text-align:center;font-size:14px;font-weight:700;padding:0 8px}.search-box{margin-left:auto}.search-box input{border:1px solid #cbd6d9;background:#fff;border-radius:8px;padding:10px 12px;width:230px;max-width:100%;outline-color:#238568}.legend{display:flex;align-items:center;gap:22px;flex-wrap:wrap;color:#50636e;font-size:13px;margin-bottom:14px}.legend>span{display:inline-flex;align-items:center;gap:7px}.legend-dot{width:13px;height:13px;border-radius:3px;display:inline-block}.legend-dot.available,.calendar td.available{background:#a9dfbf}.legend-dot.unavailable,.calendar td.unavailable{background:#e9ada6}.legend-dot.undefined,.calendar td.undefined{background:#e1e7e9}.result-count{font-size:12px;color:#71818a;margin:0 0 8px}.calendar-scroll{overflow:auto;max-height:calc(100vh - 330px);min-height:180px;border:1px solid #cbd6d9;border-radius:10px;background:#fff;box-shadow:0 6px 24px #1f38410d}.calendar{border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:100%;width:max-content;font-size:12px}.calendar th,.calendar td{border-right:1px solid #dbe3e5;border-bottom:1px solid #dbe3e5}.calendar thead th{position:sticky;background:#f0f4f4;z-index:2}.calendar .month-row th{top:0;height:34px;color:#45606c;font-size:12px;font-weight:750;text-align:left;padding-left:12px;border-bottom:1px solid #cbd6d9}.calendar .month-row th:not(.name-cell){border-left:2px solid #b9c9ce}.calendar .date-row th{top:34px;min-width:30px;width:30px;height:61px;text-align:center;color:#48616c;font-weight:500;padding:4px 2px}.calendar .date-row th span{display:block;font-size:10px}.calendar .date-row th strong{display:block;font-size:12px;color:#213743;margin-top:3px}.calendar .date-row .week-label{font-size:9px;height:12px;color:#85979e}.calendar .date-row th.weekend{background:#e9eeee}.calendar .name-cell{position:sticky;left:0;min-width:180px;width:180px;max-width:180px;z-index:3;box-shadow:3px 0 5px #162d3812}.calendar .month-row .name-cell{z-index:4;top:0;height:95px;vertical-align:bottom;padding:0 12px 15px;background:#e7eeed;color:#253e48}.calendar tbody .name-cell{text-align:left;padding:0 12px;height:29px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#fff;font-weight:600}.calendar tbody tr:nth-child(2n) .name-cell{background:#f8faf9}.calendar td{height:29px;min-width:30px;width:30px}.calendar .week-start{border-left:3px solid #819aa3}.calendar tbody tr:hover .name-cell{color:#087753}.calendar td:hover{outline:2px solid #204c5a;outline-offset:-2px}.footnote{font-size:12px;color:#72818a;line-height:1.5;margin:13px 0}.message{padding:34px 24px;background:#fff;border:1px solid #d6e0e1;border-radius:10px;color:#4c626b}.message.error{border-color:#e7b7b1;background:snow}.message.error strong{color:#9b3e36}.message p{margin:8px 0 16px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:700px){.content{padding:26px 14px 40px}.app-header{padding:14px}.header-note{display:none}.heading-row{align-items:start}.refresh-button{font-size:12px;padding:8px}.month-nav{width:100%;justify-content:space-between}.month-nav span{min-width:0;flex:1}.search-box{margin-left:0;flex:1}.search-box input{width:100%}.calendar .name-cell{min-width:140px;width:140px;max-width:140px}.calendar-scroll{max-height:calc(100vh - 360px)}}.cache-age{color:#50636e;font-size:12px;margin:6px 0 0}.cache-age time{cursor:help;text-decoration:underline dotted}
