html{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--ui-bg);color:var(--ui-ink)}body{margin:0}.shell{max-width:52rem;margin:0 auto;padding:2rem 1rem}.card{background:var(--ui-panel);border:1px solid var(--ui-line);border-radius:1rem;padding:1.25rem}h1{font-size:clamp(1.8rem,7vw,3rem);line-height:1.05}.muted{color:var(--ui-muted)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}@supports(padding:max(0px)){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}
.card+.card{margin-top:1rem}
label{display:block;font-weight:600;margin-top:1rem}
input,select,button{font:inherit}
input,select{width:100%;box-sizing:border-box;padding:.75rem;border:1px solid var(--ui-line);border-radius:.6rem;background:Canvas;color:CanvasText}
button{margin-top:1rem;padding:.7rem 1rem;border:1px solid var(--ui-muted);border-radius:.6rem;background:ButtonFace;color:ButtonText}
.notice,.error{padding:1rem;border:1px solid var(--ui-line);border-radius:.75rem;margin-bottom:1rem}
.error{border-width:2px}
.inline{display:inline}
.inline button{margin:.25rem}
a{color:inherit}

.page-head,.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:700;color:var(--ui-muted);margin-bottom:.35rem}
h2{margin-top:0}
.button-link{display:inline-block;padding:.7rem 1rem;border:1px solid var(--ui-muted);border-radius:.6rem;text-decoration:none}
.group-row,.member-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 0;border-top:1px solid var(--ui-line);text-decoration:none}
.group-row:first-of-type,.member-row:first-of-type{border-top:0}
.group-row small,.member-row small{display:block;color:var(--ui-muted);margin-top:.2rem}
.badge{display:inline-block;border:1px solid var(--ui-line);border-radius:999px;padding:.2rem .55rem;font-size:.78rem;white-space:nowrap}
.preview-box{margin:1rem 0;padding:1rem;border:1px dashed var(--ui-muted);border-radius:.75rem}
.action-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.collection-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 0;border-top:1px solid var(--ui-line)}.collection-row:first-of-type{border-top:0}.collection-main{min-width:0}.collection-main strong,.collection-main small{display:block}.collection-main small{color:var(--ui-muted);margin-top:.25rem}.collection-meta{flex:0 0 auto}.empty-state{padding:.5rem 0}.empty-state h3{margin-bottom:.4rem}@media(max-width:32rem){.collection-row{flex-direction:column}.collection-meta{align-self:flex-start}}
.app-nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,Canvas 94%,transparent);border-bottom:1px solid var(--ui-line);backdrop-filter:blur(12px)}.app-nav-inner{max-width:52rem;margin:0 auto;padding:.65rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.app-brand{font-weight:750;text-decoration:none}.app-menu{position:relative}.app-menu summary{list-style:none;cursor:pointer;border:1px solid var(--ui-line);border-radius:.6rem;padding:.45rem .7rem;font-size:1.25rem;line-height:1}.app-menu summary::-webkit-details-marker{display:none}.app-menu nav{position:absolute;right:0;top:calc(100% + .45rem);min-width:13rem;background:Canvas;border:1px solid var(--ui-line);border-radius:.75rem;padding:.45rem;box-shadow:0 .5rem 1.5rem rgba(0,0,0,.12)}.app-menu nav a,.app-menu nav button{display:block;width:100%;box-sizing:border-box;text-align:left;padding:.65rem .75rem;margin:0;border:0;background:transparent;border-radius:.45rem;text-decoration:none}.app-menu nav a:hover,.app-menu nav button:hover{background:var(--ui-line)}.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}.check-row{display:flex;align-items:center;gap:.6rem;font-weight:500}.check-row input,.import-check input{width:auto}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:1rem 0}.summary-grid .card{margin:0;text-align:center;padding:.8rem}.summary-grid strong,.summary-grid small{display:block}.summary-grid strong{font-size:1.5rem}.import-row{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:.75rem;padding:.85rem 0;border-top:1px solid var(--ui-line);margin:0;font-weight:400}.import-row:first-of-type{border-top:0}.import-main{min-width:0}.import-main strong,.import-main small{display:block}.import-main small{color:var(--ui-muted);margin-top:.2rem}.status-new{font-weight:650}.status-unclear{border-style:dashed}@media(max-width:32rem){.summary-grid{grid-template-columns:repeat(2,1fr)}.import-row{grid-template-columns:auto 1fr}.import-row>.badge{grid-column:2;justify-self:start}.app-nav-inner{padding-top:max(.65rem,env(safe-area-inset-top))}}

/* v0.3.3a-ui-fix:start */
.app-nav{background:var(--ui-panel);color:var(--ui-ink);border-bottom-color:var(--ui-line)}.app-brand{color:var(--ui-ink)}.app-menu summary{background:var(--ui-panel);color:var(--ui-ink);border-color:var(--ui-muted)}.app-menu nav{background:var(--ui-panel);color:var(--ui-ink);border-color:var(--ui-line)}.app-menu nav a,.app-menu nav button{color:var(--ui-ink);background:transparent}.app-menu nav a:hover,.app-menu nav button:hover,.app-menu nav a:focus-visible,.app-menu nav button:focus-visible{background:var(--ui-line)}@media(max-width:32rem){.page-head{display:block}.page-head>.action-row{margin-top:1rem}.page-head>.action-row .button-link{flex:1 1 100%;text-align:center}}
/* v0.3.3a-ui-fix:end */

