/* Handles reserve a real touch target instead of making the tiny bar draggable. */
.updates-sheet-handle{height:28px;width:100%;background:none;opacity:1;margin:0;display:grid;place-items:center;flex:none}
.updates-sheet-handle:before{content:'';width:36px;height:4px;border-radius:4px;background:var(--muted);opacity:.5}
:is(.sheet-handle,.arc-sheet-handle,.pickup-sheet-grip,.games-editor-grip,.updates-sheet-handle){touch-action:none;cursor:grab;user-select:none}
:is(.sheet-handle,.arc-sheet-handle,.pickup-sheet-grip,.games-editor-grip,.updates-sheet-handle):focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
dialog.sheet-sizing{box-sizing:border-box;max-height:calc(100dvh - 12px)!important;min-height:0!important;overflow:auto}
/* Keep entrance animation disabled for this whole open session after a drag.
   Removing sheet-dragging must not restart the CSS fade/slide animation. */
dialog.sheet-sizing{animation:none!important}
dialog.sheet-dragging{transition:none!important;user-select:none}
dialog.sheet-dragging :is(.sheet-handle,.arc-sheet-handle,.pickup-sheet-grip,.games-editor-grip,.updates-sheet-handle){cursor:grabbing}
dialog.sheet-sizing :is(.sheet-handle,.arc-sheet-handle,.pickup-sheet-grip,.games-editor-grip,.updates-sheet-handle){position:sticky;top:0;background:var(--bg);z-index:5}
body[data-active-page=archive] .topbar,body[data-active-page=codes] .topbar{display:none}
.collection-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin:0 0 10px}
.collection-header h1{font-size:20px;letter-spacing:-.5px;margin:0}
.collection-header .arc-view-tools{position:static;padding:0;flex:none}
.collection-header .arc-view-switch button{width:34px;height:30px}
.collection-header .arc-view-switch svg{width:20px;height:20px}
.update-added{color:#6acb9c}.update-changed{color:#edb65b}.update-removed{color:#ff8591}
[data-theme=light] .update-added{color:#17784c}[data-theme=light] .update-changed{color:#946000}[data-theme=light] .update-removed{color:#bf3042}
#updates-picker #updates-kinds [data-update-kind=changed][aria-pressed=true]{color:#edb65b;border-color:currentColor}
#updates-picker #updates-kinds [data-update-kind=removed][aria-pressed=true]{color:#ff8591;border-color:currentColor}
[data-theme=light] #updates-picker #updates-kinds [data-update-kind=changed][aria-pressed=true]{color:#946000}
[data-theme=light] #updates-picker #updates-kinds [data-update-kind=removed][aria-pressed=true]{color:#bf3042}
.update-card-meta{display:flex;flex-wrap:wrap;gap:5px;align-items:center;line-height:1.7}
.update-card-meta time{font-variant-numeric:tabular-nums}
#update-detail>.updates-sheet-handle{display:none}
.theme-manual{margin-top:14px;min-width:210px;font-size:12px;color:var(--text)}
.theme-manual summary{cursor:pointer;min-height:32px;display:flex;align-items:center;justify-content:space-between}
.theme-manual summary:after{content:'⌄';color:var(--muted)}
.theme-manual .theme-range-row{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:8px;margin:12px 0;color:var(--muted)}
.theme-manual input[type=range]{appearance:none;width:100%;min-width:0;height:8px;padding:0;border:0;border-radius:6px;background:var(--range);cursor:pointer}
.theme-manual input[type=range]::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border:2px solid var(--bg);border-radius:50%;background:var(--text);box-shadow:0 0 0 1px var(--muted)}
.theme-manual input[type=range]::-moz-range-thumb{width:14px;height:14px;border:2px solid var(--bg);border-radius:50%;background:var(--text)}
.theme-manual .theme-hex-row{display:flex;align-items:center;gap:10px;margin-top:16px}
.theme-color-preview{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--chosen-color)}
#theme-custom-color{width:100%;height:34px;background:transparent;color:var(--text);padding:5px 8px;font:inherit;border:1px solid var(--line);border-radius:6px}
#theme-color-error{color:var(--theme-danger);font-size:11px;margin:4px 0 0}#theme-color-error:empty{display:none}
@media(max-width:700px){.collection-header{min-height:46px;margin-bottom:4px}.collection-header h1{font-size:18px}#update-detail>.updates-sheet-handle{display:grid}.update-detail-body{padding-top:8px}.theme-manual{width:100%}}
/* Align section headings without changing their individual content widths. */
#calendar-page{padding-top:18px}
#archive-page{margin-top:18px;padding-top:0}
#codes-page,#news-page,#updates-page{margin-top:18px}
.collection-header h1,.updates-header h1{font-size:20px}
@media(max-width:700px){
 #calendar-page{padding-top:8px}
 #archive-page{margin-top:8px;padding-top:0}
 #codes-page,#news-page,#updates-page{margin-top:8px}
 .collection-header h1,.updates-header h1{font-size:20px}
}
/* On desktop the calendar keeps its utility toolbar. Align the other headings
   with the title beneath it, and do not vertically center short empty feeds. */
@media(min-width:701px){
 body:is([data-active-page="calendar"],[data-active-page="archive"],[data-active-page="codes"],[data-active-page="news"],[data-active-page="updates"]) .app-shell>main{align-self:start}
 #archive-page,#codes-page,#news-page,#updates-page{margin-top:93px}
}
