:root { --ktm-primary:#4a9b5a; --ktm-primary-dark:#3d8a4c; --ktm-success:#10b981; --ktm-bg:#f8fafc; --ktm-card:#fff; --ktm-text:#1f2937; --ktm-muted:#6b7280; --ktm-border:#e5e7eb; }
.dark { --ktm-bg:#0f172a; --ktm-card:#1e293b; --ktm-text:#f1f5f9; --ktm-muted:#94a3b8; --ktm-border:#334155; }
.ktm-rep-dashboard { max-width:1000px; margin:0 auto; padding:24px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; color:var(--ktm-text); background:var(--ktm-bg); }
.ktm-dashboard-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; }
.ktm-dashboard-header h2 { font-size:1.5rem; font-weight:700; margin:0; }
.ktm-dashboard-meta { display:flex; align-items:center; gap:12px; }
.ktm-stat-card { background:var(--ktm-card); border:1px solid var(--ktm-border); border-radius:10px; padding:20px; text-align:center; }
.ktm-stat-label { font-size:.75rem; text-transform:uppercase; color:var(--ktm-muted); margin-bottom:6px; }
.ktm-stat-value { font-size:1.75rem; font-weight:700; color:var(--ktm-primary); }
.ktm-panel { background:var(--ktm-card); border:1px solid var(--ktm-border); border-radius:10px; padding:20px; }
.ktm-panel h3 { margin-top:0; font-size:1.1rem; }
.ktm-grid { display:grid; gap:16px; }
.ktm-grid-2 { grid-template-columns:repeat(2,1fr); }
.ktm-grid-4 { grid-template-columns:repeat(4,1fr); }
.ktm-actions { display:flex; gap:10px; flex-wrap:wrap; }
.ktm-btn { display:inline-flex; align-items:center; gap:6px; padding:10px 18px; border-radius:6px; border:1px solid transparent; font-size:.875rem; font-weight:500; cursor:pointer; transition:all .15s; background:var(--ktm-primary); color:#fff; text-decoration:none; }
.ktm-btn:hover { background:var(--ktm-primary-dark); }
.ktm-btn-secondary { background:var(--ktm-card); color:var(--ktm-text); border-color:var(--ktm-border); }
.ktm-btn-secondary:hover { background:var(--ktm-bg); }
.ktm-input { width:100%; padding:8px 12px; border:1px solid var(--ktm-border); border-radius:6px; font-size:.875rem; outline:none; background:var(--ktm-card); color:var(--ktm-text); }
.ktm-input:focus { border-color:var(--ktm-primary); box-shadow:0 0 0 3px rgba(124,58,237,0.15); }
.ktm-badge { display:inline-block; padding:2px 10px; border-radius:999px; font-size:.75rem; font-weight:500; }
.ktm-badge-rank { background:var(--ktm-primary); color:#fff; }
.ktm-modal { position:fixed; inset:0; background:rgba(0,0,0,0.5); display:flex; align-items:center; justify-content:center; z-index:9999; }
.ktm-modal-content { background:var(--ktm-card); border:1px solid var(--ktm-border); padding:24px; border-radius:12px; width:420px; max-width:90vw; position:relative; }
.ktm-modal-close { position:absolute; top:12px; right:16px; font-size:1.5rem; cursor:pointer; color:var(--ktm-muted); }
.ktm-form-group { margin-bottom:14px; }
.ktm-form-group label { display:block; font-size:.875rem; font-weight:500; margin-bottom:4px; color:var(--ktm-text); }
@keyframes ktm-auth-fade {
    from { opacity:0; transform: translateY(12px); }
    to { opacity:1; transform: translateY(0); }
}
.ktm-auth-fade { animation: ktm-auth-fade 0.4s ease-out both; }

@media (max-width:768px) {
    .ktm-grid-2, .ktm-grid-4 { grid-template-columns:1fr; }
    .ktm-dashboard-header { flex-direction:column; align-items:flex-start; gap:8px; }
}

/* Animations */
@keyframes ktm-fade-in {
    from { opacity:0; transform:translateY(10px); }
    to { opacity:1; transform:translateY(0); }
}
@keyframes ktm-slide-up {
    from { opacity:0; transform:translateY(20px); }
    to { opacity:1; transform:translateY(0); }
}
@keyframes ktm-scale-in {
    from { opacity:0; transform:scale(0.95); }
    to { opacity:1; transform:scale(1); }
}
@keyframes ktm-shimmer {
    0% { background-position:-200% 0; }
    100% { background-position:200% 0; }
}

/* ========== PORTAL PAGE — HIDE THEME NAV/HEADER/FOOTER ========== */
html body.ktm-portal-page .wp-block-template-part,
html body.ktm-portal-page header:not(#ktm-frontend-app header),
html body.ktm-portal-page footer:not(#ktm-frontend-app footer),
html body.ktm-portal-page .wp-block-navigation,
html body.ktm-portal-page .wp-block-post-title,
html body.ktm-portal-page .wp-block-site-title,
html body.ktm-portal-page .wp-block-site-logo,
html body.ktm-portal-page .entry-header,
html body.ktm-portal-page .entry-title,
html body.ktm-portal-page .page-title,
html body.ktm-portal-page .site-footer,
html body.ktm-portal-page #colophon { display:none !important; all:unset !important; visibility:hidden !important; height:0 !important; overflow:hidden !important; }
#ktm-frontend-app header { display:flex !important; visibility:visible !important; opacity:1 !important; }
#ktm-frontend-app footer { display:flex !important; visibility:visible !important; opacity:1 !important; }
#ktm-frontend-app button { display:inline-flex !important; visibility:visible !important; opacity:1 !important; }
#ktm-frontend-app input, #ktm-frontend-app select { visibility:visible !important; opacity:1 !important; }
html body.ktm-portal-page .site-content { padding:0 !important; margin:0 !important; }
html body.ktm-portal-page .content-area { max-width:none !important; width:100% !important; }
html body.ktm-portal-page .entry-content { max-width:none !important; padding:0 !important; margin:0 !important; }
html body.ktm-portal-page .site-main { padding:0 !important; margin:0 !important; }
.ktm-fade-in { animation:ktm-fade-in .4s ease-out both; }
.ktm-slide-up { animation:ktm-slide-up .5s ease-out both; }
.ktm-scale-in { animation:ktm-scale-in .3s ease-out both; }
.ktm-shimmer {
    background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);
    background-size: 200% 100%;
    animation: ktm-shimmer 1.5s infinite;
}

/* Transitions */
.ktm-card-hover { transition: transform .2s, box-shadow .2s; }
.ktm-card-hover:hover { transform: translateY(-2px); box-shadow: 0 10px 40px -10px rgba(0,0,0,.1); }

/* Portal page layout fixes */
.ktm-portal-page #page, .ktm-portal-page .site-content, .ktm-portal-page .content-area { max-width: none !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
.ktm-portal-page .entry-content > *:not(#ktm-frontend-app) { display: none !important; }

/* Scrollbar */
.dark ::-webkit-scrollbar { width: 6px; height: 6px; }
.dark ::-webkit-scrollbar-track { background: transparent; }
.dark ::-webkit-scrollbar-thumb { background: #475569; border-radius: 3px; }
.dark ::-webkit-scrollbar-thumb:hover { background: #64748b; }

/* Dark mode base */
.dark { color-scheme: dark; }

/* ═══ Auth Page Tailwind Overrides — Match Theme Green ═══ */
.bg-purple-600 { background-color: #4a9b5a !important; }
.bg-gradient-to-br.from-violet-500 { --tw-gradient-from: #4a9b5a !important; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(74,155,90,0)) !important; }
.bg-gradient-to-br.to-violet-700 { --tw-gradient-to: #3d8a4c !important; }
.text-violet-600 { color: #4a9b5a !important; }
.text-violet-700 { color: #3d8a4c !important; }
.hover\:text-violet-700:hover { color: #3d8a4c !important; }
.hover\:bg-purple-600:hover { background-color: #4a9b5a !important; }
.group-hover\:text-purple-600:hover { color: #4a9b5a !important; }
.group-hover\:text-violet-600:hover { color: #4a9b5a !important; }
.bg-violet-50 { background-color: #f0f5ec !important; }
.bg-violet-100 { background-color: #eef4ec !important; }
.text-violet-700 { color: #3d8a4c !important; }
.bg-rose-50 { background-color: #fef2f2 !important; }
.text-rose-600 { color: #dc2626 !important; }
.border-violet-200 { border-color: #d1e0d4 !important; }
.ring-violet-500 { --tw-ring-color: #4a9b5a !important; }
.focus\:ring-violet-500:focus { --tw-ring-color: #4a9b5a !important; }
.focus\:border-violet-500:focus { border-color: #4a9b5a !important; }
.border-purple-600 { border-color: #4a9b5a !important; }
.hover\:border-purple-600:hover { border-color: #4a9b5a !important; }
.hover\:bg-violet-50:hover { background-color: #f0f5ec !important; }