/* v0.3.4-collection-browse:start */
.collection-filter{margin:1rem 0}.collection-filter>label:first-child{margin-top:0}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.filter-grid label{margin-top:.8rem}.filter-actions button{margin-top:0}.collection-summary{display:flex;align-items:baseline;gap:.45rem;margin:1rem .2rem .55rem;color:var(--ui-muted)}.collection-summary strong{font-size:1.35rem;color:var(--ui-ink)}.collection-list{background:var(--ui-panel);border:1px solid var(--ui-line);border-radius:1rem;overflow:hidden}.collection-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .75rem;padding:.9rem 1rem;border-top:1px solid var(--ui-line);text-decoration:none}.collection-item:first-child{border-top:0}.collection-item:hover,.collection-item:focus-visible{background:var(--ui-soft)}.collection-title{font-weight:700;min-width:0}.collection-subline{grid-column:1;color:var(--ui-muted);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collection-item-meta{grid-column:2;grid-row:1 / span 2;display:flex;gap:.35rem;align-items:center}.pager{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin:1rem 0}.pager .disabled{opacity:.45}.detail-actions{margin:1rem 0}.detail-stack{display:grid;gap:1rem}.detail-stack .card{margin:0}.detail-list{margin:0}.detail-list>div{display:grid;grid-template-columns:minmax(7rem,30%) 1fr;gap:1rem;padding:.65rem 0;border-top:1px solid var(--ui-line)}.detail-list>div:first-child{border-top:0}.detail-list dt{font-weight:650;color:var(--ui-muted)}.detail-list dd{margin:0;min-width:0}.preline{white-space:pre-line}.edit-form textarea{width:100%;box-sizing:border-box;padding:.75rem;border:1px solid var(--ui-line);border-radius:.6rem;background:Canvas;color:CanvasText;font:inherit;resize:vertical}.edit-form>.card+.card{margin-top:1rem}.import-top-action{position:sticky;top:4.2rem;z-index:10;display:flex;align-items:center;gap:.75rem;padding:.65rem .8rem;margin:.75rem 0;background:var(--ui-panel);border:1px solid var(--ui-line);border-radius:.75rem;backdrop-filter:blur(10px)}.import-top-action button{margin:0}.import-top-action small{color:var(--ui-muted)}
@media(max-width:32rem){.filter-grid{grid-template-columns:1fr}.collection-item{grid-template-columns:minmax(0,1fr)}.collection-subline{grid-column:1}.collection-item-meta{grid-column:1;grid-row:auto;margin-top:.35rem}.pager{flex-wrap:wrap}.pager>span:not(.button-link){order:-1;flex-basis:100%;text-align:center}.detail-list>div{grid-template-columns:1fr;gap:.2rem}.import-top-action{top:4.65rem;display:block}.import-top-action small{display:block;margin-top:.45rem}}
/* v0.3.4-collection-browse:end */

/* v0.3.5-search-filter:start */
.collection-search{margin:1rem 0}.simple-search-card>label:first-child{margin-top:0}.search-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:end}.search-line button{margin:0;min-height:3rem}.search-tools{display:flex;flex-wrap:wrap;gap:.65rem;align-items:flex-start;margin-top:.8rem}.filter-panel{position:relative}.filter-panel>summary{list-style:none;cursor:pointer;display:inline-block;padding:.7rem 1rem;border:1px solid var(--ui-muted);border-radius:.6rem;background:var(--ui-panel)}.filter-panel>summary::-webkit-details-marker{display:none}.filter-panel-body{margin-top:.65rem;padding:1rem;border:1px solid var(--ui-line);border-radius:.8rem;background:var(--ui-panel)}.filter-panel[open]{flex:1 1 100%}.filter-panel[open]>.filter-panel-body{width:auto}.search-mode-link{white-space:nowrap}.advanced-search-card{margin-top:1rem}.advanced-search-card h2{margin-bottom:.25rem}.advanced-grid{margin-bottom:1rem}.range-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.range-filter{min-width:0;margin:0;padding:.9rem;border:1px solid var(--ui-line);border-radius:.8rem}.range-filter legend{font-weight:700;padding:0 .25rem}.range-enable{margin-top:0;font-size:.9rem}.range-values{display:flex;justify-content:space-between;align-items:center;gap:.4rem;margin:.8rem 0 .45rem;font-variant-numeric:tabular-nums}.range-values output{font-weight:650}.dual-range{position:relative;height:2rem;--low:0%;--high:100%}.dual-range::before{content:"";position:absolute;left:0;right:0;top:.85rem;height:.3rem;border-radius:999px;background:linear-gradient(to right,var(--ui-line) 0 var(--low),var(--ui-muted) var(--low) var(--high),var(--ui-line) var(--high) 100%)}.dual-range input[type=range]{position:absolute;inset:0;width:100%;height:2rem;margin:0;padding:0;border:0;background:transparent;appearance:none;-webkit-appearance:none;pointer-events:none}.dual-range input[type=range]::-webkit-slider-runnable-track{height:.3rem;background:transparent}.dual-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:1.35rem;height:1.35rem;margin-top:-.52rem;border:2px solid var(--ui-muted);border-radius:50%;background:var(--ui-panel);pointer-events:auto}.dual-range input[type=range]::-moz-range-track{height:.3rem;background:transparent}.dual-range input[type=range]::-moz-range-thumb{width:1.2rem;height:1.2rem;border:2px solid var(--ui-muted);border-radius:50%;background:var(--ui-panel);pointer-events:auto}.search-hint{font-size:.9rem}.active-filters{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin:.8rem 0}.filter-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border:1px solid var(--ui-line);border-radius:999px;text-decoration:none;background:var(--ui-panel);font-size:.86rem}.clear-filters{font-size:.86rem}.collection-item:not(:has(.collection-subline)){grid-template-rows:auto}.collection-item:not(:has(.collection-subline)) .collection-item-meta{grid-row:1}.collection-item-meta{align-self:center}
@media(max-width:44rem){.range-grid{grid-template-columns:1fr}.advanced-grid{grid-template-columns:1fr 1fr}}
@media(max-width:32rem){.search-line{grid-template-columns:1fr}.search-line button{width:100%}.search-tools{display:grid;grid-template-columns:1fr 1fr}.filter-panel>summary,.search-mode-link{display:block;text-align:center;width:100%;box-sizing:border-box}.filter-panel[open]{grid-column:1 / -1}.filter-panel-body{padding:.8rem}.advanced-grid{grid-template-columns:1fr}.active-filters{margin-top:.65rem}.collection-item-meta{flex-wrap:wrap}}
/* v0.3.5-search-filter:end */

