:root{--bg:#06070b;--panel:#0e1018;--panel2:#141722;--panel3:#1a1e2c;--line:#222739;--line2:#2c3249;--text:#eef0f7;--muted:#8c93ab;--gold:#f5b942;--gold2:#ff8a3d;--discord:#5865f2;--blue:#2e62ff;--err:#ff5d6c;--ok:#3ddc97;--radius:16px;--shadow:0 10px 40px rgba(0,0,0,.35)}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(1200px 600px at 85% -10%,rgba(245,185,66,.10),transparent 60%),radial-gradient(900px 500px at -10% 0%,rgba(46,98,255,.14),transparent 60%),var(--bg);background-attachment:fixed}
a{color:var(--gold)}
h1,h2,h3{letter-spacing:-.02em}
h2{font-size:17px;margin:0 0 6px;display:flex;align-items:center;gap:10px}
h2 .ic{color:var(--gold);width:18px;height:18px}
code{background:var(--panel3);border:1px solid var(--line);padding:1px 6px;border-radius:6px;color:var(--gold);font-size:.9em}
.ic{width:18px;height:18px;flex:none}
.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.right{text-align:right}.mt{margin-top:12px}
::selection{background:rgba(245,185,66,.35)}

/* buttons & inputs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;text-decoration:none;font:600 14px Inter,sans-serif;padding:10px 16px;border-radius:11px;color:#16110a;background:linear-gradient(135deg,var(--gold),var(--gold2));box-shadow:0 6px 20px rgba(255,138,61,.18);transition:transform .1s,filter .15s,box-shadow .15s;white-space:nowrap}
.btn:hover{filter:brightness(1.08);box-shadow:0 8px 26px rgba(255,138,61,.28)}.btn:active{transform:translateY(1px)}
.btn.ghost{background:rgba(255,255,255,.03);color:var(--text);border:1px solid var(--line2);box-shadow:none}
.btn.ghost:hover{border-color:var(--gold);background:rgba(245,185,66,.06)}
.btn.discord{background:var(--discord);color:#fff;box-shadow:0 6px 20px rgba(88,101,242,.3)}
.btn.danger{background:rgba(255,93,108,.1);color:#ff8792;border:1px solid rgba(255,93,108,.35);box-shadow:none}
.btn.danger:hover{background:rgba(255,93,108,.18)}
.btn.wide{width:100%;padding:12px}.btn.small{padding:7px 12px;font-size:13px;border-radius:9px}
.btn .ic{width:16px;height:16px}
.icon-btn{background:none;border:1px solid transparent;color:var(--muted);cursor:pointer;border-radius:9px;padding:7px;display:grid;place-items:center}
.icon-btn:hover{color:var(--text);background:var(--panel3)}
label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);font-weight:500}
input,select{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:11px;padding:11px 12px;font:14px Inter,sans-serif;outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(245,185,66,.12)}
select{cursor:pointer}
.stack{display:flex;flex-direction:column;gap:14px;margin-top:10px}
.form-row{display:flex;gap:10px;margin-top:10px}.form-row input{flex:1;min-width:0}
form.inline{display:inline}
.radio{flex-direction:row;align-items:flex-start;gap:12px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;color:var(--text)}
.radio:has(input:checked){border-color:var(--gold);background:rgba(245,185,66,.06)}
.radio input{margin-top:3px;accent-color:var(--gold)}
.radio span{display:flex;flex-direction:column;gap:4px;font-weight:400}.radio small{color:var(--muted)}

/* cards */
.card{background:linear-gradient(180deg,rgba(20,23,34,.9),rgba(12,14,21,.9));border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:20px;box-shadow:var(--shadow)}
.row-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.row-head h2{margin:0}
.section-title{font-size:15px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:8px 0 14px}
.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px;margin-bottom:0}
.two-col>.card{margin-bottom:20px}
.two-col.wide-left{grid-template-columns:minmax(320px,1fr) minmax(320px,1fr)}
.empty{text-align:center;color:var(--muted);padding:40px 20px;display:flex;flex-direction:column;align-items:center;gap:10px}
.empty .ic{width:40px;height:40px;color:var(--line2)}.empty p{margin:0}
.flash{padding:12px 16px;border-radius:12px;margin:0 0 16px;background:var(--panel2);border:1px solid var(--line)}
.flash.error{border-color:rgba(255,93,108,.45);color:#ffb3ba;background:rgba(255,93,108,.07)}
.flash.ok{border-color:rgba(61,220,151,.4);color:#a5f3cf;background:rgba(61,220,151,.07)}
.public .flash{max-width:440px;margin:0 auto 16px}

/* public topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--line);background:rgba(6,7,11,.72);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:800;font-size:19px;letter-spacing:.2px}
.brand b{color:var(--gold)}.brand small{color:var(--muted);font-weight:500;font-size:13px;margin-left:3px}
.logo{width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(245,185,66,.35))}
nav{display:flex;align-items:center;gap:8px}nav form{margin:0}
.navlink{display:flex;align-items:center;gap:7px;color:var(--muted);text-decoration:none;font-weight:500;font-size:14px;padding:8px 12px;border-radius:10px}
.navlink:hover{color:var(--text);background:var(--panel2)}
.who{display:flex;margin-left:4px}
.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--line2)}
.avatar.initial{display:grid;place-items:center;background:linear-gradient(135deg,#2a2f45,#1a1e2c);color:var(--gold);font-weight:800;font-size:14px}
.avatar.sm{width:28px;height:28px;font-size:12px}.avatar.lg{width:64px;height:64px;font-size:24px}
main.public{width:100%;max-width:1120px;margin:0 auto;padding:36px 20px;flex:1}
footer{text-align:center;color:var(--muted);font-size:13px;padding:28px}footer b{color:var(--gold)}footer a{color:var(--muted)}

/* hero */
.hero{text-align:center;padding:30px 0 10px}
.hero-logo{width:200px;max-width:55vw;display:block;margin:0 auto 18px;filter:drop-shadow(0 10px 40px rgba(46,98,255,.35)) drop-shadow(0 0 30px rgba(245,185,66,.25));animation:float 6s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-8px)}}
.hero h1{font-size:clamp(40px,7vw,74px);margin:0 0 16px;letter-spacing:-2px;font-weight:800}
.accent{background:linear-gradient(135deg,var(--gold),var(--gold2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--muted);max-width:640px;margin:0 auto 28px;font-size:18px;line-height:1.6}
.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.hero-actions .btn{padding:13px 22px;font-size:15px}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:56px}
.feature{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;gap:8px;transition:border-color .2s,transform .2s}
.feature:hover{border-color:rgba(245,185,66,.4);transform:translateY(-2px)}
.feature .ic{width:28px;height:28px;color:var(--gold);padding:6px;box-sizing:content-box;background:rgba(245,185,66,.1);border-radius:10px}
.feature b{font-size:16px}.feature span{color:var(--muted);font-size:14px;line-height:1.5}

