/* Премиум-темы оформления профиля: body.ptheme.ptheme-{slug}
   Тема меняет фон (перекрывает выбранный в настройках), шрифт, карточки ссылок, текст и аватар.
   Мини-превью в магазине используют ту же разметку внутри .theme-mini. */

.ptheme {
  --pt-font: 'Montserrat', sans-serif;
  --pt-head-font: var(--pt-font);
  --pt-text: #fff;
  --pt-muted: rgba(255,255,255,.75);
  --pt-bg: #222;
  --pt-card-bg: #fff;
  --pt-card-text: #111;
  --pt-card-sub: #777;
  --pt-card-border: 0 solid transparent;
  --pt-card-radius: 12px;
  --pt-card-shadow: none;
  --pt-card-hover-shadow: none;
  --pt-card-hover-transform: translateY(-2px);
  --pt-card-blur: none;
  --pt-avatar-border: 3px solid #fff;
  --pt-avatar-shadow: none;
  --pt-icon-radius: 50%;
}

.ptheme, .ptheme .link_container, .ptheme .main_links li a div h2 { font-family: var(--pt-font) !important; }
.ptheme .page-img { background: var(--pt-bg) !important; background-size: cover !important; overflow: hidden; }
.ptheme .page-bg { display: none !important; }
.ptheme .page-img::before, .ptheme .page-img::after { content: ""; position: absolute; pointer-events: none; }

.ptheme .user_fio, .ptheme.theme1 h1 { color: var(--pt-text) !important; font-family: var(--pt-head-font) !important; }
.ptheme .username, .ptheme .username a, .ptheme .username i.material-icons,
.ptheme .username_desc, .ptheme .profile_views, .ptheme .text, .ptheme .headerr h2 { color: var(--pt-text) !important; }
.ptheme .username_desc, .ptheme .profile_views { color: var(--pt-muted) !important; }
.ptheme .headerr h2 { font-family: var(--pt-head-font) !important; }
.ptheme .settings { color: var(--pt-text) !important; border-color: var(--pt-text) !important; }
.ptheme #set1 i { color: var(--pt-text); }

.ptheme .avatar { border: var(--pt-avatar-border) !important; box-shadow: var(--pt-avatar-shadow); }
.ptheme .carousel a img { box-shadow: var(--pt-avatar-shadow); }