/* v0.3.5d-ios-form-controls:start */
/*
 * The current application surface is a light theme. iOS/Safari must therefore
 * not infer dark native form controls from the device setting.
 */

input,select,textarea{
    background:var(--ui-panel);
    color:var(--ui-ink);
    -webkit-text-fill-color:var(--ui-ink);
    border-color:var(--ui-line);
}
input::placeholder,textarea::placeholder{
    color:var(--ui-muted);
    opacity:1;
    -webkit-text-fill-color:var(--ui-muted);
}
input:disabled,select:disabled,textarea:disabled{
    background:var(--ui-soft);
    color:var(--ui-muted);
    -webkit-text-fill-color:var(--ui-muted);
    opacity:1;
}
button{
    background:var(--ui-panel);
    color:var(--ui-ink);
    border-color:var(--ui-muted);
    opacity:1;
}
button:disabled{
    background:var(--ui-line);
    color:var(--ui-muted);
    opacity:.72;
    cursor:not-allowed;
}
button:not(:disabled):active,.button-link:active,.filter-panel>summary:active{
    background:var(--ui-soft);
}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,.button-link:focus-visible,.filter-panel>summary:focus-visible{
    outline:3px solid var(--ui-line);
    outline-offset:2px;
}
input[type=search]{
    -webkit-appearance:none;
    appearance:none;
}
.collection-search input,.collection-search select{
    background:var(--ui-panel);
    color:var(--ui-ink);
    -webkit-text-fill-color:var(--ui-ink);
}
.search-line button{
    background:var(--ui-panel);
    color:var(--ui-ink);
}
.dual-range input[type=range]{
    -webkit-text-fill-color:initial;
}
/* v0.3.5d-ios-form-controls:end */

/* v0.3.5e-slider-values:start */
.range-values{
    justify-content:space-between;
    padding:.45rem .6rem;
    border-radius:.55rem;
    background:var(--ui-soft);
}
.range-values>span{display:flex;gap:.3rem;align-items:baseline}
.range-values output{font-size:1.05rem}
.dual-range{margin-top:1.6rem}
.range-bubble{
    position:absolute;
    z-index:5;
    top:-1.75rem;
    transform:translateX(-50%);
    min-width:2.4rem;
    padding:.22rem .42rem;
    border:1px solid var(--ui-muted);
    border-radius:.45rem;
    background:var(--ui-ink);
    color:var(--ui-panel);
    text-align:center;
    font-size:.82rem;
    font-weight:700;
    font-variant-numeric:tabular-nums;
    pointer-events:none;
    white-space:nowrap;
}
.range-bubble[hidden]{display:none}
@media(max-width:32rem){
    .range-values{font-size:.95rem}
    .range-values output{font-size:1.1rem}
}
/* v0.3.5e-slider-values:end */

/* v0.3.5f-db-range-slider:start */
.dual-range{
    height:4.2rem;
    margin-top:.8rem;
}
.dual-range::before{
    top:2.65rem;
}
.dual-range input[type=range]{
    top:1.8rem;
    bottom:auto;
    height:2rem;
}
.range-bubble{
    top:0;
    display:block;
    min-width:2.8rem;
    transition:transform .08s ease, box-shadow .08s ease;
}
.range-bubble-low{left:var(--low)}
.range-bubble-high{left:var(--high)}
.range-bubble.is-active{
    transform:translateX(-50%) scale(1.12);
    box-shadow:0 3px 12px rgba(0,0,0,.25);
}
.range-source{
    margin:.15rem 0 0;
    font-size:.78rem;
    color:var(--ui-muted);
}
.range-empty{
    margin:.7rem 0 .2rem;
    padding:.7rem;
    border-radius:.55rem;
    background:var(--ui-soft);
    color:var(--ui-muted);
}
.range-unavailable{
    background:var(--ui-bg);
}
@media(max-width:32rem){
    .range-bubble{
        font-size:.9rem;
        min-width:3rem;
        padding:.28rem .48rem;
    }
}
/* v0.3.5f-db-range-slider:end */

/* v0.3.6-metadata-enrichment:start */
.metadata-coverage .card strong{font-variant-numeric:tabular-nums}
.metadata-change,.metadata-conflict{display:flex!important;flex-wrap:wrap;gap:.35rem .7rem}
.metadata-change span{padding:.15rem .35rem;border-radius:.35rem;background:var(--ui-soft);color:var(--ui-ink)}
.metadata-conflict span{padding:.15rem .35rem;border-radius:.35rem;border:1px dashed var(--ui-muted);color:var(--ui-ink)}
.status-update{font-weight:700}
.status-conflict,.status-invalid,.status-ambiguous,.status-not_found{border-style:dashed}
@media(max-width:32rem){
    .page-head>.action-row{display:grid;grid-template-columns:1fr}
    .page-head>.action-row .button-link{width:100%;box-sizing:border-box}
}
/* v0.3.6-metadata-enrichment:end */

