:root{--ink:#1a1a1a;--muted:#5b6475;--line:#dfe3ea;--page:#f4f6fa;--surface:#fff;--subtle:#f8fafc;--accent:#1d4ed8;--accent-hover:#1e40af;--header-bg:#1e2a47;--header-link:#c9d6ff;--free-bg:#dff3e4;--free-ink:#0b5d27;--free-hover:#bfe6c9;--booked-bg:#e2e2e2;--booked-ink:#3d3d3d;--past-bg:#f3f3f3;--past-ink:#6b6b6b;--error-bg:#fdecec;--error-ink:#8a1c1c;--radius:12px;--shadow:0 1px 2px #1018280f, 0 4px 12px #1018280f;--shadow-lift:0 2px 4px #1018281a, 0 6px 16px #1018281a}.lib-chifley{--lib:#0f766e}.lib-hancock{--lib:#6d28d9}.lib-menzies{--lib:#b45309}.lib-law{--lib:#be123c}*{box-sizing:border-box}body{color:var(--ink);background:var(--page);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}a{color:var(--accent)}a:hover{color:var(--accent-hover)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.site-header{background:var(--header-bg);box-shadow:0 2px 8px #10182826}.site-header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 2rem;max-width:80rem;margin:0 auto;padding:.85rem 1.5rem;display:flex}.site-name{color:#fff;letter-spacing:.01em;font-size:1.15rem;font-weight:700;text-decoration:none}.site-name:hover{color:#fff}.site-header :focus-visible{outline-color:#fff}.site-header nav{flex-wrap:wrap;gap:.25rem 1.5rem;display:flex}.site-header nav a{color:var(--header-link);border-bottom:2px solid #0000;padding-block:.15rem;font-weight:500;text-decoration:none}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:#fff;border-bottom-color:currentColor}main{max-width:44rem;margin:0 auto;padding:1.75rem 1.5rem 3rem}main.wide{max-width:80rem}h1{letter-spacing:-.01em;margin-block:0 .35rem;font-size:1.9rem;line-height:1.2}.lede{color:var(--muted);margin-top:0;font-size:1.02rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);padding:1.25rem 1.4rem}.lib-tag{background:var(--lib,var(--muted));color:#fff;letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:700;line-height:1.5;display:inline-block}.lib-tag.small{padding:.05rem .45rem;font-size:.68rem}form{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin-block:1.25rem;display:flex}label{flex-direction:column;gap:.25rem;font-size:.875rem;font-weight:600;display:flex}input,select,button{height:2.5rem}input,select{font:inherit;color:var(--ink);background:#fff;border:1px solid #8c93a1;border-radius:8px;padding:0 .7rem;font-size:1rem;font-weight:400;transition:border-color .15s,box-shadow .15s}input:hover,select:hover{border-color:#5b6475}input:focus-visible,select:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #1d4ed840}input[type=text],input[type=email]{min-width:16rem}input[type=number]{width:6rem}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;padding:0 1.2rem;font-weight:600;transition:background .15s,box-shadow .15s,transform .15s;box-shadow:0 1px 2px #1018281a}button:hover{background:var(--accent-hover);box-shadow:var(--shadow-lift)}button:active{transform:translateY(1px)}button.secondary{height:2rem;color:var(--error-ink);border-color:var(--error-ink);box-shadow:none;background:#fff;padding:0 .85rem}button.secondary:hover{background:var(--error-bg)}button.link{height:auto;box-shadow:none;color:var(--accent);background:0 0;border:0;padding:0;font-weight:400;text-decoration:underline}button.link:hover{box-shadow:none;color:var(--accent-hover);background:0 0}.filters{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);padding:1rem 1.25rem}.date-field{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.date-nav{gap:.35rem;display:flex}.date-nav a{border:1px solid var(--line);background:var(--subtle);border-radius:999px;justify-content:center;align-items:center;min-width:2.5rem;height:2.5rem;padding:0 .8rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.date-nav a:hover{border-color:var(--accent);background:#eef2ff}.date-nav a[aria-current=date]{border-color:var(--accent);background:var(--accent);color:#fff}.booking-card{border-top:4px solid var(--lib,var(--accent))}.target{margin:.6rem 0 0;font-size:1.4rem;font-weight:700;line-height:1.25}.target-when{margin:.2rem 0 0;font-size:1.05rem;font-weight:600}.target-meta{color:var(--muted);margin:.15rem 0 0}.card form{flex-direction:column;align-items:stretch;margin-bottom:0}.card button{align-self:flex-start}.error,.success,.notice{box-shadow:var(--shadow);border-radius:10px;padding:.8rem 1.1rem}.error{border-left:5px solid var(--error-ink);background:var(--error-bg);color:var(--error-ink)}.success{border-left:5px solid var(--free-ink);background:var(--free-bg);color:var(--free-ink);font-weight:600}.notice{border:1px solid var(--line);background:var(--surface);color:var(--muted)}.empty p{margin:.25rem 0}.not-you{color:var(--muted);align-items:baseline;gap:.4rem;margin-block:.75rem;font-size:.875rem}.filters+.not-you{margin-top:-.35rem}.grid-meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;margin-bottom:.75rem;display:flex}.summary{margin:0;font-size:1.05rem}.legend{color:var(--muted);flex-wrap:wrap;gap:.5rem 1.25rem;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.legend li{align-items:center;gap:.4rem;display:flex}.swatch{border:1px solid var(--line);border-radius:4px;width:1.1rem;height:1.1rem;display:inline-block}.grid-scroll{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-height:75vh;box-shadow:var(--shadow);position:relative;overflow:auto}.grid{border-collapse:separate;border-spacing:0;font-size:.875rem}.grid th,.grid td{border-bottom:1px solid #eef0f4;padding:3px}.grid thead th{z-index:2;background:var(--surface);border-bottom:1px solid var(--line);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;padding:.6rem .25rem;font-weight:600;position:sticky;top:0}.grid thead th.now{color:var(--accent)}.now-badge{background:var(--accent);color:#fff;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;width:fit-content;margin:.1rem auto 0;padding:0 .35rem;font-size:.65rem;font-weight:700;display:block}.grid td.now-col{background:#eef2ff}.grid th.corner,.grid th.room{text-align:left;background:var(--surface);border-right:1px solid var(--line);position:sticky;left:0}.grid th.corner{z-index:3;color:var(--ink);padding-inline:.9rem}.grid th.room{z-index:1;white-space:nowrap;box-shadow:inset 4px 0 0 var(--lib,transparent);padding:.4rem .9rem;font-weight:500}.grid .library-row th{text-align:left;background:var(--subtle);border-top:1px solid var(--line);padding:.7rem 0 .45rem}.grid .library-row th>span{align-items:center;gap:.6rem;padding-inline:.9rem;display:inline-flex;position:sticky;left:0}.lib-count{color:var(--muted);font-size:.8rem;font-weight:500}.slot{border-radius:6px;justify-content:center;align-items:center;min-width:3.5rem;height:2.1rem;font-size:.8rem;text-decoration:none;display:flex}.slot-free{background:var(--free-bg);color:var(--free-ink);border:1px solid #9fd6ae;font-weight:600;transition:background .15s,box-shadow .15s,transform .15s}a.slot-free:hover{background:var(--free-hover);color:var(--free-ink);box-shadow:var(--shadow-lift);transform:translateY(-1px)}a.slot-free:focus-visible{outline-offset:1px}.slot-booked{background:var(--booked-bg);color:var(--booked-ink)}.slot-past{background:var(--past-bg);color:var(--past-ink)}.list-card{padding:.25rem .5rem;overflow-x:auto}.list{border-collapse:collapse;width:100%}.list th,.list td{text-align:left;vertical-align:middle;border-bottom:1px solid #eef0f4;padding:.75rem .6rem}.list tbody tr:last-child td{border-bottom:0}.list thead th{letter-spacing:.03em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:600}.list tbody tr{transition:background .15s}.list tbody tr:hover td{background:var(--subtle)}.list tr.highlight td,.list tr.highlight:hover td{background:var(--free-bg)}.room-cell{align-items:center;gap:.5rem;font-weight:500;display:inline-flex}.list form{margin:0}@media (width<=40rem){.site-header-inner{padding:.75rem 1rem}main{padding:1.25rem 1rem 2.5rem}h1{font-size:1.6rem}input[type=text],input[type=email]{width:100%;min-width:0}.grid th.room{white-space:normal;min-width:8rem;max-width:9rem;line-height:1.3}.list th,.list td{padding-inline:.4rem}.list td:nth-child(2),.list td:nth-child(3){white-space:nowrap}.dow{display:block}.list-card{padding-inline:.25rem}.list button.secondary{padding:0 .6rem}.room-cell{flex-direction:column;align-items:flex-start;gap:.2rem}}
