:root{--bg:#f3f3f6;--card:#fff;--ink:#141417;--muted:#6b6b76;--yellow:#f9cd48;--line:#e4e4ea}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
.wrap{max-width:440px;margin:0 auto;padding:40px 20px}
.logo{font-weight:800;font-size:28px;letter-spacing:-.02em;margin-bottom:28px}
.logo b{color:var(--yellow)}
.card{background:var(--card);border-radius:24px;padding:28px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
h1{font-size:26px;margin:0 0 6px;letter-spacing:-.02em}
p{color:var(--muted);line-height:1.5;margin:0 0 20px}
label{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px}
input{width:100%;font:inherit;font-size:18px;padding:14px 16px;border:1.5px solid var(--line);border-radius:14px;background:#fff;outline:none}
input:focus{border-color:#4a8cff;box-shadow:0 0 0 3px rgba(74,140,255,.2)}
input.code{text-align:center;letter-spacing:.3em;font-weight:700;font-size:26px;text-transform:uppercase}
button,.btn{display:block;width:100%;margin-top:22px;font:inherit;font-weight:700;font-size:17px;padding:16px;border:0;border-radius:14px;background:var(--yellow);color:var(--ink);cursor:pointer;text-align:center;text-decoration:none}
button.dark{background:var(--ink);color:#fff}
.error{background:#fde8e8;color:#9b1c1c;padding:12px 14px;border-radius:12px;font-size:14px;margin-bottom:8px}
.fine{font-size:13px;color:var(--muted);margin-top:18px;text-align:center}
a{color:#2f6fed}

/* gallery */
.gal-top{position:sticky;top:0;background:rgba(243,243,246,.9);backdrop-filter:blur(10px);display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);z-index:2}
.gal-top .logo{margin:0;font-size:22px}
.gal-top small{color:var(--muted)}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:28px;padding:28px 20px;max-width:1400px;margin:0 auto}
figure{margin:0;text-align:center}
figure img{width:100%;height:auto;display:block;user-select:none;-webkit-user-drag:none;pointer-events:none}
figcaption{font-size:12px;color:var(--muted);margin-top:4px}
.gal-foot{text-align:center;color:var(--muted);font-size:13px;padding:10px 20px 40px}

/* admin */
.admin{max-width:1100px;margin:0 auto;padding:30px 20px}
.admin h2{font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:34px 0 10px}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden;font-size:14px}
th,td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#fafafc}
td form{margin:0}
td button{margin:0;width:auto;padding:8px 12px;font-size:13px;border-radius:10px}
.ip{color:var(--muted);font-size:12px}
.muted{color:var(--muted)}
.wa{font-weight:700}