/* auth */
.auth{max-width:440px;margin:30px auto}
.auth-logo{width:90px;display:block;margin:0 auto 10px}
.auth h1,.auth>p{text-align:center}.auth h1{margin:0 0 4px}
.auth form{display:flex;flex-direction:column;gap:14px;margin-top:8px}
.auth .discord{width:100%;padding:12px;margin-top:18px}
.divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin:16px 0 4px}
.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}

/* app shell */
body.app{flex-direction:row}
.sidebar{width:252px;flex:none;height:100vh;position:sticky;top:0;display:flex;flex-direction:column;gap:18px;padding:20px 16px;background:rgba(10,11,17,.85);border-right:1px solid var(--line);backdrop-filter:blur(12px);z-index:20}
.sidebar .brand{padding:0 6px}
.side-nav{display:flex;flex-direction:column;gap:3px;flex:1;overflow:auto}
.side-nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:11px;color:var(--muted);text-decoration:none;font-weight:500;font-size:14px;transition:background .15s,color .15s}
.side-nav a:hover{background:var(--panel2);color:var(--text)}
.side-nav a.active{background:linear-gradient(90deg,rgba(245,185,66,.16),rgba(245,185,66,.03));color:var(--text);box-shadow:inset 3px 0 0 var(--gold)}
.side-nav a.active .ic{color:var(--gold)}
.side-sep{height:1px;background:var(--line);margin:10px 6px}
.side-user{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.side-user-info{flex:1;min-width:0;display:flex;flex-direction:column}
.side-user-info b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-user-info span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-user form{margin:0}
.app-main{flex:1;min-width:0;display:flex;flex-direction:column}
.app-top{display:flex;align-items:center;gap:16px;padding:22px 32px 18px;position:sticky;top:0;z-index:15;background:linear-gradient(180deg,rgba(6,7,11,.95),rgba(6,7,11,.75));backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.app-title{flex:1;min-width:0}
.app-title h1{margin:0;font-size:24px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-title p{margin:4px 0 0;color:var(--muted);font-size:14px}
.app-actions{display:flex;gap:8px}
.menu-btn{display:none}
.app-content{padding:26px 32px 40px;max-width:1280px;width:100%}

/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:20px}
.stat{display:flex;align-items:center;gap:14px;padding:18px;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(135deg,rgba(26,30,44,.9),rgba(14,16,24,.9));position:relative;overflow:hidden}
.stat:after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(245,185,66,.12),transparent 70%)}
.stat-ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:rgba(245,185,66,.12);color:var(--gold);flex:none}
.stat-ic .ic{width:22px;height:22px}
.stat div:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.stat span{color:var(--muted);font-size:13px;font-weight:500}
.stat b{font-size:24px;font-weight:800;letter-spacing:-.02em}
.stat small{color:var(--muted);font-size:12px}