/* v0.3.8: local decorative background; content remains fully opaque. */
body{position:relative;isolation:isolate;min-height:100vh}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:url("../images/meeple.svg?v=0341") right 5vw bottom 8vh / min(65vw,34rem) auto no-repeat;opacity:.055}
.group-settings{margin-top:1rem}.group-settings>summary{cursor:pointer;font-weight:650;padding:.25rem 0}
.leave-confirm{display:flex;align-items:flex-start;gap:.6rem}.leave-confirm input{width:1.25rem;height:1.25rem;flex:0 0 auto;margin:.15rem 0}
@media print{body::before{display:none}}

/* v0.3.9: role editor uses a separate full-width row on small screens. */
.member-role-row{flex-wrap:wrap}.member-role-row>span:first-child{flex:1;min-width:0;overflow-wrap:anywhere}
.member-role-controls{flex:0 0 100%;min-width:0}.member-role-controls>summary{cursor:pointer;padding:.5rem 0}
.member-role-controls form{padding:.75rem;border:1px solid var(--ui-line);border-radius:.6rem}
.member-role-controls label{margin-top:0}.member-role-controls select{max-width:100%}

/* Partien: mobile touch targets, no external assets. */
.play-people { border: 1px solid var(--ui-line); border-radius: 12px; margin: 1.2rem 0; padding: 1rem; min-width: 0; }
.play-person { display: flex; align-items: center; gap: .75rem; min-height: 44px; overflow-wrap: anywhere; }
.play-person input[type=checkbox] { flex: 0 0 24px; width: 24px; height: 24px; margin: 0; }
.play-notes { white-space: pre-wrap; overflow-wrap: anywhere; }

/* Ranking enhancement; only the drag handle captures touch gestures. */
[data-ranking-form] [hidden] { display: none !important; }
.ranking-ready .ranking-manual { display: none; }
.ranking-heading { display:flex; gap:.65rem; align-items:center; margin-bottom:.8rem; }
.ranking-name { flex:1; min-width:0; overflow-wrap:anywhere; }
.ranking-name strong { display:block; }
.ranking-name .badge { margin-top:.35rem; }
.ranking-handle { touch-action:none; user-select:none; -webkit-user-select:none; cursor:grab; }
.ranking-handle, .ranking-arrows button { min-width:44px; min-height:44px; padding:.4rem; margin:0; }
.ranking-arrows { display:flex; gap:.35rem; }
.ranking-arrows button:disabled { opacity:.35; }
.ranking-card.is-dragging { outline:3px solid var(--ui-main); background:var(--ui-soft); }
.ranking-tie, .ranking-confirm { display:flex; align-items:center; gap:.7rem; min-height:44px; margin:1rem 0; }
.ranking-tie input, .ranking-confirm input { flex:0 0 24px; width:24px; height:24px; margin:0; }

[data-game-picker] [hidden] { display:none !important; }
.game-matches { max-height:16rem; overflow-y:auto; border:1px solid #aaa; border-radius:10px; background:var(--ui-panel); margin:.4rem 0; overscroll-behavior:contain; }
.game-match { padding:.8rem; min-height:44px; box-sizing:border-box; cursor:pointer; overflow-wrap:anywhere; border-bottom:1px solid var(--ui-line); }
.game-match[aria-selected="true"] { background:var(--ui-soft); outline:2px solid var(--ui-main); outline-offset:-2px; }

/* Native radio stars: touch/keyboard usable without JavaScript. */
.rating-stars{border:0;padding:0;margin:1.25rem 0;min-width:0}
.rating-stars legend{font-weight:700;padding:0}
.star-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem;max-width:24rem}
.star-choice{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60px;margin:0;border:1px solid var(--ui-line);border-radius:.6rem;cursor:pointer;color:var(--ui-muted)}
.star-choice input{position:absolute;width:1px;height:1px;opacity:0;padding:0}
.star-choice .star-glyph{font-size:1.9rem;line-height:1.1;color:#9b9b9b}
.star-choice:has(input:checked){border:2px solid var(--ui-main);background:var(--ui-soft);font-weight:700}
.star-choice:focus-within{outline:3px solid var(--ui-main);outline-offset:2px}
.rating-unset{display:flex;align-items:center;gap:.6rem;min-height:44px;font-weight:400;margin-top:.5rem}
.rating-unset input{width:22px;height:22px;margin:0;flex:0 0 auto}
.rating-details{margin:1.2rem 0;padding:.8rem 0;border-top:1px solid var(--ui-line)}
.rating-details>summary{cursor:pointer;font-weight:650;min-height:44px;padding:.5rem 0}
.star-options:has(label:nth-child(1) input:checked) label:nth-child(-n+1) .star-glyph{color:var(--ui-warning)}
.star-options:has(label:nth-child(2) input:checked) label:nth-child(-n+2) .star-glyph{color:var(--ui-warning)}
.star-options:has(label:nth-child(3) input:checked) label:nth-child(-n+3) .star-glyph{color:var(--ui-warning)}
.star-options:has(label:nth-child(4) input:checked) label:nth-child(-n+4) .star-glyph{color:var(--ui-warning)}
.star-options:has(label:nth-child(5) input:checked) label:nth-child(-n+5) .star-glyph{color:var(--ui-warning)}

.result-photo{border-top:1px solid var(--ui-line);padding:1rem 0;overflow-wrap:anywhere}
.result-photo>a{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}
.result-photo img{display:block;width:auto;max-width:100%;height:auto;max-height:20rem;object-fit:contain;border:1px solid var(--ui-line);border-radius:.5rem}
.result-photo details{margin-top:.75rem}.result-photo summary{cursor:pointer;padding:.5rem 0}
.result-photos input[type=file]{max-width:100%;min-width:0}

/* Personal collection ratings: wrap on narrow screens, no fixed width. */
.collection-rating{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.2rem .8rem;font-size:.9rem;min-width:0}.collection-stars{white-space:nowrap;letter-spacing:.04em}

/* v0.3.20: personal filters stay visible, supplementary filters are collapsible. */
.collection-rating-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:end;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--ui-line)}
.collection-rating-filters>div{min-width:0}
.collection-rating-filters label{margin-top:0}
.collection-rating-filters select{width:100%;min-width:0}
.collection-rating-filters .check-row{display:flex;align-items:center;gap:.65rem;min-height:3rem;margin:0;padding:.65rem .8rem;border:1px solid var(--ui-line);border-radius:.6rem;box-sizing:border-box;cursor:pointer}
.collection-rating-filters .check-row input{flex:0 0 auto;width:1.3rem;height:1.3rem;margin:0}
.rating-filter-actions{display:flex;justify-content:flex-start}
.rating-filter-actions button{margin:0;min-height:2.75rem}
.collection-search .filter-panel>summary::after{content:" ＋";font-weight:700}
.collection-search .filter-panel[open]>summary::after{content:" −"}
.active-filter-label{font-size:.9rem;font-weight:700}
.active-filters .filter-chip{min-height:2.75rem;box-sizing:border-box;background:var(--ui-soft);border-color:var(--ui-main);color:var(--ui-main);overflow-wrap:anywhere}
.active-filters .clear-filters{display:inline-flex;align-items:center;min-height:2.75rem}
.collection-rating-score{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.3rem;padding:.25rem .5rem;border-radius:.5rem;background:var(--ui-warning-bg);color:var(--ui-warning)}
.collection-rating-score .collection-stars{font-size:1.1rem;color:var(--ui-warning)}
@media(max-width:40rem){.collection-rating-filters{grid-template-columns:minmax(0,1fr);gap:.8rem}.rating-filter-actions button{width:100%}.collection-search .search-tools{display:flex;flex-direction:column;align-items:stretch}.collection-search .filter-panel[open]{flex:auto}.collection-search .search-mode-link{white-space:normal}.collection-rating{gap:.4rem}.active-filter-label{flex-basis:100%}}

