.library-filters{flex-wrap:wrap;gap:8px;margin-bottom:32px;display:flex}.library-filters a{min-height:44px;font-size:var(--text-small);border:1px solid var(--line);border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;display:inline-flex}.library-filters a[aria-current=page]{background:var(--dark);color:var(--paper);border-color:var(--dark)}.library-filters a:hover:not([aria-current=page]){background:var(--sand)}.game-color-dot{background:var(--accent);border:1px solid #352d2230;border-radius:3px;flex:none;width:10px;height:10px}.puzzle-calendar{border-block:1px solid var(--line);padding:24px 0 20px}.calendar-toolbar,.calendar-controls{justify-content:space-between;align-items:center;gap:8px;display:flex}.calendar-toolbar{gap:20px;margin-bottom:20px}.calendar-toolbar h2{letter-spacing:-.02em;font-size:36px;line-height:1.1}.calendar-controls .icon-button{border:1px solid var(--line);border-radius:6px}.calendar-controls .icon-button:disabled{opacity:.35}.calendar-today{margin-right:8px}.calendar-grid{table-layout:fixed;border-collapse:separate;border-spacing:6px;width:100%}.calendar-grid th{text-align:left;font-size:var(--text-small);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 0 8px;font-weight:500}.calendar-grid abbr{text-decoration:none}.calendar-grid td{vertical-align:top;padding:0}.calendar-day{aspect-ratio:1;border:1px solid var(--line);text-align:left;background:#fcfbf9;border-radius:8px;width:100%;min-height:64px;padding:0;display:block;position:relative;overflow:hidden}.calendar-day:not(:disabled):hover{background:var(--sand);border-color:#a79e90}.calendar-day.is-selected{border-color:var(--ink)}.calendar-day.is-selected:after{content:"";border:2px solid var(--ink);border-radius:inherit;pointer-events:none;z-index:2;position:absolute;inset:0}.calendar-day.is-empty{color:var(--muted);background:0 0;border-color:#0000}.calendar-day time{z-index:1;width:26px;height:26px;font-size:var(--text-small);font-variant-numeric:tabular-nums;background:var(--paper);border-radius:50%;place-items:center;display:grid;position:absolute;top:6px;left:6px}.calendar-day.is-empty time{background:0 0}.calendar-day.is-today time{background:var(--ink);color:var(--paper);border-radius:50%}.calendar-markers{grid-auto-rows:1fr;display:grid;position:absolute;inset:0}.calendar-marker{color:var(--muted);background:var(--sand);justify-content:center;align-items:center;padding:4px 7px;display:flex}.calendar-marker+.calendar-marker{border-top:1px solid var(--line)}.calendar-marker.is-completed{background:var(--accent);color:var(--ink)}.calendar-marker.is-empty{background:var(--paper)}.calendar-legend{font-size:var(--text-small);color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px 24px;margin:18px 6px 0;display:flex}.calendar-legend>span{align-items:center;gap:6px;display:inline-flex}.calendar-legend>span:last-child{margin-left:auto}.calendar-dialog{overscroll-behavior:contain;border:1px solid var(--line);background:var(--paper);width:min(960px,100% - 32px);max-height:calc(100dvh - 32px);color:var(--ink);border-radius:16px;padding:0 24px 24px;overflow-y:auto}.calendar-dialog::backdrop{background:#231d1680}.calendar-dialog-heading{z-index:1;background:var(--paper);justify-content:space-between;align-items:flex-start;gap:16px;margin:0 -24px 8px;padding:24px 24px 16px;display:flex;position:sticky;top:0}.calendar-dialog-heading h2{letter-spacing:-.02em;font-size:32px;line-height:1.1}.calendar-dialog-heading p{font-size:var(--text-small);color:var(--muted);margin-top:8px}.calendar-dialog-heading .icon-button{border:1px solid var(--line);border-radius:50%;flex:none}.calendar-editions{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.calendar-edition{border:1px solid var(--line);background:var(--sand);border-top-width:4px;border-radius:8px;flex-direction:column;min-width:0;padding:20px;display:flex}a.calendar-edition:hover{border-color:#a79e90}.calendar-edition.is-completed,a.calendar-edition.is-completed:hover{border-top-color:var(--accent);background:color-mix(in srgb, var(--accent) 45%, var(--paper))}.calendar-edition-meta{font-size:var(--text-small);color:var(--muted);justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.calendar-edition-meta>span:last-child{white-space:nowrap}.calendar-edition h3{overflow-wrap:anywhere;margin:20px 0 8px;font-size:19px;line-height:1.3}.calendar-edition>p{color:var(--muted);font-size:var(--text-small);margin-bottom:24px}.calendar-edition-action{min-height:38px;font-size:var(--text-small);border-top:1px solid #352d2225;align-items:center;gap:6px;margin-top:auto;padding-top:14px;display:flex}a.calendar-edition .calendar-edition-action>svg:last-child{margin-left:auto}.calendar-access-link{min-height:44px;font-size:var(--text-small);text-underline-offset:4px;align-items:center;gap:6px;text-decoration:underline;display:inline-flex}.calendar-empty{background:var(--sand);color:var(--muted);border-radius:8px;margin-top:24px;padding:28px;font-size:14px}.library-note{font-size:var(--text-small);color:var(--muted);max-width:85ch;margin-top:28px}@media (width<=800px){.calendar-editions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.library-filters{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:24px;display:grid}.library-filters a{font-size:var(--text-small);padding:10px 8px}.calendar-toolbar h2{font-size:28px}.calendar-toolbar{gap:8px}.calendar-controls{gap:4px}.calendar-today{font-size:var(--text-small);margin-right:0;padding-inline:10px}.calendar-grid{border-spacing:3px}.calendar-grid th{text-align:center;font-size:var(--text-small);letter-spacing:0}.calendar-day{background:var(--sand);border-radius:6px}.calendar-day time{font-size:var(--text-small);width:20px;height:20px;top:3px;left:3px}.calendar-marker{padding:0}.calendar-markers{grid-auto-rows:minmax(0,1fr);top:26px}.calendar-marker svg{width:10px;height:10px}.calendar-legend{font-size:var(--text-small);gap:10px 18px;margin-inline:3px}.calendar-legend>span:last-child{flex-basis:100%;margin-left:0}.calendar-editions{grid-template-columns:1fr}.calendar-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:0 16px 16px}.calendar-dialog-heading{margin-inline:-16px;padding:16px}.calendar-dialog-heading h2{font-size:28px}}@media (width<=380px){.calendar-toolbar{flex-wrap:wrap}.calendar-toolbar h2{font-size:30px}.calendar-controls{margin-left:auto}}
