.hu-calendar { width:min(23rem,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); overflow:auto; box-sizing:border-box; margin:auto; padding:1rem; border:1px solid var(--border); border-radius:.65rem; background:var(--surface); color:var(--text); box-shadow:0 1rem 3rem #0005; font:1rem/1.4 system-ui,sans-serif; }
.hu-calendar::backdrop { background:#10231d80; }
.hu-calendar-head { display:grid; grid-template-columns:2.6rem 1fr 2.6rem; align-items:center; gap:.5rem; margin-bottom:.65rem; }
.hu-calendar .hu-calendar-head h2 { margin:0; color:var(--text); font:600 1rem/1.4 system-ui,sans-serif; text-align:center; }
.hu-calendar button { min-height:2.5rem; padding:.35rem; border:1px solid var(--border); border-radius:.35rem; background:var(--surface); color:var(--text); font:inherit; cursor:pointer; }
.hu-calendar button:hover { border-color:var(--link); box-shadow:inset 0 0 0 1px var(--link); }
.hu-calendar button:disabled { opacity:.45; cursor:default; }
.hu-calendar-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.2rem; margin:.2rem 0; text-align:center; }
.hu-calendar [role=columnheader] { padding:.3rem 0; font-size:.8rem; color:var(--muted); }
.hu-calendar [role=gridcell] button { width:100%; min-width:0; border-color:transparent; }
.hu-calendar [aria-selected=true] button { background:var(--selection); color:var(--selection-text); border-color:var(--border); }
.hu-calendar button[aria-current=date] { text-decoration:underline; text-underline-offset:.2rem; font-weight:700; }
.hu-calendar-actions { display:flex; justify-content:space-between; gap:1rem; margin-top:.8rem; padding-top:.75rem; border-top:1px solid var(--border); }
.hu-calendar-actions button { padding:.4rem .8rem; }