/* uploader */
.inline-select{flex-direction:row;align-items:center;gap:10px}
.inline-select select{padding:8px 10px}
.drop{display:block;border:2px dashed var(--line2);border-radius:var(--radius);padding:46px 20px;text-align:center;cursor:pointer;transition:.2s;color:var(--text);background:radial-gradient(600px 200px at 50% 0%,rgba(245,185,66,.06),transparent)}
.drop:hover,.drop.over{border-color:var(--gold);background:rgba(245,185,66,.06)}
.drop.over{transform:scale(1.01)}
.drop h3{margin:12px 0 6px;font-size:19px}.drop p{margin:0;font-size:14px}
.drop-icon{width:62px;height:62px;margin:0 auto;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#16110a;box-shadow:0 10px 30px rgba(255,138,61,.3)}
.drop-icon .ic{width:28px;height:28px}
#upload.flash-target{animation:pulse 1.2s ease}
@keyframes pulse{30%{box-shadow:0 0 0 4px rgba(245,185,66,.35)}}
#queue{display:flex;flex-direction:column;gap:10px;margin-top:16px}
#queue:empty{display:none}
.qrow{display:grid;grid-template-columns:minmax(120px,1fr) 160px minmax(260px,2fr);gap:14px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:14px}
.qname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.bar{height:6px;background:var(--line);border-radius:6px;overflow:hidden}
.bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--gold2));transition:width .2s}
.qrow.done .bar span{background:var(--ok)}.qrow.err .bar span{background:var(--err);width:100%}
.qrow.err .qstatus{color:var(--err)}
.qstatus{display:flex;gap:8px;color:var(--muted);align-items:center}.qstatus input{flex:1;min-width:0;padding:7px 10px;font-size:13px}

