:root{--album-blue:#075985;--album-blue-soft:#e0f2fe;--album-ink:#0f172a;--album-muted:#64748b;--album-surface:#fff;--album-soft:#f1f5f9;--album-line:#dbe4ec}.album-page{margin:0;background:#f4f7fa;color:var(--album-ink);min-width:0;overflow-x:hidden}.album-header{padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) 1.1rem max(1rem,env(safe-area-inset-left));background:linear-gradient(135deg,#082f49,#03668f);color:#fff;display:flex;gap:1rem;align-items:center}.album-header h1,.album-header p{margin:.1rem 0}.album-back{display:grid;place-items:center;width:2.8rem;height:2.8rem;border:1px solid #ffffff55;border-radius:.9rem;color:#fff;font-size:2rem;text-decoration:none}.album-main{width:min(1180px,calc(100% - 2rem));margin:1rem auto calc(4rem + env(safe-area-inset-bottom))}.album-toolbar{display:grid;gap:.8rem;padding:.2rem 0 1rem;border-bottom:1px solid var(--album-line)}.album-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.upload-action{min-height:4.25rem;display:flex;align-items:center;justify-content:center;gap:.65rem;padding:.75rem;border:1px solid #b9d8e8;border-radius:1.1rem;background:linear-gradient(145deg,#fff,#edf8fc);color:#075985;font-weight:850;box-shadow:0 6px 18px #07598512;cursor:pointer}.upload-action:active{transform:translateY(1px)}.upload-icon{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.65rem;background:var(--album-blue-soft);font-size:1.15rem}.upload-action input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.upload-action:focus-within{outline:3px solid #38bdf866;outline-offset:2px}.album-controls,.album-summary{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap}.album-sort-control{display:flex;align-items:center;gap:.4rem;padding:.25rem .35rem .25rem .7rem;background:var(--album-surface);border:1px solid var(--album-line);border-radius:999px;color:var(--album-muted);font-size:.78rem;font-weight:750}.album-sort-control select{min-height:2.25rem;border:0;background:transparent;color:var(--album-ink);font:inherit;font-size:.9rem;font-weight:800;padding:.25rem 1.7rem .25rem .25rem}.album-filter-chip{cursor:pointer}.album-filter-chip input{position:absolute;opacity:0;pointer-events:none}.album-filter-chip span{min-height:2.7rem;display:flex;align-items:center;padding:.45rem .8rem;border:1px solid var(--album-line);border-radius:999px;background:var(--album-surface);font-size:.85rem;font-weight:800;color:#475569}.album-filter-chip input:checked+span{border-color:#7dd3fc;background:var(--album-blue-soft);color:#0369a1}.album-filter-chip input:focus-visible+span{outline:3px solid #38bdf866;outline-offset:2px}#album-upload-status{min-height:1.2rem;margin:0;color:var(--album-muted);font-size:.88rem}.album-summary{justify-content:space-between;padding:.85rem .15rem .6rem}.album-summary span,.group-count,.group-new{border-radius:999px;padding:.2rem .55rem;font-size:.76rem;font-weight:850}.album-summary span,.group-count{background:#dbeafe;color:#075985}.group-new{background:#ffedd5;color:#c2410c}.group-badges{display:flex;gap:.35rem;align-items:center}.album-day{border-top:1px solid var(--album-line)}.album-day>summary,.album-user>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:850}.album-day>summary::-webkit-details-marker,.album-user>summary::-webkit-details-marker{display:none}.album-day>summary{padding:.85rem .2rem}.album-user{background:var(--album-surface);border-radius:1rem;margin-bottom:.75rem;box-shadow:0 5px 20px #0f172a0c}.album-user>summary{padding:.7rem .8rem;color:#334155}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.45rem;padding:.35rem .5rem .65rem}.album-grid-flat{padding:.35rem 0}.album-tile{position:relative;border:0;background:var(--album-surface);padding:0;border-radius:.85rem;overflow:hidden;aspect-ratio:1;box-shadow:0 1px 5px #0f172a16;cursor:pointer}.album-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}.album-tile:hover img{transform:scale(1.02)}.album-tile small{position:absolute;inset:auto .35rem .35rem;background:#0f172acc;color:#fff;border-radius:.4rem;padding:.18rem .38rem;max-width:calc(100% - .7rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.new-badge{display:none;position:absolute;top:.35rem;left:.35rem;background:#f97316;color:#fff;border-radius:999px;padding:.18rem .4rem;font-size:.66rem;font-weight:900;box-shadow:0 2px 7px #0f172a44}.album-tile.is-new .new-badge{display:block}.album-viewer{width:min(960px,calc(100% - 1rem));max-height:calc(100dvh - 1rem);border:0;border-radius:1rem;padding:1rem;background:#0f172a;color:#fff}.album-viewer::backdrop{background:#020617dd}.viewer-head,.viewer-actions{display:flex;justify-content:space-between;gap:.8rem;align-items:center}.viewer-image{display:grid;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;gap:.5rem;align-items:center;height:min(65dvh,680px)}.viewer-image img{max-width:100%;max-height:100%;margin:auto}.album-viewer button{min-width:2.75rem;min-height:2.75rem}.album-viewer dl{display:flex;gap:1.2rem;flex-wrap:wrap}.album-viewer dt{font-size:.75rem;color:#94a3b8}.album-viewer dd{margin:0}.viewer-actions{justify-content:flex-end}.viewer-actions a{color:#fff;text-decoration:none}.album-upload-batch{border-top:1px solid var(--album-line);padding-top:.8rem}.album-batch-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.album-upload-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.5rem;margin-top:.7rem}.album-upload-item{display:grid;grid-template-columns:3.2rem minmax(0,1fr);gap:.55rem;align-items:center;background:var(--album-surface);border:1px solid var(--album-line);border-radius:.85rem;padding:.45rem;min-width:0}.album-upload-item img,.album-upload-placeholder{width:3.2rem;height:3.2rem;border-radius:.65rem;object-fit:cover;background:#dbe4ec;display:grid;place-items:center}.album-upload-item div{min-width:0}.album-upload-item strong,.album-upload-item small,.album-upload-state{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-upload-item small{color:var(--album-muted)}.album-upload-state{font-size:.75rem;font-weight:850;color:#475569}.album-upload-item[data-state="preparing"] .album-upload-state,.album-upload-item[data-state="optimizing"] .album-upload-state,.album-upload-item[data-state="uploading"] .album-upload-state{color:#0369a1}.album-upload-item[data-state="success"] .album-upload-state{color:#15803d}.album-upload-item[data-state="error"] .album-upload-state{color:#b91c1c}
@media(max-width:600px){.album-main{width:calc(100% - 1rem);margin-top:.55rem}.album-actions{gap:.5rem}.upload-action{min-height:3.8rem;padding:.55rem .35rem;font-size:.88rem}.upload-icon{width:1.8rem;height:1.8rem}.album-controls{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.album-sort-control{grid-column:1/-1;justify-content:space-between}.album-filter-chip span{justify-content:center;padding:.35rem .45rem;font-size:.78rem}.album-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:.3rem;gap:.32rem}.album-user{margin-inline:0}.viewer-image{grid-template-columns:2.5rem minmax(0,1fr) 2.5rem}.album-batch-head{align-items:stretch;flex-direction:column}.album-upload-preview{grid-template-columns:1fr 1fr}.album-upload-item{grid-template-columns:2.6rem minmax(0,1fr);padding:.35rem}.album-upload-item img,.album-upload-placeholder{width:2.6rem;height:2.6rem}}
@media(max-width:350px){.album-actions{grid-template-columns:1fr}.album-upload-preview{grid-template-columns:1fr}}
@media(prefers-color-scheme:dark){:root{--album-ink:#e2e8f0;--album-muted:#94a3b8;--album-surface:#162334;--album-soft:#1e293b;--album-line:#334155;--album-blue-soft:#0c4a6e}.album-page{background:#0b1320}.upload-action{background:linear-gradient(145deg,#172638,#102435);border-color:#31556a;color:#bae6fd}.album-sort-control select{color:#e2e8f0}.album-filter-chip span{color:#cbd5e1}.album-filter-chip input:checked+span{color:#bae6fd}.album-user{box-shadow:none}.album-upload-item{background:#162334}.album-summary span,.group-count{background:#123a58;color:#bae6fd}.group-new{background:#4a2713;color:#fdba74}}
.album-filter-chip input{width:1px;max-width:1px;min-height:0;height:1px;margin:0;padding:0}
.album-video-tile{display:grid;width:100%;height:100%;place-items:center;background:linear-gradient(145deg,#0f172a,#334155);color:#fff;font-size:2.4rem}.viewer-image video{max-width:100%;max-height:100%;margin:auto;background:#000}.viewer-image [hidden]{display:none}
.album-upload-item[data-state="selected_duplicate"] .album-upload-state,.album-upload-item[data-state="existing_duplicate"] .album-upload-state{color:#a16207}