/* Group-private gameplay galleries. */
.gameplay-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.gameplay-gallery .card{margin:0;min-width:0}
.gameplay-photo img{display:block;width:100%;height:auto;max-height:24rem;object-fit:contain;border-radius:.6rem;background:var(--ui-soft)}
.gameplay-photo .preline{overflow-wrap:anywhere}
.gameplay-photo .button-link{white-space:normal}
textarea[name="caption"]{display:block;width:100%;box-sizing:border-box;padding:.75rem;border:1px solid var(--ui-line);border-radius:.6rem;font:inherit;background:Canvas;color:CanvasText;resize:vertical}
@media(max-width:40rem){.gameplay-gallery{grid-template-columns:minmax(0,1fr)}}

/* Guided entry and local camera preview. */
[data-ean-scanner] video{display:block;width:100%;max-height:22rem;object-fit:contain;background:var(--ui-ink);border-radius:.6rem}
[data-ean-scanner] [hidden]{display:none!important}
.entry-match{padding:.8rem 0;border-bottom:1px solid var(--ui-line)}
.entry-match:last-child{border-bottom:0}
.entry-match .button-link{white-space:normal}
[data-media-form] [hidden]{display:none!important}

/* v0.3.23: independent image link, large touch target and stable row geometry. */
.collection-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:.75rem;align-items:center;padding:.8rem;border-bottom:1px solid var(--ui-line);background:var(--ui-panel)}
.collection-row .collection-item{border:0;padding:0;min-width:0;background:transparent;display:flex;flex-direction:column;align-items:stretch;gap:.3rem}
.collection-row .collection-item-meta{align-self:flex-start;flex-wrap:wrap}.collection-cover{display:flex;align-items:center;justify-content:center;width:72px;min-height:88px;border-radius:.4rem;background:var(--ui-soft);overflow:hidden}
.collection-cover img{width:72px;height:88px;object-fit:contain}.collection-cover-placeholder img{opacity:.2;padding:.6rem;box-sizing:border-box}.collection-series-label{font-size:.85rem;color:var(--ui-muted)}.collection-series-filter{margin:.75rem 0;max-width:28rem}
.game-cover-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1rem}.game-cover-grid article{min-width:0;padding:.75rem;border:1px solid var(--ui-line);border-radius:.6rem}.game-cover-preview{display:block;width:100%;max-width:240px;height:240px;object-fit:contain;background:var(--ui-soft);border-radius:.4rem}
@media(max-width:32rem){.collection-row{grid-template-columns:56px minmax(0,1fr);gap:.6rem;padding:.7rem}.collection-cover,.collection-cover img{width:56px}.collection-cover img{height:72px}.collection-cover{min-height:72px}}

/* v0.3.24: series workflow, visible upload status and detail cover. */
.series-member{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.6rem 0;border-bottom:1px solid var(--ui-line)}.series-member form{margin:0}.series-member button{font-size:.9rem;margin:0}.series-candidates{max-height:26rem;overflow:auto;overscroll-behavior:contain;border:1px solid var(--ui-line);padding:.65rem;border-radius:.5rem}.series-candidates [hidden]{display:none!important}
.upload-feedback{padding:1rem;margin-top:1rem;border:1px solid var(--ui-line);border-radius:.65rem;background:var(--ui-bg)}.upload-feedback[hidden]{display:none}.upload-feedback progress{display:block;width:100%;height:1.25rem;accent-color:var(--ui-main)}.upload-feedback progress[hidden]{display:none}.upload-feedback p{margin:.3rem 0}.upload-feedback [role=alert]{color:var(--ui-danger)}.upload-feedback li{overflow-wrap:anywhere}form[aria-busy=true] button:disabled{opacity:.6;cursor:wait}
.detail-game-heading{display:flex;align-items:center;gap:1.25rem;margin:1rem 0}.detail-game-heading h1{margin:0;min-width:0;overflow-wrap:anywhere}.detail-game-cover{flex:0 0 160px}.detail-game-cover img{display:block;max-width:100%;width:160px;height:200px;object-fit:contain;border-radius:.5rem;background:var(--ui-panel)}
@media(max-width:32rem){.detail-game-heading{gap:.8rem}.detail-game-cover{flex-basis:100px}.detail-game-cover img{width:100px;height:130px}.detail-game-heading h1{font-size:1.8rem}}

