@import url('https://fonts.googleapis.com/css2?family=Exo+2:wght@300;400;500;600;700;800;900&family=Source+Sans+3:wght@400;500;600&display=swap');

[data-theme="default"],:root{--blue-900:#1e3a8a;--blue-700:#1e40af;--blue-600:#1e40af;--blue-500:#2563eb;--blue-100:#dbeafe;--blue-50:#eff6ff;--red-600:#991b1b;--red-500:#b91c1c;--red-100:#fee2e2;--bg:#c8cdd6;--bg-card:#d8dce3;--bg-topbar:#f0f1f3;--bg-sidebar:#f0f1f3;--bg-hover:#dce0e7;--border:#b8bec9;--border-bright:#a8b0bd;--text:#1e2533;--text-dim:#4a5568;--text-bright:#0f1420;--white:#ffffff;--logo-blue:#1e40af;--logo-red:#991b1b;--shadow-sm:0 1px 3px rgba(0,0,0,0.10);--shadow:0 4px 12px rgba(0,0,0,0.10);--shadow-lg:0 10px 30px rgba(0,0,0,0.12);--radius:8px;--radius-lg:12px;--sidebar-width:240px;--topbar-height:68px;}
[data-theme="dark"]{--blue-900:#1e3a8a;--blue-700:#3b82f6;--blue-600:#60a5fa;--blue-500:#93c5fd;--blue-100:#1e3a5f;--blue-50:#172040;--red-600:#ef4444;--red-500:#f87171;--red-100:#450a0a;--bg:#0f1117;--bg-card:#161b24;--bg-topbar:#1a2030;--bg-sidebar:#161b24;--bg-hover:#1e2535;--border:#2a3347;--border-bright:#344060;--text:#cbd5e1;--text-dim:#64748b;--text-bright:#f1f5f9;--white:#1e2535;--logo-blue:#60a5fa;--logo-red:#ef4444;--shadow-sm:0 1px 3px rgba(0,0,0,0.4);--shadow:0 4px 12px rgba(0,0,0,0.4);--shadow-lg:0 10px 30px rgba(0,0,0,0.5);}
[data-theme="summer"]{--blue-900:#0369a1;--blue-700:#0284c7;--blue-600:#0ea5e9;--blue-500:#38bdf8;--blue-100:#e0f2fe;--blue-50:#f0f9ff;--red-600:#f97316;--red-500:#fb923c;--red-100:#fff7ed;--bg:#fef9f0;--bg-card:#ffffff;--bg-topbar:#ffffff;--bg-sidebar:#fafafa;--bg-hover:#f0f9ff;--border:#fed7aa;--border-bright:#fdba74;--text:#1c1917;--text-dim:#78716c;--text-bright:#0c0a09;--white:#ffffff;--logo-blue:#0284c7;--logo-red:#f97316;--shadow-sm:0 1px 3px rgba(251,146,60,0.12);--shadow:0 4px 12px rgba(251,146,60,0.1);--shadow-lg:0 10px 30px rgba(251,146,60,0.12);--radius:10px;--radius-lg:14px;}
[data-theme="winter"]{--blue-900:#1e3a8a;--blue-700:#2563eb;--blue-600:#3b82f6;--blue-500:#60a5fa;--blue-100:#dbeafe;--blue-50:#f0f7ff;--red-600:#7c3aed;--red-500:#8b5cf6;--red-100:#ede9fe;--bg:#e8eef8;--bg-card:#f4f7fc;--bg-topbar:#ffffff;--bg-sidebar:#f4f7fc;--bg-hover:#e0e8f5;--border:#c7d4ea;--border-bright:#b0c0dc;--text:#1a2340;--text-dim:#4a5880;--text-bright:#0d1428;--white:#ffffff;--logo-blue:#2563eb;--logo-red:#7c3aed;--shadow-sm:0 1px 3px rgba(37,99,235,0.10);--shadow:0 4px 12px rgba(37,99,235,0.08);--shadow-lg:0 10px 30px rgba(37,99,235,0.10);}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;}
body{font-family:'Source Sans 3',sans-serif;color:var(--text);background:var(--bg);line-height:1.6;min-height:100vh;transition:background 0.2s,color 0.2s;}
a{color:var(--blue-600);text-decoration:none;}a:hover{color:var(--blue-700);}
img{max-width:100%;height:auto;}

.logo-text{font-family:'Exo 2',sans-serif;font-weight:300;font-size:2rem;letter-spacing:-0.5px;line-height:1;}
.logo-blue{color:var(--logo-blue);}.logo-red{color:var(--logo-red);}
.logo-tagline{font-size:0.72rem;color:var(--text-dim);font-style:italic;letter-spacing:0.3px;white-space:nowrap;margin-left:0.85rem;align-self:flex-end;padding-bottom:0.2rem;}

.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-height);background:var(--bg-topbar);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 1.5rem;gap:1.5rem;z-index:100;box-shadow:var(--shadow-sm);}
.topbar__logo{flex-shrink:0;display:flex;align-items:baseline;}
.topbar__logo a{text-decoration:none;display:flex;align-items:baseline;}
.topbar__actions{display:flex;align-items:center;gap:0.75rem;margin-left:auto;}
.topbar__user{display:flex;align-items:center;gap:0.5rem;font-size:0.875rem;color:var(--text-dim);}

.theme-switcher{display:flex;align-items:center;gap:0.3rem;background:rgba(0,0,0,0.06);border-radius:999px;padding:0.2rem 0.4rem;border:1px solid var(--border);}
.theme-btn{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all 0.15s;outline:none;}
.theme-btn:hover,.theme-btn.active{border-color:var(--blue-600);transform:scale(1.15);}
.theme-btn[data-theme="default"]{background:linear-gradient(135deg,#c8cdd6,#1e40af);}
.theme-btn[data-theme="dark"]{background:linear-gradient(135deg,#0f1117,#60a5fa);}
.theme-btn[data-theme="summer"]{background:linear-gradient(135deg,#fef9f0,#f97316);}
.theme-btn[data-theme="winter"]{background:linear-gradient(135deg,#e8eef8,#7c3aed);}

.notif-btn{position:relative;background:none;border:none;cursor:pointer;font-size:1.1rem;padding:0.3rem;color:var(--text-dim);transition:color 0.15s;}
.notif-btn:hover{color:var(--blue-600);}
.notif-badge{position:absolute;top:-2px;right:-2px;background:var(--red-600);color:white;font-size:0.6rem;font-weight:700;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Exo 2',sans-serif;}

.sidebar{position:fixed;top:var(--topbar-height);left:0;width:var(--sidebar-width);height:calc(100vh - var(--topbar-height));background:var(--bg-sidebar);border-right:1px solid var(--border);overflow-y:auto;padding:1.5rem 0;z-index:90;}
.sidebar__section{margin-bottom:1.5rem;}
.sidebar__label{font-family:'Exo 2',sans-serif;font-size:0.7rem;font-weight:700;color:var(--text-dim);letter-spacing:1px;text-transform:uppercase;padding:0 1.25rem;margin-bottom:0.4rem;opacity:0.7;}
.sidebar__nav a{display:flex;align-items:center;gap:0.6rem;padding:0.5rem 1.25rem;font-size:0.875rem;font-weight:500;color:var(--text-dim);transition:all 0.15s;border-left:3px solid transparent;text-decoration:none;}
.sidebar__nav a:hover{color:var(--blue-600);background:var(--blue-50);border-left-color:var(--blue-500);}
.sidebar__nav a.active{color:var(--blue-600);background:var(--blue-50);border-left-color:var(--blue-600);font-weight:600;}
.sidebar__nav .nav-icon{font-size:1rem;width:18px;text-align:center;flex-shrink:0;}

.layout{margin-top:var(--topbar-height);margin-left:var(--sidebar-width);min-height:calc(100vh - var(--topbar-height));}
.layout--nosidebar{margin-left:0;}
.main-content{padding:2rem 2.5rem;max-width:1200px;}

.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);}
.card--padded{padding:1.75rem;}
.card__header{padding:1.25rem 1.75rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.card__title{font-family:'Exo 2',sans-serif;font-weight:700;font-size:1rem;color:var(--text-bright);}
.card__body{padding:1.75rem;}

.avatar{background:var(--blue-600);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Exo 2',sans-serif;font-weight:700;flex-shrink:0;width:36px;height:36px;font-size:0.9rem;}

.btn{display:inline-flex;align-items:center;gap:0.4rem;padding:0.5rem 1.1rem;font-family:'Exo 2',sans-serif;font-weight:700;font-size:0.875rem;border-radius:var(--radius);border:none;cursor:pointer;transition:all 0.15s;text-decoration:none;white-space:nowrap;letter-spacing:0.2px;}
.btn:disabled{opacity:0.5;cursor:not-allowed;}
.btn--primary{background:var(--blue-600);color:white;box-shadow:0 2px 6px rgba(30,64,175,0.25);}
.btn--primary:hover{background:var(--blue-700);color:white;}
.btn--danger{background:var(--red-600);color:white;}
.btn--danger:hover{filter:brightness(0.85);color:white;}
.btn--ghost{background:rgba(0,0,0,0.07);color:var(--text);border:1px solid rgba(0,0,0,0.18);font-weight:700;}
.btn--ghost:hover{background:rgba(0,0,0,0.13);color:var(--text-bright);border-color:rgba(0,0,0,0.28);}
[data-theme="dark"] .btn--ghost{background:rgba(255,255,255,0.07);color:var(--text);border-color:rgba(255,255,255,0.15);}
[data-theme="dark"] .btn--ghost:hover{background:rgba(255,255,255,0.13);color:var(--text-bright);}
.btn--sm{padding:0.3rem 0.7rem;font-size:0.8rem;}

.form-group{margin-bottom:1.25rem;}
.form-label{display:block;font-weight:600;font-size:0.875rem;color:var(--text);margin-bottom:0.4rem;font-family:'Exo 2',sans-serif;}
.form-input,.form-select,.form-textarea{width:100%;padding:0.6rem 0.9rem;border:1px solid var(--border);border-radius:var(--radius);font-family:'Source Sans 3',sans-serif;font-size:0.9rem;color:var(--text);background:var(--white);transition:border-color 0.15s,box-shadow 0.15s;outline:none;}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--blue-600);box-shadow:0 0 0 3px rgba(30,64,175,0.12);}
.form-textarea{resize:vertical;min-height:120px;}
.form-hint{font-size:0.8rem;color:var(--text-dim);margin-top:0.3rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}

.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:0.9rem;}
thead th{padding:0.75rem 1rem;background:var(--bg);border-bottom:2px solid var(--border);text-align:left;font-family:'Exo 2',sans-serif;font-weight:700;font-size:0.8rem;color:var(--text-dim);letter-spacing:0.5px;text-transform:uppercase;}
tbody td{padding:0.85rem 1rem;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:var(--bg-hover);}

.badge{display:inline-flex;align-items:center;padding:0.2rem 0.6rem;border-radius:999px;font-size:0.75rem;font-weight:600;font-family:'Exo 2',sans-serif;letter-spacing:0.3px;}
.badge--blue{background:var(--blue-100);color:var(--blue-700);}
.badge--red{background:var(--red-100);color:var(--red-600);}
.badge--gray{background:var(--bg-hover);color:var(--text-dim);}
.badge--green{background:#dcfce7;color:#16a34a;}

.page-header{margin-bottom:1.75rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.page-header__title{font-family:'Exo 2',sans-serif;font-size:1.6rem;font-weight:800;color:var(--text-bright);line-height:1.2;}
.page-header__sub{font-size:0.9rem;color:var(--text-dim);margin-top:0.2rem;}

.flash{display:flex;align-items:center;gap:0.75rem;padding:0.85rem 1.1rem;border-radius:var(--radius);font-size:0.9rem;font-weight:500;margin-bottom:1.25rem;}
.flash__icon{font-weight:700;font-size:1rem;flex-shrink:0;}
.flash--success{background:#dcfce7;color:#15803d;border-left:3px solid #16a34a;}
.flash--error{background:var(--red-100);color:var(--red-600);border-left:3px solid var(--red-600);}
.flash--info{background:var(--blue-50);color:var(--blue-700);border-left:3px solid var(--blue-600);}

.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:2rem;}
.auth-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:420px;padding:2.5rem;}
.auth-box .logo-text{font-size:2.4rem;display:block;text-align:center;margin-bottom:0.3rem;}
.auth-subtitle{text-align:center;color:var(--text-dim);font-size:0.9rem;margin-bottom:2rem;}
.auth-footer{text-align:center;margin-top:1.25rem;font-size:0.875rem;color:var(--text-dim);}

.forum-category{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1rem;background:var(--bg-card);box-shadow:var(--shadow-sm);}
.forum-category__header{padding:1rem 1.5rem;background:linear-gradient(to right,var(--blue-700),var(--blue-900));color:white;font-family:'Exo 2',sans-serif;font-weight:700;font-size:0.95rem;display:flex;align-items:center;justify-content:space-between;}
.forum-category__header.members-only{background:linear-gradient(to right,var(--text-dim),var(--text));}
.forum-thread{display:flex;align-items:center;padding:0.9rem 1.5rem;border-bottom:1px solid var(--border);gap:1rem;transition:background 0.1s;}
.forum-thread:last-child{border-bottom:none;}
.forum-thread:hover{background:var(--bg-hover);}
.forum-thread__icon{width:36px;height:36px;background:var(--blue-50);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}
.forum-thread__icon--locked{background:var(--bg-hover);}
.forum-thread__info{flex:1;min-width:0;}
.forum-thread__title{font-weight:600;color:var(--text-bright);font-size:0.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.forum-thread__title a{color:inherit;}
.forum-thread__title a:hover{color:var(--blue-600);}
.forum-thread__meta{font-size:0.8rem;color:var(--text-dim);margin-top:0.15rem;}
.forum-thread__stats{text-align:right;font-size:0.8rem;color:var(--text-dim);white-space:nowrap;}

.reaction-bar{display:flex;align-items:center;gap:0.5rem;margin-top:0.75rem;}
.reaction-btn{display:inline-flex;align-items:center;gap:0.3rem;padding:0.25rem 0.6rem;border-radius:999px;font-size:0.8rem;font-weight:600;border:1px solid var(--border);background:var(--bg);color:var(--text-dim);cursor:pointer;transition:all 0.15s;font-family:'Exo 2',sans-serif;}
.reaction-btn:hover{border-color:var(--blue-600);color:var(--blue-600);background:var(--blue-50);}
.reaction-btn.reacted{background:var(--blue-100);border-color:var(--blue-600);color:var(--blue-700);}

.quote-block{background:var(--bg);border-left:3px solid var(--blue-600);padding:0.75rem 1rem;margin-bottom:0.75rem;border-radius:0 var(--radius) var(--radius) 0;font-size:0.875rem;color:var(--text-dim);}
.quote-block__author{font-weight:700;color:var(--blue-600);font-size:0.8rem;margin-bottom:0.3rem;font-family:'Exo 2',sans-serif;}

.download-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--border);transition:background 0.1s;}
.download-item:last-child{border-bottom:none;}
.download-item:hover{background:var(--bg-hover);}
.download-item__icon{width:42px;height:42px;background:var(--blue-50);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;color:var(--blue-600);}
.download-item__info{flex:1;min-width:0;}
.download-item__name{font-weight:600;color:var(--text-bright);}
.download-item__meta{font-size:0.8rem;color:var(--text-dim);margin-top:0.15rem;}

.star-rating{display:inline-flex;gap:0.1rem;}
.star{font-size:0.9rem;color:var(--border);cursor:pointer;transition:color 0.1s;}
.star.filled{color:#f59e0b;}

.media-embed{margin:1rem 0;border-radius:var(--radius-lg);overflow:hidden;background:#000;}
.media-embed video,.media-embed audio{width:100%;display:block;}
.media-embed audio{padding:0.5rem;background:var(--bg-card);}

.profile-header{display:flex;align-items:center;gap:1.5rem;padding:2rem;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);margin-bottom:1.5rem;}
.profile-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--border);flex-shrink:0;}
.profile-avatar-placeholder{width:80px;height:80px;border-radius:50%;background:var(--blue-600);color:white;display:flex;align-items:center;justify-content:center;font-family:'Exo 2',sans-serif;font-weight:800;font-size:2rem;flex-shrink:0;}
.profile-info h1{font-family:'Exo 2',sans-serif;font-weight:800;font-size:1.5rem;color:var(--text-bright);}
.profile-info .meta{font-size:0.875rem;color:var(--text-dim);margin-top:0.3rem;}
.online-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22c55e;margin-right:0.3rem;}
.offline-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--border);margin-right:0.3rem;}

.comment{display:grid;grid-template-columns:44px 1fr;gap:0.75rem;padding:1rem 0;border-bottom:1px solid var(--border);}
.comment:last-child{border-bottom:none;}
.comment__body{background:var(--bg);border-radius:var(--radius);padding:0.75rem 1rem;}
.comment__meta{font-size:0.8rem;color:var(--text-dim);margin-bottom:0.4rem;}
.comment__author{font-weight:700;color:var(--text-bright);font-family:'Exo 2',sans-serif;}

.search-bar{display:flex;gap:0;flex:1;max-width:400px;}
.search-bar input{flex:1;border-radius:var(--radius) 0 0 var(--radius);border-right:none;}
.search-bar button{border-radius:0 var(--radius) var(--radius) 0;padding:0.6rem 1rem;background:var(--blue-600);color:white;border:1px solid var(--blue-600);cursor:pointer;font-size:0.9rem;transition:background 0.15s;}
.search-bar button:hover{background:var(--blue-700);}
.search-result{padding:1rem 1.5rem;border-bottom:1px solid var(--border);transition:background 0.1s;}
.search-result:hover{background:var(--bg-hover);}
.search-result__type{font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.8px;font-family:'Exo 2',sans-serif;color:var(--text-dim);margin-bottom:0.2rem;}
.search-result__title{font-weight:600;color:var(--text-bright);}
.search-result__preview{font-size:0.85rem;color:var(--text-dim);margin-top:0.2rem;}

.divider{border:none;border-top:1px solid var(--border);margin:1.5rem 0;}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:2rem;}
.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--blue-600);}
.stat-card--red::before{background:var(--red-600);}
.stat-card--green::before{background:#16a34a;}
.stat-card--purple::before{background:#7c3aed;}
.stat-card__label{font-family:'Exo 2',sans-serif;font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.8px;color:var(--text-dim);margin-bottom:0.4rem;}
.stat-card__value{font-family:'Exo 2',sans-serif;font-size:2rem;font-weight:800;color:var(--text-bright);line-height:1;}

.page-content{line-height:1.8;color:var(--text);font-size:1rem;}
.page-content h1,.page-content h2,.page-content h3{font-family:'Exo 2',sans-serif;font-weight:700;color:var(--text-bright);margin:1.5rem 0 0.75rem;line-height:1.3;}
.page-content h1{font-size:1.75rem;}.page-content h2{font-size:1.35rem;}.page-content h3{font-size:1.1rem;}
.page-content p{margin-bottom:1rem;}
.page-content ul,.page-content ol{margin:0.75rem 0 0.75rem 1.5rem;}
.page-content li{margin-bottom:0.3rem;}
.page-content img{border-radius:var(--radius);margin:1rem 0;}
.page-content blockquote{border-left:3px solid var(--blue-600);padding-left:1rem;color:var(--text-dim);font-style:italic;margin:1rem 0;}
.page-content pre{background:#0f172a;color:#e2e8f0;padding:1rem;border-radius:var(--radius);overflow-x:auto;font-size:0.875rem;margin:1rem 0;}

.pagination{display:flex;gap:0.35rem;margin-top:1.5rem;align-items:center;}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius);font-size:0.875rem;font-weight:600;border:1px solid var(--border);color:var(--text-dim);transition:all 0.15s;}
.pagination a:hover{background:var(--blue-50);border-color:var(--blue-600);color:var(--blue-600);}
.pagination .active{background:var(--blue-600);border-color:var(--blue-600);color:white;}

.empty-state{text-align:center;padding:3rem 2rem;color:var(--text-dim);}
.empty-state__icon{font-size:2.5rem;margin-bottom:0.75rem;}
.empty-state__text{font-size:0.95rem;}

.breadcrumb{display:flex;align-items:center;gap:0.4rem;font-size:0.8rem;color:var(--text-dim);margin-bottom:1.25rem;}
.breadcrumb a{color:var(--text-dim);}
.breadcrumb a:hover{color:var(--blue-600);}
.breadcrumb__sep{color:var(--border);}

.site-footer{border-top:1px solid var(--border);padding:1.5rem 2.5rem;font-size:0.85rem;color:var(--text-dim);display:flex;align-items:center;justify-content:center;margin-top:2rem;}

.text-muted{color:var(--text-dim);}.text-small{font-size:0.85rem;}.text-center{text-align:center;}
.mt-1{margin-top:0.5rem;}.mt-2{margin-top:1rem;}.mt-3{margin-top:1.5rem;}
.mb-1{margin-bottom:0.5rem;}.mb-2{margin-bottom:1rem;}
.d-flex{display:flex;}.gap-1{gap:0.5rem;}.gap-2{gap:1rem;}
.align-center{align-items:center;}.justify-between{justify-content:space-between;}
.flex-1{flex:1;}.w-full{width:100%;}.hidden{display:none!important;}

@media(max-width:768px){:root{--sidebar-width:0px;}.sidebar{display:none;}.main-content{padding:1.25rem;}.form-row{grid-template-columns:1fr;}}
