@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Oswald:wght@700&family=Roboto+Mono:wght@400;600&display=swap');

:root {
  --bg:#0a0a0c; --bg-2:#0e0e12; --card:#121218; --card-2:#16161d;
  --border:#26262e; --border-hi:#3a3a46;
  --red:#ff3b3b; --orange:#ff7a1a; --cyan:#22d3ee;
  --text:#e8e8ee; --dim:#9a9aa6; --faint:#5a5a68;
  --glow:rgba(255,59,59,.12);
  --gold:#ffd54a; --purple:#b44ad4; --green:#4ade80;
  --radius:10px; --radius-sm:7px;
  --shadow:0 10px 40px rgba(0,0,0,.55), 0 2px 10px rgba(0,0,0,.4);
  --transition:.18s cubic-bezier(.4,0,.2,1);
}

*{box-sizing:border-box;margin:0;padding:0;}

body{
  background:
    radial-gradient(1100px 500px at 85% -10%, rgba(255,59,59,.05), transparent 60%),
    radial-gradient(900px 500px at -10% 30%, rgba(34,211,238,.045), transparent 60%),
    var(--bg);
  color:var(--text);
  font-family:'Roboto Mono',monospace;min-height:100vh;
  padding:30px 20px 80px;
  background-attachment:fixed;
  display:flex;flex-direction:column;align-items:center;
}

::selection{background:rgba(255,59,59,.35);color:#fff;}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:3px;}

/* ── BANNED SCREEN ── */
#bannedScreen{position:fixed;inset:0;background:rgba(5,5,7,.94);z-index:9999;display:none;flex-direction:column;align-items:center;justify-content:center;}
body.is-banned #bannedScreen{display:flex;}
#bannedText{font-family:'Oswald',sans-serif;font-size:clamp(4rem,16vw,10rem);font-weight:900;letter-spacing:.2em;color:var(--red);text-shadow:0 0 60px rgba(255,59,59,.55);animation:pulse-red 2s infinite;}
#bannedBg{position:absolute;inset:0;background:repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,0,0,.03) 10px, rgba(255,0,0,.03) 20px);pointer-events:none;}
body.is-banned > *:not(#bannedScreen) { filter: blur(20px) grayscale(1) !important; pointer-events: none !important; user-select: none !important; }
body.is-banned{overflow:hidden !important;}
@keyframes pulse-red{0%{transform:scale(1);opacity:1;}50%{transform:scale(1.05);opacity:.8;}100%{transform:scale(1);opacity:1;}}

/* ── AUTH GATE ── */
#authGate{
  display:none;
  position:fixed;inset:0;z-index:9000;
  background:
    radial-gradient(900px 500px at 80% -10%, rgba(255,59,59,.08), transparent 60%),
    radial-gradient(800px 500px at 0% 100%, rgba(34,211,238,.07), transparent 60%),
    var(--bg);
  align-items:center;justify-content:center;
  flex-direction:column;
}
#authGate.active{display:flex;}
.auth-gate-box{
  background:linear-gradient(180deg,#15151c,#101016);
  border:1px solid var(--border);
  width:min(430px,94vw);padding:38px 36px;border-radius:14px;
  box-shadow:0 0 0 1px rgba(255,255,255,.03) inset, 0 30px 90px rgba(0,0,0,.75);
  position:relative;overflow:hidden;
}
.auth-gate-box::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--red),var(--orange),transparent);
  opacity:.8;
}
.auth-gate-title{
  font-family:'Oswald',sans-serif;font-size:1.6rem;
  letter-spacing:.12em;margin-bottom:6px;color:#fff;
  text-shadow:0 0 24px rgba(255,255,255,.15);
}
.auth-gate-sub{font-size:.76rem;color:var(--dim);margin-bottom:26px;letter-spacing:.05em;line-height:1.6;}
.auth-gate-tabs{display:flex;gap:4px;margin-bottom:24px;background:#0b0b10;border:1px solid var(--border);border-radius:9px;padding:4px;}
.auth-gate-tab{
  flex:1;
  background:transparent;border:none;border-radius:6px;
  color:var(--dim);padding:10px 18px;font-family:'Roboto Mono',monospace;
  font-size:.8rem;cursor:pointer;letter-spacing:.08em;
  transition:var(--transition);
}
.auth-gate-tab:hover{color:var(--text);}
.auth-gate-tab.active{color:#fff;background:linear-gradient(180deg,#2a2a35,#1e1e28);box-shadow:0 1px 6px rgba(0,0,0,.5);}

/* ── TOP BAR ── */
.top-bar{
  width:100%;max-width:900px;
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:28px;gap:10px;flex-wrap:wrap;
  position:sticky;top:0;z-index:100;
  padding:10px 0;
  background:linear-gradient(180deg, rgba(10,10,12,.92), rgba(10,10,12,.75) 70%, transparent);
  backdrop-filter:blur(8px);
}
.top-bar-left{display:flex;align-items:center;gap:8px;}
.top-bar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
/* На подстраницах панель не липнет и не перекрывается контентом */
body.subpage .top-bar{position:static;background:transparent;backdrop-filter:none;padding:0;}

.site-title{
  font-family:'Oswald',sans-serif;
  font-size:clamp(1.3rem,4vw,2.3rem);letter-spacing:.12em;text-transform:uppercase;
  color:#fff;background:#000;border:2px solid #fff;
  display:inline-block;padding:11px 26px;
  text-shadow:0 0 18px rgba(255,255,255,.25);box-shadow:5px 5px 0 var(--red);position:relative;
  transition:transform var(--transition), box-shadow var(--transition);
}
a.site-title:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--red);}
.site-title::before{content:'';position:absolute;inset:-6px;border:1px solid rgba(255,255,255,.08);pointer-events:none;}

/* ── ROLE BADGE ── */
.role-badge{
  display:flex;align-items:center;gap:7px;
  padding:8px 14px;border:1px solid var(--border);border-radius:999px;
  font-size:.74rem;cursor:default;user-select:none;
  background:rgba(255,255,255,.02);
}
.role-dot{width:8px;height:8px;border-radius:50%;background:var(--dim);flex-shrink:0;transition:box-shadow .3s;}
.role-dot.admin{background:var(--green);box-shadow:0 0 8px var(--green);}
.role-dot.premium{background:var(--gold);box-shadow:0 0 8px var(--gold);}
.role-dot.owner{background:var(--purple);box-shadow:0 0 8px var(--purple);}
.role-text{letter-spacing:.05em;}

.btn-login{
  background:rgba(255,255,255,.03);border:1px solid var(--border);color:var(--dim);
  padding:8px 16px;font-family:'Roboto Mono',monospace;font-size:.74rem;
  cursor:pointer;letter-spacing:.06em;border-radius:8px;
  transition:var(--transition);
}
.btn-login:hover{border-color:var(--red);color:var(--text);background:rgba(255,59,59,.06);transform:translateY(-1px);}
.btn-login.exit{color:var(--faint);}
.btn-login.exit:hover{border-color:var(--orange);color:var(--orange);background:rgba(255,122,26,.06);}