/* v0.3.31: personal quick start and available-window layout */
.favorites-quick{margin:1rem 0}.favorites-quick h2{font-size:1.15rem}.favorites-quick .section-head{align-items:baseline;flex-wrap:wrap;gap:.4rem}.favorites-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:.7rem;margin:.7rem 0}.favorites-grid article{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:.55rem;padding:.7rem;border:1px solid var(--ui-line);border-radius:.6rem;min-width:0}.favorites-grid strong{overflow-wrap:anywhere}.favorites-grid .button-link{font-size:.9rem;min-height:44px;box-sizing:border-box}.favorite-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.65rem 0;border-bottom:1px solid var(--ui-line)}.favorite-row>div{min-width:0;overflow-wrap:anywhere}.favorite-row small,.favorite-row>div>a:last-child:not(:first-child){display:block;margin-top:.25rem}.favorite-row form{flex-shrink:0}.favorite-row button{margin:0;min-height:44px}.shell{min-width:0;box-sizing:border-box}
@media(min-width:64rem){.shell,.app-nav-inner{max-width:none;padding-left:2rem;padding-right:2rem}.shell>p{max-width:75ch}.shell>form.card{max-width:56rem}.detail-stack{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));align-items:start}.collection-search .advanced-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.favorites-grid{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}.score-page{width:100%}}

/* v0.3.32: compact participant selection with full-size touch targets */
.play-entry-form .play-people{margin:.8rem 0;padding:.6rem}.play-entry-form .play-people>p{font-size:.85rem;margin:.15rem 0 .5rem;line-height:1.35}.play-people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.play-entry-form .play-person{margin:0;padding:.35rem .45rem;gap:.4rem;min-height:44px;box-sizing:border-box;border:1px solid var(--ui-line);border-radius:.45rem;font-size:.95rem;font-weight:600}.play-entry-form .play-person:has(input:checked){background:var(--ui-success-bg);border-color:var(--ui-success)}.play-entry-form .play-person:focus-within{outline:2px solid var(--ui-muted);outline-offset:2px}.play-entry-form .play-person span{min-width:0}.play-entry-form .play-person small{font-size:.72rem;color:var(--ui-muted);white-space:nowrap}.play-entry-form textarea{width:100%;box-sizing:border-box;padding:.6rem;border:1px solid var(--ui-line);border-radius:.6rem;font:inherit;resize:vertical;background:var(--ui-panel);color:var(--ui-ink)}.play-entry-form>p.muted{font-size:.85rem;line-height:1.35;margin:.4rem 0}.play-entry-form>label{margin-top:.75rem}@media(min-width:48rem){.play-people-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:21rem){.play-people-grid{grid-template-columns:1fr}}