.ptheme .main_links li.hoverable, .ptheme .main_links li.hoverable:hover { box-shadow: none !important; background: transparent !important; }
.ptheme .main_links li a .collapsible-header {
  background: var(--pt-card-bg) !important;
  border: var(--pt-card-border) !important;
  border-radius: var(--pt-card-radius) !important;
  box-shadow: var(--pt-card-shadow);
  -webkit-backdrop-filter: var(--pt-card-blur); backdrop-filter: var(--pt-card-blur);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.ptheme .main_links li a:hover .collapsible-header { transform: var(--pt-card-hover-transform); box-shadow: var(--pt-card-hover-shadow); }
.ptheme .main_links .editlink a .collapsible-header { background: url(/img/drag.svg) 7px center / 1.5em no-repeat, var(--pt-card-bg) !important; }
.ptheme .main_links li a div h2 { color: var(--pt-card-text) !important; }
.ptheme .main_links li a div h2 span { color: var(--pt-card-sub) !important; }
.ptheme .main_links li a div img { border-radius: var(--pt-icon-radius) !important; }
.ptheme .link_counter { color: var(--pt-card-sub); }
.ptheme .video2 iframe { border-radius: var(--pt-card-radius); }

/* ---------- 1. Glass ---------- */
.ptheme-glass {
  --pt-font: 'Manrope', sans-serif;
  --pt-bg: linear-gradient(135deg, #5b247a 0%, #1bcedf 55%, #ff6cab 100%);
  --pt-card-bg: rgba(255,255,255,.16);
  --pt-card-text: #fff;
  --pt-card-sub: rgba(255,255,255,.72);
  --pt-card-border: 1px solid rgba(255,255,255,.38);
  --pt-card-radius: 20px;
  --pt-card-shadow: 0 8px 32px rgba(20,10,60,.18);
  --pt-card-hover-shadow: 0 12px 36px rgba(20,10,60,.28);
  --pt-card-blur: blur(14px) saturate(1.3);
  --pt-avatar-border: 3px solid rgba(255,255,255,.7);
  --pt-avatar-shadow: 0 0 0 8px rgba(255,255,255,.15);
}
.ptheme-glass .page-img::before { width: 60vmax; height: 60vmax; left: -15vmax; top: -15vmax; border-radius: 50%; background: radial-gradient(circle, rgba(255,210,120,.65), transparent 65%); animation: ptFloat 16s ease-in-out infinite; }
.ptheme-glass .page-img::after { width: 55vmax; height: 55vmax; right: -18vmax; bottom: -18vmax; border-radius: 50%; background: radial-gradient(circle, rgba(120,90,255,.7), transparent 65%); animation: ptFloat 20s ease-in-out infinite reverse; }

/* ---------- 2. Neon ---------- */
.ptheme-neon {
  --pt-font: 'Space Grotesk', sans-serif;
  --pt-text: #e9fbff;
  --pt-muted: #9fd8e6;
  --pt-bg: radial-gradient(ellipse at 50% 120%, #2a0845 0%, #07070f 60%);
  --pt-card-bg: rgba(8,10,28,.72);
  --pt-card-text: #e9fbff;
  --pt-card-sub: #7fdcf0;
  --pt-card-border: 1.5px solid #00e5ff;
  --pt-card-radius: 10px;
  --pt-card-shadow: 0 0 10px rgba(0,229,255,.45), inset 0 0 10px rgba(0,229,255,.15);
  --pt-card-hover-shadow: 0 0 18px rgba(255,43,214,.7), inset 0 0 12px rgba(255,43,214,.25);
  --pt-avatar-border: 2px solid #ff2bd6;
  --pt-avatar-shadow: 0 0 18px rgba(255,43,214,.75);
}
.ptheme-neon .user_fio { text-shadow: 0 0 10px rgba(0,229,255,.8); }
.ptheme-neon .main_links li a:hover .collapsible-header { border-color: #ff2bd6 !important; }
.ptheme-neon .page-img::before { left: -50%; right: -50%; bottom: -10%; height: 55%; background-image: linear-gradient(rgba(0,229,255,.35) 1px, transparent 1px), linear-gradient(90deg, rgba(0,229,255,.35) 1px, transparent 1px); background-size: 48px 48px; transform: perspective(420px) rotateX(62deg); transform-origin: center top; animation: ptGrid 3s linear infinite; -webkit-mask-image: linear-gradient(to top, #000 30%, transparent); mask-image: linear-gradient(to top, #000 30%, transparent); }
.ptheme-neon .page-img::after { width: 40vmax; height: 40vmax; left: 50%; top: -20vmax; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(circle, rgba(255,43,214,.35), transparent 70%); animation: ptPulse 6s ease-in-out infinite; }

/* ---------- 3. Paper ---------- */
.ptheme-paper {
  --pt-font: 'Inter', sans-serif;
  --pt-head-font: 'Playfair Display', serif;
  --pt-text: #1d1d1b;
  --pt-muted: #5c5a55;
  --pt-bg: #f5f0e6;
  --pt-card-bg: #fffdf8;
  --pt-card-text: #1d1d1b;
  --pt-card-sub: #77736b;
  --pt-card-border: 1px solid #1d1d1b;
  --pt-card-radius: 4px;
  --pt-card-hover-shadow: 0 6px 0 -2px #1d1d1b;
  --pt-avatar-border: 2px solid #1d1d1b;
  --pt-icon-radius: 3px;
}
.ptheme-paper .page-img { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"), linear-gradient(#f5f0e6, #efe7d8) !important; }
.ptheme-paper .page-img { background-size: 160px 160px, cover !important; }
.ptheme-paper .user_fio { font-weight: 700 !important; font-size: 28px !important; letter-spacing: -.01em; }

/* ---------- 4. Brutal ---------- */
.ptheme-brutal {
  --pt-font: 'Space Grotesk', sans-serif;
  --pt-text: #000;
  --pt-muted: #222;
  --pt-bg: #ffde59;
  --pt-card-bg: #fff;
  --pt-card-text: #000;
  --pt-card-sub: #333;
  --pt-card-border: 3px solid #000;
  --pt-card-radius: 0;
  --pt-card-shadow: 6px 6px 0 #000;
  --pt-card-hover-shadow: 2px 2px 0 #000;
  --pt-card-hover-transform: translate(4px, 4px);
  --pt-avatar-border: 3px solid #000;
  --pt-avatar-shadow: 6px 6px 0 #000;
  --pt-icon-radius: 0;
}
.ptheme-brutal .page-img { background-image: radial-gradient(#000 1.2px, transparent 1.3px) !important; background-color: #ffde59 !important; background-size: 22px 22px !important; }
.ptheme-brutal .user_fio { font-weight: 700 !important; text-transform: uppercase; letter-spacing: .02em; }
.ptheme-brutal .main_links li a div h2 { font-weight: 700 !important; }
.ptheme-brutal .main_links li:nth-child(3n+2) a .collapsible-header { background: #ff90e8 !important; }
.ptheme-brutal .main_links li:nth-child(3n+3) a .collapsible-header { background: #90e0ff !important; }

/* ---------- 5. Luxe ---------- */
.ptheme-luxe {
  --pt-font: 'Montserrat', sans-serif;
  --pt-head-font: 'Cormorant Garamond', serif;
  --pt-text: #f4e3bd;
  --pt-muted: #bfae8a;
  --pt-bg: radial-gradient(ellipse at 50% 0%, #2b2417 0%, #0b0a08 55%, #000 100%);
  --pt-card-bg: linear-gradient(#121110, #121110) padding-box, linear-gradient(135deg, #bf953f, #fcf6ba, #b38728, #fbf5b7, #aa771c) border-box;
  --pt-card-text: #f4e3bd;
  --pt-card-sub: #a8997a;
  --pt-card-border: 1.5px solid transparent;
  --pt-card-radius: 14px;
  --pt-card-shadow: 0 10px 30px rgba(0,0,0,.5);
  --pt-card-hover-shadow: 0 0 22px rgba(212,175,55,.35);
  --pt-avatar-border: 2px solid #d4af37;
  --pt-avatar-shadow: 0 0 0 6px rgba(212,175,55,.15), 0 0 30px rgba(212,175,55,.25);
}
.ptheme-luxe .user_fio { font-size: 32px !important; font-weight: 600 !important; letter-spacing: .03em; background: linear-gradient(90deg, #bf953f, #fcf6ba, #b38728); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.ptheme-luxe .page-img::before { inset: 0; background: linear-gradient(115deg, transparent 40%, rgba(252,246,186,.07) 50%, transparent 60%); background-size: 250% 100%; animation: ptShine 9s ease-in-out infinite; }

/* ---------- 6. Pastel ---------- */
.ptheme-pastel {
  --pt-font: 'Nunito', sans-serif;
  --pt-text: #4b3b63;
  --pt-muted: #7a6a91;
  --pt-bg: linear-gradient(160deg, #ffd6e7 0%, #e5d4ff 50%, #c9ecff 100%);
  --pt-card-bg: rgba(255,255,255,.82);
  --pt-card-text: #4b3b63;
  --pt-card-sub: #9a8cae;
  --pt-card-radius: 999px;
  --pt-card-shadow: 0 6px 18px rgba(155,120,210,.22);
  --pt-card-hover-shadow: 0 10px 26px rgba(155,120,210,.35);
  --pt-card-hover-transform: scale(1.02);
  --pt-avatar-border: 4px solid #fff;
  --pt-avatar-shadow: 0 8px 24px rgba(155,120,210,.35);
}
.ptheme-pastel .main_links li a .collapsible-header { padding-left: 1rem !important; padding-right: 1.4rem !important; }
.ptheme-pastel .user_fio { font-weight: 800 !important; }
.ptheme-pastel .page-img::before { width: 26vmax; height: 26vmax; left: 8%; top: 12%; border-radius: 50%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.9), rgba(255,182,213,.35) 60%, transparent 70%); animation: ptFloat 14s ease-in-out infinite; }
.ptheme-pastel .page-img::after { width: 18vmax; height: 18vmax; right: 10%; bottom: 14%; border-radius: 50%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.9), rgba(160,210,255,.4) 60%, transparent 70%); animation: ptFloat 18s ease-in-out infinite reverse; }

/* ---------- 7. Retrowave ---------- */
.ptheme-retro {
  --pt-font: 'Outfit', sans-serif;
  --pt-text: #fff;
  --pt-muted: #ffc8ee;
  --pt-bg: linear-gradient(180deg, #120136 0%, #3a0ca3 45%, #f72585 75%, #ff9e00 100%);
  --pt-card-bg: rgba(18,1,54,.62);
  --pt-card-text: #fff;
  --pt-card-sub: #ffb3e6;
  --pt-card-border: 2px solid #ff71ce;
  --pt-card-radius: 12px;
  --pt-card-shadow: 4px 4px 0 #01cdfe;
  --pt-card-hover-shadow: 6px 6px 0 #fffb96;
  --pt-avatar-border: 3px solid #01cdfe;
  --pt-avatar-shadow: 0 0 24px rgba(255,113,206,.8);
}
.ptheme-retro .user_fio { font-weight: 700 !important; text-shadow: 2px 2px 0 #ff71ce, -2px -2px 0 #01cdfe; }
.ptheme-retro .username, .ptheme-retro .username_desc, .ptheme-retro .text, .ptheme-retro .headerr h2 { text-shadow: 0 1px 3px rgba(18,1,54,.9); }
.ptheme-retro .page-img::before { width: 46vmax; height: 46vmax; left: 50%; top: 46%; transform: translateX(-50%); border-radius: 50%; background: linear-gradient(#fffb96 0%, #ff9e00 45%, #f72585 100%); -webkit-mask-image: repeating-linear-gradient(to bottom, #000 0 18px, transparent 18px 24px); mask-image: repeating-linear-gradient(to bottom, #000 0 18px, transparent 18px 24px); opacity: .55; }
.ptheme-retro .page-img::after { left: -50%; right: -50%; bottom: -8%; height: 45%; background-image: linear-gradient(rgba(1,205,254,.55) 2px, transparent 2px), linear-gradient(90deg, rgba(1,205,254,.55) 2px, transparent 2px); background-size: 60px 60px; transform: perspective(380px) rotateX(65deg); transform-origin: center top; background-color: rgba(18,1,54,.85); animation: ptGrid 2.4s linear infinite; }

/* ---------- 8. Telegram ---------- */
.ptheme-telegram {
  --pt-font: 'Inter', sans-serif;
  --pt-text: #fff;
  --pt-muted: rgba(255,255,255,.85);
  --pt-bg: linear-gradient(160deg, #6fb4e3 0%, #8fcf9a 55%, #d6e38a 100%);
  --pt-card-bg: #fff;
  --pt-card-text: #000;
  --pt-card-sub: #707579;
  --pt-card-radius: 18px 18px 18px 6px;
  --pt-card-shadow: 0 1px 2px rgba(16,35,47,.18);
  --pt-card-hover-shadow: 0 4px 14px rgba(16,35,47,.22);
  --pt-avatar-border: 3px solid #fff;
  --pt-avatar-shadow: 0 4px 16px rgba(16,35,47,.25);
}
.ptheme-telegram .page-img { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' fill='none' stroke='white' stroke-opacity='.22' stroke-width='2'%3E%3Cpath d='M18 30l24-10-6 24-6-8z'/%3E%3Ccircle cx='88' cy='28' r='9'/%3E%3Cpath d='M70 86c6-10 18-10 24 0'/%3E%3Cpath d='M20 84h16M28 76v16'/%3E%3C/svg%3E"), linear-gradient(160deg, #6fb4e3 0%, #8fcf9a 55%, #d6e38a 100%) !important; }
.ptheme-telegram .page-img { background-size: 120px 120px, cover !important; }
.ptheme-telegram .user_fio { font-weight: 700 !important; text-shadow: 0 1px 3px rgba(0,0,0,.25); }
.ptheme-telegram .username, .ptheme-telegram .username_desc { text-shadow: 0 1px 2px rgba(0,0,0,.2); }
.ptheme-telegram .main_links li:nth-child(even) a .collapsible-header { background: #effdde !important; border-radius: 18px 18px 6px 18px !important; }

/* ---------- анимации ---------- */
@keyframes ptFloat { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(4vmax, 3vmax); } }
@keyframes ptPulse { 0%, 100% { opacity: .7; } 50% { opacity: 1; } }
@keyframes ptGrid { from { background-position: 0 0; } to { background-position: 0 48px; } }
@keyframes ptShine { 0%, 100% { background-position: 120% 0; } 50% { background-position: -20% 0; } }
@media (prefers-reduced-motion: reduce) { .ptheme .page-img::before, .ptheme .page-img::after { animation: none !important; } }

/* ---------- мини-превью в магазине ---------- */
.theme-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; margin: 14px 0; }
.theme-card { background: #fafafa; border-radius: 14px; padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.theme-card.current { outline: 2px solid #7e57c2; }
.theme-card .name { font-weight: 700; font-size: 15px; }
.theme-card .btn, .theme-card .btn-flat { text-transform: none; border-radius: 8px; width: 100%; height: auto; line-height: 1.3; padding: 8px 10px; }
.theme-card form { margin: 0; }
.theme-mini { position: relative; height: 300px; border-radius: 12px; overflow: hidden; isolation: isolate; }
.theme-mini .page-img { position: absolute !important; inset: 0; width: auto; height: auto; z-index: 0; }
.theme-mini .mini-body { position: relative; z-index: 1; padding: 22px 14px; text-align: center; transform: scale(.82); transform-origin: top center; }
.theme-mini .avatar { width: 64px !important; height: 64px !important; min-width: 0; display: block; margin: 0 auto 8px; background: linear-gradient(135deg, #ccc, #eee); }
.theme-mini .user_fio { font-size: 18px !important; margin: 0 !important; }
.theme-mini .username { font-size: 13px !important; margin: 2px 0 12px !important; }
.theme-mini .main_links { padding: 0; margin: 0; }
.theme-mini .main_links li { margin: 10px 0 !important; list-style: none; }
.theme-mini .main_links li a div { margin: 0 !important; }
.theme-mini .collapsible-header { display: flex; align-items: center; padding: 10px 12px !important; text-align: left; }
.theme-mini .collapsible-header i { width: 26px; height: 26px; border-radius: var(--pt-icon-radius); background: rgba(128,128,128,.35); flex: 0 0 26px; }
.theme-mini .main_links li a div h2 { font-size: 13px !important; margin: 0 8px !important; }
.theme-mini .page-img::before, .theme-mini .page-img::after { animation-duration: 8s; }
.theme-preview-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1200; background: rgba(20,20,30,.92); color: #fff; padding: 12px 16px; display: flex; gap: 10px; align-items: center; justify-content: center; flex-wrap: wrap; font-family: Montserrat, sans-serif; font-size: 14px; }
.theme-preview-bar a { color: #fff; background: #7e57c2; border-radius: 8px; padding: 6px 12px; }
.theme-preview-bar a.alt { background: transparent; border: 1px solid rgba(255,255,255,.5); }
