/* App pages (accounts, galleries). Tokens and header are in base.css; see DESIGN.md. */
.page{padding:48px 0 var(--section);min-height:60vh}
.page h1{font-size:clamp(36px,5vw,52px);letter-spacing:-.04em;line-height:1.05;margin-bottom:24px}
.page h2{font-size:24px;letter-spacing:-.035em;margin-bottom:12px}
.page a:not(.btn){text-decoration:underline;text-decoration-color:var(--pink);text-underline-offset:3px}
.muted{color:var(--muted);font-size:14px}
.kicker{font:500 13px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--pink-deep);margin:0 0 12px}
button.btn{cursor:pointer}
header form{margin:0}

.auth{max-width:440px;margin:0 auto}
.legal{max-width:720px}
.legal h2{margin-top:40px}
.legal ul{padding-left:20px}
.legal li{margin-bottom:6px}
.legal code{font:500 .9em var(--mono)}
.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;align-items:start}
.panels .panel{background:var(--soft);border-radius:var(--r-lg);padding:24px}

.form{display:grid;gap:16px;justify-items:start}
.form label{display:grid;gap:6px;width:100%;font-weight:500;font-size:14px;color:var(--ink)}
.form input:not([type=checkbox]){width:100%;height:48px;padding:0 14px;font:400 16px var(--text);color:var(--ink);background:#fff;border:2px solid var(--hair);border-radius:var(--r-md)}
.form input:focus{outline:none;border-color:var(--ink)}
.form small{font-weight:400;color:var(--muted)}
.form .check{display:flex;align-items:center;gap:8px;font-weight:400}

.alert{border-radius:var(--r-lg);padding:14px 18px;margin-bottom:20px;font-size:15px;color:var(--ink)}
.alert p,.alert ul{margin:0}
.alert ul{padding-left:18px}
.alert form{margin-top:12px}
.alert-ok{background:var(--mint)}
.alert-warn{background:var(--yellow)}
.alert-danger{background:var(--peach)}

.error-page{min-height:100vh;display:grid;place-content:center;justify-items:start;gap:8px}
.error-page h1{font-size:clamp(36px,5vw,52px);letter-spacing:-.04em}

footer{margin-top:0;padding:24px 0}
footer .fine{border:0;margin:0;padding:0}

/* Galleries */
.form textarea,.form select,.filters input,.filters select{width:100%;padding:12px 14px;font:400 16px var(--text);color:var(--ink);background:#fff;border:2px solid var(--hair);border-radius:var(--r-md)}
.form textarea:focus,.form select:focus{outline:none;border-color:var(--ink)}
.auth.wide{max-width:640px}
.form input[type=file]{height:auto;padding:10px 14px}
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:32px}
.filters input[type=search]{flex:1 1 240px;width:auto;height:48px;padding:0 14px}
.filters select{width:auto;height:48px;padding:0 10px}
.filters .check{display:flex;align-items:center;gap:8px;font-size:14px}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}
.item-card{display:flex;flex-direction:column;background:var(--soft);border-radius:var(--r-xl);overflow:hidden;text-decoration:none!important;transition:transform .15s}
.item-card:hover{transform:translateY(-3px)}
.item-pic{height:240px;display:grid;place-items:center;padding:20px;background:var(--lavender)}
.item-card:nth-child(3n+2) .item-pic{background:var(--peach)}
.item-card:nth-child(3n) .item-pic{background:var(--mint)}
.item-pic img{max-height:200px;width:auto;object-fit:contain}
.no-preview{flex:1;min-height:200px;display:grid;place-content:center;justify-items:center;gap:4px;font:500 13px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.no-preview span{font:600 96px/1 var(--display);letter-spacing:0}
.item-body{padding:20px 22px 22px}
.item-body h3{font-size:20px;letter-spacing:-.035em}
.item-body p{margin:6px 0 12px;font-size:14px}
.item-meta{display:flex;align-items:center;gap:10px;margin:12px 0}

.star{font-style:normal;font-size:18px;line-height:1;color:var(--hair)}
.star:before{content:"★"}
.star.full{color:var(--pink)}
.star.half:before{background:linear-gradient(90deg,var(--pink) 50%,var(--hair) 50%);-webkit-background-clip:text;background-clip:text;color:transparent}
.stars{display:inline-flex;gap:1px}

.item-page{display:grid;grid-template-columns:7fr 5fr;gap:40px;align-items:start}
.shots-row{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x proximity;background:var(--card);border-radius:var(--r-xl);padding:24px}
.shots-row img{flex:none;max-height:520px;width:auto;height:auto;scroll-snap-align:start}
.item-side h1{margin-bottom:12px}
.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:24px 0;font-size:14px}
.facts dt{color:var(--muted)}.facts dd{margin:0;min-width:0}
.hash{font:500 12px var(--mono);word-break:break-all}
.perms{background:var(--yellow);border-radius:var(--r-lg);padding:16px 18px;margin-top:20px;color:var(--ink)}
.perms p{margin:0 0 6px}.perms .kicker{color:var(--ink)}
.perm code,.queue-row code{font:500 13px var(--mono)}
.rate{display:flex;align-items:center;gap:4px;margin:16px 0}
.rate .muted{margin-right:8px}
.rate .star{background:none;border:0;padding:2px;font-size:26px;cursor:pointer}
.rate .star:hover{color:var(--pink-deep)}
.item-actions{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}
.item-actions form{margin:0}
.item-section{margin-top:56px;max-width:800px}
.plain-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.status{font:500 12px var(--mono);padding:2px 8px;border-radius:8px;background:var(--card);color:var(--ink)}
.status-published{background:var(--mint)}.status-pending{background:var(--yellow)}.status-rejected,.status-hidden{background:var(--peach)}
.my-works{margin-bottom:32px}

.comment{padding:16px 0;border-top:1px solid var(--hair)}
.comment p{margin:6px 0}
.comment-head{display:flex;gap:12px;align-items:baseline;font-weight:600;position:static;background:none;backdrop-filter:none;border:0}
.comment-actions{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--muted)}
.comment-actions form{margin:0}
.comment-actions .form,.report .form{margin-top:10px;min-width:min(420px,80vw)}
.replies{margin-left:28px}
details summary{cursor:pointer}
.report{font-size:13px;color:var(--muted);margin-top:8px}
button.link{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline}
.queue-row{padding:20px 0;border-top:1px solid var(--hair)}
.queue-row h3{font-size:20px}
.queue-row p{margin:6px 0}
blockquote{margin:8px 0;padding:8px 14px;background:var(--soft);border-radius:var(--r-md)}
.pager{display:flex;gap:8px;margin-top:32px}
.pager a{min-width:40px;height:40px;display:grid;place-items:center;border:2px solid var(--hair);border-radius:var(--r-md);text-decoration:none!important}
.pager a.current{background:var(--ink);border-color:var(--ink);color:#fff}

@media(max-width:960px){.item-page{grid-template-columns:1fr}}