/* v0.3.33: favorites as compact rows */
.favorites-quick{padding:.75rem}.favorites-quick .section-head{gap:.3rem .6rem}.favorites-quick h2{font-size:1rem;margin:0}.favorites-quick .section-head>a,.favorites-quick>a{font-size:.85rem}.favorites-quick .favorites-grid{display:block;margin:.45rem 0}.favorites-quick .favorites-grid article{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.6rem;padding:.3rem 0;border:0;border-bottom:1px solid var(--ui-line);border-radius:0}.favorites-quick .favorites-grid article>a:first-child{flex:1;min-width:0;padding:.3rem 0;min-height:44px;box-sizing:border-box;display:flex;align-items:center;font-size:.95rem}.favorites-quick .favorites-grid .button-link{flex:0 0 auto;min-height:44px;padding:.4rem .65rem;display:flex;align-items:center;font-size:.85rem}.favorites-quick .favorites-grid article:last-child{border-bottom:0}
/* v0.3.34: compact lending views and explicit copy status */
.loan-badge{font-weight:700;white-space:normal}
.loan-open{background:var(--ui-warning-bg);color:var(--ui-warning);border-color:var(--ui-warning)}
.loan-overdue{background:var(--ui-danger-bg);color:var(--ui-danger);border-color:var(--ui-danger)}
.loan-returned{background:var(--ui-success-bg);color:var(--ui-success);border-color:var(--ui-success)}
.loan-highlight{border-left:5px solid var(--ui-warning);padding:.8rem}
.loan-row{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.75rem;margin:.6rem 0}
.loan-row>div:first-child{min-width:0;overflow-wrap:anywhere}.loan-row>div:last-child{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;flex-shrink:0}
.loan-row small,.loan-history small{display:block;font-size:.85rem}
.loan-row .button-link{padding:.45rem .7rem;min-height:44px}
.loan-form{max-width:40rem;padding:1rem}.loan-form label{margin-top:.75rem}.loan-form textarea{width:100%;box-sizing:border-box}.loan-form button{margin-top:.7rem}
.loan-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.loan-history{padding:.65rem 0;border-bottom:1px solid var(--ui-line)}.loan-history p{margin:.3rem 0}
.loan-filter{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.loan-filter select{width:auto}
@media(max-width:380px){.loan-dates{grid-template-columns:1fr}.loan-row{align-items:flex-start;flex-wrap:wrap}}
/* v0.3.35: finder, compact game detail and breadcrumb pilot */
.breadcrumbs{margin:0 0 .8rem;font-size:.85rem}.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.2rem .35rem;list-style:none;padding:0;margin:0}.breadcrumbs li{display:flex;align-items:baseline;gap:.35rem;min-width:0;overflow-wrap:anywhere}.breadcrumbs li+li:before{content:'›';color:var(--ui-muted)}.breadcrumbs a{padding:.35rem 0}.breadcrumbs [aria-current]{font-weight:600}
.finder-form{padding:1rem;max-width:45rem}.finder-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.finder-form label{margin-top:.3rem}.finder-result{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.75rem;margin:.6rem 0}.finder-result small{display:block;color:var(--ui-muted)}.finder-result>div{min-width:0;overflow-wrap:anywhere}.finder-result .button-link{flex-shrink:0}
.game-detail-compact{max-width:60rem}.game-detail-compact h1{margin:.2rem 0 .4rem;font-size:clamp(1.6rem,5vw,2.4rem)}.game-detail-compact .detail-game-heading{margin:.4rem 0 .7rem;gap:.8rem;align-items:center}.game-detail-compact .detail-game-cover{width:80px;flex:0 0 80px}.game-detail-compact .detail-game-cover img{width:80px;height:100px;object-fit:contain}.game-detail-compact .card{padding:.8rem;margin:.6rem 0}.game-detail-compact h2{font-size:1.1rem;margin:0 0 .4rem}.detail-primary-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.7rem 0}.detail-primary-actions form{margin:0}.detail-primary-actions button,.detail-primary-actions .button-link{margin:0;padding:.5rem .7rem;min-height:44px;box-sizing:border-box;font-size:.9rem}.detail-management summary,.detail-notes summary{cursor:pointer;min-height:44px;align-content:center;font-weight:600}.detail-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.15rem .7rem;margin-top:.4rem}.detail-links a{padding:.6rem 0;min-height:44px;box-sizing:border-box;overflow-wrap:anywhere}.game-detail-compact .detail-list{margin:0}.game-detail-compact .detail-list>div{display:grid;grid-template-columns:minmax(5.5rem,30%) minmax(0,1fr);gap:.5rem;padding:.45rem 0}.game-detail-compact .detail-list dt,.game-detail-compact .detail-list dd{margin:0}.game-detail-compact .detail-list dd{overflow-wrap:anywhere}.game-detail-compact .loan-highlight{padding:.65rem}.game-detail-compact .preline{margin:.5rem 0;overflow-wrap:anywhere}
@media(max-width:450px){.finder-result{align-items:flex-start;flex-direction:column}.finder-fields{grid-template-columns:1fr}}
.shell:has(>.game-detail-compact){padding-top:1rem}.game-detail-compact .detail-game-heading>div{min-width:0;overflow-wrap:anywhere}
/* v0.3.36: pagination independent of framework utility CSS */
.compact-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.35rem .65rem;margin:.75rem 0;font-size:.9rem}
.compact-pagination a,.compact-pagination .page-disabled{display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box;padding:.4rem .6rem;border:1px solid var(--ui-line);border-radius:.45rem}
.compact-pagination .page-disabled{color:var(--ui-muted);border-color:var(--ui-line)}.compact-pagination .page-position{white-space:nowrap}

/* Spielefinder: kompakte Ergebnisliste, vorbereitet für das nächste Update. */
.finder-result{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.55rem;margin:.3rem 0}
.finder-thumbnail{width:48px;height:64px;object-fit:contain;border-radius:.25rem}
.finder-result-text{grid-column:2}.finder-result .button-link{grid-column:3;min-height:44px;padding:.4rem .55rem;margin:0;font-size:.9rem}
.finder-result small{font-size:.85rem;line-height:1.35}.finder-result strong{line-height:1.25}
@media(max-width:360px){.finder-result{grid-template-columns:40px minmax(0,1fr);gap:.4rem}.finder-thumbnail{width:40px;height:54px}.finder-result .button-link{grid-column:2;justify-self:start}}