/* toolbar, chips */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}
.toolbar input[type=search]{flex:1;min-width:200px}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.chip{background:var(--panel2);border:1px solid var(--line);color:var(--muted);padding:7px 14px;border-radius:999px;cursor:pointer;font:500 13px Inter,sans-serif;text-decoration:none}
.chip:hover{color:var(--text)}
.chip.active{color:#16110a;background:var(--gold);border-color:var(--gold)}
.pager{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:20px}

/* gallery */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.item{background:var(--panel2);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s,transform .2s,box-shadow .2s}
.item:hover{border-color:var(--line2);transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.35)}
.preview{position:relative;aspect-ratio:16/10;background:#05060a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:0;overflow:hidden}
.preview img,.preview video{width:100%;height:100%;object-fit:contain;min-height:0}
.preview audio{width:90%}
.audio-art{color:var(--gold)}.audio-art .ic{width:44px;height:44px}
.kind-badge{position:absolute;top:10px;left:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:999px;background:rgba(6,7,11,.75);border:1px solid var(--line2);color:var(--text);pointer-events:none}
.meta{padding:12px 13px 13px;display:flex;flex-direction:column;gap:8px}
.name{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sub{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--muted);font-size:12px;align-items:center}
.tag{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:rgba(46,98,255,.15);color:#9fb6ff;border:1px solid rgba(46,98,255,.3)}
.tag.api{background:rgba(245,185,66,.12);color:var(--gold);border-color:rgba(245,185,66,.3)}
.tag.muted-tag{background:var(--panel3);color:var(--muted);border-color:var(--line2)}
.link{display:flex;gap:6px}.link input{flex:1;min-width:0;padding:7px 9px;font-size:12px}
.actions{display:flex;justify-content:space-between;align-items:center;font-size:13px;gap:8px}
.actions a{text-decoration:none}
.link-btn{background:none;border:0;color:var(--muted);cursor:pointer;font:13px Inter,sans-serif;padding:0}
.link-btn.copy:hover{color:var(--gold)}.link-btn.delete:hover{color:var(--err)}

/* quick links */
.quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.quick-card{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);color:var(--text);text-decoration:none;transition:border-color .2s,transform .2s}
.quick-card:hover{border-color:rgba(245,185,66,.45);transform:translateY(-2px)}
.quick-card .ic{width:24px;height:24px;color:var(--gold);margin-bottom:6px}
.quick-card span{color:var(--muted);font-size:13px}

/* communities */
.comm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.comm-card{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:18px;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(135deg,var(--panel2),var(--panel));color:var(--text);text-decoration:none;transition:border-color .2s,transform .2s}
.comm-card:hover{border-color:rgba(245,185,66,.45);transform:translateY(-2px)}
.comm-avatar{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;font-weight:800;font-size:18px;color:#16110a;background:linear-gradient(135deg,var(--gold),var(--gold2))}
.comm-info{display:flex;flex-direction:column;gap:6px;align-items:flex-start;min-width:0}
.comm-info b{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.comm-stats{grid-column:1/-1;display:flex;gap:16px;color:var(--muted);font-size:13px;border-top:1px solid var(--line);padding-top:12px}
.comm-stats b{color:var(--text)}
.role{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:999px;background:var(--panel3);color:var(--muted);border:1px solid var(--line2)}
.role-owner{background:rgba(245,185,66,.14);color:var(--gold);border-color:rgba(245,185,66,.35)}
.role-admin{background:rgba(88,101,242,.16);color:#aab2ff;border-color:rgba(88,101,242,.4)}
.code-input{font:700 18px ui-monospace,Menlo,monospace!important;letter-spacing:.2em;text-align:center;color:var(--gold)!important}
.member{display:flex;align-items:center;gap:10px}
.danger-zone{border-color:rgba(255,93,108,.25)}
.danger-zone h2{color:#ff8792}

/* tables */
.table-wrap{overflow-x:auto;margin:0 -4px}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{text-align:left;color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding:10px 12px;border-bottom:1px solid var(--line)}
.table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table tr:hover td{background:rgba(255,255,255,.015)}
.table tr.revoked td{opacity:.45}
.table select{padding:6px 8px;font-size:13px}

/* keys & docs */
.newkey{border-color:rgba(61,220,151,.45);background:linear-gradient(135deg,rgba(61,220,151,.08),rgba(14,16,24,.9))}
.newkey-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.newkey-head .ic{color:var(--ok);width:24px;height:24px;margin-top:2px}
.newkey-head p{margin:4px 0 0}
.newkey .link input{font:13px ui-monospace,Menlo,monospace;padding:11px 12px}
pre.code{background:#05060a;border:1px solid var(--line);border-radius:12px;padding:14px 16px;overflow-x:auto;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;color:#d8dcef;margin:10px 0}
pre.code code{background:none;border:0;padding:0;color:inherit;font-size:inherit}
.doc h3{font-size:14px;margin:18px 0 4px;color:var(--gold)}
.doc p{line-height:1.6;color:#c5cadb;font-size:14px}
.profile-row{display:flex;align-items:center;gap:14px;margin:8px 0 6px}.profile-row p{margin:2px 0 0}
.ok-line{color:var(--ok);font-size:14px}

/* share page */
.share{max-width:960px;margin:0 auto}
.share-media{background:#05060a;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:200px}
.share-media video,.share-media img{display:block;width:100%;max-height:75vh;object-fit:contain}
.share-media audio{width:90%;margin-bottom:20px}
.share-title{font-size:20px;margin:16px 0 4px;word-break:break-word}
.share .link{margin-top:14px;flex-wrap:wrap}.share .link input{min-width:220px;font-size:13px}

#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ok);color:#06130d;font-weight:700;padding:10px 18px;border-radius:999px;opacity:0;pointer-events:none;transition:.2s;z-index:50;box-shadow:0 10px 30px rgba(61,220,151,.3)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media (max-width:960px){
  .sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .25s;box-shadow:20px 0 60px rgba(0,0,0,.5)}
  body.nav-open .sidebar{transform:none}
  .menu-btn{display:grid}
  .app-top{padding:14px 16px}.app-content{padding:18px 16px 32px}
  .app-actions .btn span{display:none}
  .two-col.wide-left{grid-template-columns:1fr}
}
@media (max-width:640px){
  .qrow{grid-template-columns:1fr}.topbar{padding:12px 14px}.brand small{display:none}
  .navlink span,nav .btn span{display:none}
  .two-col{grid-template-columns:1fr}
  .app-title h1{font-size:19px}.app-title p{display:none}
  .form-row{flex-direction:column}
}
.side-nav{align-items:stretch}
.empty[hidden]{display:none}

/* ── Visibility badge on media cards ──────────────────────────────────────── */
.vis-badge{position:absolute;top:10px;right:10px;font-size:11px;font-weight:700;display:flex;align-items:center;gap:4px;padding:3px 8px 3px 5px;border-radius:999px;pointer-events:none;backdrop-filter:blur(6px)}
.vis-badge .ic{width:11px;height:11px}
.vis-badge.pub{background:rgba(61,220,151,.18);border:1px solid rgba(61,220,151,.4);color:#a5f3cf}
.vis-badge.prv{background:rgba(255,93,108,.14);border:1px solid rgba(255,93,108,.35);color:#ffb3ba}

/* Uploader chip in gallery view */
.uploader-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px 2px 5px;border-radius:999px;background:rgba(245,185,66,.1);color:var(--gold);border:1px solid rgba(245,185,66,.25)}
.uploader-tag .ic{width:11px;height:11px}

/* ── Site footer ──────────────────────────────────────────────────────────── */
.site-footer{background:linear-gradient(180deg,transparent,rgba(6,7,11,.98));border-top:1px solid var(--line);padding:48px 20px 0}
.footer-inner{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1fr auto;gap:40px;padding-bottom:40px}
.footer-brand{display:flex;flex-direction:column;gap:12px;max-width:260px}
.footer-logo{width:36px;height:36px}
.footer-logo-link{gap:8px;font-size:17px}
.footer-tagline{color:var(--muted);font-size:13px;margin:0;line-height:1.6}
.footer-links{display:flex;gap:40px}
.footer-col{display:flex;flex-direction:column;gap:8px;min-width:120px}
.footer-col b{color:var(--text);font-size:13px;margin-bottom:4px}
.footer-col a{color:var(--muted);font-size:13px;text-decoration:none;transition:color .15s}
.footer-col a:hover{color:var(--gold)}
.footer-bottom{border-top:1px solid var(--line);padding:18px 0;max-width:1120px;margin:0 auto;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;flex-wrap:wrap}
.footer-bottom a{color:var(--muted);text-decoration:none}.footer-bottom a:hover{color:var(--gold)}
.footer-sep{color:var(--line2)}
@media(max-width:760px){.footer-inner{grid-template-columns:1fr}.footer-links{flex-wrap:wrap;gap:28px}}

/* ── Homepage gallery preview ────────────────────────────────────────────── */
.home-gallery{margin:48px 0 0}
.section-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.section-hdr h2{margin:0;font-size:17px}
.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.home-thumb{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:1;display:block;background:var(--panel2);border:1px solid var(--line);transition:transform .2s,border-color .2s}
.home-thumb:hover{transform:scale(1.03);border-color:rgba(245,185,66,.5)}
.home-thumb img{width:100%;height:100%;object-fit:cover}
.home-thumb-user{position:absolute;bottom:0;left:0;right:0;padding:18px 8px 7px;background:linear-gradient(transparent,rgba(6,7,11,.85));font-size:11px;font-weight:600;color:var(--gold);display:flex;align-items:center;gap:4px}
.home-thumb-user .ic{width:11px;height:11px}

/* ── Gallery hero ────────────────────────────────────────────────────────── */
.gallery-hero{text-align:center;padding:28px 0 16px}
.gallery-hero h1{margin:0 0 8px;font-size:clamp(28px,5vw,42px);display:flex;align-items:center;justify-content:center;gap:12px}
.gallery-hero h1 .ic{width:36px;height:36px;color:var(--gold)}
.gallery-cta{max-width:560px;margin:20px auto;text-align:center}
.gallery-cta h2{margin:0 0 8px}.gallery-cta .muted{margin:0 0 16px}

/* ── Partners ────────────────────────────────────────────────────────────── */
.partners-hero{text-align:center;padding:40px 20px 20px}
.partners-hero-ic{width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,rgba(245,185,66,.2),rgba(245,185,66,.05));border:1px solid rgba(245,185,66,.35);display:grid;place-items:center;margin:0 auto 16px}
.partners-hero-ic .ic{width:32px;height:32px;color:var(--gold)}
.partners-hero h1{font-size:clamp(28px,5vw,44px);margin:0 0 10px}
.partners-section{margin-bottom:32px}
.partners-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.partners-grid.featured{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.partner-card{position:relative;display:flex;align-items:flex-start;gap:16px;padding:22px;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(135deg,var(--panel2),var(--panel));transition:border-color .2s,transform .2s}
.partner-card:hover{border-color:rgba(245,185,66,.4);transform:translateY(-2px)}
.partner-card.featured{border-color:rgba(245,185,66,.3);background:linear-gradient(135deg,rgba(245,185,66,.07),var(--panel))}
.partner-logo{width:56px;height:56px;border-radius:14px;object-fit:contain;flex:none;background:var(--panel3);border:1px solid var(--line)}
.partner-logo.sm{width:44px;height:44px;border-radius:11px}
.partner-logo-placeholder{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#16110a;font-weight:800;font-size:16px;flex:none}
.partner-logo-placeholder.sm{width:44px;height:44px;font-size:13px;border-radius:11px}
.partner-info{flex:1;min-width:0}
.partner-name{font-size:16px;display:block;margin-bottom:4px}
.partner-desc{color:var(--muted);font-size:13px;margin:0 0 10px;line-height:1.5}
.partner-links{display:flex;gap:8px;flex-wrap:wrap}
.partner-badge{position:absolute;top:14px;right:14px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:3px 9px;border-radius:999px;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#16110a}
.partner-del{position:absolute;bottom:14px;right:14px}
.partners-admin{margin-top:32px}
.partners-cta{max-width:600px;margin:32px auto;text-align:center}
.partners-cta h2{margin:0 0 8px}

/* ── Image Collage ────────────────────────────────────────────────────────── */
.collage-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-top:14px}
.pick-item{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;cursor:pointer;border:2px solid var(--line);transition:border-color .15s}
.pick-item:hover{border-color:var(--gold)}
.pick-item:has(.pick-check:checked){border-color:var(--gold);box-shadow:0 0 0 2px rgba(245,185,66,.35)}
.pick-item img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.pick-item .pick-check{position:absolute;top:6px;left:6px;width:16px;height:16px;accent-color:var(--gold);cursor:pointer;z-index:2}
.pick-overlay{position:absolute;inset:0;display:none;place-items:center;background:rgba(245,185,66,.18)}
.pick-item:has(.pick-check:checked) .pick-overlay{display:grid}
.pick-overlay .ic{width:24px;height:24px;color:var(--gold)}

.collage-preview{border:2px dashed var(--line2);border-radius:14px;overflow:hidden;min-height:200px;display:flex;align-items:center;justify-content:center;background:var(--panel);margin-top:4px}
.collage-preview-empty{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--muted);padding:30px}
.collage-preview-empty .ic{width:36px;height:36px;color:var(--line2)}
.preview-grid{display:grid;grid-template-columns:repeat(var(--cols,2),1fr);gap:3px;width:100%}
.preview-cell{aspect-ratio:1;overflow:hidden;background:#05060a}
.preview-cell img{width:100%;height:100%;object-fit:cover}

/* ── VaultFXRP End of Watch spotlight ────────────────────────────────────── */
.eow-spotlight{position:relative;border-radius:var(--radius);overflow:hidden;margin-bottom:36px;border:1px solid rgba(245,185,66,.35);background:linear-gradient(135deg,rgba(6,7,20,.97) 0%,rgba(10,14,30,.97) 50%,rgba(6,7,20,.97) 100%)}
.eow-spotlight::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 500px at 80% 50%,rgba(245,185,66,.09),transparent 60%),radial-gradient(600px 400px at 10% 50%,rgba(46,98,255,.11),transparent 60%);pointer-events:none}
/* thin blue line stripe at the bottom */
.eow-spotlight::after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,#1a6fdb 20%,#2e90ff 50%,#1a6fdb 80%,transparent)}
.eow-inner{display:grid;grid-template-columns:280px 1fr;gap:40px;align-items:center;padding:40px 44px;position:relative;z-index:1}
.eow-logo-wrap{display:flex;align-items:center;justify-content:center}
.eow-logo{width:260px;height:260px;object-fit:contain;filter:drop-shadow(0 0 40px rgba(245,185,66,.30)) drop-shadow(0 0 80px rgba(46,98,255,.20));animation:float 7s ease-in-out infinite}
.eow-logo-placeholder{width:200px;height:200px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#16110a;font-weight:900;font-size:28px;text-align:center;line-height:1.3}
.eow-badge{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;padding:5px 12px;border-radius:999px;background:linear-gradient(90deg,rgba(245,185,66,.18),rgba(245,185,66,.06));border:1px solid rgba(245,185,66,.45);color:var(--gold);margin-bottom:14px}
.eow-badge .ic{width:13px;height:13px}
.eow-title{font-size:clamp(24px,4vw,40px);font-weight:900;margin:0 0 14px;letter-spacing:-.03em;line-height:1.1}
.eow-accent{background:linear-gradient(135deg,#2e90ff,#5865f2);-webkit-background-clip:text;background-clip:text;color:transparent}
.eow-desc{color:#c8cce0;font-size:15px;line-height:1.7;margin:0 0 20px;max-width:580px}
.eow-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.eow-tag{font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);color:var(--muted)}
.eow-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.eow-btn{background:linear-gradient(135deg,#f5b942,#ff8a3d);color:#16110a;font-weight:700;padding:12px 22px;font-size:15px}
.eow-btn:hover{filter:brightness(1.1)}
@media(max-width:860px){
  .eow-inner{grid-template-columns:1fr;text-align:center;padding:28px 20px;gap:24px}
  .eow-logo{width:180px;height:180px}
  .eow-badge{margin:0 auto 14px}
  .eow-tags{justify-content:center}
  .eow-actions{justify-content:center}
  .eow-desc{margin-left:auto;margin-right:auto}
}

/* EOW logo fallback */
.eow-logo-fallback{display:flex;flex-direction:column;align-items:center;gap:14px}
.eow-logo-shield{width:220px;height:220px;display:grid;place-items:center;filter:drop-shadow(0 0 30px rgba(245,185,66,.25))}
.eow-logo-shield svg{width:100%;height:100%}
.eow-logo-hint{font-size:12px;color:var(--muted);text-align:center;line-height:1.6;margin:0}
.eow-logo-hint code{font-size:11px}
