:root{--bg:#05030a;--panel:#0e0818;--line:#2a1550;--p:#7c3aed;--p2:#a855f7;--deep:#2e1065;--tx:#e9e3f7;--mu:#9a8bb8}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;color:var(--tx);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;background:radial-gradient(1100px 520px at 50% -8%,#2e106566,transparent),var(--bg)}
h1,h2,h3,nav a,button,.o{font-family:'Orbitron',sans-serif;font-weight:900;letter-spacing:.05em}
nav{display:flex;gap:1.5rem;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
nav .logo{font-size:1.25rem;color:#fff;margin-right:auto;text-decoration:none;text-shadow:0 0 18px var(--p2)}
nav a{color:var(--mu);text-decoration:none;font-size:.8rem}nav a:hover,nav a.on{color:#fff}
main{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}
h1{font-size:clamp(1.6rem,5vw,2.8rem);margin:.2em 0 .6em}h2{font-size:1.1rem;margin:2rem 0 1rem}
input{width:100%;min-height:46px;background:#0a0612;border:1px solid var(--line);color:#fff;-webkit-text-fill-color:#fff;caret-color:var(--p2);padding:.7rem .9rem;border-radius:6px;font:inherit}
input:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--p2);outline-offset:2px}
button{background:linear-gradient(135deg,var(--p),var(--deep));border:1px solid var(--p2);color:#fff;padding:.7rem 1.2rem;border-radius:6px;cursor:pointer;font-size:.8rem}
button:hover{box-shadow:0 0 18px #7c3aed88}button.danger{background:#3b0a1a;border-color:#be123c}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1.5rem}
.narrow{max-width:420px;margin:3rem auto;display:grid;gap:.8rem}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.row h2{margin-right:auto}
.err{color:#fb7185;min-height:1.4em;margin:0}.mu{color:var(--mu)}
.masonry{columns:3 280px;column-gap:10px}.masonry img{width:100%;height:auto;display:block;margin-bottom:10px;border-radius:4px;cursor:zoom-in;background:var(--panel)}
.masonry img:hover{box-shadow:0 0 0 2px var(--p2)}
#lb{position:fixed;inset:0;background:#000e;display:none;align-items:center;justify-content:center;z-index:9}#lb.open{display:flex}
#lb img{max-width:94vw;max-height:92vh}#lb button{position:absolute;top:50%;padding:1rem}#lb .x{top:1rem;right:1rem}#lb .pv{left:1rem}#lb .nx{right:1rem}
.drop{border:2px dashed var(--p);border-radius:10px;padding:2.5rem 1rem;text-align:center;color:var(--mu);cursor:pointer}.drop.over{background:#2e106555;color:#fff}
.ag{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.ag label{position:relative;cursor:pointer}
.ag img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px;display:block}.ag input{position:absolute;top:6px;left:6px;width:18px;height:18px}
.ag input:checked+img{outline:3px solid var(--p2)}
table{width:100%;border-collapse:collapse}td,th{padding:.6rem;border-bottom:1px solid var(--line);text-align:left}
ul.files{list-style:none;padding:0;display:grid;gap:.5rem}ul.files li{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.8rem 1rem}
ul.files a{color:#fff;text-decoration:none;font-family:'Orbitron';font-weight:900;font-size:.75rem;border:1px solid var(--p2);padding:.5rem .9rem;border-radius:6px}
.pin{font-family:'Orbitron';font-weight:900;font-size:1.4rem;text-align:center;letter-spacing:.3em}
[hidden]{display:none!important}
.row input{width:auto}