.finder-criteria{margin:.65rem 0}.finder-criteria fieldset{padding:.5rem;margin:.4rem 0}.criteria-options{display:flex;flex-wrap:wrap;gap:.25rem .8rem}.finder-criteria .check-row{margin:0;min-height:44px;gap:.4rem;font-size:.9rem}
.finder-bookmark{grid-column:2/-1;margin:0}.finder-bookmark button{margin:0;padding:.2rem .45rem;min-height:44px;font-size:.8rem}
.evening-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem;margin:.4rem 0}.evening-row small{display:block}.evening-actions{display:flex;flex-wrap:wrap;gap:.4rem}.evening-actions form{margin:0}.evening-actions button,.evening-actions .button-link{margin:0;min-height:44px;padding:.4rem .6rem}
/* v0.3.38: compact evening planning and guest selection */
.evening-page h1{margin:.5rem 0;font-size:clamp(1.5rem,4vw,2rem)}
.evening-page h2{margin:.8rem 0 .4rem}.evening-page p{margin:.5rem 0}.evening-page>.card{padding:.75rem;margin:.6rem 0}
.evening-page .evening-row{padding:.65rem;gap:.5rem;margin:.4rem 0}.evening-page .evening-row strong{font-size:1.05rem}
.evening-actions{align-items:center}.evening-actions .button-link,.evening-actions button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1.3;min-height:44px;height:auto;padding:.45rem .65rem}
.evening-actions .secondary-action{border-color:transparent;font-size:.9rem}.evening-game-info{display:flex;gap:.6rem;align-items:center;min-width:0;flex:1}.evening-game-info>div{min-width:0}.evening-thumb{width:48px;height:64px;object-fit:contain;flex:none}
.evening-row form{margin:0}.evening-row form button{margin:0;min-height:44px;padding:.45rem .65rem}.evening-row .evening-description{margin:.3rem 0;font-size:.9rem}.evening-row.is-wanted{background:var(--ui-success-bg);border-color:var(--ui-success)}.evening-help{font-size:.85rem;margin:.4rem 0}.evening-description-edit{width:100%;font-size:.85rem}
.evening-choices{max-height:24rem;overflow:auto;margin:.5rem 0;border-block:1px solid var(--ui-line)}.evening-choice{display:flex;align-items:center;gap:.6rem;padding:.5rem;margin:0;border-bottom:1px solid var(--ui-line);font-weight:normal;min-height:44px}.evening-choice[hidden]{display:none}.evening-choice small{display:block;font-weight:normal}.evening-choice input[type=checkbox]{margin:0;flex:none}.evening-choice:has(input:checked){background:var(--ui-success-bg)}.evening-page textarea{width:100%;box-sizing:border-box}
@media(max-width:480px){.guest-game{display:block}.guest-game form{margin-top:.5rem}.guest-game form button{width:100%}}
.evening-choice input[type=checkbox]{width:22px;height:22px;padding:0;flex:0 0 22px}.evening-choice>span{min-width:0;overflow-wrap:anywhere}.evening-game-info{flex:1 1 15rem}.evening-page textarea{font:inherit;padding:.5rem;border:1px solid var(--ui-line);border-radius:.5rem}.evening-page .check-row{font-size:.9rem}.evening-page .check-row input{width:22px;height:22px;flex:0 0 22px;padding:0}.finder-criteria fieldset{border:0;padding:.4rem 0;margin:.5rem 0}.finder-criteria legend{font-weight:650}.finder-criteria .criteria-options{gap:.35rem}.finder-criteria .check-row{margin:0;padding:.4rem .5rem;min-height:44px;box-sizing:border-box;border:1px solid var(--ui-line);border-radius:.5rem;font-size:.9rem}.finder-criteria .check-row input{width:20px;height:20px;flex:0 0 20px;padding:0}

/* v0.3.40: compact invitation controls and personal evening notes */
.evening-page .invitation-item {margin: .75rem 0;padding: .65rem 0;border-top:1px solid var(--ui-line);}
.evening-page .invitation-item > span {flex-basis:100%;}
.evening-page .invitation-item > small {display:block;color:var(--ui-muted);margin:.25rem 0;}
.evening-page .evening-note {display:block;white-space:pre-line;overflow-wrap:anywhere;}
.evening-page .evening-notes textarea {width:100%;box-sizing:border-box;min-height:5rem;}
.evening-page .evening-notes h2 {margin:1rem 0 .5rem;font-size:1.2rem;}

/* v0.3.41: evening planning */
.evening-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.evening-date-fields input{min-width:0;width:100%;box-sizing:border-box}
.evening-attendee{display:flex;flex-wrap:wrap;gap:.35rem .7rem;align-items:center;padding:.4rem 0;border-bottom:1px solid var(--ui-line)}.evening-attendee strong{flex:1}.evening-attendee small{color:var(--ui-muted)}
.evening-actions button[aria-pressed=true]{background:var(--ui-soft);border-color:var(--ui-main);color:var(--ui-main)}
/* Actual covers retain their aspect ratio without the placeholder backdrop. */
.collection-cover:not(.collection-cover-placeholder){background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}
.collection-cover:not(.collection-cover-placeholder) img{height:auto;max-height:88px;border:0;border-radius:0;box-shadow:none}
@media(max-width:32rem){.collection-cover:not(.collection-cover-placeholder) img{max-height:72px}}

/* Compact, touch-friendly game management actions. */
.detail-management .detail-links{gap:.5rem}
.detail-management .detail-links .button-link{display:flex;align-items:center;padding:.6rem .75rem;margin:0;min-width:0;text-decoration:none;line-height:1.35}
@media(max-width:32rem){.detail-management .detail-links{grid-template-columns:minmax(0,1fr)}}

/* v0.3.54 compact game descriptions and mobile date inputs */
input[type="date"]{display:block;box-sizing:border-box;min-width:0;max-width:100%;width:100%;text-align:left}
input[type="date"]::-webkit-date-and-time-value{text-align:left;margin:0}
.game-description p{white-space:pre-line;line-height:1.6}
.collection-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.9rem;line-height:1.4;margin:.3rem 0}
.favorites-quick .favorite-title{display:flex;align-items:center;gap:.65rem;min-width:0;flex:1;text-align:left}
.favorite-cover{width:36px;height:48px;object-fit:contain;flex:none}
.favorites-quick .favorites-grid article{padding:.35rem 0;min-height:56px;gap:.5rem}

/* Portal: compact rows with full covers and touch-size actions. */
.portal-actions{display:flex;gap:.75rem;flex-wrap:wrap}.portal-grid{display:grid;gap:1rem;align-items:start}.portal-grid>.card.card{margin:0;min-width:0}.portal-play{display:flex;align-items:center;gap:.7rem;padding:.65rem 0}.portal-play>div{flex:1;min-width:0}.portal-play small{display:block;color:var(--ui-muted);overflow-wrap:anywhere}.portal-play .favorite-cover{flex:0 0 36px;object-fit:contain}.portal-play .button-link{flex-shrink:0}.portal-recent+.portal-recent,.portal-play+.portal-play{border-top:1px solid var(--ui-line)}.portal-recent .play-results{margin:.2rem 0 .6rem;padding-left:1.2rem}.portal-grid .favorites-grid{grid-template-columns:1fr}@media(min-width:850px){.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
