:root{color-scheme:dark;--bg:#091319;--panel:#12212a;--line:#29414a;--muted:#a5b7be;--accent:#79ead3}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top right,#163c3c66,transparent 60%),var(--bg);color:#eef7f7;font:16px/1.5 system-ui,sans-serif}header,main{max-width:1440px;margin:auto;padding:32px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line)}.eyebrow{font-size:12px;letter-spacing:.2em;color:var(--accent)}h1{font-size:clamp(42px,8vw,80px);line-height:1;margin:16px 0;letter-spacing:-.05em}h1 span{color:var(--accent)}p{color:var(--muted)}nav,.bar,.filters,.actions,.viewerbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}button,input,select{font:inherit;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:inherit;padding:10px 14px}button{cursor:pointer}button:hover{border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input[type=checkbox]{accent-color:var(--accent)}.bar{margin-bottom:18px}#total{margin-left:auto;color:var(--muted)}.filters{padding:16px;background:#12212a88;border:1px solid var(--line);border-radius:14px}.filters input[type=search]{flex:1;min-width:190px}#model{width:220px}#grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.card{text-align:left;padding:0;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:16px}.card img,.placeholder{width:100%;height:235px;object-fit:cover;background:#182e35}.card .body{padding:15px}.card h3{font-size:16px;line-height:1.4;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card small{color:var(--muted)}.badge{font-size:12px;display:inline-block;border:1px solid var(--line);padding:3px 7px;border-radius:20px;margin:3px 4px 3px 0}.placeholder{display:grid;place-items:center;color:var(--muted);padding:24px}#pages{justify-content:center;margin:30px 0}#pages .active{background:var(--accent);color:#091319}dialog{background:#0f1e27;color:#eef7f7;border:1px solid var(--line);border-radius:20px;padding:28px;width:min(560px,94vw);max-height:94dvh}dialog::backdrop{background:#02070be8;backdrop-filter:blur(6px)}dialog label{display:block;margin-bottom:16px}dialog label input:not([type=checkbox]){display:block;width:100%;margin-top:6px}.actions{margin-top:20px;justify-content:flex-end}.danger{color:#ffadad}.hidden{display:none!important}#viewer{width:min(1240px,98vw);padding:16px}#stage{display:flex;align-items:center;justify-content:center;min-height:180px;height:60dvh;overflow:hidden;touch-action:none;background:#050c10;border-radius:12px;margin-top:12px}#stage img{max-width:100%;max-height:100%;object-fit:contain;user-select:none}#stage video{max-width:100%;max-height:100%}.viewerbar{justify-content:flex-end;position:sticky;top:-16px;background:#0f1e27;z-index:2;padding:8px}.details{padding:12px}.details p{white-space:pre-wrap;overflow-wrap:anywhere}a{color:var(--accent)}#tags{margin-top:15px}.error{color:#ffadad}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#214539;border:1px solid var(--accent);padding:14px 24px;border-radius:12px;z-index:100;max-width:90vw}#uploadList>div{padding:14px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}progress{width:100%;accent-color:var(--accent)}@media(max-width:1000px){#grid{grid-template-columns:repeat(3,minmax(0,1fr))}header,main{padding:24px}}@media(max-width:700px){#grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}header{align-items:flex-start;flex-direction:column}header,main{padding:16px}.card img,.placeholder{height:190px}.card .body{padding:12px}.filters>*{max-width:100%}#model{width:100%}#stage{height:50dvh}button{min-height:44px}}@media(max-width:370px){#grid{grid-template-columns:1fr}} 

.card{position:relative;overflow:hidden}.card-open{display:block;width:100%;padding:0;border:0;border-radius:0;background:transparent;text-align:left}.card-open:hover{color:inherit;border-color:transparent}.card-select{position:absolute;z-index:2;top:10px;left:10px;display:flex;align-items:center;gap:6px;margin:0;padding:7px 10px;background:#091319e8;border:1px solid var(--line);border-radius:9px;backdrop-filter:blur(6px)}.card-select input{width:18px;height:18px;margin:0}.pages{justify-content:center;margin:22px 0;gap:8px}.pages .active{background:var(--accent);color:#091319}.page-jump{display:flex;align-items:center;gap:6px;color:var(--muted)}.page-jump input{width:5.5rem;padding-inline:8px}.bulk-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;margin:14px 0;background:#12212a;border:1px solid var(--line);border-radius:12px}.bulk-actions strong{margin-right:auto}.bulk-actions .danger{color:#ffadad}@media(max-width:700px){.pages{gap:5px}.pages button{padding:8px 10px}.page-jump{width:100%;justify-content:center}.bulk-actions>*{flex:1 1 auto}.bulk-actions strong{flex-basis:100%}}

/* Keep the entire image visible inside each thumbnail frame. */
.card img{object-fit:contain;background:#050c10}
.tag-filter{position:relative}.tag-filter summary{list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:10px 14px;min-height:44px}.tag-filter summary::-webkit-details-marker{display:none}.tag-filter[open] summary{border-color:var(--accent);color:var(--accent)}.tag-panel{position:absolute;z-index:8;top:calc(100% + 8px);left:0;width:min(440px,88vw);max-height:min(72dvh,620px);overflow:auto;padding:14px;background:#0f1e27;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px #0009}.tag-panel>#tagSearch{width:100%;margin-bottom:10px}.tag-group{border-top:1px solid var(--line);padding:8px 0}.tag-group>summary{list-style:none;cursor:pointer;color:var(--accent);font-size:13px;font-weight:600;padding:3px 0}.tag-group>summary::-webkit-details-marker{display:none}.tag-group>summary::before{content:'›';display:inline-block;width:16px;color:var(--muted);transition:transform .15s}.tag-group[open]>summary::before{transform:rotate(90deg)}.tag-group>summary small{color:var(--muted);font-weight:400}.tag-group-content{padding-top:5px}.tag-group label{display:flex;align-items:center;gap:9px;padding:5px 2px;margin:0;cursor:pointer;overflow-wrap:anywhere}.tag-group label input{flex:none;margin:0}.tag-group label span{flex:1}.tag-group label small{color:var(--muted);font-variant-numeric:tabular-nums}.tag-actions{position:sticky;bottom:-14px;background:#0f1e27;padding:10px 0 0;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px}.tag-actions button{padding:6px 10px;font-size:13px}.tag-empty{margin:8px 0}.filters #tagFilter{flex:none}@media(max-width:700px){.tag-filter{width:100%}.tag-panel{position:fixed;top:auto;left:12px;right:12px;bottom:12px;width:auto;max-height:76dvh}.filters #tagFilter{order:0}}

#albumChecks input:indeterminate{accent-color:var(--muted)}
#albumChecks input[type=checkbox]{appearance:none;width:1.1em;height:1.1em;padding:0;border:1px solid var(--muted);border-radius:3px;display:inline-grid;place-content:center;vertical-align:middle}
#albumChecks input[type=checkbox]::before{content:"";width:.28em;height:.55em;border:solid var(--accent);border-width:0 2px 2px 0;transform:rotate(45deg) scale(0)}
#albumChecks input[type=checkbox]:checked::before{transform:rotate(45deg) scale(1)}
#albumChecks input[type=checkbox]:indeterminate::before{border-color:var(--muted)}
#stage:fullscreen,#stage:-webkit-full-screen{width:100vw;height:100dvh;min-height:0;max-height:none;margin:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border-radius:0}
#stage:fullscreen img,#stage:fullscreen video,#stage:-webkit-full-screen img,#stage:-webkit-full-screen video{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}

/* Keep long album names readable in both the browser and membership picker. */
.album-control{flex:1 1 16rem;min-width:0;max-width:32rem}
#albumLabel,#seriesLabel,#rangeLabel{display:block;color:var(--muted);font-size:14px;margin-bottom:5px}
#albumDropdown,#seriesDropdown,#rangeDropdown{position:relative;min-width:0}
#albumSummary,#seriesSummary,#rangeSummary{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:10px 14px;overflow-wrap:anywhere;white-space:normal;min-height:44px}
#albumSummary:focus-visible,#seriesSummary:focus-visible,#rangeSummary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#albumOptions,#seriesOptions,#rangeOptions{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:10;max-height:55dvh;overflow-y:auto;border:1px solid var(--line);border-radius:10px;padding:6px;background:var(--panel);box-shadow:0 12px 30px #0008}
#albumOptions button,#seriesOptions button,#rangeOptions button{display:block;width:100%;text-align:left;white-space:normal;overflow-wrap:anywhere;min-width:0;border-color:transparent}
#albumOptions button[aria-pressed=true],#seriesOptions button[aria-pressed=true],#rangeOptions button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
#albumChecks{min-width:0}
#albumChecks label{display:flex;min-width:0;align-items:flex-start;gap:10px}
#albumChecks label span{min-width:0;overflow-wrap:anywhere;white-space:normal}
#albumChecks input[type=checkbox]{flex-shrink:0;margin-top:.3em}
@media(max-width:700px){.album-control{flex-basis:100%;max-width:100%}.sample-only{order:0}}
