:root{--bg: #0f1117;--bg-2: #171a24;--bg-3: #1e2230;--line: #2a2f40;--text: #e7e9f0;--muted: #8b90a3;--accent: #6d5efc;--accent-2: #8b7cff;--ok: #35c48a;--warn: #e0a92e;--danger: #e5524b;--radius: 14px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 50% -200px,#1b2030 0%,var(--bg) 60%);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Ubuntu,sans-serif;min-height:100vh}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#0f1117d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10}.logo{font-size:19px;font-weight:700;color:var(--text)}.logo:hover{text-decoration:none}.logo-mark{color:var(--accent)}.logo .dim{color:var(--muted);font-weight:500}.topbar nav{display:flex;align-items:center;gap:16px}.nick{color:var(--muted)}button{cursor:pointer;font:inherit;border-radius:10px;border:1px solid var(--line);background:var(--bg-3);color:var(--text);padding:8px 14px;transition:.15s}button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}.ghost{background:transparent}.btn-sm,a.btn-sm{padding:7px 14px;border-radius:10px;background:var(--accent);color:#fff;border:none}a.btn-sm:hover{text-decoration:none;background:var(--accent-2)}button.primary{background:var(--accent);border:none;color:#fff;padding:11px 18px;font-weight:600}button.primary:hover{background:var(--accent-2)}button.danger{background:transparent;color:var(--danger);border-color:transparent;padding:6px 0;justify-self:start}button.danger:hover{text-decoration:underline;border-color:transparent}.container{max-width:900px;margin:0 auto;padding:28px 20px 60px}.foot{text-align:center;color:var(--muted);font-size:13px;padding:24px}.muted{color:var(--muted)}.small{font-size:13px}.ok{color:var(--ok)}.warn{color:var(--warn)}.meta{font-size:12.5px;color:var(--muted)}.home{display:flex;flex-direction:column;align-items:center}.visibility-pick{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:14px}.vis{padding:6px 12px;border-radius:20px;background:transparent}.vis.on{background:var(--bg-3);border-color:var(--accent);color:var(--text)}.dropzone{width:100%;max-width:560px;border:2px dashed var(--line);border-radius:var(--radius);background:var(--bg-2);padding:48px 20px;text-align:center;cursor:pointer;transition:.18s}.dropzone:hover{border-color:var(--accent)}.dropzone.drag{border-color:var(--accent);background:#1c2033}.dropzone.busy{cursor:default}.dz-icon{font-size:34px;color:var(--accent)}.dz-title{font-size:20px;font-weight:700;margin-top:8px}.dz-sub{color:var(--muted);margin-top:6px}.dz-note{margin-top:12px;font-size:13px;color:var(--muted)}.dz-progress{margin-top:18px}.progress{position:relative;height:22px;background:var(--bg);border:1px solid var(--line);border-radius:20px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .15s}.progress-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.progress.indeterminate{overflow:hidden}.progress-indet{position:absolute;top:0;bottom:0;width:40%;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:indet 1.1s infinite linear}@keyframes indet{0%{left:-40%}to{left:100%}}.errors{margin-top:16px;color:var(--danger);font-size:14px;text-align:center}.feed{width:100%;margin-top:40px}.feed h2{font-size:16px;color:var(--muted);font-weight:600;margin:0 0 14px;text-align:center}.feed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.acard{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:var(--text);display:block}.acard:hover{text-decoration:none;border-color:var(--accent)}.acard-cover{position:relative;aspect-ratio:1/1;background:#0b0d13}.acard-cover img{width:100%;height:100%;object-fit:cover}.acard-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:13px}.acard-count{position:absolute;right:8px;bottom:8px;background:#000000a6;color:#fff;font-size:11px;padding:2px 8px;border-radius:20px}.acard-meta{padding:9px 11px;display:flex;flex-direction:column;gap:2px}.acard-nick{font-size:13px;font-weight:600}.acard-id{font-size:11.5px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}.album{border-radius:var(--radius);transition:.15s}.album.drag{outline:2px dashed var(--accent);outline-offset:8px}.album-head{text-align:center;margin-bottom:24px}.album-nick{font-size:22px;font-weight:700}.album-sub{color:var(--muted);font-size:13.5px;margin-top:4px}.album-linkrow{max-width:460px;margin:14px auto 0;text-align:left}.album-actions{margin-top:10px}.album-tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:22px}.album-tabs button{background:transparent;color:var(--muted);padding:8px 14px}.album-tabs button.on{background:var(--bg-3);border-color:var(--accent);color:var(--text)}.album-gallery{max-width:700px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.gphoto{position:relative;margin:0;background:#0b0d13;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.gphoto img{display:block;width:100%;height:auto;cursor:zoom-in}.gphoto-del{position:absolute;top:8px;right:8px;width:30px;height:30px;padding:0;border-radius:50%;background:#0009;color:#fff;border:none;opacity:0;transition:.15s}.gphoto:hover .gphoto-del{opacity:1}.gphoto-del:hover{background:var(--danger)}.album-codes{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.code-row{display:grid;grid-template-columns:96px 1fr;gap:14px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:12px;align-items:center}.code-thumb{width:96px;height:72px;object-fit:cover;border-radius:8px;background:#0b0d13}.code-fields{display:flex;flex-direction:column;gap:8px;min-width:0}.album-settings{max-width:460px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.set-block{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.set-title{font-weight:600;margin-bottom:10px}.danger-btn{background:transparent;color:var(--danger);border-color:var(--danger)}.danger-btn:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#06070beb;display:flex;align-items:center;justify-content:center;padding:40px}.lb-img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:8px;cursor:default}.lb-close{position:absolute;top:18px;right:22px;width:42px;height:42px;border-radius:50%;background:#ffffff14;color:#fff;border:none;font-size:18px}.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;background:#ffffff14;color:#fff;border:none;font-size:30px;line-height:1}.lb-prev{left:18px}.lb-next{right:18px}.lb-caption{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:var(--muted);font-size:13px}@media (max-width: 560px){.code-row{grid-template-columns:1fr}}.album-progress{margin-top:18px}.album-add{margin-top:22px;text-align:center}.album-add-hint{margin-top:8px;font-size:12.5px;color:var(--muted)}.copyfield{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}.cf-label{grid-column:1 / -1;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.copyfield input{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:7px 9px;font-size:12.5px;font-family:ui-monospace,Menlo,Consolas,monospace;min-width:0}.copyfield button{padding:7px 10px;font-size:12px;white-space:nowrap}.copyfield button.copied{color:var(--ok);border-color:var(--ok)}.auth{max-width:340px;margin:30px auto;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:22px}.tabs{display:flex;gap:8px;margin-bottom:16px}.tabs button{flex:1;background:transparent}.tabs button.on{background:var(--bg-3);border-color:var(--accent)}.auth form{display:flex;flex-direction:column;gap:10px}.auth input{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:11px;font:inherit}.auth input:focus{outline:none;border-color:var(--accent)}.err{color:var(--danger);font-size:13px}