/* ── TABS ── */
.tabs{
  width:100%;max-width:900px;
  display:flex;gap:4px;border:none;
  background:#0c0c11;border:1px solid var(--border);border-radius:12px;padding:5px;
  margin-bottom:22px;overflow-x:auto;
}
.tab-btn{
  flex-shrink:0;
  background:transparent;border:none;border-radius:8px;
  color:var(--dim);padding:10px 20px;font-family:'Roboto Mono',monospace;
  font-size:.8rem;cursor:pointer;letter-spacing:.07em;
  transition:var(--transition);
}
.tab-btn:hover{color:var(--text);background:rgba(255,255,255,.04);}
.tab-btn.active{color:#fff;background:linear-gradient(180deg,#2b2b37,#1f1f29);box-shadow:0 2px 10px rgba(0,0,0,.5);}
.tab-btn.premium-tab{color:var(--gold);opacity:.75;}
.tab-btn.premium-tab:hover{opacity:1;}
.tab-btn.premium-tab.active{color:#000;background:linear-gradient(180deg,#ffe27a,#f0c02e);opacity:1;}
.tab-btn.premium-tab.locked{color:var(--faint);opacity:.5;}
.tab-btn.private-tab{color:var(--green);opacity:.75;}
.tab-btn.private-tab:hover{opacity:1;}
.tab-btn.private-tab.active{color:#000;background:linear-gradient(180deg,#86efac,#34d399);opacity:1;}
.tab-btn.private-tab.locked{color:var(--faint);opacity:.5;}

/* ── FOLDER BAR ── */
.folder-bar{
  width:100%;max-width:900px;
  display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px;align-items:center;
}
.folder-chip{
  background:rgba(255,255,255,.02);border:1px solid var(--border);color:var(--dim);
  padding:6px 14px;font-family:'Roboto Mono',monospace;font-size:.72rem;
  cursor:pointer;letter-spacing:.05em;transition:var(--transition);
  border-radius:999px;
}
.folder-chip:hover{border-color:var(--border-hi);color:var(--text);transform:translateY(-1px);}
.folder-chip.active{border-color:var(--cyan);color:var(--cyan);background:rgba(34,211,238,.08);box-shadow:0 0 12px rgba(34,211,238,.12);}
.folder-chip.all{border-style:dashed;}

/* Premium folder — golden shimmer */
@keyframes premium-shimmer{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
@keyframes premium-text-shimmer{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
.folder-chip.premium-folder{
  border-color:rgba(255,213,74,.55);
  background:linear-gradient(90deg,rgba(255,200,0,.1),rgba(255,240,120,.18),rgba(255,180,0,.1),rgba(255,240,160,.16));
  background-size:300% 300%;
  animation:premium-shimmer 3s ease infinite;
  position:relative;overflow:hidden;
  color:var(--gold);
}
.folder-chip.premium-folder span{
  background:linear-gradient(90deg,#c8860a,#ffe066,#ffd700,#ffb300,#ffe082,#ffd700);
  background-size:300% 300%;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  animation:premium-text-shimmer 2.5s ease infinite;
  font-weight:700;letter-spacing:.08em;
}
.folder-chip.premium-folder::after{
  content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,240,120,.3),transparent);
  animation:premium-sweep 2.8s ease-in-out infinite;pointer-events:none;
}
@keyframes premium-sweep{
  0%{left:-100%}60%,100%{left:160%}
}
.folder-chip.premium-folder:hover{border-color:var(--gold);box-shadow:0 0 16px rgba(255,213,74,.25);}
.folder-chip.premium-folder.active{border-color:var(--gold);box-shadow:0 0 18px rgba(255,213,74,.32);}

.folder-chip.private-folder{
  border-color:rgba(74,222,128,.5);
  background:linear-gradient(90deg,rgba(74,222,128,.1),rgba(167,243,208,.16),rgba(56,142,60,.1),rgba(128,222,128,.14));
  background-size:300% 300%;
  animation:private-shimmer 3s ease infinite;
  position:relative;overflow:hidden;
  color:var(--green);
}
.folder-chip.private-folder span{
  background:linear-gradient(90deg,#1b5e20,#66bb6a,#4caf50,#2e7d32,#81c784,#4caf50);
  background-size:300% 300%;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  animation:private-text-shimmer 2.5s ease infinite;
  font-weight:700;letter-spacing:.08em;
}
.folder-chip.private-folder::after{
  content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(128,222,128,.26),transparent);
  animation:private-sweep 2.8s ease-in-out infinite;pointer-events:none;
}
@keyframes private-shimmer{
  0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}
}
@keyframes private-text-shimmer{
  0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}
}
@keyframes private-sweep{
  0%{left:-100%}60%,100%{left:160%}
}
.folder-chip.private-folder:hover{border-color:var(--green);box-shadow:0 0 16px rgba(74,222,128,.24);}
.folder-chip.private-folder.active{border-color:var(--green);box-shadow:0 0 18px rgba(74,222,128,.3);}

/* VIP folder — static gold glow */
.folder-chip.vip-folder{
  color:var(--gold);border-color:rgba(255,213,74,.5);
  background:rgba(255,213,74,.07);
  box-shadow:0 0 10px rgba(255,213,74,.12);
  font-weight:700;letter-spacing:.08em;
}
.folder-chip.vip-folder .vip-label{color:var(--gold);font-weight:700;letter-spacing:.08em;}
.folder-chip.vip-folder:hover{color:#fff1a8;border-color:var(--gold);background:rgba(255,213,74,.12);box-shadow:0 0 16px rgba(255,213,74,.25);}
.folder-chip.vip-folder.active{color:var(--gold);border-color:var(--gold);background:rgba(255,213,74,.15);box-shadow:0 0 18px rgba(255,213,74,.3);}

/* VIP entry highlight */
.entry.vip-folder-entry{
  border-color:rgba(255,200,0,.28) !important;
  background:rgba(255,213,74,.05) !important;
}
.entry.vip-folder-entry:hover{
  border-color:rgba(255,200,0,.5) !important;
  background:rgba(255,213,74,.09) !important;
  box-shadow:0 0 22px rgba(255,213,74,.14) !important;
}
.entry.vip-folder-entry::before{background:var(--gold) !important;}

/* VIP folder tag on entry */
.entry-folder-tag.vip-folder-tag{
  color:var(--gold);border-color:rgba(255,213,74,.4);
  background:rgba(255,213,74,.09);box-shadow:0 0 10px rgba(255,213,74,.08);
}
.entry-folder-tag.vip-folder-tag .vip-label{color:var(--gold);font-weight:700;}

/* ── SEARCH ── */
#entrySearch{border-radius:10px;}

/* ── ENTRIES ── */
.entries{width:100%;max-width:900px;display:flex;flex-direction:column;gap:10px;}

@keyframes rainbow{
  0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}
}

.entry{
  background:linear-gradient(180deg,var(--card),var(--bg-2));
  border:1px solid var(--border);border-radius:var(--radius);
  padding:16px 22px;
  cursor:pointer;display:flex;align-items:center;gap:12px;
  transition:border-color var(--transition),background var(--transition),box-shadow var(--transition),transform var(--transition);
  position:relative;overflow:hidden;user-select:none;
}
.entry::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--entry-accent, var(--red));
  transform:scaleY(0);transition:transform .2s;transform-origin:bottom;
}
.entry:hover{border-color:var(--border-hi);background:linear-gradient(180deg,var(--card-2),#14141b);box-shadow:0 6px 28px var(--glow), 0 2px 8px rgba(0,0,0,.4);transform:translateX(3px);}
.entry:hover::before{transform:scaleY(1);}

/* Premium folder highlight on entry — full shimmer */
@keyframes entry-premium-bg{
  0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}
}
@keyframes entry-premium-bar{
  0%{background-position:0% 0%}50%{background-position:0% 100%}100%{background-position:0% 0%}
}
.entry.premium-folder-entry{
  border-color:rgba(255,213,74,.28) !important;
  background:linear-gradient(90deg,rgba(255,200,0,.06),rgba(255,240,120,.11),rgba(255,180,0,.06),rgba(255,240,160,.09)) !important;
  background-size:300% 300% !important;
  animation:entry-premium-bg 3.5s ease infinite !important;
}
.entry.premium-folder-entry:hover{
  border-color:rgba(255,213,74,.5) !important;
  box-shadow:0 6px 26px rgba(255,213,74,.13) !important;
}
.entry.premium-folder-entry::before{
  background:linear-gradient(180deg,#c8860a,#ffe066,#ffd700,#ffb300,#c8860a) !important;
  background-size:100% 300% !important;
  animation:entry-premium-bar 2s ease infinite !important;
}

/* Private folder highlight on entry — full shimmer */
@keyframes entry-private-bg{
  0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}
}
@keyframes entry-private-bar{
  0%{background-position:0% 0%}50%{background-position:0% 100%}100%{background-position:0% 0%}
}
.entry.private-folder-entry{
  border-color:rgba(74,222,128,.28) !important;
  background:linear-gradient(90deg,rgba(74,222,128,.06),rgba(167,243,208,.1),rgba(56,142,60,.06),rgba(128,222,128,.09)) !important;
  background-size:300% 300% !important;
  animation:entry-private-bg 3.5s ease infinite !important;
}
.entry.private-folder-entry:hover{
  border-color:rgba(74,222,128,.5) !important;
  box-shadow:0 6px 26px rgba(74,222,128,.13) !important;
}
.entry.private-folder-entry::before{
  background:linear-gradient(180deg,#1b5e20,#66bb6a,#4caf50,#2e7d32,#1b5e20) !important;
  background-size:100% 300% !important;
  animation:entry-private-bar 2s ease infinite !important;
}

.entry.rainbow-entry{
  border-color:transparent !important;
  background:linear-gradient(135deg,#ff000020,#ff660020,#ffff0020,#00ff0020,#00ffff20,#0000ff20,#ff00ff20) !important;
  background-size:400% 400% !important;animation:rainbow 4s ease infinite !important;
}
.entry.rainbow-entry::after{
  content:'';position:absolute;inset:0;border:1px solid;
  border-image:linear-gradient(135deg,#f00,#f60,#ff0,#0f0,#0ff,#00f,#f0f) 1;pointer-events:none;
  border-radius:var(--radius);
}

.entry-num{font-family:'Oswald',sans-serif;font-size:1.05rem;color:var(--red);letter-spacing:.05em;min-width:30px;}
.entry-sep{color:var(--border);font-size:1.1rem;}
.entry-label{font-family:'Share Tech Mono',monospace;font-size:1rem;color:var(--text);letter-spacing:.05em;flex:1;}
.entry-tag{font-size:.7rem;padding:3px 9px;border:1px solid;border-radius:999px;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;}
.entry-meta{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;}
.entry-lock{font-size:.8rem;color:var(--faint);}
.tag-shame{color:var(--red);border-color:rgba(255,59,59,.6);background:rgba(255,59,59,.08);}
.tag-leak{color:var(--orange);border-color:rgba(255,122,26,.6);background:rgba(255,122,26,.08);}
.tag-info{color:var(--cyan);border-color:rgba(34,211,238,.55);background:rgba(34,211,238,.08);}
.tag-custom{color:#aaa;border-color:#555;background:rgba(255,255,255,.04);}
.entry-folder-tag{font-size:.64rem;color:var(--faint);border:1px solid #222;padding:3px 8px;border-radius:999px;}
.entry-folder-tag.premium-folder-tag{
  background:linear-gradient(90deg,rgba(255,200,0,.1),rgba(255,240,120,.18),rgba(255,180,0,.1));
  background-size:300% 300%;animation:premium-shimmer 3s ease infinite;
  border-color:rgba(255,213,74,.5);
  color:var(--gold);
}
.entry-folder-tag.private-folder-tag{
  background:linear-gradient(90deg,rgba(74,222,128,.1),rgba(167,243,208,.16),rgba(56,142,60,.1));
  background-size:300% 300%;animation:private-shimmer 3s ease infinite;
  border-color:rgba(74,222,128,.5);color:var(--green);
}
.entry-actions{display:flex;gap:6px;margin-left:4px;}
.entry-edit-btn{background:none;border:1px solid #333;color:var(--faint);padding:4px 9px;font-family:'Roboto Mono',monospace;font-size:.68rem;cursor:pointer;transition:var(--transition);letter-spacing:.04em;border-radius:6px;}
.entry-edit-btn:hover{border-color:var(--orange);color:var(--orange);background:rgba(255,122,26,.06);}
.entry-del-btn{background:none;border:1px solid #333;color:var(--faint);padding:4px 9px;font-family:'Roboto Mono',monospace;font-size:.68rem;cursor:pointer;transition:var(--transition);border-radius:6px;}
.entry-del-btn:hover{border-color:var(--red);color:var(--red);background:rgba(255,59,59,.06);}
.entry-arrow{color:var(--faint);font-size:.85rem;transition:var(--transition);}
.entry:hover .entry-arrow{color:var(--red);transform:translateX(5px);}

.add-btn{margin-top:18px;background:rgba(255,255,255,.015);border:1px dashed #333;color:var(--faint);padding:14px 24px;font-family:'Roboto Mono',monospace;font-size:.85rem;letter-spacing:.1em;cursor:pointer;width:100%;max-width:900px;text-align:left;transition:var(--transition);border-radius:var(--radius);}
.add-btn:hover{border-color:var(--red);color:var(--red);background:rgba(255,59,59,.04);}

/* ── OVERLAY ── */
.overlay{position:fixed;inset:0;background:rgba(4,4,6,.85);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:500;opacity:0;pointer-events:none;transition:opacity .22s;padding:16px;}
.overlay.open{opacity:1;pointer-events:all;}
.subpage{padding:20px 20px 80px;min-height:100vh;}
.overlay.static-page{position:relative;inset:auto;background:transparent;backdrop-filter:none;opacity:1;pointer-events:all;padding:24px 0 40px;z-index:auto;}

/* ── MODAL ── */
.modal{background:linear-gradient(180deg,#15151c,#101016);border:1px solid var(--border);border-top:2px solid var(--red);width:min(760px,96vw);max-height:92vh;display:flex;flex-direction:column;box-shadow:var(--shadow);border-radius:14px;transform:translateY(24px) scale(.97);transition:transform .22s;position:relative;overflow:hidden;}
.overlay.open .modal{transform:translateY(0) scale(1);}
.overlay.static-page .modal{transform:none;max-height:none;}
.modal.wide{width:min(940px,98vw);}
.modal-header{padding:20px 26px 16px;border-bottom:1px solid #1f1f27;display:flex;align-items:flex-start;gap:14px;}
.modal-num{font-family:'Oswald',sans-serif;font-size:1.5rem;color:var(--red);min-width:36px;padding-top:2px;}
.modal-title-wrap{flex:1;}
.modal-title{font-family:'Oswald',sans-serif;font-size:1.25rem;letter-spacing:.07em;text-transform:uppercase;color:#fff;line-height:1.2;}
.modal-subtitle{font-size:.75rem;color:var(--dim);margin-top:4px;letter-spacing:.04em;}
.modal-close{background:transparent;border:1px solid transparent;cursor:pointer;color:var(--faint);font-size:1.3rem;line-height:1;transition:var(--transition);padding:4px 8px;border-radius:8px;}
.modal-close:hover{color:var(--red);background:rgba(255,59,59,.08);}
.modal-body{padding:22px 26px;overflow-y:auto;flex:1;line-height:1.75;font-size:.92rem;color:#c9c9d4;}
.modal-body p{margin-bottom:12px;}
.modal-body h3{font-family:'Oswald',sans-serif;font-size:1rem;color:var(--red);letter-spacing:.09em;text-transform:uppercase;margin:18px 0 8px;}
.modal-body ul{padding-left:20px;margin-bottom:12px;}
.modal-body ul li{margin-bottom:6px;}
.modal-body .highlight{background:rgba(255,59,59,.09);border-left:3px solid var(--red);padding:10px 14px;margin:14px 0;color:#eee;border-radius:0 var(--radius-sm) var(--radius-sm) 0;}
.view-img-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:14px 0;}
.view-img-wrap{border:1px solid var(--border);overflow:hidden;aspect-ratio:16/9;background:#0d0d0d;cursor:pointer;transition:var(--transition);border-radius:var(--radius-sm);}
.view-img-wrap:hover{border-color:var(--red);}
.view-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s;}
.view-img-wrap:hover img{transform:scale(1.05);}
.view-inline-img{margin:14px 0;border:1px solid var(--border);overflow:hidden;background:#0d0d0d;cursor:pointer;transition:var(--transition);border-radius:var(--radius-sm);}
.view-inline-img:hover{border-color:var(--red);}
.view-inline-img img{width:100%;max-height:400px;object-fit:contain;display:block;transition:transform .2s;}
.view-inline-img:hover img{transform:scale(1.01);}
.modal-footer{padding:12px 26px;border-top:1px solid #1a1a22;display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--dim);}

/* ── LIGHTBOX ── */
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(4,4,6,.96);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;}
.lightbox.open{opacity:1;pointer-events:all;}
.lightbox img{max-width:94vw;max-height:92vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 80px rgba(0,0,0,.8);}
.lightbox-close{position:absolute;top:20px;right:24px;background:rgba(255,255,255,.05);border:1px solid var(--border);color:#aaa;font-size:1.6rem;cursor:pointer;transition:var(--transition);width:44px;height:44px;border-radius:50%;}
.lightbox-close:hover{color:var(--red);border-color:var(--red);transform:rotate(90deg);}

/* ── LOGIN/UNLOCK MODALS ── */
.login-modal{background:linear-gradient(180deg,#15151c,#101016);border:1px solid var(--border);border-top:2px solid var(--orange);width:min(410px,94vw);padding:34px;border-radius:14px;box-shadow:var(--shadow);transform:translateY(20px) scale(.97);transition:transform .22s;}
.overlay.open .login-modal{transform:translateY(0) scale(1);}
.unlock-modal{background:linear-gradient(180deg,#15151c,#101016);border:1px solid var(--border);border-top:2px solid var(--gold);width:min(370px,94vw);padding:30px;border-radius:14px;box-shadow:var(--shadow);transform:translateY(20px) scale(.97);transition:transform .22s;}
.overlay.open .unlock-modal{transform:translateY(0) scale(1);}

/* Autism entry highlight — pulsing purple/pink shimmer */
@keyframes entry-autism-bg{
  0%{background-position:0% 50%;box-shadow:0 0 10px rgba(156,39,176,.1);}
  50%{background-position:100% 50%;box-shadow:0 0 25px rgba(233,30,99,.18);}
  100%{background-position:0% 50%;box-shadow:0 0 10px rgba(156,39,176,.1);}
}
@keyframes entry-autism-bar{
  0%{background-position:0% 0%}50%{background-position:0% 100%}100%{background-position:0% 0%}
}
.entry.autism-entry{
  border-color:rgba(180,74,212,.4) !important;
  background:linear-gradient(90deg,rgba(156,39,176,.09),rgba(233,30,99,.13),rgba(156,39,176,.09),rgba(106,44,122,.11)) !important;
  background-size:300% 300% !important;
  animation:entry-autism-bg 4s ease infinite !important;
}
.entry.autism-entry:hover{
  border-color:rgba(233,30,99,.6) !important;
  background:linear-gradient(90deg,rgba(156,39,176,.14),rgba(233,30,99,.18),rgba(156,39,176,.14),rgba(106,44,122,.16)) !important;
  box-shadow:0 6px 30px rgba(233,30,99,.22) !important;
}
.entry.autism-entry::before{
  background:linear-gradient(180deg,#6a1b9a,#ad1457,#d81b60,#880e4f,#6a1b9a) !important;
  background-size:100% 300% !important;
  animation:entry-autism-bar 2s ease infinite !important;
  width:5px !important;
  transform:scaleY(1) !important;
}
.entry.autism-entry .entry-label{
  color:#ff80ab;
  text-shadow:0 0 8px rgba(255,128,171,.4);
}

.tab-btn.autism-tab{
  color:#f472b6 !important;
}
.tab-btn.autism-tab:hover{
  background:rgba(233,30,99,.08);
  text-shadow:0 0 10px rgba(233,30,99,.5);
}
.tab-btn.autism-tab.active{
  background:linear-gradient(180deg,#f472b6,#ec4899) !important;
  color:#000 !important;
  box-shadow:0 2px 12px rgba(236,72,153,.35);
}

/* Autism tag */
.tag-autism{
  color:#ff4081;
  border-color:rgba(255,64,129,.6);
  background:rgba(255,64,129,.12);
  font-weight:bold;
  animation:pulse-text 2s infinite;
}
@keyframes pulse-text{
  0%,100%{opacity:1}50%{opacity:.7}
}

/* ── Visual Effects ── */
.fx-none {}

/* Neon glow */
.fx-neon {
  box-shadow: 0 0 15px var(--fx-color, var(--purple)), inset 0 0 10px var(--fx-color, var(--purple)) !important;
  border-color: var(--fx-color, var(--purple)) !important;
}

/* Pulsing effect */
@keyframes fx-pulse {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(var(--fx-color-rgb), 0.4); }
  70% { transform: scale(1.01); box-shadow: 0 0 0 10px rgba(var(--fx-color-rgb), 0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(var(--fx-color-rgb), 0); }
}
.fx-pulse {
  animation: fx-pulse 2s infinite !important;
}

/* Glitch effect */
@keyframes fx-glitch {
  0% { transform: translate(0); }
  20% { transform: translate(-2px, 2px); }
  40% { transform: translate(-2px, -2px); }
  60% { transform: translate(2px, 2px); }
  80% { transform: translate(2px, -2px); }
  100% { transform: translate(0); }
}
.fx-glitch:hover {
  animation: fx-glitch 0.3s linear infinite !important;
}

/* Fire/Flame effect */
@keyframes fx-fire {
  0% { box-shadow: 0 -2px 4px #ff8000, 0 -1px 10px #ff0000, 0 -10px 20px #ff8000, 0 -18px 40px #ff0000; }
  50% { box-shadow: 0 -4px 8px #ff8000, 0 -2px 20px #ff0000, 0 -12px 30px #ff8000, 0 -22px 50px #ff0000; }
  100% { box-shadow: 0 -2px 4px #ff8000, 0 -1px 10px #ff0000, 0 -10px 20px #ff8000, 0 -18px 40px #ff0000; }
}
.fx-fire {
  animation: fx-fire 1.5s ease-in-out infinite alternate !important;
  border-color: #ff4500 !important;
}

/* Floating effect */
@keyframes fx-float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0px); }
}
.fx-float {
  animation: fx-float 3s ease-in-out infinite !important;
}

/* ── INPUTS ── */
.inp{width:100%;background:#0c0c11;border:1px solid var(--border);color:var(--text);padding:10px 14px;font-family:'Roboto Mono',monospace;font-size:.88rem;outline:none;transition:var(--transition);border-radius:var(--radius-sm);}
.inp:hover{border-color:var(--border-hi);}
.inp:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.12);}
.inp-label{font-size:.71rem;color:var(--dim);letter-spacing:.07em;display:block;margin-bottom:6px;text-transform:uppercase;}
.field-group{display:flex;flex-direction:column;gap:4px;}
select.inp option{background:#12121a;}

/* ── BLOCK EDITOR ── */
.block-editor{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
.block-item{background:#0c0c11;border:1px solid #222;padding:10px 12px;display:flex;flex-direction:column;gap:8px;position:relative;border-radius:var(--radius-sm);}
.block-handle-row{display:flex;align-items:center;gap:6px;margin-bottom:2px;flex-wrap:wrap;}
.block-type-badge{font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;padding:3px 8px;border-radius:999px;border:1px solid;}
.bt-text{color:#888;border-color:#333;}
.bt-image{color:var(--cyan);border-color:var(--cyan);}
.bt-highlight{color:var(--orange);border-color:var(--orange);}
.bt-heading{color:#fff;border-color:#555;}
.bt-custom{color:var(--purple);border-color:var(--purple);}
.block-move-btns{display:flex;gap:3px;margin-left:auto;}
.blk-btn{background:none;border:1px solid var(--border);color:var(--faint);padding:3px 8px;font-size:.72rem;cursor:pointer;font-family:'Roboto Mono',monospace;transition:var(--transition);border-radius:6px;}
.blk-btn:hover{border-color:#666;color:#ccc;}
.blk-btn.del:hover{border-color:var(--red);color:var(--red);}
.block-textarea{width:100%;background:#08080b;border:1px solid #1a1a22;color:var(--text);padding:8px 10px;font-family:'Roboto Mono',monospace;font-size:.85rem;outline:none;resize:vertical;min-height:60px;transition:var(--transition);border-radius:6px;}
.block-textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.1);}
.block-img-preview{width:100%;max-height:180px;object-fit:contain;border:1px solid #1a1a22;background:#000;display:block;border-radius:6px;}
.add-block-row{display:flex;gap:6px;flex-wrap:wrap;}
.add-block-btn{background:none;border:1px dashed var(--border);color:var(--faint);padding:7px 14px;font-family:'Roboto Mono',monospace;font-size:.74rem;letter-spacing:.06em;cursor:pointer;transition:var(--transition);border-radius:999px;}
.add-block-btn:hover{border-color:#888;color:#aaa;background:rgba(255,255,255,.03);}
.bt-spoiler{color:#b39ddb;border-color:#7c4dff;}

/* ── SPOILER BLOCK ── */
.spoiler-block{position:relative;cursor:pointer;border-radius:var(--radius-sm);overflow:hidden;user-select:none;background:rgba(124,77,255,.04);border:1px solid rgba(124,77,255,.15);}
.spoiler-dust{display:flex;flex-wrap:wrap;gap:1.5px;padding:10px 14px;min-height:38px;align-content:center;transition:opacity .25s;}
.spoiler-dust span{display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.55;animation:spoilerFloat 2.8s ease-in-out infinite;}
.spoiler-dust span:nth-child(2n){animation-delay:.4s;width:4px;height:4px;opacity:.38;}
.spoiler-dust span:nth-child(3n){animation-delay:.9s;width:6px;height:6px;opacity:.28;}
.spoiler-dust span:nth-child(4n){animation-delay:1.3s;width:3px;height:3px;opacity:.6;}
.spoiler-dust span:nth-child(5n){animation-delay:1.7s;width:5px;height:5px;opacity:.45;}
@keyframes spoilerFloat{0%,100%{transform:translateY(0) scale(1);}33%{transform:translateY(-2px) scale(1.1);}66%{transform:translateY(1.5px) scale(.9);}}
.spoiler-content{display:none;padding:10px 14px;}
.spoiler-block.revealed .spoiler-dust{opacity:0;pointer-events:none;position:absolute;top:0;left:0;right:0;bottom:0;}
.spoiler-block.revealed .spoiler-content{display:block;}
.spoiler-img-block{position:relative;cursor:pointer;display:block;border-radius:var(--radius-sm);overflow:hidden;user-select:none;background:#0a0a0a;}
.spoiler-img-dust{position:absolute;inset:0;display:flex;flex-wrap:wrap;gap:1.5px;padding:8px;align-content:center;justify-content:center;z-index:2;transition:opacity .3s;}
.spoiler-img-dust span{display:inline-block;width:5px;height:5px;border-radius:50%;background:#b39ddb;opacity:.5;animation:spoilerFloat 3s ease-in-out infinite;}
.spoiler-img-dust span:nth-child(2n){animation-delay:.5s;width:4px;opacity:.35;}
.spoiler-img-dust span:nth-child(3n){animation-delay:1.1s;width:6px;opacity:.25;}
.spoiler-img-dust span:nth-child(4n){animation-delay:1.6s;width:3px;opacity:.6;}
.spoiler-img-blur{filter:blur(18px) brightness(.4);transition:filter .3s,opacity .3s;width:100%;display:block;}
.spoiler-img-block.revealed .spoiler-img-dust{opacity:0;pointer-events:none;}
.spoiler-img-block.revealed .spoiler-img-blur{filter:none;cursor:zoom-in;}

/* ── BUTTONS ── */
.btn-primary{background:linear-gradient(180deg,#ff4d4d,#e11d1d);border:none;color:#fff;padding:12px 24px;font-family:'Oswald',sans-serif;font-size:.95rem;letter-spacing:.1em;cursor:pointer;transition:var(--transition);border-radius:var(--radius-sm);box-shadow:0 2px 10px rgba(255,59,59,.25);}
.btn-primary:hover{background:linear-gradient(180deg,#ff5c5c,#cc1414);transform:translateY(-1px);box-shadow:0 4px 16px rgba(255,59,59,.35);}
.btn-primary:active{transform:translateY(0);}
.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none;}
.btn-secondary{background:rgba(255,255,255,.02);border:1px solid var(--border);color:var(--dim);padding:12px 20px;font-family:'Oswald',sans-serif;font-size:.85rem;letter-spacing:.09em;cursor:pointer;transition:var(--transition);border-radius:var(--radius-sm);}
.btn-secondary:hover{border-color:var(--border-hi);color:var(--text);background:rgba(255,255,255,.05);transform:translateY(-1px);}
.btn-secondary:disabled{opacity:.55;cursor:not-allowed;}

/* ── COLOR PICKER ── */
.color-options{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.color-opt{width:28px;height:28px;border-radius:8px;cursor:pointer;border:2px solid transparent;transition:var(--transition);flex-shrink:0;box-shadow:0 2px 6px rgba(0,0,0,.4);}
.color-opt:hover,.color-opt.active{border-color:#fff;transform:scale(1.12);}
.color-opt.default{background:#111;border:2px solid #333;}
.color-opt.rainbow{background:linear-gradient(135deg,#f00,#f60,#ff0,#0f0,#0ff,#00f,#f0f);background-size:200% 200%;animation:rainbow 2s ease infinite;}

/* ── FOLDER MANAGER ── */
.folder-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;}
.folder-row{display:grid;grid-template-columns:1fr 150px auto auto;align-items:end;gap:8px;}

/* ── SCROLLBAR ── */
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#2c2c38;border-radius:99px;border:2px solid var(--bg);}
::-webkit-scrollbar-thumb:hover{background:#42424f;}

/* ── EMPTY STATE ── */
.empty-state{text-align:center;padding:64px 20px;color:#3c3c48;font-size:.85rem;letter-spacing:.08em;border:1px dashed #22222c;width:100%;max-width:900px;border-radius:var(--radius);}

/* ── USER TABLE ── */
.user-row{display:grid;gap:15px;align-items:start;padding:15px;border-top:1px solid #1f1f27;border-radius:var(--radius-sm);transition:background .15s;}
.user-row:hover{background:rgba(255,255,255,.015);}
.user-row-owner{grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)) 220px;}
.user-row-admin{grid-template-columns: 1fr 1fr 220px;}

/* ── USER CARDS (admin/owner panels) ── */
.panel-empty{padding:28px;text-align:center;color:var(--faint);font-size:.82rem;border:1px dashed #22222c;border-radius:var(--radius);letter-spacing:.05em;}
.role-group{margin-bottom:26px;}
.role-group-head{
  display:flex;align-items:center;gap:10px;
  font-family:'Oswald',sans-serif;font-size:.85rem;letter-spacing:.1em;
  color:var(--rc,#fff);padding:9px 14px;margin-bottom:10px;
  background:rgba(255,255,255,.02);border:1px solid #1e1e26;border-radius:8px;
  text-transform:uppercase;
}
.role-group-dot{width:9px;height:9px;border-radius:50%;background:var(--rc,#888);box-shadow:0 0 8px var(--rc,#888);flex-shrink:0;}
.role-group-count{margin-left:auto;font-family:'Roboto Mono',monospace;font-size:.66rem;color:var(--faint);letter-spacing:.04em;}
.ucard{
  background:linear-gradient(180deg,var(--card),var(--bg-2));
  border:1px solid var(--border);border-left:3px solid var(--uc,var(--dim));
  border-radius:var(--radius);margin-bottom:9px;overflow:hidden;
  transition:border-color .15s;
}
.ucard:hover{border-color:var(--border-hi);border-left-color:var(--uc);}
.ucard-head{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;user-select:none;flex-wrap:wrap;}
.ucard-head:hover{background:rgba(255,255,255,.02);}
.ucard-id{font-size:.68rem;color:var(--faint);min-width:32px;}
.ucard-role{font-size:.6rem;padding:3px 10px;border:1px solid;border-radius:999px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;}
.ucard-meta{font-size:.66rem;color:var(--faint);white-space:nowrap;}
.ucard-toggle{
  margin-left:auto;background:none;border:1px solid var(--border);color:var(--dim);
  padding:5px 13px;border-radius:999px;font-family:'Roboto Mono',monospace;font-size:.68rem;
  cursor:pointer;transition:var(--transition);white-space:nowrap;
}
.ucard-toggle:hover{border-color:var(--cyan);color:var(--cyan);background:rgba(34,211,238,.06);}
.ucard-edit{padding:16px;border-top:1px dashed #22222c;background:rgba(0,0,0,.18);display:flex;flex-direction:column;gap:14px;}
.ucard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;}

.user-actions-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.user-actions-row {
  display: flex;
  gap: 5px;
  width: 100%;
}
.user-actions-row .btn-primary, .user-actions-row .btn-secondary {
  flex: 1;
  padding: 6px 4px !important;
  font-size: 0.68rem !important;
}
.btn-save-main {
  background: linear-gradient(180deg,#c44ade,#9c27b0) !important;
  padding: 10px !important;
  font-weight: 700;
  letter-spacing: 0.05em;
  box-shadow: 0 2px 10px rgba(156,39,176,.25);
}
.btn-danger-soft {
  border-color: #4a1a1a !important;
  color: #a33 !important;
}
.btn-success-soft {
  border-color: #1a4a1a !important;
  color: var(--green) !important;
}
.banned-badge {
  background: linear-gradient(180deg,#ff4d4d,#e11d1d);
  color: #fff;
  font-size: 0.58rem;
  padding: 2px 7px;
  border-radius: 999px;
  font-weight: bold;
  letter-spacing:.08em;
}

/* ── PROFILE ── */
.profile-overlay{
  position:fixed;inset:0;z-index:200;
  background:rgba(4,4,6,.85);backdrop-filter:blur(8px);
  display:flex;align-items:flex-start;justify-content:center;
  padding:24px 16px 40px;overflow-y:auto;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.profile-overlay.open{opacity:1;pointer-events:all;}
.profile-overlay.static-page{position:relative;inset:auto;background:transparent;backdrop-filter:none;opacity:1;pointer-events:all;padding:24px 16px 40px;z-index:auto;}
.profile-card{
  background:linear-gradient(180deg,#14141b,#0f0f15);
  border:1px solid var(--border);
  width:min(680px,98vw);flex-shrink:0;
  border-radius:16px;overflow:hidden;
  box-shadow:var(--shadow);
  transform:translateY(24px) scale(.97);transition:transform .22s;
  position:relative;
}
.profile-overlay.open .profile-card{transform:translateY(0) scale(1);}
.profile-overlay.static-page .profile-card{transform:none;}
.profile-banner{
  width:100%;height:160px;background:#0d0d0d;
  object-fit:cover;display:block;border-bottom:1px solid #1f1f27;
  cursor:pointer;position:relative;overflow:hidden;
}
.profile-banner-placeholder{
  width:100%;height:160px;background:linear-gradient(135deg,#0d0d12,#181820);
  border-bottom:1px solid #1f1f27;display:flex;align-items:center;justify-content:center;
  color:#25252e;font-size:2rem;cursor:pointer;transition:background .2s;
}
.profile-banner-placeholder:hover{background:#14141c;}
.profile-banner-edit-hint{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.55);backdrop-filter:blur(2px);opacity:0;transition:opacity .2s;
  font-size:.75rem;color:#ccc;letter-spacing:.05em;
}
.profile-banner-wrap:hover .profile-banner-edit-hint{opacity:1;}
.profile-banner-wrap{position:relative;cursor:pointer;width:100%;height:160px;background:#0d0d0d;overflow:hidden;}
.profile-top{display:flex;align-items:flex-end;gap:16px;padding:0 24px;margin-top:-36px;position:relative;}
.profile-avatar-wrap{position:relative;flex-shrink:0;cursor:pointer;}
.profile-avatar{
  width:76px;height:76px;border-radius:12px;
  border:3px solid #101016;background:#0d0d0d;
  object-fit:cover;display:block;box-shadow:0 6px 20px rgba(0,0,0,.5);
}
.profile-avatar-placeholder{
  width:76px;height:76px;border-radius:12px;
  border:3px solid #101016;background:#1c1c25;
  display:flex;align-items:center;justify-content:center;
  font-size:2rem;color:#3a3a46;box-shadow:0 6px 20px rgba(0,0,0,.5);
}
.profile-avatar-edit-hint{
  position:absolute;inset:0;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.6);opacity:0;transition:opacity .2s;
  font-size:.65rem;color:#aaa;letter-spacing:.04em;
}
.profile-avatar-wrap:hover .profile-avatar-edit-hint{opacity:1;}
.profile-info{flex:1;padding-bottom:4px;min-width:0;}
.profile-login{font-family:'Oswald',sans-serif;font-size:1.35rem;letter-spacing:.06em;color:#fff;line-height:1.1;word-break:break-all;text-shadow:0 0 20px rgba(255,255,255,.1);}
.profile-uid{font-size:.7rem;color:var(--faint);letter-spacing:.05em;margin-top:3px;}
.profile-role-badge{
  display:inline-block;font-size:.62rem;letter-spacing:.09em;
  padding:3px 9px;border:1px solid;border-radius:999px;margin-top:6px;text-transform:uppercase;
}
.profile-role-guest{color:#888;border-color:#333;}
.profile-role-premium{color:var(--gold);border-color:rgba(255,213,74,.4);background:rgba(255,213,74,.06);}
.profile-role-admin{color:var(--green);border-color:rgba(74,222,128,.4);background:rgba(74,222,128,.06);}
.profile-role-owner{color:var(--purple);border-color:rgba(180,74,212,.4);background:rgba(180,74,212,.06);}
.profile-close-btn{
  position:absolute;top:12px;right:14px;
  background:rgba(0,0,0,.4);border:1px solid var(--border);cursor:pointer;
  color:#888;font-size:1.2rem;line-height:1;transition:var(--transition);
  width:36px;height:36px;border-radius:50%;z-index:2;
}
.profile-close-btn:hover{color:var(--red);border-color:var(--red);transform:rotate(90deg);}
.profile-body{padding:18px 24px 24px;}
.profile-bio{font-size:.85rem;color:#b5b5c2;line-height:1.7;margin-bottom:14px;white-space:pre-wrap;word-break:break-word;}
.profile-bio-edit{width:100%;background:#0c0c11;border:1px solid var(--border);color:var(--text);padding:10px 14px;font-family:'Roboto Mono',monospace;font-size:.85rem;outline:none;resize:vertical;min-height:70px;transition:var(--transition);border-radius:var(--radius-sm);}
.profile-bio-edit:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.1);}
.profile-stats{display:flex;gap:14px;margin-bottom:18px;padding:12px 16px;border-bottom:1px solid #1a1a22;background:rgba(255,255,255,.015);border-radius:var(--radius-sm);border:1px solid #1a1a22;}
.profile-stat{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;}
.profile-stat-val{font-family:'Oswald',sans-serif;font-size:1.2rem;color:#fff;}
.profile-stat-val.pos{color:var(--green);}
.profile-stat-val.neg{color:var(--red);}
.profile-stat-label{font-size:.62rem;color:var(--faint);letter-spacing:.07em;text-transform:uppercase;}
.profile-rep-btns{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.rep-btn{
  background:rgba(255,255,255,.02);border:1px solid var(--border);color:var(--dim);
  padding:8px 18px;font-family:'Roboto Mono',monospace;font-size:.84rem;
  cursor:pointer;transition:var(--transition);
  display:flex;align-items:center;gap:6px;border-radius:999px;
}
.rep-btn:hover{border-color:var(--border-hi);color:#ccc;transform:translateY(-1px);}
.rep-btn.active-pos{border-color:var(--green);color:var(--green);background:rgba(74,222,128,.1);box-shadow:0 0 12px rgba(74,222,128,.15);}
.rep-btn.active-neg{border-color:var(--red);color:var(--red);background:rgba(255,59,59,.1);box-shadow:0 0 12px rgba(255,59,59,.15);}
.profile-section-title{font-family:'Oswald',sans-serif;font-size:.85rem;letter-spacing:.1em;color:var(--dim);text-transform:uppercase;margin-bottom:10px;}
.profile-comments{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;max-height:280px;overflow-y:auto;}
.profile-comment{background:#0d0d13;border:1px solid #1a1a22;padding:10px 14px;border-radius:var(--radius-sm);transition:border-color .15s;}
.profile-comment:hover{border-color:#26262e;}
.profile-comment-header{display:flex;align-items:center;gap:8px;margin-bottom:5px;flex-wrap:wrap;}
.profile-comment-author{font-size:.75rem;color:#a5a5b3;cursor:pointer;transition:color .15s;}
.profile-comment-author:hover{color:var(--cyan);}
.profile-comment-date{font-size:.64rem;color:#44444e;margin-left:auto;}
.profile-comment-del{background:none;border:none;color:#333;cursor:pointer;font-size:.85rem;transition:color .15s;padding:0 4px;}
.profile-comment-del:hover{color:var(--red);}
.profile-comment-text{font-size:.82rem;color:#c5c5d0;line-height:1.6;white-space:pre-wrap;word-break:break-word;}
.profile-comment-form{display:flex;gap:8px;margin-top:4px;}
.profile-comment-inp{flex:1;background:#0c0c11;border:1px solid var(--border);color:var(--text);padding:9px 13px;font-family:'Roboto Mono',monospace;font-size:.83rem;outline:none;transition:var(--transition);border-radius:var(--radius-sm);}
.profile-comment-inp:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.1);}
.profile-uid-row{display:flex;gap:8px;align-items:center;margin-bottom:14px;}
.profile-uid-inp{flex:1;background:#0c0c11;border:1px solid var(--border);color:var(--text);padding:8px 12px;font-family:'Roboto Mono',monospace;font-size:.83rem;outline:none;transition:var(--transition);border-radius:var(--radius-sm);}
.profile-uid-inp:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(180,74,212,.12);}
.nick-preset{width:24px;height:24px;border:2px solid transparent;border-radius:7px;cursor:pointer;transition:var(--transition);flex-shrink:0;}
.nick-preset:hover,.nick-preset.active{border-color:#fff;transform:scale(1.1);}
.nick-effect-btn{background:none;border:1px solid var(--border);color:var(--dim);padding:5px 12px;font-family:'Roboto Mono',monospace;font-size:.74rem;cursor:pointer;transition:var(--transition);letter-spacing:.05em;border-radius:999px;}
.nick-effect-btn:hover{border-color:#555;color:#ccc;}
.nick-effect-btn.selected{border-color:var(--purple);color:#fff;background:rgba(180,74,212,.1);}
.profile-edit-row{display:flex;gap:8px;margin-top:8px;}
.profile-joined{font-size:.72rem;color:#50505c;letter-spacing:.04em;}

/* ── NICKNAME EFFECTS ── */
@keyframes nick-rainbow{
  0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}
}
@keyframes nick-glitch{
  0%,100%{clip-path:inset(0 0 100% 0);transform:translate(0)}
  5%{clip-path:inset(10% 0 60% 0);transform:translate(-4px,1px);}
  10%{clip-path:inset(40% 0 20% 0);transform:translate(4px,-1px);}
  15%{clip-path:inset(70% 0 5% 0);transform:translate(-2px,2px);}
  20%{clip-path:inset(0 0 100% 0);transform:translate(0);}
  80%{clip-path:inset(0 0 100% 0);transform:translate(0);}
  85%{clip-path:inset(20% 0 50% 0);transform:translate(3px,-1px);}
  90%{clip-path:inset(60% 0 10% 0);transform:translate(-3px,1px);}
  95%{clip-path:inset(0 0 100% 0);transform:translate(0);}
}
@keyframes nick-sparkling{
  0%,100%{text-shadow:0 0 4px currentColor,0 0 8px currentColor;}
  25%{text-shadow:0 0 2px currentColor,2px -2px 6px gold,−2px 2px 10px currentColor;}
  50%{text-shadow:0 0 10px currentColor,0 0 20px currentColor,0 0 30px gold;}
  75%{text-shadow:−2px 2px 4px gold,2px -2px 8px currentColor,0 0 6px currentColor;}
}
@keyframes nick-neon-pulse{
  0%,100%{opacity:1;}
  50%{opacity:.6;}
}
@keyframes nick-fire{
  0%,100%{text-shadow:0 0 4px #ff6600,0 0 8px #ff2200,0 0 12px #ff4400;}
  33%{text-shadow:0 0 6px #ffcc00,0 0 12px #ff6600,0 0 18px #ff2200;}
  66%{text-shadow:0 0 2px #ff2200,0 0 6px #ff4400,0 0 20px #ffcc00;}
}
@keyframes nick-matrix{
  0%,100%{color:#00ff41;text-shadow:0 0 6px #00ff41;}
  50%{color:#00cc33;text-shadow:0 0 12px #00ff41,0 0 20px #00cc33;}
}

.nick-rainbow{
  background:linear-gradient(90deg,#ff0000,#ff7700,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000);
  background-size:300% auto;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  animation:nick-rainbow 2.5s linear infinite;
}
.nick-glitch{
  position:relative;
}
.nick-glitch::before,.nick-glitch::after{
  content:attr(data-text);
  position:absolute;left:0;top:0;width:100%;
}
.nick-glitch::before{
  color:#ff2222;
  animation:nick-glitch 3s infinite steps(1);
  clip-path:inset(0 0 100% 0);
}
.nick-glitch::after{
  color:#00bcd4;
  animation:nick-glitch 3s 0.15s infinite steps(1);
  clip-path:inset(0 0 100% 0);
}
.nick-sparkling{
  animation:nick-sparkling 2s ease-in-out infinite;
}
.nick-neon{
  animation:nick-neon-pulse 1.5s ease-in-out infinite;
  text-shadow:0 0 8px currentColor,0 0 16px currentColor,0 0 30px currentColor;
}
.nick-fire{
  animation:nick-fire 1.2s ease-in-out infinite;
}
.nick-matrix{
  animation:nick-matrix 1.5s ease-in-out infinite;
  font-family:'Share Tech Mono',monospace;
  letter-spacing:.1em;
}

/* ── UPDATE BANNER ── */
#updateBanner{
  display:none;
  position:fixed;bottom:0;left:0;right:0;z-index:8000;
  background:linear-gradient(90deg,#1a1000,#2a1800,#1a1000);
  border-top:1px solid var(--orange);
  padding:12px 20px;
  align-items:center;justify-content:center;gap:16px;
  flex-wrap:wrap;
  backdrop-filter:blur(6px);
}
#updateBanner.active{display:flex;}
#updateBanner span{
  font-size:.82rem;color:#ffaa44;letter-spacing:.05em;
  text-shadow:0 0 12px rgba(255,122,26,.5);
}
#updateBannerBtn{
  background:transparent;border:1px solid var(--orange);
  color:var(--orange);padding:6px 18px;cursor:pointer;
  font-family:'Roboto Mono',monospace;font-size:.78rem;
  letter-spacing:.07em;transition:var(--transition);border-radius:999px;
}
#updateBannerBtn:hover{background:var(--orange);color:#000;}

/* ── RESPONSIVE ── */
@media (max-width: 720px){
  body{padding:16px 12px 60px;}
  .top-bar{flex-direction:column;align-items:stretch;}
  .top-bar-right{justify-content:center;}
  .entry{flex-wrap:wrap;padding:13px 16px;}
  .entry-meta{width:100%;justify-content:flex-start;}
  .entry-arrow{display:none;}
  .modal{width:96vw;}
  .modal-header,.modal-body{padding-left:16px;padding-right:16px;}
  .user-row-owner,.user-row-admin{grid-template-columns:1fr;}
  .folder-row{grid-template-columns:1fr;}
  .profile-top{flex-direction:column;align-items:flex-start;gap:10px;}
}

/* ── REDUCED MOTION ── */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
}
