@import"https://fonts.googleapis.com/css2?family=Just+Another+Hand&family=Space+Grotesk:wght@300;400;500&display=swap";:root{color-scheme:dark;font-family:Space Grotesk,system-ui,sans-serif;background-color:#050505;color:#f5f5f5}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#111,#050505 55%);min-height:100vh}button,input,textarea{font-family:inherit}.app{padding:24px 16px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.brand{display:flex;align-items:center;gap:12px}.logo{width:16px;height:16px;border:1px solid rgba(255,255,255,.7);background:transparent;color:#fff;font-size:10px;line-height:1}.brand-title{font-family:Just Another Hand,cursive;font-size:28px;letter-spacing:.5px;background:none;border:none;color:inherit;padding:0;cursor:pointer}.top-actions button{margin-left:12px;background:transparent;color:#fff;border:1px solid #333;padding:6px 12px}.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));max-width:900px;margin:0 auto}.tile{position:relative;border:none;padding:0;background:transparent;cursor:pointer}.tile-image{width:100%;aspect-ratio:1 / 1;background:#444;overflow:hidden}.tile-image img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(100%);transition:filter .2s ease}.tile-download{position:absolute;top:8px;right:8px;background:#000000b3;color:#fff;text-decoration:none;font-size:12px;padding:4px 8px;border:1px solid #333;opacity:0;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease}.tile:hover .tile-download{opacity:1;transform:translateY(0)}.tile:hover .tile-image img{filter:grayscale(0%)}.tile-meta{position:absolute;bottom:8px;left:8px;background:#0009;padding:4px 8px;font-size:12px}.tile-badge{position:absolute;top:8px;right:8px;background:#0009;padding:4px 6px;font-size:12px}.loading{text-align:center;margin-top:24px;color:#888}.dropzone{max-width:900px;margin:0 auto 24px;border:1px dashed #666;padding:20px;text-align:center;color:#aaa;cursor:pointer}.dropzone.dragging{border-color:#fff;color:#fff}.album-toolbar{max-width:900px;margin:0 auto 24px;display:flex;justify-content:flex-end}.download-all{border:1px solid #333;color:#fff;padding:6px 12px;text-decoration:none;background:transparent}.select-toolbar{max-width:900px;margin:0 auto 24px;padding:10px 12px;border:1px solid #222;background:#0a0a0a;display:flex;align-items:center;justify-content:space-between;gap:12px}.select-actions{display:flex;align-items:center;gap:10px}.select-count{color:#888;font-size:12px}.tile.selected .tile-image{outline:2px solid #fff;outline-offset:2px}.tile-select{position:absolute;top:8px;left:8px;background:#000000b3;padding:4px;border-radius:4px}.tile-select input{width:16px;height:16px;accent-color:#fff}.album-checklist{display:flex;flex-direction:column;gap:10px;margin:16px 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;padding:24px;z-index:50}.modal{background:#111;border:1px solid #333;padding:24px;width:min(720px,100%);position:relative}.modal-close{position:absolute;top:12px;right:12px;background:transparent;border:none;color:#fff;font-size:18px}.modal-photo img{width:100%;max-height:50vh;object-fit:contain;display:block;background:#000}.field{display:flex;flex-direction:column;gap:6px;margin:16px 0}.field input,.field textarea{background:#0b0b0b;color:#fff;border:1px solid #333;padding:8px}.checkbox{display:flex;align-items:center;gap:8px}.primary{background:#fff;color:#000;border:none;padding:8px 16px}.danger{background:transparent;color:#ff6868;border:1px solid #ff6868;padding:8px 16px}.modal-actions{display:flex;gap:12px;margin-top:12px}.viewer img{width:100%;max-height:70vh;object-fit:contain;display:block}.viewer-description{margin-top:12px;color:#ccc}.form{display:flex;flex-direction:column}.error{color:#ff6868;margin-bottom:12px}.albums{max-width:700px;margin:0 auto}.albums-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.album-list{display:grid;gap:12px}.album-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #222;padding-bottom:8px}.album-row button{background:transparent;color:#fff;border:none}.album-actions button{margin-left:8px;border:1px solid #333;background:transparent;color:#fff;padding:4px 8px}.album-header{max-width:900px;margin:0 auto 16px}.album-meta{display:flex;justify-content:space-between;align-items:center;margin-top:12px}@media (max-width: 720px){.grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
